struct drm_fb_helper — helper to emulate fbdev on top of kms
struct drm_fb_helper {
struct drm_framebuffer * fb;
struct drm_device * dev;
int crtc_count;
struct drm_fb_helper_crtc * crtc_info;
int connector_count;
int connector_info_alloc_count;
const struct drm_fb_helper_funcs * funcs;
struct fb_info * fbdev;
u32 pseudo_palette[17];
struct list_head kernel_fb_list;
bool delayed_hotplug;
bool atomic;
}; Scanout framebuffer object
DRM device
number of possible CRTCs
per-CRTC helper state (mode, x/y offset, etc)
number of connected connectors
size of connector_info
driver callbacks for fb helper
emulated fbdev device info struct
fake palette of 16 colors
list_head in kernel_fb_helper_list
was there a hotplug while kms master active?
Use atomic updates for restore_fbdev_mode, etc. This defaults to
true if driver has DRIVER_ATOMIC feature flag, but drivers can
override it to true after drm_fb_helper_init if they support atomic
modeset but do not yet advertise DRIVER_ATOMIC (note that fb-helper
does not require ASYNC commits).