summaryrefslogtreecommitdiffstats
path: root/queue/media-camss-vfe-always-initialize-reg-at-vfe_set_xba.patch
diff options
context:
space:
mode:
Diffstat (limited to 'queue/media-camss-vfe-always-initialize-reg-at-vfe_set_xba.patch')
-rw-r--r--queue/media-camss-vfe-always-initialize-reg-at-vfe_set_xba.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/queue/media-camss-vfe-always-initialize-reg-at-vfe_set_xba.patch b/queue/media-camss-vfe-always-initialize-reg-at-vfe_set_xba.patch
new file mode 100644
index 0000000..4120f40
--- /dev/null
+++ b/queue/media-camss-vfe-always-initialize-reg-at-vfe_set_xba.patch
@@ -0,0 +1,35 @@
+From 9917fbcfa20ab987d6381fd0365665e5c1402d75 Mon Sep 17 00:00:00 2001
+From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
+Date: Wed, 1 Nov 2017 08:09:59 -0400
+Subject: [PATCH] media: camss-vfe: always initialize reg at vfe_set_xbar_cfg()
+
+commit 9917fbcfa20ab987d6381fd0365665e5c1402d75 upstream.
+
+if output->wm_num is bigger than 2, the value for reg is
+not initialized, as warned by smatch:
+ drivers/media/platform/qcom/camss-8x16/camss-vfe.c:633 vfe_set_xbar_cfg() error: uninitialized symbol 'reg'.
+ drivers/media/platform/qcom/camss-8x16/camss-vfe.c:637 vfe_set_xbar_cfg() error: uninitialized symbol 'reg'.
+
+That shouldn't happen in practice, so add a logic that will
+break the loop if i > 1, fixing the warnings.
+
+Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
+Acked-by: Todor Tomov <todor.tomov@linaro.org>
+
+diff --git a/drivers/media/platform/qcom/camss-8x16/camss-vfe.c b/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
+index b22d2dfcd3c2..55232a912950 100644
+--- a/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
++++ b/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
+@@ -622,6 +622,9 @@ static void vfe_set_xbar_cfg(struct vfe_device *vfe, struct vfe_output *output,
+ reg = VFE_0_BUS_XBAR_CFG_x_M_PAIR_STREAM_EN;
+ if (p == V4L2_PIX_FMT_NV12 || p == V4L2_PIX_FMT_NV16)
+ reg |= VFE_0_BUS_XBAR_CFG_x_M_PAIR_STREAM_SWAP_INTER_INTRA;
++ } else {
++ /* On current devices output->wm_num is always <= 2 */
++ break;
+ }
+
+ if (output->wm_idx[i] % 2 == 1)
+--
+2.15.0
+