diff mbox

[12/15] media: dmx.h: get rid of DMX_SET_SOURCE

Message ID cf4b97ba0e68bf92cf899d04a3862cad1b3a7874.1504222628.git.mchehab@s-opensource.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mauro Carvalho Chehab Aug. 31, 2017, 11:46 p.m. UTC
No driver uses this ioctl, nor it is documented anywhere.

So, get rid of it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 Documentation/media/dmx.h.rst.exceptions        | 13 --------
 Documentation/media/uapi/dvb/dmx-set-source.rst | 44 -------------------------
 Documentation/media/uapi/dvb/dmx_fcalls.rst     |  1 -
 Documentation/media/uapi/dvb/dmx_types.rst      | 20 -----------
 include/uapi/linux/dvb/dmx.h                    | 12 -------
 5 files changed, 90 deletions(-)
 delete mode 100644 Documentation/media/uapi/dvb/dmx-set-source.rst

Comments

HoP Sept. 1, 2017, 6:28 a.m. UTC | #1
2017-09-01 1:46 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> No driver uses this ioctl, nor it is documented anywhere.
>
> So, get rid of it.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> ---
>  Documentation/media/dmx.h.rst.exceptions        | 13 --------
>  Documentation/media/uapi/dvb/dmx-set-source.rst | 44 -------------------------
>  Documentation/media/uapi/dvb/dmx_fcalls.rst     |  1 -
>  Documentation/media/uapi/dvb/dmx_types.rst      | 20 -----------
>  include/uapi/linux/dvb/dmx.h                    | 12 -------
>  5 files changed, 90 deletions(-)
>  delete mode 100644 Documentation/media/uapi/dvb/dmx-set-source.rst
>
> diff --git a/Documentation/media/dmx.h.rst.exceptions b/Documentation/media/dmx.h.rst.exceptions
> index 5572d2dc9d0e..d2dac35bb84b 100644
> --- a/Documentation/media/dmx.h.rst.exceptions
> +++ b/Documentation/media/dmx.h.rst.exceptions
> @@ -40,18 +40,6 @@ replace enum dmx_input :c:type:`dmx_input`
>  replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
>  replace symbol DMX_IN_DVR :c:type:`dmx_input`
>
> -# dmx_source_t symbols
> -replace enum dmx_source :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
> -replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
> -
> -
>  # Flags for struct dmx_sct_filter_params
>  replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
>  replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
> @@ -61,4 +49,3 @@ replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
>  replace typedef dmx_filter_t :c:type:`dmx_filter`
>  replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
>  replace typedef dmx_input_t :c:type:`dmx_input`
> -replace typedef dmx_source_t :c:type:`dmx_source`
> diff --git a/Documentation/media/uapi/dvb/dmx-set-source.rst b/Documentation/media/uapi/dvb/dmx-set-source.rst
> deleted file mode 100644
> index ac7f77b25e06..000000000000
> --- a/Documentation/media/uapi/dvb/dmx-set-source.rst
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -.. -*- coding: utf-8; mode: rst -*-
> -
> -.. _DMX_SET_SOURCE:
> -
> -==============
> -DMX_SET_SOURCE
> -==============
> -
> -Name
> -----
> -
> -DMX_SET_SOURCE
> -
> -
> -Synopsis
> ---------
> -
> -.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
> -    :name: DMX_SET_SOURCE
> -
> -
> -Arguments
> ----------
> -
> -
> -``fd``
> -    File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
> -
> -``src``
> -   Undocumented.
> -
> -
> -Description
> ------------
> -
> -.. note:: This ioctl is undocumented. Documentation is welcome.
> -
> -
> -Return Value
> -------------
> -
> -On success 0 is returned, on error -1 and the ``errno`` variable is set
> -appropriately. The generic error codes are described at the
> -:ref:`Generic Error Codes <gen-errors>` chapter.
> diff --git a/Documentation/media/uapi/dvb/dmx_fcalls.rst b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> index 49e013d4540f..be98d60877f2 100644
> --- a/Documentation/media/uapi/dvb/dmx_fcalls.rst
> +++ b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> @@ -21,6 +21,5 @@ Demux Function Calls
>      dmx-get-event
>      dmx-get-stc
>      dmx-get-pes-pids
> -    dmx-set-source
>      dmx-add-pid
>      dmx-remove-pid
> diff --git a/Documentation/media/uapi/dvb/dmx_types.rst b/Documentation/media/uapi/dvb/dmx_types.rst
> index 9e907b85cf16..a205c02ccdc1 100644
> --- a/Documentation/media/uapi/dvb/dmx_types.rst
> +++ b/Documentation/media/uapi/dvb/dmx_types.rst
> @@ -197,23 +197,3 @@ struct dmx_stc
>         unsigned int base;  /* output: divisor for stc to get 90 kHz clock */
>         __u64 stc;      /* output: stc in 'base'*90 kHz units */
>      };
> -
> -
> -
> -enum dmx_source
> -===============
> -
> -.. c:type:: dmx_source
> -
> -.. code-block:: c
> -
> -    typedef enum dmx_source {
> -       DMX_SOURCE_FRONT0 = 0,
> -       DMX_SOURCE_FRONT1,
> -       DMX_SOURCE_FRONT2,
> -       DMX_SOURCE_FRONT3,
> -       DMX_SOURCE_DVR0   = 16,
> -       DMX_SOURCE_DVR1,
> -       DMX_SOURCE_DVR2,
> -       DMX_SOURCE_DVR3
> -    } dmx_source_t;
> diff --git a/include/uapi/linux/dvb/dmx.h b/include/uapi/linux/dvb/dmx.h
> index c0ee44fbdb13..dd2b832c02ce 100644
> --- a/include/uapi/linux/dvb/dmx.h
> +++ b/include/uapi/linux/dvb/dmx.h
> @@ -117,17 +117,6 @@ struct dmx_pes_filter_params
>         __u32          flags;
>  };
>
> -typedef enum dmx_source {
> -       DMX_SOURCE_FRONT0 = 0,
> -       DMX_SOURCE_FRONT1,
> -       DMX_SOURCE_FRONT2,
> -       DMX_SOURCE_FRONT3,
> -       DMX_SOURCE_DVR0   = 16,
> -       DMX_SOURCE_DVR1,
> -       DMX_SOURCE_DVR2,
> -       DMX_SOURCE_DVR3
> -} dmx_source_t;
> -
>  struct dmx_stc {
>         unsigned int num;       /* input : which STC? 0..N */
>         unsigned int base;      /* output: divisor for stc to get 90 kHz clock */
> @@ -140,7 +129,6 @@ struct dmx_stc {
>  #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
>  #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
>  #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
> -#define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
>  #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
>  #define DMX_ADD_PID              _IOW('o', 51, __u16)
>  #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
> --
> 2.13.5
>

Hi Mauro.

May be I missed something, but how it should be managed the demux
source without that?
Do we have some other way how to set the demux input?

Even in one-frontend configuration we should have to have option
to switch between DMX_SOURCE_FRONT0 & DMX_SOURCE_DVR0.

/Honza
Mauro Carvalho Chehab Sept. 1, 2017, 9:37 a.m. UTC | #2
Em Fri, 1 Sep 2017 08:28:20 +0200
Honza Petrouš <jpetrous@gmail.com> escreveu:

> 2017-09-01 1:46 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> > No driver uses this ioctl, nor it is documented anywhere.
> >
> > So, get rid of it.
> >
> > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> > ---
> >  Documentation/media/dmx.h.rst.exceptions        | 13 --------
> >  Documentation/media/uapi/dvb/dmx-set-source.rst | 44 -------------------------
> >  Documentation/media/uapi/dvb/dmx_fcalls.rst     |  1 -
> >  Documentation/media/uapi/dvb/dmx_types.rst      | 20 -----------
> >  include/uapi/linux/dvb/dmx.h                    | 12 -------
> >  5 files changed, 90 deletions(-)
> >  delete mode 100644 Documentation/media/uapi/dvb/dmx-set-source.rst
> >
> > diff --git a/Documentation/media/dmx.h.rst.exceptions b/Documentation/media/dmx.h.rst.exceptions
> > index 5572d2dc9d0e..d2dac35bb84b 100644
> > --- a/Documentation/media/dmx.h.rst.exceptions
> > +++ b/Documentation/media/dmx.h.rst.exceptions
> > @@ -40,18 +40,6 @@ replace enum dmx_input :c:type:`dmx_input`
> >  replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
> >  replace symbol DMX_IN_DVR :c:type:`dmx_input`
> >
> > -# dmx_source_t symbols
> > -replace enum dmx_source :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
> > -replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
> > -
> > -
> >  # Flags for struct dmx_sct_filter_params
> >  replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
> >  replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
> > @@ -61,4 +49,3 @@ replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
> >  replace typedef dmx_filter_t :c:type:`dmx_filter`
> >  replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
> >  replace typedef dmx_input_t :c:type:`dmx_input`
> > -replace typedef dmx_source_t :c:type:`dmx_source`
> > diff --git a/Documentation/media/uapi/dvb/dmx-set-source.rst b/Documentation/media/uapi/dvb/dmx-set-source.rst
> > deleted file mode 100644
> > index ac7f77b25e06..000000000000
> > --- a/Documentation/media/uapi/dvb/dmx-set-source.rst
> > +++ /dev/null
> > @@ -1,44 +0,0 @@
> > -.. -*- coding: utf-8; mode: rst -*-
> > -
> > -.. _DMX_SET_SOURCE:
> > -
> > -==============
> > -DMX_SET_SOURCE
> > -==============
> > -
> > -Name
> > -----
> > -
> > -DMX_SET_SOURCE
> > -
> > -
> > -Synopsis
> > ---------
> > -
> > -.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
> > -    :name: DMX_SET_SOURCE
> > -
> > -
> > -Arguments
> > ----------
> > -
> > -
> > -``fd``
> > -    File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
> > -
> > -``src``
> > -   Undocumented.
> > -
> > -
> > -Description
> > ------------
> > -
> > -.. note:: This ioctl is undocumented. Documentation is welcome.
> > -
> > -
> > -Return Value
> > -------------
> > -
> > -On success 0 is returned, on error -1 and the ``errno`` variable is set
> > -appropriately. The generic error codes are described at the
> > -:ref:`Generic Error Codes <gen-errors>` chapter.
> > diff --git a/Documentation/media/uapi/dvb/dmx_fcalls.rst b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> > index 49e013d4540f..be98d60877f2 100644
> > --- a/Documentation/media/uapi/dvb/dmx_fcalls.rst
> > +++ b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> > @@ -21,6 +21,5 @@ Demux Function Calls
> >      dmx-get-event
> >      dmx-get-stc
> >      dmx-get-pes-pids
> > -    dmx-set-source
> >      dmx-add-pid
> >      dmx-remove-pid
> > diff --git a/Documentation/media/uapi/dvb/dmx_types.rst b/Documentation/media/uapi/dvb/dmx_types.rst
> > index 9e907b85cf16..a205c02ccdc1 100644
> > --- a/Documentation/media/uapi/dvb/dmx_types.rst
> > +++ b/Documentation/media/uapi/dvb/dmx_types.rst
> > @@ -197,23 +197,3 @@ struct dmx_stc
> >         unsigned int base;  /* output: divisor for stc to get 90 kHz clock */
> >         __u64 stc;      /* output: stc in 'base'*90 kHz units */
> >      };
> > -
> > -
> > -
> > -enum dmx_source
> > -===============
> > -
> > -.. c:type:: dmx_source
> > -
> > -.. code-block:: c
> > -
> > -    typedef enum dmx_source {
> > -       DMX_SOURCE_FRONT0 = 0,
> > -       DMX_SOURCE_FRONT1,
> > -       DMX_SOURCE_FRONT2,
> > -       DMX_SOURCE_FRONT3,
> > -       DMX_SOURCE_DVR0   = 16,
> > -       DMX_SOURCE_DVR1,
> > -       DMX_SOURCE_DVR2,
> > -       DMX_SOURCE_DVR3
> > -    } dmx_source_t;
> > diff --git a/include/uapi/linux/dvb/dmx.h b/include/uapi/linux/dvb/dmx.h
> > index c0ee44fbdb13..dd2b832c02ce 100644
> > --- a/include/uapi/linux/dvb/dmx.h
> > +++ b/include/uapi/linux/dvb/dmx.h
> > @@ -117,17 +117,6 @@ struct dmx_pes_filter_params
> >         __u32          flags;
> >  };
> >
> > -typedef enum dmx_source {
> > -       DMX_SOURCE_FRONT0 = 0,
> > -       DMX_SOURCE_FRONT1,
> > -       DMX_SOURCE_FRONT2,
> > -       DMX_SOURCE_FRONT3,
> > -       DMX_SOURCE_DVR0   = 16,
> > -       DMX_SOURCE_DVR1,
> > -       DMX_SOURCE_DVR2,
> > -       DMX_SOURCE_DVR3
> > -} dmx_source_t;
> > -
> >  struct dmx_stc {
> >         unsigned int num;       /* input : which STC? 0..N */
> >         unsigned int base;      /* output: divisor for stc to get 90 kHz clock */
> > @@ -140,7 +129,6 @@ struct dmx_stc {
> >  #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
> >  #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
> >  #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
> > -#define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
> >  #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
> >  #define DMX_ADD_PID              _IOW('o', 51, __u16)
> >  #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
> > --
> > 2.13.5
> >  
> 
> Hi Mauro.
> 
> May be I missed something, but how it should be managed the demux
> source without that?
> Do we have some other way how to set the demux input?

Yes: via the media controller.

> Even in one-frontend configuration we should have to have option
> to switch between DMX_SOURCE_FRONT0 & DMX_SOURCE_DVR0.

Actually, the sources are configured when a filter is set. I've
no idea what was the original purpose of this API, as there's no
documentation about it anywhere and no drivers use it kernelwide.

Thanks,
Mauro
HoP Sept. 1, 2017, 9:53 a.m. UTC | #3
2017-09-01 11:37 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> Em Fri, 1 Sep 2017 08:28:20 +0200
> Honza Petrouš <jpetrous@gmail.com> escreveu:
>
>> 2017-09-01 1:46 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
>> > No driver uses this ioctl, nor it is documented anywhere.
>> >
>> > So, get rid of it.
>> >
>> > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
>> > ---
>> >  Documentation/media/dmx.h.rst.exceptions        | 13 --------
>> >  Documentation/media/uapi/dvb/dmx-set-source.rst | 44 -------------------------
>> >  Documentation/media/uapi/dvb/dmx_fcalls.rst     |  1 -
>> >  Documentation/media/uapi/dvb/dmx_types.rst      | 20 -----------
>> >  include/uapi/linux/dvb/dmx.h                    | 12 -------
>> >  5 files changed, 90 deletions(-)
>> >  delete mode 100644 Documentation/media/uapi/dvb/dmx-set-source.rst
>> >
>> > diff --git a/Documentation/media/dmx.h.rst.exceptions b/Documentation/media/dmx.h.rst.exceptions
>> > index 5572d2dc9d0e..d2dac35bb84b 100644
>> > --- a/Documentation/media/dmx.h.rst.exceptions
>> > +++ b/Documentation/media/dmx.h.rst.exceptions
>> > @@ -40,18 +40,6 @@ replace enum dmx_input :c:type:`dmx_input`
>> >  replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
>> >  replace symbol DMX_IN_DVR :c:type:`dmx_input`
>> >
>> > -# dmx_source_t symbols
>> > -replace enum dmx_source :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
>> > -replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
>> > -
>> > -
>> >  # Flags for struct dmx_sct_filter_params
>> >  replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
>> >  replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
>> > @@ -61,4 +49,3 @@ replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
>> >  replace typedef dmx_filter_t :c:type:`dmx_filter`
>> >  replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
>> >  replace typedef dmx_input_t :c:type:`dmx_input`
>> > -replace typedef dmx_source_t :c:type:`dmx_source`
>> > diff --git a/Documentation/media/uapi/dvb/dmx-set-source.rst b/Documentation/media/uapi/dvb/dmx-set-source.rst
>> > deleted file mode 100644
>> > index ac7f77b25e06..000000000000
>> > --- a/Documentation/media/uapi/dvb/dmx-set-source.rst
>> > +++ /dev/null
>> > @@ -1,44 +0,0 @@
>> > -.. -*- coding: utf-8; mode: rst -*-
>> > -
>> > -.. _DMX_SET_SOURCE:
>> > -
>> > -==============
>> > -DMX_SET_SOURCE
>> > -==============
>> > -
>> > -Name
>> > -----
>> > -
>> > -DMX_SET_SOURCE
>> > -
>> > -
>> > -Synopsis
>> > ---------
>> > -
>> > -.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
>> > -    :name: DMX_SET_SOURCE
>> > -
>> > -
>> > -Arguments
>> > ----------
>> > -
>> > -
>> > -``fd``
>> > -    File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
>> > -
>> > -``src``
>> > -   Undocumented.
>> > -
>> > -
>> > -Description
>> > ------------
>> > -
>> > -.. note:: This ioctl is undocumented. Documentation is welcome.
>> > -
>> > -
>> > -Return Value
>> > -------------
>> > -
>> > -On success 0 is returned, on error -1 and the ``errno`` variable is set
>> > -appropriately. The generic error codes are described at the
>> > -:ref:`Generic Error Codes <gen-errors>` chapter.
>> > diff --git a/Documentation/media/uapi/dvb/dmx_fcalls.rst b/Documentation/media/uapi/dvb/dmx_fcalls.rst
>> > index 49e013d4540f..be98d60877f2 100644
>> > --- a/Documentation/media/uapi/dvb/dmx_fcalls.rst
>> > +++ b/Documentation/media/uapi/dvb/dmx_fcalls.rst
>> > @@ -21,6 +21,5 @@ Demux Function Calls
>> >      dmx-get-event
>> >      dmx-get-stc
>> >      dmx-get-pes-pids
>> > -    dmx-set-source
>> >      dmx-add-pid
>> >      dmx-remove-pid
>> > diff --git a/Documentation/media/uapi/dvb/dmx_types.rst b/Documentation/media/uapi/dvb/dmx_types.rst
>> > index 9e907b85cf16..a205c02ccdc1 100644
>> > --- a/Documentation/media/uapi/dvb/dmx_types.rst
>> > +++ b/Documentation/media/uapi/dvb/dmx_types.rst
>> > @@ -197,23 +197,3 @@ struct dmx_stc
>> >         unsigned int base;  /* output: divisor for stc to get 90 kHz clock */
>> >         __u64 stc;      /* output: stc in 'base'*90 kHz units */
>> >      };
>> > -
>> > -
>> > -
>> > -enum dmx_source
>> > -===============
>> > -
>> > -.. c:type:: dmx_source
>> > -
>> > -.. code-block:: c
>> > -
>> > -    typedef enum dmx_source {
>> > -       DMX_SOURCE_FRONT0 = 0,
>> > -       DMX_SOURCE_FRONT1,
>> > -       DMX_SOURCE_FRONT2,
>> > -       DMX_SOURCE_FRONT3,
>> > -       DMX_SOURCE_DVR0   = 16,
>> > -       DMX_SOURCE_DVR1,
>> > -       DMX_SOURCE_DVR2,
>> > -       DMX_SOURCE_DVR3
>> > -    } dmx_source_t;
>> > diff --git a/include/uapi/linux/dvb/dmx.h b/include/uapi/linux/dvb/dmx.h
>> > index c0ee44fbdb13..dd2b832c02ce 100644
>> > --- a/include/uapi/linux/dvb/dmx.h
>> > +++ b/include/uapi/linux/dvb/dmx.h
>> > @@ -117,17 +117,6 @@ struct dmx_pes_filter_params
>> >         __u32          flags;
>> >  };
>> >
>> > -typedef enum dmx_source {
>> > -       DMX_SOURCE_FRONT0 = 0,
>> > -       DMX_SOURCE_FRONT1,
>> > -       DMX_SOURCE_FRONT2,
>> > -       DMX_SOURCE_FRONT3,
>> > -       DMX_SOURCE_DVR0   = 16,
>> > -       DMX_SOURCE_DVR1,
>> > -       DMX_SOURCE_DVR2,
>> > -       DMX_SOURCE_DVR3
>> > -} dmx_source_t;
>> > -
>> >  struct dmx_stc {
>> >         unsigned int num;       /* input : which STC? 0..N */
>> >         unsigned int base;      /* output: divisor for stc to get 90 kHz clock */
>> > @@ -140,7 +129,6 @@ struct dmx_stc {
>> >  #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
>> >  #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
>> >  #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
>> > -#define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
>> >  #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
>> >  #define DMX_ADD_PID              _IOW('o', 51, __u16)
>> >  #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
>> > --
>> > 2.13.5
>> >
>>
>> Hi Mauro.
>>
>> May be I missed something, but how it should be managed the demux
>> source without that?
>> Do we have some other way how to set the demux input?
>
> Yes: via the media controller.
>
>> Even in one-frontend configuration we should have to have option
>> to switch between DMX_SOURCE_FRONT0 & DMX_SOURCE_DVR0.
>
> Actually, the sources are configured when a filter is set. I've

Do you mean in DMX_SET_FILTER?

I don't see any way how to do it inside struct:

struct dmx_sct_filter_params
{
        __u16          pid;
        dmx_filter_t   filter;
        __u32          timeout;
        __u32          flags;
#define DMX_CHECK_CRC       1
#define DMX_ONESHOT         2
#define DMX_IMMEDIATE_START 4
#define DMX_KERNEL_CLIENT   0x8000
};


And more - I don't see any reason why it should be done in filter set.
It looks for me like superfluous side-effect. The setting
of the demux source should not be connected with filter setup.

> no idea what was the original purpose of this API, as there's no
> documentation about it anywhere and no drivers use it kernelwide.

If I remember correctly, the original idea (or at least how I remember it) was
to switch source of TS data - from frontend or from dvr (injecting
from userspace).

/Honza
Mauro Carvalho Chehab Sept. 1, 2017, 10:45 a.m. UTC | #4
Em Fri, 1 Sep 2017 11:53:11 +0200
Honza Petrouš <jpetrous@gmail.com> escreveu:

> 2017-09-01 11:37 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> > Em Fri, 1 Sep 2017 08:28:20 +0200
> > Honza Petrouš <jpetrous@gmail.com> escreveu:
> >  
> >> 2017-09-01 1:46 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:  
> >> > No driver uses this ioctl, nor it is documented anywhere.
> >> >
> >> > So, get rid of it.
> >> >
> >> > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> >> > ---
> >> >  Documentation/media/dmx.h.rst.exceptions        | 13 --------
> >> >  Documentation/media/uapi/dvb/dmx-set-source.rst | 44 -------------------------
> >> >  Documentation/media/uapi/dvb/dmx_fcalls.rst     |  1 -
> >> >  Documentation/media/uapi/dvb/dmx_types.rst      | 20 -----------
> >> >  include/uapi/linux/dvb/dmx.h                    | 12 -------
> >> >  5 files changed, 90 deletions(-)
> >> >  delete mode 100644 Documentation/media/uapi/dvb/dmx-set-source.rst
> >> >
> >> > diff --git a/Documentation/media/dmx.h.rst.exceptions b/Documentation/media/dmx.h.rst.exceptions
> >> > index 5572d2dc9d0e..d2dac35bb84b 100644
> >> > --- a/Documentation/media/dmx.h.rst.exceptions
> >> > +++ b/Documentation/media/dmx.h.rst.exceptions
> >> > @@ -40,18 +40,6 @@ replace enum dmx_input :c:type:`dmx_input`
> >> >  replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
> >> >  replace symbol DMX_IN_DVR :c:type:`dmx_input`
> >> >
> >> > -# dmx_source_t symbols
> >> > -replace enum dmx_source :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
> >> > -replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
> >> > -
> >> > -
> >> >  # Flags for struct dmx_sct_filter_params
> >> >  replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
> >> >  replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
> >> > @@ -61,4 +49,3 @@ replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
> >> >  replace typedef dmx_filter_t :c:type:`dmx_filter`
> >> >  replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
> >> >  replace typedef dmx_input_t :c:type:`dmx_input`
> >> > -replace typedef dmx_source_t :c:type:`dmx_source`
> >> > diff --git a/Documentation/media/uapi/dvb/dmx-set-source.rst b/Documentation/media/uapi/dvb/dmx-set-source.rst
> >> > deleted file mode 100644
> >> > index ac7f77b25e06..000000000000
> >> > --- a/Documentation/media/uapi/dvb/dmx-set-source.rst
> >> > +++ /dev/null
> >> > @@ -1,44 +0,0 @@
> >> > -.. -*- coding: utf-8; mode: rst -*-
> >> > -
> >> > -.. _DMX_SET_SOURCE:
> >> > -
> >> > -==============
> >> > -DMX_SET_SOURCE
> >> > -==============
> >> > -
> >> > -Name
> >> > -----
> >> > -
> >> > -DMX_SET_SOURCE
> >> > -
> >> > -
> >> > -Synopsis
> >> > ---------
> >> > -
> >> > -.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
> >> > -    :name: DMX_SET_SOURCE
> >> > -
> >> > -
> >> > -Arguments
> >> > ----------
> >> > -
> >> > -
> >> > -``fd``
> >> > -    File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
> >> > -
> >> > -``src``
> >> > -   Undocumented.
> >> > -
> >> > -
> >> > -Description
> >> > ------------
> >> > -
> >> > -.. note:: This ioctl is undocumented. Documentation is welcome.
> >> > -
> >> > -
> >> > -Return Value
> >> > -------------
> >> > -
> >> > -On success 0 is returned, on error -1 and the ``errno`` variable is set
> >> > -appropriately. The generic error codes are described at the
> >> > -:ref:`Generic Error Codes <gen-errors>` chapter.
> >> > diff --git a/Documentation/media/uapi/dvb/dmx_fcalls.rst b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> >> > index 49e013d4540f..be98d60877f2 100644
> >> > --- a/Documentation/media/uapi/dvb/dmx_fcalls.rst
> >> > +++ b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> >> > @@ -21,6 +21,5 @@ Demux Function Calls
> >> >      dmx-get-event
> >> >      dmx-get-stc
> >> >      dmx-get-pes-pids
> >> > -    dmx-set-source
> >> >      dmx-add-pid
> >> >      dmx-remove-pid
> >> > diff --git a/Documentation/media/uapi/dvb/dmx_types.rst b/Documentation/media/uapi/dvb/dmx_types.rst
> >> > index 9e907b85cf16..a205c02ccdc1 100644
> >> > --- a/Documentation/media/uapi/dvb/dmx_types.rst
> >> > +++ b/Documentation/media/uapi/dvb/dmx_types.rst
> >> > @@ -197,23 +197,3 @@ struct dmx_stc
> >> >         unsigned int base;  /* output: divisor for stc to get 90 kHz clock */
> >> >         __u64 stc;      /* output: stc in 'base'*90 kHz units */
> >> >      };
> >> > -
> >> > -
> >> > -
> >> > -enum dmx_source
> >> > -===============
> >> > -
> >> > -.. c:type:: dmx_source
> >> > -
> >> > -.. code-block:: c
> >> > -
> >> > -    typedef enum dmx_source {
> >> > -       DMX_SOURCE_FRONT0 = 0,
> >> > -       DMX_SOURCE_FRONT1,
> >> > -       DMX_SOURCE_FRONT2,
> >> > -       DMX_SOURCE_FRONT3,
> >> > -       DMX_SOURCE_DVR0   = 16,
> >> > -       DMX_SOURCE_DVR1,
> >> > -       DMX_SOURCE_DVR2,
> >> > -       DMX_SOURCE_DVR3
> >> > -    } dmx_source_t;
> >> > diff --git a/include/uapi/linux/dvb/dmx.h b/include/uapi/linux/dvb/dmx.h
> >> > index c0ee44fbdb13..dd2b832c02ce 100644
> >> > --- a/include/uapi/linux/dvb/dmx.h
> >> > +++ b/include/uapi/linux/dvb/dmx.h
> >> > @@ -117,17 +117,6 @@ struct dmx_pes_filter_params
> >> >         __u32          flags;
> >> >  };
> >> >
> >> > -typedef enum dmx_source {
> >> > -       DMX_SOURCE_FRONT0 = 0,
> >> > -       DMX_SOURCE_FRONT1,
> >> > -       DMX_SOURCE_FRONT2,
> >> > -       DMX_SOURCE_FRONT3,
> >> > -       DMX_SOURCE_DVR0   = 16,
> >> > -       DMX_SOURCE_DVR1,
> >> > -       DMX_SOURCE_DVR2,
> >> > -       DMX_SOURCE_DVR3
> >> > -} dmx_source_t;
> >> > -
> >> >  struct dmx_stc {
> >> >         unsigned int num;       /* input : which STC? 0..N */
> >> >         unsigned int base;      /* output: divisor for stc to get 90 kHz clock */
> >> > @@ -140,7 +129,6 @@ struct dmx_stc {
> >> >  #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
> >> >  #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
> >> >  #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
> >> > -#define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
> >> >  #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
> >> >  #define DMX_ADD_PID              _IOW('o', 51, __u16)
> >> >  #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
> >> > --
> >> > 2.13.5
> >> >  
> >>
> >> Hi Mauro.
> >>
> >> May be I missed something, but how it should be managed the demux
> >> source without that?
> >> Do we have some other way how to set the demux input?  
> >
> > Yes: via the media controller.
> >  
> >> Even in one-frontend configuration we should have to have option
> >> to switch between DMX_SOURCE_FRONT0 & DMX_SOURCE_DVR0.  
> >
> > Actually, the sources are configured when a filter is set. I've  
> 
> Do you mean in DMX_SET_FILTER?
> 
> I don't see any way how to do it inside struct:
> 
> struct dmx_sct_filter_params
> {
>         __u16          pid;
>         dmx_filter_t   filter;
>         __u32          timeout;
>         __u32          flags;
> #define DMX_CHECK_CRC       1
> #define DMX_ONESHOT         2
> #define DMX_IMMEDIATE_START 4
> #define DMX_KERNEL_CLIENT   0x8000
> };


No, I'm actually talking about DMX_SET_PES_FILTER filter:

struct dmx_pes_filter_params
{
	__u16           pid;
	enum dmx_input  input;
	enum dmx_output output;
	enum dmx_ts_pes pes_type;
	__u32           flags;
};

it explicitly allows setting both input and output, per PES filter.

> And more - I don't see any reason why it should be done in filter set.
> It looks for me like superfluous side-effect. The setting
> of the demux source should not be connected with filter setup.
> 
> > no idea what was the original purpose of this API, as there's no
> > documentation about it anywhere and no drivers use it kernelwide.  
> 
> If I remember correctly, the original idea (or at least how I remember it) was
> to switch source of TS data - from frontend or from dvr (injecting
> from userspace).

Well, nobody implemented it (at least upstream).


Thanks,
Mauro
HoP Sept. 1, 2017, 11:14 a.m. UTC | #5
2017-09-01 12:45 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> Em Fri, 1 Sep 2017 11:53:11 +0200
> Honza Petrouš <jpetrous@gmail.com> escreveu:
>
>> 2017-09-01 11:37 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
>> > Em Fri, 1 Sep 2017 08:28:20 +0200
>> > Honza Petrouš <jpetrous@gmail.com> escreveu:
>> >
>> >> 2017-09-01 1:46 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
>> >> > No driver uses this ioctl, nor it is documented anywhere.
>> >> >
>> >> > So, get rid of it.
>> >> >
>> >> > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
>> >> > ---
>> >> >  Documentation/media/dmx.h.rst.exceptions        | 13 --------
>> >> >  Documentation/media/uapi/dvb/dmx-set-source.rst | 44 -------------------------
>> >> >  Documentation/media/uapi/dvb/dmx_fcalls.rst     |  1 -
>> >> >  Documentation/media/uapi/dvb/dmx_types.rst      | 20 -----------
>> >> >  include/uapi/linux/dvb/dmx.h                    | 12 -------
>> >> >  5 files changed, 90 deletions(-)
>> >> >  delete mode 100644 Documentation/media/uapi/dvb/dmx-set-source.rst
>> >> >
>> >> > diff --git a/Documentation/media/dmx.h.rst.exceptions b/Documentation/media/dmx.h.rst.exceptions
>> >> > index 5572d2dc9d0e..d2dac35bb84b 100644
>> >> > --- a/Documentation/media/dmx.h.rst.exceptions
>> >> > +++ b/Documentation/media/dmx.h.rst.exceptions
>> >> > @@ -40,18 +40,6 @@ replace enum dmx_input :c:type:`dmx_input`
>> >> >  replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
>> >> >  replace symbol DMX_IN_DVR :c:type:`dmx_input`
>> >> >
>> >> > -# dmx_source_t symbols
>> >> > -replace enum dmx_source :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
>> >> > -replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
>> >> > -
>> >> > -
>> >> >  # Flags for struct dmx_sct_filter_params
>> >> >  replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
>> >> >  replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
>> >> > @@ -61,4 +49,3 @@ replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
>> >> >  replace typedef dmx_filter_t :c:type:`dmx_filter`
>> >> >  replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
>> >> >  replace typedef dmx_input_t :c:type:`dmx_input`
>> >> > -replace typedef dmx_source_t :c:type:`dmx_source`
>> >> > diff --git a/Documentation/media/uapi/dvb/dmx-set-source.rst b/Documentation/media/uapi/dvb/dmx-set-source.rst
>> >> > deleted file mode 100644
>> >> > index ac7f77b25e06..000000000000
>> >> > --- a/Documentation/media/uapi/dvb/dmx-set-source.rst
>> >> > +++ /dev/null
>> >> > @@ -1,44 +0,0 @@
>> >> > -.. -*- coding: utf-8; mode: rst -*-
>> >> > -
>> >> > -.. _DMX_SET_SOURCE:
>> >> > -
>> >> > -==============
>> >> > -DMX_SET_SOURCE
>> >> > -==============
>> >> > -
>> >> > -Name
>> >> > -----
>> >> > -
>> >> > -DMX_SET_SOURCE
>> >> > -
>> >> > -
>> >> > -Synopsis
>> >> > ---------
>> >> > -
>> >> > -.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
>> >> > -    :name: DMX_SET_SOURCE
>> >> > -
>> >> > -
>> >> > -Arguments
>> >> > ----------
>> >> > -
>> >> > -
>> >> > -``fd``
>> >> > -    File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
>> >> > -
>> >> > -``src``
>> >> > -   Undocumented.
>> >> > -
>> >> > -
>> >> > -Description
>> >> > ------------
>> >> > -
>> >> > -.. note:: This ioctl is undocumented. Documentation is welcome.
>> >> > -
>> >> > -
>> >> > -Return Value
>> >> > -------------
>> >> > -
>> >> > -On success 0 is returned, on error -1 and the ``errno`` variable is set
>> >> > -appropriately. The generic error codes are described at the
>> >> > -:ref:`Generic Error Codes <gen-errors>` chapter.
>> >> > diff --git a/Documentation/media/uapi/dvb/dmx_fcalls.rst b/Documentation/media/uapi/dvb/dmx_fcalls.rst
>> >> > index 49e013d4540f..be98d60877f2 100644
>> >> > --- a/Documentation/media/uapi/dvb/dmx_fcalls.rst
>> >> > +++ b/Documentation/media/uapi/dvb/dmx_fcalls.rst
>> >> > @@ -21,6 +21,5 @@ Demux Function Calls
>> >> >      dmx-get-event
>> >> >      dmx-get-stc
>> >> >      dmx-get-pes-pids
>> >> > -    dmx-set-source
>> >> >      dmx-add-pid
>> >> >      dmx-remove-pid
>> >> > diff --git a/Documentation/media/uapi/dvb/dmx_types.rst b/Documentation/media/uapi/dvb/dmx_types.rst
>> >> > index 9e907b85cf16..a205c02ccdc1 100644
>> >> > --- a/Documentation/media/uapi/dvb/dmx_types.rst
>> >> > +++ b/Documentation/media/uapi/dvb/dmx_types.rst
>> >> > @@ -197,23 +197,3 @@ struct dmx_stc
>> >> >         unsigned int base;  /* output: divisor for stc to get 90 kHz clock */
>> >> >         __u64 stc;      /* output: stc in 'base'*90 kHz units */
>> >> >      };
>> >> > -
>> >> > -
>> >> > -
>> >> > -enum dmx_source
>> >> > -===============
>> >> > -
>> >> > -.. c:type:: dmx_source
>> >> > -
>> >> > -.. code-block:: c
>> >> > -
>> >> > -    typedef enum dmx_source {
>> >> > -       DMX_SOURCE_FRONT0 = 0,
>> >> > -       DMX_SOURCE_FRONT1,
>> >> > -       DMX_SOURCE_FRONT2,
>> >> > -       DMX_SOURCE_FRONT3,
>> >> > -       DMX_SOURCE_DVR0   = 16,
>> >> > -       DMX_SOURCE_DVR1,
>> >> > -       DMX_SOURCE_DVR2,
>> >> > -       DMX_SOURCE_DVR3
>> >> > -    } dmx_source_t;
>> >> > diff --git a/include/uapi/linux/dvb/dmx.h b/include/uapi/linux/dvb/dmx.h
>> >> > index c0ee44fbdb13..dd2b832c02ce 100644
>> >> > --- a/include/uapi/linux/dvb/dmx.h
>> >> > +++ b/include/uapi/linux/dvb/dmx.h
>> >> > @@ -117,17 +117,6 @@ struct dmx_pes_filter_params
>> >> >         __u32          flags;
>> >> >  };
>> >> >
>> >> > -typedef enum dmx_source {
>> >> > -       DMX_SOURCE_FRONT0 = 0,
>> >> > -       DMX_SOURCE_FRONT1,
>> >> > -       DMX_SOURCE_FRONT2,
>> >> > -       DMX_SOURCE_FRONT3,
>> >> > -       DMX_SOURCE_DVR0   = 16,
>> >> > -       DMX_SOURCE_DVR1,
>> >> > -       DMX_SOURCE_DVR2,
>> >> > -       DMX_SOURCE_DVR3
>> >> > -} dmx_source_t;
>> >> > -
>> >> >  struct dmx_stc {
>> >> >         unsigned int num;       /* input : which STC? 0..N */
>> >> >         unsigned int base;      /* output: divisor for stc to get 90 kHz clock */
>> >> > @@ -140,7 +129,6 @@ struct dmx_stc {
>> >> >  #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
>> >> >  #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
>> >> >  #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
>> >> > -#define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
>> >> >  #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
>> >> >  #define DMX_ADD_PID              _IOW('o', 51, __u16)
>> >> >  #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
>> >> > --
>> >> > 2.13.5
>> >> >
>> >>
>> >> Hi Mauro.
>> >>
>> >> May be I missed something, but how it should be managed the demux
>> >> source without that?
>> >> Do we have some other way how to set the demux input?
>> >
>> > Yes: via the media controller.
>> >
>> >> Even in one-frontend configuration we should have to have option
>> >> to switch between DMX_SOURCE_FRONT0 & DMX_SOURCE_DVR0.
>> >
>> > Actually, the sources are configured when a filter is set. I've
>>
>> Do you mean in DMX_SET_FILTER?
>>
>> I don't see any way how to do it inside struct:
>>
>> struct dmx_sct_filter_params
>> {
>>         __u16          pid;
>>         dmx_filter_t   filter;
>>         __u32          timeout;
>>         __u32          flags;
>> #define DMX_CHECK_CRC       1
>> #define DMX_ONESHOT         2
>> #define DMX_IMMEDIATE_START 4
>> #define DMX_KERNEL_CLIENT   0x8000
>> };
>
>
> No, I'm actually talking about DMX_SET_PES_FILTER filter:
>
> struct dmx_pes_filter_params
> {
>         __u16           pid;
>         enum dmx_input  input;
>         enum dmx_output output;
>         enum dmx_ts_pes pes_type;
>         __u32           flags;
> };
>
> it explicitly allows setting both input and output, per PES filter.

Sure, but ONLY for PES filtering. The sections are out of business.

Let me again note that doing demux source switch as side-effectr of
setting PES filter looks more then strange. More logical looks
the possibility to switch source independently (DMX_SET_SOURCE).

Of course, it is only my POV.

/Honza
Mauro Carvalho Chehab Sept. 1, 2017, 1:06 p.m. UTC | #6
Em Fri, 1 Sep 2017 13:14:04 +0200
Honza Petrouš <jpetrous@gmail.com> escreveu:

> 2017-09-01 12:45 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> > Em Fri, 1 Sep 2017 11:53:11 +0200
> > Honza Petrouš <jpetrous@gmail.com> escreveu:
> >  
> >> 2017-09-01 11:37 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:  
> >> > Em Fri, 1 Sep 2017 08:28:20 +0200
> >> > Honza Petrouš <jpetrous@gmail.com> escreveu:
> >> >  
> >> >> 2017-09-01 1:46 GMT+02:00 Mauro Carvalho Chehab <mchehab@s-opensource.com>:  
> >> >> > No driver uses this ioctl, nor it is documented anywhere.
> >> >> >
> >> >> > So, get rid of it.
> >> >> >
> >> >> > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> >> >> > ---
> >> >> >  Documentation/media/dmx.h.rst.exceptions        | 13 --------
> >> >> >  Documentation/media/uapi/dvb/dmx-set-source.rst | 44 -------------------------
> >> >> >  Documentation/media/uapi/dvb/dmx_fcalls.rst     |  1 -
> >> >> >  Documentation/media/uapi/dvb/dmx_types.rst      | 20 -----------
> >> >> >  include/uapi/linux/dvb/dmx.h                    | 12 -------
> >> >> >  5 files changed, 90 deletions(-)
> >> >> >  delete mode 100644 Documentation/media/uapi/dvb/dmx-set-source.rst
> >> >> >
> >> >> > diff --git a/Documentation/media/dmx.h.rst.exceptions b/Documentation/media/dmx.h.rst.exceptions
> >> >> > index 5572d2dc9d0e..d2dac35bb84b 100644
> >> >> > --- a/Documentation/media/dmx.h.rst.exceptions
> >> >> > +++ b/Documentation/media/dmx.h.rst.exceptions
> >> >> > @@ -40,18 +40,6 @@ replace enum dmx_input :c:type:`dmx_input`
> >> >> >  replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
> >> >> >  replace symbol DMX_IN_DVR :c:type:`dmx_input`
> >> >> >
> >> >> > -# dmx_source_t symbols
> >> >> > -replace enum dmx_source :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
> >> >> > -replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
> >> >> > -
> >> >> > -
> >> >> >  # Flags for struct dmx_sct_filter_params
> >> >> >  replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
> >> >> >  replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
> >> >> > @@ -61,4 +49,3 @@ replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
> >> >> >  replace typedef dmx_filter_t :c:type:`dmx_filter`
> >> >> >  replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
> >> >> >  replace typedef dmx_input_t :c:type:`dmx_input`
> >> >> > -replace typedef dmx_source_t :c:type:`dmx_source`
> >> >> > diff --git a/Documentation/media/uapi/dvb/dmx-set-source.rst b/Documentation/media/uapi/dvb/dmx-set-source.rst
> >> >> > deleted file mode 100644
> >> >> > index ac7f77b25e06..000000000000
> >> >> > --- a/Documentation/media/uapi/dvb/dmx-set-source.rst
> >> >> > +++ /dev/null
> >> >> > @@ -1,44 +0,0 @@
> >> >> > -.. -*- coding: utf-8; mode: rst -*-
> >> >> > -
> >> >> > -.. _DMX_SET_SOURCE:
> >> >> > -
> >> >> > -==============
> >> >> > -DMX_SET_SOURCE
> >> >> > -==============
> >> >> > -
> >> >> > -Name
> >> >> > -----
> >> >> > -
> >> >> > -DMX_SET_SOURCE
> >> >> > -
> >> >> > -
> >> >> > -Synopsis
> >> >> > ---------
> >> >> > -
> >> >> > -.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
> >> >> > -    :name: DMX_SET_SOURCE
> >> >> > -
> >> >> > -
> >> >> > -Arguments
> >> >> > ----------
> >> >> > -
> >> >> > -
> >> >> > -``fd``
> >> >> > -    File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
> >> >> > -
> >> >> > -``src``
> >> >> > -   Undocumented.
> >> >> > -
> >> >> > -
> >> >> > -Description
> >> >> > ------------
> >> >> > -
> >> >> > -.. note:: This ioctl is undocumented. Documentation is welcome.
> >> >> > -
> >> >> > -
> >> >> > -Return Value
> >> >> > -------------
> >> >> > -
> >> >> > -On success 0 is returned, on error -1 and the ``errno`` variable is set
> >> >> > -appropriately. The generic error codes are described at the
> >> >> > -:ref:`Generic Error Codes <gen-errors>` chapter.
> >> >> > diff --git a/Documentation/media/uapi/dvb/dmx_fcalls.rst b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> >> >> > index 49e013d4540f..be98d60877f2 100644
> >> >> > --- a/Documentation/media/uapi/dvb/dmx_fcalls.rst
> >> >> > +++ b/Documentation/media/uapi/dvb/dmx_fcalls.rst
> >> >> > @@ -21,6 +21,5 @@ Demux Function Calls
> >> >> >      dmx-get-event
> >> >> >      dmx-get-stc
> >> >> >      dmx-get-pes-pids
> >> >> > -    dmx-set-source
> >> >> >      dmx-add-pid
> >> >> >      dmx-remove-pid
> >> >> > diff --git a/Documentation/media/uapi/dvb/dmx_types.rst b/Documentation/media/uapi/dvb/dmx_types.rst
> >> >> > index 9e907b85cf16..a205c02ccdc1 100644
> >> >> > --- a/Documentation/media/uapi/dvb/dmx_types.rst
> >> >> > +++ b/Documentation/media/uapi/dvb/dmx_types.rst
> >> >> > @@ -197,23 +197,3 @@ struct dmx_stc
> >> >> >         unsigned int base;  /* output: divisor for stc to get 90 kHz clock */
> >> >> >         __u64 stc;      /* output: stc in 'base'*90 kHz units */
> >> >> >      };
> >> >> > -
> >> >> > -
> >> >> > -
> >> >> > -enum dmx_source
> >> >> > -===============
> >> >> > -
> >> >> > -.. c:type:: dmx_source
> >> >> > -
> >> >> > -.. code-block:: c
> >> >> > -
> >> >> > -    typedef enum dmx_source {
> >> >> > -       DMX_SOURCE_FRONT0 = 0,
> >> >> > -       DMX_SOURCE_FRONT1,
> >> >> > -       DMX_SOURCE_FRONT2,
> >> >> > -       DMX_SOURCE_FRONT3,
> >> >> > -       DMX_SOURCE_DVR0   = 16,
> >> >> > -       DMX_SOURCE_DVR1,
> >> >> > -       DMX_SOURCE_DVR2,
> >> >> > -       DMX_SOURCE_DVR3
> >> >> > -    } dmx_source_t;
> >> >> > diff --git a/include/uapi/linux/dvb/dmx.h b/include/uapi/linux/dvb/dmx.h
> >> >> > index c0ee44fbdb13..dd2b832c02ce 100644
> >> >> > --- a/include/uapi/linux/dvb/dmx.h
> >> >> > +++ b/include/uapi/linux/dvb/dmx.h
> >> >> > @@ -117,17 +117,6 @@ struct dmx_pes_filter_params
> >> >> >         __u32          flags;
> >> >> >  };
> >> >> >
> >> >> > -typedef enum dmx_source {
> >> >> > -       DMX_SOURCE_FRONT0 = 0,
> >> >> > -       DMX_SOURCE_FRONT1,
> >> >> > -       DMX_SOURCE_FRONT2,
> >> >> > -       DMX_SOURCE_FRONT3,
> >> >> > -       DMX_SOURCE_DVR0   = 16,
> >> >> > -       DMX_SOURCE_DVR1,
> >> >> > -       DMX_SOURCE_DVR2,
> >> >> > -       DMX_SOURCE_DVR3
> >> >> > -} dmx_source_t;
> >> >> > -
> >> >> >  struct dmx_stc {
> >> >> >         unsigned int num;       /* input : which STC? 0..N */
> >> >> >         unsigned int base;      /* output: divisor for stc to get 90 kHz clock */
> >> >> > @@ -140,7 +129,6 @@ struct dmx_stc {
> >> >> >  #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
> >> >> >  #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
> >> >> >  #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
> >> >> > -#define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
> >> >> >  #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
> >> >> >  #define DMX_ADD_PID              _IOW('o', 51, __u16)
> >> >> >  #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
> >> >> > --
> >> >> > 2.13.5
> >> >> >  
> >> >>
> >> >> Hi Mauro.
> >> >>
> >> >> May be I missed something, but how it should be managed the demux
> >> >> source without that?
> >> >> Do we have some other way how to set the demux input?  
> >> >
> >> > Yes: via the media controller.
> >> >  
> >> >> Even in one-frontend configuration we should have to have option
> >> >> to switch between DMX_SOURCE_FRONT0 & DMX_SOURCE_DVR0.  
> >> >
> >> > Actually, the sources are configured when a filter is set. I've  
> >>
> >> Do you mean in DMX_SET_FILTER?
> >>
> >> I don't see any way how to do it inside struct:
> >>
> >> struct dmx_sct_filter_params
> >> {
> >>         __u16          pid;
> >>         dmx_filter_t   filter;
> >>         __u32          timeout;
> >>         __u32          flags;
> >> #define DMX_CHECK_CRC       1
> >> #define DMX_ONESHOT         2
> >> #define DMX_IMMEDIATE_START 4
> >> #define DMX_KERNEL_CLIENT   0x8000
> >> };  
> >
> >
> > No, I'm actually talking about DMX_SET_PES_FILTER filter:
> >
> > struct dmx_pes_filter_params
> > {
> >         __u16           pid;
> >         enum dmx_input  input;
> >         enum dmx_output output;
> >         enum dmx_ts_pes pes_type;
> >         __u32           flags;
> > };
> >
> > it explicitly allows setting both input and output, per PES filter.  
> 
> Sure, but ONLY for PES filtering. The sections are out of business.
> 
> Let me again note that doing demux source switch as side-effectr of
> setting PES filter looks more then strange. More logical looks
> the possibility to switch source independently (DMX_SET_SOURCE).
> 
> Of course, it is only my POV.

Yeah, I agree, but it is too late to change it ;)

Both Kernelspace and userspace apps rely on such behavior.

Thanks,
Mauro
diff mbox

Patch

diff --git a/Documentation/media/dmx.h.rst.exceptions b/Documentation/media/dmx.h.rst.exceptions
index 5572d2dc9d0e..d2dac35bb84b 100644
--- a/Documentation/media/dmx.h.rst.exceptions
+++ b/Documentation/media/dmx.h.rst.exceptions
@@ -40,18 +40,6 @@  replace enum dmx_input :c:type:`dmx_input`
 replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
 replace symbol DMX_IN_DVR :c:type:`dmx_input`
 
-# dmx_source_t symbols
-replace enum dmx_source :c:type:`dmx_source`
-replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
-replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
-replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
-replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
-replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
-replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
-replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
-replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
-
-
 # Flags for struct dmx_sct_filter_params
 replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
 replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
@@ -61,4 +49,3 @@  replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
 replace typedef dmx_filter_t :c:type:`dmx_filter`
 replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
 replace typedef dmx_input_t :c:type:`dmx_input`
-replace typedef dmx_source_t :c:type:`dmx_source`
diff --git a/Documentation/media/uapi/dvb/dmx-set-source.rst b/Documentation/media/uapi/dvb/dmx-set-source.rst
deleted file mode 100644
index ac7f77b25e06..000000000000
--- a/Documentation/media/uapi/dvb/dmx-set-source.rst
+++ /dev/null
@@ -1,44 +0,0 @@ 
-.. -*- coding: utf-8; mode: rst -*-
-
-.. _DMX_SET_SOURCE:
-
-==============
-DMX_SET_SOURCE
-==============
-
-Name
-----
-
-DMX_SET_SOURCE
-
-
-Synopsis
---------
-
-.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
-    :name: DMX_SET_SOURCE
-
-
-Arguments
----------
-
-
-``fd``
-    File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
-
-``src``
-   Undocumented.
-
-
-Description
------------
-
-.. note:: This ioctl is undocumented. Documentation is welcome.
-
-
-Return Value
-------------
-
-On success 0 is returned, on error -1 and the ``errno`` variable is set
-appropriately. The generic error codes are described at the
-:ref:`Generic Error Codes <gen-errors>` chapter.
diff --git a/Documentation/media/uapi/dvb/dmx_fcalls.rst b/Documentation/media/uapi/dvb/dmx_fcalls.rst
index 49e013d4540f..be98d60877f2 100644
--- a/Documentation/media/uapi/dvb/dmx_fcalls.rst
+++ b/Documentation/media/uapi/dvb/dmx_fcalls.rst
@@ -21,6 +21,5 @@  Demux Function Calls
     dmx-get-event
     dmx-get-stc
     dmx-get-pes-pids
-    dmx-set-source
     dmx-add-pid
     dmx-remove-pid
diff --git a/Documentation/media/uapi/dvb/dmx_types.rst b/Documentation/media/uapi/dvb/dmx_types.rst
index 9e907b85cf16..a205c02ccdc1 100644
--- a/Documentation/media/uapi/dvb/dmx_types.rst
+++ b/Documentation/media/uapi/dvb/dmx_types.rst
@@ -197,23 +197,3 @@  struct dmx_stc
 	unsigned int base;  /* output: divisor for stc to get 90 kHz clock */
 	__u64 stc;      /* output: stc in 'base'*90 kHz units */
     };
