| From 4c1e78b8096fe5396353349d746ada5afff13722 Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Wed, 21 May 2014 19:00:05 -0300 |
| Subject: [media] v4l: vsp1: sru: Fix the intensity control default value |
| |
| The default value isn't set and defaults to 0, which isn't in the 1-6 |
| min-max range. Fix it by setting the default value to 1. |
| |
| This shoud have been caught when checking the control handler error |
| field at initialization time, but the check was missing. Add it. |
| |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com> |
| (cherry picked from commit a1606102dafe6942905e97a88ceea9a60e1a2c7d) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/media/platform/vsp1/vsp1_sru.c | 12 +++++++++++- |
| 1 file changed, 11 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/media/platform/vsp1/vsp1_sru.c b/drivers/media/platform/vsp1/vsp1_sru.c |
| index aa0e04c56f3f..18e127accf25 100644 |
| --- a/drivers/media/platform/vsp1/vsp1_sru.c |
| +++ b/drivers/media/platform/vsp1/vsp1_sru.c |
| @@ -67,6 +67,7 @@ static const struct v4l2_ctrl_config sru_intensity_control = { |
| .type = V4L2_CTRL_TYPE_INTEGER, |
| .min = 1, |
| .max = 6, |
| + .def = 1, |
| .step = 1, |
| }; |
| |
| @@ -348,8 +349,17 @@ struct vsp1_sru *vsp1_sru_create(struct vsp1_device *vsp1) |
| /* Initialize the control handler. */ |
| v4l2_ctrl_handler_init(&sru->ctrls, 1); |
| v4l2_ctrl_new_custom(&sru->ctrls, &sru_intensity_control, NULL); |
| - v4l2_ctrl_handler_setup(&sru->ctrls); |
| + |
| sru->entity.subdev.ctrl_handler = &sru->ctrls; |
| |
| + if (sru->ctrls.error) { |
| + dev_err(vsp1->dev, "sru: failed to initialize controls\n"); |
| + ret = sru->ctrls.error; |
| + vsp1_entity_destroy(&sru->entity); |
| + return ERR_PTR(ret); |
| + } |
| + |
| + v4l2_ctrl_handler_setup(&sru->ctrls); |
| + |
| return sru; |
| } |
| -- |
| 2.1.2 |
| |