Hi Nicolas,thanks for the Mac Mini addition. Attached is an again quick and dirty patch adding support for the SMC temperature sensor. Maybe it's helpful.
Regards, - Jan.
--- applesmc.c.orig 2006-10-17 15:58:42.000000000 +0200 +++ applesmc.c 2006-10-17 17:35:42.000000000 +0200 @@ -33,7 +33,7 @@ #include <linux/timer.h> #include <linux/dmi.h> #include <asm/io.h> -#include <linux/leds.h> +// #include <linux/leds.h> /* data port used by apple SMC */ #define APPLESMC_DATA_PORT 0x300 @@ -65,6 +65,8 @@ #define FAN_SAFE_SPEED "F0Sf" //r-o length 2 #define FAN_TARGET_SPEED "F0Tg" //r-w length 2 +#define FAN_TEMP "TC0D" + #define INIT_TIMEOUT_MSECS 5000 /* wait up to 5s for device init ... */ #define INIT_WAIT_MSECS 50 /* ... in 50ms increments */ @@ -76,7 +78,7 @@ #define SENSOR_Y 1 #define SENSOR_Z 2 -static int debug = 0; +static int debug = 1; static struct platform_device *pdev; static s16 rest_x; static s16 rest_y; @@ -390,6 +392,32 @@ return sprintf(buf, "(%d,%d)\n", left, right); } +static ssize_t applesmc_show_fan_temp(struct device *dev, char *buf, char *key, int offset) +{ + int ret; + char newkey[5]; + u8 buffer[2]; + u8 temp; + + newkey[0] = key[0]; + newkey[1] = key[1]; + newkey[2] = '0' + offset; + newkey[3] = key[3]; + newkey[4] = 0; + + down(&applesmc_sem); + + ret = applesmc_read_key(newkey, buffer, 2); + temp = (buffer[0] * 256 + buffer[1]) >> 8; + + up(&applesmc_sem); + + if (ret) + return ret; + else + return sprintf(buf, "%d\n", (int) temp); +} + static ssize_t applesmc_show_fan_speed(struct device *dev, char *buf, char* key, int offset) { @@ -519,6 +547,7 @@ return count; } +/* static void applesmc_backlight_set(struct led_classdev *led_cdev, enum led_brightness value) { @@ -536,13 +565,18 @@ .default_trigger = "nand-disk", .brightness_set = applesmc_backlight_set, }; - +*/ static DEVICE_ATTR(position, 0444, applesmc_position_show, NULL); static DEVICE_ATTR(calibrate, 0644, applesmc_calibrate_show,applesmc_calibrate_store); static DEVICE_ATTR(light, 0444, applesmc_light_show, NULL); #define sysfs_fan_speeds_offset(offset) \ +static ssize_t show_fan_temp_##offset (struct device *dev, \ + struct device_attribute *attr, char *buf) \ +{ \ + return applesmc_show_fan_temp(dev, buf, FAN_TEMP, offset); \ +} \ static ssize_t show_fan_actual_speed_##offset (struct device *dev, \ struct device_attribute *attr, char *buf) \ { \ @@ -551,6 +585,9 @@ static DEVICE_ATTR(fan##offset##_actual_speed, S_IRUGO, \ show_fan_actual_speed_##offset, NULL); \ \ +static DEVICE_ATTR(fan##offset##_temp, S_IRUGO, \ + show_fan_temp_##offset, NULL); \ +\ static ssize_t show_fan_minimum_speed_##offset (struct device *dev, \ struct device_attribute *attr, char *buf) \ { \ @@ -610,6 +647,7 @@ #define device_create_file_fan(client, offset) \ do { \ +sysfs_create_file(client, &dev_attr_fan##offset##_temp.attr); \ sysfs_create_file(client, &dev_attr_fan##offset##_actual_speed.attr); \ sysfs_create_file(client, &dev_attr_fan##offset##_minimum_speed.attr); \ sysfs_create_file(client, &dev_attr_fan##offset##_maximum_speed.attr); \ @@ -801,7 +839,7 @@ goto out_accelerometer; /* register as a led device */ - ret = led_classdev_register(&pdev->dev, &applesmc_backlight); +// ret = led_classdev_register(&pdev->dev, &applesmc_backlight); if (ret < 0) goto out_accelerometer; } @@ -825,8 +863,8 @@ static void __exit applesmc_exit(void) { - if (applesmc_light) - led_classdev_unregister(&applesmc_backlight); +// if (applesmc_light) +// led_classdev_unregister(&applesmc_backlight); if (applesmc_accelerometer) applesmc_release_accelerometer(); platform_device_unregister(pdev);
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ Mactel-linux-devel mailing list Mactel-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mactel-linux-devel