diff options
author | Corey Minyard <cminyard@mvista.com> | 2018-11-30 13:20:12 -0600 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2019-02-27 21:06:08 -0600 |
commit | 905cec6d11088e585fcedb3fd606510959ee50ff (patch) | |
tree | 72a23061b2a05e7fa89068afe89847c202ca6244 /include/hw/i2c | |
parent | bc15cde0c4acc9128f26ff78f99ce34a59200d5e (diff) |
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 <cminyard@mvista.com>
Diffstat (limited to 'include/hw/i2c')
-rw-r--r-- | include/hw/i2c/smbus_slave.h | 5 |
1 files changed, 5 insertions, 0 deletions
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); |