mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-22 14:59:52 +07:00
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@intel.com> Reviewed-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200504225227.464666-11-matthew.d.roper@intel.com
This commit is contained in:
parent
93e2323b5c
commit
01f953e78e
@ -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;
|
||||
|
||||
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));
|
||||
|
Loading…
Reference in New Issue
Block a user