56 lines
1.8 KiB
Diff
56 lines
1.8 KiB
Diff
From e4dc7a4bf88ca8e70f604b5d26335911073e5238 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dsteve@broadcom.com>
|
|
Date: Mon, 9 Dec 2013 15:30:48 +0000
|
|
Subject: [PATCH 134/196] V4L2: Fix ISO controls.
|
|
|
|
Driver was passing the index to the GPU, and not the desired
|
|
ISO value.
|
|
|
|
Signed-off-by: Dave Stevenson <dsteve@broadcom.com>
|
|
---
|
|
drivers/media/platform/bcm2835/controls.c | 21 ++++++++++++++++++++-
|
|
1 file changed, 20 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/media/platform/bcm2835/controls.c b/drivers/media/platform/bcm2835/controls.c
|
|
index c2e4c64..92863f7 100644
|
|
--- a/drivers/media/platform/bcm2835/controls.c
|
|
+++ b/drivers/media/platform/bcm2835/controls.c
|
|
@@ -178,6 +178,25 @@ static int ctrl_set_value(struct bm2835_mmal_dev *dev,
|
|
&u32_value, sizeof(u32_value));
|
|
}
|
|
|
|
+static int ctrl_set_value_menu(struct bm2835_mmal_dev *dev,
|
|
+ struct v4l2_ctrl *ctrl,
|
|
+ const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl)
|
|
+{
|
|
+ u32 u32_value;
|
|
+ struct vchiq_mmal_port *control;
|
|
+
|
|
+ if (ctrl->val > mmal_ctrl->max || ctrl->val < mmal_ctrl->min)
|
|
+ return 1;
|
|
+
|
|
+ control = &dev->component[MMAL_COMPONENT_CAMERA]->control;
|
|
+
|
|
+ u32_value = mmal_ctrl->imenu[ctrl->val];
|
|
+
|
|
+ return vchiq_mmal_port_parameter_set(dev->instance, control,
|
|
+ mmal_ctrl->mmal_id,
|
|
+ &u32_value, sizeof(u32_value));
|
|
+}
|
|
+
|
|
static int ctrl_set_value_ev(struct bm2835_mmal_dev *dev,
|
|
struct v4l2_ctrl *ctrl,
|
|
const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl)
|
|
@@ -601,7 +620,7 @@ static const struct bm2835_mmal_v4l2_ctrl v4l2_ctrls[V4L2_CTRL_COUNT] = {
|
|
{
|
|
V4L2_CID_ISO_SENSITIVITY, MMAL_CONTROL_TYPE_INT_MENU,
|
|
0, ARRAY_SIZE(iso_qmenu) - 1, 0, 1, iso_qmenu,
|
|
- MMAL_PARAMETER_ISO, &ctrl_set_value
|
|
+ MMAL_PARAMETER_ISO, &ctrl_set_value_menu
|
|
},
|
|
{
|
|
V4L2_CID_IMAGE_STABILIZATION, MMAL_CONTROL_TYPE_STD,
|
|
--
|
|
1.9.1
|
|
|