From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A22B6E128 for ; Wed, 3 Jul 2019 12:02:40 +0000 (UTC) From: Simon Ser Date: Wed, 3 Jul 2019 15:02:26 +0300 Message-Id: <20190703120226.24693-6-simon.ser@intel.com> In-Reply-To: <20190703120226.24693-1-simon.ser@intel.com> References: <20190703120226.24693-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 6/6] lib/igt_kms: use igt_edid to generate a 4K EDID 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: VGhlIG5ldyBFRElEIGhhcyBiZWVuIGJ5dGUtYnktYnl0ZSBjaGVja2VkIHRvIGJlIGV4YWN0bHkg dGhlIHNhbWUgYXMgYmVmb3JlLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJA aW50ZWwuY29tPgotLS0KIGxpYi9pZ3Rfa21zLmMgICAgICAgICAgICAgICB8IDEwNyArKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAg ICB8ICAgMiArLQogbGliL3Rlc3RzL2lndF9lZGlkLmMgICAgICAgIHwgICAxICsKIGxpYi90ZXN0 cy9pZ3RfaGRtaV9pbmplY3QuYyB8ICAgMSAtCiB0ZXN0cy9rbXNfaGRtaV9pbmplY3QuYyAgICAg fCAgIDkgKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCmluZGV4IDQy NGM4MzE1OWM3OC4uMTlkOGFjYWM4ZDc3IDEwMDY0NAotLS0gYS9saWIvaWd0X2ttcy5jCisrKyBi L2xpYi9pZ3Rfa21zLmMKQEAgLTI4NCw2ICsyODQsNjYgQEAgY29uc3QgdW5zaWduZWQgY2hhciAq aWd0X2ttc19nZXRfZHBfYXVkaW9fZWRpZCh2b2lkKQogCXJldHVybiByYXdfZWRpZDsKIH0KIAor c3RhdGljIGNvbnN0IHVpbnQ4X3QgZWRpZF80a19zdmRzW10gPSB7CisJMzIgfCBDRUFfU1ZEX05B VElWRSwgLyogMTA4MHAgQCAyNEh6IChuYXRpdmUpICovCisJNSwgICAgICAgICAgICAgICAgICAg LyogMTA4MGkgQCA2MEh6ICovCisJMjAsICAgICAgICAgICAgICAgICAgLyogMTA4MGkgQCA1MEh6 ICovCisJNCwgICAgICAgICAgICAgICAgICAgLyogNzIwcCBAIDYwSHogKi8KKwkxOSwgICAgICAg ICAgICAgICAgICAvKiA3MjBwIEAgNTBIeiAqLworfTsKKworY29uc3QgdW5zaWduZWQgY2hhciAq aWd0X2ttc19nZXRfNGtfZWRpZCh2b2lkKQoreworCXN0YXRpYyB1bnNpZ25lZCBjaGFyIHJhd19l ZGlkWzI1Nl07CisJc3RydWN0IGVkaWQgKmVkaWQ7CisJc3RydWN0IGVkaWRfZXh0ICplZGlkX2V4 dDsKKwlzdHJ1Y3QgZWRpZF9jZWEgKmVkaWRfY2VhOworCWNoYXIgKmNlYV9kYXRhOworCXN0cnVj dCBlZGlkX2NlYV9kYXRhX2Jsb2NrICpibG9jazsKKwkvKiBXZSdsbCBhZGQgNiBleHRlbnNpb24g ZmllbGRzIHRvIHRoZSBIRE1JIFZTREIuICovCisJY2hhciByYXdfaGRtaVtIRE1JX1ZTREJfTUlO X1NJWkUgKyA2XSA9IHswfTsKKwlzdHJ1Y3QgaGRtaV92c2RiICpoZG1pOworCXNpemVfdCBjZWFf ZGF0YV9zaXplID0gMDsKKworCS8qIENyZWF0ZSBhIG5ldyBFRElEIGZyb20gdGhlIGJhc2UgSUdU IEVESUQsIGFuZCBhZGQgYW4KKwkgKiBleHRlbnNpb24gdGhhdCBhZHZlcnRpc2VzIDRLIHN1cHBv cnQuICovCisJZWRpZCA9IChzdHJ1Y3QgZWRpZCAqKSByYXdfZWRpZDsKKwltZW1jcHkoZWRpZCwg aWd0X2ttc19nZXRfYmFzZV9lZGlkKCksIHNpemVvZihzdHJ1Y3QgZWRpZCkpOworCWVkaWQtPmV4 dGVuc2lvbnNfbGVuID0gMTsKKwllZGlkX2V4dCA9ICZlZGlkLT5leHRlbnNpb25zWzBdOworCWVk aWRfY2VhID0gJmVkaWRfZXh0LT5kYXRhLmNlYTsKKwljZWFfZGF0YSA9IGVkaWRfY2VhLT5kYXRh OworCisJLyogU2hvcnQgVmlkZW8gRGVzY3JpcHRvciAqLworCWJsb2NrID0gKHN0cnVjdCBlZGlk X2NlYV9kYXRhX2Jsb2NrICopICZjZWFfZGF0YVtjZWFfZGF0YV9zaXplXTsKKwljZWFfZGF0YV9z aXplICs9IGVkaWRfY2VhX2RhdGFfYmxvY2tfc2V0X3N2ZChibG9jaywgZWRpZF80a19zdmRzLAor CQkJCQkJICAgICBzaXplb2YoZWRpZF80a19zdmRzKSk7CisKKwkvKiBWZW5kb3ItU3BlY2lmaWMg RGF0YSBCbG9jayAqLworCWhkbWkgPSAoc3RydWN0IGhkbWlfdnNkYiAqKSByYXdfaGRtaTsKKwlo ZG1pLT5zcmNfcGh5X2FkZHJbMF0gPSAweDEwOworCWhkbWktPnNyY19waHlfYWRkclsxXSA9IDB4 MDA7CisJLyogNiBleHRlbnNpb24gZmllbGRzICovCisJaGRtaS0+ZmxhZ3MxID0gMDsKKwloZG1p LT5tYXhfdGRtc19jbG9jayA9IDA7CisJaGRtaS0+ZmxhZ3MyID0gSERNSV9WU0RCX1ZJREVPX1BS RVNFTlQ7CisJaGRtaS0+ZGF0YVswXSA9IDB4MDA7IC8qIEhETUkgdmlkZW8gZmxhZ3MgKi8KKwlo ZG1pLT5kYXRhWzFdID0gMSA8PCA1OyAvKiAxIFZJQyBlbnRyeSwgMCAzRCBlbnRyaWVzICovCisJ aGRtaS0+ZGF0YVsyXSA9IDB4MDE7IC8qIDIxNjBwLCBzcGVjaWZpZWQgYXMgc2hvcnQgZGVzY3Jp cHRvciAqLworCisJYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9k YXRhW2NlYV9kYXRhX3NpemVdOworCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9ibG9j a19zZXRfaGRtaV92c2RiKGJsb2NrLCBoZG1pLAorCQkJCQkJCSAgIHNpemVvZihyYXdfaGRtaSkp OworCisJYXNzZXJ0KGNlYV9kYXRhX3NpemUgPD0gc2l6ZW9mKGVkaWRfY2VhLT5kYXRhKSk7CisK KwllZGlkX2V4dF9zZXRfY2VhKGVkaWRfZXh0LCBjZWFfZGF0YV9zaXplLCAwLCAwKTsKKworCWVk aWRfdXBkYXRlX2NoZWNrc3VtKGVkaWQpOworCWVkaWRfZXh0X3VwZGF0ZV9jZWFfY2hlY2tzdW0o ZWRpZF9leHQpOworCXJldHVybiByYXdfZWRpZDsKK30KKwogY29uc3QgY2hhciAqIGNvbnN0IGln dF9wbGFuZV9wcm9wX25hbWVzW0lHVF9OVU1fUExBTkVfUFJPUFNdID0gewogCVtJR1RfUExBTkVf U1JDX1hdID0gIlNSQ19YIiwKIAlbSUdUX1BMQU5FX1NSQ19ZXSA9ICJTUkNfWSIsCkBAIC0xMzQ2 LDggKzE0MDYsNiBAQCBzdHJ1Y3QgZWRpZF9ibG9jayB7CiAgICAgdW5zaWduZWQgY2hhciAqZGF0 YTsKIH07CiAKLSNkZWZpbmUgRFREX1NVUFBPUlRTX0FVRElPIDE8PDYKLQogc3RhdGljIHN0cnVj dCBlZGlkX2Jsb2NrCiBpbml0X2NlYV9ibG9jayhjb25zdCB1bnNpZ25lZCBjaGFyICplZGlkLCBz aXplX3QgbGVuZ3RoLAogCSAgICAgICB1bnNpZ25lZCBjaGFyICpuZXdfZWRpZF9wdHJbXSwgc2l6 ZV90ICpuZXdfbGVuZ3RoLApAQCAtMTQzNSw1MSArMTQ5Myw2IEBAIHZvaWQga21zdGVzdF9lZGlk X2FkZF8zZChjb25zdCB1bnNpZ25lZCBjaGFyICplZGlkLCBzaXplX3QgbGVuZ3RoLAogCXVwZGF0 ZV9lZGlkX2NzdW0obmV3X2VkaWQuZGF0YSwgbGVuZ3RoKTsKIH0KIAotLyoqCi0gKiBrbXN0ZXN0 X2VkaWRfYWRkXzRrOgotICogQGVkaWQ6IGFuIGV4aXN0aW5nIHZhbGlkIGVkaWQgYmxvY2sKLSAq IEBsZW5ndGg6IGxlbmd0aCBvZiBAZWRpZAotICogQG5ld19lZGlkX3B0cjogcG9pbnRlciB0byB3 aGVyZSB0aGUgbmV3IGVkaWQgd2lsbCBiZSBwbGFjZWQKLSAqIEBuZXdfbGVuZ3RoOiBwb2ludGVy IHRvIHRoZSBzaXplIG9mIHRoZSBuZXcgZWRpZAotICoKLSAqIE1ha2VzIGEgY29weSBvZiBhbiBl eGlzdGluZyBlZGlkIGJsb2NrIGFuZCBhZGRzIGFuIGV4dGVuc2lvbiBpbmRpY2F0aW5nCi0gKiBh IEhETUkgNEsgbW9kZSBpbiB2c2RiLgotICovCi12b2lkIGttc3Rlc3RfZWRpZF9hZGRfNGsoY29u c3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwKLQkJCSB1bnNpZ25lZCBjaGFy ICpuZXdfZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdfbGVuZ3RoKQotewotCWNoYXIgdnNkYl9ibG9j a19sZW4gPSAxMjsKLQlzdHJ1Y3QgZWRpZF9ibG9jayBuZXdfZWRpZCA9IGluaXRfY2VhX2Jsb2Nr KGVkaWQsIGxlbmd0aCwgbmV3X2VkaWRfcHRyLAotCQkJCQkJICAgIG5ld19sZW5ndGgsIHZzZGJf YmxvY2tfbGVuLAotCQkJCQkJICAgIDApOwotCWludCBwb3MgPSBuZXdfZWRpZC5wb3M7Ci0KLQkv KiB2c2RiIGJsb2NrICggaWQgfCBsZW5ndGggKSAqLwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0g MyA8PCA1IHwgKHZzZGJfYmxvY2tfbGVuIC0gMSk7Ci0JLyogcmVnaXN0cmF0aW9uIGlkICovCi0J bmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDM7Ci0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweGM7 Ci0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDA7Ci0JLyogc291cmNlIHBoeXNpY2FsIGFkZHJl c3MgKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MTA7Ci0JbmV3X2VkaWQuZGF0YVtwb3Mr K10gPSAweDAwOwotCS8qIFN1cHBvcnRzX0FJIC4uLiBldGMgKi8KLQluZXdfZWRpZC5kYXRhW3Bv cysrXSA9IDB4MDA7Ci0JLyogTWF4IFRNRFMgQ2xvY2sgKi8KLQluZXdfZWRpZC5kYXRhW3Bvcysr XSA9IDB4MDA7Ci0JLyogTGF0ZW5jeSBwcmVzZW50LCBIRE1JIFZpZGVvIFByZXNlbnQgKi8KLQlu ZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MjA7Ci0JLyogSERNSSBWaWRlbyAqLwotCW5ld19lZGlk LmRhdGFbcG9zKytdID0gMHgwMDsgLyogM0QgcHJlc2VudCAqLwotCi0JLyogSERNSSBNT0RFIExF TiAtLSBob3cgbWFueSBlbnRyaWVzICovCi0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDIwOwot CS8qIDIxNjBwLCBzcGVjaWZpZWQgYXMgc2hvcnQgZGVzY3JpcHRvciAqLwotCW5ld19lZGlkLmRh dGFbcG9zKytdID0gMHgwMTsKLQotCXVwZGF0ZV9lZGlkX2NzdW0obmV3X2VkaWQuZGF0YSwgbGVu Z3RoKTsKLX0KLQogLyoqCiAgKiBrbXN0ZXN0X3Vuc2V0X2FsbF9jcnRjczoKICAqIEBkcm1fZmQ6 IHRoZSBEUk0gZmQKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCmlu ZGV4IGY3MjUwODY0MDcxMi4uMjAzNzE5ODc4ZDg2IDEwMDY0NAotLS0gYS9saWIvaWd0X2ttcy5o CisrKyBiL2xpYi9pZ3Rfa21zLmgKQEAgLTE5NSw3ICsxOTUsNiBAQCBlbnVtIGludGVsX2Jyb2Fk Y2FzdF9yZ2JfbW9kZSB7CiBib29sIGttc3Rlc3RfZm9yY2VfY29ubmVjdG9yKGludCBmZCwgZHJt TW9kZUNvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJICAgICBlbnVtIGttc3Rlc3RfZm9yY2VfY29u bmVjdG9yX3N0YXRlIHN0YXRlKTsKIHZvaWQga21zdGVzdF9lZGlkX2FkZF8zZChjb25zdCB1bnNp Z25lZCBjaGFyICplZGlkLCBzaXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBjaGFyICpuZXdfZWRpZF9w dHJbXSwgc2l6ZV90ICpuZXdfbGVuZ3RoKTsKLXZvaWQga21zdGVzdF9lZGlkX2FkZF80ayhjb25z dCB1bnNpZ25lZCBjaGFyICplZGlkLCBzaXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBjaGFyICpuZXdf ZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdfbGVuZ3RoKTsKIHZvaWQga21zdGVzdF9mb3JjZV9lZGlk KGludCBkcm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCWNvbnN0IHVuc2ln bmVkIGNoYXIgKmVkaWQpOwogCkBAIC03NjMsNiArNzYyLDcgQEAgY29uc3QgdW5zaWduZWQgY2hh ciAqaWd0X2ttc19nZXRfYmFzZV9lZGlkKHZvaWQpOwogY29uc3QgdW5zaWduZWQgY2hhciAqaWd0 X2ttc19nZXRfYWx0X2VkaWQodm9pZCk7CiBjb25zdCB1bnNpZ25lZCBjaGFyICppZ3Rfa21zX2dl dF9oZG1pX2F1ZGlvX2VkaWQodm9pZCk7CiBjb25zdCB1bnNpZ25lZCBjaGFyICppZ3Rfa21zX2dl dF9kcF9hdWRpb19lZGlkKHZvaWQpOworY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRf NGtfZWRpZCh2b2lkKTsKIAogc3RydWN0IHVkZXZfbW9uaXRvciAqaWd0X3dhdGNoX2hvdHBsdWco dm9pZCk7CiBib29sIGlndF9ob3RwbHVnX2RldGVjdGVkKHN0cnVjdCB1ZGV2X21vbml0b3IgKm1v biwKZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9pZ3RfZWRpZC5jIGIvbGliL3Rlc3RzL2lndF9lZGlk LmMKaW5kZXggYTg0N2RmMjcyNTI1Li4xYTc4YjM4YTk0NWIgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0 cy9pZ3RfZWRpZC5jCisrKyBiL2xpYi90ZXN0cy9pZ3RfZWRpZC5jCkBAIC03Niw2ICs3Niw3IEBA IGlndF9zaW1wbGVfbWFpbgogCQl7ICJiYXNlIiwgaWd0X2ttc19nZXRfYmFzZV9lZGlkLCAwIH0s CiAJCXsgImFsdCIsIGlndF9rbXNfZ2V0X2FsdF9lZGlkLCAwIH0sCiAJCXsgImhkbWlfYXVkaW8i LCBpZ3Rfa21zX2dldF9oZG1pX2F1ZGlvX2VkaWQsIDEgfSwKKwkJeyAiNGsiLCBpZ3Rfa21zX2dl dF80a19lZGlkLCAxIH0sCiAJCXswfSwKIAl9LCAqZjsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpl ZGlkOwpkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL2lndF9oZG1pX2luamVjdC5jIGIvbGliL3Rlc3Rz L2lndF9oZG1pX2luamVjdC5jCmluZGV4IDI1MzRiMWEyM2FjYi4uYzcwYzMxOTVjYjFkIDEwMDY0 NAotLS0gYS9saWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMKKysrIGIvbGliL3Rlc3RzL2lndF9o ZG1pX2luamVjdC5jCkBAIC03Miw3ICs3Miw2IEBAIGlndF9zaW1wbGVfbWFpbgogCQloZG1pX2lu amVjdF9mdW5jIGluamVjdDsKIAl9IGZ1bmNzW10gPSB7CiAJCXsgIjNEIiwga21zdGVzdF9lZGlk X2FkZF8zZCB9LAotCQl7ICI0ayIsIGttc3Rlc3RfZWRpZF9hZGRfNGsgfSwKIAkJeyBOVUxMLCBO VUxMIH0sCiAJfSwgKmY7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jIGIv dGVzdHMva21zX2hkbWlfaW5qZWN0LmMKaW5kZXggOWE5NjhmYTllNTBlLi42MDE5OGY1Mjk4MTcg MTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jCisrKyBiL3Rlc3RzL2ttc19oZG1p X2luamVjdC5jCkBAIC03Niw4ICs3Niw3IEBAIGdldF9jb25uZWN0b3IoaW50IGRybV9mZCwgZHJt TW9kZVJlcyAqcmVzKQogc3RhdGljIHZvaWQKIGhkbWlfaW5qZWN0XzRrKGludCBkcm1fZmQsIGRy bU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQl1bnNpZ25lZCBjaGFyICplZGlkOwotCXNp emVfdCBsZW5ndGg7CisJY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZDsKIAlzdHJ1Y3Qga21zdGVz dF9jb25uZWN0b3JfY29uZmlnIGNvbmZpZzsKIAlpbnQgcmV0LCBjaWQsIGksIGNydGNfbWFzayA9 IC0xOwogCWludCBmYl9pZDsKQEAgLTkwLDkgKzg5LDcgQEAgaGRtaV9pbmplY3RfNGsoaW50IGRy bV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yKQogCS8qIDRLIHJlcXVpcmVzIGF0IGxl YXN0IEhTVyAqLwogCWlndF9yZXF1aXJlKElTX0hBU1dFTEwoZGV2aWQpIHx8IGludGVsX2dlbihk ZXZpZCkgPj0gOCk7CiAKLQlrbXN0ZXN0X2VkaWRfYWRkXzRrKGlndF9rbXNfZ2V0X2Jhc2VfZWRp ZCgpLCBFRElEX0xFTkdUSCwgJmVkaWQsCi0JCQkgICAgJmxlbmd0aCk7Ci0KKwllZGlkID0gaWd0 X2ttc19nZXRfNGtfZWRpZCgpOwogCWttc3Rlc3RfZm9yY2VfZWRpZChkcm1fZmQsIGNvbm5lY3Rv ciwgZWRpZCk7CiAKIAlpZiAoIWttc3Rlc3RfZm9yY2VfY29ubmVjdG9yKGRybV9mZCwgY29ubmVj dG9yLCBGT1JDRV9DT05ORUNUT1JfT04pKQpAQCAtMTM1LDggKzEzMiw2IEBAIGhkbWlfaW5qZWN0 XzRrKGludCBkcm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKIAogCWttc3Rlc3Rf Zm9yY2VfY29ubmVjdG9yKGRybV9mZCwgY29ubmVjdG9yLCBGT1JDRV9DT05ORUNUT1JfVU5TUEVD SUZJRUQpOwogCWttc3Rlc3RfZm9yY2VfZWRpZChkcm1fZmQsIGNvbm5lY3RvciwgTlVMTCk7Ci0K LQlmcmVlKGVkaWQpOwogfQogCiBzdGF0aWMgdm9pZAotLSAKMi4yMi4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdApp Z3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=