Re: [PATCH] applesmc: Re-work SMC comms v2

From: Andreas Kemnade
Date: Thu Nov 05 2020 - 03:12:46 EST


On Thu, 5 Nov 2020 18:26:24 +1100
Brad Campbell <brad@xxxxxxxxxxxxxxx> wrote:

> 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.
>
> v2 : Address logic and coding style
>
> Reported-by: Andreas Kemnade <andreas@xxxxxxxxxxxx>
> Fixes: fff2d0f701e6 ("hwmon: (applesmc) avoid overlong udelay()")
> Signed-off-by: Brad Campbell <brad@xxxxxxxxxxxxxxx>
>
Still works here:
Tested-by: Andreas Kemnade <andreas@xxxxxxxxxxxx> # MacBookAir6,2