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