Revision: 133 http://svn.sourceforge.net/mactel-linux/?rev=133&view=rev Author: nboichat Date: 2007-06-27 06:14:46 -0700 (Wed, 27 Jun 2007)
Log Message: ----------- Fix Macbook temperature readings. Fix some patches using checkpatch.pl Modified Paths: -------------- trunk/kernel/mactel-patches-2.6.22/appleir.patch trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch trunk/kernel/mactel-patches-2.6.22/series Added Paths: ----------- trunk/kernel/mactel-patches-2.6.22/applesmc-add-macbook-temperature-keys.patch Modified: trunk/kernel/mactel-patches-2.6.22/appleir.patch =================================================================== --- trunk/kernel/mactel-patches-2.6.22/appleir.patch 2007-06-24 09:03:48 UTC (rev 132) +++ trunk/kernel/mactel-patches-2.6.22/appleir.patch 2007-06-27 13:14:46 UTC (rev 133) @@ -44,7 +44,7 @@ obj-$(CONFIG_INPUT_YEALINK) += yealink.o diff --git a/drivers/input/misc/appleir.c b/drivers/input/misc/appleir.c new file mode 100644 -index 0000000..170cee6 +index 0000000..3ff46fc --- /dev/null +++ b/drivers/input/misc/appleir.c @@ -0,0 +1,379 @@ @@ -110,7 +110,7 @@ + + +static struct usb_device_id appleir_ids[] = { -+ { ++ { + USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IR), + .driver_info = 0 + }, @@ -145,7 +145,7 @@ +}; + +static void dump_packet(struct appleir *appleir, char *msg, -+ uint8_t * data, int len) ++ uint8_t *data, int len) +{ + int i; + @@ -184,7 +184,7 @@ + +static void key_up_tick(unsigned long data) +{ -+ struct appleir *apple_ir = (struct appleir*)data; ++ struct appleir *apple_ir = (struct appleir *)data; + + if (apple_ir->current_key) { + key_up(apple_ir, apple_ir->current_key); @@ -205,7 +205,7 @@ + return; + + if (!memcmp(data, keydown, sizeof(keydown))) { -+ /* ++ /* + * If we already have a key down, take it up before marking + * this one down. + */ @@ -416,7 +416,7 @@ + if (retval) + goto out; + info(DRIVER_VERSION ":" DRIVER_DESC); -+ out: ++out: + return retval; +} + Added: trunk/kernel/mactel-patches-2.6.22/applesmc-add-macbook-temperature-keys.patch =================================================================== --- trunk/kernel/mactel-patches-2.6.22/applesmc-add-macbook-temperature-keys.patch (rev 0) +++ trunk/kernel/mactel-patches-2.6.22/applesmc-add-macbook-temperature-keys.patch 2007-06-27 13:14:46 UTC (rev 133) @@ -0,0 +1,46 @@ +Fix AppleSMC registers on non-pro Macbooks. + +From: Martin Szulecki <[EMAIL PROTECTED]> + + +--- + + drivers/hwmon/applesmc.c | 14 +++++++++----- + 1 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c +index eb81a64..232cbad 100644 +--- a/drivers/hwmon/applesmc.c ++++ b/drivers/hwmon/applesmc.c +@@ -79,11 +79,15 @@ + + /* + * Temperature sensors keys (sp78 - 2 bytes). +- * First set for Macbook(Pro), second for Macmini. + */ + static const char* temperature_sensors_sets[][13] = { ++/* Set 0: Macbook Pro */ + { "TA0P", "TB0T", "TC0D", "TC0P", "TG0H", "TG0P", "TG0T", "Th0H", + "Th1H", "Tm0P", "Ts0P", "Ts1P", NULL }, ++/* Set 1: Macbook set */ ++ { "TB0T", "TC0D", "TC0P", "TM0P", "TN0P", "TN1P", "Th0H", "Th0S", ++ "Th1H", "Ts0P", NULL }, ++/* Set 2: Macmini set */ + { "TC0D", "TC0P", NULL } + }; + +@@ -1129,10 +1133,10 @@ static void applesmc_release_accelerometer(void) + static __initdata struct dmi_match_data applesmc_dmi_data[] = { + /* MacBook Pro: accelerometer, backlight and temperature set 0 */ + { .accelerometer = 1, .light = 1, .temperature_set = 0 }, +-/* MacBook: accelerometer and temperature set 0 */ +- { .accelerometer = 1, .light = 0, .temperature_set = 0 }, +-/* MacBook: temperature set 1 */ +- { .accelerometer = 0, .light = 0, .temperature_set = 1 } ++/* MacBook: accelerometer and temperature set 1 */ ++ { .accelerometer = 1, .light = 0, .temperature_set = 1 }, ++/* MacMini: temperature set 2 */ ++ { .accelerometer = 0, .light = 0, .temperature_set = 2 } + }; + + /* Note that DMI_MATCH(...,"MacBook") will match "MacBookPro1,1". Modified: trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch =================================================================== --- trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch 2007-06-24 09:03:48 UTC (rev 132) +++ trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch 2007-06-27 13:14:46 UTC (rev 133) @@ -26,7 +26,7 @@ help This driver provides support for the Apple System Management diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c -index e523851..ff56afd 100644 +index fd1281f..eb81a64 100644 --- a/drivers/hwmon/applesmc.c +++ b/drivers/hwmon/applesmc.c @@ -28,7 +28,7 @@ @@ -38,7 +38,7 @@ #include <linux/kernel.h> #include <linux/module.h> #include <linux/timer.h> -@@ -67,9 +67,9 @@ +@@ -59,9 +59,9 @@ #define LIGHT_SENSOR_LEFT_KEY "ALV0" /* r-o {alv (6 bytes) */ #define LIGHT_SENSOR_RIGHT_KEY "ALV1" /* r-o {alv (6 bytes) */ @@ -50,7 +50,7 @@ #define MOTION_SENSOR_X_KEY "MO_X" /* r-o sp78 (2 bytes) */ #define MOTION_SENSOR_Y_KEY "MO_Y" /* r-o sp78 (2 bytes) */ -@@ -120,7 +120,7 @@ static const char* fan_speed_keys[] = { +@@ -99,7 +99,7 @@ static const char* fan_speed_keys[] = { #define INIT_TIMEOUT_MSECS 5000 /* wait up to 5s for device init ... */ #define INIT_WAIT_MSECS 50 /* ... in 50ms increments */ @@ -59,7 +59,7 @@ #define APPLESMC_INPUT_FUZZ 4 /* input event threshold */ #define APPLESMC_INPUT_FLAT 4 -@@ -142,8 +142,7 @@ static const int debug; +@@ -121,8 +121,7 @@ static const int debug; static struct platform_device *pdev; static s16 rest_x; static s16 rest_y; @@ -69,7 +69,7 @@ static struct class_device *hwmon_class_dev; /* Indicates whether this computer has an accelerometer. */ -@@ -155,7 +154,7 @@ static unsigned int applesmc_light; +@@ -134,7 +133,7 @@ static unsigned int applesmc_light; /* Indicates which temperature sensors set to use. */ static unsigned int applesmc_temperature_set; @@ -78,7 +78,7 @@ /* * Last index written to key_at_index sysfs file, and value to use for all other -@@ -593,27 +592,12 @@ static void applesmc_calibrate(void) +@@ -451,27 +450,12 @@ static void applesmc_calibrate(void) rest_x = -rest_x; } @@ -109,7 +109,7 @@ if (applesmc_read_motion_sensor(SENSOR_X, &x)) goto out; -@@ -621,13 +605,11 @@ static void applesmc_idev_poll(unsigned long unused) +@@ -479,13 +463,11 @@ static void applesmc_idev_poll(unsigned long unused) goto out; x = -x; @@ -126,7 +126,7 @@ mutex_unlock(&applesmc_lock); } -@@ -959,8 +941,7 @@ static ssize_t applesmc_key_at_index_read_show(struct device *dev, +@@ -817,8 +799,7 @@ static ssize_t applesmc_key_at_index_read_show(struct device *dev, if (!ret) { return info[0]; @@ -136,7 +136,7 @@ return ret; } } -@@ -1359,6 +1340,7 @@ static int applesmc_dmi_match(struct dmi_system_id *id) +@@ -1089,6 +1070,7 @@ static int applesmc_dmi_match(struct dmi_system_id *id) /* Create accelerometer ressources */ static int applesmc_create_accelerometer(void) { @@ -144,7 +144,7 @@ int ret; ret = sysfs_create_group(&pdev->dev.kobj, -@@ -1366,40 +1348,37 @@ static int applesmc_create_accelerometer(void) +@@ -1096,40 +1078,37 @@ static int applesmc_create_accelerometer(void) if (ret) goto out; @@ -199,7 +199,7 @@ out_sysfs: sysfs_remove_group(&pdev->dev.kobj, &accelerometer_attributes_group); -@@ -1412,8 +1391,8 @@ out: +@@ -1142,8 +1121,8 @@ out: /* Release all ressources used by the accelerometer */ static void applesmc_release_accelerometer(void) { @@ -210,7 +210,7 @@ sysfs_remove_group(&pdev->dev.kobj, &accelerometer_attributes_group); } -@@ -1450,8 +1429,6 @@ static int __init applesmc_init(void) +@@ -1180,8 +1159,6 @@ static int __init applesmc_init(void) int count; int i; Modified: trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch =================================================================== --- trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch 2007-06-24 09:03:48 UTC (rev 132) +++ trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch 2007-06-27 13:14:46 UTC (rev 133) @@ -5,11 +5,11 @@ --- - drivers/hwmon/applesmc.c | 316 +++++++++++++++++++++++++++++++++++++++++++--- - 1 files changed, 293 insertions(+), 23 deletions(-) + drivers/hwmon/applesmc.c | 321 +++++++++++++++++++++++++++++++++++++++++++--- + 1 files changed, 298 insertions(+), 23 deletions(-) diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c -index fd1281f..e523851 100644 +index 232cbad..933a72d 100644 --- a/drivers/hwmon/applesmc.c +++ b/drivers/hwmon/applesmc.c @@ -39,14 +39,20 @@ @@ -41,12 +41,12 @@ + #define LIGHT_SENSOR_LEFT_KEY "ALV0" /* r-o {alv (6 bytes) */ #define LIGHT_SENSOR_RIGHT_KEY "ALV1" /* r-o {alv (6 bytes) */ - #define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */ + #define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */ @@ -68,6 +76,19 @@ #define MOTION_SENSOR_Z_KEY "MO_Z" /* r-o sp78 (2 bytes) */ #define MOTION_SENSOR_KEY "MOCN" /* r/w ui16 */ -+/* ++/* + * Interrupt controls. + * If the norm of the position (sqrt(MO_X^2+MO_Y^2+MO_Z^2)) is smaller than + * MOLT (free fall), or bigger than MOHT (high acceleration) for longer than the @@ -62,18 +62,18 @@ #define FANS_COUNT "FNum" /* r-o ui8 */ #define FANS_MANUAL "FS! " /* r-w ui16 */ #define FAN_ACTUAL_SPEED "F0Ac" /* r-o fpe2 (2 bytes) */ -@@ -348,12 +369,79 @@ static int applesmc_read_motion_sensor(int index, s16* value) +@@ -351,12 +372,83 @@ static int applesmc_read_motion_sensor(int index, s16* value) } /* -+ * applesmc_init_check_key_value - checks if a given key contains the bytes in ++ * applesmc_init_check_key_value - checks if a given key contains the bytes in + * buffer, if not, writes these bytes. + * In case of failure retry every INIT_WAIT_MSECS msec, and timeout if it + * waited more than INIT_TIMEOUT_MSECS in total. + * Returns zero on success or a negative error on failure. Callers must + * hold applesmc_lock. + */ -+static int applesmc_init_check_key_value(const char* key, u8* buffer, u8 len) ++static int applesmc_init_check_key_value(const char *key, u8 *buffer, u8 len) +{ + int total, ret, i, compare; + u8 rdbuffer[APPLESMC_MAX_DATA_LENGTH]; @@ -86,7 +86,8 @@ + } + + for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) { -+ if (!(ret = applesmc_read_key(key, rdbuffer, len))) { ++ ret = applesmc_read_key(key, rdbuffer, len); ++ if (!ret) { + compare = 1; + for (i = 0; i < len; i++) { + if (rdbuffer[i] != buffer[i]) { @@ -97,7 +98,7 @@ + + if (compare) { + return 0; -+ } ++ } + } + ret = applesmc_write_key(key, buffer, len); + msleep(INIT_WAIT_MSECS); @@ -115,17 +116,20 @@ + + switch (int_type) { + case 0x60: -+ printk("applesmc: received a free fall interrupt\n"); ++ printk(KERN_INFO "applesmc: received a free fall interrupt\n"); + break; + case 0x6f: -+ printk("applesmc: received a high acceleration interrupt\n"); ++ printk(KERN_INFO ++ "applesmc: received a high acceleration interrupt\n"); + break; + case 0x80: -+ printk("applesmc: received a shock interrupt\n"); ++ printk(KERN_INFO "applesmc: received a shock interrupt\n"); + break; + default: -+ printk("applesmc: received an unknown interrupt %x\n", int_type); -+ } ++ printk(KERN_INFO ++ "applesmc: received an unknown interrupt %x\n", ++ int_type); ++ } + + return IRQ_HANDLED; +} @@ -143,7 +147,7 @@ u8 buffer[2]; if (!applesmc_accelerometer) -@@ -361,32 +449,79 @@ static int applesmc_device_init(void) +@@ -364,32 +456,79 @@ static int applesmc_device_init(void) mutex_lock(&applesmc_lock); @@ -172,7 +176,7 @@ - buffer[1] = 0x00; - applesmc_write_key(MOTION_SENSOR_KEY, buffer, 2); + ret1 = applesmc_write_key(INTERRUPT_OK_KEY, buffer, 1); -+ msleep(INIT_WAIT_MSECS); + msleep(INIT_WAIT_MSECS); + + if (!ret1) + break; @@ -193,9 +197,10 @@ + if (ret1 || ret2) { + printk(KERN_WARNING "applesmc: Cannot set motion sensor " + "interrupt interval, might not receive " -+ "some interrupts."); -+ } -+ ++ "some interrupts."); + } + +- printk(KERN_WARNING "applesmc: failed to init the device\n"); + buffer[0] = 0x00; + buffer[1] = 0x60; + ret1 = applesmc_init_check_key_value(MOTION_LOW_NORM, buffer, 2); @@ -207,14 +212,14 @@ + if (ret1 || ret2) { + printk(KERN_WARNING "applesmc: Cannot set motion sensor " + "min/max norm parameters, " -+ "might not receive some interrupts."); ++ "might not receive some interrupts."); + } + + /* Mysterious key. */ + buffer[0] = 0x01; + for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) { + ret1 = applesmc_write_key(MSDW_KEY, buffer, 1); - msleep(INIT_WAIT_MSECS); ++ msleep(INIT_WAIT_MSECS); + + if (!ret1) + break; @@ -229,9 +234,8 @@ + printk(KERN_WARNING "applesmc: failed to init " + "the accelerometer\n"); + goto out; - } - -- printk(KERN_WARNING "applesmc: failed to init the device\n"); ++ } ++ + ret1 = request_irq(APPLESMC_IRQ, applesmc_irq_handler, IRQF_DISABLED, + "applesmc_irq_handler", NULL); + @@ -245,7 +249,7 @@ out: mutex_unlock(&applesmc_lock); -@@ -431,9 +566,16 @@ static int applesmc_resume(struct platform_device *dev) +@@ -434,9 +573,16 @@ static int applesmc_resume(struct platform_device *dev) return applesmc_device_init(); } @@ -262,7 +266,7 @@ .driver = { .name = "applesmc", .owner = THIS_MODULE, -@@ -913,6 +1055,122 @@ static ssize_t applesmc_key_at_index_store(struct device *dev, +@@ -898,6 +1044,123 @@ static ssize_t applesmc_key_at_index_store(struct device *dev, return count; } @@ -272,12 +276,12 @@ + int ret; + unsigned int value = 0; + u8 buffer[2]; -+ char* key; ++ char *key; + int length; + struct sensor_device_attribute_2 *sensor_attr = + to_sensor_dev_attr_2(attr); + -+ switch(sensor_attr->index) { ++ switch (sensor_attr->index) { + case 0: + key = MOTION_LOW_NORM_INTERVAL; + length = 1; @@ -295,7 +299,8 @@ + length = 2; + break; + default: -+ printk("Invalid index for applesmc_accelerometer_show"); ++ printk(KERN_ERR ++ "Invalid index for applesmc_accelerometer_show"); + return -EINVAL; + } + @@ -325,12 +330,12 @@ + int ret; + u32 value; + u8 buffer[2]; -+ char* key; ++ char *key; + int length; + struct sensor_device_attribute_2 *sensor_attr = + to_sensor_dev_attr_2(attr); + -+ switch(sensor_attr->index) { ++ switch (sensor_attr->index) { + case 0: + key = MOTION_LOW_NORM_INTERVAL; + length = 1; @@ -385,7 +390,7 @@ static struct led_classdev applesmc_backlight = { .name = "smc:kbd_backlight", .default_trigger = "nand-disk", -@@ -924,10 +1182,22 @@ static DEVICE_ATTR(name, 0444, applesmc_name_show, NULL); +@@ -909,10 +1172,22 @@ static DEVICE_ATTR(name, 0444, applesmc_name_show, NULL); static DEVICE_ATTR(position, 0444, applesmc_position_show, NULL); static DEVICE_ATTR(calibrate, 0644, applesmc_calibrate_show, applesmc_calibrate_store); Modified: trunk/kernel/mactel-patches-2.6.22/series =================================================================== --- trunk/kernel/mactel-patches-2.6.22/series 2007-06-24 09:03:48 UTC (rev 132) +++ trunk/kernel/mactel-patches-2.6.22/series 2007-06-27 13:14:46 UTC (rev 133) @@ -1,9 +1,10 @@ -# This series applies on GIT commit 75154f402ef18e459ff97ddece25656b6c2b329c +# This series applies on GIT commit 48d8d7ee5dd17c64833e0343ab4ae8ef01cc2648 +applesmc-use-input-polldev.patch +applesmc-add-macbook-temperature-keys.patch sigmatel_audio2.patch sigmatel_audio3.patch applesmc_int.patch appletouch.patch appleir.patch -applesmc-use-input-polldev.patch appletouch-shut-up-when-it-has-nothing-to-say.patch appletouch-fix-run-amok-problem.patch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Mactel-linux-devel mailing list Mactel-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mactel-linux-devel