【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的驱动对象。例如


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部