1 .. -*- coding: utf-8; mode: rst -*-
3 .. _CEC_ADAP_PHYS_ADDR:
4 .. _CEC_ADAP_G_PHYS_ADDR:
5 .. _CEC_ADAP_S_PHYS_ADDR:
7 ************************************************
8 ioctl CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR
9 ************************************************
14 CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR - Get or set the physical address
20 .. cpp:function:: int ioctl( int fd, int request, __u16 *argp )
26 File descriptor returned by :ref:`open() <cec-func-open>`.
29 CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR
37 .. note:: This documents the proposed CEC API. This API is not yet finalized
38 and is currently only available as a staging kernel module.
40 To query the current physical address applications call the
41 :ref:`CEC_ADAP_G_PHYS_ADDR` ioctl with a pointer to an __u16 where the
42 driver stores the physical address.
44 To set a new physical address applications store the physical address in
45 an __u16 and call the :ref:`CEC_ADAP_S_PHYS_ADDR` ioctl with a pointer to
46 this integer. :ref:`CEC_ADAP_S_PHYS_ADDR` is only available if
47 ``CEC_CAP_PHYS_ADDR`` is set (ENOTTY error code will be returned
48 otherwise). :ref:`CEC_ADAP_S_PHYS_ADDR` can only be called by a file handle
49 in initiator mode (see :ref:`CEC_S_MODE`), if not
50 EBUSY error code will be returned.
52 The physical address is a 16-bit number where each group of 4 bits
53 represent a digit of the physical address a.b.c.d where the most
54 significant 4 bits represent 'a'. The CEC root device (usually the TV)
55 has address 0.0.0.0. Every device that is hooked up to an input of the
56 TV has address a.0.0.0 (where 'a' is ≥ 1), devices hooked up to those in
57 turn have addresses a.b.0.0, etc. So a topology of up to 5 devices deep
58 is supported. The physical address a device shall use is stored in the
61 For example, the EDID for each HDMI input of the TV will have a
62 different physical address of the form a.0.0.0 that the sources will
63 read out and use as their physical address.
69 On success 0 is returned, on error -1 and the ``errno`` variable is set
70 appropriately. The generic error codes are described at the
71 :ref:`Generic Error Codes <gen-errors>` chapter.