From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 11/11] drm/fbdevdrm: Detect and validate display modes Date: Tue, 26 Mar 2019 18:47:41 +0200 Message-ID: <20190326164741.GA3888@intel.com> References: <20190326091744.11542-1-tzimmermann@suse.de> <20190326091744.11542-12-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 28A146E076 for ; Tue, 26 Mar 2019 16:47:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190326091744.11542-12-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Zimmermann Cc: airlied@linux.ie, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, b.zolnierkie@samsung.com List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXIgMjYsIDIwMTkgYXQgMTA6MTc6NDRBTSArMDEwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gTW9kZSBkZXRlY3Rpb24gY3VycmVudGx5IHJlcG9ydHMgdGhlIG1vZGVzIGxp c3RlZCBpbiBmYl9pbmZvOjptb2RlbGlzdC4KPiBUaGUgbGlzdCBpcyBlaXRoZXIgYnVpbGQgZnJv bSBFRElEIGluZm9ybWF0aW9uIG9yLCBtb3JlIG9mdGVuLCBhIGxpc3Qgb2YKPiBwcmV2aW91c2x5 IHNldCBtb2Rlcy4gQSBsYXRlciB1cGRhdGUgdG8gdGhlIG1vZGUgZGV0ZWN0aW9uIGNvdWxkIGFs c28KPiB0YWtlIGludG8gYWNjb3VudCB0aGUgbW9kZXMgaW4gZmJfbW9uc3BlY3M6Om1vZGVkYiBv ciB0ZXN0IHByZS1kZWZpbmVkCj4gVkVTQSBtb2Rlcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBUaG9t YXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4KPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzZXQuYyB8IDE2MyArKysrKysrKysrKysrKysrKysr LQo+ICAxIGZpbGUgY2hhbmdlZCwgMTYyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzZXQu YyBiL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlc2V0LmMKPiBpbmRleCA4 N2Y1NmVjNzZlZGYuLmU4OWVjYTRiNThkZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZmJkZXZkcm0vZmJkZXZkcm1fbW9kZXNldC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2ZiZGV2 ZHJtL2ZiZGV2ZHJtX21vZGVzZXQuYwo+IEBAIC0yMSw5ICsyMSwxNiBAQAo+ICAjaW5jbHVkZSA8 ZHJtL2RybV9wcmludC5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KPiAg I2luY2x1ZGUgPGxpbnV4L2ZiLmg+Cj4gKyNpbmNsdWRlICJmYmRldmRybV9kZXZpY2UuaCIKPiAg I2luY2x1ZGUgImZiZGV2ZHJtX21vZGVzLmgiCj4gICNpbmNsdWRlICJmYmRldmRybV9wcmltYXJ5 LmgiCj4gIAo+ICtzdGF0aWMgc3RydWN0IGZiZGV2ZHJtX21vZGVzZXQqIGZiZGV2ZHJtX21vZGVz ZXRfb2ZfY29ubmVjdG9yKAo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAr ewo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihjb25uZWN0b3IsIHN0cnVjdCBmYmRldmRybV9tb2Rl c2V0LCBjb25uZWN0b3IpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgc3RydWN0IGZiZGV2ZHJtX21vZGVz ZXQqIGZiZGV2ZHJtX21vZGVzZXRfb2ZfY3J0YygKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgewo+IEBAIC0zNTMsMTEgKzM2MCwxMzAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5j b2Rlcl9mdW5jcyBmYmRldmRybV9lbmNvZGVyX2Z1bmNzID0gewo+ICAgKiBDb25uZWN0b3IKPiAg ICovCj4gIAo+IC1zdGF0aWMgaW50IGNvbm5lY3Rvcl9oZWxwZXJfZ2V0X21vZGVzKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3N0YXRpYyBpbnQgdXBkYXRlX2Rpc3BsYXlfaW5m byhzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbywgc3RydWN0IGZiX2luZm8gKmZiX2luZm8p Cj4gK3sKPiArCWludCBudW1fcGl4ZWw7Cj4gKwo+ICsJaWYgKGZiX2luZm8tPmZpeC50eXBlICE9 IEZCX1RZUEVfUEFDS0VEX1BJWEVMUykKPiArCQlyZXR1cm4gLUVJTlZBTDsgLyogcnVsZSBvdXQg dGV4dCBtb2RlLCBldGMuICovCj4gKwo+ICsJaWYgKGZiX2luZm8tPmZpeC5pZFswXSkgewo+ICsJ CXN0cm5jcHkoaW5mby0+bmFtZSwgZmJfaW5mby0+Zml4LmlkLCBzaXplb2YoaW5mby0+bmFtZSkg LSAxKTsKPiArCQlpbmZvLT5uYW1lW3NpemVvZihpbmZvLT5uYW1lKSAtIDFdID0gJ1wwJzsKPiAr CX0gZWxzZSB7Cj4gKwkJbWVtc2V0KGluZm8tPm5hbWUsICdcMCcsIHNpemVvZihpbmZvLT5uYW1l KSk7Cj4gKwl9Cj4gKwo+ICsJaW5mby0+d2lkdGhfbW0gPSBmYl9pbmZvLT52YXIud2lkdGg7Cj4g KwlpbmZvLT5oZWlnaHRfbW0gPSBmYl9pbmZvLT52YXIuaGVpZ2h0Owo+ICsJaW5mby0+cGl4ZWxf Y2xvY2sgPSBQSUNPUzJLSFooZmJfaW5mby0+dmFyLnBpeGNsb2NrKTsKPiArCj4gKwludW1fcGl4 ZWwgPSAwOwo+ICsJaWYgKGZiX2luZm8tPnZhci5yZWQubGVuZ3RoKQo+ICsJCSsrbnVtX3BpeGVs Owo+ICsJaWYgKGZiX2luZm8tPnZhci5ncmVlbi5sZW5ndGgpCj4gKwkJKytudW1fcGl4ZWw7Cj4g KwlpZiAoZmJfaW5mby0+dmFyLmJsdWUubGVuZ3RoKQo+ICsJCSsrbnVtX3BpeGVsOwo+ICsJaWYg KGZiX2luZm8tPnZhci50cmFuc3AubGVuZ3RoKQo+ICsJCSsrbnVtX3BpeGVsOwo+ICsKPiArCWlm IChudW1fcGl4ZWwpCj4gKwkJaW5mby0+YnBjID0gZmJfaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVs Owo+ICsJZWxzZQo+ICsJCWluZm8tPmJwYyA9IDA7Cj4gKwo+ICsJaW5mby0+c3VicGl4ZWxfb3Jk ZXIgPSBTdWJQaXhlbFVua25vd247Cj4gKwlpbmZvLT5jb2xvcl9mb3JtYXRzID0gRFJNX0NPTE9S X0ZPUk1BVF9SR0I0NDQ7Cj4gKwlpbmZvLT5idXNfZm9ybWF0cyA9ICZpbmZvLT5jb2xvcl9mb3Jt YXRzOwo+ICsJaW5mby0+bnVtX2J1c19mb3JtYXRzID0gMTsKPiArCWluZm8tPmJ1c19mbGFncyA9 IDA7Cj4gKwlpbmZvLT5tYXhfdG1kc19jbG9jayA9IDA7Cj4gKwlpbmZvLT5kdmlfZHVhbCA9IGZh bHNlOwo+ICsJaW5mby0+aGFzX2hkbWlfaW5mb2ZyYW1lID0gZmFsc2U7Cj4gKwlpbmZvLT5lZGlk X2hkbWlfZGNfbW9kZXMgPSAwOwo+ICsJaW5mby0+Y2VhX3JldiA9IDA7Cj4gKwltZW1zZXQoJmlu Zm8tPmhkbWksIDAsIHNpemVvZihpbmZvLT5oZG1pKSk7Cj4gKwlpbmZvLT5ub25fZGVza3RvcCA9 IDA7CgpJIHRoaW5rIHRoZSBvbmx5IHRoaW5ncyBoZXJlIHlvdSBtYXkgd2FudCB0byBzZXQgYXJl CndpZHRoX21tIGFuZCBoZWlnaHRfbW0uIFRoZSByZXN0IHNob3VsZCBub3QgbWF0dGVyLgoKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBkcm1fbW9kZV9wcm9iZWRfYWRk X2Zyb21fZmJfdmlkZW9tb2RlKAo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Y29uc3Qgc3RydWN0IGZiX3ZpZGVvbW9kZSAqZmJfbW9kZSwKPiArCXN0cnVjdCBmYl9pbmZvICpm Yl9pbmZvKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiArCj4gKwlt b2RlID0gZHJtX21vZGVfY3JlYXRlX2Zyb21fZmJfdmlkZW9tb2RlKGNvbm5lY3Rvci0+ZGV2LCBm Yl9tb2RlKTsKPiArCWlmICghbW9kZSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwltb2Rl LT53aWR0aF9tbSA9IGZiX2luZm8tPnZhci53aWR0aDsKPiArCW1vZGUtPmhlaWdodF9tbSA9IGZi X2luZm8tPnZhci5oZWlnaHQ7Cj4gKwo+ICsJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3Is IG1vZGUpOwo+ICsKPiArCS8qIHVwZGF0ZSBjb25uZWN0b3IgcHJvcGVydGllcyBmcm9tIGRpc3Bs YXkgbW9kZSAqLwo+ICsJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0Up Cj4gKwkJY29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IHRydWU7Cj4gKwlpZiAobW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCj4gKwkJY29ubmVjdG9yLT5kb3VibGVzY2Fu X2FsbG93ZWQgPSB0cnVlOwo+ICsJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR18zRF9N QVNLKQo+ICsJCWNvbm5lY3Rvci0+c3RlcmVvX2FsbG93ZWQgPSB0cnVlOwo+ICsKPiAgCXJldHVy biAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGNvbm5lY3Rvcl9oZWxwZXJfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBmYmRldmRybV9t b2Rlc2V0ICptb2Rlc2V0Owo+ICsJc3RydWN0IGxpc3RfaGVhZCAqcG9zOwo+ICsJaW50IHJldCwg bnVtX21vZGVzID0gMDsKPiArCj4gKwltb2Rlc2V0ID0gZmJkZXZkcm1fbW9kZXNldF9vZl9jb25u ZWN0b3IoY29ubmVjdG9yKTsKPiArCj4gKwlyZXQgPSB1cGRhdGVfZGlzcGxheV9pbmZvKCZjb25u ZWN0b3ItPmRpc3BsYXlfaW5mbywgbW9kZXNldC0+ZmJfaW5mbyk7Cj4gKwlpZiAocmV0KQo+ICsJ CXJldHVybiAwOwo+ICsKPiArCS8qIHVwZGF0ZSBjb25uZWN0b3IgcHJvcGVydGllcyBmcm9tIHZp ZGVvIG1vZGVzICovCj4gKwljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gMDsKPiArCWNv bm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2VkID0gMDsKPiArCWNvbm5lY3Rvci0+c3RlcmVvX2Fs bG93ZWQgPSAwOwo+ICsKPiArCWlmICghbnVtX21vZGVzICYmIG1vZGVzZXQtPmZiX2luZm8tPm1v ZGUpIHsKPiArCQlyZXQgPSBkcm1fbW9kZV9wcm9iZWRfYWRkX2Zyb21fZmJfdmlkZW9tb2RlKAo+ ICsJCQljb25uZWN0b3IsIG1vZGVzZXQtPmZiX2luZm8tPm1vZGUsIG1vZGVzZXQtPmZiX2luZm8p Owo+ICsJCWlmICghcmV0KQo+ICsJCQkrK251bV9tb2RlczsKPiArCX0KPiArCj4gKwlpZiAoIW51 bV9tb2Rlcykgewo+ICsKPiArCQkvKiBEUk0gYmFja3BvcnRpbmcgbm90ZXM6IHdlIGdvIHRocm91 Z2ggYWxsIG1vZGVzIGluIHRoZQo+ICsJCSAqIGZiX2luZm8ncyBtb2RlIGxpc3QgYW5kIGNvbnZl cnQgZWFjaCB0byBhIERSTSBtb2Rlcy4gSWYKPiArCQkgKiB5b3UgY29udmVydCBhbiBmYmRldiBk cml2ZXIgdG8gRFJNLCByZXBsYWNlIHRoaXMgY29kZQo+ICsJCSAqIHdpdGggYW4gYWN0dWFsIGhh cmR3YXJlIHF1ZXJ5LiBUaGlzIHdpbGwgdXN1YWxseSBpbnZvbHZlCj4gKwkJICogcmVhZGluZyB0 aGUgbW9uaXRvciBFRElEIHZpYSBEREMuCj4gKwkJICovCj4gKwo+ICsJCWxpc3RfZm9yX2VhY2go cG9zLCAmbW9kZXNldC0+ZmJfaW5mby0+bW9kZWxpc3QpIHsKCmZiZGV2IGhhcyBhIG1vZGVsaXN0 PyBJIGd1ZXNzIGl0IGRvZXMuIEJ1dCBub3QgZXhwb3NlZCB0bwp1c2Vyc3BhY2UsIHdoaWNoIGlz IHByb2JhYmx5IHRoZSByZWFzb24gSSBuZXZlciByZWFsaXplZCB0aGlzLgoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=