diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_runtime_pm.c | 2 |
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: |