/* current audio state for the audio component hooks */ struct intel_audio_state state[I915_MAX_TRANSCODERS];
/* necessary resource sharing with HDMI LPE audio driver. */ struct { struct platform_device *platdev; int irq;
} lpe;
};
/* * dpll and cdclk state is protected by connection_mutex dpll.lock serializes * intel_{prepare,enable,disable}_shared_dpll. Must be global rather than per * dpll, because on some platforms plls share registers.
*/ struct intel_dpll_global { struct mutex lock;
int num_dpll; struct intel_dpll dplls[I915_NUM_PLLS]; conststruct intel_dpll_mgr *mgr;
struct { int nssc; int ssc;
} ref_clks;
/* * Bitmask of PLLs using the PCH SSC, indexed using enum intel_dpll_id.
*/
u8 pch_ssc_use;
};
/* * Queuing of hotplug_work, reenable_work and poll_init_work is * enabled. Protected by intel_display::irq::lock.
*/ bool detection_work_enabled;
unsignedint hpd_storm_threshold; /* Whether or not to count short HPD IRQs in HPD storms */
u8 hpd_short_storm_enabled;
/* Last state reported by oob_hotplug_event for each encoder */ unsignedlong oob_hotplug_last_state;
/* * if we get a HPD irq from DP and a HPD irq from non-DP * the non-DP HPD could block the workqueue on a mode config * mutex getting, that userspace may have taken. However * userspace is waiting on the DP workqueue to run which is * blocked behind the non-DP one.
*/ struct workqueue_struct *dp_wq;
/* * Flag to track if long HPDs need not to be processed * * Some panels generate long HPDs while keep connected to the port. * This can cause issues with CI tests results. In CI systems we * don't expect to disconnect the panels and could ignore the long * HPDs generated from the faulty panels. This flag can be used as * cue to ignore the long HPDs and can be set / unset using debugfs.
*/ bool ignore_long_hpd;
};
struct intel_vbt_data { /* bdb version */
u16 version;
struct intel_wm { /* * Raw watermark latency values: * in 0.1us units for WM0, * in 0.5us units for WM1+.
*/ /* primary */
u16 pri_latency[5]; /* sprite */
u16 spr_latency[5]; /* cursor */
u16 cur_latency[5]; /* * Raw watermark memory latency values * for SKL for all 8 levels * in 1us units.
*/
u16 skl_latency[8];
/* current hardware state */ union { struct ilk_wm_values hw; struct vlv_wm_values vlv; struct g4x_wm_values g4x;
};
u8 num_levels;
/* * Should be held around atomic WM register writing; also * protects * intel_crtc->wm.active and * crtc_state->wm.need_postvbl_update.
*/ struct mutex wm_mutex;
struct { /* backlight registers and fields in struct intel_panel */ struct mutex lock;
} backlight;
struct { struct intel_global_obj obj;
struct intel_bw_info { /* for each QGV point */ unsignedint deratedbw[I915_NUM_QGV_POINTS]; /* for each PSF GV point */ unsignedint psf_bw[I915_NUM_PSF_GV_POINTS]; /* Peak BW for each QGV point */ unsignedint peakbw[I915_NUM_QGV_POINTS];
u8 num_qgv_points;
u8 num_psf_gv_points;
u8 num_planes;
} max[6];
} bw;
struct { /* The current hardware cdclk configuration */ struct intel_cdclk_config hw;
/* cdclk, divider, and ratio table from bspec */ conststruct intel_cdclk_vals *table;
/* * HDCP message struct for allocation of memory which can be * reused when sending message to gsc cs. * this is only populated post Meteorlake
*/ struct intel_hdcp_gsc_context *gsc_context; /* Mutex to protect the above hdcp related values. */ struct mutex hdcp_mutex;
} hdcp;
struct { /* * HTI (aka HDPORT) state read during initial hw readout. Most * platforms don't have HTI, so this will just stay 0. Those * that do will use this later to figure out which PLLs and PHYs * are unavailable for driver usage.
*/
u32 state;
} hti;
struct { /* Access with DISPLAY_INFO() */ conststruct intel_display_device_info *__device_info;
/* Access with DISPLAY_RUNTIME_INFO() */ struct intel_display_runtime_info __runtime_info;
} info;
struct { bool false_color;
} ips;
struct { /* protects the irq masks */
spinlock_t lock;
/* * Most platforms treat the display irq block as an always-on * power domain. vlv/chv can disable it at runtime and need * special care to avoid writing any of the display block * registers outside of the power domain. We defer setting up * the display irqs in this case to the runtime pm.
*/ bool vlv_display_irqs_enabled;
/* For i915gm/i945gm vblank irq workaround */
u8 vblank_enabled;
struct { /* * DG2: Mask of PHYs that were not calibrated by the firmware * and should not be used.
*/
u8 phy_failed_calibration;
} snps;
struct { /* * Shadows for CHV DPLL_MD regs to keep the state * checker somewhat working in the presence hardware * crappiness (can't read out DPLL_MD for pipes B & C).
*/
u32 chv_dpll_md[I915_MAX_PIPES];
u32 bxt_phy_grc;
} state;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.