From: "Shankar, Uma" <uma.shankar@intel.com>
To: "C, Ramalingam" <ramalingam.c@intel.com>,
intel-gfx <intel-gfx@lists.freedesktop.org>,
dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH 2/3] drm/i915/dg2: Drop 38.4 MHz MPLLB tables
Date: Wed, 16 Feb 2022 08:06:21 +0000 [thread overview]
Message-ID: <196826c6caef4b4585027f8322c4dce8@intel.com> (raw)
In-Reply-To: <20220215055154.15363-3-ramalingam.c@intel.com>
> -----Original Message-----
> From: C, Ramalingam <ramalingam.c@intel.com>
> Sent: Tuesday, February 15, 2022 11:22 AM
> To: intel-gfx <intel-gfx@lists.freedesktop.org>; dri-devel <dri-
> devel@lists.freedesktop.org>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>; Shankar, Uma
> <uma.shankar@intel.com>; Roper, Matthew D <matthew.d.roper@intel.com>;
> Srivatsa, Anusha <anusha.srivatsa@intel.com>; Souza, Jose
> <jose.souza@intel.com>; C, Ramalingam <ramalingam.c@intel.com>
> Subject: [PATCH 2/3] drm/i915/dg2: Drop 38.4 MHz MPLLB tables
>
> From: Matt Roper <matthew.d.roper@intel.com>
>
> Our early understanding of DG2 was incorrect; since the 5th display isn't actually a
> Type-C output, 38.4 MHz input clocks are never used on this platform and we can
> drop the corresponding MPLLB tables.
Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_snps_phy.c | 208 +-----------------
> 1 file changed, 1 insertion(+), 207 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_snps_phy.c
> b/drivers/gpu/drm/i915/display/intel_snps_phy.c
> index 8573a458811a..c60575cb5368 100644
> --- a/drivers/gpu/drm/i915/display/intel_snps_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_snps_phy.c
> @@ -250,197 +250,6 @@ static const struct intel_mpllb_state * const
> dg2_dp_100_tables[] = {
> NULL,
> };
>
> -/*
> - * Basic DP link rates with 38.4 MHz reference clock.
> - */
> -
> -static const struct intel_mpllb_state dg2_dp_rbr_38_4 = {
> - .clock = 162000,
> - .ref_control =
> - REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 1),
> - .mpllb_cp =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 5) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 25) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 65) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 127),
> - .mpllb_div =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_TX_CLK_DIV, 2) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 2) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FREQ_VCO, 2),
> - .mpllb_div2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 304),
> - .mpllb_fracn1 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 1),
> - .mpllb_fracn2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 49152),
> -};
> -
> -static const struct intel_mpllb_state dg2_dp_hbr1_38_4 = {
> - .clock = 270000,
> - .ref_control =
> - REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 1),
> - .mpllb_cp =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 5) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 25) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 65) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 127),
> - .mpllb_div =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_TX_CLK_DIV, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 2) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FREQ_VCO, 3),
> - .mpllb_div2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 248),
> - .mpllb_fracn1 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 1),
> - .mpllb_fracn2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 40960),
> -};
> -
> -static const struct intel_mpllb_state dg2_dp_hbr2_38_4 = {
> - .clock = 540000,
> - .ref_control =
> - REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 1),
> - .mpllb_cp =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 5) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 25) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 65) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 127),
> - .mpllb_div =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 2) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FREQ_VCO, 3),
> - .mpllb_div2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 248),
> - .mpllb_fracn1 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 1),
> - .mpllb_fracn2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 40960),
> -};
> -
> -static const struct intel_mpllb_state dg2_dp_hbr3_38_4 = {
> - .clock = 810000,
> - .ref_control =
> - REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 1),
> - .mpllb_cp =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 6) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 26) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 65) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 127),
> - .mpllb_div =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 2),
> - .mpllb_div2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 388),
> - .mpllb_fracn1 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 1),
> - .mpllb_fracn2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 61440),
> -};
> -
> -static const struct intel_mpllb_state dg2_dp_uhbr10_38_4 = {
> - .clock = 1000000,
> - .ref_control =
> - REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 1),
> - .mpllb_cp =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 5) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 26) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 65) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 127),
> - .mpllb_div =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV_MULTIPLIER, 8) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_WORD_DIV2_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DP2_MODE, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_SHIM_DIV32_CLK_SEL, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 2),
> - .mpllb_div2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 488),
> - .mpllb_fracn1 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 3),
> - .mpllb_fracn2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_REM, 2) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 27306),
> -
> - /*
> - * SSC will be enabled, DP UHBR has a minimum SSC requirement.
> - */
> - .mpllb_sscen =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_PEAK, 76800),
> - .mpllb_sscstep =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_STEPSIZE, 129024),
> -};
> -
> -static const struct intel_mpllb_state dg2_dp_uhbr13_38_4 = {
> - .clock = 1350000,
> - .ref_control =
> - REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 1),
> - .mpllb_cp =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 6) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 56) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 65) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 127),
> - .mpllb_div =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV_CLK_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV_MULTIPLIER, 8) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_WORD_DIV2_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_DP2_MODE, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 3),
> - .mpllb_div2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 670),
> - .mpllb_fracn1 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 1),
> - .mpllb_fracn2 =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 36864),
> -
> - /*
> - * SSC will be enabled, DP UHBR has a minimum SSC requirement.
> - */
> - .mpllb_sscen =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_EN, 1) |
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_PEAK, 103680),
> - .mpllb_sscstep =
> - REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_STEPSIZE, 174182),
> -};
> -
> -static const struct intel_mpllb_state * const dg2_dp_38_4_tables[] = {
> - &dg2_dp_rbr_38_4,
> - &dg2_dp_hbr1_38_4,
> - &dg2_dp_hbr2_38_4,
> - &dg2_dp_hbr3_38_4,
> - &dg2_dp_uhbr10_38_4,
> - &dg2_dp_uhbr13_38_4,
> - NULL,
> -};
> -
> /*
> * eDP link rates with 100 MHz reference clock.
> */
> @@ -749,22 +558,7 @@ intel_mpllb_tables_get(struct intel_crtc_state *crtc_state,
> if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
> return dg2_edp_tables;
> } else if (intel_crtc_has_dp_encoder(crtc_state)) {
> - /*
> - * FIXME: Initially we're just enabling the "combo" outputs on
> - * port A-D. The MPLLB for those ports takes an input from the
> - * "Display Filter PLL" which always has an output frequency
> - * of 100 MHz, hence the use of the _100 tables below.
> - *
> - * Once we enable port TC1 it will either use the same 100 MHz
> - * "Display Filter PLL" (when strapped to support a native
> - * display connection) or different 38.4 MHz "Filter PLL" when
> - * strapped to support a USB connection, so we'll need to check
> - * that to determine which table to use.
> - */
> - if (0)
> - return dg2_dp_38_4_tables;
> - else
> - return dg2_dp_100_tables;
> + return dg2_dp_100_tables;
> } else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI)) {
> return dg2_hdmi_tables;
> }
> --
> 2.20.1
next prev parent reply other threads:[~2022-02-16 8:06 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-15 5:51 [Intel-gfx] [PATCH 0/3] drm/i915/dg2: 5th Display output Ramalingam C
2022-02-15 5:51 ` [Intel-gfx] [PATCH 1/3] drm/i915/dg2: Enable 5th display Ramalingam C
2022-02-16 8:02 ` Shankar, Uma
2022-02-17 16:33 ` Matt Roper
2022-02-17 16:37 ` Matt Roper
2022-02-17 17:46 ` Ramalingam C
2022-02-17 18:42 ` [Intel-gfx] [PATCH v2 1/3] drm/i915/dg2: Enable 5th port Ramalingam C
2022-02-17 21:15 ` Lucas De Marchi
2022-02-15 5:51 ` [Intel-gfx] [PATCH 2/3] drm/i915/dg2: Drop 38.4 MHz MPLLB tables Ramalingam C
2022-02-16 8:06 ` Shankar, Uma [this message]
2022-02-17 19:35 ` Lucas De Marchi
2022-02-15 5:51 ` [Intel-gfx] [PATCH 3/3] drm/i915: Fix for PHY_MISC_TC1 offset Ramalingam C
2022-02-16 8:16 ` Shankar, Uma
2022-02-16 8:50 ` Ville Syrjälä
2022-02-16 9:36 ` Hogander, Jouni
2022-02-16 10:07 ` Ville Syrjälä
2022-02-16 14:11 ` Hogander, Jouni
2022-02-16 15:01 ` Ville Syrjälä
2022-02-17 12:56 ` Ville Syrjälä
2022-02-17 20:46 ` Lucas De Marchi
2022-02-17 19:38 ` Lucas De Marchi
2022-02-16 5:01 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dg2: 5th Display output Patchwork
2022-02-16 5:02 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-02-16 5:36 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2022-02-18 2:33 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dg2: 5th Display output (rev3) Patchwork
2022-02-18 2:34 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-02-18 3:02 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-02-18 13:49 ` [Intel-gfx] ✓ Fi.CI.IGT: " 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=196826c6caef4b4585027f8322c4dce8@intel.com \
--to=uma.shankar@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ramalingam.c@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox