Linux Renesas SOC kernel development
 help / color / mirror / Atom feed
* [PATCH 0/5] media-device: Report if graph is complete
@ 2020-06-10 23:05 Niklas Söderlund
  2020-06-10 23:05 ` [PATCH 1/5] uapi/linux/media.h: add flags field to struct media_v2_topology Niklas Söderlund
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Niklas Söderlund @ 2020-06-10 23:05 UTC (permalink / raw)
  To: Hans Verkuil, Laurent Pinchart, linux-media
  Cc: linux-renesas-soc, Niklas Söderlund

Hi,

This series is an attempt to scratch an old itch, it's problematic to
support unbind and then a second call to complete in v4l2-async. When
the second complete call happens a lot of things can go wrong.

When v4l2-async complete callback is called multiple video devices are
registered with video_register_device(). Then if a v4l2-async unbind
happens they are unregistered with video_unregister_device().

Their are multiple problems with this, specially for R-Car VIN.

1. Depending on which subdevice is unbound parts of the video pipeline
   can still function. There are for example two CSI-2 receivers
   connected to two different CSI-2 buses in the pipeline. If one of the
   receivers are unbound the other can still function perfectly well.
   But with the current setup everything goes away, this is bad for
   operational safety.

2. The struct video_device contains a static struct device, which in
   turn contains a static struct kref. When the kref is release by
   calling video_unregister_device() and then later trying to
   re-register the video device video_register_device() the kref life
   time management kicks in and produces warnings in later kernels or
   OOPS in older ones.

It has been discussed in the past at various conferences that it could
be OK to not video_unregister_device() if a v4l2-async unbind happens.
The argument against it was that user-space needed a way to check if a
pipeline was completely probed or not. And this used to be that the
video devices where only present if everything was available.

It was agreed in principle that if an alternate way for media controller
centric devices could be found to inform user-space of this fact could
be found it would be OK to not unregister video devices in case of an
unbind or even allow registering the video devices at probe time instead
of at v4l2-async complete time.

This series aims to provide such a mechanism using the media device
itself to report if the media graph is complete or not.

Niklas Söderlund (5):
  uapi/linux/media.h: add flags field to struct media_v2_topology
  media-device: Add a complete flag to struct media_device
  v4l2-async: Flag when media graph is complete
  mc-device.c: Report graph complete to user-space
  rcar-vin: Do not unregister video device when a subdevice is unbound

 drivers/media/mc/mc-device.c                | 2 +-
 drivers/media/platform/rcar-vin/rcar-core.c | 5 -----
 drivers/media/v4l2-core/v4l2-async.c        | 5 +++++
 include/media/media-device.h                | 2 ++
 include/uapi/linux/media.h                  | 4 +++-
 5 files changed, 11 insertions(+), 7 deletions(-)

-- 
2.27.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-06-12 10:45 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-10 23:05 [PATCH 0/5] media-device: Report if graph is complete Niklas Söderlund
2020-06-10 23:05 ` [PATCH 1/5] uapi/linux/media.h: add flags field to struct media_v2_topology Niklas Söderlund
2020-06-11  3:12   ` Laurent Pinchart
2020-06-11 10:51     ` Sakari Ailus
2020-06-10 23:05 ` [PATCH 2/5] media-device: Add a complete flag to struct media_device Niklas Söderlund
2020-06-11  3:13   ` Laurent Pinchart
2020-06-10 23:05 ` [PATCH 3/5] v4l2-async: Flag when media graph is complete Niklas Söderlund
2020-06-11  3:10   ` Laurent Pinchart
2020-06-11 10:50   ` Sakari Ailus
2020-06-11 10:52     ` Sakari Ailus
2020-06-10 23:05 ` [PATCH 4/5] mc-device.c: Report graph complete to user-space Niklas Söderlund
2020-06-11  3:14   ` Laurent Pinchart
2020-06-10 23:05 ` [PATCH 5/5] rcar-vin: Do not unregister video device when a subdevice is unbound Niklas Söderlund
2020-06-11  8:56   ` Sergei Shtylyov
2020-06-12 10:45 ` [PATCH 0/5] media-device: Report if graph is complete Hans Verkuil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox