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

#include <drm_encoder.h>

Collaboration diagram for drm_encoder:
Collaboration graph
[legend]

Public Attributes

struct drm_device * dev
 
struct list_head head
 
struct drm_mode_object base
 
char * name
 
int encoder_type
 
unsigned index
 
uint32_t possible_crtcs
 
uint32_t possible_clones
 
struct drm_crtc * crtc
 
struct list_head bridge_chain
 
struct mutex bridge_chain_mutex
 
const struct drm_encoder_funcs * funcs
 
const struct drm_encoder_helper_funcs * helper_private
 
struct dentry * debugfs_entry
 

Member Data Documentation

◆ base

struct drm_mode_object drm_encoder::base

◆ bridge_chain

struct list_head drm_encoder::bridge_chain

@bridge_chain: Bridges attached to this encoder. Drivers shall not access this field directly.

◆ bridge_chain_mutex

struct mutex drm_encoder::bridge_chain_mutex

@bridge_chain_mutex: protect bridge_chain from changes while iterating

◆ crtc

struct drm_crtc* drm_encoder::crtc

@crtc: Currently bound CRTC, only really meaningful for non-atomic drivers. Atomic drivers should instead check &drm_connector_state.crtc.

◆ debugfs_entry

struct dentry* drm_encoder::debugfs_entry

@debugfs_entry:

Debugfs directory for this CRTC.

◆ dev

struct drm_device* drm_encoder::dev

◆ encoder_type

int drm_encoder::encoder_type

@encoder_type:

One of the DRM_MODE_ENCODER_<foo> types in drm_mode.h. The following encoder types are defined thus far:

  • DRM_MODE_ENCODER_DAC for VGA and analog on DVI-I/DVI-A.
  • DRM_MODE_ENCODER_TMDS for DVI, HDMI and (embedded) DisplayPort.
  • DRM_MODE_ENCODER_LVDS for display panels, or in general any panel with a proprietary parallel connector.
  • DRM_MODE_ENCODER_TVDAC for TV output (Composite, S-Video, Component, SCART).
  • DRM_MODE_ENCODER_VIRTUAL for virtual machine displays
  • DRM_MODE_ENCODER_DSI for panels connected using the DSI serial bus.
  • DRM_MODE_ENCODER_DPI for panels connected using the DPI parallel bus.
  • DRM_MODE_ENCODER_DPMST for special fake encoders used to allow mutliple DP MST streams to share one physical encoder.

◆ funcs

const struct drm_encoder_funcs* drm_encoder::funcs

◆ head

struct list_head drm_encoder::head

◆ helper_private

const struct drm_encoder_helper_funcs* drm_encoder::helper_private

◆ index

unsigned drm_encoder::index

@index: Position inside the mode_config.list, can be used as an array index. It is invariant over the lifetime of the encoder.

◆ name

char* drm_encoder::name

◆ possible_clones

uint32_t drm_encoder::possible_clones

@possible_clones: Bitmask of potential sibling encoders for cloning, using drm_encoder_index() as the index into the bitfield. The driver must set the bits for all &drm_encoder objects which can clone a &drm_crtc together with this encoder before calling drm_dev_register(). Drivers should set the bit representing the encoder itself, too. Cloning bits should be set such that when two encoders can be used in a cloned configuration, they both should have each another bits set.

As an exception to the above rule if the driver doesn't implement any cloning it can leave @possible_clones set to 0. The core will automagically fix this up by setting the bit for the encoder itself.

You will get a WARN if you get this wrong in the driver.

Note that since encoder objects can't be hotplugged the assigned indices are stable and hence known before registering all objects.

◆ possible_crtcs

uint32_t drm_encoder::possible_crtcs

@possible_crtcs: Bitmask of potential CRTC bindings, using drm_crtc_index() as the index into the bitfield. The driver must set the bits for all &drm_crtc objects this encoder can be connected to before calling drm_dev_register().

You will get a WARN if you get this wrong in the driver.

Note that since CRTC objects can't be hotplugged the assigned indices are stable and hence known before registering all objects.


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