drm_bridge_funcs
时间: 2023-06-21 13:16:01 浏览: 252
`drm_bridge_funcs` 是一个结构体,用于定义 DRM 框架中桥接器(bridge)设备的操作函数。它包含一组函数指针,每个指针指向一个特定的操作函数,这些函数可以被桥接器驱动程序实现,以实现特定的操作。
下面是 `drm_bridge_funcs` 结构体的定义:
```
struct drm_bridge_funcs {
int (*attach)(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags);
void (*mode_set)(struct drm_bridge *bridge,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode);
void (*mode_fixup)(struct drm_bridge *bridge,
const struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode);
void (*mode_set_nofb)(struct drm_bridge *bridge,
const struct drm_display_mode *mode);
void (*disable)(struct drm_bridge *bridge);
void (*post_disable)(struct drm_bridge *bridge);
void (*pre_enable)(struct drm_bridge *bridge);
void (*enable)(struct drm_bridge *bridge);
void (*post_enable)(struct drm_bridge *bridge);
void (*mode_valid)(struct drm_bridge *bridge,
const struct drm_display_info *info,
const struct drm_display_mode *mode);
enum drm_mode_status (*mode_valid_crts)(struct drm_bridge *bridge,
const struct drm_display_info *info,
const struct drm_display_mode *mode);
};
```
这些操作函数的功能如下:
- `attach`:将桥接器连接到 CRTC,启用桥接器。
- `mode_set`:在 CRTC 上设置显示模式和调整显示模式。
- `mode_fixup`:根据显示模式调整显示模式。
- `mode_set_nofb`:在没有帧缓冲(framebuffer)的情况下设置显示模式。
- `disable`:停用桥接器。
- `post_disable`:桥接器停用后执行的操作。
- `pre_enable`:启用桥接器前执行的操作。
- `enable`:启用桥接器。
- `post_enable`:桥接器启用后执行的操作。
- `mode_valid`:检查显示模式是否有效。
- `mode_valid_crts`:检查显示模式是否有效,并返回相应的 `drm_mode_status`。
这些操作函数是桥接器驱动程序必须实现的函数,以便与 DRM 框架进行交互。
阅读全文