|
XenevaOS
|
#include <drm_fb_helper.h>

Public Attributes | |
| struct drm_client_dev | client |
| struct drm_client_buffer * | buffer |
| struct drm_framebuffer * | fb |
| struct drm_device * | dev |
| const struct drm_fb_helper_funcs * | funcs |
| struct fb_info * | info |
| u32 | pseudo_palette [17] |
| struct drm_clip_rect | damage_clip |
| spinlock_t | damage_lock |
| struct work_struct | damage_work |
| struct work_struct | resume_work |
| struct mutex | lock |
| bool | delayed_hotplug |
| bool | deferred_setup |
| int | preferred_bpp |
struct drm_fb_helper - main structure to emulate fbdev on top of KMS @fb: Scanout framebuffer object @dev: DRM device @funcs: driver callbacks for fb helper @info: emulated fbdev device info struct @pseudo_palette: fake palette of 16 colors @damage_clip: clip rectangle used with deferred_io to accumulate damage to the screen buffer @damage_lock: spinlock protecting @damage_clip @damage_work: worker used to flush the framebuffer @resume_work: worker used during resume if the console lock is already taken
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.
| struct drm_client_buffer* drm_fb_helper::buffer |
@buffer:
Framebuffer used by the generic fbdev emulation.
| struct drm_client_dev drm_fb_helper::client |
@client:
DRM client used by the generic fbdev emulation.
| struct drm_clip_rect drm_fb_helper::damage_clip |
| spinlock_t drm_fb_helper::damage_lock |
| struct work_struct drm_fb_helper::damage_work |
| bool drm_fb_helper::deferred_setup |
@deferred_setup:
If no outputs are connected (disconnected or unknown) the FB helper code will defer setup until at least one of the outputs shows up. This field keeps track of the status so that setup can be retried at every hotplug event until it succeeds eventually.
Protected by @lock.
| bool drm_fb_helper::delayed_hotplug |
@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.
| struct drm_device* drm_fb_helper::dev |
| struct drm_framebuffer* drm_fb_helper::fb |
| const struct drm_fb_helper_funcs* drm_fb_helper::funcs |
| struct fb_info* drm_fb_helper::info |
| struct mutex drm_fb_helper::lock |
@lock:
Top-level FBDEV helper lock. This protects all internal data structures and lists, such as @connector_info and @crtc_info.
FIXME: fbdev emulation locking is a mess and long term we want to protect all helper internal state with this lock as well as reduce core KMS locking as much as possible.
| int drm_fb_helper::preferred_bpp |
@preferred_bpp:
Temporary storage for the driver's preferred BPP setting passed to FB helper initialization. This needs to be tracked so that deferred FB helper setup can pass this on.
See also: @deferred_setup
| u32 drm_fb_helper::pseudo_palette[17] |
| struct work_struct drm_fb_helper::resume_work |