DRM全解析 —— connector详解(2)

接前一篇文章:DRM全解析 —— connector详解(1)

本文继续对DRM中connector的核心结构struct drm_connector的成员进行释义。

3. drm_encoder结构释义

(9)struct mutex mutex

    /*** @mutex: Lock for general connector state, but currently only protects* @registered. Most of the connector state is still protected by* &drm_mode_config.mutex.*/struct mutex mutex;

锁定常规connector的状态,但当前仅保护@registered。绝大部分conector状态仍受&drm_mode_config.mutex保护。

(10)unsigned index

    /*** @index: Compacted connector index, which matches the position inside* the mode_config.list for drivers not supporting hot-add/removing. Can* be used as an array index. It is invariant over the lifetime of the* connector.*/unsigned index;

压缩的connector索引,其与不支持热添加/删除的驱动程序的mode_config.list中的位置相匹配。可以用作数组索引。它在connector的生命期内是不变的。

(11)int connector_type

    /*** @connector_type:* one of the DRM_MODE_CONNECTOR_<foo> types from drm_mode.h*/int connector_type;

drm_mode.h中的DRM_MODE_CONNECTOR_<foo>类型之一。

(12)int connector_type_id

    /** @connector_type_id: index into connector type enum */int connector_type_id;

connector类型枚举的索引。

(13)bool interlace_allowed

    /*** @interlace_allowed:* Can this connector handle interlaced modes? Only used by* drm_helper_probe_single_connector_modes() for mode filtering.*/bool interlace_allowed;

这个connector能处理交错模式吗?仅由drm_helper_probe_single_connector_modes()使用,用于模式筛选。

(14)bool doublescan_allowed

    /*** @doublescan_allowed:* Can this connector handle doublescan? Only used by* drm_helper_probe_single_connector_modes() for mode filtering.*/bool doublescan_allowed;

这个connector能处理doublescan吗?仅由drm_helper_probe_single_connector_modes()使用,用于模式筛选。

(15)bool stereo_allowed

    /*** @stereo_allowed:* Can this connector handle stereo modes? Only used by* drm_helper_probe_single_connector_modes() for mode filtering.*/bool stereo_allowed;

这个connector能处理stereo模式吗?仅由drm_helper_probe_single_connector_modes()使用,用于模式筛选。

(16)bool ycbcr_420_allowed

    /*** @ycbcr_420_allowed : This bool indicates if this connector is* capable of handling YCBCR 420 output. While parsing the EDID* blocks it's very helpful to know if the source is capable of* handling YCBCR 420 outputs.*/bool ycbcr_420_allowed;

此bool项指示该connector是否能够处理YCBCR 420输出。在解析EDID块时,了解源是否能够处理YCBCR420输出是非常有帮助的。

(17)enum drm_connector_registration_state registration_state

    /*** @registration_state: Is this connector initializing, exposed* (registered) with userspace, or unregistered?** Protected by @mutex.*/enum drm_connector_registration_state registration_state;

此connector是正在初始化、暴露(注册)给用户空间还是未注册?

(18)struct list_head modes

    /*** @modes:* Modes available on this connector (from fill_modes() + user).* Protected by &drm_mode_config.mutex.*/struct list_head modes;

此connector上可用的模式(来自fill_mode() + 用户)。

受&drm_mode_config.mutex保护。

(19)enum drm_connector_status status

    /*** @status:* One of the drm_connector_status enums (connected, not, or unknown).* Protected by &drm_mode_config.mutex.*/enum drm_connector_status status;

drm_connector_status枚举之一(connected、not或unknown)。

由&drm_mode_config.mutex保护。

(20)struct list_head probed_modes

    /*** @probed_modes:* These are modes added by probing with DDC or the BIOS, before* filtering is applied. Used by the probe helpers. Protected by* &drm_mode_config.mutex.*/struct list_head probed_modes;

这些模式是在应用过滤之前,通过DDC或BIOS进行探测而添加的。由probe helpers使用。由&drm_mode_config.mutex保护。

drm_encoder结构中其余成员将在下一篇文章中继续深入释义。

本文链接:https://my.lmcjl.com/post/15636.html

展开阅读全文

4 评论

留下您的评论.