linux_dsm_epyc7002/drivers/hwmon
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
..
ams hwmon: (ams) Simplify IRQ handling routine 2008-10-17 17:51:13 +02:00
abituguru3.c hwmon: (abituguru3) Enable DMI probing feature on Abit AT8 32X 2008-10-09 15:33:59 +02:00
abituguru.c Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 2007-10-14 12:50:19 -07:00
ad7414.c hwmon: (ad7414) Make ad7414_update_device() static 2008-09-20 10:25:20 +02:00
ad7418.c hwmon: (ad7418) Convert to a new-style i2c driver 2008-07-16 19:30:08 +02:00
adcxx.c hwmon: ADC124S501 generic driver 2008-08-15 08:35:43 -07:00
adm1021.c hwmon: (adm1021) Convert to a new-style i2c driver 2008-07-16 19:30:08 +02:00
adm1025.c hwmon: (adm1025) Convert to a new-style i2c driver 2008-07-16 19:30:08 +02:00
adm1026.c hwmon: (adm1026) Prevent log spamming 2008-10-17 17:51:20 +02:00
adm1029.c hwmon: (adm1029) Use mask for fan_div value 2008-10-17 17:51:20 +02:00
adm1031.c hwmon: (adm1031) Convert to a new-style i2c driver 2008-07-16 19:30:09 +02:00
adm9240.c hwmon: (adm9240) Convert to a new-style i2c driver 2008-07-16 19:30:09 +02:00
ads7828.c hwmon: (ads7828) Convert to a new-style i2c driver 2008-07-16 19:30:10 +02:00
adt7470.c hwmon: (adt7470) Convert to a new-style i2c driver 2008-07-16 19:30:10 +02:00
adt7473.c Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 2008-08-01 11:33:19 -07:00
applesmc.c hwmon: applesmc: fix the 'wait status failed: c != 8' problem 2008-10-20 08:52:35 -07:00
asb100.c hwmon: (asb100) Convert to a new-style i2c driver 2008-07-16 19:30:11 +02:00
atxp1.c hwmon: (atxp1) Fix device detection logic 2008-09-20 10:25:19 +02:00
coretemp.c coretemp: recognize Nehalem CPUs 2008-08-15 08:35:44 -07:00
dme1737.c hwmon: (dme1737) Convert to a new-style i2c driver 2008-10-14 17:30:04 +02:00
ds1621.c hwmon: (ds1621) Convert to a new-style i2c driver 2008-07-16 19:30:11 +02:00
f71805f.c hwmon: Let the user override the detected Super-I/O device ID 2008-02-07 20:39:42 -05:00
f71882fg.c hwmon: (f71882fg) Delete needless forward declarations 2008-08-06 22:41:04 +02:00
f75375s.c hwmon: (f75375s) Drop legacy i2c driver 2008-07-16 19:30:11 +02:00
fscher.c hwmon: (fscher) Convert to a new-style i2c driver 2008-07-16 19:30:12 +02:00
fschmd.c hwmon: (fschmd) Convert to a new-style i2c driver 2008-07-16 19:30:12 +02:00
fscpos.c hwmon: (fscpos) Convert to a new-style i2c driver 2008-07-16 19:30:12 +02:00
gl518sm.c hwmon: (gl518sm) Convert to a new-style i2c driver 2008-07-16 19:30:13 +02:00
gl520sm.c hwmon: (gl520sm) Convert to a new-style i2c driver 2008-07-16 19:30:13 +02:00
hdaps.c Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into next 2008-07-21 00:55:14 -04:00
hwmon-vid.c hwmon-vid: Fix AMD K8 VID decoding 2008-08-15 11:50:15 -07:00
hwmon.c device create: misc: convert device_create_drvdata to device_create 2008-10-16 09:24:43 -07:00
i5k_amb.c i5k_amb: provide labels for temperature sensors 2008-08-15 08:35:43 -07:00
ibmaem.c hwmon: (ibmaem) Automatically load on IBM systems via DMI 2008-10-17 17:51:19 +02:00
ibmpex.c hwmon: (ibmpex) Automatically load on IBM systems via DMI 2008-10-17 17:51:19 +02:00
it87.c hwmon: (it87) Fix thermal sensor type values 2008-10-17 17:51:16 +02:00
k8temp.c hwmon: Convert from class_device to device 2007-10-09 22:56:30 -04:00
Kconfig hwmon: (lm90) Support MAX6646, MAX6647 and MAX6649 2008-10-17 17:51:11 +02:00
lm63.c hwmon: (lm63) Convert to a new-style i2c driver 2008-07-16 19:30:13 +02:00
lm70.c hwmon: (lm70) Convert semaphore to mutex 2007-11-08 08:42:46 -05:00
lm75.c hwmon: (lm75) Drop legacy i2c driver 2008-08-10 22:56:16 +02:00
lm75.h hwmon: Allow writing of negative trigger temperatures 2007-10-09 22:56:29 -04:00
lm77.c hwmon: (lm77) Convert to a new-style i2c driver 2008-07-16 19:30:13 +02:00
lm78.c hwmon: (lm78) Convert to a new-style i2c driver 2008-10-17 17:51:16 +02:00
lm80.c hwmon: (lm80) Convert to a new-style i2c driver 2008-07-16 19:30:14 +02:00
lm83.c hwmon: (lm83) Convert to a new-style i2c driver 2008-07-16 19:30:14 +02:00
lm85.c hwmon: (lm85) Better label names 2008-10-17 17:51:14 +02:00
lm87.c hwmon: (lm87) Add support for configuration through platform_data 2008-10-17 17:51:12 +02:00
lm90.c hwmon: (lm90) Don't spam the kernel log 2008-10-17 17:51:11 +02:00
lm92.c hwmon: (lm92) Convert to a new-style i2c driver 2008-07-16 19:30:15 +02:00
lm93.c hwmon: (lm93) Convert to a new-style i2c driver 2008-07-16 19:30:15 +02:00
Makefile Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
max1111.c hwmon: add max1111_read_channel() for use by sharpsl_pm 2008-09-23 22:04:32 +01:00
max1619.c hwmon: (max1619) Use inline functions instead of macros 2008-10-17 17:51:16 +02:00
max6650.c hwmon: (max6650) Convert to a new-style i2c driver 2008-07-16 19:30:16 +02:00
pc87360.c hwmon/pc87360 separate alarm files: add therm-min/max/crit-alarms 2008-10-20 08:52:35 -07:00
pc87427.c hwmon: Let the user override the detected Super-I/O device ID 2008-02-07 20:39:42 -05:00
sis5595.c hwmon: (sis5595) Split sis5595_attributes_opt 2007-11-08 08:42:45 -05:00
smsc47b397.c Merge branch 'smsc47b397-new-id' into release 2008-05-01 07:33:17 -04:00
smsc47m1.c hwmon: (smsc47m1) Add individual alarm files 2008-02-17 09:27:18 -05:00
smsc47m192.c hwmon: (smsc47m192) Convert to a new-style i2c driver 2008-07-16 19:30:16 +02:00
thmc50.c hwmon: (thmc50) Add support for critical temperature limits 2008-08-06 22:41:05 +02:00
ultra45_env.c sparc: Annotate of_device_id arrays with const or __initdata. 2008-08-31 01:23:17 -07:00
via686a.c hwmon: (via686a) Add individual alarm files 2008-02-17 09:27:18 -05:00
vt1211.c hwmon: Let the user override the detected Super-I/O device ID 2008-02-07 20:39:42 -05:00
vt8231.c hwmon: (vt8231) Update maintainer email address 2008-02-17 09:27:19 -05:00
w83l785ts.c hwmon: (w83l785ts) Convert to a new-style i2c driver 2008-07-16 19:30:18 +02:00
w83l786ng.c hwmon: (w83l786ng) Convert to a new-style i2c driver 2008-07-16 19:30:18 +02:00
w83627ehf.c hwmon: (w83627ehf) The W83627DHG has 8 VID pins 2008-02-07 20:39:45 -05:00
w83627hf.c hwmon: (w83627hf) Drop reset module parameter 2008-08-06 22:41:04 +02:00
w83781d.c hwmon: (w83781d) Use new style driver binding 2008-10-17 17:51:19 +02:00
w83791d.c hwmon: (w83791d) add support for thermal cruise mode 2008-10-17 17:51:17 +02:00
w83792d.c hwmon: (w83792d) Convert to a new-style i2c driver 2008-07-16 19:30:17 +02:00
w83793.c hwmon: (w83793) Convert to a new-style i2c driver 2008-07-16 19:30:17 +02:00