[Intel-gfx] [PATCH 3/4] drm/dp: Clarify clock recovery and channel equalization failures

Pandiyan, Dhinakaran dhinakaran.pandiyan at intel.com
Thu Aug 4 16:50:35 UTC 2016


On Thu, 2016-08-04 at 04:12 +0100, Chris Wilson wrote:
> On Wed, Aug 03, 2016 at 08:07:40PM -0700, Dhinakaran Pandiyan wrote:
> > The causes of clock recovery and channel equalization failures are not
> > explicitly printed in debug messages. Help debugging link training
> > failures by printing why it failed.
> > 
> > Doing this in the driver would mean re-implementing some of the drm static
> > functions that decode link status. Let's avoid that with these debug
> > messages in drm.
> > 
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
> > ---
> >  drivers/gpu/drm/drm_dp_helper.c | 12 +++++++++---
> >  1 file changed, 9 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
> > index 091053e..d763b57 100644
> > --- a/drivers/gpu/drm/drm_dp_helper.c
> > +++ b/drivers/gpu/drm/drm_dp_helper.c
> > @@ -64,12 +64,16 @@ bool drm_dp_channel_eq_ok(const u8 link_status[DP_LINK_STATUS_SIZE],
> >  
> >  	lane_align = dp_link_status(link_status,
> >  				    DP_LANE_ALIGN_STATUS_UPDATED);
> > -	if ((lane_align & DP_INTERLANE_ALIGN_DONE) == 0)
> > +	if ((lane_align & DP_INTERLANE_ALIGN_DONE) == 0) {
> > +		DRM_DEBUG_KMS("Inter-lane alignment not done\n");
> >  		return false;
> > +	}
> >  	for (lane = 0; lane < lane_count; lane++) {
> >  		lane_status = dp_get_lane_status(link_status, lane);
> > -		if ((lane_status & DP_CHANNEL_EQ_BITS) != DP_CHANNEL_EQ_BITS)
> > +		if ((lane_status & DP_CHANNEL_EQ_BITS) != DP_CHANNEL_EQ_BITS) {
> > +			DRM_DEBUG_KMS("Channel equalization not done for lane %d\n", lane);
> >  			return false;
> > +		}
> >  	}
> >  	return true;
> >  }
> > @@ -83,8 +87,10 @@ bool drm_dp_clock_recovery_ok(const u8 link_status[DP_LINK_STATUS_SIZE],
> >  
> >  	for (lane = 0; lane < lane_count; lane++) {
> >  		lane_status = dp_get_lane_status(link_status, lane);
> > -		if ((lane_status & DP_LANE_CR_DONE) == 0)
> > +		if ((lane_status & DP_LANE_CR_DONE) == 0) {
> > +			DRM_DEBUG_KMS("Clock recovery not done for lane %d\n", lane);
> 
> Please petition, with patch, for DRM_DEBUG_DP.
> -Chris
> 
Is that because DRM_DEBUG_KMS in not appropriate or that we have plenty
of DP related debug messages that it warrants it's own debug macro?



More information about the dri-devel mailing list