Commit 02fcbd14 authored by Henrik Rydberg's avatar Henrik Rydberg Committed by Linus Torvalds

hwmon: applesmc: prolong status wait

The time to wait for a status change while reading or writing to the SMC
ports is a balance between read reliability and system performance.  The
current setting yields rougly three errors in a thousand when
simultaneously reading three different temperature values on a Macbook
Air.  This patch increases the setting to a value yielding roughly one
error in ten thousand, with no noticable system performance degradation.
Signed-off-by: default avatarHenrik Rydberg <rydberg@euromail.se>
Cc: Nicolas Boichat <nicolas@boichat.ch>
Cc: Riki Oktarianto <rkoktarianto@gmail.com>
Cc: Mark M. Hoffman <mhoffman@lightlink.com>
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 84d2d7f2
...@@ -163,7 +163,7 @@ static unsigned int key_at_index; ...@@ -163,7 +163,7 @@ static unsigned int key_at_index;
static struct workqueue_struct *applesmc_led_wq; static struct workqueue_struct *applesmc_led_wq;
/* /*
* __wait_status - Wait up to 2ms for the status port to get a certain value * __wait_status - Wait up to 10ms for the status port to get a certain value
* (masked with 0x0f), returning zero if the value is obtained. Callers must * (masked with 0x0f), returning zero if the value is obtained. Callers must
* hold applesmc_lock. * hold applesmc_lock.
*/ */
...@@ -173,7 +173,7 @@ static int __wait_status(u8 val) ...@@ -173,7 +173,7 @@ static int __wait_status(u8 val)
val = val & APPLESMC_STATUS_MASK; val = val & APPLESMC_STATUS_MASK;
for (i = 0; i < 200; i++) { for (i = 0; i < 1000; i++) {
if ((inb(APPLESMC_CMD_PORT) & APPLESMC_STATUS_MASK) == val) { if ((inb(APPLESMC_CMD_PORT) & APPLESMC_STATUS_MASK) == val) {
if (debug) if (debug)
printk(KERN_DEBUG printk(KERN_DEBUG
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment