[Intel-gfx] [PATCH v2 10/22] drm/i915/rkl: RKL only uses PHY_MISC for PHY's A and B
Srivatsa, Anusha
anusha.srivatsa at intel.com
Wed May 6 13:49:06 UTC 2020
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf Of Matt
> Roper
> Sent: Tuesday, May 5, 2020 4:22 AM
> To: intel-gfx at lists.freedesktop.org
> Subject: [Intel-gfx] [PATCH v2 10/22] drm/i915/rkl: RKL only uses PHY_MISC for
> PHY's A and B
>
> Since the number of platforms with this restriction are growing, let's separate
> out the platform logic into a has_phy_misc() function.
>
> Bspec: 50107
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> .../gpu/drm/i915/display/intel_combo_phy.c | 30 +++++++++++--------
> 1 file changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_combo_phy.c
> b/drivers/gpu/drm/i915/display/intel_combo_phy.c
> index 9ff05ec12115..43d8784f6fa0 100644
> --- a/drivers/gpu/drm/i915/display/intel_combo_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_combo_phy.c
> @@ -181,11 +181,25 @@ static void cnl_combo_phys_uninit(struct
> drm_i915_private *dev_priv)
> intel_de_write(dev_priv, CHICKEN_MISC_2, val); }
>
> +static bool has_phy_misc(struct drm_i915_private *i915, enum phy phy) {
> + /*
> + * Some platforms only expect PHY_MISC to be programmed for PHY-A
> and
> + * PHY-B and may not even have instances of the register for the
> + * other combo PHY's.
> + */
> + if (IS_ELKHARTLAKE(i915) ||
> + IS_ROCKETLAKE(i915))
> + return phy < PHY_C;
According BSpec 50107, there is an instance of this for combo PHY C as well.
Anusha
> +
> + return true;
> +}
> +
> static bool icl_combo_phy_enabled(struct drm_i915_private *dev_priv,
> enum phy phy)
> {
> /* The PHY C added by EHL has no PHY_MISC register */
> - if (IS_ELKHARTLAKE(dev_priv) && phy == PHY_C)
> + if (!has_phy_misc(dev_priv, phy))
> return intel_de_read(dev_priv, ICL_PORT_COMP_DW0(phy))
> & COMP_INIT;
> else
> return !(intel_de_read(dev_priv, ICL_PHY_MISC(phy)) & @@ -
> 317,12 +331,7 @@ static void icl_combo_phys_init(struct drm_i915_private
> *dev_priv)
> continue;
> }
>
> - /*
> - * Although EHL adds a combo PHY C, there's no PHY_MISC
> - * register for it and no need to program the
> - * DE_IO_COMP_PWR_DOWN setting on PHY C.
> - */
> - if (IS_ELKHARTLAKE(dev_priv) && phy == PHY_C)
> + if (!has_phy_misc(dev_priv, phy))
> goto skip_phy_misc;
>
> /*
> @@ -376,12 +385,7 @@ static void icl_combo_phys_uninit(struct
> drm_i915_private *dev_priv)
> "Combo PHY %c HW state changed
> unexpectedly\n",
> phy_name(phy));
>
> - /*
> - * Although EHL adds a combo PHY C, there's no PHY_MISC
> - * register for it and no need to program the
> - * DE_IO_COMP_PWR_DOWN setting on PHY C.
> - */
> - if (IS_ELKHARTLAKE(dev_priv) && phy == PHY_C)
> + if (!has_phy_misc(dev_priv, phy))
> goto skip_phy_misc;
>
> val = intel_de_read(dev_priv, ICL_PHY_MISC(phy));
> --
> 2.24.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
More information about the Intel-gfx
mailing list