media: tc358743: register v4l2 async device only after successful setup
authorAlexander Stein <alexander.stein@ew.tq-group.com>
Wed, 10 Jan 2024 09:01:11 +0000 (10:01 +0100)
committerRobert Foss <rfoss@kernel.org>
Mon, 22 Jan 2024 15:36:43 +0000 (16:36 +0100)
Ensure the device has been setup correctly before registering the v4l2
async device, thus allowing userspace to access.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Fixes: 4c5211a10039 ("[media] tc358743: register v4l2 asynchronous subdevice")
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240110090111.458115-1-alexander.stein@ew.tq-group.com
drivers/media/i2c/tc358743.c

index 2785935da497b865f1bf5831d6785350d55747a5..558152575d1022df74deed355eeee5c6f80b3cd1 100644 (file)
@@ -2091,9 +2091,6 @@ static int tc358743_probe(struct i2c_client *client)
        state->mbus_fmt_code = MEDIA_BUS_FMT_RGB888_1X24;
 
        sd->dev = &client->dev;
-       err = v4l2_async_register_subdev(sd);
-       if (err < 0)
-               goto err_hdl;
 
        mutex_init(&state->confctl_mutex);
 
@@ -2151,6 +2148,10 @@ static int tc358743_probe(struct i2c_client *client)
        if (err)
                goto err_work_queues;
 
+       err = v4l2_async_register_subdev(sd);
+       if (err < 0)
+               goto err_work_queues;
+
        v4l2_info(sd, "%s found @ 0x%x (%s)\n", client->name,
                  client->addr << 1, client->adapter->name);