From 905cec6d11088e585fcedb3fd606510959ee50ff Mon Sep 17 00:00:00 2001 From: Corey Minyard Date: Fri, 30 Nov 2018 13:20:12 -0600 Subject: i2c:smbus: Correct the working of quick commands The logic of handling quick SMBus commands was wrong. If you get a finish event with no data, that's a quick command. Document the quick command while we are at it. Signed-off-by: Corey Minyard --- include/hw/i2c/smbus_slave.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include/hw/i2c') diff --git a/include/hw/i2c/smbus_slave.h b/include/hw/i2c/smbus_slave.h index 46b8948f0f..5ef1c72ad0 100644 --- a/include/hw/i2c/smbus_slave.h +++ b/include/hw/i2c/smbus_slave.h @@ -40,6 +40,11 @@ typedef struct SMBusDevice SMBusDevice; typedef struct SMBusDeviceClass { I2CSlaveClass parent_class; + + /* + * An operation with no data, special in SMBus. + * This may be NULL, quick commands are ignore in that case. + */ void (*quick_cmd)(SMBusDevice *dev, uint8_t read); void (*send_byte)(SMBusDevice *dev, uint8_t val); uint8_t (*receive_byte)(SMBusDevice *dev); -- cgit v1.2.3-55-g7522