static int mtk_drm_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
{
	struct drm_fb_helper *helper = info->par;
	struct mtk_drm_fb *mtk_fb = to_mtk_fb(helper->fb);

	return mtk_drm_gem_mmap_buf(mtk_fb->gem_obj[0], vma);
}
示例#2
0
static int mtk_drm_fb_create_handle(struct drm_framebuffer *fb,
				    struct drm_file *file_priv,
				    unsigned int *handle)
{
	struct mtk_drm_fb *mtk_fb = to_mtk_fb(fb);

	return drm_gem_handle_create(file_priv, mtk_fb->gem_obj, handle);
}
示例#3
0
static void mtk_drm_fb_destroy(struct drm_framebuffer *fb)
{
	struct mtk_drm_fb *mtk_fb = to_mtk_fb(fb);

	drm_framebuffer_cleanup(fb);

	drm_gem_object_unreference_unlocked(mtk_fb->gem_obj);

	kfree(mtk_fb);
}
static void mtk_drm_fb_destroy(struct drm_framebuffer *fb)
{
	unsigned int i;
	struct mtk_drm_fb *mtk_fb = to_mtk_fb(fb);
	struct drm_gem_object *gem;
	int nr = drm_format_num_planes(fb->pixel_format);

	drm_framebuffer_cleanup(fb);

	for (i = 0; i < nr; i++) {
		gem = mtk_fb->gem_obj[i];
		drm_gem_object_unreference_unlocked(gem);
	}

	kfree(mtk_fb);
}
示例#5
0
struct drm_gem_object *mtk_fb_get_gem_obj(struct drm_framebuffer *fb)
{
	struct mtk_drm_fb *mtk_fb = to_mtk_fb(fb);

	return mtk_fb->gem_obj;
}