drm_of_find_panel_or_bridge怎么和设备树一起使用
时间: 2023-07-26 08:30:17 浏览: 173
DRM_system.zip_DRM_drm system_sub
函数`drm_of_find_panel_or_bridge`是用于在设备树中查找与显示控制器相关的面板或者桥接器节点的函数。在使用该函数前,需要先加载设备树以及相关的驱动模块,然后使用`of_find_device_by_node`函数获取设备树节点对应的设备对象。接着,可以使用`drm_of_find_panel_or_bridge`函数来查找面板或桥接器节点,并将返回的指针转换成对应的结构体类型,以便后续操作。最后需要注意,在使用完相关的设备对象和结构体后,需要进行相应的释放操作,以免内存泄漏。
以下是一个简单的示例代码:
```c
// 加载设备树和相关的驱动模块
// 获取设备树节点对应的设备对象
struct device_node *node = of_find_node_by_name(NULL, "panel-node");
struct device *dev = of_find_device_by_node(node);
if (dev) {
// 查找面板或桥接器节点
struct drm_panel *panel = drm_of_find_panel_or_bridge(node);
if (panel) {
// 对面板进行相关操作
...
// 释放面板对象
drm_panel_detach(panel);
drm_panel_destroy(panel);
}
}
// 释放相关的设备对象和节点
if (dev)
put_device(dev);
of_node_put(node);
```
阅读全文