From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH 35/60] drm/omap: hdmi5: Rework EDID read to isolate data read Date: Sun, 7 Jul 2019 21:19:12 +0300 Message-ID: <20190707181937.6250-32-laurent.pinchart@ideasonboard.com> References: <20190707180852.5512-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0528189B8F for ; Sun, 7 Jul 2019 18:32:54 +0000 (UTC) In-Reply-To: <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Maxime Ripard , Sebastian Reichel , Tomi Valkeinen , Sean Paul List-Id: dri-devel@lists.freedesktop.org SW4gcHJlcGFyYXRpb24gb2YgYWRkaW5nIERSTSBicmlkZ2Ugc3VwcG9ydCB0byB0aGUgaGRtaTUg ZW5jb2RlciBjb2RlLApyZXdvcmsgdGhlIEVESUQgcmVhZCB0byBpc29sYXRlIGRhdGEgcmVhZC4K ClNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNv bmJvYXJkLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTUuYyAgICAg IHwgODkgKysrKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9k c3MvaGRtaTVfY29yZS5jIHwgNDggKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vZHNzL2hkbWk1X2NvcmUuaCB8ICA1ICstCiAzIGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlv bnMoKyksIDc3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL2Rzcy9oZG1pNS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2hkbWk1LmMKaW5k ZXggNjBkMTQ2YWM4ZmQwLi4yZGZjYWNkYzA3MmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9vbWFwZHJtL2Rzcy9oZG1pNS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9o ZG1pNS5jCkBAIC0yODIsMzAgKzI4Miw2IEBAIHN0YXRpYyBpbnQgaGRtaV9kdW1wX3JlZ3Moc3Ry dWN0IHNlcV9maWxlICpzLCB2b2lkICpwKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHJl YWRfZWRpZChzdHJ1Y3Qgb21hcF9oZG1pICpoZG1pLCB1OCAqYnVmLCBpbnQgbGVuKQotewotCWlu dCByOwotCWludCBpZGxlbW9kZTsKLQotCW11dGV4X2xvY2soJmhkbWktPmxvY2spOwotCi0JciA9 IGhkbWlfcnVudGltZV9nZXQoaGRtaSk7Ci0JQlVHX09OKHIpOwotCi0JaWRsZW1vZGUgPSBSRUdf R0VUKGhkbWktPndwLmJhc2UsIEhETUlfV1BfU1lTQ09ORklHLCAzLCAyKTsKLQkvKiBOby1pZGxl IG1vZGUgKi8KLQlSRUdfRkxEX01PRChoZG1pLT53cC5iYXNlLCBIRE1JX1dQX1NZU0NPTkZJRywg MSwgMywgMik7Ci0KLQlyID0gaGRtaTVfcmVhZF9lZGlkKCZoZG1pLT5jb3JlLCAgYnVmLCBsZW4p OwotCi0JUkVHX0ZMRF9NT0QoaGRtaS0+d3AuYmFzZSwgSERNSV9XUF9TWVNDT05GSUcsIGlkbGVt b2RlLCAzLCAyKTsKLQotCWhkbWlfcnVudGltZV9wdXQoaGRtaSk7Ci0JbXV0ZXhfdW5sb2NrKCZo ZG1pLT5sb2NrKTsKLQotCXJldHVybiByOwotfQotCiBzdGF0aWMgdm9pZCBoZG1pX3N0YXJ0X2F1 ZGlvX3N0cmVhbShzdHJ1Y3Qgb21hcF9oZG1pICpoZCkKIHsKIAlSRUdfRkxEX01PRChoZC0+d3Au YmFzZSwgSERNSV9XUF9TWVNDT05GSUcsIDEsIDMsIDIpOwpAQCAtNDIxLDMyICszOTcsNzMgQEAg c3RhdGljIHZvaWQgaGRtaV9kaXNjb25uZWN0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKnNyYywK IAlvbWFwZHNzX2RldmljZV9kaXNjb25uZWN0KGRzdCwgZHN0LT5uZXh0KTsKIH0KIAotc3RhdGlj IHN0cnVjdCBlZGlkICpoZG1pX3JlYWRfZWRpZChzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3Nk ZXYpCitzdGF0aWMgc3RydWN0IGVkaWQgKmhkbWlfcmVhZF9lZGlkX2RhdGEoc3RydWN0IGhkbWlf Y29yZV9kYXRhICpjb3JlKQogewotCXN0cnVjdCBvbWFwX2hkbWkgKmhkbWkgPSBkc3NkZXZfdG9f aGRtaShkc3NkZXYpOwotCWJvb2wgbmVlZF9lbmFibGU7CisJaW50IG1heF9leHRfYmxvY2tzID0g MzsKKwlpbnQgciwgbiwgaTsKIAl1OCAqZWRpZDsKLQlpbnQgcjsKIAogCWVkaWQgPSBremFsbG9j KDUxMiwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFlZGlkKQogCQlyZXR1cm4gTlVMTDsKIAorCXIgPSBo ZG1pNV9jb3JlX2RkY19yZWFkKGNvcmUsIGVkaWQsIDAsIEVESURfTEVOR1RIKTsKKwlpZiAocikK KwkJZ290byBlcnJvcjsKKworCW4gPSBlZGlkWzB4N2VdOworCisJaWYgKG4gPiBtYXhfZXh0X2Js b2NrcykKKwkJbiA9IG1heF9leHRfYmxvY2tzOworCisJZm9yIChpID0gMTsgaSA8PSBuOyBpKysp IHsKKwkJciA9IGhkbWk1X2NvcmVfZGRjX3JlYWQoY29yZSwgZWRpZCArIGkgKiBFRElEX0xFTkdU SCwgaSwKKwkJCQkJRURJRF9MRU5HVEgpOworCQlpZiAocikKKwkJCWdvdG8gZXJyb3I7CisJfQor CisJcmV0dXJuIChzdHJ1Y3QgZWRpZCAqKWVkaWQ7CisKK2Vycm9yOgorCWtmcmVlKGVkaWQpOwor CXJldHVybiBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IGVkaWQgKmhkbWlfcmVhZF9lZGlkKHN0 cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikKK3sKKwlzdHJ1Y3Qgb21hcF9oZG1pICpoZG1p ID0gZHNzZGV2X3RvX2hkbWkoZHNzZGV2KTsKKwlzdHJ1Y3QgZWRpZCAqZWRpZDsKKwlib29sIG5l ZWRfZW5hYmxlOworCWludCBpZGxlbW9kZTsKKwlpbnQgcjsKKwogCW5lZWRfZW5hYmxlID0gaGRt aS0+Y29yZV9lbmFibGVkID09IGZhbHNlOwogCiAJaWYgKG5lZWRfZW5hYmxlKSB7CiAJCXIgPSBo ZG1pX2NvcmVfZW5hYmxlKGhkbWkpOwotCQlpZiAocikgewotCQkJa2ZyZWUoZWRpZCk7CisJCWlm IChyKQogCQkJcmV0dXJuIE5VTEw7Ci0JCX0KIAl9CiAKLQlyID0gcmVhZF9lZGlkKGhkbWksIGVk aWQsIDUxMik7Ci0JaWYgKHIgPCAwKSB7Ci0JCWtmcmVlKGVkaWQpOwotCQllZGlkID0gTlVMTDsK LQl9CisJbXV0ZXhfbG9jaygmaGRtaS0+bG9jayk7CisJciA9IGhkbWlfcnVudGltZV9nZXQoaGRt aSk7CisJQlVHX09OKHIpOworCisJaWRsZW1vZGUgPSBSRUdfR0VUKGhkbWktPndwLmJhc2UsIEhE TUlfV1BfU1lTQ09ORklHLCAzLCAyKTsKKwkvKiBOby1pZGxlIG1vZGUgKi8KKwlSRUdfRkxEX01P RChoZG1pLT53cC5iYXNlLCBIRE1JX1dQX1NZU0NPTkZJRywgMSwgMywgMik7CisKKwloZG1pNV9j b3JlX2RkY19pbml0KCZoZG1pLT5jb3JlKTsKKworCWVkaWQgPSBoZG1pX3JlYWRfZWRpZF9kYXRh KCZoZG1pLT5jb3JlKTsKKworCWhkbWk1X2NvcmVfZGRjX3VuaW5pdCgmaGRtaS0+Y29yZSk7CisK KwlSRUdfRkxEX01PRChoZG1pLT53cC5iYXNlLCBIRE1JX1dQX1NZU0NPTkZJRywgaWRsZW1vZGUs IDMsIDIpOworCisJaGRtaV9ydW50aW1lX3B1dChoZG1pKTsKKwltdXRleF91bmxvY2soJmhkbWkt PmxvY2spOwogCiAJaWYgKG5lZWRfZW5hYmxlKQogCQloZG1pX2NvcmVfZGlzYWJsZShoZG1pKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNV9jb3JlLmMgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTVfY29yZS5jCmluZGV4IDAyZWZhYmM3ZWQ3 Ni4uMDA3ODI2NTRhYzg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mv aGRtaTVfY29yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNV9jb3Jl LmMKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjc2NfdGFibGUgY3NjX3Rh YmxlX2RlZXBjb2xvcltdID0gewogCVszXSA9IHsgODE5MiwgMCwgMCwgMCwgMCwgODE5MiwgMCwg MCwgMCwgMCwgODE5MiwgMCwgfSwKIH07CiAKLXN0YXRpYyB2b2lkIGhkbWlfY29yZV9kZGNfaW5p dChzdHJ1Y3QgaGRtaV9jb3JlX2RhdGEgKmNvcmUpCit2b2lkIGhkbWk1X2NvcmVfZGRjX2luaXQo c3RydWN0IGhkbWlfY29yZV9kYXRhICpjb3JlKQogewogCXZvaWQgX19pb21lbSAqYmFzZSA9IGNv cmUtPmJhc2U7CiAJY29uc3QgdW5zaWduZWQgbG9uZyBsb25nIGljbGsgPSAyNjYwMDAwMDA7CS8q IERTUyBMMyBJQ0xLICovCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIHZvaWQgaGRtaV9jb3Jl X2RkY19pbml0KHN0cnVjdCBoZG1pX2NvcmVfZGF0YSAqY29yZSkKIAlSRUdfRkxEX01PRChiYXNl LCBIRE1JX0NPUkVfSTJDTV9JTlQsIDB4MCwgMiwgMik7CiB9CiAKLXN0YXRpYyB2b2lkIGhkbWlf Y29yZV9kZGNfdW5pbml0KHN0cnVjdCBoZG1pX2NvcmVfZGF0YSAqY29yZSkKK3ZvaWQgaGRtaTVf Y29yZV9kZGNfdW5pbml0KHN0cnVjdCBoZG1pX2NvcmVfZGF0YSAqY29yZSkKIHsKIAl2b2lkIF9f aW9tZW0gKmJhc2UgPSBjb3JlLT5iYXNlOwogCkBAIC0xMzUsMTQgKzEzNSwxNCBAQCBzdGF0aWMg dm9pZCBoZG1pX2NvcmVfZGRjX3VuaW5pdChzdHJ1Y3QgaGRtaV9jb3JlX2RhdGEgKmNvcmUpCiAJ UkVHX0ZMRF9NT0QoYmFzZSwgSERNSV9DT1JFX0kyQ01fSU5ULCAweDEsIDIsIDIpOwogfQogCi1z dGF0aWMgaW50IGhkbWlfY29yZV9kZGNfZWRpZChzdHJ1Y3QgaGRtaV9jb3JlX2RhdGEgKmNvcmUs IHU4ICpwZWRpZCwgdTggZXh0KQoraW50IGhkbWk1X2NvcmVfZGRjX3JlYWQodm9pZCAqZGF0YSwg dTggKmJ1ZiwgdW5zaWduZWQgaW50IGJsb2NrLCBzaXplX3QgbGVuKQogeworCXN0cnVjdCBoZG1p X2NvcmVfZGF0YSAqY29yZSA9IGRhdGE7CiAJdm9pZCBfX2lvbWVtICpiYXNlID0gY29yZS0+YmFz ZTsKIAl1OCBjdXJfYWRkcjsKLQljaGFyIGNoZWNrc3VtID0gMDsKIAljb25zdCBpbnQgcmV0cmll cyA9IDEwMDA7Ci0JdTggc2VnX3B0ciA9IGV4dCAvIDI7Ci0JdTggZWRpZGJhc2UgPSAoKGV4dCAl IDIpICogMHg4MCk7CisJdTggc2VnX3B0ciA9IGJsb2NrIC8gMjsKKwl1OCBlZGlkYmFzZSA9ICgo YmxvY2sgJSAyKSAqIEVESURfTEVOR1RIKTsKIAogCVJFR19GTERfTU9EKGJhc2UsIEhETUlfQ09S RV9JMkNNX1NFR1BUUiwgc2VnX3B0ciwgNywgMCk7CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCBzdGF0 aWMgaW50IGhkbWlfY29yZV9kZGNfZWRpZChzdHJ1Y3QgaGRtaV9jb3JlX2RhdGEgKmNvcmUsIHU4 ICpwZWRpZCwgdTggZXh0KQogCSAqIFRPRE86IFdlIHVzZSBwb2xsaW5nIGhlcmUsIGFsdGhvdWdo IHdlIHByb2JhYmx5IHNob3VsZCB1c2UgcHJvcGVyCiAJICogaW50ZXJydXB0cy4KIAkgKi8KLQlm b3IgKGN1cl9hZGRyID0gMDsgY3VyX2FkZHIgPCAxMjg7ICsrY3VyX2FkZHIpIHsKKwlmb3IgKGN1 cl9hZGRyID0gMDsgY3VyX2FkZHIgPCBsZW47ICsrY3VyX2FkZHIpIHsKIAkJaW50IGk7CiAKIAkJ LyogY2xlYXIgRVJST1IgYW5kIERPTkUgKi8KQEAgLTE4Nyw0NSArMTg3LDEzIEBAIHN0YXRpYyBp bnQgaGRtaV9jb3JlX2RkY19lZGlkKHN0cnVjdCBoZG1pX2NvcmVfZGF0YSAqY29yZSwgdTggKnBl ZGlkLCB1OCBleHQpCiAJCQlyZXR1cm4gLUVJTzsKIAkJfQogCi0JCXBlZGlkW2N1cl9hZGRyXSA9 IFJFR19HRVQoYmFzZSwgSERNSV9DT1JFX0kyQ01fREFUQUksIDcsIDApOwotCQljaGVja3N1bSAr PSBwZWRpZFtjdXJfYWRkcl07CisJCWJ1ZltjdXJfYWRkcl0gPSBSRUdfR0VUKGJhc2UsIEhETUlf Q09SRV9JMkNNX0RBVEFJLCA3LCAwKTsKIAl9CiAKIAlyZXR1cm4gMDsKIAogfQogCi1pbnQgaGRt aTVfcmVhZF9lZGlkKHN0cnVjdCBoZG1pX2NvcmVfZGF0YSAqY29yZSwgdTggKmVkaWQsIGludCBs ZW4pCi17Ci0JaW50IHIsIG4sIGk7Ci0JaW50IG1heF9leHRfYmxvY2tzID0gKGxlbiAvIDEyOCkg LSAxOwotCi0JaWYgKGxlbiA8IDEyOCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQloZG1pX2NvcmVf ZGRjX2luaXQoY29yZSk7Ci0KLQlyID0gaGRtaV9jb3JlX2RkY19lZGlkKGNvcmUsIGVkaWQsIDAp OwotCWlmIChyKQotCQlnb3RvIG91dDsKLQotCW4gPSBlZGlkWzB4N2VdOwotCi0JaWYgKG4gPiBt YXhfZXh0X2Jsb2NrcykKLQkJbiA9IG1heF9leHRfYmxvY2tzOwotCi0JZm9yIChpID0gMTsgaSA8 PSBuOyBpKyspIHsKLQkJciA9IGhkbWlfY29yZV9kZGNfZWRpZChjb3JlLCBlZGlkICsgaSAqIEVE SURfTEVOR1RILCBpKTsKLQkJaWYgKHIpCi0JCQlnb3RvIG91dDsKLQl9Ci0KLW91dDoKLQloZG1p X2NvcmVfZGRjX3VuaW5pdChjb3JlKTsKLQotCXJldHVybiByID8gciA6IGxlbjsKLX0KLQogdm9p ZCBoZG1pNV9jb3JlX2R1bXAoc3RydWN0IGhkbWlfY29yZV9kYXRhICpjb3JlLCBzdHJ1Y3Qgc2Vx X2ZpbGUgKnMpCiB7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9o ZG1pNV9jb3JlLmggYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTVfY29yZS5oCmlu ZGV4IGYyZjEwMjJjNTUxNi4uNDFiY2M0YTk4YWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vb21hcGRybS9kc3MvaGRtaTVfY29yZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJt L2Rzcy9oZG1pNV9jb3JlLmgKQEAgLTI5Miw3ICsyOTIsMTAgQEAgc3RydWN0IGNzY190YWJsZSB7 CiAJdTE2IGMxLCBjMiwgYzMsIGM0OwogfTsKIAotaW50IGhkbWk1X3JlYWRfZWRpZChzdHJ1Y3Qg aGRtaV9jb3JlX2RhdGEgKmNvcmUsIHU4ICplZGlkLCBpbnQgbGVuKTsKK3ZvaWQgaGRtaTVfY29y ZV9kZGNfaW5pdChzdHJ1Y3QgaGRtaV9jb3JlX2RhdGEgKmNvcmUpOworaW50IGhkbWk1X2NvcmVf ZGRjX3JlYWQodm9pZCAqZGF0YSwgdTggKmJ1ZiwgdW5zaWduZWQgaW50IGJsb2NrLCBzaXplX3Qg bGVuKTsKK3ZvaWQgaGRtaTVfY29yZV9kZGNfdW5pbml0KHN0cnVjdCBoZG1pX2NvcmVfZGF0YSAq Y29yZSk7CisKIHZvaWQgaGRtaTVfY29yZV9kdW1wKHN0cnVjdCBoZG1pX2NvcmVfZGF0YSAqY29y ZSwgc3RydWN0IHNlcV9maWxlICpzKTsKIGludCBoZG1pNV9jb3JlX2hhbmRsZV9pcnFzKHN0cnVj dCBoZG1pX2NvcmVfZGF0YSAqY29yZSk7CiB2b2lkIGhkbWk1X2NvbmZpZ3VyZShzdHJ1Y3QgaGRt aV9jb3JlX2RhdGEgKmNvcmUsIHN0cnVjdCBoZG1pX3dwX2RhdGEgKndwLAotLSAKUmVnYXJkcywK CkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbA==