mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user