media: rockchip: isp: 64 align y size for fbcgain format

Change-Id: Ic1ad912f094a3442e0c4d421f4228dd6c8bbe92c
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2021-01-15 16:17:02 +08:00
committed by Tao Huang
parent 3962ab0701
commit 5358e9d0b6
2 changed files with 11 additions and 4 deletions

View File

@@ -634,6 +634,10 @@ static int rkisp_set_fmt(struct rkisp_stream *stream,
plane_fmt->sizeimage = plane_fmt->bytesperline * height;
/* uv address is y size offset need 64 align */
if (fmt->fmt_type == FMT_FBCGAIN && i == 0)
plane_fmt->sizeimage = ALIGN(plane_fmt->sizeimage, 64);
imagsize += plane_fmt->sizeimage;
}

View File

@@ -673,6 +673,8 @@ static u32 calc_burst_len(struct rkisp_stream *stream)
u32 bus = 16, burst;
int i;
if (stream->out_isp_fmt.fmt_type == FMT_FBCGAIN)
y_size = ALIGN(y_size, 64);
/* y/c base addr: burstN * bus alignment */
cb_offs = y_size;
cr_offs = cr_size ? (cb_size + cb_offs) : 0;
@@ -1652,7 +1654,7 @@ static void rkisp_buf_queue(struct vb2_buffer *vb)
struct v4l2_pix_format_mplane *pixm = &stream->out_fmt;
struct capture_fmt *isp_fmt = &stream->out_isp_fmt;
struct sg_table *sgt;
int i;
u32 i, val;
memset(ispbuf->buff_addr, 0, sizeof(ispbuf->buff_addr));
for (i = 0; i < isp_fmt->mplanes; i++) {
@@ -1670,10 +1672,11 @@ static void rkisp_buf_queue(struct vb2_buffer *vb)
*/
if (isp_fmt->mplanes == 1 || isp_fmt->fmt_type == FMT_FBCGAIN) {
for (i = 0; i < isp_fmt->cplanes - 1; i++) {
val = pixm->plane_fmt[i].bytesperline * pixm->height;
if (isp_fmt->fmt_type == FMT_FBCGAIN)
val = ALIGN(val, 64);
ispbuf->buff_addr[i + 1] = (i == 0) ?
ispbuf->buff_addr[i] +
pixm->plane_fmt[i].bytesperline *
pixm->height :
ispbuf->buff_addr[i] + val :
ispbuf->buff_addr[i] +
pixm->plane_fmt[i].sizeimage;
}