You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.6 KiB
Diff
113 lines
3.6 KiB
Diff
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
|