linux/drivers
Henrik Rydberg 84d2d7f2ee hwmon: applesmc: fix the 'wait status failed: c != 8' problem
On many Macbooks since mid 2007, the Pro, C2D and Air models, applesmc
fails to read some or all SMC ports.  This problem has various effects,
such as flooded logfiles, malfunctioning temperature sensors,
accelerometers failing to initialize, and difficulties getting backlight
functionality to work properly.

The root of the problem seems to be the command protocol.  The current
code sends out a command byte, then repeatedly polls for an ack before
continuing to send or recieve data.  From experiments leading to this
patch, it seems the command protocol never quite worked or changed so that
one now sends a command byte, waits a little bit, polls for an ack, and if
it fails, repeats the whole thing by sending the command byte again.

This patch implements a send_command function according to the new
interpretation of the protocol, and should work also for earlier models.

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>
2008-10-20 08:52:35 -07:00
..
accessibility
acpi rtc-cmos: move wake setup from ACPI glue into RTC driver 2008-10-14 16:08:21 -07:00
amba
ata Merge commit 'origin' 2008-10-15 11:31:54 +11:00
atm Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
auxdisplay
base memory_probe: fix wrong sysfs file attribute 2008-10-20 08:52:32 -07:00
block ub: remove sg_stat 2008-10-17 14:40:52 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2008-10-13 14:12:40 -07:00
cdrom
char Fix documentation of sysrq-q 2008-10-20 08:52:34 -07:00
clocksource
connector
cpufreq
cpuidle
crypto
dca device create: misc: convert device_create_drvdata to device_create 2008-10-16 09:24:43 -07:00
dio
dma
edac edac i5000: fix thermal issues 2008-10-16 11:21:48 -07:00
eisa
firewire firewire: fix ioctl() return code 2008-10-15 22:21:10 +02:00
firmware Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-16 15:17:40 -07:00
gpio gpiolib: request/free hooks 2008-10-16 11:21:40 -07:00
gpu drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831) 2008-10-18 07:18:05 +10:00
hid USB: remove warn macro from HID core 2008-10-17 14:41:09 -07:00
hwmon hwmon: applesmc: fix the 'wait status failed: c != 8' problem 2008-10-20 08:52:35 -07:00
i2c hwmon: (ams) Convert to a new-style i2c driver 2008-10-17 17:51:12 +02:00
ide block: remove __generic_unplug_device() from exports 2008-10-17 14:03:08 +02:00
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-10-16 15:02:24 -07:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-10-17 09:00:23 -07:00
input USB: remove info() macro from usb input drivers 2008-10-17 14:41:10 -07:00
isdn device create: misc: convert device_create_drvdata to device_create 2008-10-16 09:24:43 -07:00
leds device create: misc: convert device_create_drvdata to device_create 2008-10-16 09:24:43 -07:00
lguest
macintosh device create: misc: convert device_create_drvdata to device_create 2008-10-16 09:24:43 -07:00
mca
md Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-10-17 09:00:23 -07:00
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2008-10-17 15:43:52 -07:00
memstick
message i2o: Fix 32/64bit DMA locking 2008-10-16 11:21:38 -07:00
mfd Merge branch 's3c-move' into devel 2008-10-14 22:24:51 +01:00
misc HP-WMI: additional keycode (or typo) 2008-10-20 08:52:34 -07:00
mmc Merge branch 'fixes' into for-linus 2008-10-15 23:16:07 +01:00
mtd USB: remove info() macro from usb mtd drivers 2008-10-17 14:41:10 -07:00
net USB: remove info() macro from usb network drivers 2008-10-17 14:41:10 -07:00
nubus nubus: fix mis-indented statement 2008-10-16 11:21:30 -07:00
of Merge commit 'gcl/gcl-next' 2008-10-14 10:11:27 +11:00
oprofile Merge branch 'linus' into oprofile-v2 2008-10-13 11:05:51 +02:00
parisc
parport parport: remove CVS keywords 2008-10-16 11:21:49 -07:00
pci intel-iommu: typo fix and correct word in the comment 2008-10-20 08:52:34 -07:00
pcmcia [ARM] 5307/1: pxa: fix CM-X2XX PCMCIA build error 2008-10-15 12:34:50 +01:00
pnp {pci,pnp} quirks.c: don't use deprecated print_fn_descriptor_symbol() 2008-10-16 16:11:43 -07:00
power Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2008-10-16 12:40:26 -07:00
ps3
rapidio
regulator da903x: add regulator support for DA9030/DA9034 2008-10-13 21:51:57 +01:00
rtc rtc: rtc-ds1286 and rtc-m48t35 need <linux/io.h> 2008-10-16 11:32:38 -07:00
s390 Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2008-10-17 09:29:55 -07:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-10-17 09:00:23 -07:00
serial serial_txx9: use %lx for iobase 2008-10-20 08:50:24 -07:00
sh
sn
spi Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2008-10-16 12:40:26 -07:00
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2008-10-13 14:12:40 -07:00
staging staging: at76_usb wireless driver 2008-10-13 14:33:13 -07:00
tc
telephony telephony: remove CVS keywords 2008-10-16 11:21:45 -07:00
thermal
uio UIO: Fix mapping of logical and virtual memory 2008-10-16 09:24:54 -07:00
usb USB: remove err() macro from more usb drivers 2008-10-17 14:41:14 -07:00
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2008-10-16 12:40:26 -07:00
virtio
w1 w1: new driver. DS2431 chip 2008-10-16 11:21:51 -07:00
watchdog Merge branch 's3c-move' into devel 2008-10-14 22:24:51 +01:00
xen
zorro
Kconfig Staging: add Kconfig entries and Makefile infrastructure 2008-10-10 15:31:06 -07:00
Makefile Staging: add Kconfig entries and Makefile infrastructure 2008-10-10 15:31:06 -07:00