drm/i915: Wait for TypeC PHY complete flag to clear in safe mode
authorImre Deak <imre.deak@intel.com>
Fri, 28 Jun 2019 14:36:22 +0000 (17:36 +0300)
committerImre Deak <imre.deak@intel.com>
Mon, 1 Jul 2019 11:50:16 +0000 (14:50 +0300)
The PHY status complete flag normally clears when disconnecting the PHY
in DP-alt mode (achieved by switching to safe mode), so wait for the
flag to clear.

v2:
- Use DRM_DEBUG_KMS instead of DRM_DEBUG_DRIVER. (José)

Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190628143635.22066-11-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_tc.c

index f0688c7450c7c8f146605779f9f805fe8000e29f..4243db6d25a7483a6b9992a6563be7ec45071a39 100644 (file)
@@ -130,6 +130,10 @@ static void icl_tc_phy_set_safe_mode(struct intel_digital_port *dig_port,
                val |= DP_PHY_MODE_STATUS_NOT_SAFE(tc_port);
 
        I915_WRITE(PORT_TX_DFLEXDPCSSS, val);
+
+       if (enable && wait_for(!icl_tc_phy_status_complete(dig_port), 10))
+               DRM_DEBUG_KMS("Port %s: PHY complete clear timed out\n",
+                             dig_port->tc_port_name);
 }
 
 /*