From: Paul Kocialkowski <paulk@sys-base.io>
To: Arash Golgol <arash.golgol@gmail.com>
Cc: linux-media@vger.kernel.org, yong.deng@magewell.com,
mchehab@kernel.org, wens@kernel.org, jernej.skrabec@gmail.com,
samuel@sholland.org, laurent.pinchart@ideasonboard.com,
linux-sunxi@lists.linux.dev
Subject: Re: [PATCH v1 3/3] media: sun6i-csi: capture: Support MC-centric format enumeration
Date: Thu, 7 May 2026 13:58:08 +0200 [thread overview]
Message-ID: <afx-UNHAYcfqCOMQ@collins> (raw)
In-Reply-To: <20260217064050.18388-4-arash.golgol@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3254 bytes --]
Hi Arash,
Le Tue 17 Feb 26, 10:10, Arash Golgol a écrit :
> Extend vidioc_enum_fmt to support MC-centric enumeration by filtering
> pixel formats based on the provided mbus code. Advertise MC I/O support
> on the video device to reflect its intended usage within a media graph.
>
> Signed-off-by: Arash Golgol <arash.golgol@gmail.com>
> ---
> .../sunxi/sun6i-csi/sun6i_csi_capture.c | 38 +++++++++++++++++--
> 1 file changed, 35 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
> index dd06d4c116e0..f54d7a6397be 100644
> --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
> +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
> @@ -327,6 +327,21 @@ static bool sun6i_csi_capture_format_match(u32 pixelformat, u32 mbus_code)
> return false;
> }
>
> +static const u32 *sun6i_csi_capture_pixelformat_find(u32 mbus_code)
I am not a big fan of returning a pointer here. We can safely assume
that a valid pixel format will be non-zero (it's a fourcc), so I would
just return the pixelformat directly and 0 for invalid cases.
All the best,
Paul
> +{
> + unsigned int i;
> +
> + for (i = 0; i < ARRAY_SIZE(sun6i_csi_capture_format_matches); i++) {
> + const struct sun6i_csi_capture_format_match *match =
> + &sun6i_csi_capture_format_matches[i];
> +
> + if (match->mbus_code == mbus_code)
> + return &match->pixelformat;
> + }
> +
> + return NULL;
> +}
> +
> /* Capture */
>
> static void
> @@ -729,11 +744,27 @@ static int sun6i_csi_capture_enum_fmt(struct file *file, void *priv,
> struct v4l2_fmtdesc *fmtdesc)
> {
> u32 index = fmtdesc->index;
> + u32 mbus_code = fmtdesc->mbus_code;
> + const u32 *pixelformat;
> +
> + /* MC-centric or Video-node-centric */
> + if (mbus_code) {
> + /* There is only one pixelformat for a mbus_code. */
> + if (index)
> + return -EINVAL;
> +
> + pixelformat = sun6i_csi_capture_pixelformat_find(mbus_code);
> + } else {
> + if (index >= ARRAY_SIZE(sun6i_csi_capture_formats))
> + return -EINVAL;
> +
> + pixelformat = &sun6i_csi_capture_formats[index].pixelformat;
> + }
>
> - if (index >= ARRAY_SIZE(sun6i_csi_capture_formats))
> + if (!pixelformat)
> return -EINVAL;
>
> - fmtdesc->pixelformat = sun6i_csi_capture_formats[index].pixelformat;
> + fmtdesc->pixelformat = *pixelformat;
>
> return 0;
> }
> @@ -1065,7 +1096,8 @@ int sun6i_csi_capture_setup(struct sun6i_csi_device *csi_dev)
>
> strscpy(video_dev->name, SUN6I_CSI_CAPTURE_NAME,
> sizeof(video_dev->name));
> - video_dev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> + video_dev->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
> + V4L2_CAP_IO_MC;
> video_dev->vfl_dir = VFL_DIR_RX;
> video_dev->release = video_device_release_empty;
> video_dev->fops = &sun6i_csi_capture_fops;
> --
> 2.34.1
>
--
Paul Kocialkowski,
Independent contractor - sys-base - https://www.sys-base.io/
Free software developer - https://www.paulk.fr/
Expert in multimedia, graphics and embedded hardware support with Linux.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2026-05-07 11:58 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-17 6:40 [PATCH v1 0/3] media: sun6i-csi: Convert to active state and improve MC support Arash Golgol
2026-02-17 6:40 ` [PATCH v1 1/3] media: sun6i-csi: bridge: Use V4L2 subdev active state Arash Golgol
2026-05-07 11:55 ` Paul Kocialkowski
2026-05-07 13:55 ` Laurent Pinchart
2026-02-17 6:40 ` [PATCH v1 2/3] media: sun6i-csi: capture: Implement vidioc_enum_framesizes Arash Golgol
2026-05-07 11:56 ` Paul Kocialkowski
2026-05-07 13:55 ` Laurent Pinchart
2026-02-17 6:40 ` [PATCH v1 3/3] media: sun6i-csi: capture: Support MC-centric format enumeration Arash Golgol
2026-05-07 11:58 ` Paul Kocialkowski [this message]
2026-05-07 13:57 ` Laurent Pinchart
2026-04-24 13:55 ` [PATCH v1 0/3] media: sun6i-csi: Convert to active state and improve MC support arash golgol
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=afx-UNHAYcfqCOMQ@collins \
--to=paulk@sys-base.io \
--cc=arash.golgol@gmail.com \
--cc=jernej.skrabec@gmail.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=mchehab@kernel.org \
--cc=samuel@sholland.org \
--cc=wens@kernel.org \
--cc=yong.deng@magewell.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.