[Intel-gfx] [PATCH v2 2/2] drm/i915/icl: reverse uninit order
Imre Deak
imre.deak at intel.com
Tue Nov 13 13:19:06 UTC 2018
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 at intel.com>
> ---
> 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 at intel.com>
> + 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
>
More information about the Intel-gfx
mailing list