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 变量。通用错误代码在 通用错误代码 章节中描述。