From: Alexander Koskovich Date: Thu, 12 Mar 2026 17:16:28 +0000 (+0000) Subject: media: i2c: ov8856: parse and register V4L2 device tree properties X-Git-Tag: v7.1-rc1~169^2~91 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b065199ea1934e6d06d1a9b2dc7ed7c79321484;p=thirdparty%2Flinux.git media: i2c: ov8856: parse and register V4L2 device tree properties Parse V4L2 device tree properties and register controls for them. Signed-off-by: Alexander Koskovich Signed-off-by: Sakari Ailus Signed-off-by: Hans Verkuil --- diff --git a/drivers/media/i2c/ov8856.c b/drivers/media/i2c/ov8856.c index dd01e1d515ff6..8bedb47cd7cf6 100644 --- a/drivers/media/i2c/ov8856.c +++ b/drivers/media/i2c/ov8856.c @@ -1887,12 +1887,14 @@ static const struct v4l2_ctrl_ops ov8856_ctrl_ops = { static int ov8856_init_controls(struct ov8856 *ov8856) { + struct i2c_client *client = v4l2_get_subdevdata(&ov8856->sd); + struct v4l2_fwnode_device_properties props; struct v4l2_ctrl_handler *ctrl_hdlr; s64 exposure_max, h_blank; int ret; ctrl_hdlr = &ov8856->ctrl_handler; - ret = v4l2_ctrl_handler_init(ctrl_hdlr, 8); + ret = v4l2_ctrl_handler_init(ctrl_hdlr, 10); if (ret) return ret; @@ -1956,6 +1958,15 @@ static int ov8856_init_controls(struct ov8856 *ov8856) goto err_ctrl_handler_free; } + ret = v4l2_fwnode_device_parse(&client->dev, &props); + if (ret) + goto err_ctrl_handler_free; + + ret = v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &ov8856_ctrl_ops, + &props); + if (ret) + goto err_ctrl_handler_free; + ov8856->sd.ctrl_handler = ctrl_hdlr; return 0;