[PATCH] i2c: virtio: mark device ready before registering the adapter

Alexis Bouzigues via B4 Relay posted 1 patch 1 week, 2 days ago
drivers/i2c/busses/i2c-virtio.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] i2c: virtio: mark device ready before registering the adapter
Posted by Alexis Bouzigues via B4 Relay 1 week, 2 days ago
From: Alexis Bouzigues <BouziguesAlexis@JohnDeere.com>

virtio_i2c_probe() synchronously probes child i2c drivers on the bus,
but peripherals may use the bus at probe for tasks like reading a chip
id. The vhost-user-i2c backend stalls at such probes unless DRIVER_OK
is already set before the virtqueue is first kicked.

Set DRIVER_OK explicitly before i2c_add_adapter(), as done for the
same reason in commit f5866db64f34 ("virtio_console: enable VQs
early") and commit 71e4b8bf0482 ("virtio_rpmsg: set DRIVER_OK before
using device").

Signed-off-by: Alexis Bouzigues <BouziguesAlexis@JohnDeere.com>
---
 drivers/i2c/busses/i2c-virtio.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/i2c/busses/i2c-virtio.c b/drivers/i2c/busses/i2c-virtio.c
index 7b0b0bff8000..5da6fef92bec 100644
--- a/drivers/i2c/busses/i2c-virtio.c
+++ b/drivers/i2c/busses/i2c-virtio.c
@@ -222,6 +222,8 @@ static int virtio_i2c_probe(struct virtio_device *vdev)
 	 */
 	ACPI_COMPANION_SET(&vi->adap.dev, ACPI_COMPANION(vdev->dev.parent));
 
+	virtio_device_ready(vdev);
+
 	ret = i2c_add_adapter(&vi->adap);
 	if (ret)
 		virtio_i2c_del_vqs(vdev);

---
base-commit: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32
change-id: 20260529-virtio-i2c-driver-ok-96444c2e5398

Best regards,
-- 
Alexis Bouzigues <BouziguesAlexis@JohnDeere.com>
Re: [PATCH] i2c: virtio: mark device ready before registering the adapter
Posted by Wolfram Sang 1 week, 1 day ago
On Fri, May 29, 2026 at 09:28:14AM -0500, Alexis Bouzigues via B4 Relay wrote:
> From: Alexis Bouzigues <BouziguesAlexis@JohnDeere.com>
> 
> virtio_i2c_probe() synchronously probes child i2c drivers on the bus,
> but peripherals may use the bus at probe for tasks like reading a chip
> id. The vhost-user-i2c backend stalls at such probes unless DRIVER_OK
> is already set before the virtqueue is first kicked.
> 
> Set DRIVER_OK explicitly before i2c_add_adapter(), as done for the
> same reason in commit f5866db64f34 ("virtio_console: enable VQs
> early") and commit 71e4b8bf0482 ("virtio_rpmsg: set DRIVER_OK before
> using device").
> 
> Signed-off-by: Alexis Bouzigues <BouziguesAlexis@JohnDeere.com>

Applied to for-current, thanks!