From: Philipp Zabel Date: Mon, 6 Feb 2017 11:44:08 +0000 (+0100) Subject: gpu: ipu-cpmem: add bayer formats to ipu_cpmem_set_image X-Git-Tag: v4.12-rc1~116^2~29^2~18 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=1762ed65c700efb843df8d19a55742566872aade;p=karo-tx-linux.git gpu: ipu-cpmem: add bayer formats to ipu_cpmem_set_image The IPU does not natively understand bayer formats, but it can pass them through unchanged. Add support for setting the image base address and cropping offset to ipu_cpmem_set_image. Signed-off-by: Philipp Zabel --- diff --git a/drivers/gpu/ipu-v3/ipu-cpmem.c b/drivers/gpu/ipu-v3/ipu-cpmem.c index f29aa7b0853c..b72f725e00b5 100644 --- a/drivers/gpu/ipu-v3/ipu-cpmem.c +++ b/drivers/gpu/ipu-v3/ipu-cpmem.c @@ -720,6 +720,19 @@ int ipu_cpmem_set_image(struct ipuv3_channel *ch, struct ipu_image *image) offset = image->rect.left * 3 + image->rect.top * pix->bytesperline; break; + case V4L2_PIX_FMT_SBGGR8: + case V4L2_PIX_FMT_SGBRG8: + case V4L2_PIX_FMT_SGRBG8: + case V4L2_PIX_FMT_SRGGB8: + offset = image->rect.left + image->rect.top * pix->bytesperline; + break; + case V4L2_PIX_FMT_SBGGR16: + case V4L2_PIX_FMT_SGBRG16: + case V4L2_PIX_FMT_SGRBG16: + case V4L2_PIX_FMT_SRGGB16: + offset = image->rect.left * 2 + + image->rect.top * pix->bytesperline; + break; default: /* This should not happen */ WARN_ON(1);