brcm2708: update to latest patches from RPi foundation
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.19 / 950-0284-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0284-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch b/target/linux/brcm2708/patches-4.19/950-0284-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch
new file mode 100644 (file)
index 0000000..c1e5bb3
--- /dev/null
@@ -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;
+                       }