i2c: piix4: Disable completely the IMC during SMBUS_BLOCK_DATA
authorRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Tue, 10 Oct 2017 16:11:15 +0000 (18:11 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Fri, 13 Oct 2017 19:05:56 +0000 (21:05 +0200)
commit88fa2dfb075a20c3464e3d303c57dd8ced9e8309
tree21e4be535e1e55bb18b5d2f6b0195f6b917277a6
parent0fe16195f89173652cf111d7b384941b00c5aabd
i2c: piix4: Disable completely the IMC during SMBUS_BLOCK_DATA

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@gmail.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-piix4.c