From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 804CF89D8A for ; Tue, 2 Jul 2019 12:50:45 +0000 (UTC) From: Simon Ser Date: Tue, 2 Jul 2019 15:50:38 +0300 Message-Id: <20190702125038.21621-5-simon.ser@intel.com> In-Reply-To: <20190702125038.21621-1-simon.ser@intel.com> References: <20190702125038.21621-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 5/5] 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 Cc: martin.peres@intel.com List-ID: VGhlIG5ldyBFRElEIGhhcyBiZWVuIGJ5dGUtYnktYnl0ZSBjaGVja2VkIHRvIGJlIGV4YWN0bHkg dGhlIHNhbWUgYXMgYmVmb3JlLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJA aW50ZWwuY29tPgotLS0KIGxpYi9pZ3Rfa21zLmMgICAgICAgICAgICAgICB8IDEwNyArKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAg ICB8ICAgMiArLQogbGliL3Rlc3RzL2lndF9lZGlkLmMgICAgICAgIHwgICAxICsKIGxpYi90ZXN0 cy9pZ3RfaGRtaV9pbmplY3QuYyB8ICAgMSAtCiB0ZXN0cy9rbXNfaGRtaV9pbmplY3QuYyAgICAg fCAgIDkgKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCmluZGV4IDQ1 Yzc5YTM4MGRhZi4uNDQ0NjA1ZTRiMTEwIDEwMDY0NAotLS0gYS9saWIvaWd0X2ttcy5jCisrKyBi L2xpYi9pZ3Rfa21zLmMKQEAgLTI4NCw2ICsyODQsNjYgQEAgY29uc3QgdW5zaWduZWQgY2hhciAq aWd0X2ttc19nZXRfZHBfYXVkaW9fZWRpZCh2b2lkKQogCXJldHVybiByYXdfZWRpZDsKIH0KIAor c3RhdGljIGNvbnN0IHVpbnQ4X3QgZWRpZF80a19zdmRzW10gPSB7CisJMzIgfCBDRUFfU1ZEX05B VElWRSwgLyogMTA4MHAgQCAyNEh6IChuYXRpdmUpICovCisJNSwgICAgICAgICAgICAgICAgICAg LyogMTA4MGkgQCA2MEh6ICovCisJMjAsICAgICAgICAgICAgICAgICAgLyogMTA4MGkgQCA1MEh6 ICovCisJNCwgICAgICAgICAgICAgICAgICAgLyogNzIwcCBAIDYwSHogKi8KKwkxOSwgICAgICAg ICAgICAgICAgICAvKiA3MjBwIEAgNTBIeiAqLworfTsKKworY29uc3QgdW5zaWduZWQgY2hhciAq aWd0X2ttc19nZXRfNGtfZWRpZCh2b2lkKQoreworCXN0YXRpYyB1bnNpZ25lZCBjaGFyIHJhd19l ZGlkWzI1Nl07CisJc3RydWN0IGVkaWQgKmVkaWQ7CisJc3RydWN0IGVkaWRfZXh0ICplZGlkX2V4 dDsKKwlzdHJ1Y3QgZWRpZF9jZWEgKmVkaWRfY2VhOworCWNoYXIgKmNlYV9kYXRhOworCXN0cnVj dCBlZGlkX2NlYV9kYXRhX2Jsb2NrICpibG9jazsKKwljaGFyIHJhd19oZG1pW0hETUlfVlNEX01J Tl9TSVpFICsgNl0gPSB7MH07CisJc3RydWN0IGhkbWlfdnNkICpoZG1pOworCXNpemVfdCBjZWFf ZGF0YV9zaXplID0gMDsKKwlzaXplX3Qgc3Zkc19sZW47CisKKwkvKiBDcmVhdGUgYSBuZXcgRURJ RCBmcm9tIHRoZSBiYXNlIElHVCBFRElELCBhbmQgYWRkIGFuCisJICogZXh0ZW5zaW9uIHRoYXQg YWR2ZXJ0aXNlcyA0SyBzdXBwb3J0LiAqLworCWVkaWQgPSAoc3RydWN0IGVkaWQgKikgcmF3X2Vk aWQ7CisJbWVtY3B5KGVkaWQsIGlndF9rbXNfZ2V0X2Jhc2VfZWRpZCgpLCBzaXplb2Yoc3RydWN0 IGVkaWQpKTsKKwllZGlkLT5leHRlbnNpb25zX2xlbiA9IDE7CisJZWRpZF9leHQgPSAmZWRpZC0+ ZXh0ZW5zaW9uc1swXTsKKwllZGlkX2NlYSA9ICZlZGlkX2V4dC0+ZGF0YS5jZWE7CisJY2VhX2Rh dGEgPSBlZGlkX2NlYS0+ZGF0YTsKKworCS8qIFNob3J0IFZpZGVvIERlc2NyaXB0b3IgKi8KKwli bG9jayA9IChzdHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayAqKSAmY2VhX2RhdGFbY2VhX2RhdGFf c2l6ZV07CisJc3Zkc19sZW4gPSBzaXplb2YoZWRpZF80a19zdmRzKSAvIHNpemVvZihlZGlkXzRr X3N2ZHNbMF0pOworCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9ibG9ja19zZXRfc3Zk KGJsb2NrLCBlZGlkXzRrX3N2ZHMsCisJCQkJCQkgICAgIHN2ZHNfbGVuKTsKKworCS8qIFZlbmRv ciBTcGVjaWZpYyBEYXRhIGJsb2NrICovCisJaGRtaSA9IChzdHJ1Y3QgaGRtaV92c2QgKikgcmF3 X2hkbWk7CisJaGRtaS0+c3JjX3BoeV9hZGRyWzBdID0gMHgxMDsKKwloZG1pLT5zcmNfcGh5X2Fk ZHJbMV0gPSAweDAwOworCWhkbWktPmZsYWdzMSA9IDA7CisJaGRtaS0+bWF4X3RkbXNfY2xvY2sg PSAwOworCWhkbWktPmZsYWdzMiA9IEhETUlfVlNEX1ZJREVPX1BSRVNFTlQ7CisJaGRtaS0+ZGF0 YVswXSA9IDB4MDA7IC8qIEhETUkgdmlkZW8gZmxhZ3MgKi8KKwloZG1pLT5kYXRhWzFdID0gMSA8 PCA1OyAvKiAxIFZJQyBlbnRyeSwgMCAzRCBlbnRyaWVzICovCisJaGRtaS0+ZGF0YVsyXSA9IDB4 MDE7IC8qIDIxNjBwLCBzcGVjaWZpZWQgYXMgc2hvcnQgZGVzY3JpcHRvciAqLworCisJYmxvY2sg PSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9kYXRhW2NlYV9kYXRhX3NpemVd OworCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9ibG9ja19zZXRfaGRtaV92c2QoYmxv Y2ssIGhkbWksCisJCQkJCQkJICBzaXplb2YocmF3X2hkbWkpKTsKKworCWFzc2VydChjZWFfZGF0 YV9zaXplIDw9IHNpemVvZihlZGlkX2NlYS0+ZGF0YSkpOworCisJZWRpZF9leHRfc2V0X2NlYShl ZGlkX2V4dCwgY2VhX2RhdGFfc2l6ZSwgMCwgMCk7CisKKwllZGlkX3VwZGF0ZV9jaGVja3N1bShl ZGlkKTsKKwllZGlkX2V4dF91cGRhdGVfY2VhX2NoZWNrc3VtKGVkaWRfZXh0KTsKKwlyZXR1cm4g cmF3X2VkaWQ7Cit9CisKIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3RfcGxhbmVfcHJvcF9uYW1lc1tJ R1RfTlVNX1BMQU5FX1BST1BTXSA9IHsKIAlbSUdUX1BMQU5FX1NSQ19YXSA9ICJTUkNfWCIsCiAJ W0lHVF9QTEFORV9TUkNfWV0gPSAiU1JDX1kiLApAQCAtMTM0OCw4ICsxNDA4LDYgQEAgc3RydWN0 IGVkaWRfYmxvY2sgewogICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7CiB9OwogCi0jZGVmaW5lIERU RF9TVVBQT1JUU19BVURJTyAxPDw2Ci0KIHN0YXRpYyBzdHJ1Y3QgZWRpZF9ibG9jawogaW5pdF9j ZWFfYmxvY2soY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwKIAkgICAg ICAgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0aCwKQEAg LTE0MzcsNTEgKzE0OTUsNiBAQCB2b2lkIGttc3Rlc3RfZWRpZF9hZGRfM2QoY29uc3QgdW5zaWdu ZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwKIAl1cGRhdGVfZWRpZF9jc3VtKG5ld19lZGlk LmRhdGEsIGxlbmd0aCk7CiB9CiAKLS8qKgotICoga21zdGVzdF9lZGlkX2FkZF80azoKLSAqIEBl ZGlkOiBhbiBleGlzdGluZyB2YWxpZCBlZGlkIGJsb2NrCi0gKiBAbGVuZ3RoOiBsZW5ndGggb2Yg QGVkaWQKLSAqIEBuZXdfZWRpZF9wdHI6IHBvaW50ZXIgdG8gd2hlcmUgdGhlIG5ldyBlZGlkIHdp bGwgYmUgcGxhY2VkCi0gKiBAbmV3X2xlbmd0aDogcG9pbnRlciB0byB0aGUgc2l6ZSBvZiB0aGUg bmV3IGVkaWQKLSAqCi0gKiBNYWtlcyBhIGNvcHkgb2YgYW4gZXhpc3RpbmcgZWRpZCBibG9jayBh bmQgYWRkcyBhbiBleHRlbnNpb24gaW5kaWNhdGluZwotICogYSBIRE1JIDRLIG1vZGUgaW4gdnNk Yi4KLSAqLwotdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzRrKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVk aWQsIHNpemVfdCBsZW5ndGgsCi0JCQkgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNp emVfdCAqbmV3X2xlbmd0aCkKLXsKLQljaGFyIHZzZGJfYmxvY2tfbGVuID0gMTI7Ci0Jc3RydWN0 IGVkaWRfYmxvY2sgbmV3X2VkaWQgPSBpbml0X2NlYV9ibG9jayhlZGlkLCBsZW5ndGgsIG5ld19l ZGlkX3B0ciwKLQkJCQkJCSAgICBuZXdfbGVuZ3RoLCB2c2RiX2Jsb2NrX2xlbiwKLQkJCQkJCSAg ICAwKTsKLQlpbnQgcG9zID0gbmV3X2VkaWQucG9zOwotCi0JLyogdnNkYiBibG9jayAoIGlkIHwg bGVuZ3RoICkgKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDMgPDwgNSB8ICh2c2RiX2Jsb2Nr X2xlbiAtIDEpOwotCS8qIHJlZ2lzdHJhdGlvbiBpZCAqLwotCW5ld19lZGlkLmRhdGFbcG9zKytd ID0gMHgzOwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHhjOwotCW5ld19lZGlkLmRhdGFbcG9z KytdID0gMHgwOwotCS8qIHNvdXJjZSBwaHlzaWNhbCBhZGRyZXNzICovCi0JbmV3X2VkaWQuZGF0 YVtwb3MrK10gPSAweDEwOwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMDsKLQkvKiBTdXBw b3J0c19BSSAuLi4gZXRjICovCi0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDAwOwotCS8qIE1h eCBUTURTIENsb2NrICovCi0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDAwOwotCS8qIExhdGVu Y3kgcHJlc2VudCwgSERNSSBWaWRlbyBQcmVzZW50ICovCi0JbmV3X2VkaWQuZGF0YVtwb3MrK10g PSAweDIwOwotCS8qIEhETUkgVmlkZW8gKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDA7 IC8qIDNEIHByZXNlbnQgKi8KLQotCS8qIEhETUkgTU9ERSBMRU4gLS0gaG93IG1hbnkgZW50cmll cyAqLwotCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgyMDsKLQkvKiAyMTYwcCwgc3BlY2lmaWVk IGFzIHNob3J0IGRlc2NyaXB0b3IgKi8KLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDE7Ci0K LQl1cGRhdGVfZWRpZF9jc3VtKG5ld19lZGlkLmRhdGEsIGxlbmd0aCk7Ci19Ci0KIC8qKgogICog a21zdGVzdF91bnNldF9hbGxfY3J0Y3M6CiAgKiBAZHJtX2ZkOiB0aGUgRFJNIGZkCmRpZmYgLS1n aXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAppbmRleCBmNzI1MDg2NDA3MTIuLjIw MzcxOTg3OGQ4NiAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9saWIvaWd0X2ttcy5o CkBAIC0xOTUsNyArMTk1LDYgQEAgZW51bSBpbnRlbF9icm9hZGNhc3RfcmdiX21vZGUgewogYm9v bCBrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3RvcihpbnQgZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5l Y3RvciwKIAkJCSAgICAgZW51bSBrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcl9zdGF0ZSBzdGF0ZSk7 CiB2b2lkIGttc3Rlc3RfZWRpZF9hZGRfM2QoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6 ZV90IGxlbmd0aCwgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xl bmd0aCk7Ci12b2lkIGttc3Rlc3RfZWRpZF9hZGRfNGsoY29uc3QgdW5zaWduZWQgY2hhciAqZWRp ZCwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAq bmV3X2xlbmd0aCk7CiB2b2lkIGttc3Rlc3RfZm9yY2VfZWRpZChpbnQgZHJtX2ZkLCBkcm1Nb2Rl Q29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQljb25zdCB1bnNpZ25lZCBjaGFyICplZGlkKTsKIApA QCAtNzYzLDYgKzc2Miw3IEBAIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0X2Jhc2Vf ZWRpZCh2b2lkKTsKIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0X2FsdF9lZGlkKHZv aWQpOwogY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkKHZv aWQpOwogY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfZHBfYXVkaW9fZWRpZCh2b2lk KTsKK2NvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0XzRrX2VkaWQodm9pZCk7CiAKIHN0 cnVjdCB1ZGV2X21vbml0b3IgKmlndF93YXRjaF9ob3RwbHVnKHZvaWQpOwogYm9vbCBpZ3RfaG90 cGx1Z19kZXRlY3RlZChzdHJ1Y3QgdWRldl9tb25pdG9yICptb24sCmRpZmYgLS1naXQgYS9saWIv dGVzdHMvaWd0X2VkaWQuYyBiL2xpYi90ZXN0cy9pZ3RfZWRpZC5jCmluZGV4IGE4NDdkZjI3MjUy NS4uMWE3OGIzOGE5NDViIDEwMDY0NAotLS0gYS9saWIvdGVzdHMvaWd0X2VkaWQuYworKysgYi9s aWIvdGVzdHMvaWd0X2VkaWQuYwpAQCAtNzYsNiArNzYsNyBAQCBpZ3Rfc2ltcGxlX21haW4KIAkJ eyAiYmFzZSIsIGlndF9rbXNfZ2V0X2Jhc2VfZWRpZCwgMCB9LAogCQl7ICJhbHQiLCBpZ3Rfa21z X2dldF9hbHRfZWRpZCwgMCB9LAogCQl7ICJoZG1pX2F1ZGlvIiwgaWd0X2ttc19nZXRfaGRtaV9h dWRpb19lZGlkLCAxIH0sCisJCXsgIjRrIiwgaWd0X2ttc19nZXRfNGtfZWRpZCwgMSB9LAogCQl7 MH0sCiAJfSwgKmY7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZDsKZGlmZiAtLWdpdCBhL2xp Yi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYyBiL2xpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYwpp bmRleCAyNTM0YjFhMjNhY2IuLmM3MGMzMTk1Y2IxZCAxMDA2NDQKLS0tIGEvbGliL3Rlc3RzL2ln dF9oZG1pX2luamVjdC5jCisrKyBiL2xpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYwpAQCAtNzIs NyArNzIsNiBAQCBpZ3Rfc2ltcGxlX21haW4KIAkJaGRtaV9pbmplY3RfZnVuYyBpbmplY3Q7CiAJ fSBmdW5jc1tdID0gewogCQl7ICIzRCIsIGttc3Rlc3RfZWRpZF9hZGRfM2QgfSwKLQkJeyAiNGsi LCBrbXN0ZXN0X2VkaWRfYWRkXzRrIH0sCiAJCXsgTlVMTCwgTlVMTCB9LAogCX0sICpmOwogCmRp ZmYgLS1naXQgYS90ZXN0cy9rbXNfaGRtaV9pbmplY3QuYyBiL3Rlc3RzL2ttc19oZG1pX2luamVj dC5jCmluZGV4IDlhOTY4ZmE5ZTUwZS4uNjAxOThmNTI5ODE3IDEwMDY0NAotLS0gYS90ZXN0cy9r bXNfaGRtaV9pbmplY3QuYworKysgYi90ZXN0cy9rbXNfaGRtaV9pbmplY3QuYwpAQCAtNzYsOCAr NzYsNyBAQCBnZXRfY29ubmVjdG9yKGludCBkcm1fZmQsIGRybU1vZGVSZXMgKnJlcykKIHN0YXRp YyB2b2lkCiBoZG1pX2luamVjdF80ayhpbnQgZHJtX2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25u ZWN0b3IpCiB7Ci0JdW5zaWduZWQgY2hhciAqZWRpZDsKLQlzaXplX3QgbGVuZ3RoOworCWNvbnN0 IHVuc2lnbmVkIGNoYXIgKmVkaWQ7CiAJc3RydWN0IGttc3Rlc3RfY29ubmVjdG9yX2NvbmZpZyBj b25maWc7CiAJaW50IHJldCwgY2lkLCBpLCBjcnRjX21hc2sgPSAtMTsKIAlpbnQgZmJfaWQ7CkBA IC05MCw5ICs4OSw3IEBAIGhkbWlfaW5qZWN0XzRrKGludCBkcm1fZmQsIGRybU1vZGVDb25uZWN0 b3IgKmNvbm5lY3RvcikKIAkvKiA0SyByZXF1aXJlcyBhdCBsZWFzdCBIU1cgKi8KIAlpZ3RfcmVx dWlyZShJU19IQVNXRUxMKGRldmlkKSB8fCBpbnRlbF9nZW4oZGV2aWQpID49IDgpOwogCi0Ja21z dGVzdF9lZGlkX2FkZF80ayhpZ3Rfa21zX2dldF9iYXNlX2VkaWQoKSwgRURJRF9MRU5HVEgsICZl ZGlkLAotCQkJICAgICZsZW5ndGgpOwotCisJZWRpZCA9IGlndF9rbXNfZ2V0XzRrX2VkaWQoKTsK IAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IsIGVkaWQpOwogCiAJaWYgKCFr bXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcihkcm1fZmQsIGNvbm5lY3RvciwgRk9SQ0VfQ09OTkVDVE9S X09OKSkKQEAgLTEzNSw4ICsxMzIsNiBAQCBoZG1pX2luamVjdF80ayhpbnQgZHJtX2ZkLCBkcm1N b2RlQ29ubmVjdG9yICpjb25uZWN0b3IpCiAKIAlrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcihkcm1f ZmQsIGNvbm5lY3RvciwgRk9SQ0VfQ09OTkVDVE9SX1VOU1BFQ0lGSUVEKTsKIAlrbXN0ZXN0X2Zv cmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IsIE5VTEwpOwotCi0JZnJlZShlZGlkKTsKIH0KIAog c3RhdGljIHZvaWQKLS0gCjIuMjIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p Z3QtZGV2