SYNOPSIS
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;
struct drm_fb_helper_connector ** connector_info;
const struct drm_fb_helper_funcs * funcs;
struct fb_info * fbdev;
u32 pseudo_palette[17];
struct drm_clip_rect dirty_clip;
spinlock_t dirty_lock;
struct work_struct dirty_work;
struct list_head kernel_fb_list;
bool delayed_hotplug;
bool atomic;
};
MEMBERS
fb
- Scanout framebuffer object
dev
- DRM device
crtc_count
- number of possible CRTCs
crtc_info
- per-CRTC helper state (mode, x/y offset, etc)
connector_count
- number of connected connectors
connector_info_alloc_count
- size of connector_info
connector_info
- array of per-connector information
funcs
- driver callbacks for fb helper
fbdev
- emulated fbdev device info struct
pseudo_palette[17]
- fake palette of 16 colors
dirty_clip
- clip rectangle used with deferred_io to accumulate damage to the screen buffer
dirty_lock
- spinlock protecting dirty_clip
dirty_work
- worker used to flush the framebuffer
kernel_fb_list
-
Entry on the global kernel_fb_helper_list, used for kgdb entry/exit.
delayed_hotplug
-
A hotplug was received while fbdev wasn't in control of the DRM device, i.e. another KMS master was active. The output configuration needs to be reprobe when fbdev is in control again.
atomic
-
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).
DESCRIPTION
This is the main structure used by the fbdev helpers. Drivers supporting fbdev emulation should embedded this into their overall driver structure. Drivers must also fill out a struct drm_fb_helper_funcs with a few operations.
AUTHORS
Jesse Barnes <[email protected]>
Intel Corporation,
- Initial version
Laurent Pinchart <[email protected]>
Ideas on board SPRL,
- Driver internals
Daniel Vetter <[email protected]>
Intel Corporation,
- Contributions all over the place
Lukas Wunner <[email protected]>
- vga_switcheroo documentation
COPYRIGHT