From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 39E36895B5 for ; Wed, 15 May 2019 07:29:35 +0000 (UTC) From: Simon Ser Date: Wed, 15 May 2019 10:29:16 +0300 Message-Id: <20190515072922.30768-4-simon.ser@intel.com> In-Reply-To: <20190515072922.30768-1-simon.ser@intel.com> References: <20190515072922.30768-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4 3/9] lib/igt_edid: add support for Vendor Specific Data blocks List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: Rm9yIHNvbWUgcmVhc29uIEhETUkgYXVkaW8gd29uJ3Qgd29yayB1bmxlc3MgeW91IGNhc3QgYSBt YWdpYyBJRUVFIFJlZ2lzdHJhdGlvbgpJZGVudGlmaWVyIGFsb25nc2lkZSB3aXRoIGl0cyBhcHBy b3ByaWF0ZSBDb21wb25lbnRzIG9mIFNvdXJjZSBQaHlzaWNhbApBZGRyZXNzLiBUaGUgZWFzaWVz dCB3YXkgdG8gZG8gdGhpcyBpcyB0byBjYXB0dXJlIGEgd2lsZCBIRE1JIEVESUQsIHN0dWR5IGl0 LAphbmQgYmxpbmRseSBjb3B5IGJ5dGVzIGJlY2F1c2UgeW91IGRvbid0IHVuZGVyc3RhbmQgYW55 dGhpbmcgYWJvdXQgdGhlaXIKcG9zc2libGUgbWVhbmluZyAoaWYgYW55KS4KClRoaXMgY29tbWl0 IGFsc28gY2hhbmdlcyB0aGUgU0FEIEFQSSBleHBvc2VkIGJ5IGlndF9lZGlkLCB0byBhbGxvdyBm b3IgYm90aCBhClNBRCBibG9jayBhbmQgYSBWU0QgYmxvY2sgdG8gYmUgaW5jbHVkZWQgaW4gdGhl IHNhbWUgQ0VBIGJsb2NrLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50 ZWwuY29tPgpSZXZpZXdlZC1ieTogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50 ZWwuY29tPgotLS0KIGxpYi9pZ3RfZWRpZC5jIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGxpYi9pZ3RfZWRpZC5oIHwgMjMgKysrKysrKysr KysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2VkaWQuYyBiL2xpYi9pZ3RfZWRpZC5jCmluZGV4IGQw MWRlZmIwOTI1ZS4uZmJkYjBjMDZiOGQ3IDEwMDY0NAotLS0gYS9saWIvaWd0X2VkaWQuYworKysg Yi9saWIvaWd0X2VkaWQuYwpAQCAtMjkyLDMwICsyOTIsNzIgQEAgdm9pZCBjZWFfc2FkX2luaXRf cGNtKHN0cnVjdCBjZWFfc2FkICpzYWQsIGludCBjaGFubmVscywKIH0KIAogLyoqCi0gKiBlZGlk X2V4dF9zZXRfY2VhX3NhZDogc2V0IGFuIGV4dGVuc2lvbiBibG9jayB0byBiZSBDRUEgU0FECisg KiBjZWFfdnNkX2dldF9oZG1pX2RlZmF1bHQ6CisgKgorICogUmV0dXJucyB0aGUgZGVmYXVsdCBW ZW5kb3IgU3BlY2lmaWMgRGF0YSBibG9jayBmb3IgSERNSS4KICAqLwotdm9pZCBlZGlkX2V4dF9z ZXRfY2VhX3NhZChzdHJ1Y3QgZWRpZF9leHQgKmV4dCwgY29uc3Qgc3RydWN0IGNlYV9zYWQgKnNh ZHMsCi0JCQkgIHNpemVfdCBzYWRzX2xlbikKK2NvbnN0IHN0cnVjdCBjZWFfdnNkICpjZWFfdnNk X2dldF9oZG1pX2RlZmF1bHQoc2l6ZV90ICpzaXplKQogewotCXN0cnVjdCBlZGlkX2NlYSAqY2Vh ID0gJmV4dC0+ZGF0YS5jZWE7Ci0Jc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKmRhdGFfYmxv Y2s7Ci0Jc2l6ZV90IHNhZHNfc2l6ZSwgZGF0YV9ibG9ja19zaXplOworCXN0YXRpYyBjaGFyIHJh d1tzaXplb2Yoc3RydWN0IGNlYV92c2QpICsgNF0gPSB7MH07CisJc3RydWN0IGNlYV92c2QgKnZz ZDsKKworCSpzaXplID0gc2l6ZW9mKHJhdyk7CisKKwkvKiBNYWdpYyBpbmNhbnRhdGlvbi4gV29y a3MgYmV0dGVyIGlmIHlvdSBvcmllbnQgeW91ciBzY3JlZW4gaW4gdGhlCisJICogZGlyZWN0aW9u IG9mIHRoZSBWRVNBIGhlYWRxdWFydGVycy4gKi8KKwl2c2QgPSAoc3RydWN0IGNlYV92c2QgKikg cmF3OworCXZzZC0+aWVlZV9vdWlbMF0gPSAweDAzOworCXZzZC0+aWVlZV9vdWlbMV0gPSAweDBD OworCXZzZC0+aWVlZV9vdWlbMl0gPSAweDAwOworCXZzZC0+ZGF0YVswXSA9IDB4MTA7CisJdnNk LT5kYXRhWzFdID0gMHgwMDsKKwl2c2QtPmRhdGFbMl0gPSAweDM4OworCXZzZC0+ZGF0YVszXSA9 IDB4MkQ7CisKKwlyZXR1cm4gdnNkOworfQorCitzdGF0aWMgdm9pZCBlZGlkX2NlYV9kYXRhX2Js b2NrX2luaXQoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKmJsb2NrLAorCQkJCSAgICAgZW51 bSBlZGlkX2NlYV9kYXRhX3R5cGUgdHlwZSwgc2l6ZV90IHNpemUpCit7CisJYXNzZXJ0KHNpemUg PD0gMHhGRik7CisJYmxvY2stPnR5cGVfbGVuID0gdHlwZSA8PCA1IHwgc2l6ZTsKK30KIAotCW1l bXNldChleHQsIDAsIHNpemVvZihzdHJ1Y3QgZWRpZF9leHQpKTsKK3NpemVfdCBlZGlkX2NlYV9k YXRhX2Jsb2NrX3NldF9zYWQoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKmJsb2NrLAorCQkJ CSAgIGNvbnN0IHN0cnVjdCBjZWFfc2FkICpzYWRzLCBzaXplX3Qgc2Fkc19sZW4pCit7CisJc2l6 ZV90IHNhZHNfc2l6ZTsKIAogCXNhZHNfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgY2VhX3NhZCkgKiBz YWRzX2xlbjsKLQlkYXRhX2Jsb2NrX3NpemUgPSBzaXplb2Yoc3RydWN0IGVkaWRfY2VhX2RhdGFf YmxvY2spICsgc2Fkc19zaXplOworCWVkaWRfY2VhX2RhdGFfYmxvY2tfaW5pdChibG9jaywgRURJ RF9DRUFfREFUQV9BVURJTywgc2Fkc19zaXplKTsKKworCW1lbWNweShibG9jay0+ZGF0YS5zYWRz LCBzYWRzLCBzYWRzX3NpemUpOworCisJcmV0dXJuIHNpemVvZihzdHJ1Y3QgZWRpZF9jZWFfZGF0 YV9ibG9jaykgKyBzYWRzX3NpemU7Cit9CisKK3NpemVfdCBlZGlkX2NlYV9kYXRhX2Jsb2NrX3Nl dF92c2Qoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKmJsb2NrLAorCQkJCSAgIGNvbnN0IHN0 cnVjdCBjZWFfdnNkICp2c2QsIHNpemVfdCB2c2Rfc2l6ZSkKK3sKKwllZGlkX2NlYV9kYXRhX2Js b2NrX2luaXQoYmxvY2ssIEVESURfQ0VBX0RBVEFfVkVORE9SX1NQRUNJRklDLAorCQkJCSB2c2Rf c2l6ZSk7CisKKwltZW1jcHkoYmxvY2stPmRhdGEudnNkcywgdnNkLCB2c2Rfc2l6ZSk7CisKKwly ZXR1cm4gc2l6ZW9mKHN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrKSArIHZzZF9zaXplOworfQor Cit2b2lkIGVkaWRfZXh0X3NldF9jZWEoc3RydWN0IGVkaWRfZXh0ICpleHQsIHNpemVfdCBkYXRh X2Jsb2Nrc19zaXplLAorCQkgICAgICB1aW50OF90IGZsYWdzKQoreworCXN0cnVjdCBlZGlkX2Nl YSAqY2VhID0gJmV4dC0+ZGF0YS5jZWE7CiAKIAlleHQtPnRhZyA9IEVESURfRVhUX0NFQTsKIAog CWNlYS0+cmV2aXNpb24gPSAzOwotCWNlYS0+ZHRkX3N0YXJ0ID0gNCArIGRhdGFfYmxvY2tfc2l6 ZTsKLQljZWEtPm1pc2MgPSAxIDw8IDY7IC8qIGJhc2ljIGF1ZGlvLCBubyBEVEQgKi8KLQotCWFz c2VydChzYWRzX3NpemUgPD0gMHhGRik7Ci0JZGF0YV9ibG9jayA9IChzdHJ1Y3QgZWRpZF9jZWFf ZGF0YV9ibG9jayAqKSBjZWEtPmRhdGE7Ci0JZGF0YV9ibG9jay0+dHlwZV9sZW4gPSBFRElEX0NF QV9EQVRBX0FVRElPIDw8IDUgfCBzYWRzX3NpemU7Ci0JbWVtY3B5KGRhdGFfYmxvY2stPmRhdGEu c2Fkcywgc2Fkcywgc2Fkc19zaXplKTsKKwljZWEtPmR0ZF9zdGFydCA9IDQgKyBkYXRhX2Jsb2Nr c19zaXplOworCWNlYS0+bWlzYyA9IGZsYWdzOyAvKiBqdXN0IGZsYWdzLCBubyBEVEQgKi8KIH0K IAogdm9pZCBlZGlkX2V4dF91cGRhdGVfY2VhX2NoZWNrc3VtKHN0cnVjdCBlZGlkX2V4dCAqZXh0 KQpkaWZmIC0tZ2l0IGEvbGliL2lndF9lZGlkLmggYi9saWIvaWd0X2VkaWQuaAppbmRleCAzNjY4 ZDczM2YwNmEuLjdlZGQ3ZTM4ZjQxZSAxMDA2NDQKLS0tIGEvbGliL2lndF9lZGlkLmgKKysrIGIv bGliL2lndF9lZGlkLmgKQEAgLTE4OSw2ICsxODksMTIgQEAgc3RydWN0IGNlYV9zYWQgewogCXVp bnQ4X3QgYml0cmF0ZTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKKy8qIFZlbmRvciBT cGVjaWZpYyBEYXRhICovCitzdHJ1Y3QgY2VhX3ZzZCB7CisJdWludDhfdCBpZWVlX291aVszXTsK KwljaGFyIGRhdGFbXTsKK307CisKIGVudW0gZWRpZF9jZWFfZGF0YV90eXBlIHsKIAlFRElEX0NF QV9EQVRBX0FVRElPID0gMSwKIAlFRElEX0NFQV9EQVRBX1ZJREVPID0gMiwKQEAgLTIwMCw5ICsy MDYsMTcgQEAgc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgewogCXVpbnQ4X3QgdHlwZV9sZW47 IC8qIHR5cGUgaXMgZnJvbSBlbnVtIGVkaWRfY2VhX2RhdGFfdHlwZSAqLwogCXVuaW9uIHsKIAkJ c3RydWN0IGNlYV9zYWQgc2Fkc1swXTsKKwkJc3RydWN0IGNlYV92c2QgdnNkc1swXTsKIAl9IGRh dGE7CiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogCitlbnVtIGVkaWRfY2VhX2ZsYWcgewor CUVESURfQ0VBX1lDQkNSNDIyID0gMSA8PCA0LAorCUVESURfQ0VBX1lDQkNSNDQ0ID0gMSA8PCA1 LAorCUVESURfQ0VBX0JBU0lDX0FVRElPID0gMSA8PCA2LAorCUVESURfQ0VBX1VOREVSU0NBTiA9 IDEgPDwgNywKK307CisKIHN0cnVjdCBlZGlkX2NlYSB7CiAJdWludDhfdCByZXZpc2lvbjsKIAl1 aW50OF90IGR0ZF9zdGFydDsKQEAgLTI3NSw4ICsyODksMTMgQEAgdm9pZCBkZXRhaWxlZF90aW1p bmdfc2V0X3N0cmluZyhzdHJ1Y3QgZGV0YWlsZWRfdGltaW5nICpkdCwKIAogdm9pZCBjZWFfc2Fk X2luaXRfcGNtKHN0cnVjdCBjZWFfc2FkICpzYWQsIGludCBjaGFubmVscywKIAkJICAgICAgdWlu dDhfdCBzYW1wbGluZ19yYXRlcywgdWludDhfdCBzYW1wbGVfc2l6ZXMpOwotdm9pZCBlZGlkX2V4 dF9zZXRfY2VhX3NhZChzdHJ1Y3QgZWRpZF9leHQgKmV4dCwgY29uc3Qgc3RydWN0IGNlYV9zYWQg KnNhZHMsCi0JCQkgIHNpemVfdCBzYWRzX2xlbik7CiB2b2lkIGVkaWRfZXh0X3VwZGF0ZV9jZWFf Y2hlY2tzdW0oc3RydWN0IGVkaWRfZXh0ICpleHQpOworY29uc3Qgc3RydWN0IGNlYV92c2QgKmNl YV92c2RfZ2V0X2hkbWlfZGVmYXVsdChzaXplX3QgKnNpemUpOworc2l6ZV90IGVkaWRfY2VhX2Rh dGFfYmxvY2tfc2V0X3NhZChzdHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayAqYmxvY2ssCisJCQkJ ICAgY29uc3Qgc3RydWN0IGNlYV9zYWQgKnNhZHMsIHNpemVfdCBzYWRzX2xlbik7CitzaXplX3Qg ZWRpZF9jZWFfZGF0YV9ibG9ja19zZXRfdnNkKHN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrICpi bG9jaywKKwkJCQkgICBjb25zdCBzdHJ1Y3QgY2VhX3ZzZCAqdnNkLCBzaXplX3QgdnNkX3NpemUp Owordm9pZCBlZGlkX2V4dF9zZXRfY2VhKHN0cnVjdCBlZGlkX2V4dCAqZXh0LCBzaXplX3QgZGF0 YV9ibG9ja3Nfc2l6ZSwKKwkJICAgICAgdWludDhfdCBmbGFncyk7CiAKICNlbmRpZgotLSAKMi4y MS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3Qt ZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=