[PATCH 02/16] media: v4l2-device: Add struct v4l2_device.flags

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Nov 3 09:02:47 PST 2026


On Tue, Nov 03, 2026 at 02:42:30PM +0000, Daniel Scally wrote:
> On 03/11/2026 13:51, Nicolas Dufresne wrote:
> > Le mardi 03 novembre 2026 à 10:09 +0200, Gjorgji Rosikopulos (Consultant) a
> > écrit :
> >> On 11/3/2026 9:40 AM, Daniel Scally wrote:
> >>> Add a flags field to struct v4l2_device, along with a single flag
> >>> value that is designed to tell v4l2-async in which direction data
> >>> flows for this v4l2 device so that it knows how to set up device
> >>> links between subdevices connected using the async APIs.
> >>>
> >>> Signed-off-by: Daniel Scally <dan.scally at ideasonboard.com>
> >>> ---
> >>>   include/media/v4l2-device.h | 7 +++++++
> >>>   1 file changed, 7 insertions(+)
> >>>
> >>> diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h
> >>> index 25f69b1b8db03d077f7570471d5c6910fcafe110..9b17916d63641ba637cf8c37aa925749bd4e2134 100644
> >>> --- a/include/media/v4l2-device.h
> >>> +++ b/include/media/v4l2-device.h
> >>> @@ -15,6 +15,9 @@
> >>>   
> >>>   struct v4l2_ctrl_handler;
> >>>   
> >>> +/* Set this flag if this V4L2 device is an "output" rather than an "input". */
> >>> +#define V4L2_DEVICE_FL_IS_OUTPUT			BIT(0)
> >>
> >> Just for the clarification do we change the meaning of output->capture to input->output?
> >> I know that output is confusing for everyone including me but somehow i get used to it.
> >> However to clarify what this means will be helpful :-)
> > 
> > I agree this is confusing. To avoid all the legacy, we could use PRODUCER /
> > CONSUMER, or does anyone has a better idea?
> 
> I have no better ideas - naming things was never my strong suit - so
> happy to use PRODUCER / CONSUMER.

How do you deal with memory-to-memory devices that are both consumers
and producers ?

> >>> +
> >>>   /**
> >>>    * struct v4l2_device - main struct to for V4L2 device drivers
> >>>    *
> >>> @@ -30,6 +33,9 @@ struct v4l2_ctrl_handler;
> >>>    * @ref: Keep track of the references to this struct.
> >>>    * @release: Release function that is called when the ref count
> >>>    *	goes to 0.
> >>> + * @flags: device flags. Can be:
> >>> + *   %V4L2_DEVICE_FL_IS_OUTPUT - Set this flag if this V4L2 device is an
> >>> + *   "output" rather than an "input"
> >>>    *
> >>>    * Each instance of a V4L2 device should create the v4l2_device struct,
> >>>    * either stand-alone or embedded in a larger struct.
> >>> @@ -54,6 +60,7 @@ struct v4l2_device {
> >>>   	struct v4l2_prio_state prio;
> >>>   	struct kref ref;
> >>>   	void (*release)(struct v4l2_device *v4l2_dev);
> >>> +	u32 flags;
> >>>   };
> >>>   
> >>>   /**

-- 
Regards,

Laurent Pinchart



More information about the linux-arm-kernel mailing list