高通的DRM图形显示框架开发,已经添加了桥接芯片的驱动,那drm_bridge是如何注册的,需要调用哪些函数?
时间: 2024-03-02 07:54:20 浏览: 209
在高通的DRM图形显示框架开发中,要添加桥接芯片的驱动,需要进行以下步骤来注册drm_bridge:
1. 定义一个struct drm_bridge类型的变量,用于表示新添加的桥接芯片,例如:
```
struct drm_bridge my_bridge = {
.funcs = &my_bridge_funcs,
.of_node = np,
.timings = &my_bridge_timings,
.driver_private = &my_bridge_private,
};
```
其中,my_bridge_funcs、np、my_bridge_timings和my_bridge_private分别表示新添加的桥接芯片的操作函数、设备树节点、时序信息和私有数据。
2. 调用drm_bridge_add函数来将新添加的桥接芯片注册到DRM核心中,例如:
```
drm_bridge_add(&encoder->bridge, &my_bridge);
```
其中,encoder->bridge表示当前使用的编码器的bridge成员,即当前连接的桥接芯片。
3. 在新添加的桥接芯片的驱动中,实现drm_bridge_funcs相关的操作函数,例如:
```
static const struct drm_bridge_funcs my_bridge_funcs = {
.attach = my_bridge_attach,
.mode_valid = my_bridge_mode_valid,
.mode_set = my_bridge_mode_set,
.mode_fixup = my_bridge_mode_fixup,
.mode_set_nofb = my_bridge_mode_set_nofb,
.atomic_pre_enable = my_bridge_atomic_pre_enable,
};
```
其中,my_bridge_attach、my_bridge_mode_valid、my_bridge_mode_set、my_bridge_mode_fixup、my_bridge_mode_set_nofb和my_bridge_atomic_pre_enable分别表示新添加的桥接芯片的attach、mode_valid、mode_set、mode_fixup、mode_set_nofb和atomic_pre_enable操作函数。
以上就是在高通的DRM图形显示框架开发中添加桥接芯片的驱动时需要进行的drm_bridge注册相关的步骤。
阅读全文