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: Henrik 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
84d2d7f2ee
commit
02fcbd144d
@ -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)
|
|||||||
|
|
||||||
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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user