mbox series

[v2,0/3] media: rkisp1: Miscellaneous improvements

Message ID 20221117084217.3892680-1-paul.elder@ideasonboard.com
Headers show
Series media: rkisp1: Miscellaneous improvements | expand

Message

Paul Elder Nov. 17, 2022, 8:42 a.m. UTC
This patch series adds small improvements to the rkisp1 driver:
- Add NV16M and NV61M output
- Implement ENUM_FRAMESIZES

As well as a small code cleanup.

These patches have been sent before individually, so really this is a
resend, which also bunches them together.

Laurent Pinchart (1):
  media: rkisp1: Make local immutable array variables static const

Paul Elder (2):
  media: rkisp1: Add NV16M and NV61M to output formats
  media: rkisp1: Implement ENUM_FRAMESIZES

 .../platform/rockchip/rkisp1/rkisp1-capture.c | 64 +++++++++++++++++--
 1 file changed, 60 insertions(+), 4 deletions(-)

Comments

Dafna Hirschfeld Nov. 19, 2022, 10:57 a.m. UTC | #1
On 17.11.2022 17:42, Paul Elder wrote:
>Implement VIDIOC_ENUM_FRAMESIZES for the rkisp1 capture devices.
>
>Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
>Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com>

>---
> .../platform/rockchip/rkisp1/rkisp1-capture.c | 30 +++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
>diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
>index 91e685fdbbe9..03c2922bfbed 100644
>--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
>+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
>@@ -1236,6 +1236,35 @@ static int rkisp1_enum_fmt_vid_cap_mplane(struct file *file, void *priv,
> 	return -EINVAL;
> }
>
>+static int rkisp1_enum_framesizes(struct file *file, void *fh,
>+				  struct v4l2_frmsizeenum *fsize)
>+{
>+	static const unsigned int max_widths[] = {
>+		RKISP1_RSZ_MP_SRC_MAX_WIDTH,
>+		RKISP1_RSZ_SP_SRC_MAX_WIDTH,
>+	};
>+	static const unsigned int max_heights[] = {
>+		RKISP1_RSZ_MP_SRC_MAX_HEIGHT,
>+		RKISP1_RSZ_SP_SRC_MAX_HEIGHT,
>+	};
>+	struct rkisp1_capture *cap = video_drvdata(file);
>+
>+	if (fsize->index != 0)
>+		return -EINVAL;
>+
>+	fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE;
>+
>+	fsize->stepwise.min_width = RKISP1_RSZ_SRC_MIN_WIDTH;
>+	fsize->stepwise.max_width = max_widths[cap->id];
>+	fsize->stepwise.step_width = 2;
>+
>+	fsize->stepwise.min_height = RKISP1_RSZ_SRC_MIN_HEIGHT;
>+	fsize->stepwise.max_height = max_heights[cap->id];
>+	fsize->stepwise.step_height = 2;
>+
>+	return 0;
>+}
>+
> static int rkisp1_s_fmt_vid_cap_mplane(struct file *file,
> 				       void *priv, struct v4l2_format *f)
> {
>@@ -1285,6 +1314,7 @@ static const struct v4l2_ioctl_ops rkisp1_v4l2_ioctl_ops = {
> 	.vidioc_s_fmt_vid_cap_mplane = rkisp1_s_fmt_vid_cap_mplane,
> 	.vidioc_g_fmt_vid_cap_mplane = rkisp1_g_fmt_vid_cap_mplane,
> 	.vidioc_enum_fmt_vid_cap = rkisp1_enum_fmt_vid_cap_mplane,
>+	.vidioc_enum_framesizes = rkisp1_enum_framesizes,
> 	.vidioc_querycap = rkisp1_querycap,
> 	.vidioc_subscribe_event = v4l2_ctrl_subscribe_event,
> 	.vidioc_unsubscribe_event = v4l2_event_unsubscribe,
>-- 
>2.35.1
>
Dafna Hirschfeld Nov. 19, 2022, 10:59 a.m. UTC | #2
On 17.11.2022 17:42, Paul Elder wrote:
>Add support for NV16M and NV61M as output formats. As NV16, NV61, NV12M
>and NV21M are already supported, the infrastructure is already in place
>to support NV16M and NV61M, so it is sufficient to simply add relevant
>entries to the list of output formats.
>
>Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
>Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com>

>---
> .../platform/rockchip/rkisp1/rkisp1-capture.c | 22 +++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
>diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
>index d4540684ea9a..7695ef134908 100644
>--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
>+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
>@@ -110,6 +110,16 @@ static const struct rkisp1_capture_fmt_cfg rkisp1_mp_fmts[] = {
> 		.uv_swap = 1,
> 		.write_format = RKISP1_MI_CTRL_MP_WRITE_YUV_SPLA,
> 		.mbus = MEDIA_BUS_FMT_YUYV8_2X8,
>+	}, {
>+		.fourcc = V4L2_PIX_FMT_NV16M,
>+		.uv_swap = 0,
>+		.write_format = RKISP1_MI_CTRL_MP_WRITE_YUV_SPLA,
>+		.mbus = MEDIA_BUS_FMT_YUYV8_2X8,
>+	}, {
>+		.fourcc = V4L2_PIX_FMT_NV61M,
>+		.uv_swap = 1,
>+		.write_format = RKISP1_MI_CTRL_MP_WRITE_YUV_SPLA,
>+		.mbus = MEDIA_BUS_FMT_YUYV8_2X8,
> 	}, {
> 		.fourcc = V4L2_PIX_FMT_YVU422M,
> 		.uv_swap = 1,
>@@ -237,6 +247,18 @@ static const struct rkisp1_capture_fmt_cfg rkisp1_sp_fmts[] = {
> 		.write_format = RKISP1_MI_CTRL_SP_WRITE_SPLA,
> 		.output_format = RKISP1_MI_CTRL_SP_OUTPUT_YUV422,
> 		.mbus = MEDIA_BUS_FMT_YUYV8_2X8,
>+	}, {
>+		.fourcc = V4L2_PIX_FMT_NV16M,
>+		.uv_swap = 0,
>+		.write_format = RKISP1_MI_CTRL_SP_WRITE_SPLA,
>+		.output_format = RKISP1_MI_CTRL_SP_OUTPUT_YUV422,
>+		.mbus = MEDIA_BUS_FMT_YUYV8_2X8,
>+	}, {
>+		.fourcc = V4L2_PIX_FMT_NV61M,
>+		.uv_swap = 1,
>+		.write_format = RKISP1_MI_CTRL_SP_WRITE_SPLA,
>+		.output_format = RKISP1_MI_CTRL_SP_OUTPUT_YUV422,
>+		.mbus = MEDIA_BUS_FMT_YUYV8_2X8,
> 	}, {
> 		.fourcc = V4L2_PIX_FMT_YVU422M,
> 		.uv_swap = 1,
>-- 
>2.35.1
>
Jacopo Mondi Feb. 21, 2023, 1:57 p.m. UTC | #3
Hello

On Thu, Nov 17, 2022 at 05:42:14PM +0900, Paul Elder wrote:
> This patch series adds small improvements to the rkisp1 driver:
> - Add NV16M and NV61M output
> - Implement ENUM_FRAMESIZES
>
> As well as a small code cleanup.
>
> These patches have been sent before individually, so really this is a
> resend, which also bunches them together.
>
> Laurent Pinchart (1):
>   media: rkisp1: Make local immutable array variables static const
>
> Paul Elder (2):
>   media: rkisp1: Add NV16M and NV61M to output formats
>   media: rkisp1: Implement ENUM_FRAMESIZES

Has this series fell into cracks ? Support for VIDIOC_ENUM_FRAMESIZES
in particular is a relevant feature and seems not controversial at all...

>
>  .../platform/rockchip/rkisp1/rkisp1-capture.c | 64 +++++++++++++++++--
>  1 file changed, 60 insertions(+), 4 deletions(-)
>
> --
> 2.35.1
>
Laurent Pinchart March 25, 2023, 8 p.m. UTC | #4
Hi Jacopo,

On Tue, Feb 21, 2023 at 02:57:30PM +0100, Jacopo Mondi wrote:
> On Thu, Nov 17, 2022 at 05:42:14PM +0900, Paul Elder wrote:
> > This patch series adds small improvements to the rkisp1 driver:
> > - Add NV16M and NV61M output
> > - Implement ENUM_FRAMESIZES
> >
> > As well as a small code cleanup.
> >
> > These patches have been sent before individually, so really this is a
> > resend, which also bunches them together.
> >
> > Laurent Pinchart (1):
> >   media: rkisp1: Make local immutable array variables static const
> >
> > Paul Elder (2):
> >   media: rkisp1: Add NV16M and NV61M to output formats
> >   media: rkisp1: Implement ENUM_FRAMESIZES
> 
> Has this series fell into cracks ? Support for VIDIOC_ENUM_FRAMESIZES
> in particular is a relevant feature and seems not controversial at all...

An alternative version of the first patch has been merged already, and
I've just sent a pull request for the other two.

> >  .../platform/rockchip/rkisp1/rkisp1-capture.c | 64 +++++++++++++++++--
> >  1 file changed, 60 insertions(+), 4 deletions(-)