Message ID | 20181114011509.3667-2-lucas.demarchi@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,1/3] drm/i915/icl: replace check for combo phy | expand |
On Tue, 13 Nov 2018, Lucas De Marchi <lucas.demarchi@intel.com> wrote: > Bspec 21257 says "DDIA PHY is the comp master, so it must > not be un-initialized if other combo PHYs are in use". Here > we are shutting down all phys, so it's not strictly required. > However let's be consistent on deinitializing things in the > reversed order we initialized them. > > v2: simplify protection for enum port being unsigned in future > v3: spell out reverse rather than rev > > Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> > Reviewed-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/intel_combo_phy.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_combo_phy.c b/drivers/gpu/drm/i915/intel_combo_phy.c > index 49f3a533860d..3d0271cebf99 100644 > --- a/drivers/gpu/drm/i915/intel_combo_phy.c > +++ b/drivers/gpu/drm/i915/intel_combo_phy.c > @@ -9,6 +9,10 @@ > for ((__port) = PORT_A; (__port) < I915_MAX_PORTS; (__port)++) \ > for_each_if(intel_port_is_combophy(__dev_priv, __port)) > > +#define for_each_combo_port_reverse(__dev_priv, __port) \ > + for ((__port) = I915_MAX_PORTS; (__port)-- > PORT_A;) \ > + for_each_if(intel_port_is_combophy(__dev_priv, __port)) > + > enum { > PROCMON_0_85V_DOT_0, > PROCMON_0_95V_DOT_0, > @@ -232,7 +236,7 @@ void icl_combo_phys_uninit(struct drm_i915_private *dev_priv) > { > enum port port; > > - for_each_combo_port(dev_priv, port) { > + for_each_combo_port_reverse(dev_priv, port) { > u32 val; > > if (!icl_combo_phy_verify_state(dev_priv, port))
diff --git a/drivers/gpu/drm/i915/intel_combo_phy.c b/drivers/gpu/drm/i915/intel_combo_phy.c index 49f3a533860d..3d0271cebf99 100644 --- a/drivers/gpu/drm/i915/intel_combo_phy.c +++ b/drivers/gpu/drm/i915/intel_combo_phy.c @@ -9,6 +9,10 @@ for ((__port) = PORT_A; (__port) < I915_MAX_PORTS; (__port)++) \ for_each_if(intel_port_is_combophy(__dev_priv, __port)) +#define for_each_combo_port_reverse(__dev_priv, __port) \ + for ((__port) = I915_MAX_PORTS; (__port)-- > PORT_A;) \ + for_each_if(intel_port_is_combophy(__dev_priv, __port)) + enum { PROCMON_0_85V_DOT_0, PROCMON_0_95V_DOT_0, @@ -232,7 +236,7 @@ void icl_combo_phys_uninit(struct drm_i915_private *dev_priv) { enum port port; - for_each_combo_port(dev_priv, port) { + for_each_combo_port_reverse(dev_priv, port) { u32 val; if (!icl_combo_phy_verify_state(dev_priv, port))