xref: /openbmc/linux/Documentation/userspace-api/media/v4l/vidioc-g-tuner.rst (revision 8be98d2f2a0a262f8bf8a0bc1fdf522b3c7aab17)
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_G_TUNER:
554f38fcaSMauro Carvalho Chehab
654f38fcaSMauro Carvalho Chehab************************************
754f38fcaSMauro Carvalho Chehabioctl VIDIOC_G_TUNER, VIDIOC_S_TUNER
854f38fcaSMauro Carvalho Chehab************************************
954f38fcaSMauro Carvalho Chehab
1054f38fcaSMauro Carvalho ChehabName
1154f38fcaSMauro Carvalho Chehab====
1254f38fcaSMauro Carvalho Chehab
1354f38fcaSMauro Carvalho ChehabVIDIOC_G_TUNER - VIDIOC_S_TUNER - Get or set tuner attributes
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho ChehabSynopsis
1654f38fcaSMauro Carvalho Chehab========
1754f38fcaSMauro Carvalho Chehab
18407e84cdSMauro Carvalho Chehab.. c:macro:: VIDIOC_G_TUNER
1954f38fcaSMauro Carvalho Chehab
20407e84cdSMauro Carvalho Chehab``int ioctl(int fd, VIDIOC_G_TUNER, struct v4l2_tuner *argp)``
2154f38fcaSMauro Carvalho Chehab
22407e84cdSMauro Carvalho Chehab.. c:macro:: VIDIOC_S_TUNER
23407e84cdSMauro Carvalho Chehab
24407e84cdSMauro Carvalho Chehab``int ioctl(int fd, VIDIOC_S_TUNER, const struct v4l2_tuner *argp)``
2554f38fcaSMauro Carvalho Chehab
2654f38fcaSMauro Carvalho ChehabArguments
2754f38fcaSMauro Carvalho Chehab=========
2854f38fcaSMauro Carvalho Chehab
2954f38fcaSMauro Carvalho Chehab``fd``
30407e84cdSMauro Carvalho Chehab    File descriptor returned by :c:func:`open()`.
3154f38fcaSMauro Carvalho Chehab
3254f38fcaSMauro Carvalho Chehab``argp``
3354f38fcaSMauro Carvalho Chehab    Pointer to struct :c:type:`v4l2_tuner`.
3454f38fcaSMauro Carvalho Chehab
3554f38fcaSMauro Carvalho ChehabDescription
3654f38fcaSMauro Carvalho Chehab===========
3754f38fcaSMauro Carvalho Chehab
3854f38fcaSMauro Carvalho ChehabTo query the attributes of a tuner applications initialize the ``index``
3954f38fcaSMauro Carvalho Chehabfield and zero out the ``reserved`` array of a struct
4054f38fcaSMauro Carvalho Chehab:c:type:`v4l2_tuner` and call the ``VIDIOC_G_TUNER`` ioctl
4154f38fcaSMauro Carvalho Chehabwith a pointer to this structure. Drivers fill the rest of the structure
4254f38fcaSMauro Carvalho Chehabor return an ``EINVAL`` error code when the index is out of bounds. To
4354f38fcaSMauro Carvalho Chehabenumerate all tuners applications shall begin at index zero,
4454f38fcaSMauro Carvalho Chehabincrementing by one until the driver returns ``EINVAL``.
4554f38fcaSMauro Carvalho Chehab
4654f38fcaSMauro Carvalho ChehabTuners have two writable properties, the audio mode and the radio
4754f38fcaSMauro Carvalho Chehabfrequency. To change the audio mode, applications initialize the
4854f38fcaSMauro Carvalho Chehab``index``, ``audmode`` and ``reserved`` fields and call the
4954f38fcaSMauro Carvalho Chehab``VIDIOC_S_TUNER`` ioctl. This will *not* change the current tuner,
5054f38fcaSMauro Carvalho Chehabwhich is determined by the current video input. Drivers may choose a
5154f38fcaSMauro Carvalho Chehabdifferent audio mode if the requested mode is invalid or unsupported.
5254f38fcaSMauro Carvalho ChehabSince this is a write-only ioctl, it does not return the actually
5354f38fcaSMauro Carvalho Chehabselected audio mode.
5454f38fcaSMauro Carvalho Chehab
5554f38fcaSMauro Carvalho Chehab:ref:`SDR <sdr>` specific tuner types are ``V4L2_TUNER_SDR`` and
5654f38fcaSMauro Carvalho Chehab``V4L2_TUNER_RF``. For SDR devices ``audmode`` field must be initialized
5754f38fcaSMauro Carvalho Chehabto zero. The term 'tuner' means SDR receiver in this context.
5854f38fcaSMauro Carvalho Chehab
5954f38fcaSMauro Carvalho ChehabTo change the radio frequency the
6054f38fcaSMauro Carvalho Chehab:ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl is available.
6154f38fcaSMauro Carvalho Chehab
62fea13a69SMauro Carvalho Chehab .. tabularcolumns:: |p{1.3cm}|p{3.0cm}|p{7.0cm}|p{5.8cm}|
6354f38fcaSMauro Carvalho Chehab
6454f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_tuner
6554f38fcaSMauro Carvalho Chehab
6654f38fcaSMauro Carvalho Chehab.. cssclass:: longtable
6754f38fcaSMauro Carvalho Chehab
6854f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_tuner
6954f38fcaSMauro Carvalho Chehab    :header-rows:  0
7054f38fcaSMauro Carvalho Chehab    :stub-columns: 0
7154f38fcaSMauro Carvalho Chehab
7254f38fcaSMauro Carvalho Chehab    * - __u32
7354f38fcaSMauro Carvalho Chehab      - ``index``
7454f38fcaSMauro Carvalho Chehab      - :cspan:`1` Identifies the tuner, set by the application.
7554f38fcaSMauro Carvalho Chehab    * - __u8
7654f38fcaSMauro Carvalho Chehab      - ``name``\ [32]
7754f38fcaSMauro Carvalho Chehab      - :cspan:`1`
7854f38fcaSMauro Carvalho Chehab
7954f38fcaSMauro Carvalho Chehab	Name of the tuner, a NUL-terminated ASCII string.
8054f38fcaSMauro Carvalho Chehab
8154f38fcaSMauro Carvalho Chehab	This information is intended for the user.
8254f38fcaSMauro Carvalho Chehab    * - __u32
8354f38fcaSMauro Carvalho Chehab      - ``type``
8454f38fcaSMauro Carvalho Chehab      - :cspan:`1` Type of the tuner, see :c:type:`v4l2_tuner_type`.
8554f38fcaSMauro Carvalho Chehab    * - __u32
8654f38fcaSMauro Carvalho Chehab      - ``capability``
8754f38fcaSMauro Carvalho Chehab      - :cspan:`1`
8854f38fcaSMauro Carvalho Chehab
8954f38fcaSMauro Carvalho Chehab	Tuner capability flags, see :ref:`tuner-capability`. Audio flags
9054f38fcaSMauro Carvalho Chehab	indicate the ability to decode audio subprograms. They will *not*
9154f38fcaSMauro Carvalho Chehab	change, for example with the current video standard.
9254f38fcaSMauro Carvalho Chehab
9354f38fcaSMauro Carvalho Chehab	When the structure refers to a radio tuner the
9454f38fcaSMauro Carvalho Chehab	``V4L2_TUNER_CAP_LANG1``, ``V4L2_TUNER_CAP_LANG2`` and
9554f38fcaSMauro Carvalho Chehab	``V4L2_TUNER_CAP_NORM`` flags can't be used.
9654f38fcaSMauro Carvalho Chehab
9754f38fcaSMauro Carvalho Chehab	If multiple frequency bands are supported, then ``capability`` is
9854f38fcaSMauro Carvalho Chehab	the union of all ``capability`` fields of each struct
9954f38fcaSMauro Carvalho Chehab	:c:type:`v4l2_frequency_band`.
10054f38fcaSMauro Carvalho Chehab    * - __u32
10154f38fcaSMauro Carvalho Chehab      - ``rangelow``
10254f38fcaSMauro Carvalho Chehab      - :cspan:`1` The lowest tunable frequency in units of 62.5 kHz, or
10354f38fcaSMauro Carvalho Chehab	if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units
10454f38fcaSMauro Carvalho Chehab	of 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ``
10554f38fcaSMauro Carvalho Chehab	is set, in units of 1 Hz. If multiple frequency bands are
10654f38fcaSMauro Carvalho Chehab	supported, then ``rangelow`` is the lowest frequency of all the
10754f38fcaSMauro Carvalho Chehab	frequency bands.
10854f38fcaSMauro Carvalho Chehab    * - __u32
10954f38fcaSMauro Carvalho Chehab      - ``rangehigh``
11054f38fcaSMauro Carvalho Chehab      - :cspan:`1` The highest tunable frequency in units of 62.5 kHz,
11154f38fcaSMauro Carvalho Chehab	or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in
11254f38fcaSMauro Carvalho Chehab	units of 62.5 Hz, or if the ``capability`` flag
11354f38fcaSMauro Carvalho Chehab	``V4L2_TUNER_CAP_1HZ`` is set, in units of 1 Hz. If multiple
11454f38fcaSMauro Carvalho Chehab	frequency bands are supported, then ``rangehigh`` is the highest
11554f38fcaSMauro Carvalho Chehab	frequency of all the frequency bands.
11654f38fcaSMauro Carvalho Chehab    * - __u32
11754f38fcaSMauro Carvalho Chehab      - ``rxsubchans``
11854f38fcaSMauro Carvalho Chehab      - :cspan:`1`
11954f38fcaSMauro Carvalho Chehab
12054f38fcaSMauro Carvalho Chehab	Some tuners or audio decoders can determine the received audio
12154f38fcaSMauro Carvalho Chehab	subprograms by analyzing audio carriers, pilot tones or other
12254f38fcaSMauro Carvalho Chehab	indicators. To pass this information drivers set flags defined in
12354f38fcaSMauro Carvalho Chehab	:ref:`tuner-rxsubchans` in this field. For example:
12454f38fcaSMauro Carvalho Chehab    * -
12554f38fcaSMauro Carvalho Chehab      -
12654f38fcaSMauro Carvalho Chehab      - ``V4L2_TUNER_SUB_MONO``
12754f38fcaSMauro Carvalho Chehab      - receiving mono audio
12854f38fcaSMauro Carvalho Chehab    * -
12954f38fcaSMauro Carvalho Chehab      -
13054f38fcaSMauro Carvalho Chehab      - ``STEREO | SAP``
13154f38fcaSMauro Carvalho Chehab      - receiving stereo audio and a secondary audio program
13254f38fcaSMauro Carvalho Chehab    * -
13354f38fcaSMauro Carvalho Chehab      -
13454f38fcaSMauro Carvalho Chehab      - ``MONO | STEREO``
13554f38fcaSMauro Carvalho Chehab      - receiving mono or stereo audio, the hardware cannot distinguish
13654f38fcaSMauro Carvalho Chehab    * -
13754f38fcaSMauro Carvalho Chehab      -
13854f38fcaSMauro Carvalho Chehab      - ``LANG1 | LANG2``
13954f38fcaSMauro Carvalho Chehab      - receiving bilingual audio
14054f38fcaSMauro Carvalho Chehab    * -
14154f38fcaSMauro Carvalho Chehab      -
14254f38fcaSMauro Carvalho Chehab      - ``MONO | STEREO | LANG1 | LANG2``
14354f38fcaSMauro Carvalho Chehab      - receiving mono, stereo or bilingual audio
14454f38fcaSMauro Carvalho Chehab    * -
14554f38fcaSMauro Carvalho Chehab      -
14654f38fcaSMauro Carvalho Chehab      - :cspan:`1`
14754f38fcaSMauro Carvalho Chehab
14854f38fcaSMauro Carvalho Chehab	When the ``V4L2_TUNER_CAP_STEREO``, ``_LANG1``, ``_LANG2`` or
14954f38fcaSMauro Carvalho Chehab	``_SAP`` flag is cleared in the ``capability`` field, the
15054f38fcaSMauro Carvalho Chehab	corresponding ``V4L2_TUNER_SUB_`` flag must not be set here.
15154f38fcaSMauro Carvalho Chehab
15254f38fcaSMauro Carvalho Chehab	This field is valid only if this is the tuner of the current video
15354f38fcaSMauro Carvalho Chehab	input, or when the structure refers to a radio tuner.
15454f38fcaSMauro Carvalho Chehab    * - __u32
15554f38fcaSMauro Carvalho Chehab      - ``audmode``
15654f38fcaSMauro Carvalho Chehab      - :cspan:`1`
15754f38fcaSMauro Carvalho Chehab
15854f38fcaSMauro Carvalho Chehab	The selected audio mode, see :ref:`tuner-audmode` for valid
15954f38fcaSMauro Carvalho Chehab	values. The audio mode does not affect audio subprogram detection,
16054f38fcaSMauro Carvalho Chehab	and like a :ref:`control` it does not automatically
16154f38fcaSMauro Carvalho Chehab	change unless the requested mode is invalid or unsupported. See
16254f38fcaSMauro Carvalho Chehab	:ref:`tuner-matrix` for possible results when the selected and
16354f38fcaSMauro Carvalho Chehab	received audio programs do not match.
16454f38fcaSMauro Carvalho Chehab
16554f38fcaSMauro Carvalho Chehab	Currently this is the only field of struct
16654f38fcaSMauro Carvalho Chehab	struct :c:type:`v4l2_tuner` applications can change.
16754f38fcaSMauro Carvalho Chehab    * - __u32
16854f38fcaSMauro Carvalho Chehab      - ``signal``
16954f38fcaSMauro Carvalho Chehab      - :cspan:`1` The signal strength if known.
17054f38fcaSMauro Carvalho Chehab
17154f38fcaSMauro Carvalho Chehab	Ranging from 0 to 65535. Higher values indicate a better signal.
17254f38fcaSMauro Carvalho Chehab    * - __s32
17354f38fcaSMauro Carvalho Chehab      - ``afc``
17454f38fcaSMauro Carvalho Chehab      - :cspan:`1` Automatic frequency control.
17554f38fcaSMauro Carvalho Chehab
17654f38fcaSMauro Carvalho Chehab	When the ``afc`` value is negative, the frequency is too
17754f38fcaSMauro Carvalho Chehab	low, when positive too high.
17854f38fcaSMauro Carvalho Chehab    * - __u32
17954f38fcaSMauro Carvalho Chehab      - ``reserved``\ [4]
18054f38fcaSMauro Carvalho Chehab      - :cspan:`1` Reserved for future extensions.
18154f38fcaSMauro Carvalho Chehab
18254f38fcaSMauro Carvalho Chehab	Drivers and applications must set the array to zero.
18354f38fcaSMauro Carvalho Chehab
18454f38fcaSMauro Carvalho Chehab
185fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}|
18654f38fcaSMauro Carvalho Chehab
18754f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_tuner_type
18854f38fcaSMauro Carvalho Chehab
18954f38fcaSMauro Carvalho Chehab.. flat-table:: enum v4l2_tuner_type
19054f38fcaSMauro Carvalho Chehab    :header-rows:  0
19154f38fcaSMauro Carvalho Chehab    :stub-columns: 0
19254f38fcaSMauro Carvalho Chehab    :widths:       3 1 6
19354f38fcaSMauro Carvalho Chehab
19454f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_RADIO``
19554f38fcaSMauro Carvalho Chehab      - 1
19654f38fcaSMauro Carvalho Chehab      - Tuner supports radio
19754f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_ANALOG_TV``
19854f38fcaSMauro Carvalho Chehab      - 2
19954f38fcaSMauro Carvalho Chehab      - Tuner supports analog TV
20054f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_SDR``
20154f38fcaSMauro Carvalho Chehab      - 4
20254f38fcaSMauro Carvalho Chehab      - Tuner controls the A/D and/or D/A block of a
20354f38fcaSMauro Carvalho Chehab	Software Digital Radio (SDR)
20454f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_RF``
20554f38fcaSMauro Carvalho Chehab      - 5
20654f38fcaSMauro Carvalho Chehab      - Tuner controls the RF part of a Software Digital Radio (SDR)
20754f38fcaSMauro Carvalho Chehab
208fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{7.0cm}|p{2.2cm}|p{8.1cm}|
20954f38fcaSMauro Carvalho Chehab
21054f38fcaSMauro Carvalho Chehab.. _tuner-capability:
21154f38fcaSMauro Carvalho Chehab
21254f38fcaSMauro Carvalho Chehab.. cssclass:: longtable
21354f38fcaSMauro Carvalho Chehab
21454f38fcaSMauro Carvalho Chehab.. flat-table:: Tuner and Modulator Capability Flags
21554f38fcaSMauro Carvalho Chehab    :header-rows:  0
21654f38fcaSMauro Carvalho Chehab    :stub-columns: 0
21754f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
21854f38fcaSMauro Carvalho Chehab
21954f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_LOW``
22054f38fcaSMauro Carvalho Chehab      - 0x0001
22154f38fcaSMauro Carvalho Chehab      - When set, tuning frequencies are expressed in units of 62.5 Hz
22254f38fcaSMauro Carvalho Chehab	instead of 62.5 kHz.
22354f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_NORM``
22454f38fcaSMauro Carvalho Chehab      - 0x0002
22554f38fcaSMauro Carvalho Chehab      - This is a multi-standard tuner; the video standard can or must be
22654f38fcaSMauro Carvalho Chehab	switched. (B/G PAL tuners for example are typically not considered
22754f38fcaSMauro Carvalho Chehab	multi-standard because the video standard is automatically
22854f38fcaSMauro Carvalho Chehab	determined from the frequency band.) The set of supported video
22954f38fcaSMauro Carvalho Chehab	standards is available from the struct
23054f38fcaSMauro Carvalho Chehab	:c:type:`v4l2_input` pointing to this tuner, see the
23154f38fcaSMauro Carvalho Chehab	description of ioctl :ref:`VIDIOC_ENUMINPUT`
23254f38fcaSMauro Carvalho Chehab	for details. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
23354f38fcaSMauro Carvalho Chehab	capability.
23454f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_HWSEEK_BOUNDED``
23554f38fcaSMauro Carvalho Chehab      - 0x0004
23654f38fcaSMauro Carvalho Chehab      - If set, then this tuner supports the hardware seek functionality
23754f38fcaSMauro Carvalho Chehab	where the seek stops when it reaches the end of the frequency
23854f38fcaSMauro Carvalho Chehab	range.
23954f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_HWSEEK_WRAP``
24054f38fcaSMauro Carvalho Chehab      - 0x0008
24154f38fcaSMauro Carvalho Chehab      - If set, then this tuner supports the hardware seek functionality
24254f38fcaSMauro Carvalho Chehab	where the seek wraps around when it reaches the end of the
24354f38fcaSMauro Carvalho Chehab	frequency range.
24454f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_STEREO``
24554f38fcaSMauro Carvalho Chehab      - 0x0010
24654f38fcaSMauro Carvalho Chehab      - Stereo audio reception is supported.
24754f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_LANG1``
24854f38fcaSMauro Carvalho Chehab      - 0x0040
24954f38fcaSMauro Carvalho Chehab      - Reception of the primary language of a bilingual audio program is
25054f38fcaSMauro Carvalho Chehab	supported. Bilingual audio is a feature of two-channel systems,
25154f38fcaSMauro Carvalho Chehab	transmitting the primary language monaural on the main audio
25254f38fcaSMauro Carvalho Chehab	carrier and a secondary language monaural on a second carrier.
25354f38fcaSMauro Carvalho Chehab	Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
25454f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_LANG2``
25554f38fcaSMauro Carvalho Chehab      - 0x0020
25654f38fcaSMauro Carvalho Chehab      - Reception of the secondary language of a bilingual audio program
25754f38fcaSMauro Carvalho Chehab	is supported. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this
25854f38fcaSMauro Carvalho Chehab	capability.
25954f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_SAP``
26054f38fcaSMauro Carvalho Chehab      - 0x0020
26154f38fcaSMauro Carvalho Chehab      - Reception of a secondary audio program is supported. This is a
26254f38fcaSMauro Carvalho Chehab	feature of the BTSC system which accompanies the NTSC video
26354f38fcaSMauro Carvalho Chehab	standard. Two audio carriers are available for mono or stereo
26454f38fcaSMauro Carvalho Chehab	transmissions of a primary language, and an independent third
26554f38fcaSMauro Carvalho Chehab	carrier for a monaural secondary language. Only
26654f38fcaSMauro Carvalho Chehab	``V4L2_TUNER_ANALOG_TV`` tuners can have this capability.
26754f38fcaSMauro Carvalho Chehab
26854f38fcaSMauro Carvalho Chehab	.. note::
26954f38fcaSMauro Carvalho Chehab
27054f38fcaSMauro Carvalho Chehab	   The ``V4L2_TUNER_CAP_LANG2`` and ``V4L2_TUNER_CAP_SAP``
27154f38fcaSMauro Carvalho Chehab	   flags are synonyms. ``V4L2_TUNER_CAP_SAP`` applies when the tuner
27254f38fcaSMauro Carvalho Chehab	   supports the ``V4L2_STD_NTSC_M`` video standard.
27354f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_RDS``
27454f38fcaSMauro Carvalho Chehab      - 0x0080
27554f38fcaSMauro Carvalho Chehab      - RDS capture is supported. This capability is only valid for radio
27654f38fcaSMauro Carvalho Chehab	tuners.
27754f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_RDS_BLOCK_IO``
27854f38fcaSMauro Carvalho Chehab      - 0x0100
27954f38fcaSMauro Carvalho Chehab      - The RDS data is passed as unparsed RDS blocks.
28054f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_RDS_CONTROLS``
28154f38fcaSMauro Carvalho Chehab      - 0x0200
28254f38fcaSMauro Carvalho Chehab      - The RDS data is parsed by the hardware and set via controls.
28354f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_FREQ_BANDS``
28454f38fcaSMauro Carvalho Chehab      - 0x0400
28554f38fcaSMauro Carvalho Chehab      - The :ref:`VIDIOC_ENUM_FREQ_BANDS`
28654f38fcaSMauro Carvalho Chehab	ioctl can be used to enumerate the available frequency bands.
28754f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_HWSEEK_PROG_LIM``
28854f38fcaSMauro Carvalho Chehab      - 0x0800
28954f38fcaSMauro Carvalho Chehab      - The range to search when using the hardware seek functionality is
29054f38fcaSMauro Carvalho Chehab	programmable, see
29154f38fcaSMauro Carvalho Chehab	:ref:`VIDIOC_S_HW_FREQ_SEEK` for
29254f38fcaSMauro Carvalho Chehab	details.
29354f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_CAP_1HZ``
29454f38fcaSMauro Carvalho Chehab      - 0x1000
29554f38fcaSMauro Carvalho Chehab      - When set, tuning frequencies are expressed in units of 1 Hz
29654f38fcaSMauro Carvalho Chehab	instead of 62.5 kHz.
29754f38fcaSMauro Carvalho Chehab
29854f38fcaSMauro Carvalho Chehab
299fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}|
300fea13a69SMauro Carvalho Chehab
301*c4a1bff9SMauro Carvalho Chehab.. _tuner-rxsubchans:
302*c4a1bff9SMauro Carvalho Chehab
30354f38fcaSMauro Carvalho Chehab.. flat-table:: Tuner Audio Reception Flags
30454f38fcaSMauro Carvalho Chehab    :header-rows:  0
30554f38fcaSMauro Carvalho Chehab    :stub-columns: 0
30654f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
30754f38fcaSMauro Carvalho Chehab
30854f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_SUB_MONO``
30954f38fcaSMauro Carvalho Chehab      - 0x0001
31054f38fcaSMauro Carvalho Chehab      - The tuner receives a mono audio signal.
31154f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_SUB_STEREO``
31254f38fcaSMauro Carvalho Chehab      - 0x0002
31354f38fcaSMauro Carvalho Chehab      - The tuner receives a stereo audio signal.
31454f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_SUB_LANG1``
31554f38fcaSMauro Carvalho Chehab      - 0x0008
31654f38fcaSMauro Carvalho Chehab      - The tuner receives the primary language of a bilingual audio
31754f38fcaSMauro Carvalho Chehab	signal. Drivers must clear this flag when the current video
31854f38fcaSMauro Carvalho Chehab	standard is ``V4L2_STD_NTSC_M``.
31954f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_SUB_LANG2``
32054f38fcaSMauro Carvalho Chehab      - 0x0004
32154f38fcaSMauro Carvalho Chehab      - The tuner receives the secondary language of a bilingual audio
32254f38fcaSMauro Carvalho Chehab	signal (or a second audio program).
32354f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_SUB_SAP``
32454f38fcaSMauro Carvalho Chehab      - 0x0004
32554f38fcaSMauro Carvalho Chehab      - The tuner receives a Second Audio Program.
32654f38fcaSMauro Carvalho Chehab
32754f38fcaSMauro Carvalho Chehab	.. note::
32854f38fcaSMauro Carvalho Chehab
32954f38fcaSMauro Carvalho Chehab	   The ``V4L2_TUNER_SUB_LANG2`` and ``V4L2_TUNER_SUB_SAP``
33054f38fcaSMauro Carvalho Chehab	   flags are synonyms. The ``V4L2_TUNER_SUB_SAP`` flag applies
33154f38fcaSMauro Carvalho Chehab	   when the current video standard is ``V4L2_STD_NTSC_M``.
33254f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_SUB_RDS``
33354f38fcaSMauro Carvalho Chehab      - 0x0010
33454f38fcaSMauro Carvalho Chehab      - The tuner receives an RDS channel.
33554f38fcaSMauro Carvalho Chehab
33654f38fcaSMauro Carvalho Chehab
337fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}|
33854f38fcaSMauro Carvalho Chehab
33954f38fcaSMauro Carvalho Chehab.. _tuner-audmode:
34054f38fcaSMauro Carvalho Chehab
34154f38fcaSMauro Carvalho Chehab.. flat-table:: Tuner Audio Modes
34254f38fcaSMauro Carvalho Chehab    :header-rows:  0
34354f38fcaSMauro Carvalho Chehab    :stub-columns: 0
34454f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
34554f38fcaSMauro Carvalho Chehab
34654f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_MODE_MONO``
34754f38fcaSMauro Carvalho Chehab      - 0
34854f38fcaSMauro Carvalho Chehab      - Play mono audio. When the tuner receives a stereo signal this a
34954f38fcaSMauro Carvalho Chehab	down-mix of the left and right channel. When the tuner receives a
35054f38fcaSMauro Carvalho Chehab	bilingual or SAP signal this mode selects the primary language.
35154f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_MODE_STEREO``
35254f38fcaSMauro Carvalho Chehab      - 1
35354f38fcaSMauro Carvalho Chehab      - Play stereo audio. When the tuner receives bilingual audio it may
35454f38fcaSMauro Carvalho Chehab	play different languages on the left and right channel or the
35554f38fcaSMauro Carvalho Chehab	primary language is played on both channels.
35654f38fcaSMauro Carvalho Chehab
35754f38fcaSMauro Carvalho Chehab	Playing different languages in this mode is deprecated. New
35854f38fcaSMauro Carvalho Chehab	drivers should do this only in ``MODE_LANG1_LANG2``.
35954f38fcaSMauro Carvalho Chehab
36054f38fcaSMauro Carvalho Chehab	When the tuner receives no stereo signal or does not support
36154f38fcaSMauro Carvalho Chehab	stereo reception the driver shall fall back to ``MODE_MONO``.
36254f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_MODE_LANG1``
36354f38fcaSMauro Carvalho Chehab      - 3
36454f38fcaSMauro Carvalho Chehab      - Play the primary language, mono or stereo. Only
36554f38fcaSMauro Carvalho Chehab	``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
36654f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_MODE_LANG2``
36754f38fcaSMauro Carvalho Chehab      - 2
36854f38fcaSMauro Carvalho Chehab      - Play the secondary language, mono. When the tuner receives no
36954f38fcaSMauro Carvalho Chehab	bilingual audio or SAP, or their reception is not supported the
37054f38fcaSMauro Carvalho Chehab	driver shall fall back to mono or stereo mode. Only
37154f38fcaSMauro Carvalho Chehab	``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
37254f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_MODE_SAP``
37354f38fcaSMauro Carvalho Chehab      - 2
37454f38fcaSMauro Carvalho Chehab      - Play the Second Audio Program. When the tuner receives no
37554f38fcaSMauro Carvalho Chehab	bilingual audio or SAP, or their reception is not supported the
37654f38fcaSMauro Carvalho Chehab	driver shall fall back to mono or stereo mode. Only
37754f38fcaSMauro Carvalho Chehab	``V4L2_TUNER_ANALOG_TV`` tuners support this mode.
37854f38fcaSMauro Carvalho Chehab
37954f38fcaSMauro Carvalho Chehab	.. note:: The ``V4L2_TUNER_MODE_LANG2`` and ``V4L2_TUNER_MODE_SAP``
38054f38fcaSMauro Carvalho Chehab	   are synonyms.
38154f38fcaSMauro Carvalho Chehab    * - ``V4L2_TUNER_MODE_LANG1_LANG2``
38254f38fcaSMauro Carvalho Chehab      - 4
38354f38fcaSMauro Carvalho Chehab      - Play the primary language on the left channel, the secondary
38454f38fcaSMauro Carvalho Chehab	language on the right channel. When the tuner receives no
38554f38fcaSMauro Carvalho Chehab	bilingual audio or SAP, it shall fall back to ``MODE_LANG1`` or
38654f38fcaSMauro Carvalho Chehab	``MODE_MONO``. Only ``V4L2_TUNER_ANALOG_TV`` tuners support this
38754f38fcaSMauro Carvalho Chehab	mode.
38854f38fcaSMauro Carvalho Chehab
38954f38fcaSMauro Carvalho Chehab.. raw:: latex
39054f38fcaSMauro Carvalho Chehab
39154f38fcaSMauro Carvalho Chehab    \scriptsize
39254f38fcaSMauro Carvalho Chehab
39354f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{1.5cm}|p{1.5cm}|p{2.9cm}|p{2.9cm}|p{2.9cm}|p{2.9cm}|
39454f38fcaSMauro Carvalho Chehab
39554f38fcaSMauro Carvalho Chehab.. _tuner-matrix:
39654f38fcaSMauro Carvalho Chehab
39754f38fcaSMauro Carvalho Chehab.. flat-table:: Tuner Audio Matrix
39854f38fcaSMauro Carvalho Chehab    :header-rows:  2
39954f38fcaSMauro Carvalho Chehab    :stub-columns: 0
40054f38fcaSMauro Carvalho Chehab    :widths: 7 7 14 14 14 14
40154f38fcaSMauro Carvalho Chehab
40254f38fcaSMauro Carvalho Chehab    * -
40354f38fcaSMauro Carvalho Chehab      - :cspan:`4` Selected ``V4L2_TUNER_MODE_``
40454f38fcaSMauro Carvalho Chehab    * - Received ``V4L2_TUNER_SUB_``
40554f38fcaSMauro Carvalho Chehab      - ``MONO``
40654f38fcaSMauro Carvalho Chehab      - ``STEREO``
40754f38fcaSMauro Carvalho Chehab      - ``LANG1``
40854f38fcaSMauro Carvalho Chehab      - ``LANG2 = SAP``
40954f38fcaSMauro Carvalho Chehab      - ``LANG1_LANG2``\ [#f1]_
41054f38fcaSMauro Carvalho Chehab    * - ``MONO``
41154f38fcaSMauro Carvalho Chehab      - Mono
41254f38fcaSMauro Carvalho Chehab      - Mono/Mono
41354f38fcaSMauro Carvalho Chehab      - Mono
41454f38fcaSMauro Carvalho Chehab      - Mono
41554f38fcaSMauro Carvalho Chehab      - Mono/Mono
41654f38fcaSMauro Carvalho Chehab    * - ``MONO | SAP``
41754f38fcaSMauro Carvalho Chehab      - Mono
41854f38fcaSMauro Carvalho Chehab      - Mono/Mono
41954f38fcaSMauro Carvalho Chehab      - Mono
42054f38fcaSMauro Carvalho Chehab      - SAP
42154f38fcaSMauro Carvalho Chehab      - Mono/SAP (preferred) or Mono/Mono
42254f38fcaSMauro Carvalho Chehab    * - ``STEREO``
42354f38fcaSMauro Carvalho Chehab      - L+R
42454f38fcaSMauro Carvalho Chehab      - L/R
42554f38fcaSMauro Carvalho Chehab      - Stereo L/R (preferred) or Mono L+R
42654f38fcaSMauro Carvalho Chehab      - Stereo L/R (preferred) or Mono L+R
42754f38fcaSMauro Carvalho Chehab      - L/R (preferred) or L+R/L+R
42854f38fcaSMauro Carvalho Chehab    * - ``STEREO | SAP``
42954f38fcaSMauro Carvalho Chehab      - L+R
43054f38fcaSMauro Carvalho Chehab      - L/R
43154f38fcaSMauro Carvalho Chehab      - Stereo L/R (preferred) or Mono L+R
43254f38fcaSMauro Carvalho Chehab      - SAP
43354f38fcaSMauro Carvalho Chehab      - L+R/SAP (preferred) or L/R or L+R/L+R
43454f38fcaSMauro Carvalho Chehab    * - ``LANG1 | LANG2``
43554f38fcaSMauro Carvalho Chehab      - Language 1
43654f38fcaSMauro Carvalho Chehab      - Lang1/Lang2 (deprecated\ [#f2]_) or Lang1/Lang1
43754f38fcaSMauro Carvalho Chehab      - Language 1
43854f38fcaSMauro Carvalho Chehab      - Language 2
43954f38fcaSMauro Carvalho Chehab      - Lang1/Lang2 (preferred) or Lang1/Lang1
44054f38fcaSMauro Carvalho Chehab
44154f38fcaSMauro Carvalho Chehab.. raw:: latex
44254f38fcaSMauro Carvalho Chehab
44354f38fcaSMauro Carvalho Chehab    \normalsize
44454f38fcaSMauro Carvalho Chehab
44554f38fcaSMauro Carvalho ChehabReturn Value
44654f38fcaSMauro Carvalho Chehab============
44754f38fcaSMauro Carvalho Chehab
44854f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set
44954f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the
45054f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter.
45154f38fcaSMauro Carvalho Chehab
45254f38fcaSMauro Carvalho ChehabEINVAL
45354f38fcaSMauro Carvalho Chehab    The struct :c:type:`v4l2_tuner` ``index`` is out of
45454f38fcaSMauro Carvalho Chehab    bounds.
45554f38fcaSMauro Carvalho Chehab
45654f38fcaSMauro Carvalho Chehab.. [#f1]
45754f38fcaSMauro Carvalho Chehab   This mode has been added in Linux 2.6.17 and may not be supported by
45854f38fcaSMauro Carvalho Chehab   older drivers.
45954f38fcaSMauro Carvalho Chehab
46054f38fcaSMauro Carvalho Chehab.. [#f2]
46154f38fcaSMauro Carvalho Chehab   Playback of both languages in ``MODE_STEREO`` is deprecated. In the
46254f38fcaSMauro Carvalho Chehab   future drivers should produce only the primary language in this mode.
46354f38fcaSMauro Carvalho Chehab   Applications should request ``MODE_LANG1_LANG2`` to record both
46454f38fcaSMauro Carvalho Chehab   languages or a stereo signal.
465