1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2407e84cdSMauro Carvalho Chehab.. c:namespace:: V4L 354f38fcaSMauro Carvalho Chehab 454f38fcaSMauro Carvalho Chehab.. _VIDIOC_ENUM_FREQ_BANDS: 554f38fcaSMauro Carvalho Chehab 654f38fcaSMauro Carvalho Chehab**************************** 754f38fcaSMauro Carvalho Chehabioctl VIDIOC_ENUM_FREQ_BANDS 854f38fcaSMauro Carvalho Chehab**************************** 954f38fcaSMauro Carvalho Chehab 1054f38fcaSMauro Carvalho ChehabName 1154f38fcaSMauro Carvalho Chehab==== 1254f38fcaSMauro Carvalho Chehab 1354f38fcaSMauro Carvalho ChehabVIDIOC_ENUM_FREQ_BANDS - Enumerate supported frequency bands 1454f38fcaSMauro Carvalho Chehab 1554f38fcaSMauro Carvalho ChehabSynopsis 1654f38fcaSMauro Carvalho Chehab======== 1754f38fcaSMauro Carvalho Chehab 18407e84cdSMauro Carvalho Chehab.. c:macro:: VIDIOC_ENUM_FREQ_BANDS 1954f38fcaSMauro Carvalho Chehab 20407e84cdSMauro Carvalho Chehab``int ioctl(int fd, VIDIOC_ENUM_FREQ_BANDS, struct v4l2_frequency_band *argp)`` 2154f38fcaSMauro Carvalho Chehab 2254f38fcaSMauro Carvalho ChehabArguments 2354f38fcaSMauro Carvalho Chehab========= 2454f38fcaSMauro Carvalho Chehab 2554f38fcaSMauro Carvalho Chehab``fd`` 26407e84cdSMauro Carvalho Chehab File descriptor returned by :c:func:`open()`. 2754f38fcaSMauro Carvalho Chehab 2854f38fcaSMauro Carvalho Chehab``argp`` 2954f38fcaSMauro Carvalho Chehab Pointer to struct :c:type:`v4l2_frequency_band`. 3054f38fcaSMauro Carvalho Chehab 3154f38fcaSMauro Carvalho ChehabDescription 3254f38fcaSMauro Carvalho Chehab=========== 3354f38fcaSMauro Carvalho Chehab 3454f38fcaSMauro Carvalho ChehabEnumerates the frequency bands that a tuner or modulator supports. To do 3554f38fcaSMauro Carvalho Chehabthis applications initialize the ``tuner``, ``type`` and ``index`` 3654f38fcaSMauro Carvalho Chehabfields, and zero out the ``reserved`` array of a struct 3754f38fcaSMauro Carvalho Chehab:c:type:`v4l2_frequency_band` and call the 3854f38fcaSMauro Carvalho Chehab:ref:`VIDIOC_ENUM_FREQ_BANDS` ioctl with a pointer to this structure. 3954f38fcaSMauro Carvalho Chehab 4054f38fcaSMauro Carvalho ChehabThis ioctl is supported if the ``V4L2_TUNER_CAP_FREQ_BANDS`` capability 4154f38fcaSMauro Carvalho Chehabof the corresponding tuner/modulator is set. 4254f38fcaSMauro Carvalho Chehab 43*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{2.9cm}|p{2.9cm}|p{5.8cm}|p{2.9cm}|p{2.4cm}| 4454f38fcaSMauro Carvalho Chehab 4554f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_frequency_band 4654f38fcaSMauro Carvalho Chehab 4754f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_frequency_band 4854f38fcaSMauro Carvalho Chehab :header-rows: 0 4954f38fcaSMauro Carvalho Chehab :stub-columns: 0 5054f38fcaSMauro Carvalho Chehab :widths: 1 1 2 1 1 5154f38fcaSMauro Carvalho Chehab 5254f38fcaSMauro Carvalho Chehab * - __u32 5354f38fcaSMauro Carvalho Chehab - ``tuner`` 5454f38fcaSMauro Carvalho Chehab - The tuner or modulator index number. This is the same value as in 5554f38fcaSMauro Carvalho Chehab the struct :c:type:`v4l2_input` ``tuner`` field and 5654f38fcaSMauro Carvalho Chehab the struct :c:type:`v4l2_tuner` ``index`` field, or 5754f38fcaSMauro Carvalho Chehab the struct :c:type:`v4l2_output` ``modulator`` field 5854f38fcaSMauro Carvalho Chehab and the struct :c:type:`v4l2_modulator` ``index`` 5954f38fcaSMauro Carvalho Chehab field. 6054f38fcaSMauro Carvalho Chehab * - __u32 6154f38fcaSMauro Carvalho Chehab - ``type`` 6254f38fcaSMauro Carvalho Chehab - The tuner type. This is the same value as in the struct 6354f38fcaSMauro Carvalho Chehab :c:type:`v4l2_tuner` ``type`` field. The type must be 6454f38fcaSMauro Carvalho Chehab set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and 6554f38fcaSMauro Carvalho Chehab to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to 6654f38fcaSMauro Carvalho Chehab ``V4L2_TUNER_RADIO`` for modulators (currently only radio 6754f38fcaSMauro Carvalho Chehab modulators are supported). See :c:type:`v4l2_tuner_type` 6854f38fcaSMauro Carvalho Chehab * - __u32 6954f38fcaSMauro Carvalho Chehab - ``index`` 7054f38fcaSMauro Carvalho Chehab - Identifies the frequency band, set by the application. 7154f38fcaSMauro Carvalho Chehab * - __u32 7254f38fcaSMauro Carvalho Chehab - ``capability`` 7354f38fcaSMauro Carvalho Chehab - :cspan:`2` The tuner/modulator capability flags for this 7454f38fcaSMauro Carvalho Chehab frequency band, see :ref:`tuner-capability`. The 7554f38fcaSMauro Carvalho Chehab ``V4L2_TUNER_CAP_LOW`` or ``V4L2_TUNER_CAP_1HZ`` capability must 7654f38fcaSMauro Carvalho Chehab be the same for all frequency bands of the selected 7754f38fcaSMauro Carvalho Chehab tuner/modulator. So either all bands have that capability set, or 7854f38fcaSMauro Carvalho Chehab none of them have that capability. 7954f38fcaSMauro Carvalho Chehab * - __u32 8054f38fcaSMauro Carvalho Chehab - ``rangelow`` 8154f38fcaSMauro Carvalho Chehab - :cspan:`2` The lowest tunable frequency in units of 62.5 kHz, or 8254f38fcaSMauro Carvalho Chehab if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units 8354f38fcaSMauro Carvalho Chehab of 62.5 Hz, for this frequency band. A 1 Hz unit is used when the 8454f38fcaSMauro Carvalho Chehab ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. 8554f38fcaSMauro Carvalho Chehab * - __u32 8654f38fcaSMauro Carvalho Chehab - ``rangehigh`` 8754f38fcaSMauro Carvalho Chehab - :cspan:`2` The highest tunable frequency in units of 62.5 kHz, 8854f38fcaSMauro Carvalho Chehab or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in 8954f38fcaSMauro Carvalho Chehab units of 62.5 Hz, for this frequency band. A 1 Hz unit is used 9054f38fcaSMauro Carvalho Chehab when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. 9154f38fcaSMauro Carvalho Chehab * - __u32 9254f38fcaSMauro Carvalho Chehab - ``modulation`` 9354f38fcaSMauro Carvalho Chehab - :cspan:`2` The supported modulation systems of this frequency 9454f38fcaSMauro Carvalho Chehab band. See :ref:`band-modulation`. 9554f38fcaSMauro Carvalho Chehab 9654f38fcaSMauro Carvalho Chehab .. note:: 9754f38fcaSMauro Carvalho Chehab 9854f38fcaSMauro Carvalho Chehab Currently only one modulation system per frequency band 9954f38fcaSMauro Carvalho Chehab is supported. More work will need to be done if multiple 10054f38fcaSMauro Carvalho Chehab modulation systems are possible. Contact the linux-media 10154f38fcaSMauro Carvalho Chehab mailing list 10254f38fcaSMauro Carvalho Chehab (`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__) 10354f38fcaSMauro Carvalho Chehab if you need such functionality. 10454f38fcaSMauro Carvalho Chehab * - __u32 10554f38fcaSMauro Carvalho Chehab - ``reserved``\ [9] 10654f38fcaSMauro Carvalho Chehab - Reserved for future extensions. 10754f38fcaSMauro Carvalho Chehab 10854f38fcaSMauro Carvalho Chehab Applications and drivers must set the array to zero. 10954f38fcaSMauro Carvalho Chehab 11054f38fcaSMauro Carvalho Chehab 111*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}| 11254f38fcaSMauro Carvalho Chehab 11354f38fcaSMauro Carvalho Chehab.. _band-modulation: 11454f38fcaSMauro Carvalho Chehab 11554f38fcaSMauro Carvalho Chehab.. flat-table:: Band Modulation Systems 11654f38fcaSMauro Carvalho Chehab :header-rows: 0 11754f38fcaSMauro Carvalho Chehab :stub-columns: 0 11854f38fcaSMauro Carvalho Chehab :widths: 3 1 4 11954f38fcaSMauro Carvalho Chehab 12054f38fcaSMauro Carvalho Chehab * - ``V4L2_BAND_MODULATION_VSB`` 12154f38fcaSMauro Carvalho Chehab - 0x02 12254f38fcaSMauro Carvalho Chehab - Vestigial Sideband modulation, used for analog TV. 12354f38fcaSMauro Carvalho Chehab * - ``V4L2_BAND_MODULATION_FM`` 12454f38fcaSMauro Carvalho Chehab - 0x04 12554f38fcaSMauro Carvalho Chehab - Frequency Modulation, commonly used for analog radio. 12654f38fcaSMauro Carvalho Chehab * - ``V4L2_BAND_MODULATION_AM`` 12754f38fcaSMauro Carvalho Chehab - 0x08 12854f38fcaSMauro Carvalho Chehab - Amplitude Modulation, commonly used for analog radio. 12954f38fcaSMauro Carvalho Chehab 13054f38fcaSMauro Carvalho ChehabReturn Value 13154f38fcaSMauro Carvalho Chehab============ 13254f38fcaSMauro Carvalho Chehab 13354f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set 13454f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the 13554f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter. 13654f38fcaSMauro Carvalho Chehab 13754f38fcaSMauro Carvalho ChehabEINVAL 13854f38fcaSMauro Carvalho Chehab The ``tuner`` or ``index`` is out of bounds or the ``type`` field is 13954f38fcaSMauro Carvalho Chehab wrong. 140