> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Matt > Roper > Sent: Tuesday, May 5, 2020 4:22 AM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Subject: [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@xxxxxxxxx> > --- > .../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@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx