All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Roper <matthew.d.roper@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 3/5] drm/i915: Add missing AUX channel H & I support
Date: Fri, 25 Oct 2019 16:06:21 -0700	[thread overview]
Message-ID: <20191025230623.27829-4-matthew.d.roper@intel.com> (raw)
In-Reply-To: <20191025230623.27829-1-matthew.d.roper@intel.com>

TGL's extra ports also bring extra AUX channels.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/i915/display/intel_bios.c     |  6 ++++
 drivers/gpu/drm/i915/display/intel_display.c  | 36 +++++--------------
 drivers/gpu/drm/i915/display/intel_display.h  |  2 ++
 drivers/gpu/drm/i915/display/intel_dp.c       |  4 +++
 drivers/gpu/drm/i915/display/intel_vbt_defs.h |  2 ++
 5 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index fe302338b7fd..3867b41338a7 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2339,6 +2339,12 @@ enum aux_ch intel_bios_port_aux_ch(struct drm_i915_private *dev_priv,
 	case DP_AUX_G:
 		aux_ch = AUX_CH_G;
 		break;
+	case DP_AUX_H:
+		aux_ch = AUX_CH_H;
+		break;
+	case DP_AUX_I:
+		aux_ch = AUX_CH_I;
+		break;
 	default:
 		MISSING_CASE(info->alternate_aux_channel);
 		aux_ch = AUX_CH_A;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index cbf9cf30050c..e45ed0c07d0d 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -6847,39 +6847,19 @@ intel_aux_power_domain(struct intel_digital_port *dig_port)
 
 	if (intel_phy_is_tc(dev_priv, phy) &&
 	    dig_port->tc_mode == TC_PORT_TBT_ALT) {
-		switch (dig_port->aux_ch) {
-		case AUX_CH_C:
-			return POWER_DOMAIN_AUX_C_TBT;
-		case AUX_CH_D:
-			return POWER_DOMAIN_AUX_D_TBT;
-		case AUX_CH_E:
-			return POWER_DOMAIN_AUX_E_TBT;
-		case AUX_CH_F:
-			return POWER_DOMAIN_AUX_F_TBT;
-		case AUX_CH_G:
-			return POWER_DOMAIN_AUX_G_TBT;
-		default:
+		if (dig_port->aux_ch >= AUX_CH_C &&
+		    dig_port->aux_ch <= AUX_CH_I) {
+			return POWER_DOMAIN_AUX_C_TBT + dig_port->aux_ch -
+				AUX_CH_C;
+		} else {
 			MISSING_CASE(dig_port->aux_ch);
 			return POWER_DOMAIN_AUX_C_TBT;
 		}
 	}
 
-	switch (dig_port->aux_ch) {
-	case AUX_CH_A:
-		return POWER_DOMAIN_AUX_A;
-	case AUX_CH_B:
-		return POWER_DOMAIN_AUX_B;
-	case AUX_CH_C:
-		return POWER_DOMAIN_AUX_C;
-	case AUX_CH_D:
-		return POWER_DOMAIN_AUX_D;
-	case AUX_CH_E:
-		return POWER_DOMAIN_AUX_E;
-	case AUX_CH_F:
-		return POWER_DOMAIN_AUX_F;
-	case AUX_CH_G:
-		return POWER_DOMAIN_AUX_G;
-	default:
+	if (dig_port->aux_ch <= AUX_CH_I) {
+		return POWER_DOMAIN_AUX_A + dig_port->aux_ch;
+	} else {
 		MISSING_CASE(dig_port->aux_ch);
 		return POWER_DOMAIN_AUX_A;
 	}
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index ca7ca2804d8b..9ccaae41a8ad 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -275,6 +275,8 @@ enum aux_ch {
 	AUX_CH_E, /* ICL+ */
 	AUX_CH_F,
 	AUX_CH_G,
+	AUX_CH_H,
+	AUX_CH_I,
 };
 
 #define aux_ch_name(a) ((a) + 'A')
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 86989ec25bc6..65bab46f7b43 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1667,6 +1667,8 @@ static i915_reg_t skl_aux_ctl_reg(struct intel_dp *intel_dp)
 	case AUX_CH_E:
 	case AUX_CH_F:
 	case AUX_CH_G:
+	case AUX_CH_H:
+	case AUX_CH_I:
 		return DP_AUX_CH_CTL(aux_ch);
 	default:
 		MISSING_CASE(aux_ch);
@@ -1688,6 +1690,8 @@ static i915_reg_t skl_aux_data_reg(struct intel_dp *intel_dp, int index)
 	case AUX_CH_E:
 	case AUX_CH_F:
 	case AUX_CH_G:
+	case AUX_CH_H:
+	case AUX_CH_I:
 		return DP_AUX_CH_DATA(aux_ch, index);
 	default:
 		MISSING_CASE(aux_ch);
diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index e7057f53866a..49caa066061d 100644
--- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
@@ -329,6 +329,8 @@ enum vbt_gmbus_ddi {
 #define DP_AUX_E 0x50
 #define DP_AUX_F 0x60
 #define DP_AUX_G 0x70
+#define DP_AUX_H 0x80
+#define DP_AUX_I 0x90
 
 #define VBT_DP_MAX_LINK_RATE_HBR3	0
 #define VBT_DP_MAX_LINK_RATE_HBR2	1
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

WARNING: multiple messages have this Message-ID (diff)
From: Matt Roper <matthew.d.roper@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH 3/5] drm/i915: Add missing AUX channel H & I support
Date: Fri, 25 Oct 2019 16:06:21 -0700	[thread overview]
Message-ID: <20191025230623.27829-4-matthew.d.roper@intel.com> (raw)
Message-ID: <20191025230621.f4JGT2ZjApwXNCI7_EyyfZ4u2SPHYwB-s0TDY1kXw5A@z> (raw)
In-Reply-To: <20191025230623.27829-1-matthew.d.roper@intel.com>

TGL's extra ports also bring extra AUX channels.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/i915/display/intel_bios.c     |  6 ++++
 drivers/gpu/drm/i915/display/intel_display.c  | 36 +++++--------------
 drivers/gpu/drm/i915/display/intel_display.h  |  2 ++
 drivers/gpu/drm/i915/display/intel_dp.c       |  4 +++
 drivers/gpu/drm/i915/display/intel_vbt_defs.h |  2 ++
 5 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index fe302338b7fd..3867b41338a7 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -2339,6 +2339,12 @@ enum aux_ch intel_bios_port_aux_ch(struct drm_i915_private *dev_priv,
 	case DP_AUX_G:
 		aux_ch = AUX_CH_G;
 		break;
+	case DP_AUX_H:
+		aux_ch = AUX_CH_H;
+		break;
+	case DP_AUX_I:
+		aux_ch = AUX_CH_I;
+		break;
 	default:
 		MISSING_CASE(info->alternate_aux_channel);
 		aux_ch = AUX_CH_A;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index cbf9cf30050c..e45ed0c07d0d 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -6847,39 +6847,19 @@ intel_aux_power_domain(struct intel_digital_port *dig_port)
 
 	if (intel_phy_is_tc(dev_priv, phy) &&
 	    dig_port->tc_mode == TC_PORT_TBT_ALT) {
-		switch (dig_port->aux_ch) {
-		case AUX_CH_C:
-			return POWER_DOMAIN_AUX_C_TBT;
-		case AUX_CH_D:
-			return POWER_DOMAIN_AUX_D_TBT;
-		case AUX_CH_E:
-			return POWER_DOMAIN_AUX_E_TBT;
-		case AUX_CH_F:
-			return POWER_DOMAIN_AUX_F_TBT;
-		case AUX_CH_G:
-			return POWER_DOMAIN_AUX_G_TBT;
-		default:
+		if (dig_port->aux_ch >= AUX_CH_C &&
+		    dig_port->aux_ch <= AUX_CH_I) {
+			return POWER_DOMAIN_AUX_C_TBT + dig_port->aux_ch -
+				AUX_CH_C;
+		} else {
 			MISSING_CASE(dig_port->aux_ch);
 			return POWER_DOMAIN_AUX_C_TBT;
 		}
 	}
 
-	switch (dig_port->aux_ch) {
-	case AUX_CH_A:
-		return POWER_DOMAIN_AUX_A;
-	case AUX_CH_B:
-		return POWER_DOMAIN_AUX_B;
-	case AUX_CH_C:
-		return POWER_DOMAIN_AUX_C;
-	case AUX_CH_D:
-		return POWER_DOMAIN_AUX_D;
-	case AUX_CH_E:
-		return POWER_DOMAIN_AUX_E;
-	case AUX_CH_F:
-		return POWER_DOMAIN_AUX_F;
-	case AUX_CH_G:
-		return POWER_DOMAIN_AUX_G;
-	default:
+	if (dig_port->aux_ch <= AUX_CH_I) {
+		return POWER_DOMAIN_AUX_A + dig_port->aux_ch;
+	} else {
 		MISSING_CASE(dig_port->aux_ch);
 		return POWER_DOMAIN_AUX_A;
 	}
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index ca7ca2804d8b..9ccaae41a8ad 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -275,6 +275,8 @@ enum aux_ch {
 	AUX_CH_E, /* ICL+ */
 	AUX_CH_F,
 	AUX_CH_G,
+	AUX_CH_H,
+	AUX_CH_I,
 };
 
 #define aux_ch_name(a) ((a) + 'A')
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 86989ec25bc6..65bab46f7b43 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1667,6 +1667,8 @@ static i915_reg_t skl_aux_ctl_reg(struct intel_dp *intel_dp)
 	case AUX_CH_E:
 	case AUX_CH_F:
 	case AUX_CH_G:
+	case AUX_CH_H:
+	case AUX_CH_I:
 		return DP_AUX_CH_CTL(aux_ch);
 	default:
 		MISSING_CASE(aux_ch);
@@ -1688,6 +1690,8 @@ static i915_reg_t skl_aux_data_reg(struct intel_dp *intel_dp, int index)
 	case AUX_CH_E:
 	case AUX_CH_F:
 	case AUX_CH_G:
+	case AUX_CH_H:
+	case AUX_CH_I:
 		return DP_AUX_CH_DATA(aux_ch, index);
 	default:
 		MISSING_CASE(aux_ch);
diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index e7057f53866a..49caa066061d 100644
--- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
@@ -329,6 +329,8 @@ enum vbt_gmbus_ddi {
 #define DP_AUX_E 0x50
 #define DP_AUX_F 0x60
 #define DP_AUX_G 0x70
+#define DP_AUX_H 0x80
+#define DP_AUX_I 0x90
 
 #define VBT_DP_MAX_LINK_RATE_HBR3	0
 #define VBT_DP_MAX_LINK_RATE_HBR2	1
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2019-10-25 23:06 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-25 23:06 [PATCH 0/5] DP AUX updates Matt Roper
2019-10-25 23:06 ` [Intel-gfx] " Matt Roper
2019-10-25 23:06 ` [PATCH 1/5] drm/i915/tgl: Handle AUX interrupts for TC ports Matt Roper
2019-10-25 23:06   ` [Intel-gfx] " Matt Roper
2019-10-25 23:11   ` Lucas De Marchi
2019-10-25 23:11     ` [Intel-gfx] " Lucas De Marchi
2019-10-25 23:06 ` [PATCH 2/5] drm/i915: Drop unused AUX register offsets Matt Roper
2019-10-25 23:06   ` [Intel-gfx] " Matt Roper
2019-10-25 23:11   ` Lucas De Marchi
2019-10-25 23:11     ` [Intel-gfx] " Lucas De Marchi
2019-10-26  5:12   ` Matt Roper
2019-10-26  5:12     ` [Intel-gfx] " Matt Roper
2019-10-25 23:06 ` Matt Roper [this message]
2019-10-25 23:06   ` [Intel-gfx] [PATCH 3/5] drm/i915: Add missing AUX channel H & I support Matt Roper
2019-10-25 23:13   ` Lucas De Marchi
2019-10-25 23:13     ` [Intel-gfx] " Lucas De Marchi
2019-10-28 14:57     ` Matt Roper
2019-10-28 14:57       ` [Intel-gfx] " Matt Roper
2019-10-29 17:59       ` Lucas De Marchi
2019-10-29 17:59         ` [Intel-gfx] " Lucas De Marchi
2019-10-25 23:06 ` [PATCH 4/5] drm/i915: Provide more information on DP AUX failures Matt Roper
2019-10-25 23:06   ` [Intel-gfx] " Matt Roper
2019-10-25 23:19   ` Lucas De Marchi
2019-10-25 23:19     ` [Intel-gfx] " Lucas De Marchi
2019-10-25 23:25     ` Matt Roper
2019-10-25 23:25       ` [Intel-gfx] " Matt Roper
2019-10-25 23:32       ` Lucas De Marchi
2019-10-25 23:32         ` [Intel-gfx] " Lucas De Marchi
2019-10-29 17:31     ` [PATCH v2 " Matt Roper
2019-10-29 17:31       ` [Intel-gfx] " Matt Roper
2019-10-29 19:33       ` Lucas De Marchi
2019-10-29 19:33         ` [Intel-gfx] " Lucas De Marchi
2019-10-28 16:43   ` [PATCH " Ville Syrjälä
2019-10-28 16:43     ` [Intel-gfx] " Ville Syrjälä
2019-10-25 23:06 ` [PATCH 5/5] drm/i915/tgl: Add AUX B & C to DC_OFF_POWER_DOMAINS Matt Roper
2019-10-25 23:06   ` [Intel-gfx] " Matt Roper
2019-10-25 23:24   ` Lucas De Marchi
2019-10-25 23:24     ` [Intel-gfx] " Lucas De Marchi
2019-10-26  8:57   ` Imre Deak
2019-10-26  8:57     ` [Intel-gfx] " Imre Deak
2019-10-26  1:09 ` ✗ Fi.CI.BUILD: failure for DP AUX updates Patchwork
2019-10-26  1:09   ` [Intel-gfx] " Patchwork
2019-10-26  5:37 ` ✗ Fi.CI.CHECKPATCH: warning for DP AUX updates (rev2) Patchwork
2019-10-26  5:37   ` [Intel-gfx] " Patchwork
2019-10-26  5:57 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-10-26  5:57   ` [Intel-gfx] " Patchwork
2019-10-26  6:26 ` ✗ Fi.CI.CHECKPATCH: warning for DP AUX updates (rev3) Patchwork
2019-10-26  6:26   ` [Intel-gfx] " Patchwork
2019-10-26  6:47 ` ✓ Fi.CI.BAT: success " Patchwork
2019-10-26  6:47   ` [Intel-gfx] " Patchwork
2019-10-28  1:02 ` ✓ Fi.CI.IGT: " Patchwork
2019-10-28  1:02   ` [Intel-gfx] " Patchwork
2019-10-29 17:58   ` Matt Roper
2019-10-29 17:58     ` [Intel-gfx] " Matt Roper
2019-10-29 19:56     ` Matt Roper
2019-10-29 19:56       ` [Intel-gfx] " Matt Roper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191025230623.27829-4-matthew.d.roper@intel.com \
    --to=matthew.d.roper@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.