From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com ([192.55.52.115]:37007 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750762AbdA1FCy (ORCPT ); Sat, 28 Jan 2017 00:02:54 -0500 Subject: Re: [PATCH 2/4] drm/i915/lspcon: Fix resume time initialization due to unasserted HPD To: Imre Deak , intel-gfx@lists.freedesktop.org References: <1485509961-9010-1-git-send-email-imre.deak@intel.com> <1485509961-9010-3-git-send-email-imre.deak@intel.com> Cc: Jani Nikula , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Daniel Vetter , stable@vger.kernel.org From: "Sharma, Shashank" Message-ID: Date: Sat, 28 Jan 2017 10:32:03 +0530 MIME-Version: 1.0 In-Reply-To: <1485509961-9010-3-git-send-email-imre.deak@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: Regards Shashank On 1/27/2017 3:09 PM, Imre Deak wrote: > During system resume time initialization the HPD level on LSPCON ports > can stay low for an extended amount of time, leading to failed AUX > transfers and LSPCON initialization. Fix this by waiting for HPD to get > asserted. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99178 > Cc: Shashank Sharma > Cc: Jani Nikula > Cc: Ville Syrjälä > Cc: Daniel Vetter > Cc: # v4.9+ > Signed-off-by: Imre Deak > --- > drivers/gpu/drm/i915/intel_dp.c | 4 ++-- > drivers/gpu/drm/i915/intel_drv.h | 2 ++ > drivers/gpu/drm/i915/intel_lspcon.c | 5 ++++- > 3 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index e0f9b9e..a7785ce 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -4400,8 +4400,8 @@ static bool bxt_digital_port_connected(struct drm_i915_private *dev_priv, > * > * Return %true if @port is connected, %false otherwise. > */ > -static bool intel_digital_port_connected(struct drm_i915_private *dev_priv, > - struct intel_digital_port *port) > +bool intel_digital_port_connected(struct drm_i915_private *dev_priv, > + struct intel_digital_port *port) > { > if (HAS_PCH_IBX(dev_priv)) > return ibx_digital_port_connected(dev_priv, port); > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index b71fece..b9cde11 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -1489,6 +1489,8 @@ bool __intel_dp_read_desc(struct intel_dp *intel_dp, > bool intel_dp_read_desc(struct intel_dp *intel_dp); > int intel_dp_link_required(int pixel_clock, int bpp); > int intel_dp_max_data_rate(int max_link_clock, int max_lanes); > +bool intel_digital_port_connected(struct drm_i915_private *dev_priv, > + struct intel_digital_port *port); > > /* intel_dp_aux_backlight.c */ > int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector); > diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c > index f6d4e69..c300647 100644 > --- a/drivers/gpu/drm/i915/intel_lspcon.c > +++ b/drivers/gpu/drm/i915/intel_lspcon.c > @@ -158,6 +158,8 @@ static bool lspcon_probe(struct intel_lspcon *lspcon) > static void lspcon_resume_in_pcon_wa(struct intel_lspcon *lspcon) > { > struct intel_dp *intel_dp = lspcon_to_intel_dp(lspcon); > + struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); > + struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); > unsigned long start = jiffies; > > if (!lspcon->desc_valid) > @@ -173,7 +175,8 @@ static void lspcon_resume_in_pcon_wa(struct intel_lspcon *lspcon) > if (!__intel_dp_read_desc(intel_dp, &desc)) > return; > > - if (!memcmp(&intel_dp->desc, &desc, sizeof(desc))) { > + if (intel_digital_port_connected(dev_priv, dig_port) && when in PCON mode, live_status is always up for LSPCON port, so this check will be always true, isn't it ? - Shashank > + !memcmp(&intel_dp->desc, &desc, sizeof(desc))) { > DRM_DEBUG_KMS("LSPCON recovering in PCON mode after %u ms\n", > jiffies_to_msecs(jiffies - start)); > return; From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 2/4] drm/i915/lspcon: Fix resume time initialization due to unasserted HPD Date: Sat, 28 Jan 2017 10:32:03 +0530 Message-ID: References: <1485509961-9010-1-git-send-email-imre.deak@intel.com> <1485509961-9010-3-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7B7446E029 for ; Sat, 28 Jan 2017 05:02:07 +0000 (UTC) In-Reply-To: <1485509961-9010-3-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiAxLzI3LzIwMTcgMzowOSBQTSwgSW1yZSBEZWFrIHdyb3Rl Ogo+IER1cmluZyBzeXN0ZW0gcmVzdW1lIHRpbWUgaW5pdGlhbGl6YXRpb24gdGhlIEhQRCBsZXZl bCBvbiBMU1BDT04gcG9ydHMKPiBjYW4gc3RheSBsb3cgZm9yIGFuIGV4dGVuZGVkIGFtb3VudCBv ZiB0aW1lLCBsZWFkaW5nIHRvIGZhaWxlZCBBVVgKPiB0cmFuc2ZlcnMgYW5kIExTUENPTiBpbml0 aWFsaXphdGlvbi4gRml4IHRoaXMgYnkgd2FpdGluZyBmb3IgSFBEIHRvIGdldAo+IGFzc2VydGVk Lgo+Cj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dp P2lkPTk5MTc4Cj4gQ2M6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNv bT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBDYzogPHN0YWJsZUB2Z2VyLmtl cm5lbC5vcmc+ICMgdjQuOSsKPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0Bp bnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICB8 IDQgKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgfCAyICsrCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYyB8IDUgKysrKy0KPiAgIDMgZmls ZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gaW5kZXggZTBmOWI5ZS4uYTc3ODVjZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+IEBAIC00NDAwLDggKzQ0MDAsOCBAQCBzdGF0aWMgYm9vbCBieHRfZGlnaXRh bF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAg Kgo+ICAgICogUmV0dXJuICV0cnVlIGlmIEBwb3J0IGlzIGNvbm5lY3RlZCwgJWZhbHNlIG90aGVy d2lzZS4KPiAgICAqLwo+IC1zdGF0aWMgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJCQkgc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqcG9ydCkKPiArYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqcG9ydCkKPiAgIHsKPiAgIAlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYp KQo+ICAgCQlyZXR1cm4gaWJ4X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZGV2X3ByaXYsIHBvcnQp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggYjcxZmVjZS4uYjljZGUxMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE0ODksNiArMTQ4OSw4IEBAIGJvb2wg X19pbnRlbF9kcF9yZWFkX2Rlc2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgIGJvb2wg aW50ZWxfZHBfcmVhZF9kZXNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICAgaW50IGlu dGVsX2RwX2xpbmtfcmVxdWlyZWQoaW50IHBpeGVsX2Nsb2NrLCBpbnQgYnBwKTsKPiAgIGludCBp bnRlbF9kcF9tYXhfZGF0YV9yYXRlKGludCBtYXhfbGlua19jbG9jaywgaW50IG1heF9sYW5lcyk7 Cj4gK2Jvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQkgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKnBvcnQp Owo+ICAgCj4gICAvKiBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMgKi8KPiAgIGludCBpbnRlbF9k cF9hdXhfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxf Y29ubmVjdG9yKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNw Y29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+IGluZGV4IGY2ZDRl NjkuLmMzMDA2NDcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNw Y29uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+IEBAIC0x NTgsNiArMTU4LDggQEAgc3RhdGljIGJvb2wgbHNwY29uX3Byb2JlKHN0cnVjdCBpbnRlbF9sc3Bj b24gKmxzcGNvbikKPiAgIHN0YXRpYyB2b2lkIGxzcGNvbl9yZXN1bWVfaW5fcGNvbl93YShzdHJ1 Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2RwICppbnRl bF9kcCA9IGxzcGNvbl90b19pbnRlbF9kcChsc3Bjb24pOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2Uu ZGV2KTsKPiAgIAl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gamlmZmllczsKPiAgIAo+ICAgCWlmICgh bHNwY29uLT5kZXNjX3ZhbGlkKQo+IEBAIC0xNzMsNyArMTc1LDggQEAgc3RhdGljIHZvaWQgbHNw Y29uX3Jlc3VtZV9pbl9wY29uX3dhKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikKPiAgIAkJ aWYgKCFfX2ludGVsX2RwX3JlYWRfZGVzYyhpbnRlbF9kcCwgJmRlc2MpKQo+ICAgCQkJcmV0dXJu Owo+ICAgCj4gLQkJaWYgKCFtZW1jbXAoJmludGVsX2RwLT5kZXNjLCAmZGVzYywgc2l6ZW9mKGRl c2MpKSkgewo+ICsJCWlmIChpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBk aWdfcG9ydCkgJiYKd2hlbiBpbiBQQ09OIG1vZGUsIGxpdmVfc3RhdHVzIGlzIGFsd2F5cyB1cCBm b3IgTFNQQ09OIHBvcnQsIHNvIHRoaXMgCmNoZWNrIHdpbGwgYmUgYWx3YXlzIHRydWUsIGlzbid0 IGl0ID8KLSBTaGFzaGFuawo+ICsJCSAgICAhbWVtY21wKCZpbnRlbF9kcC0+ZGVzYywgJmRlc2Ms IHNpemVvZihkZXNjKSkpIHsKPiAgIAkJCURSTV9ERUJVR19LTVMoIkxTUENPTiByZWNvdmVyaW5n IGluIFBDT04gbW9kZSBhZnRlciAldSBtc1xuIiwKPiAgIAkJCQkgICAgICBqaWZmaWVzX3RvX21z ZWNzKGppZmZpZXMgLSBzdGFydCkpOwo+ICAgCQkJcmV0dXJuOwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==