[media] v4l: vsp1: sru: Fix the intensity control default value
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Wed, 21 May 2014 22:00:05 +0000 (19:00 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 17 Jul 2014 15:44:54 +0000 (12:44 -0300)
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>
drivers/media/platform/vsp1/vsp1_sru.c

index aa0e04c56f3f22d07edb77a2948e6880a7c9f1d6..18e127accf25355978d34a7c59e5e819ba993c6c 100644 (file)
@@ -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;
 }