[PATCH] drm/i915/dp: Fix DP MST error after unplugging TypeC cable

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Sep 19 12:03:31 UTC 2019


On Thu, Sep 19, 2019 at 07:23:30AM +0000, S, Srinivasan wrote:
> Would the following be appropriate fix?
> 
>         if (connector || connector->base.status == connector_status_connected) {
>                 ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr);
>                 if (ret) {
>                         DRM_ERROR("failed to update payload %d\n", ret);
>                 }
>         }

The whole connector->status check is racy. IMO don't do it.

> 
> Regards,
> -----Original Message-----
> From: dri-devel <dri-devel-bounces at lists.freedesktop.org> On Behalf Of Manasi Navare
> Sent: Wednesday, September 18, 2019 11:55 PM
> To: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: S, Srinivasan <srinivasan.s at intel.com>; intel-gfx at lists.freedesktop.org; dri-devel at lists.freedesktop.org
> Subject: Re: [PATCH] drm/i915/dp: Fix DP MST error after unplugging TypeC cable
> 
> On Wed, Sep 18, 2019 at 09:11:36PM +0300, Ville Syrjälä wrote:
> > On Wed, Sep 18, 2019 at 10:50:39AM -0700, Manasi Navare wrote:
> > > On Wed, Sep 18, 2019 at 07:09:43AM +0530, srinivasan.s at intel.com wrote:
> > > > From: Srinivasan S <srinivasan.s at intel.com>
> > > > 
> > > > This patch avoids DP MST payload error message in dmesg, as it is 
> > > > trying to read the payload from the disconnected DP MST device. 
> > > > After the unplug the connector status is disconnected and we 
> > > > should not be looking for the payload and hence remove the error and throw the warning.
> > > > 
> > > > This details can be found in:
> > > > https://bugs.freedesktop.org/show_bug.cgi?id=111632
> > > 
> > > Please add this link as Bugzilla: 
> > > https://bugs.freedesktop.org/show_bug.cgi?id=111632 after the Sign 
> > > off statement
> > > 
> > > > 
> > > > Signed-off-by: Srinivasan S <srinivasan.s at intel.com>
> > > > ---
> > > >  drivers/gpu/drm/i915/display/intel_dp_mst.c | 7 ++++++-
> > > >  1 file changed, 6 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c 
> > > > b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > > > index eeeb3f933aa4..5b2278fdf675 100644
> > > > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > > > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > > > @@ -215,7 +215,12 @@ static void intel_mst_disable_dp(struct 
> > > > intel_encoder *encoder,
> > > >  
> > > >  	ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr);
> > > >  	if (ret) {
> > > > -		DRM_ERROR("failed to update payload %d\n", ret);
> > > > +		if (!connector ||
> > > > +		    connector->base.status != connector_status_connected) {
> > > > +			DRM_WARN("DP MST disconnect\n");
> > > 
> > > May be adding this check before calling drm_dp_update_payload_part1() is a better idea?
> > > If the connector is disconnected, why update payload?
> > > 
> > > Jani, Ville, thoughts?
> > 
> > Or just convert it to a debug?
> 
> Sure that will work, but do we really want to update the payload if the connector status is disconnected.
> So shouldnt checking that before calling the function be a better fix?
> 
> Manasi
> 
> > 
> > > 
> > > Regards
> > > Manasi
> > > 
> > > > +		} else {
> > > > +			DRM_ERROR("failed to update payload %d\n", ret);
> > > > +		}
> > > >  	}
> > > >  	if (old_crtc_state->has_audio)
> > > >  		intel_audio_codec_disable(encoder,
> > > > --
> > > > 2.7.4
> > > > 
> > 
> > --
> > Ville Syrjälä
> > Intel
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Ville Syrjälä
Intel


More information about the dri-devel mailing list