From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com ([134.134.136.20]:6225 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752786AbbIASGa (ORCPT ); Tue, 1 Sep 2015 14:06:30 -0400 Message-ID: <55E5E921.20606@intel.com> Date: Tue, 01 Sep 2015 23:36:25 +0530 From: Sivakumar Thulasimani MIME-Version: 1.0 To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org CC: Dave Airlie , stable@vger.kernel.org Subject: Re: [Intel-gfx] [PATCH] drm/i915: Check DP link status on long hpd too References: <1440088649-27549-1-git-send-email-ville.syrjala@linux.intel.com> In-Reply-To: <1440088649-27549-1-git-send-email-ville.syrjala@linux.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: On 8/20/2015 10:07 PM, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä > > We are no longer checkling the DP link status on long hpd. We used to do > that from the .hot_plug() handler, but it was removed when MST got > introduced. > > If there's no userspace we now fail to retrain the link if the sink > power is toggled (or cable yanked and replugged), meaning the user is > left staring at a blank screen. With the retraining put back that should > be fixed. > > Also remove the leftover comment that referred to the old retraining > from .hot_plug(). > > Fixes a regression introduced in: > commit 0e32b39ceed665bfa4a77a4bc307b6652b991632 > Author: Dave Airlie > Date: Fri May 2 14:02:48 2014 +1000 > > drm/i915: add DP 1.2 MST support (v0.7) > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89453 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91407 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89461 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89594 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85641 > Cc: Dave Airlie > Cc: stable@vger.kernel.org > Signed-off-by: Ville Syrjälä > --- > drivers/gpu/drm/i915/intel_dp.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index d32ce48..b014158 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -5024,9 +5024,12 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) > > intel_dp_probe_oui(intel_dp); > > - if (!intel_dp_probe_mst(intel_dp)) > + if (!intel_dp_probe_mst(intel_dp)) { > + drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); > + intel_dp_check_link_status(intel_dp); > + drm_modeset_unlock(&dev->mode_config.connection_mutex); couple of queries for my understanding. > why should we check for link status for long pulse, which is supposed to be for plug in or plug out ? > goto mst_fail will indicate we are falling back to intel_dp_detect, isnt this better suited there ? Also the following bug indicates failure in mst panel, but the changes here are in non-mst path https://bugs.freedesktop.org/show_bug.cgi?id=89453, how is this patch helping this bug ? > goto mst_fail; > - > + } > } else { > if (intel_dp->is_mst) { > if (intel_dp_check_mst_status(intel_dp) == -EINVAL) > @@ -5034,10 +5037,6 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) > } > > if (!intel_dp->is_mst) { > - /* > - * we'll check the link status via the normal hot plug path later - > - * but for short hpds we should check it now > - */ > drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); > intel_dp_check_link_status(intel_dp); > drm_modeset_unlock(&dev->mode_config.connection_mutex); -- regards, Sivakumar