[Nouveau] [PATCH 14/14] drm/nouveau/therm: Rework nouveau_therm_create()

Emil Velikov emil.l.velikov at gmail.com
Sun May 20 23:13:54 PDT 2012


On Mon, 21 May 2012 07:30:32 +0100, Ben Skeggs <skeggsb at gmail.com> wrote:

> On Mon, May 21, 2012 at 12:15:03AM +0100, Emil Velikov wrote:
>> It contains a few changes mainly targeting the following
>>  * Therm table is present in BIT vbios
>>  * Parse the vbios table before hooking temp_get(), as it contains the  
>> therm
>> sensor calibration data
>>  * Add dummy_therm_temp_get() function to prevent multiple null dereff's
>
> I didn't take this patch at all yet.  I'll let Martin put his input into
> this instead.  I didn't really touch the thermal stuff aside from  
> matching
> APIs because he's got an overhaul pending anyway.
>
> Comments on specific pieces inline as they may be useful.
Point taken, I believe the whole therm subdev will need some love after
the connection with the i2c devices have been finalised

>
>>
>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> ---
>>  drivers/gpu/drm/nouveau/nouveau_pm.c    |    2 +-
>>  drivers/gpu/drm/nouveau/nouveau_therm.c |   63  
>> ++++++++++++++++++++++++-------
>>  2 files changed, 50 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c  
>> b/drivers/gpu/drm/nouveau/nouveau_pm.c
>> index 9dd34fe..1b4422b 100644
>> --- a/drivers/gpu/drm/nouveau/nouveau_pm.c
>> +++ b/drivers/gpu/drm/nouveau/nouveau_pm.c
>> @@ -693,7 +693,7 @@ nouveau_hwmon_init(struct nouveau_device *ndev)
>>  	}
>>
>>  	/* if the card can read the fan rpm */
>> -	if (nouveau_gpio_func_valid(ndev, DCB_GPIO_FAN_SENSE)) {
>> +	if (pfan && pfan->sense(pfan) >= 0) {
>>  		ret = sysfs_create_group(&dev->pdev->dev.kobj,
>>  					 &hwmon_fan_rpm_attrgroup);
>>  		if (ret)
>> diff --git a/drivers/gpu/drm/nouveau/nouveau_therm.c  
>> b/drivers/gpu/drm/nouveau/nouveau_therm.c
>> index acf81a9..91095be 100644
>> --- a/drivers/gpu/drm/nouveau/nouveau_therm.c
>> +++ b/drivers/gpu/drm/nouveau/nouveau_therm.c
>> @@ -30,6 +30,12 @@
>>  #include "nouveau_pm.h"
>>  #include "nouveau_therm.h"
>>
>> +static inline int
>> +dummy_therm_temp_get(struct nouveau_therm *ptherm)
>> +{
>> +	return 0;
>> +}
>> +
> I don't really like this, if we can't expose any thermal data I think we
> just shouldn't create a thermal subdev?
It boils to the point of - what is the reasonable approach to get out of  
the
situation - call nouveau_subdev_fini()? How about cards that may not have  
on
die sensor but have one via i2c ?

Regards
Emil Velikov


More information about the Nouveau mailing list