summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAndrew Goodbody <[email protected]>2025-10-01 17:36:43 +0100
committerMichal Simek <[email protected]>2025-10-09 12:31:09 +0200
commit4c606b165b51b5e0ac8a3ecc8edd232345340145 (patch)
treef4490e146dd223634fd2ce08480021fabf48f295 /drivers
parented5b149b81ad2679de40035e13b43d80262debc7 (diff)
video: zynqmp: Prevent use of uninitialised variables
The variables 'offset_matrix' and 'csc_matrix' will be used uninitialised if video->is_rgb is false. Correct the logic so the attempt to use uninitialised variables is not made. Also remove the use of these variables as they seem to serve no useful purpose just being aliases for arrays. This issue was found by Smatch. Signed-off-by: Andrew Goodbody <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/zynqmp/zynqmp_dpsub.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/video/zynqmp/zynqmp_dpsub.c b/drivers/video/zynqmp/zynqmp_dpsub.c
index 52af23c3c83..a0efd3393f5 100644
--- a/drivers/video/zynqmp/zynqmp_dpsub.c
+++ b/drivers/video/zynqmp/zynqmp_dpsub.c
@@ -240,7 +240,6 @@ static void avbuf_video_select(struct udevice *dev, enum av_buf_video_stream vid
static void config_gfx_pipeline(struct udevice *dev)
{
struct zynqmp_dpsub_priv *dp_sub = dev_get_priv(dev);
- u16 *csc_matrix, *offset_matrix;
u32 regval = 0, index = 0, *scaling_factors = NULL;
u16 rgb_coeffs[] = { 0x1000, 0x0000, 0x0000,
0x0000, 0x1000, 0x0000,
@@ -262,19 +261,18 @@ static void config_gfx_pipeline(struct udevice *dev)
video->sampling_en;
writel(regval, dp_sub->base_addr + AVBUF_V_BLEND_LAYER1_CONTROL);
- if (video->is_rgb) {
- csc_matrix = rgb_coeffs;
- offset_matrix = rgb_offset;
- }
+ if (!video->is_rgb)
+ return;
+
/* Program Colorspace conversion coefficients */
for (index = 9; index < 12; index++) {
- writel(offset_matrix[index - 9], dp_sub->base_addr +
+ writel(rgb_offset[index - 9], dp_sub->base_addr +
AVBUF_V_BLEND_IN2CSC_COEFF0 + (index * 4));
}
/* Program Colorspace conversion matrix */
for (index = 0; index < 9; index++) {
- writel(csc_matrix[index], dp_sub->base_addr +
+ writel(rgb_coeffs[index], dp_sub->base_addr +
AVBUF_V_BLEND_IN2CSC_COEFF0 + (index * 4));
}
}