aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-3.10/0183-V4L2-Add-manual-white-balance-control.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0183-V4L2-Add-manual-white-balance-control.patch')
-rw-r--r--target/linux/brcm2708/patches-3.10/0183-V4L2-Add-manual-white-balance-control.patch130
1 files changed, 0 insertions, 130 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0183-V4L2-Add-manual-white-balance-control.patch b/target/linux/brcm2708/patches-3.10/0183-V4L2-Add-manual-white-balance-control.patch
deleted file mode 100644
index ada84c8828..0000000000
--- a/target/linux/brcm2708/patches-3.10/0183-V4L2-Add-manual-white-balance-control.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 9f0bd5e194e2aca372c7dd4b0911fabf5b9ae80c Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dsteve@broadcom.com>
-Date: Tue, 25 Mar 2014 11:48:01 +0000
-Subject: [PATCH 183/196] V4L2: Add manual white balance control.
-
-Adds support for V4L2_CID_RED_BALANCE and
-V4L2_CID_BLUE_BALANCE. Only has an effect if
-V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE has
-V4L2_WHITE_BALANCE_MANUAL selected.
-
-Signed-off-by: Dave Stevenson <dsteve@broadcom.com>
----
- drivers/media/platform/bcm2835/bcm2835-camera.h | 4 ++-
- drivers/media/platform/bcm2835/controls.c | 39 +++++++++++++++++++++++-
- drivers/media/platform/bcm2835/mmal-parameters.h | 8 ++++-
- 3 files changed, 48 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.h b/drivers/media/platform/bcm2835/bcm2835-camera.h
-index f389bea..4ddd687 100644
---- a/drivers/media/platform/bcm2835/bcm2835-camera.h
-+++ b/drivers/media/platform/bcm2835/bcm2835-camera.h
-@@ -15,7 +15,7 @@
- * core driver device
- */
-
--#define V4L2_CTRL_COUNT 25 /* number of v4l controls */
-+#define V4L2_CTRL_COUNT 27 /* number of v4l controls */
-
- enum {
- MMAL_COMPONENT_CAMERA = 0,
-@@ -49,6 +49,8 @@ struct bm2835_mmal_dev {
- struct mmal_colourfx colourfx;
- int hflip;
- int vflip;
-+ int red_gain;
-+ int blue_gain;
- enum mmal_parameter_exposuremode exposure_mode_user;
- enum v4l2_exposure_auto_type exposure_mode_v4l2_user;
- /* active exposure mode may differ if selected via a scene mode */
-diff --git a/drivers/media/platform/bcm2835/controls.c b/drivers/media/platform/bcm2835/controls.c
-index b7a7e88..9a40bd0 100644
---- a/drivers/media/platform/bcm2835/controls.c
-+++ b/drivers/media/platform/bcm2835/controls.c
-@@ -491,6 +491,29 @@ static int ctrl_set_awb_mode(struct bm2835_mmal_dev *dev,
- &u32_value, sizeof(u32_value));
- }
-
-+static int ctrl_set_awb_gains(struct bm2835_mmal_dev *dev,
-+ struct v4l2_ctrl *ctrl,
-+ const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl)
-+{
-+ struct vchiq_mmal_port *control;
-+ struct mmal_parameter_awbgains gains;
-+
-+ control = &dev->component[MMAL_COMPONENT_CAMERA]->control;
-+
-+ if (ctrl->id == V4L2_CID_RED_BALANCE)
-+ dev->red_gain = ctrl->val;
-+ else if (ctrl->id == V4L2_CID_BLUE_BALANCE)
-+ dev->blue_gain = ctrl->val;
-+
-+ gains.r_gain.num = dev->red_gain;
-+ gains.b_gain.num = dev->blue_gain;
-+ gains.r_gain.den = gains.b_gain.den = 1000;
-+
-+ return vchiq_mmal_port_parameter_set(dev->instance, control,
-+ mmal_ctrl->mmal_id,
-+ &gains, sizeof(gains));
-+}
-+
- static int ctrl_set_image_effect(struct bm2835_mmal_dev *dev,
- struct v4l2_ctrl *ctrl,
- const struct bm2835_mmal_v4l2_ctrl *mmal_ctrl)
-@@ -991,12 +1014,26 @@ static const struct bm2835_mmal_v4l2_ctrl v4l2_ctrls[V4L2_CTRL_COUNT] = {
- {
- V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE,
- MMAL_CONTROL_TYPE_STD_MENU,
-- ~0x3fe, 9, V4L2_WHITE_BALANCE_AUTO, 0, NULL,
-+ ~0x3ff, 9, V4L2_WHITE_BALANCE_AUTO, 0, NULL,
- MMAL_PARAMETER_AWB_MODE,
- &ctrl_set_awb_mode,
- false
- },
- {
-+ V4L2_CID_RED_BALANCE, MMAL_CONTROL_TYPE_STD,
-+ 1, 7999, 1000, 1, NULL,
-+ MMAL_PARAMETER_CUSTOM_AWB_GAINS,
-+ &ctrl_set_awb_gains,
-+ false
-+ },
-+ {
-+ V4L2_CID_BLUE_BALANCE, MMAL_CONTROL_TYPE_STD,
-+ 1, 7999, 1000, 1, NULL,
-+ MMAL_PARAMETER_CUSTOM_AWB_GAINS,
-+ &ctrl_set_awb_gains,
-+ false
-+ },
-+ {
- V4L2_CID_COLORFX, MMAL_CONTROL_TYPE_STD_MENU,
- 0, 15, V4L2_COLORFX_NONE, 0, NULL,
- MMAL_PARAMETER_IMAGE_EFFECT,
-diff --git a/drivers/media/platform/bcm2835/mmal-parameters.h b/drivers/media/platform/bcm2835/mmal-parameters.h
-index ae8fef9..089f949 100644
---- a/drivers/media/platform/bcm2835/mmal-parameters.h
-+++ b/drivers/media/platform/bcm2835/mmal-parameters.h
-@@ -161,7 +161,8 @@ enum mmal_parameter_camera_type {
- MMAL_PARAMETER_SW_SHARPEN_DISABLE, /**< @ref MMAL_PARAMETER_BOOLEAN_T */
- MMAL_PARAMETER_FLASH_REQUIRED, /**< @ref MMAL_PARAMETER_BOOLEAN_T */
- MMAL_PARAMETER_SW_SATURATION_DISABLE, /**< @ref MMAL_PARAMETER_BOOLEAN_T */
-- MMAL_PARAMETER_SHUTTER_SPEED /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
-+ MMAL_PARAMETER_SHUTTER_SPEED, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
-+ MMAL_PARAMETER_CUSTOM_AWB_GAINS, /**< Takes a @ref MMAL_PARAMETER_AWB_GAINS_T */
- };
-
- struct mmal_parameter_rational {
-@@ -292,6 +293,11 @@ enum MMAL_PARAM_FLICKERAVOID_T {
- MMAL_PARAM_FLICKERAVOID_MAX = 0x7FFFFFFF
- };
-
-+struct mmal_parameter_awbgains {
-+ struct mmal_parameter_rational r_gain; /**< Red gain */
-+ struct mmal_parameter_rational b_gain; /**< Blue gain */
-+};
-+
- /** Manner of video rate control */
- enum mmal_parameter_rate_control_mode {
- MMAL_VIDEO_RATECONTROL_DEFAULT,
---
-1.9.1
-