diff options
author | Guilherme Gallo <gagallo7@gmail.com> | 2018-09-03 21:45:59 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2018-09-11 10:51:08 -0400 |
commit | 7b0bfa5fc30fb82e8a5a7cd70cb197095c925042 (patch) | |
tree | 2009eaf462dcb4d3a74645d55e6d99faf9a9b07c /drivers/media/platform/vimc/vimc-sensor.c | |
parent | 2dd62390734972b2bec00cc3c60f07725162b33e (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.c | 20 |
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; |