* [PATCH v2] Kconfig: disable Media Controller for DVB
@ 2015-06-12 11:31 Mauro Carvalho Chehab
2015-06-13 7:36 ` Laurent Pinchart
0 siblings, 1 reply; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2015-06-12 11:31 UTC (permalink / raw)
To: Linux Media Mailing List
Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, Hans Verkuil
Since when we start discussions about the usage Media Controller
for complex hardware, one thing become clear: the way it is, MC
fails to map anything more complex than a webcam.
The point is that MC has entities named as devnodes, but the only
devnode used (before the DVB patches) is MEDIA_ENT_T_DEVNODE_V4L.
Due to the way MC got implemented, however, this entity actually
doesn't represent the devnode, but the hardware I/O engine that
receives data via DMA.
By coincidence, such DMA is associated with the V4L device node
on webcam hardware, but this is not true even for other V4L2
devices. For example, on USB hardware, the DMA is done via the
USB controller. The data passes though a in-kernel filter that
strips off the URB headers. Other V4L2 devices like radio may not
even have DMA. When it have, the DMA is done via ALSA, and not
via the V4L devnode.
In other words, MC is broken as a whole, but tagging it as BROKEN
right now would do more harm than good.
So, instead, let's mark, for now, the DVB part as broken and
block all new changes to MC while we fix this mess, whith
we hopefully will do for the next Kernel version.
Requested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 3ef0f90b128f..157099243d61 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -97,6 +97,7 @@ config MEDIA_CONTROLLER
config MEDIA_CONTROLLER_DVB
bool "Enable Media controller for DVB"
depends on MEDIA_CONTROLLER
+ depends on BROKEN
---help---
Enable the media controller API support for DVB.
--
2.4.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] Kconfig: disable Media Controller for DVB
2015-06-12 11:31 [PATCH v2] Kconfig: disable Media Controller for DVB Mauro Carvalho Chehab
@ 2015-06-13 7:36 ` Laurent Pinchart
2015-06-15 1:47 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 3+ messages in thread
From: Laurent Pinchart @ 2015-06-13 7:36 UTC (permalink / raw)
To: Mauro Carvalho Chehab
Cc: Linux Media Mailing List, Mauro Carvalho Chehab, Hans Verkuil,
sakari.ailus
Hi Mauro,
(CC'ing Sakari)
Thank you for the patch.
On Friday 12 June 2015 08:31:26 Mauro Carvalho Chehab wrote:
> Since when we start discussions about the usage Media Controller
> for complex hardware, one thing become clear: the way it is, MC
> fails to map anything more complex than a webcam.
I strongly disagree with that. The MC API works fine (albeit with entity type
names that are incorrect) on complex embedded video capture devices that are
far from being just webcams. However, I agree that the API is broken outside
of the V4L realm.
> The point is that MC has entities named as devnodes, but the only
> devnode used (before the DVB patches) is MEDIA_ENT_T_DEVNODE_V4L.
> Due to the way MC got implemented, however, this entity actually
> doesn't represent the devnode, but the hardware I/O engine that
> receives data via DMA.
>
> By coincidence, such DMA is associated with the V4L device node
> on webcam hardware, but this is not true even for other V4L2
> devices. For example, on USB hardware, the DMA is done via the
> USB controller. The data passes though a in-kernel filter that
> strips off the URB headers. Other V4L2 devices like radio may not
> even have DMA. When it have, the DMA is done via ALSA, and not
> via the V4L devnode.
>
> In other words, MC is broken as a whole, but tagging it as BROKEN
> right now would do more harm than good.
>
> So, instead, let's mark, for now, the DVB part as broken and
> block all new changes to MC while we fix this mess, whith
> we hopefully will do for the next Kernel version.
>
> Requested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
I'm fine with the change, but I'd rework the commit message a bit.
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
> index 3ef0f90b128f..157099243d61 100644
> --- a/drivers/media/Kconfig
> +++ b/drivers/media/Kconfig
> @@ -97,6 +97,7 @@ config MEDIA_CONTROLLER
> config MEDIA_CONTROLLER_DVB
> bool "Enable Media controller for DVB"
> depends on MEDIA_CONTROLLER
> + depends on BROKEN
> ---help---
> Enable the media controller API support for DVB.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] Kconfig: disable Media Controller for DVB
2015-06-13 7:36 ` Laurent Pinchart
@ 2015-06-15 1:47 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2015-06-15 1:47 UTC (permalink / raw)
To: Laurent Pinchart
Cc: Linux Media Mailing List, Mauro Carvalho Chehab, Hans Verkuil,
sakari.ailus
Laurent,
Em Sat, 13 Jun 2015 10:36:44 +0300
Laurent Pinchart <laurent.pinchart@ideasonboard.com> escreveu:
> Hi Mauro,
>
> (CC'ing Sakari)
>
> Thank you for the patch.
>
> On Friday 12 June 2015 08:31:26 Mauro Carvalho Chehab wrote:
> > Since when we start discussions about the usage Media Controller
> > for complex hardware, one thing become clear: the way it is, MC
> > fails to map anything more complex than a webcam.
>
> I strongly disagree with that. The MC API works fine (albeit with entity type
> names that are incorrect) on complex embedded video capture devices that are
> far from being just webcams. However, I agree that the API is broken outside
> of the V4L realm.
By assuming that all V4L devices have DMA engines, it means that MC
is broken *inside* V4L realm too.
The very first V4L devices didn't have DMA at all. Radio devices
(with is V4L realm since the beginning too) don't have DMA, or when they
have, this don't appear at the data flow at the V4L side.
Also, calling a V4L data I/O engine as DEVNODE is broken by design.
The devnode is something else that may or may not have data I/O.
Ok, by coincidence, the V4L devices currently mapped via MC have
the data I/O engine accessible via a devnode, but this was never be
a requirement of the V4L2 API.
It is also broken for ALSA, and it is partially broken for DVB.
The only scenario where MC works properly, ATM, is just the video
path of capture/output/m2m devices.
So, no, it doesn't work for complex embedded media devices, where
audio, tuners, radio, no-dma video, etc may be present.
So, i'll rewrite (tomorrow morning) the above paragraph to:
Since when we start discussions about the usage Media Controller
for complex hardware, one thing become clear: the way it is, MC
fails to map anything different than capture/output/m2m
video-only streaming.
in order to better express that.
>
> > The point is that MC has entities named as devnodes, but the only
> > devnode used (before the DVB patches) is MEDIA_ENT_T_DEVNODE_V4L.
> > Due to the way MC got implemented, however, this entity actually
> > doesn't represent the devnode, but the hardware I/O engine that
> > receives data via DMA.
> >
> > By coincidence, such DMA is associated with the V4L device node
> > on webcam hardware, but this is not true even for other V4L2
> > devices. For example, on USB hardware, the DMA is done via the
> > USB controller. The data passes though a in-kernel filter that
> > strips off the URB headers. Other V4L2 devices like radio may not
> > even have DMA. When it have, the DMA is done via ALSA, and not
> > via the V4L devnode.
> >
> > In other words, MC is broken as a whole, but tagging it as BROKEN
> > right now would do more harm than good.
> >
> > So, instead, let's mark, for now, the DVB part as broken and
> > block all new changes to MC while we fix this mess, whith
> > we hopefully will do for the next Kernel version.
> >
> > Requested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
> > Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
>
> I'm fine with the change, but I'd rework the commit message a bit.
>
> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
> > index 3ef0f90b128f..157099243d61 100644
> > --- a/drivers/media/Kconfig
> > +++ b/drivers/media/Kconfig
> > @@ -97,6 +97,7 @@ config MEDIA_CONTROLLER
> > config MEDIA_CONTROLLER_DVB
> > bool "Enable Media controller for DVB"
> > depends on MEDIA_CONTROLLER
> > + depends on BROKEN
> > ---help---
> > Enable the media controller API support for DVB.
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-06-15 1:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-12 11:31 [PATCH v2] Kconfig: disable Media Controller for DVB Mauro Carvalho Chehab
2015-06-13 7:36 ` Laurent Pinchart
2015-06-15 1:47 ` Mauro Carvalho Chehab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox