2.5. ioctl CEC_ADAP_G_CAPS

2.5.1. 名称

CEC_ADAP_G_CAPS - 查询设备功能

2.5.2. 概要

CEC_ADAP_G_CAPS

int ioctl(int fd, CEC_ADAP_G_CAPS, struct cec_caps *argp)

2.5.3. 参数

fd

open() 返回的文件描述符。

argp

2.5.4. 描述

所有 CEC 设备必须支持 ioctl CEC_ADAP_G_CAPS。要查询设备信息,应用程序使用指向结构体 cec_caps 的指针调用 ioctl。驱动程序会填充该结构并将信息返回给应用程序。ioctl 永远不会失败。

type cec_caps
struct cec_caps

char

driver[32]

CEC 适配器驱动程序的名称。

char

name[32]

此 CEC 适配器的名称。 drivername 的组合必须是唯一的。

__u32

available_log_addrs

可以配置的最大逻辑地址数。

__u32

capabilities

CEC 适配器的功能,请参见 CEC 功能标志

__u32

version

CEC 框架 API 版本,使用 KERNEL_VERSION() 宏格式化。

CEC 功能标志

CEC_CAP_PHYS_ADDR

0x00000001

用户空间必须通过调用 ioctl CEC_ADAP_S_PHYS_ADDR 来配置物理地址。如果未设置此功能,则当设置 EDID(对于 HDMI 接收器)或读取 EDID(对于 HDMI 发射器)时,内核会处理物理地址的设置。

CEC_CAP_LOG_ADDRS

0x00000002

用户空间必须通过调用 ioctl CEC_ADAP_S_LOG_ADDRS 来配置逻辑地址。如果未设置此功能,则内核将配置此项。

CEC_CAP_TRANSMIT

0x00000004

用户空间可以通过调用 ioctl CEC_TRANSMIT 来发送 CEC 消息。这意味着用户空间也可以成为一个跟随者,因为能够发送消息是成为跟随者的先决条件。如果未设置此功能,则内核将处理所有 CEC 发送并处理它接收的所有 CEC 消息。

CEC_CAP_PASSTHROUGH

0x00000008

用户空间可以通过调用 ioctl CEC_S_MODE 来使用直通模式。

CEC_CAP_RC

0x00000010

此适配器支持遥控协议。

CEC_CAP_MONITOR_ALL

0x00000020

CEC 硬件可以监控所有消息,而不仅仅是定向和广播消息。

CEC_CAP_NEEDS_HPD

0x00000040

仅当 HDMI 热插拔检测引脚为高电平时,CEC 硬件才处于活动状态。 这使得无法使用 CEC 来唤醒在待机模式下将 HPD 引脚设置为低电平但保持 CEC 总线处于活动状态的显示器。

CEC_CAP_MONITOR_PIN

0x00000080

CEC 硬件可以监控 CEC 引脚从低电压到高电压以及从高电压到低电压的变化。在引脚监控模式下,应用程序将接收 CEC_EVENT_PIN_CEC_LOWCEC_EVENT_PIN_CEC_HIGH 事件。

CEC_CAP_CONNECTOR_INFO

0x00000100

如果设置了此功能,则可以使用 ioctl CEC_ADAP_G_CONNECTOR_INFO

CEC_CAP_REPLY_VENDOR_ID

0x00000200

如果设置了此功能,则可以使用 CEC_MSG_FL_REPLY_VENDOR_ID

2.5.5. 返回值

成功时返回 0,错误时返回 -1 并且 errno 变量会被适当设置。通用错误代码在 通用错误代码 章节中描述。