From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, hverkuil@xs4all.nl,
tomi.valkeinen@ideasonboard.com, jacopo.mondi@ideasonboard.com,
bingbu.cao@intel.com, hongju.wang@intel.com
Subject: Re: [PATCH 2/6] media: v4l: subdev: Also return pads array information on stream functions
Date: Fri, 13 Oct 2023 14:07:41 +0300 [thread overview]
Message-ID: <20231013110741.GD11101@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20231013104424.404768-3-sakari.ailus@linux.intel.com>
Hi Sakari,
Thank you for the patch.
On Fri, Oct 13, 2023 at 01:44:20PM +0300, Sakari Ailus wrote:
> There are two sets of functions that return information from sub-device
> state, one for stream-unaware users and another for stream-aware users.
> Add support for stream-aware functions to return format, crop and compose
> information from pad-based array that are functionally equivalent to the
> old, stream-unaware ones.
>
> Also check state is non-NULL, in order to guard against old drivers
> potentially calling this with NULL state for active formats or selection
> rectangles.
I'm not too keen on this I'm afraid :-( I think it gets confusing for
drivers that are not stream-aware to have to call a function that takes
a stream number. I don't see a problem with keeping two different sets
of functions, one for stream-aware drivers, and one for other drivers.
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> drivers/media/v4l2-core/v4l2-subdev.c | 39 +++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> index 52a8043ab556..7d0ce8c8aab4 100644
> --- a/drivers/media/v4l2-core/v4l2-subdev.c
> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> @@ -1684,6 +1684,19 @@ v4l2_subdev_state_get_stream_format(struct v4l2_subdev_state *state,
> struct v4l2_subdev_stream_configs *stream_configs;
> unsigned int i;
>
> + if (WARN_ON(!state))
> + return NULL;
> +
> + if (state->pads) {
> + if (stream)
> + return NULL;
> +
> + if (WARN_ON(pad >= state->num_pads))
> + pad = 0;
> +
> + return &state->pads[pad].try_fmt;
> + }
> +
> lockdep_assert_held(state->lock);
>
> stream_configs = &state->stream_configs;
> @@ -1705,6 +1718,19 @@ v4l2_subdev_state_get_stream_crop(struct v4l2_subdev_state *state,
> struct v4l2_subdev_stream_configs *stream_configs;
> unsigned int i;
>
> + if (WARN_ON(!state))
> + return NULL;
> +
> + if (state->pads) {
> + if (stream)
> + return NULL;
> +
> + if (WARN_ON(pad >= state->num_pads))
> + pad = 0;
> +
> + return &state->pads[pad].try_crop;
> + }
> +
> lockdep_assert_held(state->lock);
>
> stream_configs = &state->stream_configs;
> @@ -1726,6 +1752,19 @@ v4l2_subdev_state_get_stream_compose(struct v4l2_subdev_state *state,
> struct v4l2_subdev_stream_configs *stream_configs;
> unsigned int i;
>
> + if (WARN_ON(!state))
> + return NULL;
> +
> + if (state->pads) {
> + if (stream)
> + return NULL;
> +
> + if (WARN_ON(pad >= state->num_pads))
> + pad = 0;
> +
> + return &state->pads[pad].try_compose;
> + }
> +
> lockdep_assert_held(state->lock);
>
> stream_configs = &state->stream_configs;
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2023-10-13 11:07 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-13 10:44 [PATCH 0/6] Unify sub-device state access functions Sakari Ailus
2023-10-13 10:44 ` [PATCH 1/6] media: v4l: subdev: Store the number of pads in sub-device state Sakari Ailus
2023-10-13 10:57 ` Laurent Pinchart
2023-10-13 11:06 ` Sakari Ailus
2023-10-13 11:15 ` Laurent Pinchart
2023-10-13 11:17 ` Sakari Ailus
2023-10-23 8:34 ` Tomi Valkeinen
2023-10-23 11:46 ` Laurent Pinchart
2023-10-13 10:44 ` [PATCH 2/6] media: v4l: subdev: Also return pads array information on stream functions Sakari Ailus
2023-10-13 11:07 ` Laurent Pinchart [this message]
2023-10-13 11:13 ` Sakari Ailus
2023-10-16 8:24 ` Laurent Pinchart
2023-10-16 8:59 ` Sakari Ailus
2023-10-16 10:21 ` Sakari Ailus
2023-10-23 11:42 ` Laurent Pinchart
2023-10-13 10:44 ` [PATCH 3/6] media: v4l: subdev: Rename sub-device state information access functions Sakari Ailus
2023-10-13 11:04 ` Laurent Pinchart
2023-10-13 11:09 ` Sakari Ailus
2023-10-13 11:23 ` Laurent Pinchart
2023-10-13 11:33 ` Sakari Ailus
2023-10-16 8:26 ` Laurent Pinchart
2023-10-16 8:58 ` Sakari Ailus
2023-10-17 6:00 ` kernel test robot
2023-10-17 8:22 ` kernel test robot
2023-10-13 10:44 ` [PATCH 4/6] media: v4l: subdev: v4l2_subdev_get_format always returns format now Sakari Ailus
2023-10-13 11:06 ` Laurent Pinchart
2023-10-13 10:44 ` [PATCH 5/6] media: v4l: subdev: Switch to stream-aware state functions Sakari Ailus
2023-10-17 9:17 ` kernel test robot
2023-10-13 10:44 ` [PATCH 6/6] media: v4l: subdev: Remove stream-unaware sub-device state access Sakari Ailus
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=20231013110741.GD11101@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=bingbu.cao@intel.com \
--cc=hongju.wang@intel.com \
--cc=hverkuil@xs4all.nl \
--cc=jacopo.mondi@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=tomi.valkeinen@ideasonboard.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.