media: ccs: Obtain media bus formats before initialising up sub-devices
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 2 Oct 2023 10:29:22 +0000 (13:29 +0300)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Sat, 7 Oct 2023 08:55:48 +0000 (10:55 +0200)
The available mbus codes will soon be needed earlier, at the time
sub-devices are initialisaed. This is due to calling init_cfg() op via the
v4l2_subdev_init_finalize().

Move ccs_get_mbus_formats() before ccs_init_subdev() calls.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/i2c/ccs/ccs-core.c

index e2669e9..422fb6a 100644 (file)
@@ -3553,6 +3553,12 @@ static int ccs_probe(struct i2c_client *client)
        sensor->pll.ext_clk_freq_hz = sensor->hwcfg.ext_clk;
        sensor->pll.scale_n = CCS_LIM(sensor, SCALER_N_MIN);
 
+       rval = ccs_get_mbus_formats(sensor);
+       if (rval) {
+               rval = -ENODEV;
+               goto out_cleanup;
+       }
+
        rval = ccs_init_subdev(sensor, sensor->scaler, " scaler", 2,
                               MEDIA_ENT_F_PROC_VIDEO_SCALER);
        if (rval)
@@ -3574,12 +3580,6 @@ static int ccs_probe(struct i2c_client *client)
        if (rval)
                goto out_cleanup;
 
-       rval = ccs_get_mbus_formats(sensor);
-       if (rval) {
-               rval = -ENODEV;
-               goto out_cleanup;
-       }
-
        rval = ccs_init_late_controls(sensor);
        if (rval) {
                rval = -ENODEV;