1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd 4 * Author:Mark Yao <mark.yao@rock-chips.com> 5 */ 6 7 #ifndef _ROCKCHIP_DRM_FB_H 8 #define _ROCKCHIP_DRM_FB_H 9 10 #include "rockchip_drm_gem.h" 11 12 #define ROCKCHIP_DRM_MODE_LOGO_FB (1<<31) /* used for kernel logo, follow the define: DRM_MODE_FB_MODIFIERS at drm_mode.h */ 13 14 struct drm_framebuffer * 15 rockchip_drm_framebuffer_init(struct drm_device *dev, 16 const struct drm_mode_fb_cmd2 *mode_cmd, 17 struct drm_gem_object *obj); 18 void rockchip_drm_framebuffer_fini(struct drm_framebuffer *fb); 19 20 void rockchip_drm_mode_config_init(struct drm_device *dev); 21 struct drm_framebuffer * 22 rockchip_drm_logo_fb_alloc(struct drm_device *dev, const struct drm_mode_fb_cmd2 *mode_cmd, 23 struct rockchip_logo *logo); 24 struct drm_framebuffer * 25 rockchip_fb_alloc(struct drm_device *dev, const struct drm_mode_fb_cmd2 *mode_cmd, 26 struct drm_gem_object **obj, unsigned int num_planes); 27 28 #define to_rockchip_logo_fb(x) container_of(x, struct rockchip_drm_logo_fb, fb) 29 30 struct rockchip_drm_logo_fb { 31 struct drm_framebuffer fb; 32 struct rockchip_logo *logo; 33 struct rockchip_gem_object rk_obj; 34 /* 35 * Used for delayed logo fb release 36 */ 37 struct delayed_work destroy_work; 38 }; 39 40 #endif /* _ROCKCHIP_DRM_FB_H */ 41