diff options
author | Hans de Goede <hansg@kernel.org> | 2025-07-06 11:53:40 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2025-07-08 08:43:30 +0200 |
commit | c9524e6b90824ccfb96eac2e88f377f50c6d13ce (patch) | |
tree | b0e3fd249b4078add8baf3dabf2d8efc2ba46d69 | |
parent | c914e3971f3ee3d09463b8d0f7802ee83eb728f6 (diff) |
media: atomisp: gc0310: Add camera orientation and sensor rotation controls
Add camera orientation and sensor rotation controls using
the v4l2_fwnode_device_parse() and v4l2_ctrl_new_fwnode_properties()
helpers.
Signed-off-by: Hans de Goede <hansg@kernel.org>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Link: https://lore.kernel.org/r/20250517114106.43494-10-hdegoede@redhat.com
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-rw-r--r-- | drivers/staging/media/atomisp/i2c/atomisp-gc0310.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c b/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c index dab736f5d4b3..d0e7f0f8452b 100644 --- a/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c +++ b/drivers/staging/media/atomisp/i2c/atomisp-gc0310.c @@ -20,6 +20,7 @@ #include <media/v4l2-cci.h> #include <media/v4l2-ctrls.h> #include <media/v4l2-device.h> +#include <media/v4l2-fwnode.h> #define GC0310_NATIVE_WIDTH 656 #define GC0310_NATIVE_HEIGHT 496 @@ -580,9 +581,12 @@ static const struct v4l2_subdev_ops gc0310_ops = { static int gc0310_init_controls(struct gc0310_device *sensor) { + struct i2c_client *client = v4l2_get_subdevdata(&sensor->sd); struct v4l2_ctrl_handler *hdl = &sensor->ctrls.handler; + struct v4l2_fwnode_device_properties props; + int ret; - v4l2_ctrl_handler_init(hdl, 6); + v4l2_ctrl_handler_init(hdl, 8); /* Use the same lock for controls as for everything else */ hdl->lock = &sensor->input_lock; @@ -614,6 +618,12 @@ static int gc0310_init_controls(struct gc0310_device *sensor) GC0310_H_BLANK_DEFAULT, 1, GC0310_H_BLANK_DEFAULT); + ret = v4l2_fwnode_device_parse(&client->dev, &props); + if (ret) + return ret; + + v4l2_ctrl_new_fwnode_properties(hdl, &ctrl_ops, &props); + if (hdl->error) return hdl->error; |