1. 程式人生 > 其它 >何小龍——DRM 驅動程式開發(VKMS)部分程式碼修正

何小龍——DRM 驅動程式開發(VKMS)部分程式碼修正

技術標籤:linuxc++

原部落格地址如下:https://blog.csdn.net/hexiaolong2009/article/details/105180621
在驅動例程的示例4當中,有一個函式drm_fb_cma_creat找不到,如下:

static const struct drm_mode_config_funcs vkms_mode_funcs = {
	.fb_create = drm_fb_cma_create,
};

上網搜了一下,發現這個東西:
在這裡插入圖片描述
發現rockchip裡有類似的定義,於是開始翻原始碼,發現:

static const struct drm_mode_config_funcs rockchip_drm_mode_config_funcs =
{ .fb_create = rockchip_fb_create, .output_poll_changed = drm_fb_helper_output_poll_changed, .atomic_check = drm_atomic_helper_check, .atomic_commit = drm_atomic_helper_commit, };

繼續翻,找rockchip_fb_creat函式的定義,找到

static struct drm_framebuffer *
rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
		   const struct drm_mode_fb_cmd2 *mode_cmd)

最後在drm_gem_framebuffer_helper.h找到一個函式drm_gem_fb_create(),定義如下:

struct drm_framebuffer *
drm_gem_fb_create(struct drm_device *dev, struct drm_file *file,
		  const struct drm_mode_fb_cmd2 *mode_cmd);

和drm_fb_cma_creat函式一致,可能是函式的名字改了,換成這個函式就可以編譯了