154f38fcaSMauro Carvalho Chehab.. Permission is granted to copy, distribute and/or modify this
254f38fcaSMauro Carvalho Chehab.. document under the terms of the GNU Free Documentation License,
354f38fcaSMauro Carvalho Chehab.. Version 1.1 or any later version published by the Free Software
454f38fcaSMauro Carvalho Chehab.. Foundation, with no Invariant Sections, no Front-Cover Texts
554f38fcaSMauro Carvalho Chehab.. and no Back-Cover Texts. A copy of the license is included at
654f38fcaSMauro Carvalho Chehab.. Documentation/userspace-api/media/fdl-appendix.rst.
754f38fcaSMauro Carvalho Chehab..
854f38fcaSMauro Carvalho Chehab.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
954f38fcaSMauro Carvalho Chehab
1054f38fcaSMauro Carvalho Chehab.. _CEC_ADAP_LOG_ADDRS:
1154f38fcaSMauro Carvalho Chehab.. _CEC_ADAP_G_LOG_ADDRS:
1254f38fcaSMauro Carvalho Chehab.. _CEC_ADAP_S_LOG_ADDRS:
1354f38fcaSMauro Carvalho Chehab
1454f38fcaSMauro Carvalho Chehab****************************************************
1554f38fcaSMauro Carvalho Chehabioctls CEC_ADAP_G_LOG_ADDRS and CEC_ADAP_S_LOG_ADDRS
1654f38fcaSMauro Carvalho Chehab****************************************************
1754f38fcaSMauro Carvalho Chehab
1854f38fcaSMauro Carvalho ChehabName
1954f38fcaSMauro Carvalho Chehab====
2054f38fcaSMauro Carvalho Chehab
2154f38fcaSMauro Carvalho ChehabCEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS - Get or set the logical addresses
2254f38fcaSMauro Carvalho Chehab
2354f38fcaSMauro Carvalho Chehab
2454f38fcaSMauro Carvalho ChehabSynopsis
2554f38fcaSMauro Carvalho Chehab========
2654f38fcaSMauro Carvalho Chehab
2754f38fcaSMauro Carvalho Chehab.. c:function:: int ioctl( int fd, CEC_ADAP_G_LOG_ADDRS, struct cec_log_addrs *argp )
2854f38fcaSMauro Carvalho Chehab   :name: CEC_ADAP_G_LOG_ADDRS
2954f38fcaSMauro Carvalho Chehab
3054f38fcaSMauro Carvalho Chehab.. c:function:: int ioctl( int fd, CEC_ADAP_S_LOG_ADDRS, struct cec_log_addrs *argp )
3154f38fcaSMauro Carvalho Chehab   :name: CEC_ADAP_S_LOG_ADDRS
3254f38fcaSMauro Carvalho Chehab
3354f38fcaSMauro Carvalho ChehabArguments
3454f38fcaSMauro Carvalho Chehab=========
3554f38fcaSMauro Carvalho Chehab
3654f38fcaSMauro Carvalho Chehab``fd``
3754f38fcaSMauro Carvalho Chehab    File descriptor returned by :c:func:`open() <cec-open>`.
3854f38fcaSMauro Carvalho Chehab
3954f38fcaSMauro Carvalho Chehab``argp``
4054f38fcaSMauro Carvalho Chehab    Pointer to struct :c:type:`cec_log_addrs`.
4154f38fcaSMauro Carvalho Chehab
4254f38fcaSMauro Carvalho ChehabDescription
4354f38fcaSMauro Carvalho Chehab===========
4454f38fcaSMauro Carvalho Chehab
4554f38fcaSMauro Carvalho ChehabTo query the current CEC logical addresses, applications call
4654f38fcaSMauro Carvalho Chehab:ref:`ioctl CEC_ADAP_G_LOG_ADDRS <CEC_ADAP_G_LOG_ADDRS>` with a pointer to a
4754f38fcaSMauro Carvalho Chehabstruct :c:type:`cec_log_addrs` where the driver stores the logical addresses.
4854f38fcaSMauro Carvalho Chehab
4954f38fcaSMauro Carvalho ChehabTo set new logical addresses, applications fill in
5054f38fcaSMauro Carvalho Chehabstruct :c:type:`cec_log_addrs` and call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
5154f38fcaSMauro Carvalho Chehabwith a pointer to this struct. The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
5254f38fcaSMauro Carvalho Chehabis only available if ``CEC_CAP_LOG_ADDRS`` is set (the ``ENOTTY`` error code is
5354f38fcaSMauro Carvalho Chehabreturned otherwise). The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
5454f38fcaSMauro Carvalho Chehabcan only be called by a file descriptor in initiator mode (see :ref:`CEC_S_MODE`), if not
5554f38fcaSMauro Carvalho Chehabthe ``EBUSY`` error code will be returned.
5654f38fcaSMauro Carvalho Chehab
5754f38fcaSMauro Carvalho ChehabTo clear existing logical addresses set ``num_log_addrs`` to 0. All other fields
5854f38fcaSMauro Carvalho Chehabwill be ignored in that case. The adapter will go to the unconfigured state and the
5954f38fcaSMauro Carvalho Chehab``cec_version``, ``vendor_id`` and ``osd_name`` fields are all reset to their default
6054f38fcaSMauro Carvalho Chehabvalues (CEC version 2.0, no vendor ID and an empty OSD name).
6154f38fcaSMauro Carvalho Chehab
6254f38fcaSMauro Carvalho ChehabIf the physical address is valid (see :ref:`ioctl CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>`),
6354f38fcaSMauro Carvalho Chehabthen this ioctl will block until all requested logical
6454f38fcaSMauro Carvalho Chehabaddresses have been claimed. If the file descriptor is in non-blocking mode then it will
6554f38fcaSMauro Carvalho Chehabnot wait for the logical addresses to be claimed, instead it just returns 0.
6654f38fcaSMauro Carvalho Chehab
6754f38fcaSMauro Carvalho ChehabA :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>` event is sent when the
6854f38fcaSMauro Carvalho Chehablogical addresses are claimed or cleared.
6954f38fcaSMauro Carvalho Chehab
7054f38fcaSMauro Carvalho ChehabAttempting to call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` when
7154f38fcaSMauro Carvalho Chehablogical address types are already defined will return with error ``EBUSY``.
7254f38fcaSMauro Carvalho Chehab
7354f38fcaSMauro Carvalho Chehab.. c:type:: cec_log_addrs
7454f38fcaSMauro Carvalho Chehab
7554f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{1.0cm}|p{8.0cm}|p{7.5cm}|
7654f38fcaSMauro Carvalho Chehab
7754f38fcaSMauro Carvalho Chehab.. cssclass:: longtable
7854f38fcaSMauro Carvalho Chehab
7954f38fcaSMauro Carvalho Chehab.. flat-table:: struct cec_log_addrs
8054f38fcaSMauro Carvalho Chehab    :header-rows:  0
8154f38fcaSMauro Carvalho Chehab    :stub-columns: 0
8254f38fcaSMauro Carvalho Chehab    :widths:       1 1 16
8354f38fcaSMauro Carvalho Chehab
8454f38fcaSMauro Carvalho Chehab    * - __u8
8554f38fcaSMauro Carvalho Chehab      - ``log_addr[CEC_MAX_LOG_ADDRS]``
8654f38fcaSMauro Carvalho Chehab      - The actual logical addresses that were claimed. This is set by the
8754f38fcaSMauro Carvalho Chehab	driver. If no logical address could be claimed, then it is set to
8854f38fcaSMauro Carvalho Chehab	``CEC_LOG_ADDR_INVALID``. If this adapter is Unregistered, then
8954f38fcaSMauro Carvalho Chehab	``log_addr[0]`` is set to 0xf and all others to
9054f38fcaSMauro Carvalho Chehab	``CEC_LOG_ADDR_INVALID``.
9154f38fcaSMauro Carvalho Chehab    * - __u16
9254f38fcaSMauro Carvalho Chehab      - ``log_addr_mask``
9354f38fcaSMauro Carvalho Chehab      - The bitmask of all logical addresses this adapter has claimed. If
9454f38fcaSMauro Carvalho Chehab	this adapter is Unregistered then ``log_addr_mask`` sets bit 15
9554f38fcaSMauro Carvalho Chehab	and clears all other bits. If this adapter is not configured at
9654f38fcaSMauro Carvalho Chehab	all, then ``log_addr_mask`` is set to 0. Set by the driver.
9754f38fcaSMauro Carvalho Chehab    * - __u8
9854f38fcaSMauro Carvalho Chehab      - ``cec_version``
9954f38fcaSMauro Carvalho Chehab      - The CEC version that this adapter shall use. See
10054f38fcaSMauro Carvalho Chehab	:ref:`cec-versions`. Used to implement the
10154f38fcaSMauro Carvalho Chehab	``CEC_MSG_CEC_VERSION`` and ``CEC_MSG_REPORT_FEATURES`` messages.
10254f38fcaSMauro Carvalho Chehab	Note that :ref:`CEC_OP_CEC_VERSION_1_3A <CEC-OP-CEC-VERSION-1-3A>` is not allowed by the CEC
10354f38fcaSMauro Carvalho Chehab	framework.
10454f38fcaSMauro Carvalho Chehab    * - __u8
10554f38fcaSMauro Carvalho Chehab      - ``num_log_addrs``
10654f38fcaSMauro Carvalho Chehab      - Number of logical addresses to set up. Must be ≤
10754f38fcaSMauro Carvalho Chehab	``available_log_addrs`` as returned by
10854f38fcaSMauro Carvalho Chehab	:ref:`CEC_ADAP_G_CAPS`. All arrays in
10954f38fcaSMauro Carvalho Chehab	this structure are only filled up to index
11054f38fcaSMauro Carvalho Chehab	``available_log_addrs``-1. The remaining array elements will be
11154f38fcaSMauro Carvalho Chehab	ignored. Note that the CEC 2.0 standard allows for a maximum of 2
11254f38fcaSMauro Carvalho Chehab	logical addresses, although some hardware has support for more.
11354f38fcaSMauro Carvalho Chehab	``CEC_MAX_LOG_ADDRS`` is 4. The driver will return the actual
11454f38fcaSMauro Carvalho Chehab	number of logical addresses it could claim, which may be less than
11554f38fcaSMauro Carvalho Chehab	what was requested. If this field is set to 0, then the CEC
11654f38fcaSMauro Carvalho Chehab	adapter shall clear all claimed logical addresses and all other
11754f38fcaSMauro Carvalho Chehab	fields will be ignored.
11854f38fcaSMauro Carvalho Chehab    * - __u32
11954f38fcaSMauro Carvalho Chehab      - ``vendor_id``
12054f38fcaSMauro Carvalho Chehab      - The vendor ID is a 24-bit number that identifies the specific
12154f38fcaSMauro Carvalho Chehab	vendor or entity. Based on this ID vendor specific commands may be
12254f38fcaSMauro Carvalho Chehab	defined. If you do not want a vendor ID then set it to
12354f38fcaSMauro Carvalho Chehab	``CEC_VENDOR_ID_NONE``.
12454f38fcaSMauro Carvalho Chehab    * - __u32
12554f38fcaSMauro Carvalho Chehab      - ``flags``
12654f38fcaSMauro Carvalho Chehab      - Flags. See :ref:`cec-log-addrs-flags` for a list of available flags.
12754f38fcaSMauro Carvalho Chehab    * - char
12854f38fcaSMauro Carvalho Chehab      - ``osd_name[15]``
12954f38fcaSMauro Carvalho Chehab      - The On-Screen Display name as is returned by the
13054f38fcaSMauro Carvalho Chehab	``CEC_MSG_SET_OSD_NAME`` message.
13154f38fcaSMauro Carvalho Chehab    * - __u8
13254f38fcaSMauro Carvalho Chehab      - ``primary_device_type[CEC_MAX_LOG_ADDRS]``
13354f38fcaSMauro Carvalho Chehab      - Primary device type for each logical address. See
13454f38fcaSMauro Carvalho Chehab	:ref:`cec-prim-dev-types` for possible types.
13554f38fcaSMauro Carvalho Chehab    * - __u8
13654f38fcaSMauro Carvalho Chehab      - ``log_addr_type[CEC_MAX_LOG_ADDRS]``
13754f38fcaSMauro Carvalho Chehab      - Logical address types. See :ref:`cec-log-addr-types` for
13854f38fcaSMauro Carvalho Chehab	possible types. The driver will update this with the actual
13954f38fcaSMauro Carvalho Chehab	logical address type that it claimed (e.g. it may have to fallback
14054f38fcaSMauro Carvalho Chehab	to :ref:`CEC_LOG_ADDR_TYPE_UNREGISTERED <CEC-LOG-ADDR-TYPE-UNREGISTERED>`).
14154f38fcaSMauro Carvalho Chehab    * - __u8
14254f38fcaSMauro Carvalho Chehab      - ``all_device_types[CEC_MAX_LOG_ADDRS]``
14354f38fcaSMauro Carvalho Chehab      - CEC 2.0 specific: the bit mask of all device types. See
14454f38fcaSMauro Carvalho Chehab	:ref:`cec-all-dev-types-flags`. It is used in the CEC 2.0
14554f38fcaSMauro Carvalho Chehab	``CEC_MSG_REPORT_FEATURES`` message. For CEC 1.4 you can either leave
14654f38fcaSMauro Carvalho Chehab	this field to 0, or fill it in according to the CEC 2.0 guidelines to
14754f38fcaSMauro Carvalho Chehab	give the CEC framework more information about the device type, even
14854f38fcaSMauro Carvalho Chehab	though the framework won't use it directly in the CEC message.
14954f38fcaSMauro Carvalho Chehab    * - __u8
15054f38fcaSMauro Carvalho Chehab      - ``features[CEC_MAX_LOG_ADDRS][12]``
15154f38fcaSMauro Carvalho Chehab      - Features for each logical address. It is used in the CEC 2.0
15254f38fcaSMauro Carvalho Chehab	``CEC_MSG_REPORT_FEATURES`` message. The 12 bytes include both the
15354f38fcaSMauro Carvalho Chehab	RC Profile and the Device Features. For CEC 1.4 you can either leave
15454f38fcaSMauro Carvalho Chehab        this field to all 0, or fill it in according to the CEC 2.0 guidelines to
15554f38fcaSMauro Carvalho Chehab        give the CEC framework more information about the device type, even
15654f38fcaSMauro Carvalho Chehab        though the framework won't use it directly in the CEC message.
15754f38fcaSMauro Carvalho Chehab
15854f38fcaSMauro Carvalho Chehab
15954f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{7.8cm}|p{1.0cm}|p{8.7cm}|
16054f38fcaSMauro Carvalho Chehab
16154f38fcaSMauro Carvalho Chehab.. _cec-log-addrs-flags:
16254f38fcaSMauro Carvalho Chehab
16354f38fcaSMauro Carvalho Chehab.. flat-table:: Flags for struct cec_log_addrs
16454f38fcaSMauro Carvalho Chehab    :header-rows:  0
16554f38fcaSMauro Carvalho Chehab    :stub-columns: 0
16654f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
16754f38fcaSMauro Carvalho Chehab
16854f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDRS-FL-ALLOW-UNREG-FALLBACK`:
16954f38fcaSMauro Carvalho Chehab
17054f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDRS_FL_ALLOW_UNREG_FALLBACK``
17154f38fcaSMauro Carvalho Chehab      - 1
17254f38fcaSMauro Carvalho Chehab      - By default if no logical address of the requested type can be claimed, then
17354f38fcaSMauro Carvalho Chehab	it will go back to the unconfigured state. If this flag is set, then it will
17454f38fcaSMauro Carvalho Chehab	fallback to the Unregistered logical address. Note that if the Unregistered
17554f38fcaSMauro Carvalho Chehab	logical address was explicitly requested, then this flag has no effect.
17654f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDRS-FL-ALLOW-RC-PASSTHRU`:
17754f38fcaSMauro Carvalho Chehab
17854f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU``
17954f38fcaSMauro Carvalho Chehab      - 2
18054f38fcaSMauro Carvalho Chehab      - By default the ``CEC_MSG_USER_CONTROL_PRESSED`` and ``CEC_MSG_USER_CONTROL_RELEASED``
18154f38fcaSMauro Carvalho Chehab        messages are only passed on to the follower(s), if any. If this flag is set,
18254f38fcaSMauro Carvalho Chehab	then these messages are also passed on to the remote control input subsystem
18354f38fcaSMauro Carvalho Chehab	and will appear as keystrokes. This features needs to be enabled explicitly.
18454f38fcaSMauro Carvalho Chehab	If CEC is used to enter e.g. passwords, then you may not want to enable this
18554f38fcaSMauro Carvalho Chehab	to avoid trivial snooping of the keystrokes.
18654f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDRS-FL-CDC-ONLY`:
18754f38fcaSMauro Carvalho Chehab
18854f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDRS_FL_CDC_ONLY``
18954f38fcaSMauro Carvalho Chehab      - 4
19054f38fcaSMauro Carvalho Chehab      - If this flag is set, then the device is CDC-Only. CDC-Only CEC devices
19154f38fcaSMauro Carvalho Chehab	are CEC devices that can only handle CDC messages.
19254f38fcaSMauro Carvalho Chehab
19354f38fcaSMauro Carvalho Chehab	All other messages are ignored.
19454f38fcaSMauro Carvalho Chehab
19554f38fcaSMauro Carvalho Chehab
19654f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{7.8cm}|p{1.0cm}|p{8.7cm}|
19754f38fcaSMauro Carvalho Chehab
19854f38fcaSMauro Carvalho Chehab.. _cec-versions:
19954f38fcaSMauro Carvalho Chehab
20054f38fcaSMauro Carvalho Chehab.. flat-table:: CEC Versions
20154f38fcaSMauro Carvalho Chehab    :header-rows:  0
20254f38fcaSMauro Carvalho Chehab    :stub-columns: 0
20354f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
20454f38fcaSMauro Carvalho Chehab
20554f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-CEC-VERSION-1-3A`:
20654f38fcaSMauro Carvalho Chehab
20754f38fcaSMauro Carvalho Chehab      - ``CEC_OP_CEC_VERSION_1_3A``
20854f38fcaSMauro Carvalho Chehab      - 4
20954f38fcaSMauro Carvalho Chehab      - CEC version according to the HDMI 1.3a standard.
21054f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-CEC-VERSION-1-4B`:
21154f38fcaSMauro Carvalho Chehab
21254f38fcaSMauro Carvalho Chehab      - ``CEC_OP_CEC_VERSION_1_4B``
21354f38fcaSMauro Carvalho Chehab      - 5
21454f38fcaSMauro Carvalho Chehab      - CEC version according to the HDMI 1.4b standard.
21554f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-CEC-VERSION-2-0`:
21654f38fcaSMauro Carvalho Chehab
21754f38fcaSMauro Carvalho Chehab      - ``CEC_OP_CEC_VERSION_2_0``
21854f38fcaSMauro Carvalho Chehab      - 6
21954f38fcaSMauro Carvalho Chehab      - CEC version according to the HDMI 2.0 standard.
22054f38fcaSMauro Carvalho Chehab
22154f38fcaSMauro Carvalho Chehab
22254f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
22354f38fcaSMauro Carvalho Chehab
22454f38fcaSMauro Carvalho Chehab.. _cec-prim-dev-types:
22554f38fcaSMauro Carvalho Chehab
22654f38fcaSMauro Carvalho Chehab.. flat-table:: CEC Primary Device Types
22754f38fcaSMauro Carvalho Chehab    :header-rows:  0
22854f38fcaSMauro Carvalho Chehab    :stub-columns: 0
22954f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
23054f38fcaSMauro Carvalho Chehab
23154f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-PRIM-DEVTYPE-TV`:
23254f38fcaSMauro Carvalho Chehab
23354f38fcaSMauro Carvalho Chehab      - ``CEC_OP_PRIM_DEVTYPE_TV``
23454f38fcaSMauro Carvalho Chehab      - 0
23554f38fcaSMauro Carvalho Chehab      - Use for a TV.
23654f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-PRIM-DEVTYPE-RECORD`:
23754f38fcaSMauro Carvalho Chehab
23854f38fcaSMauro Carvalho Chehab      - ``CEC_OP_PRIM_DEVTYPE_RECORD``
23954f38fcaSMauro Carvalho Chehab      - 1
24054f38fcaSMauro Carvalho Chehab      - Use for a recording device.
24154f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-PRIM-DEVTYPE-TUNER`:
24254f38fcaSMauro Carvalho Chehab
24354f38fcaSMauro Carvalho Chehab      - ``CEC_OP_PRIM_DEVTYPE_TUNER``
24454f38fcaSMauro Carvalho Chehab      - 3
24554f38fcaSMauro Carvalho Chehab      - Use for a device with a tuner.
24654f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-PRIM-DEVTYPE-PLAYBACK`:
24754f38fcaSMauro Carvalho Chehab
24854f38fcaSMauro Carvalho Chehab      - ``CEC_OP_PRIM_DEVTYPE_PLAYBACK``
24954f38fcaSMauro Carvalho Chehab      - 4
25054f38fcaSMauro Carvalho Chehab      - Use for a playback device.
25154f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-PRIM-DEVTYPE-AUDIOSYSTEM`:
25254f38fcaSMauro Carvalho Chehab
25354f38fcaSMauro Carvalho Chehab      - ``CEC_OP_PRIM_DEVTYPE_AUDIOSYSTEM``
25454f38fcaSMauro Carvalho Chehab      - 5
25554f38fcaSMauro Carvalho Chehab      - Use for an audio system (e.g. an audio/video receiver).
25654f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-PRIM-DEVTYPE-SWITCH`:
25754f38fcaSMauro Carvalho Chehab
25854f38fcaSMauro Carvalho Chehab      - ``CEC_OP_PRIM_DEVTYPE_SWITCH``
25954f38fcaSMauro Carvalho Chehab      - 6
26054f38fcaSMauro Carvalho Chehab      - Use for a CEC switch.
26154f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-PRIM-DEVTYPE-VIDEOPROC`:
26254f38fcaSMauro Carvalho Chehab
26354f38fcaSMauro Carvalho Chehab      - ``CEC_OP_PRIM_DEVTYPE_VIDEOPROC``
26454f38fcaSMauro Carvalho Chehab      - 7
26554f38fcaSMauro Carvalho Chehab      - Use for a video processor device.
26654f38fcaSMauro Carvalho Chehab
26754f38fcaSMauro Carvalho Chehab
26854f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
26954f38fcaSMauro Carvalho Chehab
27054f38fcaSMauro Carvalho Chehab.. _cec-log-addr-types:
27154f38fcaSMauro Carvalho Chehab
27254f38fcaSMauro Carvalho Chehab.. flat-table:: CEC Logical Address Types
27354f38fcaSMauro Carvalho Chehab    :header-rows:  0
27454f38fcaSMauro Carvalho Chehab    :stub-columns: 0
27554f38fcaSMauro Carvalho Chehab    :widths:       3 1 16
27654f38fcaSMauro Carvalho Chehab
27754f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDR-TYPE-TV`:
27854f38fcaSMauro Carvalho Chehab
27954f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDR_TYPE_TV``
28054f38fcaSMauro Carvalho Chehab      - 0
28154f38fcaSMauro Carvalho Chehab      - Use for a TV.
28254f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDR-TYPE-RECORD`:
28354f38fcaSMauro Carvalho Chehab
28454f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDR_TYPE_RECORD``
28554f38fcaSMauro Carvalho Chehab      - 1
28654f38fcaSMauro Carvalho Chehab      - Use for a recording device.
28754f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDR-TYPE-TUNER`:
28854f38fcaSMauro Carvalho Chehab
28954f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDR_TYPE_TUNER``
29054f38fcaSMauro Carvalho Chehab      - 2
29154f38fcaSMauro Carvalho Chehab      - Use for a tuner device.
29254f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDR-TYPE-PLAYBACK`:
29354f38fcaSMauro Carvalho Chehab
29454f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDR_TYPE_PLAYBACK``
29554f38fcaSMauro Carvalho Chehab      - 3
29654f38fcaSMauro Carvalho Chehab      - Use for a playback device.
29754f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDR-TYPE-AUDIOSYSTEM`:
29854f38fcaSMauro Carvalho Chehab
29954f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDR_TYPE_AUDIOSYSTEM``
30054f38fcaSMauro Carvalho Chehab      - 4
30154f38fcaSMauro Carvalho Chehab      - Use for an audio system device.
30254f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDR-TYPE-SPECIFIC`:
30354f38fcaSMauro Carvalho Chehab
30454f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDR_TYPE_SPECIFIC``
30554f38fcaSMauro Carvalho Chehab      - 5
30654f38fcaSMauro Carvalho Chehab      - Use for a second TV or for a video processor device.
30754f38fcaSMauro Carvalho Chehab    * .. _`CEC-LOG-ADDR-TYPE-UNREGISTERED`:
30854f38fcaSMauro Carvalho Chehab
30954f38fcaSMauro Carvalho Chehab      - ``CEC_LOG_ADDR_TYPE_UNREGISTERED``
31054f38fcaSMauro Carvalho Chehab      - 6
31154f38fcaSMauro Carvalho Chehab      - Use this if you just want to remain unregistered. Used for pure
31254f38fcaSMauro Carvalho Chehab	CEC switches or CDC-only devices (CDC: Capability Discovery and
31354f38fcaSMauro Carvalho Chehab	Control).
31454f38fcaSMauro Carvalho Chehab
31554f38fcaSMauro Carvalho Chehab
31654f38fcaSMauro Carvalho Chehab
31754f38fcaSMauro Carvalho Chehab.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
31854f38fcaSMauro Carvalho Chehab
31954f38fcaSMauro Carvalho Chehab.. _cec-all-dev-types-flags:
32054f38fcaSMauro Carvalho Chehab
32154f38fcaSMauro Carvalho Chehab.. flat-table:: CEC All Device Types Flags
32254f38fcaSMauro Carvalho Chehab    :header-rows:  0
32354f38fcaSMauro Carvalho Chehab    :stub-columns: 0
32454f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
32554f38fcaSMauro Carvalho Chehab
32654f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-ALL-DEVTYPE-TV`:
32754f38fcaSMauro Carvalho Chehab
32854f38fcaSMauro Carvalho Chehab      - ``CEC_OP_ALL_DEVTYPE_TV``
32954f38fcaSMauro Carvalho Chehab      - 0x80
33054f38fcaSMauro Carvalho Chehab      - This supports the TV type.
33154f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-ALL-DEVTYPE-RECORD`:
33254f38fcaSMauro Carvalho Chehab
33354f38fcaSMauro Carvalho Chehab      - ``CEC_OP_ALL_DEVTYPE_RECORD``
33454f38fcaSMauro Carvalho Chehab      - 0x40
33554f38fcaSMauro Carvalho Chehab      - This supports the Recording type.
33654f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-ALL-DEVTYPE-TUNER`:
33754f38fcaSMauro Carvalho Chehab
33854f38fcaSMauro Carvalho Chehab      - ``CEC_OP_ALL_DEVTYPE_TUNER``
33954f38fcaSMauro Carvalho Chehab      - 0x20
34054f38fcaSMauro Carvalho Chehab      - This supports the Tuner type.
34154f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-ALL-DEVTYPE-PLAYBACK`:
34254f38fcaSMauro Carvalho Chehab
34354f38fcaSMauro Carvalho Chehab      - ``CEC_OP_ALL_DEVTYPE_PLAYBACK``
34454f38fcaSMauro Carvalho Chehab      - 0x10
34554f38fcaSMauro Carvalho Chehab      - This supports the Playback type.
34654f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-ALL-DEVTYPE-AUDIOSYSTEM`:
34754f38fcaSMauro Carvalho Chehab
34854f38fcaSMauro Carvalho Chehab      - ``CEC_OP_ALL_DEVTYPE_AUDIOSYSTEM``
34954f38fcaSMauro Carvalho Chehab      - 0x08
35054f38fcaSMauro Carvalho Chehab      - This supports the Audio System type.
35154f38fcaSMauro Carvalho Chehab    * .. _`CEC-OP-ALL-DEVTYPE-SWITCH`:
35254f38fcaSMauro Carvalho Chehab
35354f38fcaSMauro Carvalho Chehab      - ``CEC_OP_ALL_DEVTYPE_SWITCH``
35454f38fcaSMauro Carvalho Chehab      - 0x04
35554f38fcaSMauro Carvalho Chehab      - This supports the CEC Switch or Video Processing type.
35654f38fcaSMauro Carvalho Chehab
35754f38fcaSMauro Carvalho Chehab
35854f38fcaSMauro Carvalho Chehab
35954f38fcaSMauro Carvalho ChehabReturn Value
36054f38fcaSMauro Carvalho Chehab============
36154f38fcaSMauro Carvalho Chehab
36254f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set
36354f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the
36454f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter.
36554f38fcaSMauro Carvalho Chehab
36654f38fcaSMauro Carvalho ChehabThe :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` can return the following
36754f38fcaSMauro Carvalho Chehaberror codes:
36854f38fcaSMauro Carvalho Chehab
36954f38fcaSMauro Carvalho ChehabENOTTY
37054f38fcaSMauro Carvalho Chehab    The ``CEC_CAP_LOG_ADDRS`` capability wasn't set, so this ioctl is not supported.
37154f38fcaSMauro Carvalho Chehab
37254f38fcaSMauro Carvalho ChehabEBUSY
37354f38fcaSMauro Carvalho Chehab    The CEC adapter is currently configuring itself, or it is already configured and
37454f38fcaSMauro Carvalho Chehab    ``num_log_addrs`` is non-zero, or another filehandle is in exclusive follower or
37554f38fcaSMauro Carvalho Chehab    initiator mode, or the filehandle is in mode ``CEC_MODE_NO_INITIATOR``.
37654f38fcaSMauro Carvalho Chehab
37754f38fcaSMauro Carvalho ChehabEINVAL
37854f38fcaSMauro Carvalho Chehab    The contents of struct :c:type:`cec_log_addrs` is invalid.
379