From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751428AbaHIGup (ORCPT ); Sat, 9 Aug 2014 02:50:45 -0400 Received: from mail-we0-f169.google.com ([74.125.82.169]:57465 "EHLO mail-we0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751090AbaHIGuS (ORCPT ); Sat, 9 Aug 2014 02:50:18 -0400 From: Goffredo Baroncelli X-Google-Original-From: Goffredo Baroncelli To: Benjamin Herrenschmidt Cc: LKML , Jean Delvare , Guenter Roeck , Goffredo Baroncelli Subject: [PATCH 4/5] Return the fan speed via sysfs Date: Sat, 9 Aug 2014 06:50:02 +0000 Message-Id: <1407567003-18332-5-git-send-email-kreijack@inwind.it> X-Mailer: git-send-email 2.1.0.rc1 In-Reply-To: <1407567003-18332-1-git-send-email-kreijack@inwind.it> References: <1407567003-18332-1-git-send-email-kreijack@inwind.it> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return the fan speed via sysfs: /sys/devices/temperature/fan_level This patch is extracted from a Bryan Christianson's bigger one (see debian bug #741663) Signed-off-by: Goffredo Baroncelli --- 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 68f1067..30a6588 100644 --- a/drivers/macintosh/therm_windtunnel.c +++ b/drivers/macintosh/therm_windtunnel.c @@ -109,9 +109,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); /************************************************************************/ @@ -264,6 +270,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"); @@ -274,6 +281,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 ); -- 2.1.0.rc1