drm/i915/icl: reverse uninit order
authorLucas De Marchi <lucas.demarchi@intel.com>
Wed, 14 Nov 2018 01:15:08 +0000 (17:15 -0800)
committerJosé Roberto de Souza <jose.souza@intel.com>
Fri, 16 Nov 2018 00:36:58 +0000 (16:36 -0800)
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>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181114011509.3667-2-lucas.demarchi@intel.com
drivers/gpu/drm/i915/intel_combo_phy.c

index 49f3a533860d7e9e46cd7f8612e032b7befe1184..3d0271cebf9990913705a169bd83c9531074a917 100644 (file)
@@ -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))