Brad Campbell 4d64bb4ba5 hwmon: (applesmc) Re-work SMC comms
Commit fff2d0f701e6 ("hwmon: (applesmc) avoid overlong udelay()")
introduced an issue whereby communication with the SMC became
unreliable with write errors like :

[  120.378614] applesmc: send_byte(0x00, 0x0300) fail: 0x40
[  120.378621] applesmc: LKSB: write data fail
[  120.512782] applesmc: send_byte(0x00, 0x0300) fail: 0x40
[  120.512787] applesmc: LKSB: write data fail

The original code appeared to be timing sensitive and was not reliable
with the timing changes in the aforementioned commit.

This patch re-factors the SMC communication to remove the timing
dependencies and restore function with the changes previously
committed.

Tested on : MacbookAir6,2 MacBookPro11,1 iMac12,2, MacBookAir1,1,
MacBookAir3,1

Fixes: fff2d0f701e6 ("hwmon: (applesmc) avoid overlong udelay()")
Reported-by: Andreas Kemnade <andreas@kemnade.info>
Tested-by: Andreas Kemnade <andreas@kemnade.info> # MacBookAir6,2
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Brad Campbell <brad@fnarfbargle.com>
Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>
Link: https://lore.kernel.org/r/194a7d71-a781-765a-d177-c962ef296b90@fnarfbargle.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2020-11-12 07:00:59 -08:00
..
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-24 07:44:51 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-11-12 07:00:59 -08:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:41 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-10-14 15:56:58 -07:00
2020-09-23 09:42:39 -07:00
2020-05-22 06:28:38 -07:00
2020-09-23 09:42:40 -07:00
2020-10-04 08:40:10 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-10-14 15:56:58 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-11-12 07:00:54 -08:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00
2020-09-23 09:42:39 -07:00