]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: i2c: vd55g1: Setup sensor external clock before patching
authorBenjamin Mugnier <benjamin.mugnier@foss.st.com>
Wed, 11 Jun 2025 08:48:32 +0000 (10:48 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Aug 2025 16:41:24 +0000 (18:41 +0200)
[ Upstream commit df2f8fd91bde57d5d5aca6adddf7e988f2e8c60e ]

Proper clock configuration is required to advance through FSM states.
Prior than this having a different clock value than default sensor's
value was used (12 MHz) could prevent the sensor from booting.

Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/i2c/vd55g1.c

index 25e2fc88a0367bf6a28bb22d209323ace99299f2..8552ce75e1aa5f7c61753249ff749b00ea4602dd 100644 (file)
@@ -1038,8 +1038,6 @@ static int vd55g1_enable_streams(struct v4l2_subdev *sd,
        if (ret < 0)
                return ret;
 
-       vd55g1_write(sensor, VD55G1_REG_EXT_CLOCK, sensor->xclk_freq, &ret);
-
        /* Configure output */
        vd55g1_write(sensor, VD55G1_REG_MIPI_DATA_RATE,
                     sensor->mipi_rate, &ret);
@@ -1613,6 +1611,9 @@ static int vd55g1_power_on(struct device *dev)
                goto disable_clock;
        }
 
+       /* Setup clock now to advance through system FSM states */
+       vd55g1_write(sensor, VD55G1_REG_EXT_CLOCK, sensor->xclk_freq, &ret);
+
        ret = vd55g1_patch(sensor);
        if (ret) {
                dev_err(dev, "Sensor patch failed %d\n", ret);