-
-
-
-enum dmx_source
-===============
-
-.. c:type:: dmx_source
-
-.. code-block:: c
-
-    typedef enum dmx_source {
-	DMX_SOURCE_FRONT0 = 0,
-	DMX_SOURCE_FRONT1,
-	DMX_SOURCE_FRONT2,
-	DMX_SOURCE_FRONT3,
-	DMX_SOURCE_DVR0   = 16,
-	DMX_SOURCE_DVR1,
-	DMX_SOURCE_DVR2,
-	DMX_SOURCE_DVR3
-    } dmx_source_t;
diff --git a/include/uapi/linux/dvb/dmx.h b/include/uapi/linux/dvb/dmx.h
index c0ee44fbdb13..dd2b832c02ce 100644
--- a/include/uapi/linux/dvb/dmx.h
+++ b/include/uapi/linux/dvb/dmx.h
@@ -117,17 +117,6 @@  struct dmx_pes_filter_params
 	__u32          flags;
 };
 
-typedef enum dmx_source {
-	DMX_SOURCE_FRONT0 = 0,
-	DMX_SOURCE_FRONT1,
-	DMX_SOURCE_FRONT2,
-	DMX_SOURCE_FRONT3,
-	DMX_SOURCE_DVR0   = 16,
-	DMX_SOURCE_DVR1,
-	DMX_SOURCE_DVR2,
-	DMX_SOURCE_DVR3
-} dmx_source_t;
-
 struct dmx_stc {
 	unsigned int num;	/* input : which STC? 0..N */
 	unsigned int base;	/* output: divisor for stc to get 90 kHz clock */
@@ -140,7 +129,6 @@  struct dmx_stc {
 #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
 #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
 #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
-#define DMX_SET_SOURCE           _IOW('o', 49, dmx_source_t)
 #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
 #define DMX_ADD_PID              _IOW('o', 51, __u16)
 #define DMX_REMOVE_PID           _IOW('o', 52, __u16)