From: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
To: Mauro Carvalho Chehab <mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
Cc: Sakari Ailus
<sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Linux Media Mailing List
<linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Mauro Carvalho Chehab
<mchehab-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCHv3 01/20] media: add new types for DVB devnodes
Date: Sun, 11 Jan 2015 15:54:14 +0200 [thread overview]
Message-ID: <5047178.zZItJZYJNH@avalon> (raw)
In-Reply-To: <20150108154450.654d04d6-iErKd7e5oVp+urZeOPWqwQ@public.gmane.org>
Hi Mauro,
On Thursday 08 January 2015 15:44:50 Mauro Carvalho Chehab wrote:
> Em Thu, 08 Jan 2015 18:10:13 +0200 Laurent Pinchart escreveu:
> > On Wednesday 07 January 2015 12:22:39 Mauro Carvalho Chehab wrote:
> >> Em Wed, 07 Jan 2015 16:09:04 +0200 Sakari Ailus escreveu:
> >>> Mauro Carvalho Chehab wrote:
> >>>> Most of the DVB subdevs have already their own devnode.
> >>>>
> >>>> Add support for them at the media controller API.
> >>>>
> >>>> Signed-off-by: Mauro Carvalho Chehab <mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
> >>>>
> >>>> diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
> >>>> index 7902e800f019..707db275f92b 100644
> >>>> --- a/include/uapi/linux/media.h
> >>>> +++ b/include/uapi/linux/media.h
> >>>> @@ -50,7 +50,14 @@ struct media_device_info {
> >>>>
> >>>> #define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1)
> >>>> #define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
> >>>> #define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
> >>>>
> >>>> -#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_FE (MEDIA_ENT_T_DEVNODE + 4)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_DEMUX (MEDIA_ENT_T_DEVNODE + 5)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_DVR (MEDIA_ENT_T_DEVNODE + 6)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_CA (MEDIA_ENT_T_DEVNODE + 7)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_NET (MEDIA_ENT_T_DEVNODE + 8)
> >>>
> >>> I'd create another type for the DVB sub-type devices, as there is for
> >>> V4L2 sub-devices. I wonder what Laurent thinks.
> >>
> >> I discussed this quickly with Laurent on IRC.
> >>
> >> There are some concept differences between V4L2 and DVB.
> >>
> >> At v4l2:
> >> - the spec is one monolitic header (videodev2.h);
> >> - one devnode is used to control everyhing (/dev/video?)
> >> - there is one v4l core for all types of devices
> >>
> >> At DVB:
> >> - each different DVB API has its own header;
> >> - each DVB device type has its own core (ok, they're
> >> linked into one module, but internally they're almost independent);
> >> - each different DVB API has its own devnode.
> >>
> >> So, using "SUBDEV" for DVB (or at least for the devnodes) don't
> >> make much sense.
> >>
> >> Ok, there are still some things at DVB side that could be mapped as
> >> subdev. The clear example is the tuner. However, in this case, the
> >> same tuner can be either V4L, DVB or both. So, we need to define just
> >> one subdev type for the tuner.
> >>
> >> Also, each DVB device can be identified via major/minor pairs.
> >>
> >> I wrote already (and submitted upstream) the patches for media-ctl to
> >>
> >> recognize them. They're also on my experimental v4l-utils tree:
> >> http://git.linuxtv.org/cgit.cgi/mchehab/experimental-v4l-> >> utils.git/log/?h=dvb-media-ctl>
> >
> > As I've mentioned in a previous discussion, the media_entity type field is
> > too restrictive. Not only does this use case show that we need a type,
> > sub-type and sub-sub-type, there are also entities that implement several
> > distinct types. I thus believe we need a new ioctl is needed to expose
> > detailed information about entities. This topic has been discussed
> > numerous times in the past, it "just" requires someone to implement it.
> >
> > I'm not opposed to a short-term solution like the one proposed here, but
> > maybe we should instead decide it's time to implement the new ioctl
> > instead.
>
> Ok, so let's stick with it for DVB. At DVB side, I don't see a need for
> sub-sub-type, especially since DVB has no subdevs (except for the shared
> tuner between DVB and V4L). Everything there are devnodes, with their
> functionality strictly following the documentation, as the API is fully
> handled inside the DVB core[1].
At the moment the MC API has a devnode type with a DVB devnode subtype.
Splitting DVB devnodes into different categories effectively create sub-
subtypes. That's what bothers mode, the type field is becoming a ragbag.
> Also, I don't want to mix adding DVB media controller support with the
> addition of a new ioctl.
*If* we conclude that a new ioctl is needed to support DVB in a clean way, I
don't see why that new ioctl shouldn't be considered as a prerequisite.
> [1] For the non-deprecated DVB devnodes. DVB have 3 devnode types that
> are deprecated because they implement functionality found elsewhere
> (video, audio and OSD dvb APIs). Only one legacy driver implements it,
> and there's no plan to ever add media controller or expand/accept
> new drivers using those legacy APIs.
--
Regards,
Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>,
Linux Media Mailing List <linux-media@vger.kernel.org>,
Mauro Carvalho Chehab <mchehab@infradead.org>,
linux-api@vger.kernel.org
Subject: Re: [PATCHv3 01/20] media: add new types for DVB devnodes
Date: Sun, 11 Jan 2015 15:54:14 +0200 [thread overview]
Message-ID: <5047178.zZItJZYJNH@avalon> (raw)
In-Reply-To: <20150108154450.654d04d6@concha.lan>
Hi Mauro,
On Thursday 08 January 2015 15:44:50 Mauro Carvalho Chehab wrote:
> Em Thu, 08 Jan 2015 18:10:13 +0200 Laurent Pinchart escreveu:
> > On Wednesday 07 January 2015 12:22:39 Mauro Carvalho Chehab wrote:
> >> Em Wed, 07 Jan 2015 16:09:04 +0200 Sakari Ailus escreveu:
> >>> Mauro Carvalho Chehab wrote:
> >>>> Most of the DVB subdevs have already their own devnode.
> >>>>
> >>>> Add support for them at the media controller API.
> >>>>
> >>>> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
> >>>>
> >>>> diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
> >>>> index 7902e800f019..707db275f92b 100644
> >>>> --- a/include/uapi/linux/media.h
> >>>> +++ b/include/uapi/linux/media.h
> >>>> @@ -50,7 +50,14 @@ struct media_device_info {
> >>>>
> >>>> #define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1)
> >>>> #define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
> >>>> #define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
> >>>>
> >>>> -#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_FE (MEDIA_ENT_T_DEVNODE + 4)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_DEMUX (MEDIA_ENT_T_DEVNODE + 5)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_DVR (MEDIA_ENT_T_DEVNODE + 6)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_CA (MEDIA_ENT_T_DEVNODE + 7)
> >>>> +#define MEDIA_ENT_T_DEVNODE_DVB_NET (MEDIA_ENT_T_DEVNODE + 8)
> >>>
> >>> I'd create another type for the DVB sub-type devices, as there is for
> >>> V4L2 sub-devices. I wonder what Laurent thinks.
> >>
> >> I discussed this quickly with Laurent on IRC.
> >>
> >> There are some concept differences between V4L2 and DVB.
> >>
> >> At v4l2:
> >> - the spec is one monolitic header (videodev2.h);
> >> - one devnode is used to control everyhing (/dev/video?)
> >> - there is one v4l core for all types of devices
> >>
> >> At DVB:
> >> - each different DVB API has its own header;
> >> - each DVB device type has its own core (ok, they're
> >> linked into one module, but internally they're almost independent);
> >> - each different DVB API has its own devnode.
> >>
> >> So, using "SUBDEV" for DVB (or at least for the devnodes) don't
> >> make much sense.
> >>
> >> Ok, there are still some things at DVB side that could be mapped as
> >> subdev. The clear example is the tuner. However, in this case, the
> >> same tuner can be either V4L, DVB or both. So, we need to define just
> >> one subdev type for the tuner.
> >>
> >> Also, each DVB device can be identified via major/minor pairs.
> >>
> >> I wrote already (and submitted upstream) the patches for media-ctl to
> >>
> >> recognize them. They're also on my experimental v4l-utils tree:
> >> http://git.linuxtv.org/cgit.cgi/mchehab/experimental-v4l-> >> utils.git/log/?h=dvb-media-ctl>
> >
> > As I've mentioned in a previous discussion, the media_entity type field is
> > too restrictive. Not only does this use case show that we need a type,
> > sub-type and sub-sub-type, there are also entities that implement several
> > distinct types. I thus believe we need a new ioctl is needed to expose
> > detailed information about entities. This topic has been discussed
> > numerous times in the past, it "just" requires someone to implement it.
> >
> > I'm not opposed to a short-term solution like the one proposed here, but
> > maybe we should instead decide it's time to implement the new ioctl
> > instead.
>
> Ok, so let's stick with it for DVB. At DVB side, I don't see a need for
> sub-sub-type, especially since DVB has no subdevs (except for the shared
> tuner between DVB and V4L). Everything there are devnodes, with their
> functionality strictly following the documentation, as the API is fully
> handled inside the DVB core[1].
At the moment the MC API has a devnode type with a DVB devnode subtype.
Splitting DVB devnodes into different categories effectively create sub-
subtypes. That's what bothers mode, the type field is becoming a ragbag.
> Also, I don't want to mix adding DVB media controller support with the
> addition of a new ioctl.
*If* we conclude that a new ioctl is needed to support DVB in a clean way, I
don't see why that new ioctl shouldn't be considered as a prerequisite.
> [1] For the non-deprecated DVB devnodes. DVB have 3 devnode types that
> are deprecated because they implement functionality found elsewhere
> (video, audio and OSD dvb APIs). Only one legacy driver implements it,
> and there's no plan to ever add media controller or expand/accept
> new drivers using those legacy APIs.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2015-01-11 13:54 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-06 21:08 [PATCHv3 00/20] dvb core: add basic support for the media controller Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 01/20] media: add new types for DVB devnodes Mauro Carvalho Chehab
[not found] ` <7f1ea82b1055aa490726f3af2ad22bca25e49a28.1420578087.git.mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-01-07 14:09 ` Sakari Ailus
2015-01-07 14:09 ` Sakari Ailus
[not found] ` <54AD3E00.5070208-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-07 14:22 ` Mauro Carvalho Chehab
2015-01-07 14:22 ` Mauro Carvalho Chehab
[not found] ` <20150107122239.232d1f56-iErKd7e5oVp+urZeOPWqwQ@public.gmane.org>
2015-01-08 16:10 ` Laurent Pinchart
2015-01-08 16:10 ` Laurent Pinchart
2015-01-08 17:44 ` Mauro Carvalho Chehab
2015-01-08 17:44 ` Mauro Carvalho Chehab
[not found] ` <20150108154450.654d04d6-iErKd7e5oVp+urZeOPWqwQ@public.gmane.org>
2015-01-11 13:54 ` Laurent Pinchart [this message]
2015-01-11 13:54 ` Laurent Pinchart
2015-01-11 14:09 ` Mauro Carvalho Chehab
2015-01-11 14:09 ` Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 02/20] dvbdev: add support for media controller Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 03/20] cx231xx: add media controller support Mauro Carvalho Chehab
2015-01-08 1:44 ` Shuah Khan
2015-01-08 3:15 ` Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 04/20] dvb_frontend: add media controller support for DVB frontend Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 05/20] dmxdev: add support for demux/dvr nodes at media controller Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 06/20] dvb_ca_en50221: add support for CA node at the " Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 07/20] dvb_net: add support for DVB net " Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 08/20] dvbdev: add pad for the DVB devnodes Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 09/20] tuner-core: properly initialize media controller subdev Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 10/20] cx25840: fill the media controller entity Mauro Carvalho Chehab
2015-01-07 11:44 ` Prabhakar Lad
2015-01-07 12:14 ` Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 11/20] cx231xx: initialize video/vbi pads Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 12/20] cx231xx: create media links for analog mode Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 13/20] dvbdev: represent frontend with two pads Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 14/20] dvbdev: add a function to create DVB media graph Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 15/20] cx231xx: create DVB graph Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 16/20] dvbdev: enable DVB-specific links Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 17/20] dvb-frontend: enable tuner link when the FE thread starts Mauro Carvalho Chehab
2015-01-08 21:11 ` Shuah Khan
2015-01-06 21:08 ` [PATCHv3 18/20] cx231xx: enable tuner->decoder link at videobuf start Mauro Carvalho Chehab
2015-01-08 21:15 ` Shuah Khan
2015-01-06 21:08 ` [PATCHv3 19/20] cx231xx: create a streaming pipeline at VB start Mauro Carvalho Chehab
2015-01-06 21:08 ` [PATCHv3 20/20] dvb_frontend: start media pipeline while thread is running Mauro Carvalho Chehab
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=5047178.zZItJZYJNH@avalon \
--to=laurent.pinchart-rylnwiuwjnjg/c1bvhzhaw@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org \
--cc=mchehab-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
/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.