From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: [PATCH v2] drm/edid: parse CEA blocks embedded in DisplayID Date: Thu, 13 Jun 2019 13:52:38 -0400 Message-ID: <20190613175238.8060-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) by gabe.freedesktop.org (Postfix) with ESMTPS id A144A89358 for ; Thu, 13 Jun 2019 17:52:43 +0000 (UTC) Received: by mail-io1-xd44.google.com with SMTP id k20so18888046ios.10 for ; Thu, 13 Jun 2019 10:52:43 -0700 (PDT) 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: Andres Rodriguez List-Id: dri-devel@lists.freedesktop.org RGlzcGxheUlEIGJsb2NrcyBhbGxvdyBlbWJlZGRpbmcgb2YgQ0VBIGJsb2Nrcy4gVGhlIHBheWxv YWRzIGFyZQppZGVudGljYWwgdG8gdHJhZGl0aW9uYWwgdG9wIGxldmVsIENFQSBleHRlbnNpb24g YmxvY2tzLCBidXQgdGhlIGhlYWRlcgppcyBzbGlnaHRseSBkaWZmZXJlbnQuCgpUaGlzIGNoYW5n ZSBhbGxvd3MgdGhlIENFQSBwYXJzZXIgdG8gZmluZCBhIENFQSBibG9jayBpbnNpZGUgYSBEaXNw bGF5SUQKYmxvY2suIEFkZGl0aW9uYWxseSwgaXQgYWRkcyBzdXBwb3J0IGZvciBwYXJzaW5nIHRo ZSBlbWJlZGRlZCBDVEEKaGVhZGVyLiBObyBmdXJ0aGVyIGNoYW5nZXMgYXJlIG5lY2Vzc2FyeSBk dWUgdG8gcGF5bG9hZCBwYXJpdHkuCgpUaGlzIGNoYW5nZSBlbmFibGVzIGF1ZGlvIHN1cHBvcnQg Zm9yIHRoZSBWYWx2ZSBJbmRleCBITUQuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXMgUm9kcmlndWV6 IDxhbmRyZXN4N0BnbWFpbC5jb20+Ci0tLQoKdjI6IFJldmlldyBmZWVkYmFjayBmcm9tIEphbmku CgogZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgIHwgNzUgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLQogaW5jbHVkZS9kcm0vZHJtX2Rpc3BsYXlpZC5oIHwgMTAgKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jCmluZGV4IDY0OWNmZDhiNDIwMC4uOGVjZDdmNzA4MjVkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwpA QCAtMTMzOSw2ICsxMzM5LDggQEAgTU9EVUxFX1BBUk1fREVTQyhlZGlkX2ZpeHVwLAogCiBzdGF0 aWMgdm9pZCBkcm1fZ2V0X2Rpc3BsYXlpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAogCQkJICAgICAgc3RydWN0IGVkaWQgKmVkaWQpOworc3RhdGljIHU4ICpkcm1fZmluZF9kaXNw bGF5aWRfZXh0ZW5zaW9uKGNvbnN0IHN0cnVjdCBlZGlkICplZGlkKTsKK3N0YXRpYyBpbnQgdmFs aWRhdGVfZGlzcGxheWlkKHU4ICpkaXNwbGF5aWQsIGludCBsZW5ndGgsIGludCBpZHgpOwogCiBz dGF0aWMgaW50IGRybV9lZGlkX2Jsb2NrX2NoZWNrc3VtKGNvbnN0IHU4ICpyYXdfZWRpZCkKIHsK QEAgLTI4ODUsNyArMjg4NywzNiBAQCBzdGF0aWMgdTggKmRybV9maW5kX2VkaWRfZXh0ZW5zaW9u KGNvbnN0IHN0cnVjdCBlZGlkICplZGlkLCBpbnQgZXh0X2lkKQogCiBzdGF0aWMgdTggKmRybV9m aW5kX2NlYV9leHRlbnNpb24oY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpCiB7Ci0JcmV0dXJuIGRy bV9maW5kX2VkaWRfZXh0ZW5zaW9uKGVkaWQsIENFQV9FWFQpOworCWludCByZXQ7CisJaW50IGlk eCA9IDE7CisJaW50IGxlbmd0aCA9IEVESURfTEVOR1RIOworCXN0cnVjdCBkaXNwbGF5aWRfYmxv Y2sgKmJsb2NrOworCXU4ICpjZWE7CisJdTggKmRpc3BsYXlpZDsKKworCS8qIExvb2sgZm9yIGEg dG9wIGxldmVsIENFQSBleHRlbnNpb24gYmxvY2sgKi8KKwljZWEgPSBkcm1fZmluZF9lZGlkX2V4 dGVuc2lvbihlZGlkLCBDRUFfRVhUKTsKKwlpZiAoY2VhKQorCQlyZXR1cm4gY2VhOworCisJLyog Q0VBIGJsb2NrcyBjYW4gYWxzbyBiZSBmb3VuZCBlbWJlZGRlZCBpbiBhIERpc3BsYXlJRCBibG9j ayAqLworCWRpc3BsYXlpZCA9IGRybV9maW5kX2Rpc3BsYXlpZF9leHRlbnNpb24oZWRpZCk7CisJ aWYgKCFkaXNwbGF5aWQpCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gdmFsaWRhdGVfZGlzcGxh eWlkKGRpc3BsYXlpZCwgbGVuZ3RoLCBpZHgpOworCWlmIChyZXQpCisJCXJldHVybiBOVUxMOwor CisJaWR4ICs9IHNpemVvZihzdHJ1Y3QgZGlzcGxheWlkX2hkcik7CisJZm9yX2VhY2hfZGlzcGxh eWlkX2RiKGRpc3BsYXlpZCwgYmxvY2ssIGlkeCwgbGVuZ3RoKSB7CisJCWlmIChibG9jay0+dGFn ID09IERBVEFfQkxPQ0tfQ1RBKSB7CisJCQljZWEgPSAodTggKilibG9jazsKKwkJCWJyZWFrOwor CQl9CisJfQorCisJcmV0dXJuIGNlYTsKIH0KIAogc3RhdGljIHU4ICpkcm1fZmluZF9kaXNwbGF5 aWRfZXh0ZW5zaW9uKGNvbnN0IHN0cnVjdCBlZGlkICplZGlkKQpAQCAtMzYxNiwxMyArMzY0Nywz OCBAQCBjZWFfcmV2aXNpb24oY29uc3QgdTggKmNlYSkKIHN0YXRpYyBpbnQKIGNlYV9kYl9vZmZz ZXRzKGNvbnN0IHU4ICpjZWEsIGludCAqc3RhcnQsIGludCAqZW5kKQogewotCS8qIERhdGEgYmxv Y2sgb2Zmc2V0IGluIENFQSBleHRlbnNpb24gYmxvY2sgKi8KLQkqc3RhcnQgPSA0OwotCSplbmQg PSBjZWFbMl07Ci0JaWYgKCplbmQgPT0gMCkKLQkJKmVuZCA9IDEyNzsKLQlpZiAoKmVuZCA8IDQg fHwgKmVuZCA+IDEyNykKLQkJcmV0dXJuIC1FUkFOR0U7CisKKwkvKiBEaXNwbGF5SUQgQ1RBIGV4 dGVuc2lvbiBibG9ja3MgYW5kIHRvcC1sZXZlbCBDRUEgRURJRAorCSAqIGJsb2NrIGhlYWRlciBk ZWZpbml0aW9ucyBkaWZmZXIgaW4gdGhlIGZvbGxvd2luZyBieXRlczoKKwkgKiAgIDEpIEJ5dGUg MiBvZiB0aGUgaGVhZGVyIHNwZWNpZmllcyBsZW5ndGggZGlmZmVyZW50bHksCisJICogICAyKSBC eXRlIDMgaXMgb25seSBwcmVzZW50IGluIHRoZSBDRUEgdG9wIGxldmVsIGJsb2NrLgorCSAqCisJ ICogVGhlIGRpZmZlcmVudCBkZWZpbml0aW9ucyBmb3IgYnl0ZSAyIGZvbGxvdy4KKwkgKgorCSAq IERpc3BsYXlJRCBDVEEgZXh0ZW5zaW9uIGJsb2NrIGRlZmluZXMgYnl0ZSAyIGFzOgorCSAqICAg TnVtYmVyIG9mIHBheWxvYWQgYnl0ZXMKKwkgKgorCSAqIENFQSBFRElEIGJsb2NrIGRlZmluZXMg Ynl0ZSAyIGFzOgorCSAqICAgQnl0ZSBudW1iZXIgKGRlY2ltYWwpIHdpdGhpbiB0aGlzIGJsb2Nr IHdoZXJlIHRoZSAxOC1ieXRlCisJICogICBEVERzIGJlZ2luLiBJZiBubyBub24tRFREIGRhdGEg aXMgcHJlc2VudCBpbiB0aGlzIGV4dGVuc2lvbgorCSAqICAgYmxvY2ssIHRoZSB2YWx1ZSBzaG91 bGQgYmUgc2V0IHRvIDA0aCAodGhlIGJ5dGUgYWZ0ZXIgbmV4dCkuCisJICogICBJZiBzZXQgdG8g MDBoLCB0aGVyZSBhcmUgbm8gRFREcyBwcmVzZW50IGluIHRoaXMgYmxvY2sgYW5kCisJICogICBu byBub24tRFREIGRhdGEuCisJICovCisJaWYgKGNlYVswXSA9PSBEQVRBX0JMT0NLX0NUQSkgewor CQkqc3RhcnQgPSAzOworCQkqZW5kID0gKnN0YXJ0ICsgY2VhWzJdOworCX0gZWxzZSBpZiAoY2Vh WzBdID09IENFQV9FWFQpIHsKKwkJLyogRGF0YSBibG9jayBvZmZzZXQgaW4gQ0VBIGV4dGVuc2lv biBibG9jayAqLworCQkqc3RhcnQgPSA0OworCQkqZW5kID0gY2VhWzJdOworCQlpZiAoKmVuZCA9 PSAwKQorCQkJKmVuZCA9IDEyNzsKKwkJaWYgKCplbmQgPCA0IHx8ICplbmQgPiAxMjcpCisJCQly ZXR1cm4gLUVSQU5HRTsKKwl9IGVsc2UKKwkJcmV0dXJuIC1FTk9UU1VQUDsKKwogCXJldHVybiAw OwogfQogCkBAIC01MjQwLDYgKzUyOTYsOSBAQCBzdGF0aWMgaW50IGRybV9wYXJzZV9kaXNwbGF5 X2lkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWNhc2UgREFUQV9CTE9DS19U WVBFXzFfREVUQUlMRURfVElNSU5HOgogCQkJLyogaGFuZGxlZCBpbiBtb2RlIGdhdGhlcmluZyBj b2RlLiAqLwogCQkJYnJlYWs7CisJCWNhc2UgREFUQV9CTE9DS19DVEE6CisJCQkvKiBoYW5kbGVk IGluIHRoZSBjZWEgcGFyc2VyIGNvZGUuICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCURS TV9ERUJVR19LTVMoImZvdW5kIERpc3BsYXlJRCB0YWcgMHgleCwgdW5oYW5kbGVkXG4iLCBibG9j ay0+dGFnKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Rpc3BsYXlp ZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2Rpc3BsYXlpZC5oCmluZGV4IGMwZDRkZjZhNjA2Zi4uOWQz Yjc0NWMzMTA3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZGlzcGxheWlkLmgKKysrIGIv aW5jbHVkZS9kcm0vZHJtX2Rpc3BsYXlpZC5oCkBAIC00MCw2ICs0MCw3IEBACiAjZGVmaW5lIERB VEFfQkxPQ0tfRElTUExBWV9JTlRFUkZBQ0UgMHgwZgogI2RlZmluZSBEQVRBX0JMT0NLX1NURVJF T19ESVNQTEFZX0lOVEVSRkFDRSAweDEwCiAjZGVmaW5lIERBVEFfQkxPQ0tfVElMRURfRElTUExB WSAweDEyCisjZGVmaW5lIERBVEFfQkxPQ0tfQ1RBIDB4ODEKIAogI2RlZmluZSBEQVRBX0JMT0NL X1ZFTkRPUl9TUEVDSUZJQyAweDdmCiAKQEAgLTkwLDQgKzkxLDEzIEBAIHN0cnVjdCBkaXNwbGF5 aWRfZGV0YWlsZWRfdGltaW5nX2Jsb2NrIHsKIAlzdHJ1Y3QgZGlzcGxheWlkX2Jsb2NrIGJhc2U7 CiAJc3RydWN0IGRpc3BsYXlpZF9kZXRhaWxlZF90aW1pbmdzXzEgdGltaW5nc1swXTsKIH07CisK KyNkZWZpbmUgZm9yX2VhY2hfZGlzcGxheWlkX2RiKGRpc3BsYXlpZCwgYmxvY2ssIGlkeCwgbGVu Z3RoKSBcCisJZm9yICgoYmxvY2spID0gKHN0cnVjdCBkaXNwbGF5aWRfYmxvY2sgKikmKGRpc3Bs YXlpZClbaWR4XTsgXAorCSAgICAgKGlkeCkgKyBzaXplb2Yoc3RydWN0IGRpc3BsYXlpZF9ibG9j aykgPD0gKGxlbmd0aCkgJiYgXAorCSAgICAgKGlkeCkgKyBzaXplb2Yoc3RydWN0IGRpc3BsYXlp ZF9ibG9jaykgKyAoYmxvY2spLT5udW1fYnl0ZXMgPD0gKGxlbmd0aCkgJiYgXAorCSAgICAgKGJs b2NrKS0+bnVtX2J5dGVzID4gMDsgXAorCSAgICAgKGlkeCkgKz0gKGJsb2NrKS0+bnVtX2J5dGVz ICsgc2l6ZW9mKHN0cnVjdCBkaXNwbGF5aWRfYmxvY2spLCBcCisJICAgICAoYmxvY2spID0gKHN0 cnVjdCBkaXNwbGF5aWRfYmxvY2sgKikmKGRpc3BsYXlpZClbaWR4XSkKKwogI2VuZGlmCi0tIAoy LjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==