diff options
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.patch | 130 |
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 - |