aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h1
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c6
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h8
-rw-r--r--drivers/gpu/drm/i915/intel_display.h3
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c7
-rw-r--r--drivers/gpu/drm/i915/intel_runtime_pm.c2
6 files changed, 26 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6104d7115054..be8c2f0823c4 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1016,6 +1016,7 @@ enum modeset_restore {
1016#define DP_AUX_B 0x10 1016#define DP_AUX_B 0x10
1017#define DP_AUX_C 0x20 1017#define DP_AUX_C 0x20
1018#define DP_AUX_D 0x30 1018#define DP_AUX_D 0x30
1019#define DP_AUX_E 0x50
1019#define DP_AUX_F 0x60 1020#define DP_AUX_F 0x60
1020 1021
1021#define DDC_PIN_B 0x05 1022#define DDC_PIN_B 0x05
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 2fd92a886789..c52060a35317 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2640,6 +2640,9 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
2640 GEN9_AUX_CHANNEL_C | 2640 GEN9_AUX_CHANNEL_C |
2641 GEN9_AUX_CHANNEL_D; 2641 GEN9_AUX_CHANNEL_D;
2642 2642
2643 if (INTEL_GEN(dev_priv) >= 11)
2644 tmp_mask |= ICL_AUX_CHANNEL_E;
2645
2643 if (IS_CNL_WITH_PORT_F(dev_priv) || 2646 if (IS_CNL_WITH_PORT_F(dev_priv) ||
2644 INTEL_GEN(dev_priv) >= 11) 2647 INTEL_GEN(dev_priv) >= 11)
2645 tmp_mask |= CNL_AUX_CHANNEL_F; 2648 tmp_mask |= CNL_AUX_CHANNEL_F;
@@ -3921,6 +3924,9 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
3921 de_pipe_masked |= GEN8_DE_PIPE_IRQ_FAULT_ERRORS; 3924 de_pipe_masked |= GEN8_DE_PIPE_IRQ_FAULT_ERRORS;
3922 } 3925 }
3923 3926
3927 if (INTEL_GEN(dev_priv) >= 11)
3928 de_port_masked |= ICL_AUX_CHANNEL_E;
3929
3924 if (IS_CNL_WITH_PORT_F(dev_priv) || INTEL_GEN(dev_priv) >= 11) 3930 if (IS_CNL_WITH_PORT_F(dev_priv) || INTEL_GEN(dev_priv) >= 11)
3925 de_port_masked |= CNL_AUX_CHANNEL_F; 3931 de_port_masked |= CNL_AUX_CHANNEL_F;
3926 3932
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index c96a3aec086c..140f6a27d696 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -5315,6 +5315,13 @@ enum {
5315#define _DPD_AUX_CH_DATA4 (dev_priv->info.display_mmio_offset + 0x64320) 5315#define _DPD_AUX_CH_DATA4 (dev_priv->info.display_mmio_offset + 0x64320)
5316#define _DPD_AUX_CH_DATA5 (dev_priv->info.display_mmio_offset + 0x64324) 5316#define _DPD_AUX_CH_DATA5 (dev_priv->info.display_mmio_offset + 0x64324)
5317 5317
5318#define _DPE_AUX_CH_CTL (dev_priv->info.display_mmio_offset + 0x64410)
5319#define _DPE_AUX_CH_DATA1 (dev_priv->info.display_mmio_offset + 0x64414)
5320#define _DPE_AUX_CH_DATA2 (dev_priv->info.display_mmio_offset + 0x64418)
5321#define _DPE_AUX_CH_DATA3 (dev_priv->info.display_mmio_offset + 0x6441c)
5322#define _DPE_AUX_CH_DATA4 (dev_priv->info.display_mmio_offset + 0x64420)
5323#define _DPE_AUX_CH_DATA5 (dev_priv->info.display_mmio_offset + 0x64424)
5324
5318#define _DPF_AUX_CH_CTL (dev_priv->info.display_mmio_offset + 0x64510) 5325#define _DPF_AUX_CH_CTL (dev_priv->info.display_mmio_offset + 0x64510)
5319#define _DPF_AUX_CH_DATA1 (dev_priv->info.display_mmio_offset + 0x64514) 5326#define _DPF_AUX_CH_DATA1 (dev_priv->info.display_mmio_offset + 0x64514)
5320#define _DPF_AUX_CH_DATA2 (dev_priv->info.display_mmio_offset + 0x64518) 5327#define _DPF_AUX_CH_DATA2 (dev_priv->info.display_mmio_offset + 0x64518)
@@ -7019,6 +7026,7 @@ enum {
7019#define GEN8_DE_PORT_IMR _MMIO(0x44444) 7026#define GEN8_DE_PORT_IMR _MMIO(0x44444)
7020#define GEN8_DE_PORT_IIR _MMIO(0x44448) 7027#define GEN8_DE_PORT_IIR _MMIO(0x44448)
7021#define GEN8_DE_PORT_IER _MMIO(0x4444c) 7028#define GEN8_DE_PORT_IER _MMIO(0x4444c)
7029#define ICL_AUX_CHANNEL_E (1 << 29)
7022#define CNL_AUX_CHANNEL_F (1 << 28) 7030#define CNL_AUX_CHANNEL_F (1 << 28)
7023#define GEN9_AUX_CHANNEL_D (1 << 27) 7031#define GEN9_AUX_CHANNEL_D (1 << 27)
7024#define GEN9_AUX_CHANNEL_C (1 << 26) 7032#define GEN9_AUX_CHANNEL_C (1 << 26)
diff --git a/drivers/gpu/drm/i915/intel_display.h b/drivers/gpu/drm/i915/intel_display.h
index c88185ed7594..dfb02da73ac8 100644
--- a/drivers/gpu/drm/i915/intel_display.h
+++ b/drivers/gpu/drm/i915/intel_display.h
@@ -155,7 +155,7 @@ enum aux_ch {
155 AUX_CH_B, 155 AUX_CH_B,
156 AUX_CH_C, 156 AUX_CH_C,
157 AUX_CH_D, 157 AUX_CH_D,
158 _AUX_CH_E, /* does not exist */ 158 AUX_CH_E, /* ICL+ */
159 AUX_CH_F, 159 AUX_CH_F,
160}; 160};
161 161
@@ -196,6 +196,7 @@ enum intel_display_power_domain {
196 POWER_DOMAIN_AUX_B, 196 POWER_DOMAIN_AUX_B,
197 POWER_DOMAIN_AUX_C, 197 POWER_DOMAIN_AUX_C,
198 POWER_DOMAIN_AUX_D, 198 POWER_DOMAIN_AUX_D,
199 POWER_DOMAIN_AUX_E,
199 POWER_DOMAIN_AUX_F, 200 POWER_DOMAIN_AUX_F,
200 POWER_DOMAIN_AUX_IO_A, 201 POWER_DOMAIN_AUX_IO_A,
201 POWER_DOMAIN_GMBUS, 202 POWER_DOMAIN_GMBUS,
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 37b9f62aeb6e..40ffd9163175 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1347,6 +1347,9 @@ static enum aux_ch intel_aux_ch(struct intel_dp *intel_dp)
1347 case DP_AUX_D: 1347 case DP_AUX_D:
1348 aux_ch = AUX_CH_D; 1348 aux_ch = AUX_CH_D;
1349 break; 1349 break;
1350 case DP_AUX_E:
1351 aux_ch = AUX_CH_E;
1352 break;
1350 case DP_AUX_F: 1353 case DP_AUX_F:
1351 aux_ch = AUX_CH_F; 1354 aux_ch = AUX_CH_F;
1352 break; 1355 break;
@@ -1374,6 +1377,8 @@ intel_aux_power_domain(struct intel_dp *intel_dp)
1374 return POWER_DOMAIN_AUX_C; 1377 return POWER_DOMAIN_AUX_C;
1375 case AUX_CH_D: 1378 case AUX_CH_D:
1376 return POWER_DOMAIN_AUX_D; 1379 return POWER_DOMAIN_AUX_D;
1380 case AUX_CH_E:
1381 return POWER_DOMAIN_AUX_E;
1377 case AUX_CH_F: 1382 case AUX_CH_F:
1378 return POWER_DOMAIN_AUX_F; 1383 return POWER_DOMAIN_AUX_F;
1379 default: 1384 default:
@@ -1460,6 +1465,7 @@ static i915_reg_t skl_aux_ctl_reg(struct intel_dp *intel_dp)
1460 case AUX_CH_B: 1465 case AUX_CH_B:
1461 case AUX_CH_C: 1466 case AUX_CH_C:
1462 case AUX_CH_D: 1467 case AUX_CH_D:
1468 case AUX_CH_E:
1463 case AUX_CH_F: 1469 case AUX_CH_F:
1464 return DP_AUX_CH_CTL(aux_ch); 1470 return DP_AUX_CH_CTL(aux_ch);
1465 default: 1471 default:
@@ -1478,6 +1484,7 @@ static i915_reg_t skl_aux_data_reg(struct intel_dp *intel_dp, int index)
1478 case AUX_CH_B: 1484 case AUX_CH_B:
1479 case AUX_CH_C: 1485 case AUX_CH_C:
1480 case AUX_CH_D: 1486 case AUX_CH_D:
1487 case AUX_CH_E:
1481 case AUX_CH_F: 1488 case AUX_CH_F:
1482 return DP_AUX_CH_DATA(aux_ch, index); 1489 return DP_AUX_CH_DATA(aux_ch, index);
1483 default: 1490 default:
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index 53a6eaa9671a..de3a81034f77 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -128,6 +128,8 @@ intel_display_power_domain_str(enum intel_display_power_domain domain)
128 return "AUX_C"; 128 return "AUX_C";
129 case POWER_DOMAIN_AUX_D: 129 case POWER_DOMAIN_AUX_D:
130 return "AUX_D"; 130 return "AUX_D";
131 case POWER_DOMAIN_AUX_E:
132 return "AUX_E";
131 case POWER_DOMAIN_AUX_F: 133 case POWER_DOMAIN_AUX_F:
132 return "AUX_F"; 134 return "AUX_F";
133 case POWER_DOMAIN_AUX_IO_A: 135 case POWER_DOMAIN_AUX_IO_A: