diff options
author | Klaus Jensen <k.jensen@samsung.com> | 2022-06-30 09:21:14 +0200 |
---|---|---|
committer | Cédric Le Goater <clg@kaod.org> | 2022-06-30 09:21:14 +0200 |
commit | a78e9839ae5eb0b95d9db8dd672e2977d2831605 (patch) | |
tree | 1c0d7b678c12f55dd03ff41dc850578d29409be8 /hw/i2c/smbus_slave.c | |
parent | 37fa5ca42623ef08ac99c8d927b6a3af0c76dc7b (diff) | |
download | qemu-a78e9839ae5eb0b95d9db8dd672e2977d2831605.zip qemu-a78e9839ae5eb0b95d9db8dd672e2977d2831605.tar.gz qemu-a78e9839ae5eb0b95d9db8dd672e2977d2831605.tar.bz2 |
hw/i2c: add asynchronous send
Add an asynchronous version of i2c_send() that requires the slave to
explicitly acknowledge on the bus with i2c_ack().
The current master must use the new i2c_start_send_async() to indicate
that it wants to do an asynchronous transfer. This allows the i2c core
to check if the target slave supports this or not. This approach relies
on adding a new enum i2c_event member, which is why a bunch of other
devices needs changes in their event handling switches.
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Message-Id: <20220601210831.67259-5-its@irrelevant.dk>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220630045133.32251-6-me@pjd.dev>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Diffstat (limited to 'hw/i2c/smbus_slave.c')
-rw-r--r-- | hw/i2c/smbus_slave.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/i2c/smbus_slave.c b/hw/i2c/smbus_slave.c index 5d10e27..feb3ec6 100644 --- a/hw/i2c/smbus_slave.c +++ b/hw/i2c/smbus_slave.c @@ -143,6 +143,10 @@ static int smbus_i2c_event(I2CSlave *s, enum i2c_event event) dev->mode = SMBUS_CONFUSED; break; } + break; + + default: + return -1; } return 0; |