【DRM】DRM bridge驱动调用流程简单分析
这次为大家带来drm_bridge驱动的调用过程分析。
1.drm_bridge结构体
struct drm_bridge {
struct drm_private_obj base;
struct drm_device *dev;
struct drm_encoder *encoder;
#ifdef CONFIG_OF
struct device_node *of_node;//dts结点
#endif
const struct drm_bridge_timings *timings;
const struct drm_bridge_funcs *funcs;
enum drm_bridge_ops ops;
int type;
bool interlace_allowed;
struct i2c_adapter *ddc;
...
void (*hpd_cb)(void *data, enum drm_connector_status status);
void *hpd_data;
};
-
struct drm_private_obj base:驱动程序私有原子对象的基础结构,由drm_atomic_private_obj_init()初始化,它的生命周期与DRM设备的生命周期相关联。其中的state对象存储当前的atomic state,drm_private_state_funcs结构体管理atomic state的复制与销毁(atomic_duplicate_state和atomic_destroy_state);
-
struct drm_device *dev:drm device驱动,i.MX平台上驱动程序由vivante提供,实现gem的管理;
-
struct drm_encoder *encoder:mipi/lvds/hdmi等IP的驱动对象。例如
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
