drm/i915: Store cpu_transcoder_mask in device info
We have a bunch of code that would like to know which CPU transcoders are actually present in the hardware. Rather than use various ad-hoc methods let's just include a full bitmask in the device info, alongside pipe_mask. v2: Rebase Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200318170235.15176-1-ville.syrjala@linux.intel.com Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
This commit is contained in:
@@ -160,6 +160,7 @@
|
||||
GEN(2), \
|
||||
.is_mobile = 1, \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
||||
.display.has_overlay = 1, \
|
||||
.display.cursor_needs_physical = 1, \
|
||||
.display.overlay_needs_physical = 1, \
|
||||
@@ -179,6 +180,7 @@
|
||||
#define I845_FEATURES \
|
||||
GEN(2), \
|
||||
.pipe_mask = BIT(PIPE_A), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A), \
|
||||
.display.has_overlay = 1, \
|
||||
.display.overlay_needs_physical = 1, \
|
||||
.display.has_gmch = 1, \
|
||||
@@ -218,6 +220,7 @@ static const struct intel_device_info i865g_info = {
|
||||
#define GEN3_FEATURES \
|
||||
GEN(3), \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
||||
.display.has_gmch = 1, \
|
||||
.gpu_reset_clobbers_display = true, \
|
||||
.engine_mask = BIT(RCS0), \
|
||||
@@ -303,6 +306,7 @@ static const struct intel_device_info pnv_m_info = {
|
||||
#define GEN4_FEATURES \
|
||||
GEN(4), \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
||||
.display.has_hotplug = 1, \
|
||||
.display.has_gmch = 1, \
|
||||
.gpu_reset_clobbers_display = true, \
|
||||
@@ -354,6 +358,7 @@ static const struct intel_device_info gm45_info = {
|
||||
#define GEN5_FEATURES \
|
||||
GEN(5), \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
||||
.display.has_hotplug = 1, \
|
||||
.engine_mask = BIT(RCS0) | BIT(VCS0), \
|
||||
.has_snoop = true, \
|
||||
@@ -381,6 +386,7 @@ static const struct intel_device_info ilk_m_info = {
|
||||
#define GEN6_FEATURES \
|
||||
GEN(6), \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B), \
|
||||
.display.has_hotplug = 1, \
|
||||
.display.has_fbc = 1, \
|
||||
.engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
|
||||
@@ -430,6 +436,7 @@ static const struct intel_device_info snb_m_gt2_info = {
|
||||
#define GEN7_FEATURES \
|
||||
GEN(7), \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | BIT(TRANSCODER_C), \
|
||||
.display.has_hotplug = 1, \
|
||||
.display.has_fbc = 1, \
|
||||
.engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0), \
|
||||
@@ -482,6 +489,7 @@ static const struct intel_device_info ivb_q_info = {
|
||||
PLATFORM(INTEL_IVYBRIDGE),
|
||||
.gt = 2,
|
||||
.pipe_mask = 0, /* legal, last one wins */
|
||||
.cpu_transcoder_mask = 0,
|
||||
.has_l3_dpf = 1,
|
||||
};
|
||||
|
||||
@@ -490,6 +498,7 @@ static const struct intel_device_info vlv_info = {
|
||||
GEN(7),
|
||||
.is_lp = 1,
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B),
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B),
|
||||
.has_runtime_pm = 1,
|
||||
.has_rc6 = 1,
|
||||
.has_rps = true,
|
||||
@@ -511,6 +520,8 @@ static const struct intel_device_info vlv_info = {
|
||||
#define G75_FEATURES \
|
||||
GEN7_FEATURES, \
|
||||
.engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
||||
BIT(TRANSCODER_C) | BIT(TRANSCODER_EDP), \
|
||||
.display.has_ddi = 1, \
|
||||
.has_fpga_dbg = 1, \
|
||||
.display.has_psr = 1, \
|
||||
@@ -581,6 +592,7 @@ static const struct intel_device_info chv_info = {
|
||||
PLATFORM(INTEL_CHERRYVIEW),
|
||||
GEN(8),
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | BIT(TRANSCODER_C),
|
||||
.display.has_hotplug = 1,
|
||||
.is_lp = 1,
|
||||
.engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0),
|
||||
@@ -656,6 +668,9 @@ static const struct intel_device_info skl_gt4_info = {
|
||||
.display.has_hotplug = 1, \
|
||||
.engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
||||
BIT(TRANSCODER_C) | BIT(TRANSCODER_EDP) | \
|
||||
BIT(TRANSCODER_DSI_A) | BIT(TRANSCODER_DSI_C), \
|
||||
.has_64bit_reloc = 1, \
|
||||
.display.has_ddi = 1, \
|
||||
.has_fpga_dbg = 1, \
|
||||
@@ -759,6 +774,9 @@ static const struct intel_device_info cnl_info = {
|
||||
#define GEN11_FEATURES \
|
||||
GEN10_FEATURES, \
|
||||
GEN11_DEFAULT_PAGE_SIZES, \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
||||
BIT(TRANSCODER_C) | BIT(TRANSCODER_EDP) | \
|
||||
BIT(TRANSCODER_DSI_0) | BIT(TRANSCODER_DSI_1), \
|
||||
.pipe_offsets = { \
|
||||
[TRANSCODER_A] = PIPE_A_OFFSET, \
|
||||
[TRANSCODER_B] = PIPE_B_OFFSET, \
|
||||
@@ -799,6 +817,10 @@ static const struct intel_device_info ehl_info = {
|
||||
#define GEN12_FEATURES \
|
||||
GEN11_FEATURES, \
|
||||
GEN(12), \
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D), \
|
||||
.cpu_transcoder_mask = BIT(TRANSCODER_A) | BIT(TRANSCODER_B) | \
|
||||
BIT(TRANSCODER_C) | BIT(TRANSCODER_D) | \
|
||||
BIT(TRANSCODER_DSI_0) | BIT(TRANSCODER_DSI_1), \
|
||||
.pipe_offsets = { \
|
||||
[TRANSCODER_A] = PIPE_A_OFFSET, \
|
||||
[TRANSCODER_B] = PIPE_B_OFFSET, \
|
||||
@@ -822,7 +844,6 @@ static const struct intel_device_info ehl_info = {
|
||||
static const struct intel_device_info tgl_info = {
|
||||
GEN12_FEATURES,
|
||||
PLATFORM(INTEL_TIGERLAKE),
|
||||
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
|
||||
.display.has_modular_fia = 1,
|
||||
.engine_mask =
|
||||
BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
|
||||
|
Reference in New Issue
Block a user