aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBenjamin Mugnier <benjamin.mugnier@foss.st.com>2025-06-11 10:48:32 +0200
committerHans Verkuil <hverkuil@xs4all.nl>2025-06-30 09:06:21 +0200
commitdf2f8fd91bde57d5d5aca6adddf7e988f2e8c60e (patch)
tree3de552c2844db6d94b1a449c873bf8a39ea06265 /drivers
parentmedia: i2c: vd55g1: Fix return code in vd55g1_enable_streams error path (diff)
downloadlinux-df2f8fd91bde57d5d5aca6adddf7e988f2e8c60e.tar.gz
linux-df2f8fd91bde57d5d5aca6adddf7e988f2e8c60e.zip
media: i2c: vd55g1: Setup sensor external clock before patching
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/i2c/vd55g1.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/i2c/vd55g1.c b/drivers/media/i2c/vd55g1.c
index 336dc3c85ac9..dec6e3e231d5 100644
--- a/drivers/media/i2c/vd55g1.c
+++ b/drivers/media/i2c/vd55g1.c
@@ -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);