Hi all,

This series adds some resets for SMBus and for the I2C core. Along with
it, we make SMBus slave error printing a little more helpful.

These reset issues were very infrequent, they would maybe occur in 1 out
of hundreds of resets in our testing, but the way they happen is pretty
straightforward.
Basically as long as a reset happens in the middle of a transaction, the
state of the old transaction would still partially be there after the
reset. Once a new transaction comes in, the partial stale state can
cause the new transaction to incorrectly fail.

Thanks,
Joe

Joe Komlodi (4):
  hw/i2c: core: Add reset
  hw/i2c/smbus_slave: Add object path on error prints
  hw/i2c: smbus_slave: Reset state on reset
  hw/i2c: smbus: mux: Reset SMBusDevice state on reset

 hw/i2c/core.c                | 30 +++++++++++++++++++++++++-----
 hw/i2c/i2c_mux_pca954x.c     |  5 +++++
 hw/i2c/smbus_slave.c         | 20 ++++++++++++++++++--
 include/hw/i2c/i2c.h         |  6 +++++-
 include/hw/i2c/smbus_slave.h |  1 +
 5 files changed, 54 insertions(+), 8 deletions(-)

-- 
2.43.0.472.g3155946c3a-goog


Reply via email to