XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_fb_helper Struct Reference

#include <drm_fb_helper.h>

Collaboration diagram for drm_fb_helper:
Collaboration graph
[legend]

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
 

Detailed Description

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.

Member Data Documentation

◆ buffer

struct drm_client_buffer* drm_fb_helper::buffer

@buffer:

Framebuffer used by the generic fbdev emulation.

◆ client

struct drm_client_dev drm_fb_helper::client

@client:

DRM client used by the generic fbdev emulation.

◆ damage_clip

struct drm_clip_rect drm_fb_helper::damage_clip

◆ damage_lock

spinlock_t drm_fb_helper::damage_lock

◆ damage_work

struct work_struct drm_fb_helper::damage_work

◆ deferred_setup

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.

◆ delayed_hotplug

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.

◆ dev

struct drm_device* drm_fb_helper::dev

◆ fb

struct drm_framebuffer* drm_fb_helper::fb

◆ funcs

const struct drm_fb_helper_funcs* drm_fb_helper::funcs

◆ info

struct fb_info* drm_fb_helper::info

◆ lock

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.

◆ preferred_bpp

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

◆ pseudo_palette

u32 drm_fb_helper::pseudo_palette[17]

◆ resume_work

struct work_struct drm_fb_helper::resume_work

The documentation for this struct was generated from the following file: