From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: PROBLEM: Asus C201 video mode problems on HDMI hotplug (regression) Date: Mon, 04 Dec 2017 21:06:53 +0200 Message-ID: <1710500.fZbdeDGCTu@avalon> References: <20171128033044.bw4jwps2gya2vbig@aura.draconx.ca> <20171201001146.fezhkf5c3zrbqjlj@aura.draconx.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id 22A5B6E02F for ; Mon, 4 Dec 2017 19:06:41 +0000 (UTC) In-Reply-To: <20171201001146.fezhkf5c3zrbqjlj@aura.draconx.ca> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Nick Bowler Cc: Laurent Pinchart , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Dave Airlie , Linus Torvalds List-Id: dri-devel@lists.freedesktop.org SGkgTmljaywKCk9uIEZyaWRheSwgMSBEZWNlbWJlciAyMDE3IDAyOjExOjQ2IEVFVCBOaWNrIEJv d2xlciB3cm90ZToKPiBPbiAyMDE3LTExLTI3IDIyOjMwIC0wNTAwLCBOaWNrIEJvd2xlciB3cm90 ZToKPiA+IEEgbm90ZSBhYm91dCB0aGUgdGVzdCBzZXR1cDogSSBoYWQgdG8gcmVtb3ZlIHRoZSB0 ZXN0IGVxdWlwbWVudCBzbyBJCj4gPiBubyBsb25nZXIgaGF2ZSBhbnkgaW5mb3JtYXRpb24gYWJv dXQgdGhlIHZpZGVvIG1vZGUgZnJvbSB0aGUgc2luayBzaWRlCj4gPiAobGlrZSBpbiB0aGUgcGhv dG9zKS4gIFRodXMsIHdpdGggdGhlIGN1cnJlbnQgc2V0dXAsIEkgYW0gdXNpbmcgdGhlCj4gPiBw cmVzZW5zZSBvciBhYnNlbnNlIG9mIGF1ZGlvIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBpc3N1 ZSBpcyBwcmVzZW50Cj4gPiBvciBub3QuCj4gPiAKPiA+IFRoZSB0ZXN0IHByb2NlZHVyZSBpczog Ym9vdCB1cCwgc3RhcnQgbXVzaWMsIHRoZW4gaG90cGx1ZyB0aGUgaGRtaSBmb3VyCj4gPiB0aW1l cy4gIElmIHNvdW5kIGlzIGhlYXJkIGFmdGVyIGFsbCBmb3VyIGNvbm5lY3Rpb25zLCBQQVNTOyBv dGhlcndpc2UKPiA+IEZBSUwuCj4gPiAKPiA+ICAtIEkgcmV0ZXN0ZWQgb24gNC4xNS1yYzEgdG8g Y29uZmlybSB0aGF0IHRoZSBpc3N1ZSBpcyBzdGlsbCBwcmVzZW50IChpdAo+ID4gIGlzKS4KPiA+ ICAKPiA+ICAtIEkgYXBwbGllZCB0aGUgZnVuY3Rpb25hbCByZXZlcnQgZnJvbSBlYXJsaWVyIG9u IHRvcCBvZiA0LjE1LXJjMSBhbmQgdGhlCj4gPiAgICBwcm9ibGVtIGlzIGZpeGVkLgo+ID4gIAo+ ID4gIC0gUmV0dXJuaW5nIHRvIDQuMTUtcmMxIGFuZCBhcHBseWluZyBbTGF1cmVudCBQaW5jaGFy dCdzXSBwYXRjaCAtLQo+ID4gICAgdGhlIGlzc3VlIGlzIHByZXNlbnQgYWdhaW4gKG5vIGNoYW5n ZSBpbiBiZWhhdmlvdXIgY29tcGFyZWQgdG8KPiA+ICAgIDQuMTUtcmMxKS4KPiAKPiBBbm90aGVy IGRhdGEgcG9pbnQuLi4gdGhlIGZvbGxvd2luZyBwYXRjaCBhcHBlYXJzIHN1ZmZpY2llbnQgdG8g cmVzdG9yZQo+IHdvcmtpbmcgYmVoYXZpb3VyLgo+IAo+IENoZWVycywKPiAgIE5pY2sKPiAKPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgfCAxNyAtLS0t LS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTcgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyBpbmRleAo+IGJmMTQyMTRm YTQ2NC4uMzExOGZiZDg0MzNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv c3lub3BzeXMvZHctaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5 cy9kdy1oZG1pLmMKPiBAQCAtMTEwMSw4ICsxMTAxLDYgQEAgc3RhdGljIHZvaWQgZHdfaGRtaV9w aHlfcG93ZXJfb2ZmKHN0cnVjdCBkd19oZG1pCj4gKmhkbWkpIHN0YXRpYyBpbnQgZHdfaGRtaV9w aHlfcG93ZXJfb24oc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4gIHsKPiAgCWNvbnN0IHN0cnVjdCBk d19oZG1pX3BoeV9kYXRhICpwaHkgPSBoZG1pLT5waHkuZGF0YTsKPiAtCXVuc2lnbmVkIGludCBp Owo+IC0JdTggdmFsOwo+IAo+ICAJaWYgKHBoeS0+Z2VuID09IDEpIHsKPiAgCQlkd19oZG1pX3Bo eV9lbmFibGVfcG93ZXJkb3duKGhkbWksIGZhbHNlKTsKPiBAQCAtMTExNiwyMSArMTExNCw2IEBA IHN0YXRpYyBpbnQgZHdfaGRtaV9waHlfcG93ZXJfb24oc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4g ZHdfaGRtaV9waHlfZ2VuMl90eHB3cm9uKGhkbWksIDEpOwo+ICAJZHdfaGRtaV9waHlfZ2VuMl9w ZGRxKGhkbWksIDApOwo+IAo+IC0JLyogV2FpdCBmb3IgUEhZIFBMTCBsb2NrICovCj4gLQlmb3Ig KGkgPSAwOyBpIDwgNTsgKytpKSB7Cj4gLQkJdmFsID0gaGRtaV9yZWFkYihoZG1pLCBIRE1JX1BI WV9TVEFUMCkgJiBIRE1JX1BIWV9UWF9QSFlfTE9DSzsKPiAtCQlpZiAodmFsKQo+IC0JCQlicmVh azsKPiAtCj4gLQkJdXNsZWVwX3JhbmdlKDEwMDAsIDIwMDApOwo+IC0JfQo+IC0KPiAtCWlmICgh dmFsKSB7Cj4gLQkJZGV2X2VycihoZG1pLT5kZXYsICJQSFkgUExMIGZhaWxlZCB0byBsb2NrXG4i KTsKPiAtCQlyZXR1cm4gLUVUSU1FRE9VVDsKPiAtCX0KPiAtCj4gLQlkZXZfZGJnKGhkbWktPmRl diwgIlBIWSBQTEwgbG9ja2VkICV1IGl0ZXJhdGlvbnNcbiIsIGkpOwoKQXMgeW91IHJlcG9ydGVk IHRoYXQgdGhlIFBMTCBsb2NrIGZhaWx1cmUgbWVzc2FnZSBpcyBub3QgcHJpbnRlZCwgdGhlIGZh aWx1cmUgCmNhbiBvbmx5IGNvbWUgZnJvbSBlaXRoZXIgdGhlIGV4dHJhIGRlbGF5IGludHJvZHVj ZWQgYnkgdGhlIGFib3ZlIGxvb3AsIG9yIApmcm9tIHJlYWRpbmcgdGhlIEhETUlfUEhZX1NUQVQw IHJlZ2lzdGVyLgoKSG93IG1hbnkgaXRlcmF0aW9ucyBvZiB0aGUgZm9yIGxvb3AgZXhlY3V0ZSBi ZWZvcmUgdGhlIGNvbmRpdGlvbiBiZWNvbWVzIHRydWUgCj8KCj4gIAlyZXR1cm4gMDsKPiAgfQoK LS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752665AbdLDTGn (ORCPT ); Mon, 4 Dec 2017 14:06:43 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:40319 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750854AbdLDTGk (ORCPT ); Mon, 4 Dec 2017 14:06:40 -0500 From: Laurent Pinchart To: Nick Bowler Cc: Archit Taneja , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Laurent Pinchart , Linus Torvalds , Dave Airlie , Andrzej Hajda Subject: Re: PROBLEM: Asus C201 video mode problems on HDMI hotplug (regression) Date: Mon, 04 Dec 2017 21:06:53 +0200 Message-ID: <1710500.fZbdeDGCTu@avalon> Organization: Ideas on Board Oy In-Reply-To: <20171201001146.fezhkf5c3zrbqjlj@aura.draconx.ca> References: <20171128033044.bw4jwps2gya2vbig@aura.draconx.ca> <20171201001146.fezhkf5c3zrbqjlj@aura.draconx.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Nick, On Friday, 1 December 2017 02:11:46 EET Nick Bowler wrote: > On 2017-11-27 22:30 -0500, Nick Bowler wrote: > > A note about the test setup: I had to remove the test equipment so I > > no longer have any information about the video mode from the sink side > > (like in the photos). Thus, with the current setup, I am using the > > presense or absense of audio to determine whether the issue is present > > or not. > > > > The test procedure is: boot up, start music, then hotplug the hdmi four > > times. If sound is heard after all four connections, PASS; otherwise > > FAIL. > > > > - I retested on 4.15-rc1 to confirm that the issue is still present (it > > is). > > > > - I applied the functional revert from earlier on top of 4.15-rc1 and the > > problem is fixed. > > > > - Returning to 4.15-rc1 and applying [Laurent Pinchart's] patch -- > > the issue is present again (no change in behaviour compared to > > 4.15-rc1). > > Another data point... the following patch appears sufficient to restore > working behaviour. > > Cheers, > Nick > > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 17 ----------------- > 1 file changed, 17 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index > bf14214fa464..3118fbd8433d 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -1101,8 +1101,6 @@ static void dw_hdmi_phy_power_off(struct dw_hdmi > *hdmi) static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) > { > const struct dw_hdmi_phy_data *phy = hdmi->phy.data; > - unsigned int i; > - u8 val; > > if (phy->gen == 1) { > dw_hdmi_phy_enable_powerdown(hdmi, false); > @@ -1116,21 +1114,6 @@ static int dw_hdmi_phy_power_on(struct dw_hdmi *hdmi) > dw_hdmi_phy_gen2_txpwron(hdmi, 1); > dw_hdmi_phy_gen2_pddq(hdmi, 0); > > - /* Wait for PHY PLL lock */ > - for (i = 0; i < 5; ++i) { > - val = hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_TX_PHY_LOCK; > - if (val) > - break; > - > - usleep_range(1000, 2000); > - } > - > - if (!val) { > - dev_err(hdmi->dev, "PHY PLL failed to lock\n"); > - return -ETIMEDOUT; > - } > - > - dev_dbg(hdmi->dev, "PHY PLL locked %u iterations\n", i); As you reported that the PLL lock failure message is not printed, the failure can only come from either the extra delay introduced by the above loop, or from reading the HDMI_PHY_STAT0 register. How many iterations of the for loop execute before the condition becomes true ? > return 0; > } -- Regards, Laurent Pinchart