From: Titus Rwantare <tit...@google.com> The probing process of the generic pmbus driver generates faults to determine if functions are available. These faults were not always cleared resulting in probe failures.
Reviewed-by: Patrick Venture <vent...@google.com> Signed-off-by: Titus Rwantare <tit...@google.com> Message-ID: <20231023-staging-pmbus-v3-v4-7-07a8cb7cd...@google.com> Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- hw/i2c/pmbus_device.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/i2c/pmbus_device.c b/hw/i2c/pmbus_device.c index 3bce39e84e..481e158380 100644 --- a/hw/i2c/pmbus_device.c +++ b/hw/i2c/pmbus_device.c @@ -1244,6 +1244,11 @@ static int pmbus_write_data(SMBusDevice *smd, uint8_t *buf, uint8_t len) pmdev->in_buf = buf; pmdev->code = buf[0]; /* PMBus command code */ + + if (pmdev->code == PMBUS_CLEAR_FAULTS) { + pmbus_clear_faults(pmdev); + } + if (len == 1) { /* Single length writes are command codes only */ return 0; } -- 2.41.0