aboutsummaryrefslogtreecommitdiff
path: root/hw/display
diff options
context:
space:
mode:
authorKlaus Jensen <k.jensen@samsung.com>2022-06-30 09:21:14 +0200
committerCédric Le Goater <clg@kaod.org>2022-06-30 09:21:14 +0200
commita78e9839ae5eb0b95d9db8dd672e2977d2831605 (patch)
tree1c0d7b678c12f55dd03ff41dc850578d29409be8 /hw/display
parent37fa5ca42623ef08ac99c8d927b6a3af0c76dc7b (diff)
downloadqemu-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/display')
-rw-r--r--hw/display/sii9022.c2
-rw-r--r--hw/display/ssd0303.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/hw/display/sii9022.c b/hw/display/sii9022.c
index b591a58..664fd40 100644
--- a/hw/display/sii9022.c
+++ b/hw/display/sii9022.c
@@ -76,6 +76,8 @@ static int sii9022_event(I2CSlave *i2c, enum i2c_event event)
break;
case I2C_NACK:
break;
+ default:
+ return -1;
}
return 0;
diff --git a/hw/display/ssd0303.c b/hw/display/ssd0303.c
index aeae22d..d67b0ad 100644
--- a/hw/display/ssd0303.c
+++ b/hw/display/ssd0303.c
@@ -196,6 +196,8 @@ static int ssd0303_event(I2CSlave *i2c, enum i2c_event event)
case I2C_NACK:
/* Nothing to do. */
break;
+ default:
+ return -1;
}
return 0;