From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH] drm/i915: Perform link quality check unconditionally during long pulse Date: Thu, 16 Feb 2017 09:24:09 -0800 Message-ID: <20170216172409.GB27437@intel.com> References: <20170216152659.GD31595@intel.com> <20170216153007.14868-1-ville.syrjala@linux.intel.com> <20170216170753.GA27437@intel.com> <20170216171857.GI31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id C61D86EBDF for ; Thu, 16 Feb 2017 17:24:37 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170216171857.GI31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Palmer Dabbelt , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMTYsIDIwMTcgYXQgMDc6MTg6NTdQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgRmViIDE2LCAyMDE3IGF0IDA5OjA3OjUzQU0gLTA4MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBPbiBUaHUsIEZlYiAxNiwgMjAxNyBhdCAwNTozMDowN1BNICsw MjAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+ID4gRnJvbTogVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gCj4gPiA+ IEFwcGFyZW50bHkgc29tZSBEUCBzaW5rcyBhcmUgYSBsaXR0bGUgbnV0cyBhbmQgY2F1c2UgSFBE IHRvIGRyb3AKPiA+ID4gaW50ZXJtaXR0ZW50bHkgZHVyaW5nIG1vZGVzZXRzLiBUaGlzIGhhcHBl bnMgZWcuIG9uIGFuIEFTVVMgUEIyODdRLgo+ID4gPiBJbiBvZGVyIHRvIHJlY292ZXIgZnJvbSB0 aGlzIHdlIGNhbid0IHJlYWxseSB1c2UgdGhlIHByZXZpb3VzCj4gPiA+IGNvbm5lY3RvciBzdGF0 dXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBsaW5rIG5lZWRzIHJldHJhaW5pbmcsIHNvIGxldCdzCj4g PiA+IGp1c3QgaWdub3JlIHRoYXQgcGllY2Ugb2YgaW5mb3JtYXRpb24gYW5kIGRvIHRoZSByZXRy YWluCj4gPiA+IHVuY29uZGl0aW9uYWxseS4gV2UgZG8gb2YgY291cnNlIHN0aWxsIGNoZWNrIHdo ZXRoZXIgdGhlIGxpbmsgaXMKPiA+ID4gc3VwcG9zZWQgdG8gYmUgcnVubmluZyBvciBub3QuCj4g PiA+IAo+ID4gPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+ID4gPiBDYzogUGFsbWVyIERh YmJlbHQgPHBhbG1lckBkYWJiZWx0LmNvbT4KPiA+ID4gUmVwb3J0ZWQtYnk6IFBhbG1lciBEYWJi ZWx0IDxwYWxtZXJAZGFiYmVsdC5jb20+Cj4gPiA+IFJlZmVyZW5jZXM6IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE3LUZlYnJ1YXJ5LzExOTc3OS5o dG1sCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyB8IDE1ICsrKysrKysrKysrLS0tLQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPiA+ID4gaW5kZXggMDI0Nzk4YTljMDE2Li4zN2E3NDZmN2ZiYzMgMTAwNjQ0Cj4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiBAQCAtNDY0OCwxMSArNDY0OCwxOCBAQCBp bnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rv cikKPiA+ID4gIAkJICovCj4gPiA+ICAJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29u bmVjdGVkOwo+ID4gPiAgCQlnb3RvIG91dDsKPiA+ID4gLQl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ c3RhdHVzID09IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkKSB7Cj4gPiA+ICsJfSBlbHNlIHsK PiA+ID4gIAkJLyoKPiA+ID4gLQkJICogSWYgZGlzcGxheSB3YXMgY29ubmVjdGVkIGFscmVhZHkg YW5kIGlzIHN0aWxsIGNvbm5lY3RlZAo+ID4gPiAtCQkgKiBjaGVjayBsaW5rcyBzdGF0dXMsIHRo ZXJlIGhhcyBiZWVuIGtub3duIGlzc3VlcyBvZgo+ID4gPiAtCQkgKiBsaW5rIGxvc3MgdHJpZ2dl cnJpbmcgbG9uZyBwdWxzZSEhISEKPiA+ID4gKwkJICogSWYgZGlzcGxheSBpcyBub3cgY29ubmVj dGVkIGNoZWNrIGxpbmtzIHN0YXR1cywKPiA+ID4gKwkJICogdGhlcmUgaGFzIGJlZW4ga25vd24g aXNzdWVzIG9mIGxpbmsgbG9zcyB0cmlnZ2VycmluZwo+ID4gPiArCQkgKiBsb25nIHB1bHNlLgo+ ID4gPiArCQkgKgo+ID4gPiArCQkgKiBTb21lIHNpbmtzIChlZy4gQVNVUyBQQjI4N1EpIHNlZW0g dG8gcGVyZm9ybSBzb21lCj4gPiA+ICsJCSAqIHdlaXJkIEhQRCBwaW5nIHBvbmcgZHVyaW5nIG1v ZGVzZXRzLiBTbyB3ZSBjYW4gYXBwYXJlbHkKPiA+ID4gKwkJICogZW5kIHVwIHdpdGggSFBEIGdv aW5nIGxvdyBkdXJpbmcgYSBtb2Rlc2V0LCBhbmQgdGhlbgo+ID4gPiArCQkgKiBnb2luZyBiYWNr IHVwIHNvb24gYWZ0ZXIuIEFuZCBvbmNlIHRoYXQgaGFwcGVucyB3ZSBtdXN0Cj4gPiA+ICsJCSAq IHJldHJhaW4gdGhlIGxpbmsgdG8gZ2V0IGEgcGljdHVyZS4gVGhhdCdzIGluIGNhc2Ugbm8KPiA+ ID4gKwkJICogdXNlcnNwYWNlIGNvbXBvbmVudCByZWFjdGVkIHRvIGludGVybWl0dGVudCBIUEQg ZGlwLgo+ID4gPiAgCQkgKi8KPiA+ID4gIAkJZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2Nv bmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKPiA+ID4gIAkJaW50ZWxfZHBfY2hlY2tfbGlu a19zdGF0dXMoaW50ZWxfZHApOwo+ID4gPiAtLQo+ID4gCj4gPiBTbyBoZXJlIHdlIGJhc2ljYWxs eSBqdXN0IGlnbm9yZSB0aGUgY29ubmVjdG9yIHN0YXR1cyBhbmQgcmV0cmFpbiBpcnJlc3BlY3Rp dmVseS4KPiAKPiBXZSBpZ25vcmUgdGhlIF9wcmV2aW91c18gY29ubmVjdG9yIHN0YXR1cy4KPiAK PiA+IEJ1dCB0aGF0IG1lYW5zIGV2ZW4gaWYgd2UgaGF2ZSBuZXdlciB2YWx1ZXMgbm93IGZvciBt YXggbGluayByYXRlL2xhbmUgY291bnQgZnJvbQo+ID4gRFBDRCwgZHVyaW5nIHRoaXMgcmV0cmFp biB3ZSBhcmUganVzdCB1c2luZyB0aGUgc3RhbGUgdmFsdWUgb2YgaW50ZWxfZHAtPmxpbmtfcmF0 ZQo+ID4gYW5kIGludGVsX2RwLT5sYW5lX2NvdW50LiBJIHRoaW5rIGludGVsX2RwLT5saW5rX3Jh dGUgYW5kIGxhbmUgY291bnQgdmFsdWVzCj4gPiBzaG91bGQgYmUgc2V0IHRvIDAgb24gSFBEIHB1 bHNlLCB0aGV5IHdvdWxkIGJlIHNldCBvbmx5IGR1cmluZyBhIG1vZGVzZXQuCj4gCj4gVGhlIERQ Q0QgaGFzIGFscmVhZHkgYmVlbiBwYXJzZWQgYnkgdGhpcyB0aW1lLgo+IAo+IC0tIAo+IFZpbGxl IFN5cmrDpGzDpAo+IEludGVsIE9UQwoKWWVzLCB3ZSBoYXZlIHBhcnNlZCB0aGUgRFBDRCBidXQg d2UgZG9udCB3cml0ZSB0byBpbnRlbF9kcC0+bGluay1yYXRlIGFuZCBpbnRlbF9kcC0+bGFuZV9j b3VudAp1bnRpbCB3ZSBkbyBhIG1vZGVzZXQgKHRoZXNlIGdldCB3cml0dGVuIGR1cmluZyBwcmVf ZW5hYmxlKSBhbmQgdGhlc2UgdmFsdWVzIGdldCB1c2VkCmR1cmluZyB0aGUgcmV0cmFpbmluZyBv ZiB0aGUgbGluay4gU28gYXQgdGhpcyBwb2ludCB3ZSB3aWxsIHN0aWxsIHVzZSBzdGFsZSB2YWx1 ZXMuClNob3VsZG50IHdlIHNldCB0aGUgbGluayBzdGF0dXMgdG8gQkFEIGFuZCBzZW5kIGEgaG90 cGx1ZyBldmVudCwgbGlrZSB0aGUgc29sdXRpb24gd2UgaW1wbGVtbmV0ZWQKZm9yIHJldHJhaW5p bmc/CgpSZWdhcmRzCk1hbmFzaQoKUmVnYXJkcwpNYW5hc2kKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com ([192.55.52.93]:40729 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932612AbdBPRYi (ORCPT ); Thu, 16 Feb 2017 12:24:38 -0500 Date: Thu, 16 Feb 2017 09:24:09 -0800 From: Manasi Navare To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Palmer Dabbelt , stable@vger.kernel.org Subject: Re: [Intel-gfx] [PATCH] drm/i915: Perform link quality check unconditionally during long pulse Message-ID: <20170216172409.GB27437@intel.com> References: <20170216152659.GD31595@intel.com> <20170216153007.14868-1-ville.syrjala@linux.intel.com> <20170216170753.GA27437@intel.com> <20170216171857.GI31595@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170216171857.GI31595@intel.com> Sender: stable-owner@vger.kernel.org List-ID: On Thu, Feb 16, 2017 at 07:18:57PM +0200, Ville Syrj�l� wrote: > On Thu, Feb 16, 2017 at 09:07:53AM -0800, Manasi Navare wrote: > > On Thu, Feb 16, 2017 at 05:30:07PM +0200, ville.syrjala@linux.intel.com wrote: > > > From: Ville Syrj�l� > > > > > > Apparently some DP sinks are a little nuts and cause HPD to drop > > > intermittently during modesets. This happens eg. on an ASUS PB287Q. > > > In oder to recover from this we can't really use the previous > > > connector status to determine if the link needs retraining, so let's > > > just ignore that piece of information and do the retrain > > > unconditionally. We do of course still check whether the link is > > > supposed to be running or not. > > > > > > Cc: stable@vger.kernel.org > > > Cc: Palmer Dabbelt > > > Reported-by: Palmer Dabbelt > > > References: https://lists.freedesktop.org/archives/intel-gfx/2017-February/119779.html > > > Signed-off-by: Ville Syrj�l� > > > --- > > > drivers/gpu/drm/i915/intel_dp.c | 15 +++++++++++---- > > > 1 file changed, 11 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > > > index 024798a9c016..37a746f7fbc3 100644 > > > --- a/drivers/gpu/drm/i915/intel_dp.c > > > +++ b/drivers/gpu/drm/i915/intel_dp.c > > > @@ -4648,11 +4648,18 @@ intel_dp_long_pulse(struct intel_connector *intel_connector) > > > */ > > > status = connector_status_disconnected; > > > goto out; > > > - } else if (connector->status == connector_status_connected) { > > > + } else { > > > /* > > > - * If display was connected already and is still connected > > > - * check links status, there has been known issues of > > > - * link loss triggerring long pulse!!!! > > > + * If display is now connected check links status, > > > + * there has been known issues of link loss triggerring > > > + * long pulse. > > > + * > > > + * Some sinks (eg. ASUS PB287Q) seem to perform some > > > + * weird HPD ping pong during modesets. So we can apparely > > > + * end up with HPD going low during a modeset, and then > > > + * going back up soon after. And once that happens we must > > > + * retrain the link to get a picture. That's in case no > > > + * userspace component reacted to intermittent HPD dip. > > > */ > > > drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); > > > intel_dp_check_link_status(intel_dp); > > > -- > > > > So here we basically just ignore the connector status and retrain irrespectively. > > We ignore the _previous_ connector status. > > > But that means even if we have newer values now for max link rate/lane count from > > DPCD, during this retrain we are just using the stale value of intel_dp->link_rate > > and intel_dp->lane_count. I think intel_dp->link_rate and lane count values > > should be set to 0 on HPD pulse, they would be set only during a modeset. > > The DPCD has already been parsed by this time. > > -- > Ville Syrj�l� > Intel OTC Yes, we have parsed the DPCD but we dont write to intel_dp->link-rate and intel_dp->lane_count until we do a modeset (these get written during pre_enable) and these values get used during the retraining of the link. So at this point we will still use stale values. Shouldnt we set the link status to BAD and send a hotplug event, like the solution we implemneted for retraining? Regards Manasi Regards Manasi