diff mbox series

media: i2c: st-vgxy61: Fix regulator counter underflow

Message ID 20221107150000.49058-1-benjamin.mugnier@foss.st.com
State Accepted
Commit 74b681bd24eefe0d240ef7e5e99aff5b12fd021a
Headers show
Series media: i2c: st-vgxy61: Fix regulator counter underflow | expand

Commit Message

Benjamin Mugnier Nov. 7, 2022, 3 p.m. UTC
Previously regulators were enabled on probe and never again.
However, as regulators are disabled on power off. After a second power off
the regulator counter will underflow. Plus regulators are not required
for probing the sensor, but for streaming.
Fix this by enabling regulators on power on to balance regulator counter
properly.

Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
---
 drivers/media/i2c/st-vgxy61.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/drivers/media/i2c/st-vgxy61.c b/drivers/media/i2c/st-vgxy61.c
index 7ff18d670813..b0f4eeadeac6 100644
--- a/drivers/media/i2c/st-vgxy61.c
+++ b/drivers/media/i2c/st-vgxy61.c
@@ -1711,6 +1711,13 @@  static int vgxy61_power_on(struct device *dev)
 	struct vgxy61_dev *sensor = to_vgxy61_dev(sd);
 	int ret;
 
+	ret = regulator_bulk_enable(ARRAY_SIZE(vgxy61_supply_name),
+				    sensor->supplies);
+	if (ret) {
+		dev_err(&client->dev, "failed to enable regulators %d\n", ret);
+		return ret;
+	}
+
 	ret = clk_prepare_enable(sensor->xclk);
 	if (ret) {
 		dev_err(&client->dev, "failed to enable clock %d\n", ret);
@@ -1847,13 +1854,6 @@  static int vgxy61_probe(struct i2c_client *client)
 		return ret;
 	}
 
-	ret = regulator_bulk_enable(ARRAY_SIZE(vgxy61_supply_name),
-				    sensor->supplies);
-	if (ret) {
-		dev_err(&client->dev, "failed to enable regulators %d\n", ret);
-		return ret;
-	}
-
 	ret = vgxy61_power_on(dev);
 	if (ret)
 		return ret;