summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>2025-08-28 18:06:48 +0200
committerHans Verkuil <hverkuil+cisco@kernel.org>2025-09-04 10:06:13 +0200
commitdc12a27cd1c954e9a5ac9c0e0fdcbf6e1fa554ee (patch)
treeb70e64b8a94fcd76fe3c635019f842c23e61f969
parent6742cc8d7159abf4da9b1817ce8484c0386eb52f (diff)
media: adv7180: Setup controls every time the device is reset
The device initialization code resets the whole device, thus the initial controls set at probe are lost as adv7180_init_controls() are called before init_device(). Additionally the controls were never restored after the device where reset coming back from suspend. Solve this by separate the setup of the controls from the creation of them, and always set them up when the device is reset. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
-rw-r--r--drivers/media/i2c/adv7180.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/i2c/adv7180.c b/drivers/media/i2c/adv7180.c
index 7b0387151c3a..8409ee9acc4f 100644
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
@@ -700,7 +700,6 @@ static int adv7180_init_controls(struct adv7180_state *state)
v4l2_ctrl_handler_free(&state->ctrl_hdl);
return err;
}
- v4l2_ctrl_handler_setup(&state->ctrl_hdl);
return 0;
}
@@ -898,6 +897,8 @@ static int init_device(struct adv7180_state *state)
adv7180_set_field_mode(state);
+ __v4l2_ctrl_handler_setup(&state->ctrl_hdl);
+
/* register for interrupts */
if (state->irq > 0) {
/* config the Interrupt pin to be active low */