|
|
|
@ -168,8 +168,8 @@
|
|
|
|
|
#define I830_FEATURES \
|
|
|
|
|
GEN(2), \
|
|
|
|
|
.is_mobile = 1, \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.display.has_overlay = 1, \
|
|
|
|
|
.display.cursor_needs_physical = 1, \
|
|
|
|
|
.display.overlay_needs_physical = 1, \
|
|
|
|
@ -190,8 +190,8 @@
|
|
|
|
|
|
|
|
|
|
#define I845_FEATURES \
|
|
|
|
|
GEN(2), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A), \
|
|
|
|
|
.display.has_overlay = 1, \
|
|
|
|
|
.display.overlay_needs_physical = 1, \
|
|
|
|
|
.display.has_gmch = 1, \
|
|
|
|
@ -233,8 +233,8 @@ static const struct intel_device_info i865g_info = {
|
|
|
|
|
|
|
|
|
|
#define GEN3_FEATURES \
|
|
|
|
|
GEN(3), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.display.has_gmch = 1, \
|
|
|
|
|
.gpu_reset_clobbers_display = true, \
|
|
|
|
|
.__runtime.platform_engine_mask = BIT(RCS0), \
|
|
|
|
@ -324,8 +324,8 @@ static const struct intel_device_info pnv_m_info = {
|
|
|
|
|
|
|
|
|
|
#define GEN4_FEATURES \
|
|
|
|
|
GEN(4), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.display.has_hotplug = 1, \
|
|
|
|
|
.display.has_gmch = 1, \
|
|
|
|
|
.gpu_reset_clobbers_display = true, \
|
|
|
|
@ -378,8 +378,8 @@ static const struct intel_device_info gm45_info = {
|
|
|
|
|
|
|
|
|
|
#define GEN5_FEATURES \
|
|
|
|
|
GEN(5), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.display.has_hotplug = 1, \
|
|
|
|
|
.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0), \
|
|
|
|
|
.has_3d_pipeline = 1, \
|
|
|
|
@ -409,8 +409,8 @@ static const struct intel_device_info ilk_m_info = {
|
|
|
|
|
|
|
|
|
|
#define GEN6_FEATURES \
|
|
|
|
|
GEN(6), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
|
|
|
|
.display.has_hotplug = 1, \
|
|
|
|
|
.__runtime.fbc_mask = BIT(INTEL_FBC_A), \
|
|
|
|
|
.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
|
|
|
|
@ -461,8 +461,8 @@ static const struct intel_device_info snb_m_gt2_info = {
|
|
|
|
|
|
|
|
|
|
#define GEN7_FEATURES \
|
|
|
|
|
GEN(7), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | BIT(TRANSCODER_C), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | BIT(TRANSCODER_C), \
|
|
|
|
|
.display.has_hotplug = 1, \
|
|
|
|
|
.__runtime.fbc_mask = BIT(INTEL_FBC_A), \
|
|
|
|
|
.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
|
|
|
|
@ -517,8 +517,8 @@ static const struct intel_device_info ivb_q_info = {
|
|
|
|
|
GEN7_FEATURES,
|
|
|
|
|
PLATFORM(INTEL_IVYBRIDGE),
|
|
|
|
|
.gt = 2,
|
|
|
|
|
.display.pipe_mask = 0, /* legal, last one wins */
|
|
|
|
|
.display.cpu_transcoder_mask = 0,
|
|
|
|
|
.__runtime.pipe_mask = 0, /* legal, last one wins */
|
|
|
|
|
.__runtime.cpu_transcoder_mask = 0,
|
|
|
|
|
.has_l3_dpf = 1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -526,8 +526,8 @@ static const struct intel_device_info vlv_info = {
|
|
|
|
|
PLATFORM(INTEL_VALLEYVIEW),
|
|
|
|
|
GEN(7),
|
|
|
|
|
.is_lp = 1,
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B),
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B),
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B),
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B),
|
|
|
|
|
.has_runtime_pm = 1,
|
|
|
|
|
.has_rc6 = 1,
|
|
|
|
|
.has_reset_engine = true,
|
|
|
|
@ -551,7 +551,7 @@ static const struct intel_device_info vlv_info = {
|
|
|
|
|
#define G75_FEATURES \
|
|
|
|
|
GEN7_FEATURES, \
|
|
|
|
|
.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
BIT(TRANSCODER_C) | BIT(TRANSCODER_EDP), \
|
|
|
|
|
.display.has_ddi = 1, \
|
|
|
|
|
.display.has_fpga_dbg = 1, \
|
|
|
|
@ -621,8 +621,8 @@ static const struct intel_device_info bdw_gt3_info = {
|
|
|
|
|
static const struct intel_device_info chv_info = {
|
|
|
|
|
PLATFORM(INTEL_CHERRYVIEW),
|
|
|
|
|
GEN(8),
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | BIT(TRANSCODER_C),
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | BIT(TRANSCODER_C),
|
|
|
|
|
.display.has_hotplug = 1,
|
|
|
|
|
.is_lp = 1,
|
|
|
|
|
.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0),
|
|
|
|
@ -699,8 +699,8 @@ static const struct intel_device_info skl_gt4_info = {
|
|
|
|
|
.display.dbuf.slice_mask = BIT(DBUF_S1), \
|
|
|
|
|
.display.has_hotplug = 1, \
|
|
|
|
|
.__runtime.platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
BIT(TRANSCODER_C) | BIT(TRANSCODER_EDP) | \
|
|
|
|
|
BIT(TRANSCODER_DSI_A) | BIT(TRANSCODER_DSI_C), \
|
|
|
|
|
.has_3d_pipeline = 1, \
|
|
|
|
@ -810,7 +810,7 @@ static const struct intel_device_info cml_gt2_info = {
|
|
|
|
|
GEN9_FEATURES, \
|
|
|
|
|
GEN11_DEFAULT_PAGE_SIZES, \
|
|
|
|
|
.display.abox_mask = BIT(0), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
BIT(TRANSCODER_C) | BIT(TRANSCODER_EDP) | \
|
|
|
|
|
BIT(TRANSCODER_DSI_0) | BIT(TRANSCODER_DSI_1), \
|
|
|
|
|
.display.pipe_offsets = { \
|
|
|
|
@ -862,8 +862,8 @@ static const struct intel_device_info jsl_info = {
|
|
|
|
|
GEN11_FEATURES, \
|
|
|
|
|
GEN(12), \
|
|
|
|
|
.display.abox_mask = GENMASK(2, 1), \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D), \
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D), \
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
|
|
|
|
BIT(TRANSCODER_C) | BIT(TRANSCODER_D) | \
|
|
|
|
|
BIT(TRANSCODER_DSI_0) | BIT(TRANSCODER_DSI_1), \
|
|
|
|
|
.display.pipe_offsets = { \
|
|
|
|
@ -899,8 +899,8 @@ static const struct intel_device_info rkl_info = {
|
|
|
|
|
GEN12_FEATURES,
|
|
|
|
|
PLATFORM(INTEL_ROCKETLAKE),
|
|
|
|
|
.display.abox_mask = BIT(0),
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
|
|
|
|
|
BIT(TRANSCODER_C),
|
|
|
|
|
.display.has_hti = 1,
|
|
|
|
|
.display.has_psr_hw_tracking = 0,
|
|
|
|
@ -921,7 +921,7 @@ static const struct intel_device_info dg1_info = {
|
|
|
|
|
DGFX_FEATURES,
|
|
|
|
|
.__runtime.graphics.rel = 10,
|
|
|
|
|
PLATFORM(INTEL_DG1),
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
|
|
|
|
|
.require_force_probe = 1,
|
|
|
|
|
.__runtime.platform_engine_mask =
|
|
|
|
|
BIT(RCS0) | BIT(BCS0) | BIT(VECS0) |
|
|
|
|
@ -933,7 +933,7 @@ static const struct intel_device_info dg1_info = {
|
|
|
|
|
static const struct intel_device_info adl_s_info = {
|
|
|
|
|
GEN12_FEATURES,
|
|
|
|
|
PLATFORM(INTEL_ALDERLAKE_S),
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
|
|
|
|
|
.display.has_hti = 1,
|
|
|
|
|
.display.has_psr_hw_tracking = 0,
|
|
|
|
|
.__runtime.platform_engine_mask =
|
|
|
|
@ -963,7 +963,7 @@ static const struct intel_device_info adl_s_info = {
|
|
|
|
|
.display.has_ipc = 1, \
|
|
|
|
|
.display.has_psr = 1, \
|
|
|
|
|
.display.ver = 13, \
|
|
|
|
|
.display.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D), \
|
|
|
|
|
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D), \
|
|
|
|
|
.display.pipe_offsets = { \
|
|
|
|
|
[TRANSCODER_A] = PIPE_A_OFFSET, \
|
|
|
|
|
[TRANSCODER_B] = PIPE_B_OFFSET, \
|
|
|
|
@ -986,7 +986,7 @@ static const struct intel_device_info adl_p_info = {
|
|
|
|
|
GEN12_FEATURES,
|
|
|
|
|
XE_LPD_FEATURES,
|
|
|
|
|
PLATFORM(INTEL_ALDERLAKE_P),
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
|
|
|
|
|
BIT(TRANSCODER_C) | BIT(TRANSCODER_D) |
|
|
|
|
|
BIT(TRANSCODER_DSI_0) | BIT(TRANSCODER_DSI_1),
|
|
|
|
|
.display.has_cdclk_crawl = 1,
|
|
|
|
@ -1071,7 +1071,7 @@ static const struct intel_device_info xehpsdv_info = {
|
|
|
|
|
static const struct intel_device_info dg2_info = {
|
|
|
|
|
DG2_FEATURES,
|
|
|
|
|
XE_LPD_FEATURES,
|
|
|
|
|
.display.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
|
|
|
|
|
.__runtime.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
|
|
|
|
|
BIT(TRANSCODER_C) | BIT(TRANSCODER_D),
|
|
|
|
|
.require_force_probe = 1,
|
|
|
|
|
};
|
|
|
|
|