From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: Re: [PATCH] drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt Date: Mon, 30 Nov 2015 10:36:54 -0500 Message-ID: <1448897814.19236.0.camel@redhat.com> References: <1448034740-30193-1-git-send-email-cpaul@redhat.com> <56507E0F.7030009@amd.com> <56508C34.1030909@amd.com> <1448246674.26668.9.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 58D926E5F1 for ; Mon, 30 Nov 2015 07:36:57 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Deucher, Alexander" , "Koenig, Christian" , Daniel Stone Cc: Jerome Glisse , Benjamin Tissoires , Linux Kernel Mailing List , dri-devel List-Id: dri-devel@lists.freedesktop.org UGluZwpEbyB3ZSBoYXZlIGFueSBjb25zZW5zdXMgb24gdGhlIGJlc3Qgd2F5IG9mIGhhbmRsaW5n IHRoaXMgc2l0dWF0aW9uIGluIHRoZQpkcml2ZXI/CgpPbiBNb24sIDIwMTUtMTEtMjMgYXQgMTQ6 MjAgKzAwMDAsIERldWNoZXIsIEFsZXhhbmRlciB3cm90ZToKPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tCj4gPiBGcm9tOiBMeXVkZSBbbWFpbHRvOmNwYXVsQHJlZGhhdC5jb21dCj4gPiBT ZW50OiBTdW5kYXksIE5vdmVtYmVyIDIyLCAyMDE1IDk6NDUgUE0KPiA+IFRvOiBLb2VuaWcsIENo cmlzdGlhbjsgRGFuaWVsIFN0b25lCj4gPiBDYzogRGV1Y2hlciwgQWxleGFuZGVyOyBEYXZpZCBB aXJsaWU7IGRyaS1kZXZlbDsgTGludXggS2VybmVsIE1haWxpbmcgTGlzdDsKPiA+IEplcm9tZSBH bGlzc2U7IEJlbmphbWluIFRpc3NvaXJlcwo+ID4gU3ViamVjdDogUmU6IFtQQVRDSF0gZHJtL3Jh ZGVvbjogUmV0cnkgRERDIHByb2Jpbmcgb24gRFZJIG9uIGZhaWx1cmUgaWYgd2UKPiA+IGdvdCBh biBIUEQgaW50ZXJydXB0Cj4gPiAKPiA+IE9uIFNhdCwgMjAxNS0xMS0yMSBhdCAxNjoyMiArMDEw MCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiA+ID4gT24gMjEuMTEuMjAxNSAxNTo0OSwgRGFu aWVsIFN0b25lIHdyb3RlOgo+ID4gPiA+IEhpLAo+ID4gPiA+IAo+ID4gPiA+IE9uIDIxIE5vdmVt YmVyIDIwMTUgYXQgMTQ6MjIsIENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1k Cj4gPiA+ID4gLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiBPbiAyMC4xMS4yMDE1IDE2OjUyLCBjcGF1 bEByZWRoYXQuY29tIHdyb3RlOgo+ID4gPiA+ID4gPiBUaGlzIGlzIHNvbWV3aGF0IHJhcmUgb24g bW9zdCBjYXJkcyAoZGVwZW5kaW5nIG9uIHdoYXQgYW5nbGUKPiA+ID4gPiA+ID4geW91IHBsdWcK PiA+ID4gPiA+ID4gdGhlIERWSSBjb25uZWN0b3IgaW4pLCBidXQgb24gc29tZSBjYXJkcyBpdCBo YXBwZW5zIGNvbnN0YW50bHkuCj4gPiA+ID4gPiA+IFRoZQo+ID4gPiA+ID4gPiBSYWRlb24gUjUg b24gdGhlIG1hY2hpbmUgdXNlZCBmb3IgdGVzdGluZyB0aGlzIHBhdGNoIGZvcgo+ID4gPiA+ID4g PiBpbnN0YW5jZSwgcnVucwo+ID4gPiA+ID4gPiBpbnRvIHRoaXMgaXNzdWUganVzdCBhYm91dCBl dmVyeSB0aW1lIEkgdHJ5IHRvIGhvdHBsdWcgYSBEVkkKPiA+ID4gPiA+ID4gbW9uaXRvciBhbmQK PiA+ID4gPiA+ID4gYXMgYSByZXN1bHQgaG90cGx1Z2dpbmcgYWxtb3N0IG5ldmVyIHdvcmtzLgo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gUmVzY2hlZHVsaW5nIHRoZSBob3RwbHVnIHdvcmsgZm9y IGEgc2Vjb25kIHdoZW4gd2UgcnVuIGludG8gYW4KPiA+ID4gPiA+ID4gSFBECj4gPiA+ID4gPiA+ IHNpZ25hbCB3aXRoIGEgZmFpbGluZyBEREMgcHJvYmUgdXN1YWxseSBnaXZlcyBlbm91Z2ggdGlt ZSBmb3IKPiA+ID4gPiA+ID4gdGhlIHJlc3QKPiA+ID4gPiA+ID4gb2YgdGhlIGNvbm5lY3Rvcidz IHBpbnMgdG8gbWFrZSBjb250YWN0LCBhbmQgZml4ZXMgdGhpcyBpc3N1ZS4KPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gQ2hhbmRsZXIgUGF1bCA8Y3BhdWxA cmVkaGF0LmNvbT4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gWWVhaCwgdGhhdCdzIHNvbWV0aGluZyBJ IGFsd2F5cyB3b25kZXJlZCBhIGFib3V0IGJpdCBhcyB3ZWxsLgo+ID4gPiA+ID4gCj4gPiA+ID4g PiBEZWJvdW5jaW5nIGlzIHNvbWV0aGluZyB2ZXJ5IGNvbW1vbiBkb25lIGluIGVsZWN0cm9uaWNz LCBidXQgYXMKPiA+ID4gPiA+IGZhciBhcyBJCj4gPiA+ID4gPiBrbm93IHRoZSBIUEQgcGlucyBk b24ndCBuZWNlc3NhcnkgaGF2ZSBhbiBSQyBjaXJjdWl0IHNvIHdlIG1pZ2h0Cj4gPiA+ID4gPiBu ZWVkIHRvCj4gPiA+ID4gPiBoYW5kbGUgdGhpcyBjYXNlIGluIHNvZnR3YXJlIGhlcmUuCj4gPiA+ ID4gPiAKPiA+ID4gPiA+IEEgZGVsYXkgb2Ygc29tZXRoaW5nIGJldHdlZW4gMTAtMzBtcyBiZXR3 ZWVuIHRoZSBsYXN0IEhQRAo+ID4gPiA+ID4gaW50ZXJydXB0IGFuZAo+ID4gPiA+ID4gZnVydGhl ciBwcm9jZXNzaW5nIG9mIHRoZSBzaWduYWwgZG9lc24ndCBzb3VuZHMgbGlrZSBzdWNoIGEgYmFk Cj4gPiA+ID4gPiBpZGVhLgo+ID4gVW5mb3J0dW5hdGVseSB0aGUgZGVsYXkgbmVlZGVkIHRvIG1h a2UgaG90cGx1Z2dpbmcgd29yayBvbiB0aGUgc3lzdGVtCj4gPiBtZW50aW9uZWQgaW4gdGhlIGNv bW1pdCBsb2cgY2FuIGFjdHVhbGx5IGJlIG92ZXIgNzAwbXMuCj4gPiA+ID4gPiAKPiA+ID4gPiA+ IFJldHJ5aW5nIG9uIHRoZSBvdGhlciBoYW5kIGRvZXNuJ3QgbmVjZXNzYXJpbHkgaW1wcm92ZSB0 aGUKPiA+ID4gPiA+IHNpdHVhdGlvbiBjYXVzZQo+ID4gPiA+ID4gdGhlIGRlbGF5IGludHJvZHVj ZWQgYnkgdGhpcyBtaWdodCBub3QgYmUgZW5vdWdoLgo+ID4gWWVhaCwgYnV0IEkgd291bGQgdGhp bmsgaXQgd291bGQgbWFrZSBzZW5zZSB0byByZXRyeSBoZXJlIHNvIGxvbmcgYXMgd2UKPiA+IGJh Y2sgb2ZmIGFmdGVyIGEgY2VydGFpbiB0aW1lLiBUaGlzIHdvdWxkIGFsc28gaGF2ZSB0aGUgYmVu ZWZpdCBvZgo+ID4gc2tpcHBpbmcgdGhpcyBkZWxheSBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3QgbmVl ZCBpdC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gU28gSSB3b3VsZCByYXRoZXIgdm90ZSBmb3IgYSBm aXhlZCBkZWxheSBiZXR3ZWVuIGFuIEhQRCBpbnRlcnJ1cHQKPiA+ID4gPiA+IGFuZAo+ID4gPiA+ ID4gYWN0dWFsbHkgc3RhcnRpbmcgdG8gcHJvY2VzcyBhbnl0aGluZy4KPiA+ID4gPiBZZXMtaXNo LiBEZWJvdW5jaW5nIGlzIHVzZWZ1bCwgYW5kIGlnbm9yaW5nIGJ1Z2d5IGRldmljZXMgKGUuZy4K PiA+ID4gPiB0aG9zZQo+ID4gPiA+IG9uIG1hcmdpbmFsIHBvd2VyKSB3aGljaCBzZW5kIHlvdSBI UEQgc3Rvcm1zIGFzIHdlbGwuIEJ1dCBEUCByZWxpZXMKPiA+ID4gPiBvbgo+ID4gPiA+ICdzaG9y dCBIUEQnIHB1bHNlcyB3aGljaCBjYW4gYmUgYXMgYnJpZWYgYXMgMm1zLiBTbyBhdHRlbXB0aW5n IHRvCj4gPiA+ID4gdG90YWxseSBkZWJvdW5jZSBhbGwgSFBEIHdvbid0IHdvcmsuCj4gPiA+IFdl bGwgdGhlIGRpc2N1c3Npb24gc28gZmFyIHdhcyBhYm91dCBIUEQgb24gRFZJIG9ubHkuCj4gPiA+ IAo+ID4gPiBJJ20gbm90IHNvIGRlZXAgaW50byBEUCwgYnV0IHdoeSBzaG91bGQgaXQgdXNlcyBI UEQgcHVsc2VzIG9mIGxlc3MKPiA+ID4gdGhhbiAybXM/Cj4gPiBUaGlzIGlzIHBhcnQgb2YgdGhl IERQIHNwZWMgaWlyYy4gVGhpcyBiZWluZyBzYWlkIHRob3VnaCwgdGhlIGlzc3VlCj4gPiBoZXJl IHdpdGggdGhlIEhQRCBzaWduYWwgY29taW5nIGJlZm9yZSB0aGUgY29ubmVjdG9yIGlzIHJlYWR5 IG9ubHkKPiA+IGhhcHBlbnMgb24gRFZJLiBJIGhhdmVuJ3QgZXZlciBydW4gaW50byB0aGlzIGlz c3VlIHdpdGggYW55IEhETUkgY2FibGVzCj4gPiBvciBEUCBjYWJsZXMsIHNvIEknbSBhZ2FpbnN0 IGltcG9zaW5nIHRoaXMgb24gYWxsIGNvbm5lY3RvcnMuCj4gPiAKPiA+IE9uZSBvZiB0aGUgc29s dXRpb25zIEkndmUgYmVlbiB0aGlua2luZyBhYm91dCB3aXRoIHRoaXM6IEluCj4gPiByYWRlb25f ZHZpX2RldGVjdCgpLCBpZiB3ZSBnZXQgYSByZWFsIGhvdHBsdWcgc2lnbmFsIHJldHJ5IHRoZSBE REMKPiA+IHByb2JlIHVudGlsIGF0IGxlYXN0IGEgc2Vjb25kIGhhcyBwYXNzZWQsIGFmdGVyIHdo aWNoIHdlIGJhY2sgb2ZmIGFuZAo+ID4gYXNzdW1lIHRoZSBwb3J0IGlzIGRpc2Nvbm5lY3RlZC4K PiAKPiBGV0lXLCB0aGVyZSBhcmUgcmVnaXN0ZXJzIHRvIGFkanVzdCBob3cgbG9uZyB0aGUgaHBk IG5lZWRzIHRvIGJlIGFzc2VydGVkCj4gYmVmb3JlIHRoZSBocGQgY29ubmVjdGlvbiBhbmQgc2hv cnQgcHVsc2UgaW50ZXJydXB0cyBhcmUgdHJpZ2dlcmVkLsKgwqBTZWUKPiBEQ19IUER4X0NPTlRS T0wuwqDCoE1heWJlIGFkanVzdGluZyB0aGVtIHdvdWxkIGhlbHAuwqDCoFdlIGN1cnJlbnRseSBq dXN0IHdyaXRlCj4gdGhlIGRlZmF1bHQgdmFsdWUsIGJ1dCBpdCBtaWdodCBiZSBiZXR0ZXIgdG8g Uk1XIHRoZSB2YWx1ZSBpbiBjYXNlIHRoZXJlIGlzIGEKPiBzcGVjaWFsIGdvbGRlbiB2YWx1ZSBz ZXQgYnkgdGhlIHZiaW9zIGF0IGluaXQgdGltZS4KPiAKPiBBbGV4Cj4gCj4gPiA+IAo+ID4gPiBS ZWdhcmRzLAo+ID4gPiBDaHJpc3RpYW4uCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IENoZWVycywK PiA+ID4gPiBEYW5pZWwKPiA+ID4gCj4gPiAtLQo+ID4gQ2hlZXJzLAo+ID4gCUx5dWRlCj4gCi0t IApDaGVlcnMsCglMeXVkZQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754768AbbK3Pg7 (ORCPT ); Mon, 30 Nov 2015 10:36:59 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49618 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754729AbbK3Pg5 (ORCPT ); Mon, 30 Nov 2015 10:36:57 -0500 Message-ID: <1448897814.19236.0.camel@redhat.com> Subject: Re: [PATCH] drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt From: Lyude To: "Deucher, Alexander" , "Koenig, Christian" , Daniel Stone Cc: David Airlie , dri-devel , Linux Kernel Mailing List , Jerome Glisse , Benjamin Tissoires Date: Mon, 30 Nov 2015 10:36:54 -0500 In-Reply-To: References: <1448034740-30193-1-git-send-email-cpaul@redhat.com> <56507E0F.7030009@amd.com> <56508C34.1030909@amd.com> <1448246674.26668.9.camel@redhat.com> Organization: Red Hat Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ping Do we have any consensus on the best way of handling this situation in the driver? On Mon, 2015-11-23 at 14:20 +0000, Deucher, Alexander wrote: > > -----Original Message----- > > From: Lyude [mailto:cpaul@redhat.com] > > Sent: Sunday, November 22, 2015 9:45 PM > > To: Koenig, Christian; Daniel Stone > > Cc: Deucher, Alexander; David Airlie; dri-devel; Linux Kernel Mailing List; > > Jerome Glisse; Benjamin Tissoires > > Subject: Re: [PATCH] drm/radeon: Retry DDC probing on DVI on failure if we > > got an HPD interrupt > > > > On Sat, 2015-11-21 at 16:22 +0100, Christian König wrote: > > > On 21.11.2015 15:49, Daniel Stone wrote: > > > > Hi, > > > > > > > > On 21 November 2015 at 14:22, Christian König > > > .com> wrote: > > > > > On 20.11.2015 16:52, cpaul@redhat.com wrote: > > > > > > This is somewhat rare on most cards (depending on what angle > > > > > > you plug > > > > > > the DVI connector in), but on some cards it happens constantly. > > > > > > The > > > > > > Radeon R5 on the machine used for testing this patch for > > > > > > instance, runs > > > > > > into this issue just about every time I try to hotplug a DVI > > > > > > monitor and > > > > > > as a result hotplugging almost never works. > > > > > > > > > > > > Rescheduling the hotplug work for a second when we run into an > > > > > > HPD > > > > > > signal with a failing DDC probe usually gives enough time for > > > > > > the rest > > > > > > of the connector's pins to make contact, and fixes this issue. > > > > > > > > > > > > Signed-off-by: Stephen Chandler Paul > > > > > > > > > > Yeah, that's something I always wondered a about bit as well. > > > > > > > > > > Debouncing is something very common done in electronics, but as > > > > > far as I > > > > > know the HPD pins don't necessary have an RC circuit so we might > > > > > need to > > > > > handle this case in software here. > > > > > > > > > > A delay of something between 10-30ms between the last HPD > > > > > interrupt and > > > > > further processing of the signal doesn't sounds like such a bad > > > > > idea. > > Unfortunately the delay needed to make hotplugging work on the system > > mentioned in the commit log can actually be over 700ms. > > > > > > > > > > Retrying on the other hand doesn't necessarily improve the > > > > > situation cause > > > > > the delay introduced by this might not be enough. > > Yeah, but I would think it would make sense to retry here so long as we > > back off after a certain time. This would also have the benefit of > > skipping this delay on systems that don't need it. > > > > > > > > > > So I would rather vote for a fixed delay between an HPD interrupt > > > > > and > > > > > actually starting to process anything. > > > > Yes-ish. Debouncing is useful, and ignoring buggy devices (e.g. > > > > those > > > > on marginal power) which send you HPD storms as well. But DP relies > > > > on > > > > 'short HPD' pulses which can be as brief as 2ms. So attempting to > > > > totally debounce all HPD won't work. > > > Well the discussion so far was about HPD on DVI only. > > > > > > I'm not so deep into DP, but why should it uses HPD pulses of less > > > than 2ms? > > This is part of the DP spec iirc. This being said though, the issue > > here with the HPD signal coming before the connector is ready only > > happens on DVI. I haven't ever run into this issue with any HDMI cables > > or DP cables, so I'm against imposing this on all connectors. > > > > One of the solutions I've been thinking about with this: In > > radeon_dvi_detect(), if we get a real hotplug signal retry the DDC > > probe until at least a second has passed, after which we back off and > > assume the port is disconnected. > > FWIW, there are registers to adjust how long the hpd needs to be asserted > before the hpd connection and short pulse interrupts are triggered.  See > DC_HPDx_CONTROL.  Maybe adjusting them would help.  We currently just write > the default value, but it might be better to RMW the value in case there is a > special golden value set by the vbios at init time. > > Alex > > > > > > > Regards, > > > Christian. > > > > > > > > > > > Cheers, > > > > Daniel > > > > > -- > > Cheers, > > Lyude > -- Cheers, Lyude