diff options
author | Cai YiWei <cyw@rock-chips.com> | 2018-09-21 10:39:12 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-10-11 18:42:42 +0800 |
commit | a4bb4f5d2cca4f618c7c7f6b26a93d5f955e1833 (patch) | |
tree | ef7d2d553590b42793803e73a330842deae4aff7 /drivers/media/platform/rockchip | |
parent | 10dbf59d3f10fe8f2bb59c3034bf246af5884cff (diff) |
media: rockchip: isp1: fix cplanes address calculation error
for multiple cplane:
cplane 0 addr: Y addr + Y size
cplane 1 addr: cplane 0 addr + cplane 0 size
and cplane size refer to xysubs
Change-Id: I50dbb0175f04452c62dd327f73ede1ca4a2d2ad7
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
Diffstat (limited to 'drivers/media/platform/rockchip')
-rw-r--r-- | drivers/media/platform/rockchip/isp1/capture.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/media/platform/rockchip/isp1/capture.c b/drivers/media/platform/rockchip/isp1/capture.c index 74a7c9155bf4..6496cefcff86 100644 --- a/drivers/media/platform/rockchip/isp1/capture.c +++ b/drivers/media/platform/rockchip/isp1/capture.c @@ -1133,12 +1133,18 @@ static void rkisp1_buf_queue(struct vb2_buffer *vb) for (i = 0; i < isp_fmt->mplanes; i++) ispbuf->buff_addr[i] = vb2_dma_contig_plane_dma_addr(vb, i); + /* + * NOTE: plane_fmt[0].sizeimage is total size of all planes for single + * memory plane formats, so calculate the size explicitly. + */ if (isp_fmt->mplanes == 1) { for (i = 0; i < isp_fmt->cplanes - 1; i++) { - ispbuf->buff_addr[i + 1] = + ispbuf->buff_addr[i + 1] = (i == 0) ? ispbuf->buff_addr[i] + pixm->plane_fmt[i].bytesperline * - pixm->height; + pixm->height : + ispbuf->buff_addr[i] + + pixm->plane_fmt[i].sizeimage; } } |