On Mon, Nov 12, 2018 at 06:45:03PM -0800, Lucas De Marchi 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. > > Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_combo_phy.c | 8 +++++++- > 1 file changed, 7 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..9c06be45b84e 100644 > --- a/drivers/gpu/drm/i915/intel_combo_phy.c > +++ b/drivers/gpu/drm/i915/intel_combo_phy.c > @@ -9,6 +9,12 @@ > for ((__port) = PORT_A; (__port) < I915_MAX_PORTS; (__port)++) \ > for_each_if(intel_port_is_combophy(__dev_priv, __port)) > > +#define for_each_combo_port_rev(__dev_priv, __port) \ > + for ((__port) = I915_MAX_PORTS - 1; \ > + (__port) >= PORT_A && (__port) < I915_MAX_PORTS; \ > + (__port)--) \ Heh, so 'enum port' is unsigned. Surely I would have get this right only after seeing it fail with only the >= condition :) An alternative: for ((__port) = I915_MAX_PORTS; (__port)-- > 0;) or add a negative value, like INVALID_PORT=-1 to 'enum port', but we'd need some user for that too. Either way: Reviewed-by: Imre Deak <imre.deak@xxxxxxxxx> > + for_each_if(intel_port_is_combophy(__dev_priv, __port)) > + > enum { > PROCMON_0_85V_DOT_0, > PROCMON_0_95V_DOT_0, > @@ -232,7 +238,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_rev(dev_priv, port) { > u32 val; > > if (!icl_combo_phy_verify_state(dev_priv, port)) > -- > 2.19.1.1.g56c4683e68 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx