aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/vimc/vimc-sensor.c
diff options
context:
space:
mode:
authorGuilherme Gallo <gagallo7@gmail.com>2018-09-03 21:45:59 -0400
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2018-09-11 10:51:08 -0400
commit7b0bfa5fc30fb82e8a5a7cd70cb197095c925042 (patch)
tree2009eaf462dcb4d3a74645d55e6d99faf9a9b07c /drivers/media/platform/vimc/vimc-sensor.c
parent2dd62390734972b2bec00cc3c60f07725162b33e (diff)
media: vimc: implement basic v4l2-ctrls
Add brightness, contrast, hue and saturation controls in vimc-sensor Signed-off-by: Guilherme Alcarde Gallo <gagallo7@gmail.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Diffstat (limited to 'drivers/media/platform/vimc/vimc-sensor.c')
-rw-r--r--drivers/media/platform/vimc/vimc-sensor.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/media/platform/vimc/vimc-sensor.c b/drivers/media/platform/vimc/vimc-sensor.c
index b2b89315e7ba..edf4c85ae63d 100644
--- a/drivers/media/platform/vimc/vimc-sensor.c
+++ b/drivers/media/platform/vimc/vimc-sensor.c
@@ -317,6 +317,18 @@ static int vimc_sen_s_ctrl(struct v4l2_ctrl *ctrl)
317 case V4L2_CID_VFLIP: 317 case V4L2_CID_VFLIP:
318 tpg_s_vflip(&vsen->tpg, ctrl->val); 318 tpg_s_vflip(&vsen->tpg, ctrl->val);
319 break; 319 break;
320 case V4L2_CID_BRIGHTNESS:
321 tpg_s_brightness(&vsen->tpg, ctrl->val);
322 break;
323 case V4L2_CID_CONTRAST:
324 tpg_s_contrast(&vsen->tpg, ctrl->val);
325 break;
326 case V4L2_CID_HUE:
327 tpg_s_hue(&vsen->tpg, ctrl->val);
328 break;
329 case V4L2_CID_SATURATION:
330 tpg_s_saturation(&vsen->tpg, ctrl->val);
331 break;
320 default: 332 default:
321 return -EINVAL; 333 return -EINVAL;
322 } 334 }
@@ -378,6 +390,14 @@ static int vimc_sen_comp_bind(struct device *comp, struct device *master,
378 V4L2_CID_VFLIP, 0, 1, 1, 0); 390 V4L2_CID_VFLIP, 0, 1, 1, 0);
379 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, 391 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops,
380 V4L2_CID_HFLIP, 0, 1, 1, 0); 392 V4L2_CID_HFLIP, 0, 1, 1, 0);
393 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops,
394 V4L2_CID_BRIGHTNESS, 0, 255, 1, 128);
395 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops,
396 V4L2_CID_CONTRAST, 0, 255, 1, 128);
397 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops,
398 V4L2_CID_HUE, -128, 127, 1, 0);
399 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops,
400 V4L2_CID_SATURATION, 0, 255, 1, 128);
381 vsen->sd.ctrl_handler = &vsen->hdl; 401 vsen->sd.ctrl_handler = &vsen->hdl;
382 if (vsen->hdl.error) { 402 if (vsen->hdl.error) {
383 ret = vsen->hdl.error; 403 ret = vsen->hdl.error;