aboutsummaryrefslogtreecommitdiffstats
path: root/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver/0001-Handle-data_offset-setting-from-V4L2-API.patch
blob: 3aab1740028b550aa101ef634771c0e87926a9da (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
From 50dd867589931beef05dbcdb17a37a8a678e4b13 Mon Sep 17 00:00:00 2001
From: Damian Hobson-Garcia <dhobsong@igel.co.jp>
Date: Fri, 10 May 2019 13:34:42 +0900
Subject: [PATCH] Handle data_offset setting from V4L2 API

The data in each buffer does not necessarily start at the
beginning of the buffer.  Adjust as necessary according to
the data_offset field specified from user space.
---
 vsp2driver/vsp2_video.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/vsp2driver/vsp2_video.c b/vsp2driver/vsp2_video.c
index 8875578..0abf81c 100644
--- a/vsp2driver/vsp2_video.c
+++ b/vsp2driver/vsp2_video.c
@@ -764,7 +764,8 @@ static int vsp2_video_buffer_prepare(struct vb2_buffer *vb)
 	}
 
 	for (i = 0; i < vb->num_planes; ++i) {
-		buf->mem.addr[i] = vb2_dma_contig_plane_dma_addr(vb, i);
+		buf->mem.addr[i] = vb2_dma_contig_plane_dma_addr(vb, i) +
+                           vb->planes[i].data_offset;
 
 		if (vb2_plane_size(vb, i) < format->plane_fmt[i].sizeimage)
 			return -EINVAL;
-- 
2.17.1