All of lore.kernel.org
 help / color / mirror / Atom feed
From: Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: Matt Roper <matthew.d.roper@intel.com>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com>,
	Clint Taylor <Clinton.A.Taylor@intel.com>,
	Gustavo Sousa <gustavo.sousa@intel.com>
Subject: [PATCH v2 10/25] drm/i915/xe2hpd: Add new C20 PLL register address
Date: Wed,  3 Apr 2024 16:52:38 +0530	[thread overview]
Message-ID: <20240403112253.1432390-11-balasubramani.vivekanandan@intel.com> (raw)
In-Reply-To: <20240403112253.1432390-1-balasubramani.vivekanandan@intel.com>

Xe2_HPD has different address for C20 PLL registers. Enable the support
to use the right PLL register address based on display version.

Note that Xe2_LPD uses the same C20 SRAM offsets used by Xe_LPDP (i.e.
MTL's display). According to the BSpec, currently, only Xe2_HPD has
different offsets, so make sure it is the only display using them in the
driver.

Bspec: 67610
Cc: Clint Taylor <Clinton.A.Taylor@intel.com>
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Balasubramani Vivekanandan <balasubramani.vivekanandan@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/i915/display/intel_cx0_phy.c  | 27 +++++++++++++++++--
 .../gpu/drm/i915/display/intel_cx0_phy_regs.h |  9 +++++++
 2 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index caaae5d3758e..6e4647859fc6 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -770,6 +770,17 @@ static struct intel_c20pll_reg mtl_c20_reg = {
 	.mpllb_b = MTL_C20_B_MPLLB_CFG_ADDR
 };
 
+static struct intel_c20pll_reg xe2hpd_c20_reg = {
+	.tx_cnt_a = XE2HPD_C20_A_TX_CNTX_CFG_ADDR,
+	.tx_cnt_b = XE2HPD_C20_B_TX_CNTX_CFG_ADDR,
+	.cmn_cnt_a = XE2HPD_C20_A_CMN_CNTX_CFG_ADDR,
+	.cmn_cnt_b = XE2HPD_C20_B_CMN_CNTX_CFG_ADDR,
+	.mplla_a = XE2HPD_C20_A_MPLLA_CFG_ADDR,
+	.mplla_b = XE2HPD_C20_B_MPLLA_CFG_ADDR,
+	.mpllb_a = XE2HPD_C20_A_MPLLB_CFG_ADDR,
+	.mpllb_b = XE2HPD_C20_B_MPLLB_CFG_ADDR,
+};
+
 /* C20 basic DP 1.4 tables */
 static const struct intel_c20pll_state mtl_c20_dp_rbr = {
 	.clock = 162000,
@@ -2166,19 +2177,29 @@ static int intel_c20pll_calc_port_clock(struct intel_encoder *encoder,
 	return vco << tx_rate_mult >> tx_clk_div >> tx_rate;
 }
 
+static struct intel_c20pll_reg *intel_c20_get_pll_reg(struct drm_i915_private *i915)
+{
+	if (DISPLAY_VER_FULL(i915) == IP_VER(14, 1))
+		return &xe2hpd_c20_reg;
+	else
+		return &mtl_c20_reg;
+}
+
 static void intel_c20pll_readout_hw_state(struct intel_encoder *encoder,
 					  struct intel_c20pll_state *pll_state)
 {
 	bool cntx;
 	intel_wakeref_t wakeref;
 	int i;
-	struct intel_c20pll_reg *pll_reg = &mtl_c20_reg;
+	struct intel_c20pll_reg *pll_reg;
 
 	wakeref = intel_cx0_phy_transaction_begin(encoder);
 
 	/* 1. Read current context selection */
 	cntx = intel_cx0_read(encoder, INTEL_CX0_LANE0, PHY_C20_VDR_CUSTOM_SERDES_RATE) & PHY_C20_CONTEXT_TOGGLE;
 
+	pll_reg = intel_c20_get_pll_reg(to_i915(encoder->base.dev));
+
 	/* Read Tx configuration */
 	for (i = 0; i < ARRAY_SIZE(pll_state->tx); i++) {
 		if (cntx)
@@ -2353,7 +2374,7 @@ static void intel_c20_pll_program(struct drm_i915_private *i915,
 	u32 clock = crtc_state->port_clock;
 	bool cntx;
 	int i;
-	const struct intel_c20pll_reg *pll_reg = &mtl_c20_reg;
+	const struct intel_c20pll_reg *pll_reg;
 
 	if (intel_crtc_has_dp_encoder(crtc_state))
 		dp = true;
@@ -2372,6 +2393,8 @@ static void intel_c20_pll_program(struct drm_i915_private *i915,
 		usleep_range(4000, 4100);
 	}
 
+	pll_reg = intel_c20_get_pll_reg(i915);
+
 	/* 3. Write SRAM configuration context. If A in use, write configuration to B context */
 	/* 3.1 Tx configuration */
 	for (i = 0; i < ARRAY_SIZE(pll_state->tx); i++) {
diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h b/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
index 882b98dc347b..8e5fd605b99e 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
@@ -292,6 +292,15 @@ struct intel_c20pll_reg {
 #define MTL_C20_A_MPLLB_CFG_ADDR	0xCB5A
 #define MTL_C20_B_MPLLB_CFG_ADDR	0xCB4E
 
+#define XE2HPD_C20_A_TX_CNTX_CFG_ADDR	0xCF5E
+#define XE2HPD_C20_B_TX_CNTX_CFG_ADDR	0xCF5A
+#define XE2HPD_C20_A_CMN_CNTX_CFG_ADDR	0xCE8E
+#define XE2HPD_C20_B_CMN_CNTX_CFG_ADDR	0xCE89
+#define XE2HPD_C20_A_MPLLA_CFG_ADDR	0xCE58
+#define XE2HPD_C20_B_MPLLA_CFG_ADDR	0xCE4D
+#define XE2HPD_C20_A_MPLLB_CFG_ADDR	0xCCC2
+#define XE2HPD_C20_B_MPLLB_CFG_ADDR	0xCCB6
+
 /* C20 Phy VSwing Masks */
 #define C20_PHY_VSWING_PREEMPH_MASK	REG_GENMASK8(5, 0)
 #define C20_PHY_VSWING_PREEMPH(val)	REG_FIELD_PREP8(C20_PHY_VSWING_PREEMPH_MASK, val)
-- 
2.25.1


  parent reply	other threads:[~2024-04-03 11:23 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-03 11:22 [PATCH v2 00/25] Enable dislay support for Battlemage Balasubramani Vivekanandan
2024-04-03 11:22 ` [PATCH v2 01/25] drm/i915/display: Prepare to handle new C20 PLL register address Balasubramani Vivekanandan
2024-04-03 11:40   ` Jani Nikula
2024-04-03 11:22 ` [PATCH v2 02/25] drm/xe/bmg: Add BMG platform definition Balasubramani Vivekanandan
2024-04-03 13:16   ` Lucas De Marchi
2024-04-03 11:22 ` [PATCH v2 03/25] drm/xe/bmg: Define IS_BATTLEMAGE macro Balasubramani Vivekanandan
2024-04-03 18:05   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 04/25] drm/i915/bmg: " Balasubramani Vivekanandan
2024-04-03 18:11   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 05/25] drm/i915/xe2: Skip CCS modifiers for Xe2 platforms Balasubramani Vivekanandan
2024-04-03 19:02   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 06/25] drm/i915/xe2hpd: Initial cdclk table Balasubramani Vivekanandan
2024-04-03 19:05   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 07/25] Revert "drm/i915/dgfx: DGFX uses direct VBT pin mapping" Balasubramani Vivekanandan
2024-04-03 19:14   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 08/25] drm/i915/bmg: Extend DG2 tc check to future Balasubramani Vivekanandan
2024-04-03 19:15   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 09/25] drm/i915/xe2hpd: Properly disable power in port A Balasubramani Vivekanandan
2024-04-03 19:28   ` Matt Roper
2024-04-03 11:22 ` Balasubramani Vivekanandan [this message]
2024-04-03 12:00   ` [PATCH v2 10/25] drm/i915/xe2hpd: Add new C20 PLL register address Jani Nikula
2024-04-03 11:22 ` [PATCH v2 11/25] drm/i915/xe2hpd: Add support for eDP PLL configuration Balasubramani Vivekanandan
2024-04-03 20:11   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 12/25] drm/i915/xe2hpd: update pll values in sync with Bspec Balasubramani Vivekanandan
2024-04-03 20:41   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 13/25] drm/i915/xe2hpd: Add display info Balasubramani Vivekanandan
2024-04-03 21:12   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 14/25] drm/i915/xe2hpd: Add missing chicken bit register programming Balasubramani Vivekanandan
2024-04-03 21:00   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 15/25] drm/xe/display: Lane reversal requires writes to both context lanes Balasubramani Vivekanandan
2024-04-03 11:52   ` Jani Nikula
2024-04-03 11:22 ` [PATCH v2 16/25] drm/xe/xe2hpd: Define a new DRAM type INTEL_DRAM_GDDR Balasubramani Vivekanandan
2024-04-03 11:53   ` Jani Nikula
2024-04-03 11:22 ` [PATCH v2 17/25] drm/i915/xe2hpd: Add max memory bandwidth algorithm Balasubramani Vivekanandan
2024-04-03 11:22 ` [PATCH v2 18/25] drm/i915/display: Enable RM timeout detection Balasubramani Vivekanandan
2024-04-03 11:57   ` Jani Nikula
2024-04-03 18:02   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 19/25] drm/i915/xe2hpd: Do not program MBUS_DBOX BW credits Balasubramani Vivekanandan
2024-04-03 21:20   ` Matt Roper
2024-04-03 11:22 ` [PATCH v2 20/25] drm/i915/bmg: BMG should re-use MTL's south display logic Balasubramani Vivekanandan
2024-04-08 13:00   ` Bhadane, Dnyaneshwar
2024-04-03 11:22 ` [PATCH v2 21/25] drm/i915/xe2hpd: Set maximum DP rate to UHBR13.5 Balasubramani Vivekanandan
2024-04-08  3:22   ` Chauhan, Shekhar
2024-04-03 11:22 ` [PATCH v2 22/25] drm/xe/gt_print: add xe_gt_err_once() Balasubramani Vivekanandan
2024-04-03 12:07   ` Nirmoy Das
2024-04-03 11:22 ` [PATCH v2 23/25] drm/xe/device: implement transient flush Balasubramani Vivekanandan
2024-04-03 12:13   ` Nirmoy Das
2024-04-03 11:22 ` [PATCH v2 24/25] drm/i915/display: perform " Balasubramani Vivekanandan
2024-04-03 12:15   ` Nirmoy Das
2024-04-03 11:22 ` [PATCH v2 25/25] drm/xe/bmg: Enable the display support Balasubramani Vivekanandan
2024-04-08  3:16   ` Chauhan, Shekhar
2024-04-08  6:23     ` Vivekanandan, Balasubramani
2024-04-03 11:29 ` ✓ CI.Patch_applied: success for Enable dislay support for Battlemage (rev2) Patchwork
2024-04-03 11:30 ` ✗ CI.checkpatch: warning " Patchwork
2024-04-03 11:31 ` ✓ CI.KUnit: success " Patchwork
2024-04-03 11:42 ` ✓ CI.Build: " Patchwork
2024-04-03 11:50 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
2024-04-03 11:50 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-04-03 11:55 ` ✓ Fi.CI.BAT: success " Patchwork
2024-04-03 12:00 ` ✓ CI.Hooks: " Patchwork
2024-04-03 12:01 ` ✗ CI.checksparse: warning " Patchwork
2024-04-04  3:58 ` ✗ Fi.CI.IGT: failure " Patchwork

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=20240403112253.1432390-11-balasubramani.vivekanandan@intel.com \
    --to=balasubramani.vivekanandan@intel.com \
    --cc=Clinton.A.Taylor@intel.com \
    --cc=gustavo.sousa@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=lucas.demarchi@intel.com \
    --cc=matthew.d.roper@intel.com \
    /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.