From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755395AbaHGTJX (ORCPT ); Thu, 7 Aug 2014 15:09:23 -0400 Received: from mail-we0-f169.google.com ([74.125.82.169]:34458 "EHLO mail-we0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755302AbaHGTIz (ORCPT ); Thu, 7 Aug 2014 15:08:55 -0400 From: Goffredo Baroncelli X-Google-Original-From: Goffredo Baroncelli To: Benjamin Herrenschmidt Cc: LKML , Jean Delvare , Goffredo Baroncelli Subject: [PATCH 4/5] Return the fan speed via sysfs Date: Thu, 7 Aug 2014 19:08:37 +0000 Message-Id: <1407438518-4395-5-git-send-email-kreijack@inwind.it> X-Mailer: git-send-email 2.0.1 In-Reply-To: <1407438518-4395-1-git-send-email-kreijack@inwind.it> References: <1407438518-4395-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 copied from the Bryan Christianson's patch (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.0.1