Re: [PATCH v3] i2c: piix4: Disable completely the IMC during SMBUS_BLOCK_DATA

From: Jean Delvare
Date: Tue Oct 10 2017 - 14:29:10 EST


On Tue, 10 Oct 2017 18:11:15 +0200, Ricardo Ribalda Delgado wrote:
> SMBUS_BLOCK_DATA transactions might fail due to a race condition with
> the IMC (Integrated Micro Controller), even when the IMC semaphore
> is used.
>
> This bug has been reported and confirmed by AMD, who suggested as a
> solution an IMC firmware upgrade (obtained via BIOS update) and
> disabling the IMC during SMBUS_BLOCK_DATA transactions.
>
> Even without the IMC upgrade, the SMBUS is much more stable with this
> patch.
>
> Tested on a Bettong-alike board.
>
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
> ---
> v3: Suggestions by Jean Delvare <jdelvare@xxxxxxx>
> -Group booleans in struct i2c_piix4_adaptada
> (Sorry about that, I thought your concern was the space between the
> new field and the rest)
> -Rename port regions
> -Rename definitions
> -Unify comment style
>
> v2: Suggestions by Jean Delvare <jdelvare@xxxxxxx>
> -Fix function definitions (static)
> -Add register definition
> -Use muxed_io interface
> -Improve comments
> -Keep old timeout
> -Rebase
>
> drivers/i2c/busses/i2c-piix4.c | 132 +++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 126 insertions(+), 6 deletions(-)
> (...)

Reviewed-by: Jean Delvare <jdelvare@xxxxxxx>

Great job, thanks Ricardo.

--
Jean Delvare
SUSE L3 Support