On Wed, Feb 22, 2017 at 05:10:52PM +0200, Imre Deak wrote:
> At least a ParadTech PS175 LSPCON chip/firmware uses long instead of
> short pulses to signal output unplug/plug events. This is contrary to
> how branch devices normally work which use short HPD signaling. This
> chip will also switch to LS mode after an unplug event, which could be
> the consequence of the long HPD signaling semantics and an effort to
> save power automatically. Because of this we'll fail to do AUX and
> detect the output after a replug event.
> 
> To fix this make sure we are in PCON mode during connector detection.
> 
> v2:
> - Switch the mode in the proper spot.
> 
> Cc: [email protected]
> Cc: Shashank Sharma <[email protected]>
> Cc: Ville Syrjälä <[email protected]>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98912
> Reported-and-tested-by: [email protected]
> Signed-off-by: Imre Deak <[email protected]>

lgtm

Reviewed-by: Ville Syrjälä <[email protected]>

> ---
>  drivers/gpu/drm/i915/intel_dp.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 024798a..e1529ff 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -4326,9 +4326,13 @@ intel_dp_short_pulse(struct intel_dp *intel_dp)
>  static enum drm_connector_status
>  intel_dp_detect_dpcd(struct intel_dp *intel_dp)
>  {
> +     struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
>       uint8_t *dpcd = intel_dp->dpcd;
>       uint8_t type;
>  
> +     if (lspcon->active)
> +             lspcon_resume(lspcon);
> +
>       if (!intel_dp_get_dpcd(intel_dp))
>               return connector_status_disconnected;
>  
> -- 
> 2.5.0

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to