aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-4.19/950-0229-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0229-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch')
-rw-r--r--target/linux/bcm27xx/patches-4.19/950-0229-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch112
1 files changed, 112 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0229-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch b/target/linux/bcm27xx/patches-4.19/950-0229-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch
new file mode 100644
index 0000000000..2d3b5408a5
--- /dev/null
+++ b/target/linux/bcm27xx/patches-4.19/950-0229-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch
@@ -0,0 +1,112 @@
+From 316725374b7c221f5d43b31ee9cbe738d3df4709 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.org>
+Date: Fri, 28 Sep 2018 10:17:11 +0100
+Subject: [PATCH] staging: bcm2835-camera: Use enums for max value in
+ controls
+
+Controls of type MMAL_CONTROL_TYPE_STD_MENU call v4l2_ctrl_new_std_menu
+with a max value and a mask. The max value is one of the defined
+values for the control, however in the config array there are several
+entries where raw numbers have been used instead. Replace these
+with the appropriate enum.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
+---
+ .../vc04_services/bcm2835-camera/controls.c | 37 +++++++------------
+ 1 file changed, 13 insertions(+), 24 deletions(-)
+
+--- a/drivers/staging/vc04_services/bcm2835-camera/controls.c
++++ b/drivers/staging/vc04_services/bcm2835-camera/controls.c
+@@ -58,19 +58,6 @@ static const uint32_t iso_values[] = {
+ 0, 100, 200, 400, 800,
+ };
+
+-static const s64 mains_freq_qmenu[] = {
+- V4L2_CID_POWER_LINE_FREQUENCY_DISABLED,
+- V4L2_CID_POWER_LINE_FREQUENCY_50HZ,
+- V4L2_CID_POWER_LINE_FREQUENCY_60HZ,
+- V4L2_CID_POWER_LINE_FREQUENCY_AUTO
+-};
+-
+-/* Supported video encode modes */
+-static const s64 bitrate_mode_qmenu[] = {
+- (s64)V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
+- (s64)V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
+-};
+-
+ enum bm2835_mmal_ctrl_type {
+ MMAL_CONTROL_TYPE_STD,
+ MMAL_CONTROL_TYPE_STD_MENU,
+@@ -966,8 +953,8 @@ static const struct bm2835_mmal_v4l2_ctr
+ },
+ {
+ V4L2_CID_ISO_SENSITIVITY_AUTO, MMAL_CONTROL_TYPE_STD_MENU,
+- 0, 1, V4L2_ISO_SENSITIVITY_AUTO, 1, NULL,
+- MMAL_PARAMETER_ISO,
++ 0, V4L2_ISO_SENSITIVITY_AUTO, V4L2_ISO_SENSITIVITY_AUTO, 1,
++ NULL, MMAL_PARAMETER_ISO,
+ &ctrl_set_iso,
+ false
+ },
+@@ -984,8 +971,8 @@ static const struct bm2835_mmal_v4l2_ctr
+ */
+ {
+ V4L2_CID_EXPOSURE_AUTO, MMAL_CONTROL_TYPE_STD_MENU,
+- ~0x03, 3, V4L2_EXPOSURE_AUTO, 0, NULL,
+- MMAL_PARAMETER_EXPOSURE_MODE,
++ ~0x03, V4L2_EXPOSURE_APERTURE_PRIORITY, V4L2_EXPOSURE_AUTO, 0,
++ NULL, MMAL_PARAMETER_EXPOSURE_MODE,
+ &ctrl_set_exposure,
+ false
+ },
+@@ -1021,7 +1008,8 @@ static const struct bm2835_mmal_v4l2_ctr
+ {
+ V4L2_CID_EXPOSURE_METERING,
+ MMAL_CONTROL_TYPE_STD_MENU,
+- ~0x7, 2, V4L2_EXPOSURE_METERING_AVERAGE, 0, NULL,
++ ~0x7, V4L2_EXPOSURE_METERING_SPOT,
++ V4L2_EXPOSURE_METERING_AVERAGE, 0, NULL,
+ MMAL_PARAMETER_EXP_METERING_MODE,
+ &ctrl_set_metering_mode,
+ false
+@@ -1029,7 +1017,8 @@ static const struct bm2835_mmal_v4l2_ctr
+ {
+ V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE,
+ MMAL_CONTROL_TYPE_STD_MENU,
+- ~0x3ff, 9, V4L2_WHITE_BALANCE_AUTO, 0, NULL,
++ ~0x3ff, V4L2_WHITE_BALANCE_SHADE, V4L2_WHITE_BALANCE_AUTO, 0,
++ NULL,
+ MMAL_PARAMETER_AWB_MODE,
+ &ctrl_set_awb_mode,
+ false
+@@ -1050,7 +1039,7 @@ static const struct bm2835_mmal_v4l2_ctr
+ },
+ {
+ V4L2_CID_COLORFX, MMAL_CONTROL_TYPE_STD_MENU,
+- 0, 15, V4L2_COLORFX_NONE, 0, NULL,
++ 0, V4L2_COLORFX_SET_CBCR, V4L2_COLORFX_NONE, 0, NULL,
+ MMAL_PARAMETER_IMAGE_EFFECT,
+ &ctrl_set_image_effect,
+ false
+@@ -1085,8 +1074,8 @@ static const struct bm2835_mmal_v4l2_ctr
+ },
+ {
+ V4L2_CID_MPEG_VIDEO_BITRATE_MODE, MMAL_CONTROL_TYPE_STD_MENU,
+- 0, ARRAY_SIZE(bitrate_mode_qmenu) - 1,
+- 0, 0, bitrate_mode_qmenu,
++ 0, V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
++ 0, 0, NULL,
+ MMAL_PARAMETER_RATECONTROL,
+ &ctrl_set_bitrate_mode,
+ false
+@@ -1108,8 +1097,8 @@ static const struct bm2835_mmal_v4l2_ctr
+ },
+ {
+ V4L2_CID_POWER_LINE_FREQUENCY, MMAL_CONTROL_TYPE_STD_MENU,
+- 0, ARRAY_SIZE(mains_freq_qmenu) - 1,
+- 1, 1, mains_freq_qmenu,
++ 0, V4L2_CID_POWER_LINE_FREQUENCY_AUTO,
++ 1, 1, NULL,
+ MMAL_PARAMETER_FLICKER_AVOID,
+ &ctrl_set_flicker_avoidance,
+ false