]> asedeno.scripts.mit.edu Git - linux.git/blob - Documentation/DocBook/media/v4l/cec-ioc-adap-g-phys-addr.xml
Merge tag 'media/v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[linux.git] / Documentation / DocBook / media / v4l / cec-ioc-adap-g-phys-addr.xml
1 <refentry id="cec-ioc-adap-g-phys-addr">
2   <refmeta>
3     <refentrytitle>ioctl CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR</refentrytitle>
4     &manvol;
5   </refmeta>
6
7   <refnamediv>
8     <refname>CEC_ADAP_G_PHYS_ADDR</refname>
9     <refname>CEC_ADAP_S_PHYS_ADDR</refname>
10     <refpurpose>Get or set the physical address</refpurpose>
11   </refnamediv>
12
13   <refsynopsisdiv>
14     <funcsynopsis>
15       <funcprototype>
16         <funcdef>int <function>ioctl</function></funcdef>
17         <paramdef>int <parameter>fd</parameter></paramdef>
18         <paramdef>int <parameter>request</parameter></paramdef>
19         <paramdef>__u16 *<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>File descriptor returned by
32           <link linkend='cec-func-open'><function>open()</function></link>.</para>
33         </listitem>
34       </varlistentry>
35       <varlistentry>
36         <term><parameter>request</parameter></term>
37         <listitem>
38           <para>CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR</para>
39         </listitem>
40       </varlistentry>
41       <varlistentry>
42         <term><parameter>argp</parameter></term>
43         <listitem>
44           <para></para>
45         </listitem>
46       </varlistentry>
47     </variablelist>
48   </refsect1>
49
50   <refsect1>
51     <title>Description</title>
52
53     <para>
54       Note: this documents the proposed CEC API. This API is not yet finalized and
55       is currently only available as a staging kernel module.
56     </para>
57
58     <para>To query the current physical address applications call the
59 <constant>CEC_ADAP_G_PHYS_ADDR</constant> ioctl with a pointer to an __u16
60 where the driver stores the physical address.</para>
61
62     <para>To set a new physical address applications store the physical address in
63 an __u16 and call the <constant>CEC_ADAP_S_PHYS_ADDR</constant> ioctl with a
64 pointer to this integer. <constant>CEC_ADAP_S_PHYS_ADDR</constant> is only
65 available if <constant>CEC_CAP_PHYS_ADDR</constant> is set (&ENOTTY; will be returned
66 otherwise). <constant>CEC_ADAP_S_PHYS_ADDR</constant>
67 can only be called by a file handle in initiator mode (see &CEC-S-MODE;), if not
68 &EBUSY; will be returned.</para>
69
70     <para>The physical address is a 16-bit number where each group of 4 bits
71 represent a digit of the physical address a.b.c.d where the most significant
72 4 bits represent 'a'. The CEC root device (usually the TV) has address 0.0.0.0.
73 Every device that is hooked up to an input of the TV has address a.0.0.0 (where
74 'a' is &ge; 1), devices hooked up to those in turn have addresses a.b.0.0, etc.
75 So a topology of up to 5 devices deep is supported. The physical address a
76 device shall use is stored in the EDID of the sink.</para>
77
78 <para>For example, the EDID for each HDMI input of the TV will have a different
79 physical address of the form a.0.0.0 that the sources will read out and use as
80 their physical address.</para>
81   </refsect1>
82
83   <refsect1>
84     &return-value;
85   </refsect1>
86 </refentry>