From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm: Only create a cmdline mode if no probed modes match Date: Fri, 22 May 2015 14:30:46 +0300 Message-ID: <20150522113046.GY18908@intel.com> References: <5534F9D6.4080908@radekdostal.com> <1429536536-4107-1-git-send-email-chris@chris-wilson.co.uk> <20150522090327.GX18908@intel.com> <20150522095412.GA25229@nuc-i3427.alporthouse.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 ESMTP id 6387B6E12C for ; Fri, 22 May 2015 04:30:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150522095412.GA25229@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chris Wilson , dri-devel@lists.freedesktop.org, Radek =?iso-8859-1?Q?Dost=E1l?= , Jesse Barnes , Daniel Vetter , Julia Lemire , Dave Airlie , stable@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXkgMjIsIDIwMTUgYXQgMTA6NTQ6MTJBTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IE9uIEZyaSwgTWF5IDIyLCAyMDE1IGF0IDEyOjAzOjI3UE0gKzAzMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPiA+IE9uIE1vbiwgQXByIDIwLCAyMDE1IGF0IDAyOjI4OjU2UE0gKzAx MDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiA+ID4gVGhlIGludGVudGlvbiBvZiB1c2luZyB2aWRl bz08Y29ubmVjdG9yPjo8bW9kZT4gaXMgcHJpbWFyaWx5IHRvIHNlbGVjdAo+ID4gPiB0aGUgdXNl cidzIHByZWZlcnJlZCByZXNvbHV0aW9uIGF0IHN0YXJ0dXAuIEN1cnJlbnRseSB3ZSBhbHdheXMg Y3JlYXRlIGEKPiA+ID4gbmV3IG1vZGUgaXJyZXNwZWN0aXZlIG9mIHdoZXRoZXIgdGhlIG1vbml0 b3IgaGFzIGEgbmF0aXZlIG1vZGUgYXQgdGhlCj4gPiA+IGRlc2lyZWQgcmVzb2x1dGlvbi4gVGhp cyBoYXMgdGhlIGlzc3VlIHRoYXQgd2UgbWF5IHRoZW4gc2VsZWN0IHRoZSBmYWtlCj4gPiA+IG1v ZGUgcmF0aGVyIHRoZSBuYXRpdmUgbW9kZSBkdXJpbmcgZmJfaGVscGVyLT5pbml0YWxfY29uZmln KCkgYW5kIHNvCj4gPiA+IGlmIHRoZSBmYWtlIG1vZGUgaXMgaW52YWxpZCB3ZSB0aGVuIGVuZCB1 cCB3aXRoIGEgbG9zcyBvZiBzaWduYWwuIE9vcHMuCj4gPiA+IFRoaXMgaW52YWxpZCBmYWtlIG1v ZGUgd291bGQgYWxzbyBiZSBleHBvcnRlZCB0byB1c2Vyc3BhY2UsIHdobwo+ID4gPiBwb3RlbnRp YWxseSBtYXkgbWFrZSB0aGUgc2FtZSBtaXN0YWtlLgo+ID4gPiAKPiA+ID4gVG8gYXZvaWQgdGhp cyBpc3N1ZSwgd2UgZmlsdGVyIG91dCB0aGUgYWRkZWQgY29tbWFuZCBsaW5lIG1vZGUgaWYgd2UK PiA+ID4gZGV0ZWN0IHRoZSBkZXNpcmVkIHJlc29sdXRpb24gKGFuZCBjbG9jayBpZiBzcGVjaWZp ZWQpIGFtb25nc3QgdGhlCj4gPiA+IHByb2JlZCBtb2Rlcy4gVGhpcyBmaXhlcyB0aGUgaW1tZWRp YXRlIHByb2JsZW0gb2YgYWRkaW5nIGEgZHVwbGljYXRlCj4gPiA+IG1vZGUsIGJ1dCBwZXJoYXBz IG1vcmUgZ2VuZXJpY2FsbHkgd2Ugc2hvdWxkIGF2b2lkIGFkZGluZyBhIEdURiBtb2RlIGlmCj4g PiA+IHRoZSBtb25pdG9yIGhhcyBhbiBFRElEIHRoYXQgaXMgbm90IEdURi1jb21wYXRpYmxlLCBv ciBzaW1pbGFybHkgZm9yCj4gPiA+IENWVC4KPiA+ID4gCj4gPiA+IEEgc2Vjb25kIGlzc3VlIHNu ZWFrZWQgaW50byB0aGlzIHBhdGNoIGlzIHRvIGFkZCB0aGUgY21kbGluZSBtb2RlIG1vZGUKPiA+ ID4gYWhlYWQgb2YgdGhlIGFic29sdXRlIGZhbGxiYWNrIDEwMjR4NzY4IG1vZGUuIFRoYXQgaXMg aWYgdGhlIHVzZXIgaGFzCj4gPiA+IHNwZWNpZmllZCBhIG1vZGUgdGhhdCB3ZSBjcmVhdGUgYXMg YSBmYWxsYmFjaywgd2UgZG8gbm90IG5lZWQgdG8gYWRkIGEKPiA+ID4gc2Vjb25kIHVudXNlZCBm YWxsYmFjayBtb2RlLgo+ID4gPiAKPiA+ID4gRml4ZXMgcmVncmVzc2lvbiBmcm9tCj4gPiA+IAo+ ID4gPiBjb21taXQgZWFmOTljNzQ5ZDQzYWU3NGFjN2ZmZWNlNTUxMmYzYzczZjAxZGZkMgo+ID4g PiBBdXRob3I6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gPiBE YXRlOiAgIFdlZCBBdWcgNiAxMDowODozMiAyMDE0ICswMjAwCj4gPiA+IAo+ID4gPiAgICAgZHJt OiBQZXJmb3JtIGNtZGxpbmUgbW9kZSBwYXJzaW5nIGR1cmluZyBjb25uZWN0b3IgaW5pdGlhbGlz YXRpb24KPiA+ID4gCj4gPiA+IHRoYXQgYnJlYWtzIEhETUkgb3V0cHV0IG9uIEJlYWdsZUJvbmUg QmxhY2sgd2l0aCBMRyBUViAobW9kZWwgMTlMUzRSLVpBKS4KPiA+ID4gCj4gPiA+IHYyOiBFeHBs aWNpdGx5IGRlbGV0ZSBvdXIgZWFybGllciBjbWRsaW5lIG1vZGUKPiA+ID4gCj4gPiA+IFJlcG9y dGVkLWJ5OiBSYWRlayBEb3N0w6FsIDxyZEByYWRla2Rvc3RhbC5jb20+Cj4gPiA+IFNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gPiBDYzog UmFkZWsgRG9zdMOhbCA8cmRAcmFkZWtkb3N0YWwuY29tPgo+ID4gPiBDYzogSmVzc2UgQmFybmVz IDxqYmFybmVzQHZpcnR1b3VzZ2Vlay5vcmc+Cj4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiA+ID4gQ2M6IEp1bGlhIExlbWlyZSA8amxlbWlyZUBtYXRyb3guY29tPgo+ID4gPiBD YzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPiA+ID4gQ2M6IHN0YWJsZUB2Z2Vy Lmtlcm5lbC5vcmcKPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMg ICAgICAgIHwgIDIgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMg fCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ID4gPiAgMiBmaWxl cyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fbW9kZXMuYwo+ID4gPiBpbmRleCAyMTNiMTFlYTY5YjUuLjEzMjkzZTAwOTk5MCAxMDA2 NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+ID4gPiBAQCAtMTQwMCw3ICsxNDAwLDcgQEAgZHJt X21vZGVfY3JlYXRlX2Zyb21fY21kbGluZV9tb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g PiA+ICAJaWYgKCFtb2RlKQo+ID4gPiAgCQlyZXR1cm4gTlVMTDsKPiA+ID4gIAo+ID4gPiAtCW1v ZGUtPnR5cGUgfD0gRFJNX01PREVfVFlQRV9VU0VSREVGOwo+ID4gPiArCW1vZGUtPnR5cGUgfD0g RFJNX01PREVfVFlQRV9VU0VSREVGIHwgRFJNX01PREVfVFlQRV9EUklWRVI7Cj4gPiAKPiA+IFdo eSBkbyB3ZSBuZWVkIHRoZSBEUklWRVIgZmxhZyBoZXJlPwo+IAo+IFNvIHdlIGNhbiBkaWZmZXJl bnRpYXRlIGl0IGZyb20gYW4gZXF1aXZhbGVudCBtb2RlIGFkZGVkIGJ5IHRoZSB1c2VyCj4gbGF0 ZXIgb24uCgpVc2VycyBjYW4ndCBhY3R1YWxseSBhZGQgbW9kZXMgdG8gdGhlIGNvbm5lY3RvciBt b2RlIGxpc3QuCgo+IAo+ID4gPiArCQkvKiBSZW1vdmUgdGhlIGV4aXN0aW5nIGZha2UgbW9kZSAq Lwo+ID4gPiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPm1vZGVzLCBo ZWFkKSB7Cj4gPiA+ICsJCQlpZiAoKG1vZGUtPnR5cGUgJiAoRFJNX01PREVfVFlQRV9EUklWRVIg fCBEUk1fTU9ERV9UWVBFX1VTRVJERUYpKSAhPSAoRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1f TU9ERV9UWVBFX1VTRVJERUYpKQo+ID4gPiArCQkJCWNvbnRpbnVlOwo+ID4gCj4gPiBEb2Vzbid0 IGRybV9tb2RlX2Nvbm5lY3Rvcl9saXN0X3VwZGF0ZSgpIGtpbGwgaXQgZnJvbSB0aGUgbGlzdAo+ ID4gZXZlbnR1YWxseSBpZiB0aGVyZSdzIG5vIG1hdGNoaW5nIG1vZGUgcHJlc2VudCBvbiB0aGUK PiA+IHByb2JlZF9tb2RlcyBsaXN0Pwo+IAo+IEhtbSwgdGhhdCdzIHdoYXQgSSB0aG91Z2h0IEkg dHJpZWQgYXQgZmlyc3QuIElmIEkgcmVtZW1iZXIgY29ycmVjdGx5IHdlCj4gaGFkIHRvIHNldCBt b2RlLT5zdGF0dXMgaW4gb3JkZXIgdG8gcHJ1bmUgaXQgc2luY2UKPiBkcm1fbW9kZV9jb25uZWN0 b3JfbGlzdF91cGRhdGUoKSBpdHNlbGYgZG9lc24ndCBkbyB0aGUgZGVsZXRpb24uIFVzaW5nCj4g dGhlIG1vZGUtPnN0YXR1cyB3YXMgcHJvYmxlbWF0aWMsIGFuZCB0aGUgc2ltcGxlc3Qgd2F5IHRv IGRvIGRlbGV0ZSB0aGUKPiBvcmlnaW5hbCBjbWRsaW5lIG1vZGUgd2FzIGJ5IGV4cGxpY2l0bHkg cmVtb3ZpbmcgaXQgb3Vyc2VsdmVzLgoKT2ggcmlnaHQgZHJtX21vZGVfY29ubmVjdG9yX2xpc3Rf dXBkYXRlKCkgb25seSByZW1vdmVzIHRoZSBkdXBsaWNhdGVzLgoKQW5kIHRoZSB0aGUgbW9kZS0+ c3RhdHVzIGhhbmRsaW5nIGlzIGEgYml0IHN0cmFuZ2UuIE5vdCBoZWxwZWQgYnkKdGhlIGZhY3Qg dGhhdCBNT0RFX09LIGlzIHplcm8gc28gYWxsIGt6YWxsb2NlZCBtb2RlcyBzdGFydCBvdXQgYXMK TU9ERV9PSy4gV2hpbGUgSSB3YXMgZG9pbmcgdGhlIG1vZGUgc2FudGl5IGNoZWNrIHN0dWZmIEkg ZGlkCmNvbnNpZGVyIHRoYXQgSSBzaG91bGQgY2hhbmdlIG5ldyBtb2RlcyB0byBiZSBNT0RFX1VO VkVSSUZJRUQgYnkKZGVmYXVsdCwgYnV0IEkgd2FzIGZlZWxpbmcgbGF6eSBhbmQgZGVjaWRlZCBh Z2FpbnN0IGl0IGluIHRoZSBlbmQuCgpTbyB5ZWFoIGdldHRpbmcgdGhlIG5vcm1hbCBwcnVuZSBt ZWNoYW5pc20gdG8ga2lsbCB0aGUgbW9kZSB3b3VsZApyZXF1aXJlZCBzb21lIHJld29yayB0byB0 aGUgbW9kZSBzdGF0dXMtPmhhbmRsaW5nIHByb2JhYmx5LCBzbwpzZWVtcyBsaWtlIGEgc29tZXdo YXQgYmlnZ2VyIGVmZm9ydC4KCj4gCj4gPiA+IEBAIC0xNzksOSArMjEyLDkgQEAgc3RhdGljIGlu dCBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXNfbWVyZ2VfYml0cyhzdHJ1 Y3QgZHJtX2Nvbm5lY3QKPiA+ID4gIAkJCWNvdW50ID0gKCpjb25uZWN0b3JfZnVuY3MtPmdldF9t b2RlcykoY29ubmVjdG9yKTsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gKwljb3VudCArPSBkcm1f aGVscGVyX3Byb2JlX2FkZF9jbWRsaW5lX21vZGUoY29ubmVjdG9yKTsKPiA+ID4gIAlpZiAoY291 bnQgPT0gMCAmJiBjb25uZWN0b3ItPnN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3Rl ZCkKPiA+ID4gIAkJY291bnQgPSBkcm1fYWRkX21vZGVzX25vZWRpZChjb25uZWN0b3IsIDEwMjQs IDc2OCk7Cj4gPiA+IC0JY291bnQgKz0gZHJtX2hlbHBlcl9wcm9iZV9hZGRfY21kbGluZV9tb2Rl KGNvbm5lY3Rvcik7Cj4gPiAKPiA+IEhtbS4gVGhpcyBtZWFucyBkcm1fYWRkX21vZGVzX25vZWRp ZCgpIHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGlmIHRoZQo+ID4gY21kbGluZSBtb2RlIGlzIHByZXNl bnQsIGFuZCBoZW5jZSB0aGUgbW9kZSBsaXN0IHdpbGwgb25seSBldmVyIGhhdmUKPiA+IHRoYXQg c2luZ2xlIG1vZGUgdXNlciBzcGVjaWZpZWQgbW9kZS4gTm90IHN1cmUgaWYgdGhhdCBjYW4gYmUg Y29uc2lkZXJlZAo+ID4gYSByZWFsIHByb2JsZW0gb3Igbm90Lgo+IAo+IEkgY29uc2lkZXIgaXQg dG8gYSByZWFsIHByb2JsZW0gYXMgaXQgZ29lcyBhZ2FpbnN0IG15IGV4cGVjdGF0aW9ucyBhcyBh Cj4gdXNlciwgdGhhdCBpcyBpZiBJIHNwZWNpZnkgYSBtb2RlIHRvIHVzZSwgSSBleHBlY3QgdGhh dCBtb2RlIHRvIGJlIHVzZWQuCj4gRG9lc24ndCBuZWVkIHRvIGJlIGluIHRoaXMgcGF0Y2ggdGhv dWdoLgoKWWVhaCwgSSB3YXMganVzdCB0aGlua2luZyBpdCBtaWdodCBiZSBuaWNlIHRvIGhhdmUg dGhlIG90aGVyIGRtdCBtb2RlcwpzdGlsbCBiZSBvbiB0aGUgbGlzdC4gQnV0IEkgZG9uJ3QgcmVh bGx5IG1pbmQgYXQgdGhpcyB0aW1lIHNpbmNlIEkgdHJ5CnRvIGF2b2lkIGNhYmxlcyB0aGF0IGRv bid0IGNvbm5lY3QgdGhlIGRkYyBwaW5zLgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com ([134.134.136.24]:8957 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755450AbbEVLa6 (ORCPT ); Fri, 22 May 2015 07:30:58 -0400 Date: Fri, 22 May 2015 14:30:46 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Chris Wilson , dri-devel@lists.freedesktop.org, Radek =?iso-8859-1?Q?Dost=E1l?= , Jesse Barnes , Daniel Vetter , Julia Lemire , Dave Airlie , stable@vger.kernel.org Subject: Re: [PATCH v2] drm: Only create a cmdline mode if no probed modes match Message-ID: <20150522113046.GY18908@intel.com> References: <5534F9D6.4080908@radekdostal.com> <1429536536-4107-1-git-send-email-chris@chris-wilson.co.uk> <20150522090327.GX18908@intel.com> <20150522095412.GA25229@nuc-i3427.alporthouse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20150522095412.GA25229@nuc-i3427.alporthouse.com> Sender: stable-owner@vger.kernel.org List-ID: On Fri, May 22, 2015 at 10:54:12AM +0100, Chris Wilson wrote: > On Fri, May 22, 2015 at 12:03:27PM +0300, Ville Syrj�l� wrote: > > On Mon, Apr 20, 2015 at 02:28:56PM +0100, Chris Wilson wrote: > > > The intention of using video=: is primarily to select > > > the user's preferred resolution at startup. Currently we always create a > > > new mode irrespective of whether the monitor has a native mode at the > > > desired resolution. This has the issue that we may then select the fake > > > mode rather the native mode during fb_helper->inital_config() and so > > > if the fake mode is invalid we then end up with a loss of signal. Oops. > > > This invalid fake mode would also be exported to userspace, who > > > potentially may make the same mistake. > > > > > > To avoid this issue, we filter out the added command line mode if we > > > detect the desired resolution (and clock if specified) amongst the > > > probed modes. This fixes the immediate problem of adding a duplicate > > > mode, but perhaps more generically we should avoid adding a GTF mode if > > > the monitor has an EDID that is not GTF-compatible, or similarly for > > > CVT. > > > > > > A second issue sneaked into this patch is to add the cmdline mode mode > > > ahead of the absolute fallback 1024x768 mode. That is if the user has > > > specified a mode that we create as a fallback, we do not need to add a > > > second unused fallback mode. > > > > > > Fixes regression from > > > > > > commit eaf99c749d43ae74ac7ffece5512f3c73f01dfd2 > > > Author: Chris Wilson > > > Date: Wed Aug 6 10:08:32 2014 +0200 > > > > > > drm: Perform cmdline mode parsing during connector initialisation > > > > > > that breaks HDMI output on BeagleBone Black with LG TV (model 19LS4R-ZA). > > > > > > v2: Explicitly delete our earlier cmdline mode > > > > > > Reported-by: Radek Dost�l > > > Signed-off-by: Chris Wilson > > > Cc: Radek Dost�l > > > Cc: Jesse Barnes > > > Cc: Ville Syrj�l� > > > Cc: Daniel Vetter > > > Cc: dri-devel@lists.freedesktop.org > > > Cc: Julia Lemire > > > Cc: Dave Airlie > > > Cc: stable@vger.kernel.org > > > --- > > > drivers/gpu/drm/drm_modes.c | 2 +- > > > drivers/gpu/drm/drm_probe_helper.c | 39 +++++++++++++++++++++++++++++++++++--- > > > 2 files changed, 37 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c > > > index 213b11ea69b5..13293e009990 100644 > > > --- a/drivers/gpu/drm/drm_modes.c > > > +++ b/drivers/gpu/drm/drm_modes.c > > > @@ -1400,7 +1400,7 @@ drm_mode_create_from_cmdline_mode(struct drm_device *dev, > > > if (!mode) > > > return NULL; > > > > > > - mode->type |= DRM_MODE_TYPE_USERDEF; > > > + mode->type |= DRM_MODE_TYPE_USERDEF | DRM_MODE_TYPE_DRIVER; > > > > Why do we need the DRIVER flag here? > > So we can differentiate it from an equivalent mode added by the user > later on. Users can't actually add modes to the connector mode list. > > > > + /* Remove the existing fake mode */ > > > + list_for_each_entry(mode, &connector->modes, head) { > > > + if ((mode->type & (DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_USERDEF)) != (DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_USERDEF)) > > > + continue; > > > > Doesn't drm_mode_connector_list_update() kill it from the list > > eventually if there's no matching mode present on the > > probed_modes list? > > Hmm, that's what I thought I tried at first. If I remember correctly we > had to set mode->status in order to prune it since > drm_mode_connector_list_update() itself doesn't do the deletion. Using > the mode->status was problematic, and the simplest way to do delete the > original cmdline mode was by explicitly removing it ourselves. Oh right drm_mode_connector_list_update() only removes the duplicates. And the the mode->status handling is a bit strange. Not helped by the fact that MODE_OK is zero so all kzalloced modes start out as MODE_OK. While I was doing the mode santiy check stuff I did consider that I should change new modes to be MODE_UNVERIFIED by default, but I was feeling lazy and decided against it in the end. So yeah getting the normal prune mechanism to kill the mode would required some rework to the mode status->handling probably, so seems like a somewhat bigger effort. > > > > @@ -179,9 +212,9 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect > > > count = (*connector_funcs->get_modes)(connector); > > > } > > > > > > + count += drm_helper_probe_add_cmdline_mode(connector); > > > if (count == 0 && connector->status == connector_status_connected) > > > count = drm_add_modes_noedid(connector, 1024, 768); > > > - count += drm_helper_probe_add_cmdline_mode(connector); > > > > Hmm. This means drm_add_modes_noedid() will never be called if the > > cmdline mode is present, and hence the mode list will only ever have > > that single mode user specified mode. Not sure if that can be considered > > a real problem or not. > > I consider it to a real problem as it goes against my expectations as a > user, that is if I specify a mode to use, I expect that mode to be used. > Doesn't need to be in this patch though. Yeah, I was just thinking it might be nice to have the other dmt modes still be on the list. But I don't really mind at this time since I try to avoid cables that don't connect the ddc pins. -- Ville Syrj�l� Intel OTC