Commit 77edf603 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[media] cec rst: convert tables and drop the 'row' comments

This uses Laurent's python script to convert all tables, dropping
the useless 'row' comments.

See commit c2b66caf ("[media] v4l: doc: Remove row numbers from tables")
for the script that was used.
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent acd49735
...@@ -48,41 +48,21 @@ returns the information to the application. The ioctl never fails. ...@@ -48,41 +48,21 @@ returns the information to the application. The ioctl never fails.
:stub-columns: 0 :stub-columns: 0
:widths: 1 1 16 :widths: 1 1 16
* - char
- .. row 1 - ``driver[32]``
- The name of the cec adapter driver.
- char * - char
- ``name[32]``
- ``driver[32]`` - The name of this CEC adapter. The combination ``driver`` and
``name`` must be unique.
- The name of the cec adapter driver. * - __u32
- ``capabilities``
- .. row 2 - The capabilities of the CEC adapter, see
:ref:`cec-capabilities`.
- char * - __u32
- ``version``
- ``name[32]`` - CEC Framework API version, formatted with the ``KERNEL_VERSION()``
macro.
- The name of this CEC adapter. The combination ``driver`` and
``name`` must be unique.
- .. row 3
- __u32
- ``capabilities``
- The capabilities of the CEC adapter, see
:ref:`cec-capabilities`.
- .. row 4
- __u32
- ``version``
- CEC Framework API version, formatted with the ``KERNEL_VERSION()``
macro.
.. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}| .. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}|
...@@ -94,68 +74,50 @@ returns the information to the application. The ioctl never fails. ...@@ -94,68 +74,50 @@ returns the information to the application. The ioctl never fails.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 8 :widths: 3 1 8
* .. _`CEC-CAP-PHYS-ADDR`:
- .. _`CEC-CAP-PHYS-ADDR`:
- ``CEC_CAP_PHYS_ADDR``
- ``CEC_CAP_PHYS_ADDR`` - 0x00000001
- Userspace has to configure the physical address by calling
- 0x00000001 :ref:`ioctl CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>`. If
this capability isn't set, then setting the physical address is
- Userspace has to configure the physical address by calling handled by the kernel whenever the EDID is set (for an HDMI
:ref:`ioctl CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>`. If receiver) or read (for an HDMI transmitter).
this capability isn't set, then setting the physical address is * .. _`CEC-CAP-LOG-ADDRS`:
handled by the kernel whenever the EDID is set (for an HDMI
receiver) or read (for an HDMI transmitter). - ``CEC_CAP_LOG_ADDRS``
- 0x00000002
- .. _`CEC-CAP-LOG-ADDRS`: - Userspace has to configure the logical addresses by calling
:ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`. If
- ``CEC_CAP_LOG_ADDRS`` this capability isn't set, then the kernel will have configured
this.
- 0x00000002 * .. _`CEC-CAP-TRANSMIT`:
- Userspace has to configure the logical addresses by calling - ``CEC_CAP_TRANSMIT``
:ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`. If - 0x00000004
this capability isn't set, then the kernel will have configured - Userspace can transmit CEC messages by calling
this. :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. This implies that
userspace can be a follower as well, since being able to transmit
- .. _`CEC-CAP-TRANSMIT`: messages is a prerequisite of becoming a follower. If this
capability isn't set, then the kernel will handle all CEC
- ``CEC_CAP_TRANSMIT`` transmits and process all CEC messages it receives.
* .. _`CEC-CAP-PASSTHROUGH`:
- 0x00000004
- ``CEC_CAP_PASSTHROUGH``
- Userspace can transmit CEC messages by calling - 0x00000008
:ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. This implies that - Userspace can use the passthrough mode by calling
userspace can be a follower as well, since being able to transmit :ref:`ioctl CEC_S_MODE <CEC_S_MODE>`.
messages is a prerequisite of becoming a follower. If this * .. _`CEC-CAP-RC`:
capability isn't set, then the kernel will handle all CEC
transmits and process all CEC messages it receives. - ``CEC_CAP_RC``
- 0x00000010
- .. _`CEC-CAP-PASSTHROUGH`: - This adapter supports the remote control protocol.
* .. _`CEC-CAP-MONITOR-ALL`:
- ``CEC_CAP_PASSTHROUGH``
- ``CEC_CAP_MONITOR_ALL``
- 0x00000008 - 0x00000020
- The CEC hardware can monitor all messages, not just directed and
- Userspace can use the passthrough mode by calling broadcast messages.
:ref:`ioctl CEC_S_MODE <CEC_S_MODE>`.
- .. _`CEC-CAP-RC`:
- ``CEC_CAP_RC``
- 0x00000010
- This adapter supports the remote control protocol.
- .. _`CEC-CAP-MONITOR-ALL`:
- ``CEC_CAP_MONITOR_ALL``
- 0x00000020
- The CEC hardware can monitor all messages, not just directed and
broadcast messages.
......
...@@ -77,134 +77,79 @@ logical address types are already defined will return with error ``EBUSY``. ...@@ -77,134 +77,79 @@ logical address types are already defined will return with error ``EBUSY``.
:stub-columns: 0 :stub-columns: 0
:widths: 1 1 16 :widths: 1 1 16
* - __u8
- .. row 1 - ``log_addr[CEC_MAX_LOG_ADDRS]``
- The actual logical addresses that were claimed. This is set by the
- __u8 driver. If no logical address could be claimed, then it is set to
``CEC_LOG_ADDR_INVALID``. If this adapter is Unregistered, then
- ``log_addr[CEC_MAX_LOG_ADDRS]`` ``log_addr[0]`` is set to 0xf and all others to
``CEC_LOG_ADDR_INVALID``.
- The actual logical addresses that were claimed. This is set by the * - __u16
driver. If no logical address could be claimed, then it is set to - ``log_addr_mask``
``CEC_LOG_ADDR_INVALID``. If this adapter is Unregistered, then - The bitmask of all logical addresses this adapter has claimed. If
``log_addr[0]`` is set to 0xf and all others to this adapter is Unregistered then ``log_addr_mask`` sets bit 15
``CEC_LOG_ADDR_INVALID``. and clears all other bits. If this adapter is not configured at
all, then ``log_addr_mask`` is set to 0. Set by the driver.
- .. row 2 * - __u8
- ``cec_version``
- __u16 - The CEC version that this adapter shall use. See
:ref:`cec-versions`. Used to implement the
- ``log_addr_mask`` ``CEC_MSG_CEC_VERSION`` and ``CEC_MSG_REPORT_FEATURES`` messages.
Note that :ref:`CEC_OP_CEC_VERSION_1_3A <CEC-OP-CEC-VERSION-1-3A>` is not allowed by the CEC
- The bitmask of all logical addresses this adapter has claimed. If framework.
this adapter is Unregistered then ``log_addr_mask`` sets bit 15 * - __u8
and clears all other bits. If this adapter is not configured at - ``num_log_addrs``
all, then ``log_addr_mask`` is set to 0. Set by the driver. - Number of logical addresses to set up. Must be ≤
``available_log_addrs`` as returned by
- .. row 3 :ref:`CEC_ADAP_G_CAPS`. All arrays in
this structure are only filled up to index
- __u8 ``available_log_addrs``-1. The remaining array elements will be
ignored. Note that the CEC 2.0 standard allows for a maximum of 2
- ``cec_version`` logical addresses, although some hardware has support for more.
``CEC_MAX_LOG_ADDRS`` is 4. The driver will return the actual
- The CEC version that this adapter shall use. See number of logical addresses it could claim, which may be less than
:ref:`cec-versions`. Used to implement the what was requested. If this field is set to 0, then the CEC
``CEC_MSG_CEC_VERSION`` and ``CEC_MSG_REPORT_FEATURES`` messages. adapter shall clear all claimed logical addresses and all other
Note that :ref:`CEC_OP_CEC_VERSION_1_3A <CEC-OP-CEC-VERSION-1-3A>` is not allowed by the CEC fields will be ignored.
framework. * - __u32
- ``vendor_id``
- .. row 4 - The vendor ID is a 24-bit number that identifies the specific
vendor or entity. Based on this ID vendor specific commands may be
- __u8 defined. If you do not want a vendor ID then set it to
``CEC_VENDOR_ID_NONE``.
- ``num_log_addrs`` * - __u32
- ``flags``
- Number of logical addresses to set up. Must be ≤ - Flags. See :ref:`cec-log-addrs-flags` for a list of available flags.
``available_log_addrs`` as returned by * - char
:ref:`CEC_ADAP_G_CAPS`. All arrays in - ``osd_name[15]``
this structure are only filled up to index - The On-Screen Display name as is returned by the
``available_log_addrs``-1. The remaining array elements will be ``CEC_MSG_SET_OSD_NAME`` message.
ignored. Note that the CEC 2.0 standard allows for a maximum of 2 * - __u8
logical addresses, although some hardware has support for more. - ``primary_device_type[CEC_MAX_LOG_ADDRS]``
``CEC_MAX_LOG_ADDRS`` is 4. The driver will return the actual - Primary device type for each logical address. See
number of logical addresses it could claim, which may be less than :ref:`cec-prim-dev-types` for possible types.
what was requested. If this field is set to 0, then the CEC * - __u8
adapter shall clear all claimed logical addresses and all other - ``log_addr_type[CEC_MAX_LOG_ADDRS]``
fields will be ignored. - Logical address types. See :ref:`cec-log-addr-types` for
possible types. The driver will update this with the actual
- .. row 5 logical address type that it claimed (e.g. it may have to fallback
to :ref:`CEC_LOG_ADDR_TYPE_UNREGISTERED <CEC-LOG-ADDR-TYPE-UNREGISTERED>`).
- __u32 * - __u8
- ``all_device_types[CEC_MAX_LOG_ADDRS]``
- ``vendor_id`` - CEC 2.0 specific: the bit mask of all device types. See
:ref:`cec-all-dev-types-flags`. It is used in the CEC 2.0
- The vendor ID is a 24-bit number that identifies the specific ``CEC_MSG_REPORT_FEATURES`` message. For CEC 1.4 you can either leave
vendor or entity. Based on this ID vendor specific commands may be this field to 0, or fill it in according to the CEC 2.0 guidelines to
defined. If you do not want a vendor ID then set it to give the CEC framework more information about the device type, even
``CEC_VENDOR_ID_NONE``. though the framework won't use it directly in the CEC message.
* - __u8
- .. row 6 - ``features[CEC_MAX_LOG_ADDRS][12]``
- Features for each logical address. It is used in the CEC 2.0
- __u32 ``CEC_MSG_REPORT_FEATURES`` message. The 12 bytes include both the
RC Profile and the Device Features. For CEC 1.4 you can either leave
- ``flags`` this field to all 0, or fill it in according to the CEC 2.0 guidelines to
give the CEC framework more information about the device type, even
- Flags. See :ref:`cec-log-addrs-flags` for a list of available flags. though the framework won't use it directly in the CEC message.
- .. row 7
- char
- ``osd_name[15]``
- The On-Screen Display name as is returned by the
``CEC_MSG_SET_OSD_NAME`` message.
- .. row 8
- __u8
- ``primary_device_type[CEC_MAX_LOG_ADDRS]``
- Primary device type for each logical address. See
:ref:`cec-prim-dev-types` for possible types.
- .. row 9
- __u8
- ``log_addr_type[CEC_MAX_LOG_ADDRS]``
- Logical address types. See :ref:`cec-log-addr-types` for
possible types. The driver will update this with the actual
logical address type that it claimed (e.g. it may have to fallback
to :ref:`CEC_LOG_ADDR_TYPE_UNREGISTERED <CEC-LOG-ADDR-TYPE-UNREGISTERED>`).
- .. row 10
- __u8
- ``all_device_types[CEC_MAX_LOG_ADDRS]``
- CEC 2.0 specific: the bit mask of all device types. See
:ref:`cec-all-dev-types-flags`. It is used in the CEC 2.0
``CEC_MSG_REPORT_FEATURES`` message. For CEC 1.4 you can either leave
this field to 0, or fill it in according to the CEC 2.0 guidelines to
give the CEC framework more information about the device type, even
though the framework won't use it directly in the CEC message.
- .. row 11
- __u8
- ``features[CEC_MAX_LOG_ADDRS][12]``
- Features for each logical address. It is used in the CEC 2.0
``CEC_MSG_REPORT_FEATURES`` message. The 12 bytes include both the
RC Profile and the Device Features. For CEC 1.4 you can either leave
this field to all 0, or fill it in according to the CEC 2.0 guidelines to
give the CEC framework more information about the device type, even
though the framework won't use it directly in the CEC message.
.. _cec-log-addrs-flags: .. _cec-log-addrs-flags:
...@@ -213,17 +158,14 @@ logical address types are already defined will return with error ``EBUSY``. ...@@ -213,17 +158,14 @@ logical address types are already defined will return with error ``EBUSY``.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 4 :widths: 3 1 4
* .. _`CEC-LOG-ADDRS-FL-ALLOW-UNREG-FALLBACK`:
- .. _`CEC-LOG-ADDRS-FL-ALLOW-UNREG-FALLBACK`: - ``CEC_LOG_ADDRS_FL_ALLOW_UNREG_FALLBACK``
- 1
- ``CEC_LOG_ADDRS_FL_ALLOW_UNREG_FALLBACK`` - By default if no logical address of the requested type can be claimed, then
it will go back to the unconfigured state. If this flag is set, then it will
- 1 fallback to the Unregistered logical address. Note that if the Unregistered
logical address was explicitly requested, then this flag has no effect.
- By default if no logical address of the requested type can be claimed, then
it will go back to the unconfigured state. If this flag is set, then it will
fallback to the Unregistered logical address. Note that if the Unregistered
logical address was explicitly requested, then this flag has no effect.
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
...@@ -234,30 +176,21 @@ logical address types are already defined will return with error ``EBUSY``. ...@@ -234,30 +176,21 @@ logical address types are already defined will return with error ``EBUSY``.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 4 :widths: 3 1 4
* .. _`CEC-OP-CEC-VERSION-1-3A`:
- .. _`CEC-OP-CEC-VERSION-1-3A`: - ``CEC_OP_CEC_VERSION_1_3A``
- 4
- ``CEC_OP_CEC_VERSION_1_3A`` - CEC version according to the HDMI 1.3a standard.
* .. _`CEC-OP-CEC-VERSION-1-4B`:
- 4
- CEC version according to the HDMI 1.3a standard.
- .. _`CEC-OP-CEC-VERSION-1-4B`:
- ``CEC_OP_CEC_VERSION_1_4B`` - ``CEC_OP_CEC_VERSION_1_4B``
- 5
- CEC version according to the HDMI 1.4b standard.
* .. _`CEC-OP-CEC-VERSION-2-0`:
- 5 - ``CEC_OP_CEC_VERSION_2_0``
- 6
- CEC version according to the HDMI 1.4b standard. - CEC version according to the HDMI 2.0 standard.
- .. _`CEC-OP-CEC-VERSION-2-0`:
- ``CEC_OP_CEC_VERSION_2_0``
- 6
- CEC version according to the HDMI 2.0 standard.
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
...@@ -269,62 +202,41 @@ logical address types are already defined will return with error ``EBUSY``. ...@@ -269,62 +202,41 @@ logical address types are already defined will return with error ``EBUSY``.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 4 :widths: 3 1 4
* .. _`CEC-OP-PRIM-DEVTYPE-TV`:
- .. _`CEC-OP-PRIM-DEVTYPE-TV`: - ``CEC_OP_PRIM_DEVTYPE_TV``
- 0
- ``CEC_OP_PRIM_DEVTYPE_TV`` - Use for a TV.
* .. _`CEC-OP-PRIM-DEVTYPE-RECORD`:
- 0
- Use for a TV. - ``CEC_OP_PRIM_DEVTYPE_RECORD``
- 1
- Use for a recording device.
* .. _`CEC-OP-PRIM-DEVTYPE-TUNER`:
- .. _`CEC-OP-PRIM-DEVTYPE-RECORD`: - ``CEC_OP_PRIM_DEVTYPE_TUNER``
- 3
- Use for a device with a tuner.
* .. _`CEC-OP-PRIM-DEVTYPE-PLAYBACK`:
- ``CEC_OP_PRIM_DEVTYPE_RECORD`` - ``CEC_OP_PRIM_DEVTYPE_PLAYBACK``
- 4
- Use for a playback device.
* .. _`CEC-OP-PRIM-DEVTYPE-AUDIOSYSTEM`:
- 1 - ``CEC_OP_PRIM_DEVTYPE_AUDIOSYSTEM``
- 5
- Use for an audio system (e.g. an audio/video receiver).
* .. _`CEC-OP-PRIM-DEVTYPE-SWITCH`:
- Use for a recording device. - ``CEC_OP_PRIM_DEVTYPE_SWITCH``
- 6
- Use for a CEC switch.
* .. _`CEC-OP-PRIM-DEVTYPE-VIDEOPROC`:
- .. _`CEC-OP-PRIM-DEVTYPE-TUNER`: - ``CEC_OP_PRIM_DEVTYPE_VIDEOPROC``
- 7
- ``CEC_OP_PRIM_DEVTYPE_TUNER`` - Use for a video processor device.
- 3
- Use for a device with a tuner.
- .. _`CEC-OP-PRIM-DEVTYPE-PLAYBACK`:
- ``CEC_OP_PRIM_DEVTYPE_PLAYBACK``
- 4
- Use for a playback device.
- .. _`CEC-OP-PRIM-DEVTYPE-AUDIOSYSTEM`:
- ``CEC_OP_PRIM_DEVTYPE_AUDIOSYSTEM``
- 5
- Use for an audio system (e.g. an audio/video receiver).
- .. _`CEC-OP-PRIM-DEVTYPE-SWITCH`:
- ``CEC_OP_PRIM_DEVTYPE_SWITCH``
- 6
- Use for a CEC switch.
- .. _`CEC-OP-PRIM-DEVTYPE-VIDEOPROC`:
- ``CEC_OP_PRIM_DEVTYPE_VIDEOPROC``
- 7
- Use for a video processor device.
.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
...@@ -336,64 +248,43 @@ logical address types are already defined will return with error ``EBUSY``. ...@@ -336,64 +248,43 @@ logical address types are already defined will return with error ``EBUSY``.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 16 :widths: 3 1 16
* .. _`CEC-LOG-ADDR-TYPE-TV`:
- .. _`CEC-LOG-ADDR-TYPE-TV`: - ``CEC_LOG_ADDR_TYPE_TV``
- 0
- ``CEC_LOG_ADDR_TYPE_TV`` - Use for a TV.
* .. _`CEC-LOG-ADDR-TYPE-RECORD`:
- 0
- Use for a TV.
- .. _`CEC-LOG-ADDR-TYPE-RECORD`:
- ``CEC_LOG_ADDR_TYPE_RECORD``
- 1
- Use for a recording device.
- .. _`CEC-LOG-ADDR-TYPE-TUNER`:
- ``CEC_LOG_ADDR_TYPE_TUNER``
- 2
- Use for a tuner device. - ``CEC_LOG_ADDR_TYPE_RECORD``
- 1
- Use for a recording device.
* .. _`CEC-LOG-ADDR-TYPE-TUNER`:
- .. _`CEC-LOG-ADDR-TYPE-PLAYBACK`: - ``CEC_LOG_ADDR_TYPE_TUNER``
- 2
- Use for a tuner device.
* .. _`CEC-LOG-ADDR-TYPE-PLAYBACK`:
- ``CEC_LOG_ADDR_TYPE_PLAYBACK`` - ``CEC_LOG_ADDR_TYPE_PLAYBACK``
- 3
- Use for a playback device.
* .. _`CEC-LOG-ADDR-TYPE-AUDIOSYSTEM`:
- 3 - ``CEC_LOG_ADDR_TYPE_AUDIOSYSTEM``
- 4
- Use for an audio system device.
* .. _`CEC-LOG-ADDR-TYPE-SPECIFIC`:
- Use for a playback device. - ``CEC_LOG_ADDR_TYPE_SPECIFIC``
- 5
- Use for a second TV or for a video processor device.
* .. _`CEC-LOG-ADDR-TYPE-UNREGISTERED`:
- .. _`CEC-LOG-ADDR-TYPE-AUDIOSYSTEM`: - ``CEC_LOG_ADDR_TYPE_UNREGISTERED``
- 6
- ``CEC_LOG_ADDR_TYPE_AUDIOSYSTEM`` - Use this if you just want to remain unregistered. Used for pure
CEC switches or CDC-only devices (CDC: Capability Discovery and
- 4 Control).
- Use for an audio system device.
- .. _`CEC-LOG-ADDR-TYPE-SPECIFIC`:
- ``CEC_LOG_ADDR_TYPE_SPECIFIC``
- 5
- Use for a second TV or for a video processor device.
- .. _`CEC-LOG-ADDR-TYPE-UNREGISTERED`:
- ``CEC_LOG_ADDR_TYPE_UNREGISTERED``
- 6
- Use this if you just want to remain unregistered. Used for pure
CEC switches or CDC-only devices (CDC: Capability Discovery and
Control).
...@@ -406,54 +297,36 @@ logical address types are already defined will return with error ``EBUSY``. ...@@ -406,54 +297,36 @@ logical address types are already defined will return with error ``EBUSY``.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 4 :widths: 3 1 4
* .. _`CEC-OP-ALL-DEVTYPE-TV`:
- .. _`CEC-OP-ALL-DEVTYPE-TV`: - ``CEC_OP_ALL_DEVTYPE_TV``
- 0x80
- ``CEC_OP_ALL_DEVTYPE_TV`` - This supports the TV type.
* .. _`CEC-OP-ALL-DEVTYPE-RECORD`:
- 0x80
- This supports the TV type.
- .. _`CEC-OP-ALL-DEVTYPE-RECORD`:
- ``CEC_OP_ALL_DEVTYPE_RECORD``
- 0x40
- This supports the Recording type.
- .. _`CEC-OP-ALL-DEVTYPE-TUNER`:
- ``CEC_OP_ALL_DEVTYPE_TUNER``
- 0x20
- This supports the Tuner type.
- .. _`CEC-OP-ALL-DEVTYPE-PLAYBACK`:
- ``CEC_OP_ALL_DEVTYPE_PLAYBACK``
- 0x10
- This supports the Playback type.
- .. _`CEC-OP-ALL-DEVTYPE-AUDIOSYSTEM`:
- ``CEC_OP_ALL_DEVTYPE_AUDIOSYSTEM``
- 0x08
- This supports the Audio System type. - ``CEC_OP_ALL_DEVTYPE_RECORD``
- 0x40
- This supports the Recording type.
* .. _`CEC-OP-ALL-DEVTYPE-TUNER`:
- .. _`CEC-OP-ALL-DEVTYPE-SWITCH`: - ``CEC_OP_ALL_DEVTYPE_TUNER``
- 0x20
- This supports the Tuner type.
* .. _`CEC-OP-ALL-DEVTYPE-PLAYBACK`:
- ``CEC_OP_ALL_DEVTYPE_SWITCH`` - ``CEC_OP_ALL_DEVTYPE_PLAYBACK``
- 0x10
- This supports the Playback type.
* .. _`CEC-OP-ALL-DEVTYPE-AUDIOSYSTEM`:
- 0x04 - ``CEC_OP_ALL_DEVTYPE_AUDIOSYSTEM``
- 0x08
- This supports the Audio System type.
* .. _`CEC-OP-ALL-DEVTYPE-SWITCH`:
- This supports the CEC Switch or Video Processing type. - ``CEC_OP_ALL_DEVTYPE_SWITCH``
- 0x04
- This supports the CEC Switch or Video Processing type.
......
...@@ -58,26 +58,16 @@ it is guaranteed that the state did change in between the two events. ...@@ -58,26 +58,16 @@ it is guaranteed that the state did change in between the two events.
:stub-columns: 0 :stub-columns: 0
:widths: 1 1 8 :widths: 1 1 8
* - __u16
- .. row 1 - ``phys_addr``
- The current physical address. This is ``CEC_PHYS_ADDR_INVALID`` if no
- __u16
- ``phys_addr``
- The current physical address. This is ``CEC_PHYS_ADDR_INVALID`` if no
valid physical address is set. valid physical address is set.
* - __u16
- .. row 2 - ``log_addr_mask``
- The current set of claimed logical addresses. This is 0 if no logical
- __u16 addresses are claimed or if ``phys_addr`` is ``CEC_PHYS_ADDR_INVALID``.
If bit 15 is set (``1 << CEC_LOG_ADDR_UNREGISTERED``) then this device
- ``log_addr_mask`` has the unregistered logical address. In that case all other bits are 0.
- The current set of claimed logical addresses. This is 0 if no logical
addresses are claimed or if ``phys_addr`` is ``CEC_PHYS_ADDR_INVALID``.
If bit 15 is set (``1 << CEC_LOG_ADDR_UNREGISTERED``) then this device
has the unregistered logical address. In that case all other bits are 0.
.. c:type:: cec_event_lost_msgs .. c:type:: cec_event_lost_msgs
...@@ -89,22 +79,17 @@ it is guaranteed that the state did change in between the two events. ...@@ -89,22 +79,17 @@ it is guaranteed that the state did change in between the two events.
:stub-columns: 0 :stub-columns: 0
:widths: 1 1 16 :widths: 1 1 16
* - __u32
- .. row 1 - ``lost_msgs``
- Set to the number of lost messages since the filehandle was opened
- __u32 or since the last time this event was dequeued for this
filehandle. The messages lost are the oldest messages. So when a
- ``lost_msgs`` new message arrives and there is no more room, then the oldest
message is discarded to make room for the new one. The internal
- Set to the number of lost messages since the filehandle was opened size of the message queue guarantees that all messages received in
or since the last time this event was dequeued for this the last two seconds will be stored. Since messages should be
filehandle. The messages lost are the oldest messages. So when a replied to within a second according to the CEC specification,
new message arrives and there is no more room, then the oldest this is more than enough.
message is discarded to make room for the new one. The internal
size of the message queue guarantees that all messages received in
the last two seconds will be stored. Since messages should be
replied to within a second according to the CEC specification,
this is more than enough.
.. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{2.5cm}|p{8.8cm}| .. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{2.5cm}|p{8.8cm}|
...@@ -116,62 +101,32 @@ it is guaranteed that the state did change in between the two events. ...@@ -116,62 +101,32 @@ it is guaranteed that the state did change in between the two events.
:stub-columns: 0 :stub-columns: 0
:widths: 1 1 1 8 :widths: 1 1 1 8
* - __u64
- .. row 1 - ``ts``
- :cspan:`1` Timestamp of the event in ns.
- __u64
The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access
- ``ts`` the same clock from userspace use :c:func:`clock_gettime`.
* - __u32
- :cspan:`1` Timestamp of the event in ns. - ``event``
- :cspan:`1` The CEC event type, see :ref:`cec-events`.
The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access * - __u32
the same clock from userspace use :c:func:`clock_gettime`. - ``flags``
- :cspan:`1` Event flags, see :ref:`cec-event-flags`.
- .. row 2 * - union
- (anonymous)
- __u32 -
-
- ``event`` * -
- struct cec_event_state_change
- :cspan:`1` The CEC event type, see :ref:`cec-events`. - ``state_change``
- The new adapter state as sent by the :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>`
- .. row 3 event.
* -
- __u32 - struct cec_event_lost_msgs
- ``lost_msgs``
- ``flags`` - The number of lost messages as sent by the :ref:`CEC_EVENT_LOST_MSGS <CEC-EVENT-LOST-MSGS>`
event.
- :cspan:`1` Event flags, see :ref:`cec-event-flags`.
- .. row 4
- union
- (anonymous)
-
-
- .. row 5
-
- struct cec_event_state_change
- ``state_change``
- The new adapter state as sent by the :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>`
event.
- .. row 6
-
- struct cec_event_lost_msgs
- ``lost_msgs``
- The number of lost messages as sent by the :ref:`CEC_EVENT_LOST_MSGS <CEC-EVENT-LOST-MSGS>`
event.
.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| .. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
...@@ -183,25 +138,19 @@ it is guaranteed that the state did change in between the two events. ...@@ -183,25 +138,19 @@ it is guaranteed that the state did change in between the two events.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 16 :widths: 3 1 16
* .. _`CEC-EVENT-STATE-CHANGE`:
- .. _`CEC-EVENT-STATE-CHANGE`: - ``CEC_EVENT_STATE_CHANGE``
- 1
- ``CEC_EVENT_STATE_CHANGE`` - Generated when the CEC Adapter's state changes. When open() is
called an initial event will be generated for that filehandle with
- 1 the CEC Adapter's state at that time.
* .. _`CEC-EVENT-LOST-MSGS`:
- Generated when the CEC Adapter's state changes. When open() is
called an initial event will be generated for that filehandle with
the CEC Adapter's state at that time.
- .. _`CEC-EVENT-LOST-MSGS`:
- ``CEC_EVENT_LOST_MSGS`` - ``CEC_EVENT_LOST_MSGS``
- 2
- 2 - Generated if one or more CEC messages were lost because the
application didn't dequeue CEC messages fast enough.
- Generated if one or more CEC messages were lost because the
application didn't dequeue CEC messages fast enough.
.. tabularcolumns:: |p{6.0cm}|p{0.6cm}|p{10.9cm}| .. tabularcolumns:: |p{6.0cm}|p{0.6cm}|p{10.9cm}|
...@@ -213,17 +162,14 @@ it is guaranteed that the state did change in between the two events. ...@@ -213,17 +162,14 @@ it is guaranteed that the state did change in between the two events.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 8 :widths: 3 1 8
* .. _`CEC-EVENT-FL-INITIAL-VALUE`:
- .. _`CEC-EVENT-FL-INITIAL-VALUE`: - ``CEC_EVENT_FL_INITIAL_VALUE``
- 1
- ``CEC_EVENT_FL_INITIAL_VALUE`` - Set for the initial events that are generated when the device is
opened. See the table above for which events do this. This allows
- 1 applications to learn the initial state of the CEC adapter at
open() time.
- Set for the initial events that are generated when the device is
opened. See the table above for which events do this. This allows
applications to learn the initial state of the CEC adapter at
open() time.
......
...@@ -83,37 +83,28 @@ Available initiator modes are: ...@@ -83,37 +83,28 @@ Available initiator modes are:
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 16 :widths: 3 1 16
* .. _`CEC-MODE-NO-INITIATOR`:
- .. _`CEC-MODE-NO-INITIATOR`:
- ``CEC_MODE_NO_INITIATOR``
- ``CEC_MODE_NO_INITIATOR`` - 0x0
- This is not an initiator, i.e. it cannot transmit CEC messages or
- 0x0 make any other changes to the CEC adapter.
* .. _`CEC-MODE-INITIATOR`:
- This is not an initiator, i.e. it cannot transmit CEC messages or
make any other changes to the CEC adapter. - ``CEC_MODE_INITIATOR``
- 0x1
- .. _`CEC-MODE-INITIATOR`: - This is an initiator (the default when the device is opened) and
it can transmit CEC messages and make changes to the CEC adapter,
- ``CEC_MODE_INITIATOR`` unless there is an exclusive initiator.
* .. _`CEC-MODE-EXCL-INITIATOR`:
- 0x1
- ``CEC_MODE_EXCL_INITIATOR``
- This is an initiator (the default when the device is opened) and - 0x2
it can transmit CEC messages and make changes to the CEC adapter, - This is an exclusive initiator and this file descriptor is the
unless there is an exclusive initiator. only one that can transmit CEC messages and make changes to the
CEC adapter. If someone else is already the exclusive initiator
- .. _`CEC-MODE-EXCL-INITIATOR`: then an attempt to become one will return the ``EBUSY`` error code
error.
- ``CEC_MODE_EXCL_INITIATOR``
- 0x2
- This is an exclusive initiator and this file descriptor is the
only one that can transmit CEC messages and make changes to the
CEC adapter. If someone else is already the exclusive initiator
then an attempt to become one will return the ``EBUSY`` error code
error.
Available follower modes are: Available follower modes are:
...@@ -127,86 +118,68 @@ Available follower modes are: ...@@ -127,86 +118,68 @@ Available follower modes are:
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 16 :widths: 3 1 16
* .. _`CEC-MODE-NO-FOLLOWER`:
- .. _`CEC-MODE-NO-FOLLOWER`:
- ``CEC_MODE_NO_FOLLOWER``
- ``CEC_MODE_NO_FOLLOWER`` - 0x00
- This is not a follower (the default when the device is opened).
- 0x00 * .. _`CEC-MODE-FOLLOWER`:
- This is not a follower (the default when the device is opened). - ``CEC_MODE_FOLLOWER``
- 0x10
- .. _`CEC-MODE-FOLLOWER`: - This is a follower and it will receive CEC messages unless there
is an exclusive follower. You cannot become a follower if
- ``CEC_MODE_FOLLOWER`` :ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>` is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`
was specified, the ``EINVAL`` error code is returned in that case.
- 0x10 * .. _`CEC-MODE-EXCL-FOLLOWER`:
- This is a follower and it will receive CEC messages unless there - ``CEC_MODE_EXCL_FOLLOWER``
is an exclusive follower. You cannot become a follower if - 0x20
:ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>` is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>` - This is an exclusive follower and only this file descriptor will
was specified, the ``EINVAL`` error code is returned in that case. receive CEC messages for processing. If someone else is already
the exclusive follower then an attempt to become one will return
- .. _`CEC-MODE-EXCL-FOLLOWER`: the ``EBUSY`` error code. You cannot become a follower if
:ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>` is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`
- ``CEC_MODE_EXCL_FOLLOWER`` was specified, the ``EINVAL`` error code is returned in that case.
* .. _`CEC-MODE-EXCL-FOLLOWER-PASSTHRU`:
- 0x20
- ``CEC_MODE_EXCL_FOLLOWER_PASSTHRU``
- This is an exclusive follower and only this file descriptor will - 0x30
receive CEC messages for processing. If someone else is already - This is an exclusive follower and only this file descriptor will
the exclusive follower then an attempt to become one will return receive CEC messages for processing. In addition it will put the
the ``EBUSY`` error code. You cannot become a follower if CEC device into passthrough mode, allowing the exclusive follower
:ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>` is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>` to handle most core messages instead of relying on the CEC
was specified, the ``EINVAL`` error code is returned in that case. framework for that. If someone else is already the exclusive
follower then an attempt to become one will return the ``EBUSY`` error
- .. _`CEC-MODE-EXCL-FOLLOWER-PASSTHRU`: code. You cannot become a follower if :ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>`
is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>` was specified,
- ``CEC_MODE_EXCL_FOLLOWER_PASSTHRU`` the ``EINVAL`` error code is returned in that case.
* .. _`CEC-MODE-MONITOR`:
- 0x30
- ``CEC_MODE_MONITOR``
- This is an exclusive follower and only this file descriptor will - 0xe0
receive CEC messages for processing. In addition it will put the - Put the file descriptor into monitor mode. Can only be used in
CEC device into passthrough mode, allowing the exclusive follower combination with :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`, otherwise EINVAL error
to handle most core messages instead of relying on the CEC code will be returned. In monitor mode all messages this CEC
framework for that. If someone else is already the exclusive device transmits and all messages it receives (both broadcast
follower then an attempt to become one will return the ``EBUSY`` error messages and directed messages for one its logical addresses) will
code. You cannot become a follower if :ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>` be reported. This is very useful for debugging. This is only
is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>` was specified, allowed if the process has the ``CAP_NET_ADMIN`` capability. If
the ``EINVAL`` error code is returned in that case. that is not set, then the ``EPERM`` error code is returned.
* .. _`CEC-MODE-MONITOR-ALL`:
- .. _`CEC-MODE-MONITOR`:
- ``CEC_MODE_MONITOR_ALL``
- ``CEC_MODE_MONITOR`` - 0xf0
- Put the file descriptor into 'monitor all' mode. Can only be used
- 0xe0 in combination with :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`, otherwise
the ``EINVAL`` error code will be returned. In 'monitor all' mode all messages
- Put the file descriptor into monitor mode. Can only be used in this CEC device transmits and all messages it receives, including
combination with :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`, otherwise EINVAL error directed messages for other CEC devices will be reported. This is
code will be returned. In monitor mode all messages this CEC very useful for debugging, but not all devices support this. This
device transmits and all messages it receives (both broadcast mode requires that the :ref:`CEC_CAP_MONITOR_ALL <CEC-CAP-MONITOR-ALL>` capability is set,
messages and directed messages for one its logical addresses) will otherwise the ``EINVAL`` error code is returned. This is only allowed if
be reported. This is very useful for debugging. This is only the process has the ``CAP_NET_ADMIN`` capability. If that is not
allowed if the process has the ``CAP_NET_ADMIN`` capability. If set, then the ``EPERM`` error code is returned.
that is not set, then the ``EPERM`` error code is returned.
- .. _`CEC-MODE-MONITOR-ALL`:
- ``CEC_MODE_MONITOR_ALL``
- 0xf0
- Put the file descriptor into 'monitor all' mode. Can only be used
in combination with :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`, otherwise
the ``EINVAL`` error code will be returned. In 'monitor all' mode all messages
this CEC device transmits and all messages it receives, including
directed messages for other CEC devices will be reported. This is
very useful for debugging, but not all devices support this. This
mode requires that the :ref:`CEC_CAP_MONITOR_ALL <CEC-CAP-MONITOR-ALL>` capability is set,
otherwise the ``EINVAL`` error code is returned. This is only allowed if
the process has the ``CAP_NET_ADMIN`` capability. If that is not
set, then the ``EPERM`` error code is returned.
Core message processing details: Core message processing details:
...@@ -220,76 +193,58 @@ Core message processing details: ...@@ -220,76 +193,58 @@ Core message processing details:
:stub-columns: 0 :stub-columns: 0
:widths: 1 8 :widths: 1 8
* .. _`CEC-MSG-GET-CEC-VERSION`:
- .. _`CEC-MSG-GET-CEC-VERSION`:
- ``CEC_MSG_GET_CEC_VERSION``
- ``CEC_MSG_GET_CEC_VERSION`` - When in passthrough mode this message has to be handled by
userspace, otherwise the core will return the CEC version that was
- When in passthrough mode this message has to be handled by set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`.
userspace, otherwise the core will return the CEC version that was * .. _`CEC-MSG-GIVE-DEVICE-VENDOR-ID`:
set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`.
- ``CEC_MSG_GIVE_DEVICE_VENDOR_ID``
- .. _`CEC-MSG-GIVE-DEVICE-VENDOR-ID`: - When in passthrough mode this message has to be handled by
userspace, otherwise the core will return the vendor ID that was
- ``CEC_MSG_GIVE_DEVICE_VENDOR_ID`` set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`.
* .. _`CEC-MSG-ABORT`:
- When in passthrough mode this message has to be handled by
userspace, otherwise the core will return the vendor ID that was - ``CEC_MSG_ABORT``
set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`. - When in passthrough mode this message has to be handled by
userspace, otherwise the core will return a feature refused
- .. _`CEC-MSG-ABORT`: message as per the specification.
* .. _`CEC-MSG-GIVE-PHYSICAL-ADDR`:
- ``CEC_MSG_ABORT``
- ``CEC_MSG_GIVE_PHYSICAL_ADDR``
- When in passthrough mode this message has to be handled by - When in passthrough mode this message has to be handled by
userspace, otherwise the core will return a feature refused userspace, otherwise the core will report the current physical
message as per the specification. address.
* .. _`CEC-MSG-GIVE-OSD-NAME`:
- .. _`CEC-MSG-GIVE-PHYSICAL-ADDR`:
- ``CEC_MSG_GIVE_OSD_NAME``
- ``CEC_MSG_GIVE_PHYSICAL_ADDR`` - When in passthrough mode this message has to be handled by
userspace, otherwise the core will report the current OSD name as
- When in passthrough mode this message has to be handled by was set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`.
userspace, otherwise the core will report the current physical * .. _`CEC-MSG-GIVE-FEATURES`:
address.
- ``CEC_MSG_GIVE_FEATURES``
- .. _`CEC-MSG-GIVE-OSD-NAME`: - When in passthrough mode this message has to be handled by
userspace, otherwise the core will report the current features as
- ``CEC_MSG_GIVE_OSD_NAME`` was set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
or the message is ignored if the CEC version was older than 2.0.
- When in passthrough mode this message has to be handled by * .. _`CEC-MSG-USER-CONTROL-PRESSED`:
userspace, otherwise the core will report the current OSD name as
was set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`. - ``CEC_MSG_USER_CONTROL_PRESSED``
- If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set, then generate a remote control key
- .. _`CEC-MSG-GIVE-FEATURES`: press. This message is always passed on to userspace.
* .. _`CEC-MSG-USER-CONTROL-RELEASED`:
- ``CEC_MSG_GIVE_FEATURES``
- ``CEC_MSG_USER_CONTROL_RELEASED``
- When in passthrough mode this message has to be handled by - If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set, then generate a remote control key
userspace, otherwise the core will report the current features as release. This message is always passed on to userspace.
was set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` * .. _`CEC-MSG-REPORT-PHYSICAL-ADDR`:
or the message is ignored if the CEC version was older than 2.0.
- ``CEC_MSG_REPORT_PHYSICAL_ADDR``
- .. _`CEC-MSG-USER-CONTROL-PRESSED`: - The CEC framework will make note of the reported physical address
and then just pass the message on to userspace.
- ``CEC_MSG_USER_CONTROL_PRESSED``
- If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set, then generate a remote control key
press. This message is always passed on to userspace.
- .. _`CEC-MSG-USER-CONTROL-RELEASED`:
- ``CEC_MSG_USER_CONTROL_RELEASED``
- If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set, then generate a remote control key
release. This message is always passed on to userspace.
- .. _`CEC-MSG-REPORT-PHYSICAL-ADDR`:
- ``CEC_MSG_REPORT_PHYSICAL_ADDR``
- The CEC framework will make note of the reported physical address
and then just pass the message on to userspace.
......
...@@ -86,173 +86,98 @@ result. ...@@ -86,173 +86,98 @@ result.
:stub-columns: 0 :stub-columns: 0
:widths: 1 1 16 :widths: 1 1 16
* - __u64
- .. row 1 - ``tx_ts``
- Timestamp in ns of when the last byte of the message was transmitted.
- __u64 The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access
the same clock from userspace use :c:func:`clock_gettime`.
- ``tx_ts`` * - __u64
- ``rx_ts``
- Timestamp in ns of when the last byte of the message was transmitted. - Timestamp in ns of when the last byte of the message was received.
The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access
the same clock from userspace use :c:func:`clock_gettime`. the same clock from userspace use :c:func:`clock_gettime`.
* - __u32
- .. row 2 - ``len``
- The length of the message. For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` this is filled in
- __u64 by the application. The driver will fill this in for
:ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`. For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` it will be
- ``rx_ts`` filled in by the driver with the length of the reply message if ``reply`` was set.
* - __u32
- Timestamp in ns of when the last byte of the message was received. - ``timeout``
The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access - The timeout in milliseconds. This is the time the device will wait
the same clock from userspace use :c:func:`clock_gettime`. for a message to be received before timing out. If it is set to 0,
then it will wait indefinitely when it is called by :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`.
- .. row 3 If it is 0 and it is called by :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`,
then it will be replaced by 1000 if the ``reply`` is non-zero or
- __u32 ignored if ``reply`` is 0.
* - __u32
- ``len`` - ``sequence``
- A non-zero sequence number is automatically assigned by the CEC framework
- The length of the message. For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` this is filled in for all transmitted messages. It is used by the CEC framework when it queues
by the application. The driver will fill this in for the transmit result (when transmit was called in non-blocking mode). This
:ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`. For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` it will be allows the application to associate the received message with the original
filled in by the driver with the length of the reply message if ``reply`` was set. transmit.
* - __u32
- .. row 4 - ``flags``
- Flags. No flags are defined yet, so set this to 0.
- __u32 * - __u8
- ``tx_status``
- ``timeout`` - The status bits of the transmitted message. See
:ref:`cec-tx-status` for the possible status values. It is 0 if
- The timeout in milliseconds. This is the time the device will wait this messages was received, not transmitted.
for a message to be received before timing out. If it is set to 0, * - __u8
then it will wait indefinitely when it is called by :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`. - ``msg[16]``
If it is 0 and it is called by :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`, - The message payload. For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` this is filled in by the
then it will be replaced by 1000 if the ``reply`` is non-zero or application. The driver will fill this in for :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`.
ignored if ``reply`` is 0. For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` it will be filled in by the driver with
the payload of the reply message if ``timeout`` was set.
- .. row 5 * - __u8
- ``reply``
- __u32 - Wait until this message is replied. If ``reply`` is 0 and the
``timeout`` is 0, then don't wait for a reply but return after
- ``sequence`` transmitting the message. Ignored by :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`.
The case where ``reply`` is 0 (this is the opcode for the Feature Abort
- A non-zero sequence number is automatically assigned by the CEC framework message) and ``timeout`` is non-zero is specifically allowed to make it
for all transmitted messages. It is used by the CEC framework when it queues possible to send a message and wait up to ``timeout`` milliseconds for a
the transmit result (when transmit was called in non-blocking mode). This Feature Abort reply. In this case ``rx_status`` will either be set
allows the application to associate the received message with the original to :ref:`CEC_RX_STATUS_TIMEOUT <CEC-RX-STATUS-TIMEOUT>` or
transmit. :ref:`CEC_RX_STATUS_FEATURE_ABORT <CEC-RX-STATUS-FEATURE-ABORT>`.
* - __u8
- .. row 6 - ``rx_status``
- The status bits of the received message. See
- __u32 :ref:`cec-rx-status` for the possible status values. It is 0 if
this message was transmitted, not received, unless this is the
- ``flags`` reply to a transmitted message. In that case both ``rx_status``
and ``tx_status`` are set.
- Flags. No flags are defined yet, so set this to 0. * - __u8
- ``tx_status``
- .. row 7 - The status bits of the transmitted message. See
:ref:`cec-tx-status` for the possible status values. It is 0 if
- __u8 this messages was received, not transmitted.
* - __u8
- ``tx_status`` - ``tx_arb_lost_cnt``
- A counter of the number of transmit attempts that resulted in the
- The status bits of the transmitted message. See Arbitration Lost error. This is only set if the hardware supports
:ref:`cec-tx-status` for the possible status values. It is 0 if this, otherwise it is always 0. This counter is only valid if the
this messages was received, not transmitted. :ref:`CEC_TX_STATUS_ARB_LOST <CEC-TX-STATUS-ARB-LOST>` status bit is set.
* - __u8
- .. row 8 - ``tx_nack_cnt``
- A counter of the number of transmit attempts that resulted in the
- __u8 Not Acknowledged error. This is only set if the hardware supports
this, otherwise it is always 0. This counter is only valid if the
- ``msg[16]`` :ref:`CEC_TX_STATUS_NACK <CEC-TX-STATUS-NACK>` status bit is set.
* - __u8
- The message payload. For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` this is filled in by the - ``tx_low_drive_cnt``
application. The driver will fill this in for :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`. - A counter of the number of transmit attempts that resulted in the
For :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` it will be filled in by the driver with Arbitration Lost error. This is only set if the hardware supports
the payload of the reply message if ``timeout`` was set. this, otherwise it is always 0. This counter is only valid if the
:ref:`CEC_TX_STATUS_LOW_DRIVE <CEC-TX-STATUS-LOW-DRIVE>` status bit is set.
- .. row 8 * - __u8
- ``tx_error_cnt``
- __u8 - A counter of the number of transmit errors other than Arbitration
Lost or Not Acknowledged. This is only set if the hardware
- ``reply`` supports this, otherwise it is always 0. This counter is only
valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set.
- Wait until this message is replied. If ``reply`` is 0 and the
``timeout`` is 0, then don't wait for a reply but return after
transmitting the message. Ignored by :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`.
The case where ``reply`` is 0 (this is the opcode for the Feature Abort
message) and ``timeout`` is non-zero is specifically allowed to make it
possible to send a message and wait up to ``timeout`` milliseconds for a
Feature Abort reply. In this case ``rx_status`` will either be set
to :ref:`CEC_RX_STATUS_TIMEOUT <CEC-RX-STATUS-TIMEOUT>` or
:ref:`CEC_RX_STATUS_FEATURE_ABORT <CEC-RX-STATUS-FEATURE-ABORT>`.
- .. row 9
- __u8
- ``rx_status``
- The status bits of the received message. See
:ref:`cec-rx-status` for the possible status values. It is 0 if
this message was transmitted, not received, unless this is the
reply to a transmitted message. In that case both ``rx_status``
and ``tx_status`` are set.
- .. row 10
- __u8
- ``tx_status``
- The status bits of the transmitted message. See
:ref:`cec-tx-status` for the possible status values. It is 0 if
this messages was received, not transmitted.
- .. row 11
- __u8
- ``tx_arb_lost_cnt``
- A counter of the number of transmit attempts that resulted in the
Arbitration Lost error. This is only set if the hardware supports
this, otherwise it is always 0. This counter is only valid if the
:ref:`CEC_TX_STATUS_ARB_LOST <CEC-TX-STATUS-ARB-LOST>` status bit is set.
- .. row 12
- __u8
- ``tx_nack_cnt``
- A counter of the number of transmit attempts that resulted in the
Not Acknowledged error. This is only set if the hardware supports
this, otherwise it is always 0. This counter is only valid if the
:ref:`CEC_TX_STATUS_NACK <CEC-TX-STATUS-NACK>` status bit is set.
- .. row 13
- __u8
- ``tx_low_drive_cnt``
- A counter of the number of transmit attempts that resulted in the
Arbitration Lost error. This is only set if the hardware supports
this, otherwise it is always 0. This counter is only valid if the
:ref:`CEC_TX_STATUS_LOW_DRIVE <CEC-TX-STATUS-LOW-DRIVE>` status bit is set.
- .. row 14
- __u8
- ``tx_error_cnt``
- A counter of the number of transmit errors other than Arbitration
Lost or Not Acknowledged. This is only set if the hardware
supports this, otherwise it is always 0. This counter is only
valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set.
.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| .. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
...@@ -264,64 +189,46 @@ result. ...@@ -264,64 +189,46 @@ result.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 16 :widths: 3 1 16
* .. _`CEC-TX-STATUS-OK`:
- .. _`CEC-TX-STATUS-OK`:
- ``CEC_TX_STATUS_OK``
- ``CEC_TX_STATUS_OK`` - 0x01
- The message was transmitted successfully. This is mutually
- 0x01 exclusive with :ref:`CEC_TX_STATUS_MAX_RETRIES <CEC-TX-STATUS-MAX-RETRIES>`. Other bits can still
be set if earlier attempts met with failure before the transmit
- The message was transmitted successfully. This is mutually was eventually successful.
exclusive with :ref:`CEC_TX_STATUS_MAX_RETRIES <CEC-TX-STATUS-MAX-RETRIES>`. Other bits can still * .. _`CEC-TX-STATUS-ARB-LOST`:
be set if earlier attempts met with failure before the transmit
was eventually successful. - ``CEC_TX_STATUS_ARB_LOST``
- 0x02
- .. _`CEC-TX-STATUS-ARB-LOST`: - CEC line arbitration was lost.
* .. _`CEC-TX-STATUS-NACK`:
- ``CEC_TX_STATUS_ARB_LOST``
- ``CEC_TX_STATUS_NACK``
- 0x02 - 0x04
- Message was not acknowledged.
- CEC line arbitration was lost. * .. _`CEC-TX-STATUS-LOW-DRIVE`:
- .. _`CEC-TX-STATUS-NACK`: - ``CEC_TX_STATUS_LOW_DRIVE``
- 0x08
- ``CEC_TX_STATUS_NACK`` - Low drive was detected on the CEC bus. This indicates that a
follower detected an error on the bus and requests a
- 0x04 retransmission.
* .. _`CEC-TX-STATUS-ERROR`:
- Message was not acknowledged.
- ``CEC_TX_STATUS_ERROR``
- .. _`CEC-TX-STATUS-LOW-DRIVE`: - 0x10
- Some error occurred. This is used for any errors that do not fit
- ``CEC_TX_STATUS_LOW_DRIVE`` the previous two, either because the hardware could not tell which
error occurred, or because the hardware tested for other
- 0x08 conditions besides those two.
* .. _`CEC-TX-STATUS-MAX-RETRIES`:
- Low drive was detected on the CEC bus. This indicates that a
follower detected an error on the bus and requests a - ``CEC_TX_STATUS_MAX_RETRIES``
retransmission. - 0x20
- The transmit failed after one or more retries. This status bit is
- .. _`CEC-TX-STATUS-ERROR`: mutually exclusive with :ref:`CEC_TX_STATUS_OK <CEC-TX-STATUS-OK>`. Other bits can still
be set to explain which failures were seen.
- ``CEC_TX_STATUS_ERROR``
- 0x10
- Some error occurred. This is used for any errors that do not fit
the previous two, either because the hardware could not tell which
error occurred, or because the hardware tested for other
conditions besides those two.
- .. _`CEC-TX-STATUS-MAX-RETRIES`:
- ``CEC_TX_STATUS_MAX_RETRIES``
- 0x20
- The transmit failed after one or more retries. This status bit is
mutually exclusive with :ref:`CEC_TX_STATUS_OK <CEC-TX-STATUS-OK>`. Other bits can still
be set to explain which failures were seen.
.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| .. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
...@@ -333,32 +240,23 @@ result. ...@@ -333,32 +240,23 @@ result.
:stub-columns: 0 :stub-columns: 0
:widths: 3 1 16 :widths: 3 1 16
* .. _`CEC-RX-STATUS-OK`:
- .. _`CEC-RX-STATUS-OK`: - ``CEC_RX_STATUS_OK``
- 0x01
- ``CEC_RX_STATUS_OK`` - The message was received successfully.
* .. _`CEC-RX-STATUS-TIMEOUT`:
- 0x01
- The message was received successfully.
- .. _`CEC-RX-STATUS-TIMEOUT`:
- ``CEC_RX_STATUS_TIMEOUT``
- 0x02
- The reply to an earlier transmitted message timed out.
- .. _`CEC-RX-STATUS-FEATURE-ABORT`:
- ``CEC_RX_STATUS_FEATURE_ABORT``
- 0x04 - ``CEC_RX_STATUS_TIMEOUT``
- 0x02
- The reply to an earlier transmitted message timed out.
* .. _`CEC-RX-STATUS-FEATURE-ABORT`:
- The message was received successfully but the reply was - ``CEC_RX_STATUS_FEATURE_ABORT``
``CEC_MSG_FEATURE_ABORT``. This status is only set if this message - 0x04
was the reply to an earlier transmitted message. - The message was received successfully but the reply was
``CEC_MSG_FEATURE_ABORT``. This status is only set if this message
was the reply to an earlier transmitted message.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment