From: Goffredo Baroncelli <kreijack@inwind.it>
To: Jean Delvare <jdelvare@suse.de>,
Goffredo Baroncelli <kreijack@gmail.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-kernel@vger.kernel.org, bryan@whatroute.net
Subject: Re: [PATCH 4/4] Return the fan speed via sysfs
Date: Sun, 03 Aug 2014 17:27:17 +0200 [thread overview]
Message-ID: <53DE54D5.2050806@inwind.it> (raw)
In-Reply-To: <20140803161738.485f3f60@endymion.delvare>
On 08/03/2014 04:17 PM, Jean Delvare wrote:
> On Fri, 1 Aug 2014 14:00:50 +0000, Goffredo Baroncelli wrote:
>> Return the fan speed via sysfs:
>> /sys/devices/temperature/fan_level
>
> Good idea. Even better would be if the driver would expose a standard
> hwmon interface for the temperature values. Fan level could go in
> attribute "pwm1" after proper scaling.
I tought the same. But until now the value logged is an integer value
between 1 and 11. So I preferred to leave it as is.
The thing that I can do is to *add* a further attribute called pwm1.
( I have to check how adm1031.c computes its pwm), because is a
more standard interface.
I even thought to allow to change the fan speed from user space....
>
> Please follow scripts/checkpatch.pl's advice to fix the coding style.
>
>> This patch is copied from the Bryan Christianson's patch (see
>> debian bug #741663)
>>
>> Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
>> ---
>> drivers/macintosh/therm_windtunnel.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/macintosh/therm_windtunnel.c b/drivers/macintosh/therm_windtunnel.c
>> index 0c4eb85..a2af7db 100644
>> --- a/drivers/macintosh/therm_windtunnel.c
>> +++ b/drivers/macintosh/therm_windtunnel.c
>> @@ -111,9 +111,15 @@ show_case_temperature( struct device *dev, struct device_attribute *attr, char *
>> return sprintf(buf, "%d.%d\n", x.casetemp>>8, (x.casetemp & 255)*10/256 );
>> }
>>
>> +static ssize_t
>> +show_fan_level( struct device *dev, struct device_attribute *attr, char *buf )
>> +{
>> + return sprintf(buf, "%d\n", 11 - x.fan_level );
>> +}
>> +
>> static DEVICE_ATTR(cpu_temperature, S_IRUGO, show_cpu_temperature, NULL );
>> static DEVICE_ATTR(case_temperature, S_IRUGO, show_case_temperature, NULL );
>> -
>> +static DEVICE_ATTR(fan_level, S_IRUGO, show_fan_level, NULL );
>>
>>
>> /************************************************************************/
>> @@ -265,6 +271,7 @@ setup_hardware( void )
>>
>> err = device_create_file( &x.of_dev->dev, &dev_attr_cpu_temperature );
>> err |= device_create_file( &x.of_dev->dev, &dev_attr_case_temperature );
>> + err |= device_create_file( &x.of_dev->dev, &dev_attr_fan_level );
>> if (err)
>> printk(KERN_WARNING
>> "Failed to create temperature attribute file(s).\n");
>
> That's not your fault but please note that this construct is broken.
> You can't "or" error codes together, the result if two or more calls
> fail with different error codes is pretty random. Instead, each error
> must be tested individually. I know checkpatch.pl will complain if you
> do that but you can ignore it as is it the right thing to do in that
> case.
The really question is what we should do if the 2nd device_create_file()
would fail: we should fails the driver initialization ? or we should
continue, because even if there aren't some sysfs attributes the driver
work enough ?
>
>> @@ -275,6 +282,7 @@ restore_regs( void )
>> {
>> device_remove_file( &x.of_dev->dev, &dev_attr_cpu_temperature );
>> device_remove_file( &x.of_dev->dev, &dev_attr_case_temperature );
>> + device_remove_file( &x.of_dev->dev, &dev_attr_fan_level );
>>
>> write_reg( x.fan, 0x01, x.r1, 1 );
>> write_reg( x.fan, 0x20, x.r20, 1 );
>
>
--
gpg @keyserver.linux.it: Goffredo Baroncelli (kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
next prev parent reply other threads:[~2014-08-03 15:22 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-01 14:00 [PATCH][v2] therm_windtunnel doesn't work properly on PowerMac G4 Goffredo Baroncelli
2014-08-01 14:00 ` [PATCH 1/4] Update drivers names to the ones invoked by i2c-powermac Goffredo Baroncelli
2014-08-01 14:00 ` [PATCH 2/4] Remove attach_method because un-used Goffredo Baroncelli
2014-08-01 14:00 ` [PATCH 3/4] Add the "verbose" module option Goffredo Baroncelli
2014-08-03 14:12 ` Jean Delvare
2014-08-03 15:12 ` Goffredo Baroncelli
2014-08-03 15:52 ` Jean Delvare
2014-08-03 16:36 ` Goffredo Baroncelli
2014-08-04 8:46 ` Jean Delvare
2014-08-04 17:10 ` Goffredo Baroncelli
2014-08-05 8:59 ` Jean Delvare
2014-08-01 14:00 ` [PATCH 4/4] Return the fan speed via sysfs Goffredo Baroncelli
2014-08-03 14:17 ` Jean Delvare
2014-08-03 15:27 ` Goffredo Baroncelli [this message]
2014-08-03 15:59 ` Jean Delvare
2014-08-03 16:42 ` Goffredo Baroncelli
2014-08-04 8:44 ` Jean Delvare
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53DE54D5.2050806@inwind.it \
--to=kreijack@inwind.it \
--cc=benh@kernel.crashing.org \
--cc=bryan@whatroute.net \
--cc=jdelvare@suse.de \
--cc=kreijack@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.