media: vimc: implement basic v4l2-ctrls
PATCH 1/1 media: vimc: implement basic v4l2-ctrls
Implement brightness, contrast and hue controls in vimc-sensor
Signed-off-by Guilherme Alcarde Gallo <[email protected]>
--- drivers/media/platform/vimc/vimc-sensor.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
drivers/media/platform/vimc/vimc-sensor.c +15 -0
@@ -316,6 +316,15 @@ static int vimc_sen_s_ctrl(struct v4l2_ctrl *ctrl)case V4L2_CID_VFLIP :tpg_s_vflip (&vsen->tpg, ctrl->val);break ; +case V4L2_CID_BRIGHTNESS : +tpg_s_brightness (&vsen->tpg, ctrl->val); +break ; +case V4L2_CID_CONTRAST : +tpg_s_contrast (&vsen->tpg, ctrl->val); +break ; +case V4L2_CID_HUE : +tpg_s_hue (&vsen->tpg, ctrl->val); +break ;default :return -EINVAL ; }
@@ -377,6 +386,12 @@ static int vimc_sen_comp_bind(struct device *comp, struct device *master, V4L2_CID_VFLIP, 0, 1, 1, 0);v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops,V4L2_CID_HFLIP ,0 ,1 ,1 ,0 ); +v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops, +V4L2_CID_BRIGHTNESS ,0 ,255 ,1 ,128 ); +v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops, +V4L2_CID_CONTRAST ,0 ,255 ,1 ,128 ); +v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops, +V4L2_CID_HUE ,0 ,255 ,1 ,128 ); vsen->sd.ctrl_handler = &vsen->hdl;if (vsen->hdl.error) { ret = vsen->hdl.error;
Signature · 1 line
2.13.6
Hi Guilherme,
Thank you for your patch. It looks good, but can you add support for V4L2_CID_SATURATION as well? The TPG supports that as well, so there is no reason to leave that out.
Thank you!
Hans
Quoted 41 lines · Guilherme Gallo
Implement brightness, contrast and hue controls in vimc-sensor
Signed-off-by Guilherme Alcarde Gallo <[email protected]>--- drivers/media/platform/vimc/vimc-sensor.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)drivers/media/platform/vimc/vimc-sensor.c +15
-0@@ -316,6 +316,15 @@ static int vimc_sen_s_ctrl(struct v4l2_ctrl *ctrl)case V4L2_CID_VFLIP :tpg_s_vflip (&vsen->tpg, ctrl->val);break ; +case V4L2_CID_BRIGHTNESS : +tpg_s_brightness (&vsen->tpg, ctrl->val); +break ; +case V4L2_CID_CONTRAST : +tpg_s_contrast (&vsen->tpg, ctrl->val); +break ; +case V4L2_CID_HUE : +tpg_s_hue (&vsen->tpg, ctrl->val); +break ;default :return -EINVAL ; }@@ -377,6 +386,12 @@ static int vimc_sen_comp_bind(struct device *comp, struct device *master, V4L2_CID_VFLIP, 0, 1, 1, 0);v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops,V4L2_CID_HFLIP ,0 ,1 ,1 ,0 ); +v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops, +V4L2_CID_BRIGHTNESS ,0 ,255 ,1 ,128 ); +v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops, +V4L2_CID_CONTRAST ,0 ,255 ,1 ,128 ); +v4l2_ctrl_new_std (&vsen->hdl, &vimc_sen_ctrl_ops, +V4L2_CID_HUE ,0 ,255 ,1 ,128 ); vsen->sd.ctrl_handler = &vsen->hdl;if (vsen->hdl.error) { ret = vsen->hdl.error;