From: Dafna Hirschfeld Date: Sat, 11 Apr 2020 16:06:01 +0000 (+0200) Subject: media: staging: rkisp1: cap: support uv swapped planar formats X-Git-Tag: v5.8-rc1~10^2~356 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=d0dd92789f44cb093d1da9a68d40a5f09402462a;p=linux-block.git media: staging: rkisp1: cap: support uv swapped planar formats Planar formats with the u and v planes swapped can be supported by swapping the address of the cb and cr buffers. Signed-off-by: Dafna Hirschfeld Reviewed-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/staging/media/rkisp1/rkisp1-capture.c b/drivers/staging/media/rkisp1/rkisp1-capture.c index 4c18b081480c..21496fb2c4da 100644 --- a/drivers/staging/media/rkisp1/rkisp1-capture.c +++ b/drivers/staging/media/rkisp1/rkisp1-capture.c @@ -738,6 +738,14 @@ static void rkisp1_vb2_buf_queue(struct vb2_buffer *vb) rkisp1_pixfmt_comp_size(pixm, RKISP1_PLANE_CB); } + /* + * uv swap can be supported for planar formats by switching + * the address of cb and cr + */ + if (cap->pix.info->comp_planes == 3 && cap->pix.cfg->uv_swap) + swap(ispbuf->buff_addr[RKISP1_PLANE_CR], + ispbuf->buff_addr[RKISP1_PLANE_CB]); + spin_lock_irqsave(&cap->buf.lock, flags); /*