#include <linux/fb.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_fb_helper.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_gem_shmem_helper.h>
#include <drm/drm_fbdev_shmem.h>
static int drm_fbdev_shmem_fb_open(struct fb_info *info, int user)
{ … }
static int drm_fbdev_shmem_fb_release(struct fb_info *info, int user)
{ … }
FB_GEN_DEFAULT_DEFERRED_SYSMEM_OPS(drm_fbdev_shmem,
drm_fb_helper_damage_range,
drm_fb_helper_damage_area);
static int drm_fbdev_shmem_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
{ … }
static void drm_fbdev_shmem_fb_destroy(struct fb_info *info)
{ … }
static const struct fb_ops drm_fbdev_shmem_fb_ops = …;
static struct page *drm_fbdev_shmem_get_page(struct fb_info *info, unsigned long offset)
{ … }
static int drm_fbdev_shmem_helper_fb_probe(struct drm_fb_helper *fb_helper,
struct drm_fb_helper_surface_size *sizes)
{ … }
static int drm_fbdev_shmem_helper_fb_dirty(struct drm_fb_helper *helper,
struct drm_clip_rect *clip)
{ … }
static const struct drm_fb_helper_funcs drm_fbdev_shmem_helper_funcs = …;
static void drm_fbdev_shmem_client_unregister(struct drm_client_dev *client)
{ … }
static int drm_fbdev_shmem_client_restore(struct drm_client_dev *client)
{ … }
static int drm_fbdev_shmem_client_hotplug(struct drm_client_dev *client)
{ … }
static const struct drm_client_funcs drm_fbdev_shmem_client_funcs = …;
void drm_fbdev_shmem_setup(struct drm_device *dev, unsigned int preferred_bpp)
{ … }
EXPORT_SYMBOL(…);