From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Cc: linux-media@vger.kernel.org,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
tomi.valkeinen@ideasonboard.com, bingbu.cao@intel.com,
hongju.wang@intel.com, hverkuil@xs4all.nl,
Andrey Konovalov <andrey.konovalov@linaro.org>,
Dmitry Perchanov <dmitry.perchanov@intel.com>
Subject: Re: [PATCH v3 03/10] media: mc: Add INTERNAL pad flag
Date: Fri, 11 Aug 2023 09:09:41 +0000 [thread overview]
Message-ID: <ZNX61Z5SLvi9HeuV@kekkonen.localdomain> (raw)
In-Reply-To: <frwh2hqesatlwhxqlesujfhwdvhrsxux5b5p2hsqrqqdzebrwz@2squt4aelrac>
Hi Jacopo,
Thanks for the review.
On Thu, Aug 10, 2023 at 04:12:18PM +0200, Jacopo Mondi wrote:
> Hi Sakari
>
> On Tue, Aug 08, 2023 at 10:55:31AM +0300, Sakari Ailus wrote:
> > Internal source pads will be used as routing endpoints in V4L2
> > [GS]_ROUTING IOCTLs, to indicate that the stream begins in the entity.
> >
> > Also prevent creating links to pads that have been flagged as internal.
> >
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > ---
> > Documentation/userspace-api/media/glossary.rst | 6 ++++++
> > Documentation/userspace-api/media/mediactl/media-types.rst | 6 ++++++
> > drivers/media/mc/mc-entity.c | 6 +++++-
> > include/uapi/linux/media.h | 1 +
> > 4 files changed, 18 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/userspace-api/media/glossary.rst b/Documentation/userspace-api/media/glossary.rst
> > index 96a360edbf3b..f7b99a4527c7 100644
> > --- a/Documentation/userspace-api/media/glossary.rst
> > +++ b/Documentation/userspace-api/media/glossary.rst
> > @@ -173,6 +173,12 @@ Glossary
> > An integrated circuit that integrates all components of a computer
> > or other electronic systems.
> >
> > +_media-glossary-stream:
> > + Stream
> > + A distinct flow of data (image data or metadata) over a media pipeline
> > + from source to sink. A source may be e.g. an image sensor and a sink
> > + e.g. a memory buffer.
> > +
> > V4L2 API
> > **V4L2 userspace API**
> >
> > diff --git a/Documentation/userspace-api/media/mediactl/media-types.rst b/Documentation/userspace-api/media/mediactl/media-types.rst
> > index 0ffeece1e0c8..28941da27790 100644
> > --- a/Documentation/userspace-api/media/mediactl/media-types.rst
> > +++ b/Documentation/userspace-api/media/mediactl/media-types.rst
> > @@ -361,6 +361,7 @@ Types and flags used to represent the media graph elements
> > .. _MEDIA-PAD-FL-SINK:
> > .. _MEDIA-PAD-FL-SOURCE:
> > .. _MEDIA-PAD-FL-MUST-CONNECT:
> > +.. _MEDIA-PAD-FL-INTERNAL:
> >
> > .. flat-table:: Media pad flags
> > :header-rows: 0
> > @@ -382,6 +383,11 @@ Types and flags used to represent the media graph elements
> > when this flag isn't set; the absence of the flag doesn't imply
> > there is none.
> >
> > + * - ``MEDIA_PAD_FL_INTERNAL``
> > + - The internal flag indicates an internal pad that has no external
> > + connections. Such a pad shall not be connected with a link. The
> > + internal flag indicates that the :ref:``stream
> > + <media-glossary-stream>`` either starts or ends in the entity.
> >
> > One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``
> > must be set for every pad.
> > diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
> > index 4991281dcccc..03a9e0b8ebab 100644
> > --- a/drivers/media/mc/mc-entity.c
> > +++ b/drivers/media/mc/mc-entity.c
> > @@ -1071,7 +1071,8 @@ int media_get_pad_index(struct media_entity *entity, u32 pad_type,
> >
> > for (i = 0; i < entity->num_pads; i++) {
> > if ((entity->pads[i].flags &
> > - (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE)) != pad_type)
> > + (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE |
> > + MEDIA_PAD_FL_INTERNAL)) != pad_type)
> > continue;
> >
> > if (entity->pads[i].sig_type == sig_type)
> > @@ -1094,6 +1095,9 @@ media_create_pad_link(struct media_entity *source, u16 source_pad,
> > return -EINVAL;
> > if (WARN_ON(!(source->pads[source_pad].flags & MEDIA_PAD_FL_SOURCE)))
> > return -EINVAL;
> > + if (WARN_ON(source->pads[source_pad].flags & MEDIA_PAD_FL_SOURCE &&
>
> Why do you need to check for this again here ? Hasn't the previous
> if() clause just validated that
>
> source->pads[source_pad].flags & MEDIA_PAD_FL_SOURCE ?
Yes, this needs to be changed. As a link is created here, the internal flag
shouldn't be present in neither sink nor source pads. I may have forgotten
to address this previously, I'll do this for v4.
>
> > + source->pads[source_pad].flags & MEDIA_PAD_FL_INTERNAL))
> > + return -EINVAL;
> > if (WARN_ON(!(sink->pads[sink_pad].flags & MEDIA_PAD_FL_SINK)))
> > return -EINVAL;
> >
> > diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
> > index 1c80b1d6bbaf..80cfd12a43fc 100644
> > --- a/include/uapi/linux/media.h
> > +++ b/include/uapi/linux/media.h
> > @@ -208,6 +208,7 @@ struct media_entity_desc {
> > #define MEDIA_PAD_FL_SINK (1U << 0)
> > #define MEDIA_PAD_FL_SOURCE (1U << 1)
> > #define MEDIA_PAD_FL_MUST_CONNECT (1U << 2)
> > +#define MEDIA_PAD_FL_INTERNAL (1U << 3)
> >
> > struct media_pad_desc {
> > __u32 entity; /* entity ID */
--
Regards,
Sakari Ailus
next prev parent reply other threads:[~2023-08-11 9:09 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-08 7:55 [PATCH v3 00/10] Generic line based metadata support, internal pads Sakari Ailus
2023-08-08 7:55 ` [PATCH v3 01/10] media: Documentation: Align numbered list Sakari Ailus
2023-09-05 13:06 ` Laurent Pinchart
2023-09-06 12:43 ` Sakari Ailus
2023-09-06 12:50 ` Laurent Pinchart
2023-09-07 10:58 ` Sakari Ailus
2023-08-08 7:55 ` [PATCH v3 02/10] media: mc: Check pad flag validity Sakari Ailus
2023-08-10 13:54 ` Jacopo Mondi
2023-08-14 8:49 ` Sakari Ailus
2023-09-05 13:13 ` Laurent Pinchart
2023-08-08 7:55 ` [PATCH v3 03/10] media: mc: Add INTERNAL pad flag Sakari Ailus
2023-08-08 8:15 ` Hans Verkuil
2023-08-11 11:48 ` Sakari Ailus
2023-08-10 14:12 ` Jacopo Mondi
2023-08-11 9:09 ` Sakari Ailus [this message]
2023-09-05 13:50 ` Laurent Pinchart
2023-08-08 7:55 ` [PATCH v3 04/10] media: uapi: Add generic serial metadata mbus formats Sakari Ailus
2023-08-23 13:16 ` Tomi Valkeinen
2023-08-24 7:24 ` Sakari Ailus
2023-08-24 8:26 ` Tomi Valkeinen
2023-09-05 16:38 ` Laurent Pinchart
2023-09-06 8:28 ` Tomi Valkeinen
2023-09-06 11:31 ` Laurent Pinchart
2023-09-06 11:39 ` Tomi Valkeinen
2023-09-06 12:34 ` Sakari Ailus
2023-09-06 12:50 ` Laurent Pinchart
2023-09-07 11:04 ` Sakari Ailus
2023-08-08 7:55 ` [PATCH v3 05/10] media: uapi: Document which mbus format fields are valid for metadata Sakari Ailus
2023-08-10 15:19 ` Jacopo Mondi
2023-08-14 10:23 ` Sakari Ailus
2023-09-05 16:44 ` Laurent Pinchart
2023-08-08 7:55 ` [PATCH v3 06/10] media: uapi: Add a macro to tell whether an mbus code is metadata Sakari Ailus
2023-08-08 8:14 ` Hans Verkuil
2023-08-08 8:16 ` Sakari Ailus
2023-09-05 9:47 ` Tomi Valkeinen
2023-09-05 10:37 ` Sakari Ailus
2023-09-05 17:06 ` Laurent Pinchart
2023-09-06 11:33 ` Sakari Ailus
2023-09-06 12:23 ` Laurent Pinchart
2023-09-06 13:06 ` Sakari Ailus
2023-09-07 8:20 ` Sakari Ailus
2023-08-08 7:55 ` [PATCH v3 07/10] media: uapi: Add generic 8-bit metadata format definitions Sakari Ailus
2023-08-08 8:22 ` Hans Verkuil
2023-08-11 6:31 ` Jacopo Mondi
2023-08-11 9:11 ` Sakari Ailus
2023-08-11 9:43 ` Jacopo Mondi
2023-08-11 10:55 ` Sakari Ailus
2023-09-05 16:47 ` Laurent Pinchart
2023-09-06 11:36 ` Sakari Ailus
2023-09-06 12:36 ` Laurent Pinchart
2023-09-06 13:25 ` Sakari Ailus
2023-09-06 13:30 ` Laurent Pinchart
2023-09-06 13:39 ` Sakari Ailus
2023-09-06 13:47 ` Laurent Pinchart
2023-09-07 8:06 ` Sakari Ailus
2023-09-07 8:16 ` Sakari Ailus
2023-08-11 11:12 ` Sakari Ailus
2023-09-05 16:55 ` Laurent Pinchart
2023-09-06 11:56 ` Sakari Ailus
2023-09-06 13:07 ` Laurent Pinchart
2023-09-22 8:50 ` Sakari Ailus
2023-09-22 10:25 ` Laurent Pinchart
2023-09-07 8:36 ` Sakari Ailus
2023-09-07 8:47 ` Laurent Pinchart
2023-09-07 9:49 ` Sakari Ailus
2023-08-08 7:55 ` [PATCH v3 08/10] media: v4l: Support line-based metadata capture Sakari Ailus
2023-08-10 15:24 ` Jacopo Mondi
2023-08-14 11:02 ` Sakari Ailus
2023-09-05 17:15 ` Laurent Pinchart
2023-09-06 7:21 ` Jacopo Mondi
2023-09-06 12:24 ` Sakari Ailus
2023-09-06 13:20 ` Laurent Pinchart
2023-09-22 8:47 ` Sakari Ailus
2023-09-07 8:48 ` Sakari Ailus
2023-08-08 7:55 ` [PATCH v3 09/10] media: Add media bus codes for MIPI CCS embedded data Sakari Ailus
2023-09-05 17:25 ` Laurent Pinchart
2023-09-06 13:03 ` Sakari Ailus
2023-09-06 13:15 ` Laurent Pinchart
2023-09-07 11:10 ` Sakari Ailus
2023-08-08 7:55 ` [PATCH v3 10/10] media: uapi: v4l: Document source routes Sakari Ailus
2023-08-08 8:55 ` Hans Verkuil
2023-08-11 10:44 ` Sakari Ailus
2023-09-05 23:17 ` Laurent Pinchart
2023-09-06 12:11 ` 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=ZNX61Z5SLvi9HeuV@kekkonen.localdomain \
--to=sakari.ailus@linux.intel.com \
--cc=andrey.konovalov@linaro.org \
--cc=bingbu.cao@intel.com \
--cc=dmitry.perchanov@intel.com \
--cc=hongju.wang@intel.com \
--cc=hverkuil@xs4all.nl \
--cc=jacopo.mondi@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox