Name

struct drm_crtc_helper_funcs — helper operations for CRTCs

Synopsis

struct drm_crtc_helper_funcs {
  void (* dpms) (struct drm_crtc *crtc, int mode);
  void (* prepare) (struct drm_crtc *crtc);
  void (* commit) (struct drm_crtc *crtc);
  bool (* mode_fixup) (struct drm_crtc *crtc,const struct drm_display_mode *mode,struct drm_display_mode *adjusted_mode);
  int (* mode_set) (struct drm_crtc *crtc, struct drm_display_mode *mode,struct drm_display_mode *adjusted_mode, int x, int y,struct drm_framebuffer *old_fb);
  void (* mode_set_nofb) (struct drm_crtc *crtc);
  int (* mode_set_base) (struct drm_crtc *crtc, int x, int y,struct drm_framebuffer *old_fb);
  int (* mode_set_base_atomic) (struct drm_crtc *crtc,struct drm_framebuffer *fb, int x, int y,enum mode_set_atomic);
  void (* load_lut) (struct drm_crtc *crtc);
  void (* disable) (struct drm_crtc *crtc);
  void (* enable) (struct drm_crtc *crtc);
  int (* atomic_check) (struct drm_crtc *crtc,struct drm_crtc_state *state);
  void (* atomic_begin) (struct drm_crtc *crtc);
  void (* atomic_flush) (struct drm_crtc *crtc);
};  

Members

dpms

set power state

prepare

prepare the CRTC, called before mode_set

commit

commit changes to CRTC, called after mode_set

mode_fixup

try to fixup proposed mode for this CRTC

mode_set

set this mode

mode_set_nofb

set mode only (no scanout buffer attached)

mode_set_base

update the scanout buffer

mode_set_base_atomic

non-blocking mode set (used for kgdb support)

load_lut

load color palette

disable

disable CRTC when no longer in use

enable

enable CRTC

atomic_check

check for validity of an atomic state

atomic_begin

begin atomic update

atomic_flush

flush atomic update

Description

The helper operations are called by the mid-layer CRTC helper.

Note that with atomic helpers dpms, prepare and commit hooks are deprecated. Used enable and disable instead exclusively.

With legacy crtc helpers there's a big semantic difference between disable

and the other hooks

disable also needs to release any resources acquired in mode_set (like shared PLLs).