aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/DocBook
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2013-03-18 12:28:12 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-03-25 08:35:50 -0400
commitb5958dc329f0e4584511c5d8a177122e3d23a657 (patch)
tree0f2e10fbb02b189fe5eb9d6c1d069be84b4f951f /Documentation/DocBook
parent3b2d17b4ba77dce3a83c9e71dc8f086d7e743ec9 (diff)
[media] DocBook media: add VIDIOC_DBG_G_CHIP_NAME documentation
And update the other debug ioctls accordingly. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation/DocBook')
-rw-r--r--Documentation/DocBook/media/v4l/v4l2.xml4
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml14
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-name.xml234
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml42
4 files changed, 280 insertions, 14 deletions
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml
index dae009aa2440..ec3a0c7276df 100644
--- a/Documentation/DocBook/media/v4l/v4l2.xml
+++ b/Documentation/DocBook/media/v4l/v4l2.xml
@@ -156,8 +156,7 @@ applications. -->
156 <date>2012-12-03</date> 156 <date>2012-12-03</date>
157 <authorinitials>sa, sn</authorinitials> 157 <authorinitials>sa, sn</authorinitials>
158 <revremark>Added timestamp types to v4l2_buffer. 158 <revremark>Added timestamp types to v4l2_buffer.
159 Added <constant>V4L2_EVENT_CTRL_CH_RANGE</constant> control 159 Added V4L2_EVENT_CTRL_CH_RANGE control event changes flag.
160 event changes flag, see <xref linkend="changes-flags"/>.
161 </revremark> 160 </revremark>
162 </revision> 161 </revision>
163 162
@@ -549,6 +548,7 @@ and discussions on the V4L mailing list.</revremark>
549 &sub-create-bufs; 548 &sub-create-bufs;
550 &sub-cropcap; 549 &sub-cropcap;
551 &sub-dbg-g-chip-ident; 550 &sub-dbg-g-chip-ident;
551 &sub-dbg-g-chip-name;
552 &sub-dbg-g-register; 552 &sub-dbg-g-register;
553 &sub-decoder-cmd; 553 &sub-decoder-cmd;
554 &sub-dqevent; 554 &sub-dqevent;
diff --git a/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml
index 4ecd966808de..82e43c6c72b8 100644
--- a/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-ident.xml
@@ -200,10 +200,10 @@ the values from <xref linkend="chip-ids" />.</entry>
200 &cs-def; 200 &cs-def;
201 <tbody valign="top"> 201 <tbody valign="top">
202 <row> 202 <row>
203 <entry><constant>V4L2_CHIP_MATCH_HOST</constant></entry> 203 <entry><constant>V4L2_CHIP_MATCH_BRIDGE</constant></entry>
204 <entry>0</entry> 204 <entry>0</entry>
205 <entry>Match the nth chip on the card, zero for the 205 <entry>Match the nth chip on the card, zero for the
206 host chip. Does not match &i2c; chips.</entry> 206 bridge chip. Does not match sub-devices.</entry>
207 </row> 207 </row>
208 <row> 208 <row>
209 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry> 209 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
@@ -220,6 +220,16 @@ the values from <xref linkend="chip-ids" />.</entry>
220 <entry>3</entry> 220 <entry>3</entry>
221 <entry>Match the nth anciliary AC97 chip.</entry> 221 <entry>Match the nth anciliary AC97 chip.</entry>
222 </row> 222 </row>
223 <row>
224 <entry><constant>V4L2_CHIP_MATCH_SUBDEV_NAME</constant></entry>
225 <entry>4</entry>
226 <entry>Match the sub-device by name. Can't be used with this ioctl.</entry>
227 </row>
228 <row>
229 <entry><constant>V4L2_CHIP_MATCH_SUBDEV_IDX</constant></entry>
230 <entry>5</entry>
231 <entry>Match the nth sub-device. Can't be used with this ioctl.</entry>
232 </row>
223 </tbody> 233 </tbody>
224 </tgroup> 234 </tgroup>
225 </table> 235 </table>
diff --git a/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-name.xml b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-name.xml
new file mode 100644
index 000000000000..4921346fabd7
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-name.xml
@@ -0,0 +1,234 @@
1<refentry id="vidioc-dbg-g-chip-name">
2 <refmeta>
3 <refentrytitle>ioctl VIDIOC_DBG_G_CHIP_NAME</refentrytitle>
4 &manvol;
5 </refmeta>
6
7 <refnamediv>
8 <refname>VIDIOC_DBG_G_CHIP_NAME</refname>
9 <refpurpose>Identify the chips on a TV card</refpurpose>
10 </refnamediv>
11
12 <refsynopsisdiv>
13 <funcsynopsis>
14 <funcprototype>
15 <funcdef>int <function>ioctl</function></funcdef>
16 <paramdef>int <parameter>fd</parameter></paramdef>
17 <paramdef>int <parameter>request</parameter></paramdef>
18 <paramdef>struct v4l2_dbg_chip_name
19*<parameter>argp</parameter></paramdef>
20 </funcprototype>
21 </funcsynopsis>
22 </refsynopsisdiv>
23
24 <refsect1>
25 <title>Arguments</title>
26
27 <variablelist>
28 <varlistentry>
29 <term><parameter>fd</parameter></term>
30 <listitem>
31 <para>&fd;</para>
32 </listitem>
33 </varlistentry>
34 <varlistentry>
35 <term><parameter>request</parameter></term>
36 <listitem>
37 <para>VIDIOC_DBG_G_CHIP_NAME</para>
38 </listitem>
39 </varlistentry>
40 <varlistentry>
41 <term><parameter>argp</parameter></term>
42 <listitem>
43 <para></para>
44 </listitem>
45 </varlistentry>
46 </variablelist>
47 </refsect1>
48
49 <refsect1>
50 <title>Description</title>
51
52 <note>
53 <title>Experimental</title>
54
55 <para>This is an <link
56linkend="experimental">experimental</link> interface and may change in
57the future.</para>
58 </note>
59
60 <para>For driver debugging purposes this ioctl allows test
61applications to query the driver about the chips present on the TV
62card. Regular applications must not use it. When you found a chip
63specific bug, please contact the linux-media mailing list (&v4l-ml;)
64so it can be fixed.</para>
65
66 <para>To query the driver applications must initialize the
67<structfield>match.type</structfield> and
68<structfield>match.addr</structfield> or <structfield>match.name</structfield>
69fields of a &v4l2-dbg-chip-name;
70and call <constant>VIDIOC_DBG_G_CHIP_NAME</constant> with a pointer to
71this structure. On success the driver stores information about the
72selected chip in the <structfield>name</structfield> and
73<structfield>flags</structfield> fields. On failure the structure
74remains unchanged.</para>
75
76 <para>When <structfield>match.type</structfield> is
77<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
78<structfield>match.addr</structfield> selects the nth bridge 'chip'
79on the TV card. You can enumerate all chips by starting at zero and
80incrementing <structfield>match.addr</structfield> by one until
81<constant>VIDIOC_DBG_G_CHIP_NAME</constant> fails with an &EINVAL;.
82The number zero always selects the bridge chip itself, &eg; the chip
83connected to the PCI or USB bus. Non-zero numbers identify specific
84parts of the bridge chip such as an AC97 register block.</para>
85
86 <para>When <structfield>match.type</structfield> is
87<constant>V4L2_CHIP_MATCH_SUBDEV_NAME</constant>,
88<structfield>match.name</structfield> contains the name of a sub-device.
89For instance
90<constant>"saa7127 6-0044"</constant> will match the saa7127 sub-device
91at the given i2c bus. This match type is not very useful for this ioctl
92and is here only for consistency.
93</para>
94
95 <para>When <structfield>match.type</structfield> is
96<constant>V4L2_CHIP_MATCH_SUBDEV_IDX</constant>,
97<structfield>match.addr</structfield> selects the nth sub-device. This
98allows you to enumerate over all sub-devices.</para>
99
100 <para>On success, the <structfield>name</structfield> field will
101contain a chip name and the <structfield>flags</structfield> field will
102contain <constant>V4L2_CHIP_FL_READABLE</constant> if the driver supports
103reading registers from the device or <constant>V4L2_CHIP_FL_WRITABLE</constant>
104if the driver supports writing registers to the device.</para>
105
106 <para>We recommended the <application>v4l2-dbg</application>
107utility over calling this ioctl directly. It is available from the
108LinuxTV v4l-dvb repository; see <ulink
109url="http://linuxtv.org/repo/">http://linuxtv.org/repo/</ulink> for
110access instructions.</para>
111
112 <!-- Note for convenience vidioc-dbg-g-register.sgml
113 contains a duplicate of this table. -->
114 <table pgwide="1" frame="none" id="name-v4l2-dbg-match">
115 <title>struct <structname>v4l2_dbg_match</structname></title>
116 <tgroup cols="4">
117 &cs-ustr;
118 <tbody valign="top">
119 <row>
120 <entry>__u32</entry>
121 <entry><structfield>type</structfield></entry>
122 <entry>See <xref linkend="name-chip-match-types" /> for a list of
123possible types.</entry>
124 </row>
125 <row>
126 <entry>union</entry>
127 <entry>(anonymous)</entry>
128 </row>
129 <row>
130 <entry></entry>
131 <entry>__u32</entry>
132 <entry><structfield>addr</structfield></entry>
133 <entry>Match a chip by this number, interpreted according
134to the <structfield>type</structfield> field.</entry>
135 </row>
136 <row>
137 <entry></entry>
138 <entry>char</entry>
139 <entry><structfield>name[32]</structfield></entry>
140 <entry>Match a chip by this name, interpreted according
141to the <structfield>type</structfield> field.</entry>
142 </row>
143 </tbody>
144 </tgroup>
145 </table>
146
147 <table pgwide="1" frame="none" id="v4l2-dbg-chip-name">
148 <title>struct <structname>v4l2_dbg_chip_name</structname></title>
149 <tgroup cols="3">
150 &cs-str;
151 <tbody valign="top">
152 <row>
153 <entry>struct v4l2_dbg_match</entry>
154 <entry><structfield>match</structfield></entry>
155 <entry>How to match the chip, see <xref linkend="name-v4l2-dbg-match" />.</entry>
156 </row>
157 <row>
158 <entry>char</entry>
159 <entry><structfield>name[32]</structfield></entry>
160 <entry>The name of the chip.</entry>
161 </row>
162 <row>
163 <entry>__u32</entry>
164 <entry><structfield>flags</structfield></entry>
165 <entry>Set by the driver. If <constant>V4L2_CHIP_FL_READABLE</constant>
166is set, then the driver supports reading registers from the device. If
167<constant>V4L2_CHIP_FL_WRITABLE</constant> is set, then it supports writing registers.</entry>
168 </row>
169 <row>
170 <entry>__u32</entry>
171 <entry><structfield>reserved[8]</structfield></entry>
172 <entry>Reserved fields, both application and driver must set these to 0.</entry>
173 </row>
174 </tbody>
175 </tgroup>
176 </table>
177
178 <!-- Note for convenience vidioc-dbg-g-register.sgml
179 contains a duplicate of this table. -->
180 <table pgwide="1" frame="none" id="name-chip-match-types">
181 <title>Chip Match Types</title>
182 <tgroup cols="3">
183 &cs-def;
184 <tbody valign="top">
185 <row>
186 <entry><constant>V4L2_CHIP_MATCH_BRIDGE</constant></entry>
187 <entry>0</entry>
188 <entry>Match the nth chip on the card, zero for the
189 bridge chip. Does not match sub-devices.</entry>
190 </row>
191 <row>
192 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
193 <entry>1</entry>
194 <entry>Match an &i2c; chip by its driver name. Can't be used with this ioctl.</entry>
195 </row>
196 <row>
197 <entry><constant>V4L2_CHIP_MATCH_I2C_ADDR</constant></entry>
198 <entry>2</entry>
199 <entry>Match a chip by its 7 bit &i2c; bus address. Can't be used with this ioctl.</entry>
200 </row>
201 <row>
202 <entry><constant>V4L2_CHIP_MATCH_AC97</constant></entry>
203 <entry>3</entry>
204 <entry>Match the nth anciliary AC97 chip. Can't be used with this ioctl.</entry>
205 </row>
206 <row>
207 <entry><constant>V4L2_CHIP_MATCH_SUBDEV_NAME</constant></entry>
208 <entry>4</entry>
209 <entry>Match the sub-device by name.</entry>
210 </row>
211 <row>
212 <entry><constant>V4L2_CHIP_MATCH_SUBDEV_IDX</constant></entry>
213 <entry>5</entry>
214 <entry>Match the nth sub-device.</entry>
215 </row>
216 </tbody>
217 </tgroup>
218 </table>
219 </refsect1>
220
221 <refsect1>
222 &return-value;
223
224 <variablelist>
225 <varlistentry>
226 <term><errorcode>EINVAL</errorcode></term>
227 <listitem>
228 <para>The <structfield>match_type</structfield> is invalid or
229no device could be matched.</para>
230 </listitem>
231 </varlistentry>
232 </variablelist>
233 </refsect1>
234</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml b/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml
index a44aebc7997a..3082b4149dbe 100644
--- a/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml
@@ -87,7 +87,7 @@ written into the register.</para>
87 87
88 <para>To read a register applications must initialize the 88 <para>To read a register applications must initialize the
89<structfield>match.type</structfield>, 89<structfield>match.type</structfield>,
90<structfield>match.chip</structfield> or <structfield>match.name</structfield> and 90<structfield>match.addr</structfield> or <structfield>match.name</structfield> and
91<structfield>reg</structfield> fields, and call 91<structfield>reg</structfield> fields, and call
92<constant>VIDIOC_DBG_G_REGISTER</constant> with a pointer to this 92<constant>VIDIOC_DBG_G_REGISTER</constant> with a pointer to this
93structure. On success the driver stores the register value in the 93structure. On success the driver stores the register value in the
@@ -95,11 +95,11 @@ structure. On success the driver stores the register value in the
95unchanged.</para> 95unchanged.</para>
96 96
97 <para>When <structfield>match.type</structfield> is 97 <para>When <structfield>match.type</structfield> is
98<constant>V4L2_CHIP_MATCH_HOST</constant>, 98<constant>V4L2_CHIP_MATCH_BRIDGE</constant>,
99<structfield>match.addr</structfield> selects the nth non-&i2c; chip 99<structfield>match.addr</structfield> selects the nth non-sub-device chip
100on the TV card. The number zero always selects the host chip, &eg; the 100on the TV card. The number zero always selects the host chip, &eg; the
101chip connected to the PCI or USB bus. You can find out which chips are 101chip connected to the PCI or USB bus. You can find out which chips are
102present with the &VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para> 102present with the &VIDIOC-DBG-G-CHIP-NAME; ioctl.</para>
103 103
104 <para>When <structfield>match.type</structfield> is 104 <para>When <structfield>match.type</structfield> is
105<constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>, 105<constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant>,
@@ -109,7 +109,7 @@ For instance
109supported by the saa7127 driver, regardless of its &i2c; bus address. 109supported by the saa7127 driver, regardless of its &i2c; bus address.
110When multiple chips supported by the same driver are present, the 110When multiple chips supported by the same driver are present, the
111effect of these ioctls is undefined. Again with the 111effect of these ioctls is undefined. Again with the
112&VIDIOC-DBG-G-CHIP-IDENT; ioctl you can find out which &i2c; chips are 112&VIDIOC-DBG-G-CHIP-NAME; ioctl you can find out which &i2c; chips are
113present.</para> 113present.</para>
114 114
115 <para>When <structfield>match.type</structfield> is 115 <para>When <structfield>match.type</structfield> is
@@ -122,19 +122,31 @@ bus address.</para>
122<structfield>match.addr</structfield> selects the nth AC97 chip 122<structfield>match.addr</structfield> selects the nth AC97 chip
123on the TV card.</para> 123on the TV card.</para>
124 124
125 <para>When <structfield>match.type</structfield> is
126<constant>V4L2_CHIP_MATCH_SUBDEV_NAME</constant>,
127<structfield>match.name</structfield> contains the sub-device name.
128For instance
129<constant>"saa7127 6-0044"</constant> will match this specific saa7127
130sub-device. Again with the &VIDIOC-DBG-G-CHIP-NAME; ioctl you can find
131out which sub-devices are present.</para>
132
133 <para>When <structfield>match.type</structfield> is
134<constant>V4L2_CHIP_MATCH_SUBDEV_IDX</constant>,
135<structfield>match.addr</structfield> selects the nth sub-device.</para>
136
125 <note> 137 <note>
126 <title>Success not guaranteed</title> 138 <title>Success not guaranteed</title>
127 139
128 <para>Due to a flaw in the Linux &i2c; bus driver these ioctls may 140 <para>Due to a flaw in the Linux &i2c; bus driver these ioctls may
129return successfully without actually reading or writing a register. To 141return successfully without actually reading or writing a register. To
130catch the most likely failure we recommend a &VIDIOC-DBG-G-CHIP-IDENT; 142catch the most likely failure we recommend a &VIDIOC-DBG-G-CHIP-NAME;
131call confirming the presence of the selected &i2c; chip.</para> 143call confirming the presence of the selected &i2c; chip.</para>
132 </note> 144 </note>
133 145
134 <para>These ioctls are optional, not all drivers may support them. 146 <para>These ioctls are optional, not all drivers may support them.
135However when a driver supports these ioctls it must also support 147However when a driver supports these ioctls it must also support
136&VIDIOC-DBG-G-CHIP-IDENT;. Conversely it may support 148&VIDIOC-DBG-G-CHIP-NAME;. Conversely it may support
137<constant>VIDIOC_DBG_G_CHIP_IDENT</constant> but not these ioctls.</para> 149<constant>VIDIOC_DBG_G_CHIP_NAME</constant> but not these ioctls.</para>
138 150
139 <para><constant>VIDIOC_DBG_G_REGISTER</constant> and 151 <para><constant>VIDIOC_DBG_G_REGISTER</constant> and
140<constant>VIDIOC_DBG_S_REGISTER</constant> were introduced in Linux 152<constant>VIDIOC_DBG_S_REGISTER</constant> were introduced in Linux
@@ -217,10 +229,10 @@ register.</entry>
217 &cs-def; 229 &cs-def;
218 <tbody valign="top"> 230 <tbody valign="top">
219 <row> 231 <row>
220 <entry><constant>V4L2_CHIP_MATCH_HOST</constant></entry> 232 <entry><constant>V4L2_CHIP_MATCH_BRIDGE</constant></entry>
221 <entry>0</entry> 233 <entry>0</entry>
222 <entry>Match the nth chip on the card, zero for the 234 <entry>Match the nth chip on the card, zero for the
223 host chip. Does not match &i2c; chips.</entry> 235 bridge chip. Does not match sub-devices.</entry>
224 </row> 236 </row>
225 <row> 237 <row>
226 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry> 238 <entry><constant>V4L2_CHIP_MATCH_I2C_DRIVER</constant></entry>
@@ -237,6 +249,16 @@ register.</entry>
237 <entry>3</entry> 249 <entry>3</entry>
238 <entry>Match the nth anciliary AC97 chip.</entry> 250 <entry>Match the nth anciliary AC97 chip.</entry>
239 </row> 251 </row>
252 <row>
253 <entry><constant>V4L2_CHIP_MATCH_SUBDEV_NAME</constant></entry>
254 <entry>4</entry>
255 <entry>Match the sub-device by name.</entry>
256 </row>
257 <row>
258 <entry><constant>V4L2_CHIP_MATCH_SUBDEV_IDX</constant></entry>
259 <entry>5</entry>
260 <entry>Match the nth sub-device.</entry>
261 </row>
240 </tbody> 262 </tbody>
241 </tgroup> 263 </tgroup>
242 </table> 264 </table>