#include <linux/fb.h>
#include <linux/pci.h>
#include <linux/pm_runtime.h>
#include <linux/vga_switcheroo.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_fb_helper.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include "radeon.h"
static void radeon_fbdev_destroy_pinned_object(struct drm_gem_object *gobj)
{ … }
static int radeon_fbdev_create_pinned_object(struct drm_fb_helper *fb_helper,
struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_gem_object **gobj_p)
{ … }
static int radeon_fbdev_fb_open(struct fb_info *info, int user)
{ … }
static int radeon_fbdev_fb_release(struct fb_info *info, int user)
{ … }
static void radeon_fbdev_fb_destroy(struct fb_info *info)
{ … }
static const struct fb_ops radeon_fbdev_fb_ops = …;
static int radeon_fbdev_fb_helper_fb_probe(struct drm_fb_helper *fb_helper,
struct drm_fb_helper_surface_size *sizes)
{ … }
static const struct drm_fb_helper_funcs radeon_fbdev_fb_helper_funcs = …;
static void radeon_fbdev_client_unregister(struct drm_client_dev *client)
{ … }
static int radeon_fbdev_client_restore(struct drm_client_dev *client)
{ … }
static int radeon_fbdev_client_hotplug(struct drm_client_dev *client)
{ … }
static const struct drm_client_funcs radeon_fbdev_client_funcs = …;
void radeon_fbdev_setup(struct radeon_device *rdev)
{ … }
void radeon_fbdev_set_suspend(struct radeon_device *rdev, int state)
{ … }
bool radeon_fbdev_robj_is_fb(struct radeon_device *rdev, struct radeon_bo *robj)
{ … }