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_G_CAPS: 554f38fcaSMauro Carvalho Chehab 654f38fcaSMauro Carvalho Chehab********************* 754f38fcaSMauro Carvalho Chehabioctl CEC_ADAP_G_CAPS 854f38fcaSMauro Carvalho Chehab********************* 954f38fcaSMauro Carvalho Chehab 1054f38fcaSMauro Carvalho ChehabName 1154f38fcaSMauro Carvalho Chehab==== 1254f38fcaSMauro Carvalho Chehab 1354f38fcaSMauro Carvalho ChehabCEC_ADAP_G_CAPS - Query device capabilities 1454f38fcaSMauro Carvalho Chehab 1554f38fcaSMauro Carvalho ChehabSynopsis 1654f38fcaSMauro Carvalho Chehab======== 1754f38fcaSMauro Carvalho Chehab 1801fae02dSMauro Carvalho Chehab.. c:macro:: CEC_ADAP_G_CAPS 1901fae02dSMauro Carvalho Chehab 2001fae02dSMauro Carvalho Chehab``int ioctl(int fd, CEC_ADAP_G_CAPS, struct cec_caps *argp)`` 2154f38fcaSMauro Carvalho Chehab 2254f38fcaSMauro Carvalho ChehabArguments 2354f38fcaSMauro Carvalho Chehab========= 2454f38fcaSMauro Carvalho Chehab 2554f38fcaSMauro Carvalho Chehab``fd`` 2601fae02dSMauro Carvalho Chehab File descriptor returned by :c:func:`open()`. 2754f38fcaSMauro Carvalho Chehab 2854f38fcaSMauro Carvalho Chehab``argp`` 2954f38fcaSMauro Carvalho Chehab 3054f38fcaSMauro Carvalho ChehabDescription 3154f38fcaSMauro Carvalho Chehab=========== 3254f38fcaSMauro Carvalho Chehab 3354f38fcaSMauro Carvalho ChehabAll cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`. To query 3454f38fcaSMauro Carvalho Chehabdevice information, applications call the ioctl with a pointer to a 3554f38fcaSMauro Carvalho Chehabstruct :c:type:`cec_caps`. The driver fills the structure and 3654f38fcaSMauro Carvalho Chehabreturns the information to the application. The ioctl never fails. 3754f38fcaSMauro Carvalho Chehab 38*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{1.2cm}|p{2.5cm}|p{13.6cm}| 3954f38fcaSMauro Carvalho Chehab 4054f38fcaSMauro Carvalho Chehab.. c:type:: cec_caps 4154f38fcaSMauro Carvalho Chehab 4254f38fcaSMauro Carvalho Chehab.. flat-table:: struct cec_caps 4354f38fcaSMauro Carvalho Chehab :header-rows: 0 4454f38fcaSMauro Carvalho Chehab :stub-columns: 0 4554f38fcaSMauro Carvalho Chehab :widths: 1 1 16 4654f38fcaSMauro Carvalho Chehab 4754f38fcaSMauro Carvalho Chehab * - char 4854f38fcaSMauro Carvalho Chehab - ``driver[32]`` 4954f38fcaSMauro Carvalho Chehab - The name of the cec adapter driver. 5054f38fcaSMauro Carvalho Chehab * - char 5154f38fcaSMauro Carvalho Chehab - ``name[32]`` 5254f38fcaSMauro Carvalho Chehab - The name of this CEC adapter. The combination ``driver`` and 5354f38fcaSMauro Carvalho Chehab ``name`` must be unique. 5454f38fcaSMauro Carvalho Chehab * - __u32 55b16c928cSHans Verkuil - ``available_log_addrs`` 56b16c928cSHans Verkuil - The maximum number of logical addresses that can be configured. 57b16c928cSHans Verkuil * - __u32 5854f38fcaSMauro Carvalho Chehab - ``capabilities`` 5954f38fcaSMauro Carvalho Chehab - The capabilities of the CEC adapter, see 6054f38fcaSMauro Carvalho Chehab :ref:`cec-capabilities`. 6154f38fcaSMauro Carvalho Chehab * - __u32 6254f38fcaSMauro Carvalho Chehab - ``version`` 6354f38fcaSMauro Carvalho Chehab - CEC Framework API version, formatted with the ``KERNEL_VERSION()`` 6454f38fcaSMauro Carvalho Chehab macro. 6554f38fcaSMauro Carvalho Chehab 66*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.4cm}| 6754f38fcaSMauro Carvalho Chehab 6854f38fcaSMauro Carvalho Chehab.. _cec-capabilities: 6954f38fcaSMauro Carvalho Chehab 7054f38fcaSMauro Carvalho Chehab.. flat-table:: CEC Capabilities Flags 7154f38fcaSMauro Carvalho Chehab :header-rows: 0 7254f38fcaSMauro Carvalho Chehab :stub-columns: 0 7354f38fcaSMauro Carvalho Chehab :widths: 3 1 8 7454f38fcaSMauro Carvalho Chehab 7554f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-PHYS-ADDR`: 7654f38fcaSMauro Carvalho Chehab 7754f38fcaSMauro Carvalho Chehab - ``CEC_CAP_PHYS_ADDR`` 7854f38fcaSMauro Carvalho Chehab - 0x00000001 7954f38fcaSMauro Carvalho Chehab - Userspace has to configure the physical address by calling 8054f38fcaSMauro Carvalho Chehab :ref:`ioctl CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>`. If 8154f38fcaSMauro Carvalho Chehab this capability isn't set, then setting the physical address is 8254f38fcaSMauro Carvalho Chehab handled by the kernel whenever the EDID is set (for an HDMI 8354f38fcaSMauro Carvalho Chehab receiver) or read (for an HDMI transmitter). 8454f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-LOG-ADDRS`: 8554f38fcaSMauro Carvalho Chehab 8654f38fcaSMauro Carvalho Chehab - ``CEC_CAP_LOG_ADDRS`` 8754f38fcaSMauro Carvalho Chehab - 0x00000002 8854f38fcaSMauro Carvalho Chehab - Userspace has to configure the logical addresses by calling 8954f38fcaSMauro Carvalho Chehab :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`. If 9054f38fcaSMauro Carvalho Chehab this capability isn't set, then the kernel will have configured 9154f38fcaSMauro Carvalho Chehab this. 9254f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-TRANSMIT`: 9354f38fcaSMauro Carvalho Chehab 9454f38fcaSMauro Carvalho Chehab - ``CEC_CAP_TRANSMIT`` 9554f38fcaSMauro Carvalho Chehab - 0x00000004 9654f38fcaSMauro Carvalho Chehab - Userspace can transmit CEC messages by calling 9754f38fcaSMauro Carvalho Chehab :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. This implies that 9854f38fcaSMauro Carvalho Chehab userspace can be a follower as well, since being able to transmit 9954f38fcaSMauro Carvalho Chehab messages is a prerequisite of becoming a follower. If this 10054f38fcaSMauro Carvalho Chehab capability isn't set, then the kernel will handle all CEC 10154f38fcaSMauro Carvalho Chehab transmits and process all CEC messages it receives. 10254f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-PASSTHROUGH`: 10354f38fcaSMauro Carvalho Chehab 10454f38fcaSMauro Carvalho Chehab - ``CEC_CAP_PASSTHROUGH`` 10554f38fcaSMauro Carvalho Chehab - 0x00000008 10654f38fcaSMauro Carvalho Chehab - Userspace can use the passthrough mode by calling 10754f38fcaSMauro Carvalho Chehab :ref:`ioctl CEC_S_MODE <CEC_S_MODE>`. 10854f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-RC`: 10954f38fcaSMauro Carvalho Chehab 11054f38fcaSMauro Carvalho Chehab - ``CEC_CAP_RC`` 11154f38fcaSMauro Carvalho Chehab - 0x00000010 11254f38fcaSMauro Carvalho Chehab - This adapter supports the remote control protocol. 11354f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-MONITOR-ALL`: 11454f38fcaSMauro Carvalho Chehab 11554f38fcaSMauro Carvalho Chehab - ``CEC_CAP_MONITOR_ALL`` 11654f38fcaSMauro Carvalho Chehab - 0x00000020 11754f38fcaSMauro Carvalho Chehab - The CEC hardware can monitor all messages, not just directed and 11854f38fcaSMauro Carvalho Chehab broadcast messages. 11954f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-NEEDS-HPD`: 12054f38fcaSMauro Carvalho Chehab 12154f38fcaSMauro Carvalho Chehab - ``CEC_CAP_NEEDS_HPD`` 12254f38fcaSMauro Carvalho Chehab - 0x00000040 12354f38fcaSMauro Carvalho Chehab - The CEC hardware is only active if the HDMI Hotplug Detect pin is 12454f38fcaSMauro Carvalho Chehab high. This makes it impossible to use CEC to wake up displays that 12554f38fcaSMauro Carvalho Chehab set the HPD pin low when in standby mode, but keep the CEC bus 12654f38fcaSMauro Carvalho Chehab alive. 12754f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-MONITOR-PIN`: 12854f38fcaSMauro Carvalho Chehab 12954f38fcaSMauro Carvalho Chehab - ``CEC_CAP_MONITOR_PIN`` 13054f38fcaSMauro Carvalho Chehab - 0x00000080 13154f38fcaSMauro Carvalho Chehab - The CEC hardware can monitor CEC pin changes from low to high voltage 13254f38fcaSMauro Carvalho Chehab and vice versa. When in pin monitoring mode the application will 13354f38fcaSMauro Carvalho Chehab receive ``CEC_EVENT_PIN_CEC_LOW`` and ``CEC_EVENT_PIN_CEC_HIGH`` events. 13454f38fcaSMauro Carvalho Chehab * .. _`CEC-CAP-CONNECTOR-INFO`: 13554f38fcaSMauro Carvalho Chehab 13654f38fcaSMauro Carvalho Chehab - ``CEC_CAP_CONNECTOR_INFO`` 13754f38fcaSMauro Carvalho Chehab - 0x00000100 13854f38fcaSMauro Carvalho Chehab - If this capability is set, then :ref:`CEC_ADAP_G_CONNECTOR_INFO` can 13954f38fcaSMauro Carvalho Chehab be used. 14054f38fcaSMauro Carvalho Chehab 14154f38fcaSMauro Carvalho ChehabReturn Value 14254f38fcaSMauro Carvalho Chehab============ 14354f38fcaSMauro Carvalho Chehab 14454f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set 14554f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the 14654f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter. 147