From: Hyun Kwon <hyun.kwon@xilinx.com>
To: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Cc: "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"laurent.pinchart@ideasonboard.com"
<laurent.pinchart@ideasonboard.com>,
"michal.simek@xilinx.com" <michal.simek@xilinx.com>,
Hyun Kwon <hyunk@xilinx.com>,
Satish Kumar Nagireddy <SATISHNA@xilinx.com>
Subject: Re: [PATCH v4 08/10] v4l: xilinx: dma: Update video format descriptor
Date: Tue, 1 May 2018 14:23:01 -0700 [thread overview]
Message-ID: <20180501212301.GD9872@smtp.xilinx.com> (raw)
In-Reply-To: <7df8c3d2e8b7d1de140adb7879ea262f2ec9a340.1524955156.git.satish.nagireddy.nagireddy@xilinx.com>
Hi Satish,
Thanks for the patch.
On Mon, 2018-04-30 at 18:35:11 -0700, Satish Kumar Nagireddy wrote:
> This patch updates video format descriptor to help information
> viz., number of planes per color format and chroma sub sampling
> factors.
>
> Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
> ---
> drivers/media/platform/xilinx/xilinx-dma.c | 12 ++++++------
> drivers/media/platform/xilinx/xilinx-vip.c | 28 +++++++++++++++++++---------
> drivers/media/platform/xilinx/xilinx-vip.h | 8 +++++++-
> 3 files changed, 32 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/media/platform/xilinx/xilinx-dma.c b/drivers/media/platform/xilinx/xilinx-dma.c
> index 16aeb46..658586e 100644
> --- a/drivers/media/platform/xilinx/xilinx-dma.c
> +++ b/drivers/media/platform/xilinx/xilinx-dma.c
> @@ -366,7 +366,7 @@ static void xvip_dma_buffer_queue(struct vb2_buffer *vb)
> }
>
> dma->xt.frame_size = 1;
> - dma->sgl[0].size = dma->format.width * dma->fmtinfo->bpp;
> + dma->sgl[0].size = dma->format.width * dma->fmtinfo->bpp[0];
> dma->sgl[0].icg = dma->format.bytesperline - dma->sgl[0].size;
> dma->xt.numf = dma->format.height;
>
> @@ -569,12 +569,12 @@ __xvip_dma_try_format(struct xvip_dma *dma, struct v4l2_pix_format *pix,
> * the minimum and maximum values, clamp the requested width and convert
> * it back to pixels.
> */
> - align = lcm(dma->align, info->bpp);
> + align = lcm(dma->align, info->bpp[0]);
> min_width = roundup(XVIP_DMA_MIN_WIDTH, align);
> max_width = rounddown(XVIP_DMA_MAX_WIDTH, align);
> - width = rounddown(pix->width * info->bpp, align);
> + width = rounddown(pix->width * info->bpp[0], align);
>
> - pix->width = clamp(width, min_width, max_width) / info->bpp;
> + pix->width = clamp(width, min_width, max_width) / info->bpp[0];
> pix->height = clamp(pix->height, XVIP_DMA_MIN_HEIGHT,
> XVIP_DMA_MAX_HEIGHT);
>
> @@ -582,7 +582,7 @@ __xvip_dma_try_format(struct xvip_dma *dma, struct v4l2_pix_format *pix,
> * line value is zero, the module doesn't support user configurable line
> * sizes. Override the requested value with the minimum in that case.
> */
> - min_bpl = pix->width * info->bpp;
> + min_bpl = pix->width * info->bpp[0];
> max_bpl = rounddown(XVIP_DMA_MAX_WIDTH, dma->align);
> bpl = rounddown(pix->bytesperline, dma->align);
>
> @@ -676,7 +676,7 @@ int xvip_dma_init(struct xvip_composite_device *xdev, struct xvip_dma *dma,
> dma->format.field = V4L2_FIELD_NONE;
> dma->format.width = XVIP_DMA_DEF_WIDTH;
> dma->format.height = XVIP_DMA_DEF_HEIGHT;
> - dma->format.bytesperline = dma->format.width * dma->fmtinfo->bpp;
> + dma->format.bytesperline = dma->format.width * dma->fmtinfo->bpp[0];
> dma->format.sizeimage = dma->format.bytesperline * dma->format.height;
>
> /* Initialize the media entity... */
> diff --git a/drivers/media/platform/xilinx/xilinx-vip.c b/drivers/media/platform/xilinx/xilinx-vip.c
> index 3112591..81cc0d2 100644
> --- a/drivers/media/platform/xilinx/xilinx-vip.c
> +++ b/drivers/media/platform/xilinx/xilinx-vip.c
> @@ -27,22 +27,32 @@
> */
>
> static const struct xvip_video_format xvip_video_formats[] = {
> + { XVIP_VF_YUV_420, 8, NULL, MEDIA_BUS_FMT_VYYUYY8_1X24,
> + {1, 2, 0}, V4L2_PIX_FMT_NV12, 2, 2, 2, "4:2:0, semi-planar, YUV" },
> + { XVIP_VF_YUV_420, 10, NULL, MEDIA_BUS_FMT_VYYUYY8_1X24,
> + {1, 2, 0}, V4L2_PIX_FMT_XV15, 2, 2, 2, "4:2:0, 10-bit 2-plane cont" },
> { XVIP_VF_YUV_422, 8, NULL, MEDIA_BUS_FMT_UYVY8_1X16,
> - 2, V4L2_PIX_FMT_YUYV, "4:2:2, packed, YUYV" },
> - { XVIP_VF_YUV_444, 8, NULL, MEDIA_BUS_FMT_VUY8_1X24,
> - 3, V4L2_PIX_FMT_YUV444, "4:4:4, packed, YUYV" },
> + {2, 0, 0}, V4L2_PIX_FMT_YUYV, 1, 2, 1, "4:2:2, packed, YUYV" },
> + { XVIP_VF_VUY_422, 8, NULL, MEDIA_BUS_FMT_UYVY8_1X16,
> + {2, 0, 0}, V4L2_PIX_FMT_UYVY, 1, 2, 1, "4:2:2, packed, UYVY" },
> + { XVIP_VF_YUV_422, 8, NULL, MEDIA_BUS_FMT_UYVY8_1X16,
> + {1, 2, 0}, V4L2_PIX_FMT_NV16, 2, 2, 1, "4:2:2, semi-planar, YUV" },
> + { XVIP_VF_YUV_422, 10, NULL, MEDIA_BUS_FMT_UYVY8_1X16,
> + {1, 2, 0}, V4L2_PIX_FMT_XV20, 2, 2, 1, "4:2:2, 10-bit 2-plane cont" },
> + { XVIP_VF_RBG, 8, NULL, MEDIA_BUS_FMT_RBG888_1X24,
> + {3, 0, 0}, V4L2_PIX_FMT_BGR24, 1, 1, 1, "24-bit RGB" },
> { XVIP_VF_RBG, 8, NULL, MEDIA_BUS_FMT_RBG888_1X24,
> - 3, 0, NULL },
> + {3, 0, 0}, V4L2_PIX_FMT_RGB24, 1, 1, 1, "24-bit RGB" },
> { XVIP_VF_MONO_SENSOR, 8, "mono", MEDIA_BUS_FMT_Y8_1X8,
> - 1, V4L2_PIX_FMT_GREY, "Greyscale 8-bit" },
> + {1, 0, 0}, V4L2_PIX_FMT_GREY, 1, 1, 1, "Greyscale 8-bit" },
> { XVIP_VF_MONO_SENSOR, 8, "rggb", MEDIA_BUS_FMT_SRGGB8_1X8,
> - 1, V4L2_PIX_FMT_SGRBG8, "Bayer 8-bit RGGB" },
> + {1, 0, 0}, V4L2_PIX_FMT_SGRBG8, 1, 1, 1, "Bayer 8-bit RGGB" },
> { XVIP_VF_MONO_SENSOR, 8, "grbg", MEDIA_BUS_FMT_SGRBG8_1X8,
> - 1, V4L2_PIX_FMT_SGRBG8, "Bayer 8-bit GRBG" },
> + {1, 0, 0}, V4L2_PIX_FMT_SGRBG8, 1, 1, 1, "Bayer 8-bit GRBG" },
> { XVIP_VF_MONO_SENSOR, 8, "gbrg", MEDIA_BUS_FMT_SGBRG8_1X8,
> - 1, V4L2_PIX_FMT_SGBRG8, "Bayer 8-bit GBRG" },
> + {1, 0, 0}, V4L2_PIX_FMT_SGBRG8, 1, 1, 1, "Bayer 8-bit GBRG" },
> { XVIP_VF_MONO_SENSOR, 8, "bggr", MEDIA_BUS_FMT_SBGGR8_1X8,
> - 1, V4L2_PIX_FMT_SBGGR8, "Bayer 8-bit BGGR" },
> + {1, 0, 0}, V4L2_PIX_FMT_SBGGR8, 1, 1, 1, "Bayer 8-bit BGGR" },
> };
>
> /**
> diff --git a/drivers/media/platform/xilinx/xilinx-vip.h b/drivers/media/platform/xilinx/xilinx-vip.h
> index 42fee20..5e7a978 100644
> --- a/drivers/media/platform/xilinx/xilinx-vip.h
> +++ b/drivers/media/platform/xilinx/xilinx-vip.h
> @@ -111,6 +111,9 @@ struct xvip_device {
> * @code: media bus format code
> * @bpp: bytes per pixel (when stored in memory)
Better to mention 'bpp' is per plane.
> * @fourcc: V4L2 pixel format FCC identifier
> + * @num_planes: number of planes w.r.t. color format
> + * @hsub: Horizontal sampling factor of Chroma
> + * @vsub: Vertical sampling factor of Chroma
> * @description: format description, suitable for userspace
> */
> struct xvip_video_format {
> @@ -118,8 +121,11 @@ struct xvip_video_format {
> unsigned int width;
> const char *pattern;
> unsigned int code;
> - unsigned int bpp;
> + unsigned int bpp[3];
Hm, only first one is used here, even when this becomes an array.
Thanks,
-hyun
> u32 fourcc;
> + u8 num_planes;
> + u8 hsub;
> + u8 vsub;
> const char *description;
> };
>
> --
> 2.1.1
>
next prev parent reply other threads:[~2018-05-01 21:23 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-01 1:35 [PATCH v4 00/10] Add support for multi-planar formats and 10 bit formats Satish Kumar Nagireddy
2018-05-01 1:35 ` [PATCH v4 01/10] v4l: xilinx: dma: Remove colorspace check in xvip_dma_verify_format Satish Kumar Nagireddy
2018-05-01 1:35 ` [PATCH v4 02/10] xilinx: v4l: dma: Use the dmaengine_terminate_all() wrapper Satish Kumar Nagireddy
2018-05-01 21:21 ` Hyun Kwon
2018-05-01 1:35 ` [PATCH v4 03/10] xilinx: v4l: dma: Update driver to allow for probe defer Satish Kumar Nagireddy
2018-05-01 1:35 ` [PATCH v4 04/10] Documentation: uapi: media: v4l: New pixel format Satish Kumar Nagireddy
2018-05-01 1:35 ` [PATCH v4 05/10] uapi: media: New fourcc codes needed by Xilinx Video IP Satish Kumar Nagireddy
2018-05-01 21:21 ` Hyun Kwon
2018-05-01 1:35 ` [PATCH v4 06/10] media-bus: uapi: Add YCrCb 420 media bus format Satish Kumar Nagireddy
2018-05-01 1:35 ` [PATCH v4 07/10] media: Add new dt-bindings/vf_codes for supported formats Satish Kumar Nagireddy
2018-05-01 21:22 ` Hyun Kwon
2018-05-01 1:35 ` [PATCH v4 08/10] v4l: xilinx: dma: Update video format descriptor Satish Kumar Nagireddy
2018-05-01 21:23 ` Hyun Kwon [this message]
2018-05-01 1:35 ` [PATCH v4 09/10] v4l: xilinx: dma: Add multi-planar support Satish Kumar Nagireddy
2018-05-01 6:44 ` Ian Arkver
2018-05-02 0:07 ` Satish Kumar Nagireddy
2018-05-01 21:24 ` Hyun Kwon
2018-05-02 0:18 ` Satish Kumar Nagireddy
2018-05-01 1:35 ` [PATCH v4 10/10] v4l: xilinx: dma: Add support for 10 bit formats Satish Kumar Nagireddy
2018-05-01 21:25 ` Hyun Kwon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180501212301.GD9872@smtp.xilinx.com \
--to=hyun.kwon@xilinx.com \
--cc=SATISHNA@xilinx.com \
--cc=hyunk@xilinx.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=michal.simek@xilinx.com \
--cc=satish.nagireddy.nagireddy@xilinx.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.