[Nouveau] [PATCH 2/3] drm/nv40/therm: reset temperature sensor on init

Marcin Slusarz marcin.slusarz at gmail.com
Sun Feb 3 12:33:12 PST 2013


On Sun, Feb 03, 2013 at 09:07:56PM +0100, Marcin Slusarz wrote:
> Current uninitialized sensor detection does not work for me on nv4b and
> sensor returns crazy values (>190°C). It stabilises later, but it's too
> late - therm code shutdowns the machine...
> 
> Let's just reset it on init.
> 
> Signed-off-by: Marcin Slusarz <marcin.slusarz at gmail.com>
> ---
>  drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c b/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c
> index accc628..7d90844 100644
> --- a/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c
> +++ b/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c
> @@ -173,13 +173,23 @@ nv40_therm_ctor(struct nouveau_object *parent,
>  	return nouveau_therm_preinit(&priv->base.base);
>  }
>  
> +int
> +nv40_therm_init(struct nouveau_object *object)

Tiny issue: this function should be static.

> +{
> +	struct nouveau_therm *therm = (void *)object;
> +
> +	nv40_sensor_setup(therm);
> +
> +	return _nouveau_therm_init(object);
> +}
> +
>  struct nouveau_oclass
>  nv40_therm_oclass = {
>  	.handle = NV_SUBDEV(THERM, 0x40),
>  	.ofuncs = &(struct nouveau_ofuncs) {
>  		.ctor = nv40_therm_ctor,
>  		.dtor = _nouveau_therm_dtor,
> -		.init = _nouveau_therm_init,
> +		.init = nv40_therm_init,
>  		.fini = _nouveau_therm_fini,
>  	},
>  };
> -- 
> 1.8.1
> 


More information about the Nouveau mailing list