From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Favor last VBT child device with conflicting AUX ch/DDC pin Date: Mon, 14 Oct 2019 11:16:08 +0300 Message-ID: <878spnd9o7.fsf@intel.com> References: <20191011202030.8829-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3763E89E47 for ; Mon, 14 Oct 2019 08:15:15 +0000 (UTC) In-Reply-To: <20191011202030.8829-1-ville.syrjala@linux.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 Syrjala , intel-gfx@lists.freedesktop.org Cc: Masami Ichikawa , Torsten , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAxMSBPY3QgMjAxOSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBUaGUgZmlyc3QgY29tZSBmaXJzdCBzZXJ2ZWQgYXBwb3JvYWNo IHRvIGhhbmRsaW5nIHRoZSBWQlQKPiBjaGlsZCBkZXZpY2UgQVVYIGNoIGNvbmZsaWN0cyBoYXMg YmFja2ZpcmVkLiBXZSBoYXZlIG1hY2hpbmVzCj4gaW4gdGhlIHdpbGQgd2hlcmUgdGhlIFZCVCBz cGVjaWZpZXMgYm90aCBwb3J0IEEgZURQIGFuZAo+IHBvcnQgRSBEUCAoaW4gdGhhdCBvcmRlcikg d2l0aCBwb3J0IEUgYmVpbmcgdGhlIHJlYWwgb25lLgo+Cj4gU28gbGV0J3MgdHJ5IHRvIGZsaXAg dGhlIHByZWZlcmVuY2UgYXJvdW5kIGFuZCBsZXQgdGhlIGxhc3QKPiBjaGlsZCBkZXZpY2Ugd2lu IG9uY2UgYWdhaW4uCgpJIHRoaW5rIHRoZXJlIHdpbGwgYmUgbGVnaXRpbWF0ZSBjYXNlcyB3aGVy ZSB3ZSBuZWVkIGZpcnN0IGNvbWUgZmlyc3QKc2VydmVkLiBPaCB3ZWxsLCBhbm90aGVyIFZCVCBt aXNlcnkgdG8gdGFja2xlIGluIHRoZSBmdXR1cmUuCgpBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4KCgo+Cj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiBD YzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiBDYzogTWFzYW1pIEljaGlr YXdhIDxtYXNhbWkyNTZAZ21haWwuY29tPgo+IFRlc3RlZC1ieTogVG9yc3RlbiA8ZnJlZWRlc2t0 b3AyMDE5MTBAbGlnZ3kuZGU+Cj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5v cmcvc2hvd19idWcuY2dpP2lkPTExMTk2Ngo+IEZpeGVzOiAzNmEwZjkyMDIwZGMgKCJkcm0vaTkx NS9iaW9zOiBtYWtlIGNoaWxkIGRldmljZSBvcmRlciB0aGUgcHJpb3JpdHkgb3JkZXIiKQo+IFNp Z25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jIHwg MjIgKysrKysrKysrKysrKysrKy0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfYmlvcy5jCj4gaW5kZXggOTYyOGI0ODViMTc5Li5mMDMwN2IwNGNjMTMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+IEBAIC0xMjcwLDcgKzEyNzAs NyBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9kZGNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQlEUk1fREVCVUdfS01TKCJwb3J0ICVjIHRyeWluZyB0byB1c2UgdGhl IHNhbWUgRERDIHBpbiAoMHgleCkgYXMgcG9ydCAlYywgIgo+ICAJCQkgICAgICAiZGlzYWJsaW5n IHBvcnQgJWMgRFZJL0hETUkgc3VwcG9ydFxuIiwKPiAgCQkJICAgICAgcG9ydF9uYW1lKHBvcnQp LCBpbmZvLT5hbHRlcm5hdGVfZGRjX3BpbiwKPiAtCQkJICAgICAgcG9ydF9uYW1lKHApLCBwb3J0 X25hbWUocG9ydCkpOwo+ICsJCQkgICAgICBwb3J0X25hbWUocCksIHBvcnRfbmFtZShwKSk7Cj4g IAo+ICAJCS8qCj4gIAkJICogSWYgd2UgaGF2ZSBtdWx0aXBsZSBwb3J0cyBzdXBwb3NlZGx5IHNo YXJpbmcgdGhlCj4gQEAgLTEyNzgsOSArMTI3OCwxNCBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9k ZGNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkgKiBwb3J0LiBP dGhlcndpc2UgdGhleSBzaGFyZSB0aGUgc2FtZSBkZGMgYmluIGFuZAo+ICAJCSAqIHN5c3RlbSBj b3VsZG4ndCBjb21tdW5pY2F0ZSB3aXRoIHRoZW0gc2VwYXJhdGVseS4KPiAgCQkgKgo+IC0JCSAq IEdpdmUgY2hpbGQgZGV2aWNlIG9yZGVyIHRoZSBwcmlvcml0eSwgZmlyc3QgY29tZSBmaXJzdAo+ IC0JCSAqIHNlcnZlZC4KPiArCQkgKiBHaXZlIGludmVyc2UgY2hpbGQgZGV2aWNlIG9yZGVyIHRo ZSBwcmlvcml0eSwKPiArCQkgKiBsYXN0IG9uZSB3aW5zLiBZZXMsIHRoZXJlIGFyZSByZWFsIG1h Y2hpbmVzCj4gKwkJICogKGVnLiBBc3JvY2sgQjI1ME0tSERWKSB3aGVyZSBWQlQgaGFzIGJvdGgK PiArCQkgKiBwb3J0IEEgYW5kIHBvcnQgRSB3aXRoIHRoZSBzYW1lIEFVWCBjaCBhbmQKPiArCQkg KiB3ZSBtdXN0IHBpY2sgcG9ydCBFIDooCj4gIAkJICovCj4gKwkJaW5mbyA9ICZkZXZfcHJpdi0+ dmJ0LmRkaV9wb3J0X2luZm9bcF07Cj4gKwo+ICAJCWluZm8tPnN1cHBvcnRzX2R2aSA9IGZhbHNl Owo+ICAJCWluZm8tPnN1cHBvcnRzX2hkbWkgPSBmYWxzZTsKPiAgCQlpbmZvLT5hbHRlcm5hdGVf ZGRjX3BpbiA9IDA7Cj4gQEAgLTEzMTYsNyArMTMyMSw3IEBAIHN0YXRpYyB2b2lkIHNhbml0aXpl X2F1eF9jaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJRFJNX0RFQlVH X0tNUygicG9ydCAlYyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lIEFVWCBDSCAoMHgleCkgYXMgcG9y dCAlYywgIgo+ICAJCQkgICAgICAiZGlzYWJsaW5nIHBvcnQgJWMgRFAgc3VwcG9ydFxuIiwKPiAg CQkJICAgICAgcG9ydF9uYW1lKHBvcnQpLCBpbmZvLT5hbHRlcm5hdGVfYXV4X2NoYW5uZWwsCj4g LQkJCSAgICAgIHBvcnRfbmFtZShwKSwgcG9ydF9uYW1lKHBvcnQpKTsKPiArCQkJICAgICAgcG9y dF9uYW1lKHApLCBwb3J0X25hbWUocCkpOwo+ICAKPiAgCQkvKgo+ICAJCSAqIElmIHdlIGhhdmUg bXVsdGlwbGUgcG9ydHMgc3VwcG9zZWRsdCBzaGFyaW5nIHRoZQo+IEBAIC0xMzI0LDkgKzEzMjks MTQgQEAgc3RhdGljIHZvaWQgc2FuaXRpemVfYXV4X2NoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQkgKiBwb3J0LiBPdGhlcndpc2UgdGhleSBzaGFyZSB0aGUgc2FtZSBh dXggY2hhbm5lbAo+ICAJCSAqIGFuZCBzeXN0ZW0gY291bGRuJ3QgY29tbXVuaWNhdGUgd2l0aCB0 aGVtIHNlcGFyYXRlbHkuCj4gIAkJICoKPiAtCQkgKiBHaXZlIGNoaWxkIGRldmljZSBvcmRlciB0 aGUgcHJpb3JpdHksIGZpcnN0IGNvbWUgZmlyc3QKPiAtCQkgKiBzZXJ2ZWQuCj4gKwkJICogR2l2 ZSBpbnZlcnNlIGNoaWxkIGRldmljZSBvcmRlciB0aGUgcHJpb3JpdHksCj4gKwkJICogbGFzdCBv bmUgd2lucy4gWWVzLCB0aGVyZSBhcmUgcmVhbCBtYWNoaW5lcwo+ICsJCSAqIChlZy4gQXNyb2Nr IEIyNTBNLUhEVikgd2hlcmUgVkJUIGhhcyBib3RoCj4gKwkJICogcG9ydCBBIGFuZCBwb3J0IEUg d2l0aCB0aGUgc2FtZSBBVVggY2ggYW5kCj4gKwkJICogd2UgbXVzdCBwaWNrIHBvcnQgRSA6KAo+ ICAJCSAqLwo+ICsJCWluZm8gPSAmZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BdOwo+ICsK PiAgCQlpbmZvLT5zdXBwb3J0c19kcCA9IGZhbHNlOwo+ICAJCWluZm8tPmFsdGVybmF0ZV9hdXhf Y2hhbm5lbCA9IDA7Cj4gIAl9CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdy YXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3A4BECE587 for ; Mon, 14 Oct 2019 08:15:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B64302173B for ; Mon, 14 Oct 2019 08:15:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730254AbfJNIPP convert rfc822-to-8bit (ORCPT ); Mon, 14 Oct 2019 04:15:15 -0400 Received: from mga05.intel.com ([192.55.52.43]:10635 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728883AbfJNIPO (ORCPT ); Mon, 14 Oct 2019 04:15:14 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Oct 2019 01:15:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,295,1566889200"; d="scan'208";a="207923278" Received: from vkuppusa-mobl2.ger.corp.intel.com (HELO localhost) ([10.249.39.77]) by fmsmga001.fm.intel.com with ESMTP; 14 Oct 2019 01:15:12 -0700 From: Jani Nikula To: Ville Syrjala , intel-gfx@lists.freedesktop.org Cc: stable@vger.kernel.org, Masami Ichikawa , Torsten Subject: Re: [PATCH] drm/i915: Favor last VBT child device with conflicting AUX ch/DDC pin In-Reply-To: <20191011202030.8829-1-ville.syrjala@linux.intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191011202030.8829-1-ville.syrjala@linux.intel.com> Date: Mon, 14 Oct 2019 11:16:08 +0300 Message-ID: <878spnd9o7.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org On Fri, 11 Oct 2019, Ville Syrjala wrote: > From: Ville Syrjälä > > The first come first served apporoach to handling the VBT > child device AUX ch conflicts has backfired. We have machines > in the wild where the VBT specifies both port A eDP and > port E DP (in that order) with port E being the real one. > > So let's try to flip the preference around and let the last > child device win once again. I think there will be legitimate cases where we need first come first served. Oh well, another VBT misery to tackle in the future. Acked-by: Jani Nikula > > Cc: stable@vger.kernel.org > Cc: Jani Nikula > Cc: Masami Ichikawa > Tested-by: Torsten > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111966 > Fixes: 36a0f92020dc ("drm/i915/bios: make child device order the priority order") > Signed-off-by: Ville Syrjälä > --- > drivers/gpu/drm/i915/display/intel_bios.c | 22 ++++++++++++++++------ > 1 file changed, 16 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 9628b485b179..f0307b04cc13 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -1270,7 +1270,7 @@ static void sanitize_ddc_pin(struct drm_i915_private *dev_priv, > DRM_DEBUG_KMS("port %c trying to use the same DDC pin (0x%x) as port %c, " > "disabling port %c DVI/HDMI support\n", > port_name(port), info->alternate_ddc_pin, > - port_name(p), port_name(port)); > + port_name(p), port_name(p)); > > /* > * If we have multiple ports supposedly sharing the > @@ -1278,9 +1278,14 @@ static void sanitize_ddc_pin(struct drm_i915_private *dev_priv, > * port. Otherwise they share the same ddc bin and > * system couldn't communicate with them separately. > * > - * Give child device order the priority, first come first > - * served. > + * Give inverse child device order the priority, > + * last one wins. Yes, there are real machines > + * (eg. Asrock B250M-HDV) where VBT has both > + * port A and port E with the same AUX ch and > + * we must pick port E :( > */ > + info = &dev_priv->vbt.ddi_port_info[p]; > + > info->supports_dvi = false; > info->supports_hdmi = false; > info->alternate_ddc_pin = 0; > @@ -1316,7 +1321,7 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv, > DRM_DEBUG_KMS("port %c trying to use the same AUX CH (0x%x) as port %c, " > "disabling port %c DP support\n", > port_name(port), info->alternate_aux_channel, > - port_name(p), port_name(port)); > + port_name(p), port_name(p)); > > /* > * If we have multiple ports supposedlt sharing the > @@ -1324,9 +1329,14 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv, > * port. Otherwise they share the same aux channel > * and system couldn't communicate with them separately. > * > - * Give child device order the priority, first come first > - * served. > + * Give inverse child device order the priority, > + * last one wins. Yes, there are real machines > + * (eg. Asrock B250M-HDV) where VBT has both > + * port A and port E with the same AUX ch and > + * we must pick port E :( > */ > + info = &dev_priv->vbt.ddi_port_info[p]; > + > info->supports_dp = false; > info->alternate_aux_channel = 0; > } -- Jani Nikula, Intel Open Source Graphics Center