diff --git a/Documentation/DocBook/v4l/dev-rds.xml b/Documentation/DocBook/v4l/dev-rds.xml
index 0869d701b1e58a62299c92c163e99300f8a92176..360d2737e64946d2ad9a33185ea4a3335962284c 100644
--- a/Documentation/DocBook/v4l/dev-rds.xml
+++ b/Documentation/DocBook/v4l/dev-rds.xml
@@ -3,15 +3,16 @@
The Radio Data System transmits supplementary
information in binary format, for example the station name or travel
information, on an inaudible audio subcarrier of a radio program. This
-interface is aimed at devices capable of receiving and decoding RDS
+interface is aimed at devices capable of receiving and/or transmitting RDS
information.For more information see the core RDS standard
and the RBDS standard .Note that the RBDS standard as is used in the USA is almost identical
-to the RDS standard. Any RDS decoder can also handle RBDS. Only some of the fields
-have slightly different meanings. See the RBDS standard for more information.
+to the RDS standard. Any RDS decoder/encoder can also handle RBDS. Only some of the
+fields have slightly different meanings. See the RBDS standard for more
+information.
The RBDS standard also specifies support for MMBS (Modified Mobile Search).
This is a proprietary format which seems to be discontinued. The RDS interface does not
@@ -21,16 +22,25 @@ be needed, then please contact the linux-media mailing list: &v4l-ml;.Querying Capabilities
- Devices supporting the RDS capturing API
-set the V4L2_CAP_RDS_CAPTURE flag in
+ Devices supporting the RDS capturing API set
+the V4L2_CAP_RDS_CAPTURE flag in
the capabilities field of &v4l2-capability;
-returned by the &VIDIOC-QUERYCAP; ioctl.
-Any tuner that supports RDS will set the
-V4L2_TUNER_CAP_RDS flag in the capability
-field of &v4l2-tuner;.
-Whether an RDS signal is present can be detected by looking at
-the rxsubchans field of &v4l2-tuner;: the
-V4L2_TUNER_SUB_RDS will be set if RDS data was detected.
+returned by the &VIDIOC-QUERYCAP; ioctl. Any tuner that supports RDS
+will set the V4L2_TUNER_CAP_RDS flag in
+the capability field of &v4l2-tuner;. If
+the driver only passes RDS blocks without interpreting the data
+the V4L2_TUNER_SUB_RDS_BLOCK_IO flag has to be
+set, see Reading RDS data.
+For future use the
+flag V4L2_TUNER_SUB_RDS_CONTROLS has also been
+defined. However, a driver for a radio tuner with this capability does
+not yet exist, so if you are planning to write such a driver you
+should discuss this on the linux-media mailing list: &v4l-ml;.
+
+ Whether an RDS signal is present can be detected by looking
+at the rxsubchans field of &v4l2-tuner;:
+the V4L2_TUNER_SUB_RDS will be set if RDS data
+was detected.Devices supporting the RDS output API
set the V4L2_CAP_RDS_OUTPUT flag in
@@ -40,16 +50,31 @@ Any modulator that supports RDS will set the
V4L2_TUNER_CAP_RDS flag in the capability
field of &v4l2-modulator;.
In order to enable the RDS transmission one must set the V4L2_TUNER_SUB_RDS
-bit in the txsubchans field of &v4l2-modulator;.
-
+bit in the txsubchans field of &v4l2-modulator;.
+If the driver only passes RDS blocks without interpreting the data
+the V4L2_TUNER_SUB_RDS_BLOCK_IO flag has to be set. If the
+tuner is capable of handling RDS entities like program identification codes and radio
+text, the flag V4L2_TUNER_SUB_RDS_CONTROLS should be set,
+see Writing RDS data and
+FM Transmitter Control Reference.
-
+ Reading RDS dataRDS data can be read from the radio device
-with the &func-read; function. The data is packed in groups of three bytes,
+with the &func-read; function. The data is packed in groups of three bytes.
+
+
+
+ Writing RDS data
+
+ RDS data can be written to the radio device
+with the &func-write; function. The data is packed in groups of three bytes,
as follows:
+
+
+
struct
v4l2_rds_data
@@ -111,48 +136,57 @@ as follows:
V4L2_RDS_BLOCK_MSK
+ 7Mask for bits 0-2 to get the block ID.V4L2_RDS_BLOCK_A
+ 0Block A.V4L2_RDS_BLOCK_B
+ 1Block B.V4L2_RDS_BLOCK_C
+ 2Block C.V4L2_RDS_BLOCK_D
+ 3Block D.V4L2_RDS_BLOCK_C_ALT
+ 4Block C'.V4L2_RDS_BLOCK_INVALID
+ read-only7An invalid block.V4L2_RDS_BLOCK_CORRECTED
+ read-only0x40A bit error was detected but corrected.V4L2_RDS_BLOCK_ERROR
+ read-only0x80
- An incorrectable error occurred.
+ An uncorrectable error occurred.
diff --git a/Documentation/DocBook/v4l/vidioc-s-hw-freq-seek.xml b/Documentation/DocBook/v4l/vidioc-s-hw-freq-seek.xml
index 14b3ec7ed75bc42b45ff4b7344bb45cea2b3c07a..c30dcc4232c0597faaa9f33a970eafe345cd5e75 100644
--- a/Documentation/DocBook/v4l/vidioc-s-hw-freq-seek.xml
+++ b/Documentation/DocBook/v4l/vidioc-s-hw-freq-seek.xml
@@ -51,7 +51,8 @@
Start a hardware frequency seek from the current frequency.
To do this applications initialize the tuner,
-type, seek_upward and
+type, seek_upward,
+spacing and
wrap_around fields, and zero out the
reserved array of a &v4l2-hw-freq-seek; and
call the VIDIOC_S_HW_FREQ_SEEK ioctl with a pointer
@@ -89,7 +90,12 @@ field and the &v4l2-tuner; index field.
__u32
- reserved[8]
+ spacing
+ If non-zero, defines the hardware seek resolution in Hz. The driver selects the nearest value that is supported by the device. If spacing is zero a reasonable default value is used.
+
+
+ __u32
+ reserved[7]Reserved for future extensions. Drivers and
applications must set the array to zero.