From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 11/11] drm/fbdevdrm: Detect and validate display modes Date: Tue, 26 Mar 2019 19:20:38 +0100 Message-ID: <20190326182038.GP2665@phenom.ffwll.local> References: <20190326091744.11542-1-tzimmermann@suse.de> <20190326091744.11542-12-tzimmermann@suse.de> <20190326164741.GA3888@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id AF15189FD1 for ; Tue, 26 Mar 2019 18:20:42 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id m16so11629188edd.12 for ; Tue, 26 Mar 2019 11:20:42 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190326164741.GA3888@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: linux-fbdev@vger.kernel.org, Thomas Zimmermann , b.zolnierkie@samsung.com, airlied@linux.ie, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXIgMjYsIDIwMTkgYXQgMDY6NDc6NDFQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDI2LCAyMDE5IGF0IDEwOjE3OjQ0QU0gKzAxMDAsIFRob21h cyBaaW1tZXJtYW5uIHdyb3RlOgo+ID4gTW9kZSBkZXRlY3Rpb24gY3VycmVudGx5IHJlcG9ydHMg dGhlIG1vZGVzIGxpc3RlZCBpbiBmYl9pbmZvOjptb2RlbGlzdC4KPiA+IFRoZSBsaXN0IGlzIGVp dGhlciBidWlsZCBmcm9tIEVESUQgaW5mb3JtYXRpb24gb3IsIG1vcmUgb2Z0ZW4sIGEgbGlzdCBv Zgo+ID4gcHJldmlvdXNseSBzZXQgbW9kZXMuIEEgbGF0ZXIgdXBkYXRlIHRvIHRoZSBtb2RlIGRl dGVjdGlvbiBjb3VsZCBhbHNvCj4gPiB0YWtlIGludG8gYWNjb3VudCB0aGUgbW9kZXMgaW4gZmJf bW9uc3BlY3M6Om1vZGVkYiBvciB0ZXN0IHByZS1kZWZpbmVkCj4gPiBWRVNBIG1vZGVzLgo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5k ZT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlc2V0 LmMgfCAxNjMgKysrKysrKysrKysrKysrKysrKy0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTYyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZmJk ZXZkcm0vZmJkZXZkcm1fbW9kZXNldC5jCj4gPiBpbmRleCA4N2Y1NmVjNzZlZGYuLmU4OWVjYTRi NThkZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9t b2Rlc2V0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rl c2V0LmMKPiA+IEBAIC0yMSw5ICsyMSwxNiBAQAo+ID4gICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50 Lmg+Cj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Cj4gPiAgI2luY2x1ZGUg PGxpbnV4L2ZiLmg+Cj4gPiArI2luY2x1ZGUgImZiZGV2ZHJtX2RldmljZS5oIgo+ID4gICNpbmNs dWRlICJmYmRldmRybV9tb2Rlcy5oIgo+ID4gICNpbmNsdWRlICJmYmRldmRybV9wcmltYXJ5Lmgi Cj4gPiAgCj4gPiArc3RhdGljIHN0cnVjdCBmYmRldmRybV9tb2Rlc2V0KiBmYmRldmRybV9tb2Rl c2V0X29mX2Nvbm5lY3RvcigKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK PiA+ICt7Cj4gPiArCXJldHVybiBjb250YWluZXJfb2YoY29ubmVjdG9yLCBzdHJ1Y3QgZmJkZXZk cm1fbW9kZXNldCwgY29ubmVjdG9yKTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHN0cnVjdCBm YmRldmRybV9tb2Rlc2V0KiBmYmRldmRybV9tb2Rlc2V0X29mX2NydGMoCj4gPiAgCXN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiA+ICB7Cj4gPiBAQCAtMzUzLDExICszNjAsMTMwIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgZmJkZXZkcm1fZW5jb2Rlcl9mdW5jcyA9IHsK PiA+ICAgKiBDb25uZWN0b3IKPiA+ICAgKi8KPiA+ICAKPiA+IC1zdGF0aWMgaW50IGNvbm5lY3Rv cl9oZWxwZXJfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAr c3RhdGljIGludCB1cGRhdGVfZGlzcGxheV9pbmZvKHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpp bmZvLCBzdHJ1Y3QgZmJfaW5mbyAqZmJfaW5mbykKPiA+ICt7Cj4gPiArCWludCBudW1fcGl4ZWw7 Cj4gPiArCj4gPiArCWlmIChmYl9pbmZvLT5maXgudHlwZSAhPSBGQl9UWVBFX1BBQ0tFRF9QSVhF TFMpCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsgLyogcnVsZSBvdXQgdGV4dCBtb2RlLCBldGMuICov Cj4gPiArCj4gPiArCWlmIChmYl9pbmZvLT5maXguaWRbMF0pIHsKPiA+ICsJCXN0cm5jcHkoaW5m by0+bmFtZSwgZmJfaW5mby0+Zml4LmlkLCBzaXplb2YoaW5mby0+bmFtZSkgLSAxKTsKPiA+ICsJ CWluZm8tPm5hbWVbc2l6ZW9mKGluZm8tPm5hbWUpIC0gMV0gPSAnXDAnOwo+ID4gKwl9IGVsc2Ug ewo+ID4gKwkJbWVtc2V0KGluZm8tPm5hbWUsICdcMCcsIHNpemVvZihpbmZvLT5uYW1lKSk7Cj4g PiArCX0KPiA+ICsKPiA+ICsJaW5mby0+d2lkdGhfbW0gPSBmYl9pbmZvLT52YXIud2lkdGg7Cj4g PiArCWluZm8tPmhlaWdodF9tbSA9IGZiX2luZm8tPnZhci5oZWlnaHQ7Cj4gPiArCWluZm8tPnBp eGVsX2Nsb2NrID0gUElDT1MyS0haKGZiX2luZm8tPnZhci5waXhjbG9jayk7Cj4gPiArCj4gPiAr CW51bV9waXhlbCA9IDA7Cj4gPiArCWlmIChmYl9pbmZvLT52YXIucmVkLmxlbmd0aCkKPiA+ICsJ CSsrbnVtX3BpeGVsOwo+ID4gKwlpZiAoZmJfaW5mby0+dmFyLmdyZWVuLmxlbmd0aCkKPiA+ICsJ CSsrbnVtX3BpeGVsOwo+ID4gKwlpZiAoZmJfaW5mby0+dmFyLmJsdWUubGVuZ3RoKQo+ID4gKwkJ KytudW1fcGl4ZWw7Cj4gPiArCWlmIChmYl9pbmZvLT52YXIudHJhbnNwLmxlbmd0aCkKPiA+ICsJ CSsrbnVtX3BpeGVsOwo+ID4gKwo+ID4gKwlpZiAobnVtX3BpeGVsKQo+ID4gKwkJaW5mby0+YnBj ID0gZmJfaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsOwo+ID4gKwllbHNlCj4gPiArCQlpbmZvLT5i cGMgPSAwOwo+ID4gKwo+ID4gKwlpbmZvLT5zdWJwaXhlbF9vcmRlciA9IFN1YlBpeGVsVW5rbm93 bjsKPiA+ICsJaW5mby0+Y29sb3JfZm9ybWF0cyA9IERSTV9DT0xPUl9GT1JNQVRfUkdCNDQ0Owo+ ID4gKwlpbmZvLT5idXNfZm9ybWF0cyA9ICZpbmZvLT5jb2xvcl9mb3JtYXRzOwo+ID4gKwlpbmZv LT5udW1fYnVzX2Zvcm1hdHMgPSAxOwo+ID4gKwlpbmZvLT5idXNfZmxhZ3MgPSAwOwo+ID4gKwlp bmZvLT5tYXhfdG1kc19jbG9jayA9IDA7Cj4gPiArCWluZm8tPmR2aV9kdWFsID0gZmFsc2U7Cj4g PiArCWluZm8tPmhhc19oZG1pX2luZm9mcmFtZSA9IGZhbHNlOwo+ID4gKwlpbmZvLT5lZGlkX2hk bWlfZGNfbW9kZXMgPSAwOwo+ID4gKwlpbmZvLT5jZWFfcmV2ID0gMDsKPiA+ICsJbWVtc2V0KCZp bmZvLT5oZG1pLCAwLCBzaXplb2YoaW5mby0+aGRtaSkpOwo+ID4gKwlpbmZvLT5ub25fZGVza3Rv cCA9IDA7Cj4gCj4gSSB0aGluayB0aGUgb25seSB0aGluZ3MgaGVyZSB5b3UgbWF5IHdhbnQgdG8g c2V0IGFyZQo+IHdpZHRoX21tIGFuZCBoZWlnaHRfbW0uIFRoZSByZXN0IHNob3VsZCBub3QgbWF0 dGVyLgo+IAo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGlu dCBkcm1fbW9kZV9wcm9iZWRfYWRkX2Zyb21fZmJfdmlkZW9tb2RlKAo+ID4gKwlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLCBjb25zdCBzdHJ1Y3QgZmJfdmlkZW9tb2RlICpmYl9tb2Rl LAo+ID4gKwlzdHJ1Y3QgZmJfaW5mbyAqZmJfaW5mbykKPiA+ICB7Cj4gPiArCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlOwo+ID4gKwo+ID4gKwltb2RlID0gZHJtX21vZGVfY3JlYXRlX2Zy b21fZmJfdmlkZW9tb2RlKGNvbm5lY3Rvci0+ZGV2LCBmYl9tb2RlKTsKPiA+ICsJaWYgKCFtb2Rl KQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiArCj4gPiArCW1vZGUtPndpZHRoX21tID0gZmJf aW5mby0+dmFyLndpZHRoOwo+ID4gKwltb2RlLT5oZWlnaHRfbW0gPSBmYl9pbmZvLT52YXIuaGVp Z2h0Owo+ID4gKwo+ID4gKwlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7Cj4g PiArCj4gPiArCS8qIHVwZGF0ZSBjb25uZWN0b3IgcHJvcGVydGllcyBmcm9tIGRpc3BsYXkgbW9k ZSAqLwo+ID4gKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKPiA+ ICsJCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSB0cnVlOwo+ID4gKwlpZiAobW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCj4gPiArCQljb25uZWN0b3ItPmRvdWJsZXNj YW5fYWxsb3dlZCA9IHRydWU7Cj4gPiArCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdf M0RfTUFTSykKPiA+ICsJCWNvbm5lY3Rvci0+c3RlcmVvX2FsbG93ZWQgPSB0cnVlOwo+ID4gKwo+ ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGludCBjb25uZWN0b3JfaGVs cGVyX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gK3sKPiA+ ICsJc3RydWN0IGZiZGV2ZHJtX21vZGVzZXQgKm1vZGVzZXQ7Cj4gPiArCXN0cnVjdCBsaXN0X2hl YWQgKnBvczsKPiA+ICsJaW50IHJldCwgbnVtX21vZGVzID0gMDsKPiA+ICsKPiA+ICsJbW9kZXNl dCA9IGZiZGV2ZHJtX21vZGVzZXRfb2ZfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gPiArCj4gPiAr CXJldCA9IHVwZGF0ZV9kaXNwbGF5X2luZm8oJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLCBtb2Rl c2V0LT5mYl9pbmZvKTsKPiA+ICsJaWYgKHJldCkKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4g KwkvKiB1cGRhdGUgY29ubmVjdG9yIHByb3BlcnRpZXMgZnJvbSB2aWRlbyBtb2RlcyAqLwo+ID4g Kwljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gMDsKPiA+ICsJY29ubmVjdG9yLT5kb3Vi bGVzY2FuX2FsbG93ZWQgPSAwOwo+ID4gKwljb25uZWN0b3ItPnN0ZXJlb19hbGxvd2VkID0gMDsK PiA+ICsKPiA+ICsJaWYgKCFudW1fbW9kZXMgJiYgbW9kZXNldC0+ZmJfaW5mby0+bW9kZSkgewo+ ID4gKwkJcmV0ID0gZHJtX21vZGVfcHJvYmVkX2FkZF9mcm9tX2ZiX3ZpZGVvbW9kZSgKPiA+ICsJ CQljb25uZWN0b3IsIG1vZGVzZXQtPmZiX2luZm8tPm1vZGUsIG1vZGVzZXQtPmZiX2luZm8pOwo+ ID4gKwkJaWYgKCFyZXQpCj4gPiArCQkJKytudW1fbW9kZXM7Cj4gPiArCX0KPiA+ICsKPiA+ICsJ aWYgKCFudW1fbW9kZXMpIHsKPiA+ICsKPiA+ICsJCS8qIERSTSBiYWNrcG9ydGluZyBub3Rlczog d2UgZ28gdGhyb3VnaCBhbGwgbW9kZXMgaW4gdGhlCj4gPiArCQkgKiBmYl9pbmZvJ3MgbW9kZSBs aXN0IGFuZCBjb252ZXJ0IGVhY2ggdG8gYSBEUk0gbW9kZXMuIElmCj4gPiArCQkgKiB5b3UgY29u dmVydCBhbiBmYmRldiBkcml2ZXIgdG8gRFJNLCByZXBsYWNlIHRoaXMgY29kZQo+ID4gKwkJICog d2l0aCBhbiBhY3R1YWwgaGFyZHdhcmUgcXVlcnkuIFRoaXMgd2lsbCB1c3VhbGx5IGludm9sdmUK PiA+ICsJCSAqIHJlYWRpbmcgdGhlIG1vbml0b3IgRURJRCB2aWEgRERDLgo+ID4gKwkJICovCj4g PiArCj4gPiArCQlsaXN0X2Zvcl9lYWNoKHBvcywgJm1vZGVzZXQtPmZiX2luZm8tPm1vZGVsaXN0 KSB7Cj4gCj4gZmJkZXYgaGFzIGEgbW9kZWxpc3Q/IEkgZ3Vlc3MgaXQgZG9lcy4gQnV0IG5vdCBl eHBvc2VkIHRvCj4gdXNlcnNwYWNlLCB3aGljaCBpcyBwcm9iYWJseSB0aGUgcmVhc29uIEkgbmV2 ZXIgcmVhbGl6ZWQgdGhpcy4KCkl0J3MgZXhwb3NlZCBpbiBzeXNmcy4KCkRvbid0IGFzayB3aHkg SSBrbm93IHRoaXMsIGl0IGh1cnRzLgotRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=