aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0656-staging-vc04_services-isp-Set-the-YUV420-YVU420-form.patch
blob: 4182788d6f1a9f530d25fca7740aaea9709b12b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
From 992fc6d6d31391d2eeff80b8f7f1992fe5e40fe0 Mon Sep 17 00:00:00 2001
From: Naushir Patuck <naush@raspberrypi.com>
Date: Tue, 29 Jun 2021 12:50:58 +0100
Subject: [PATCH] staging: vc04_services: isp: Set the YUV420/YVU420
 format stride to 64 bytes

The bcm2835 ISP requires the base address of all input/output planes to have 32
byte alignment. Using a Y stride of 32 bytes would not guarantee that the V
plane would fulfil this, e.g. a height of 650 lines would mean the V plane
buffer is not 32 byte aligned for YUV420 formats.

Having a Y stride of 64 bytes would ensure both U and V planes have a 32 byte
alignment, as the luma height will always be an even number of lines.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
---
 drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h
+++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h
@@ -48,7 +48,7 @@ static const struct bcm2835_isp_fmt supp
 		/* YUV formats */
 		.fourcc		    = V4L2_PIX_FMT_YUV420,
 		.depth		    = 8,
-		.bytesperline_align = 32,
+		.bytesperline_align = 64,
 		.mmal_fmt	    = MMAL_ENCODING_I420,
 		.size_multiplier_x2 = 3,
 		.colorspace_mask    = V4L2_COLORSPACE_MASK_YUV,
@@ -57,7 +57,7 @@ static const struct bcm2835_isp_fmt supp
 	}, {
 		.fourcc		    = V4L2_PIX_FMT_YVU420,
 		.depth		    = 8,
-		.bytesperline_align = 32,
+		.bytesperline_align = 64,
 		.mmal_fmt	    = MMAL_ENCODING_YV12,
 		.size_multiplier_x2 = 3,
 		.colorspace_mask    = V4L2_COLORSPACE_MASK_YUV,