aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch')
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch b/target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch
new file mode 100644
index 0000000000..c1e5bb355b
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch
@@ -0,0 +1,58 @@
+From 8c420772ef0f15ebbc3f13ebcc340d34bbdfad71 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.org>
+Date: Thu, 24 Jan 2019 16:20:38 +0000
+Subject: [PATCH] staging: bcm2835-camera: Correct ctrl
+ min/max/step/def to 64bit
+
+The V4L2 control API was expanded to take 64 bit values in commit
+0ba2aeb6dab (Apr 16 2014), but as this driver wasn't in the mainline
+kernel at that point this was overlooked.
+
+Update to use 64 bit values. This also fixes a couple of warnings
+in 64 bit builds.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
+---
+ .../vc04_services/bcm2835-camera/controls.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+--- a/drivers/staging/vc04_services/bcm2835-camera/controls.c
++++ b/drivers/staging/vc04_services/bcm2835-camera/controls.c
+@@ -78,10 +78,10 @@ struct bm2835_mmal_v4l2_ctrl {
+ /* control minimum value or
+ * mask for MMAL_CONTROL_TYPE_STD_MENU
+ */
+- s32 min;
+- s32 max; /* maximum value of control */
+- s32 def; /* default value of control */
+- s32 step; /* step size of the control */
++ s64 min;
++ s64 max; /* maximum value of control */
++ s64 def; /* default value of control */
++ u64 step; /* step size of the control */
+ const s64 *imenu; /* integer menu array */
+ u32 mmal_id; /* mmal parameter id */
+ bm2835_mmal_v4l2_ctrl_cb *setter;
+@@ -1244,7 +1244,7 @@ int bm2835_mmal_init_controls(struct bm2
+
+ case MMAL_CONTROL_TYPE_STD_MENU:
+ {
+- int mask = ctrl->min;
++ u64 mask = ctrl->min;
+
+ if (ctrl->id == V4L2_CID_SCENE_MODE) {
+ /* Special handling to work out the mask
+@@ -1254,11 +1254,11 @@ int bm2835_mmal_init_controls(struct bm2
+ */
+ int i;
+
+- mask = 1 << V4L2_SCENE_MODE_NONE;
++ mask = BIT(V4L2_SCENE_MODE_NONE);
+ for (i = 0;
+ i < ARRAY_SIZE(scene_configs);
+ i++) {
+- mask |= 1 << scene_configs[i].v4l2_scene;
++ mask |= BIT(scene_configs[i].v4l2_scene);
+ }
+ mask = ~mask;
+ }