From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: [PATCH] drm/edid: parse CEA blocks embedded in DisplayID Date: Wed, 12 Jun 2019 16:02:45 -0400 Message-ID: <20190612200245.8536-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-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) by gabe.freedesktop.org (Postfix) with ESMTPS id E6ADE8893B for ; Wed, 12 Jun 2019 20:03:01 +0000 (UTC) Received: by mail-io1-xd41.google.com with SMTP id i10so14020389iol.13 for ; Wed, 12 Jun 2019 13:03:01 -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+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgIHwg NzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogaW5jbHVkZS9kcm0vZHJt X2Rpc3BsYXlpZC5oIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKaW5kZXggNjQ5Y2ZkOGI0MjAwLi4zZTcxYzZhZTQ4 ZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZWRpZC5jCkBAIC0xMzM5LDYgKzEzMzksOCBAQCBNT0RVTEVfUEFSTV9ERVND KGVkaWRfZml4dXAsCiAKIHN0YXRpYyB2b2lkIGRybV9nZXRfZGlzcGxheWlkKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkgICAgICBzdHJ1Y3QgZWRpZCAqZWRpZCk7CitzdGF0 aWMgdTggKmRybV9maW5kX2Rpc3BsYXlpZF9leHRlbnNpb24oY29uc3Qgc3RydWN0IGVkaWQgKmVk aWQpOworc3RhdGljIGludCB2YWxpZGF0ZV9kaXNwbGF5aWQodTggKmRpc3BsYXlpZCwgaW50IGxl bmd0aCwgaW50IGlkeCk7CiAKIHN0YXRpYyBpbnQgZHJtX2VkaWRfYmxvY2tfY2hlY2tzdW0oY29u c3QgdTggKnJhd19lZGlkKQogewpAQCAtMjg4NSw3ICsyODg3LDQwIEBAIHN0YXRpYyB1OCAqZHJt X2ZpbmRfZWRpZF9leHRlbnNpb24oY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQsIGludCBleHRfaWQp CiAKIHN0YXRpYyB1OCAqZHJtX2ZpbmRfY2VhX2V4dGVuc2lvbihjb25zdCBzdHJ1Y3QgZWRpZCAq ZWRpZCkKIHsKLQlyZXR1cm4gZHJtX2ZpbmRfZWRpZF9leHRlbnNpb24oZWRpZCwgQ0VBX0VYVCk7 CisJaW50IHJldDsKKwlpbnQgaWR4ID0gMTsKKwlpbnQgbGVuZ3RoID0gRURJRF9MRU5HVEg7CisJ c3RydWN0IGRpc3BsYXlpZF9ibG9jayAqYmxvY2s7CisJdTggKmNlYSA9IE5VTEw7CisJdTggKmRp c3BsYXlpZCA9IE5VTEw7CisKKwljZWEgPSBkcm1fZmluZF9lZGlkX2V4dGVuc2lvbihlZGlkLCBD RUFfRVhUKTsKKworCS8qIENFQSBibG9ja3MgY2FuIGFsc28gYmUgZm91bmQgZW1iZWRkZWQgaW4g YSBEaXNwbGF5SUQgYmxvY2sgKi8KKwlpZiAoIWNlYSkgeworCQlkaXNwbGF5aWQgPSBkcm1fZmlu ZF9kaXNwbGF5aWRfZXh0ZW5zaW9uKGVkaWQpOworCQlpZiAoIWRpc3BsYXlpZCkKKwkJCXJldHVy biBOVUxMOworCisJCXJldCA9IHZhbGlkYXRlX2Rpc3BsYXlpZChkaXNwbGF5aWQsIGxlbmd0aCwg aWR4KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiBOVUxMOworCisJCWlkeCArPSBzaXplb2Yoc3Ry dWN0IGRpc3BsYXlpZF9oZHIpOworCQl3aGlsZSAoYmxvY2sgPSAoc3RydWN0IGRpc3BsYXlpZF9i bG9jayAqKSZkaXNwbGF5aWRbaWR4XSwKKwkJICAgICAgIGlkeCArIHNpemVvZihzdHJ1Y3QgZGlz cGxheWlkX2Jsb2NrKSA8PSBsZW5ndGggJiYKKwkJICAgICAgIGlkeCArIHNpemVvZihzdHJ1Y3Qg ZGlzcGxheWlkX2Jsb2NrKSArIGJsb2NrLT5udW1fYnl0ZXMgPD0gbGVuZ3RoICYmCisJCSAgICAg ICBibG9jay0+bnVtX2J5dGVzID4gMCkgeworCQkJaWR4ICs9IGJsb2NrLT5udW1fYnl0ZXMgKyBz aXplb2Yoc3RydWN0IGRpc3BsYXlpZF9ibG9jayk7CisJCQlzd2l0Y2ggKGJsb2NrLT50YWcpIHsK KwkJCWNhc2UgREFUQV9CTE9DS19DVEE6CisJCQkJY2VhID0gKHU4ICopYmxvY2s7CisJCQkJYnJl YWs7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gY2VhOwogfQogCiBzdGF0aWMgdTggKmRybV9m aW5kX2Rpc3BsYXlpZF9leHRlbnNpb24oY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpCkBAIC0zNjE2 LDEzICszNjUxLDM4IEBAIGNlYV9yZXZpc2lvbihjb25zdCB1OCAqY2VhKQogc3RhdGljIGludAog Y2VhX2RiX29mZnNldHMoY29uc3QgdTggKmNlYSwgaW50ICpzdGFydCwgaW50ICplbmQpCiB7Ci0J LyogRGF0YSBibG9jayBvZmZzZXQgaW4gQ0VBIGV4dGVuc2lvbiBibG9jayAqLwotCSpzdGFydCA9 IDQ7Ci0JKmVuZCA9IGNlYVsyXTsKLQlpZiAoKmVuZCA9PSAwKQotCQkqZW5kID0gMTI3OwotCWlm ICgqZW5kIDwgNCB8fCAqZW5kID4gMTI3KQotCQlyZXR1cm4gLUVSQU5HRTsKKworCS8qIERpc3Bs YXlJRCBDVEEgZXh0ZW5zaW9uIGJsb2NrcyBhbmQgdG9wLWxldmVsIENFQSBFRElECisJICogYmxv Y2tzIGhlYWRlcnMgZGlmZmVyIGluIHR3byBieXRlIGRlZmluaXRpb25zOgorCSAqICAgMSkgQnl0 ZSAyIG9mIHRoZSBoZWFkZXIgc3BlY2lmaWVzIGxlbmd0aCBkaWZmZXJlbnRseSwKKwkgKiAgIDIp IEJ5dGUgMyBpcyBvbmx5IHByZXNlbnQgaW4gdGhlIENFQSB0b3AgbGV2ZWwgYmxvY2suCisJICoK KwkgKiBUaGUgZGlmZmVyZW50IGRlZmluaXRpb25zIGZvciBieXRlIDIgZm9sbG93LgorCSAqCisJ ICogRGlzcGxheUlEIENUQSBleHRlbnNpb24gYmxvY2sgZGVmaW5lcyBieXRlIDIgYXM6CisJICog ICBOdW1iZXIgb2YgcGF5bG9hZCBieXRlcworCSAqCisJICogQ0VBIEVESUQgYmxvY2sgZGVmaW5l cyBieXRlIDIgYXM6CisJICogICBCeXRlIG51bWJlciAoZGVjaW1hbCkgd2l0aGluIHRoaXMgYmxv Y2sgd2hlcmUgdGhlIDE4LWJ5dGUKKwkgKiAgIERURHMgYmVnaW4uIElmIG5vIG5vbi1EVEQgZGF0 YSBpcyBwcmVzZW50IGluIHRoaXMgZXh0ZW5zaW9uCisJICogICBibG9jaywgdGhlIHZhbHVlIHNo b3VsZCBiZSBzZXQgdG8gMDRoICh0aGUgYnl0ZSBhZnRlciBuZXh0KS4KKwkgKiAgIElmIHNldCB0 byAwMGgsIHRoZXJlIGFyZSBubyBEVERzIHByZXNlbnQgaW4gdGhpcyBibG9jayBhbmQKKwkgKiAg IG5vIG5vbi1EVEQgZGF0YS4KKwkgKi8KKwlpZiAoY2VhWzBdID09IERBVEFfQkxPQ0tfQ1RBKSB7 CisJCSpzdGFydCA9IDM7CisJCSplbmQgPSAqc3RhcnQgKyBjZWFbMl07CisJfSBlbHNlIGlmIChj ZWFbMF0gPT0gQ0VBX0VYVCkgeworCQkqc3RhcnQgPSA0OworCQkqZW5kID0gY2VhWzJdOworCQkv KiBEYXRhIGJsb2NrIG9mZnNldCBpbiBDRUEgZXh0ZW5zaW9uIGJsb2NrICovCisJCWlmICgqZW5k ID09IDApCisJCQkqZW5kID0gMTI3OworCQlpZiAoKmVuZCA8IDQgfHwgKmVuZCA+IDEyNykKKwkJ CXJldHVybiAtRVJBTkdFOworCX0gZWxzZQorCQlyZXR1cm4gLUVOT1RTVVBQOworCiAJcmV0dXJu IDA7CiB9CiAKQEAgLTUyNDAsNiArNTMwMCw5IEBAIHN0YXRpYyBpbnQgZHJtX3BhcnNlX2Rpc3Bs YXlfaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJY2FzZSBEQVRBX0JMT0NL X1RZUEVfMV9ERVRBSUxFRF9USU1JTkc6CiAJCQkvKiBoYW5kbGVkIGluIG1vZGUgZ2F0aGVyaW5n IGNvZGUuICovCiAJCQlicmVhazsKKwkJY2FzZSBEQVRBX0JMT0NLX0NUQToKKwkJCS8qIGhhbmRs ZWQgaW4gdGhlIGNlYSBwYXJzZXIgY29kZS4gKi8KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ RFJNX0RFQlVHX0tNUygiZm91bmQgRGlzcGxheUlEIHRhZyAweCV4LCB1bmhhbmRsZWRcbiIsIGJs b2NrLT50YWcpOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZGlzcGxh eWlkLmggYi9pbmNsdWRlL2RybS9kcm1fZGlzcGxheWlkLmgKaW5kZXggYzBkNGRmNmE2MDZmLi5j N2FmODU3ZjQ3NjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kaXNwbGF5aWQuaAorKysg Yi9pbmNsdWRlL2RybS9kcm1fZGlzcGxheWlkLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNkZWZpbmUg REFUQV9CTE9DS19ESVNQTEFZX0lOVEVSRkFDRSAweDBmCiAjZGVmaW5lIERBVEFfQkxPQ0tfU1RF UkVPX0RJU1BMQVlfSU5URVJGQUNFIDB4MTAKICNkZWZpbmUgREFUQV9CTE9DS19USUxFRF9ESVNQ TEFZIDB4MTIKKyNkZWZpbmUgREFUQV9CTE9DS19DVEEgMHg4MQogCiAjZGVmaW5lIERBVEFfQkxP Q0tfVkVORE9SX1NQRUNJRklDIDB4N2YKIAotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=