From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1241B892E3 for ; Thu, 6 Jun 2019 10:45:43 +0000 (UTC) From: Simon Ser Date: Thu, 6 Jun 2019 13:45:44 +0300 Message-Id: <20190606104544.18693-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2] lib/igt_kms: generate an EDID suitable for DP audio 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: UHJpb3IgdG8gdGhpcyBjb21taXQsIHdlIHdlcmUgdXNpbmcgdGhlIENoYW1lbGl1bSdzIGRlZmF1 bHQgRURJRCBmb3IgRFAgYXVkaW8uClRoaXMgcmVsaWVzIG9uIHRoZSBmYWN0IHRoYXQgdGhpcyBF RElEIHN1cHBvcnRzIGF1ZGlvIGFuZCBoYXMgY29ycmVjdCBhdWRpbwpwYXJlbWV0ZXJzIGZvciBv dXIgdGVzdGluZy4KCkdlbmVyYXRpbmcgb3VyIG93biBFRElEIGlzIGxlc3MgZXJyb3ItcHJvbmUg YW5kIHdpbGwgYWxsb3cgdXMgdG8gdGVzdCBkaWZmZXJlbnQKYXVkaW8gcGFyYW1ldGVycy4KCnYy OgotIFJlcGxhY2Uge0hETUksRFB9X0FVRElPX0VESURfTEVOR1RIIHdpdGggQVVESU9fRURJRF9M RU5HVEggKEFyZWspCi0gRG9uJ3QgaGFyZGNvZGUgRURJRHMgYXJyYXkgbGVuZ3RoIChBcmVrKQoK U2lnbmVkLW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwuY29tPgotLS0KIGxpYi9p Z3Rfa21zLmMgICAgICAgICAgIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0KIGxpYi9pZ3Rfa21zLmggICAgICAgICAgIHwgIDMgKystCiB0ZXN0cy9rbXNfY2hh bWVsaXVtLmMgICB8IDEwICsrKysrKy0tLQogdGVzdHMva21zX2hkbWlfaW5qZWN0LmMgfCAgMiAr LQogNCBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwppbmRleCBkN2Q3MTFhNzJk MjcuLjAxMWIwNjQ1NzlhOCAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuYworKysgYi9saWIvaWd0 X2ttcy5jCkBAIC0xODMsOSArMTgzLDkgQEAgY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19n ZXRfYWx0X2VkaWQodm9pZCkKIH0KCiBzdGF0aWMgdm9pZAotZ2VuZXJhdGVfaGRtaV9hdWRpb19l ZGlkKHVuc2lnbmVkIGNoYXIgcmF3X2VkaWRbc3RhdGljIEhETUlfQVVESU9fRURJRF9MRU5HVEhd LAotCQkJIHN0cnVjdCBjZWFfc2FkICpzYWQsCi0JCQkgc3RydWN0IGNlYV9zcGVha2VyX2FsbG9j ICpzcGVha2VyX2FsbG9jKQorZ2VuZXJhdGVfYXVkaW9fZWRpZCh1bnNpZ25lZCBjaGFyIHJhd19l ZGlkW3N0YXRpYyBBVURJT19FRElEX0xFTkdUSF0sCisJCSAgICBib29sIHdpdGhfdnNkLCBzdHJ1 Y3QgY2VhX3NhZCAqc2FkLAorCQkgICAgc3RydWN0IGNlYV9zcGVha2VyX2FsbG9jICpzcGVha2Vy X2FsbG9jKQogewogCXN0cnVjdCBlZGlkICplZGlkOwogCXN0cnVjdCBlZGlkX2V4dCAqZWRpZF9l eHQ7CkBAIC0yMTAsMTAgKzIxMCwxMiBAQCBnZW5lcmF0ZV9oZG1pX2F1ZGlvX2VkaWQodW5zaWdu ZWQgY2hhciByYXdfZWRpZFtzdGF0aWMgSERNSV9BVURJT19FRElEX0xFTkdUSF0sCiAJY2VhX2Rh dGFfc2l6ZSArPSBlZGlkX2NlYV9kYXRhX2Jsb2NrX3NldF9zYWQoYmxvY2ssIHNhZCwgMSk7Cgog CS8qIEEgVmVuZG9yIFNwZWNpZmljIERhdGEgYmxvY2sgaXMgbmVlZGVkIGZvciBIRE1JIGF1ZGlv ICovCi0JYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9kYXRhW2Nl YV9kYXRhX3NpemVdOwotCXZzZCA9IGNlYV92c2RfZ2V0X2hkbWlfZGVmYXVsdCgmdnNkX3NpemUp OwotCWNlYV9kYXRhX3NpemUgKz0gZWRpZF9jZWFfZGF0YV9ibG9ja19zZXRfdnNkKGJsb2NrLCB2 c2QsCi0JCQkJCQkgICAgIHZzZF9zaXplKTsKKwlpZiAod2l0aF92c2QpIHsKKwkJYmxvY2sgPSAo c3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9kYXRhW2NlYV9kYXRhX3NpemVdOwor CQl2c2QgPSBjZWFfdnNkX2dldF9oZG1pX2RlZmF1bHQoJnZzZF9zaXplKTsKKwkJY2VhX2RhdGFf c2l6ZSArPSBlZGlkX2NlYV9kYXRhX2Jsb2NrX3NldF92c2QoYmxvY2ssIHZzZCwKKwkJCQkJCQkg ICAgIHZzZF9zaXplKTsKKwl9CgogCS8qIFNwZWFrZXIgQWxsb2NhdGlvbiBEYXRhIGJsb2NrICov CiAJYmxvY2sgPSAoc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKikgJmNlYV9kYXRhW2NlYV9k YXRhX3NpemVdOwpAQCAtMjMzLDcgKzIzNSwzMyBAQCBjb25zdCB1bnNpZ25lZCBjaGFyICppZ3Rf a21zX2dldF9oZG1pX2F1ZGlvX2VkaWQodm9pZCkKIHsKIAlpbnQgY2hhbm5lbHM7CiAJdWludDhf dCBzYW1wbGluZ19yYXRlcywgc2FtcGxlX3NpemVzOwotCXN0YXRpYyB1bnNpZ25lZCBjaGFyIHJh d19lZGlkW0hETUlfQVVESU9fRURJRF9MRU5HVEhdID0gezB9OworCXN0YXRpYyB1bnNpZ25lZCBj aGFyIHJhd19lZGlkW0FVRElPX0VESURfTEVOR1RIXSA9IHswfTsKKwlzdHJ1Y3QgY2VhX3NhZCBz YWQgPSB7MH07CisJc3RydWN0IGNlYV9zcGVha2VyX2FsbG9jIHNwZWFrZXJfYWxsb2MgPSB7MH07 CisKKwkvKiBJbml0aWFsaXplIHRoZSBTaG9ydCBBdWRpbyBEZXNjcmlwdG9yIGZvciBQQ00gKi8K KwljaGFubmVscyA9IDI7CisJc2FtcGxpbmdfcmF0ZXMgPSBDRUFfU0FEX1NBTVBMSU5HX1JBVEVf MzJLSFogfAorCQkJIENFQV9TQURfU0FNUExJTkdfUkFURV80NEtIWiB8CisJCQkgQ0VBX1NBRF9T QU1QTElOR19SQVRFXzQ4S0haOworCXNhbXBsZV9zaXplcyA9IENFQV9TQURfU0FNUExFX1NJWkVf MTYgfAorCQkgICAgICAgQ0VBX1NBRF9TQU1QTEVfU0laRV8yMCB8CisJCSAgICAgICBDRUFfU0FE X1NBTVBMRV9TSVpFXzI0OworCWNlYV9zYWRfaW5pdF9wY20oJnNhZCwgY2hhbm5lbHMsIHNhbXBs aW5nX3JhdGVzLCBzYW1wbGVfc2l6ZXMpOworCisJLyogSW5pdGlhbGl6ZSB0aGUgU3BlYWtlciBB bGxvY2F0aW9uIERhdGEgKi8KKwlzcGVha2VyX2FsbG9jLnNwZWFrZXJzID0gQ0VBX1NQRUFLRVJf RlJPTlRfTEVGVF9SSUdIVF9DRU5URVI7CisKKwlnZW5lcmF0ZV9hdWRpb19lZGlkKHJhd19lZGlk LCB0cnVlLCAmc2FkLCAmc3BlYWtlcl9hbGxvYyk7CisKKwlyZXR1cm4gcmF3X2VkaWQ7Cit9CisK K2NvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0X2RwX2F1ZGlvX2VkaWQodm9pZCkKK3sK KwlpbnQgY2hhbm5lbHM7CisJdWludDhfdCBzYW1wbGluZ19yYXRlcywgc2FtcGxlX3NpemVzOwor CXN0YXRpYyB1bnNpZ25lZCBjaGFyIHJhd19lZGlkW0FVRElPX0VESURfTEVOR1RIXSA9IHswfTsK IAlzdHJ1Y3QgY2VhX3NhZCBzYWQgPSB7MH07CiAJc3RydWN0IGNlYV9zcGVha2VyX2FsbG9jIHNw ZWFrZXJfYWxsb2MgPSB7MH07CgpAQCAtMjUwLDcgKzI3OCw3IEBAIGNvbnN0IHVuc2lnbmVkIGNo YXIgKmlndF9rbXNfZ2V0X2hkbWlfYXVkaW9fZWRpZCh2b2lkKQogCS8qIEluaXRpYWxpemUgdGhl IFNwZWFrZXIgQWxsb2NhdGlvbiBEYXRhICovCiAJc3BlYWtlcl9hbGxvYy5zcGVha2VycyA9IENF QV9TUEVBS0VSX0ZST05UX0xFRlRfUklHSFRfQ0VOVEVSOwoKLQlnZW5lcmF0ZV9oZG1pX2F1ZGlv X2VkaWQocmF3X2VkaWQsICZzYWQsICZzcGVha2VyX2FsbG9jKTsKKwlnZW5lcmF0ZV9hdWRpb19l ZGlkKHJhd19lZGlkLCBmYWxzZSwgJnNhZCwgJnNwZWFrZXJfYWxsb2MpOwoKIAlyZXR1cm4gcmF3 X2VkaWQ7CiB9CmRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAppbmRl eCA0YWMyODEzMWI2ZDkuLjVkZjlmMThjMGJkMSAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAor KysgYi9saWIvaWd0X2ttcy5oCkBAIC03NTcsMTAgKzc1NywxMSBAQCBzdHJ1Y3QgY2VhX3NhZDsK IHN0cnVjdCBjZWFfc3BlYWtlcl9hbGxvYzsKCiAjZGVmaW5lIEVESURfTEVOR1RIIDEyOAotI2Rl ZmluZSBIRE1JX0FVRElPX0VESURfTEVOR1RIICgyICogRURJRF9MRU5HVEgpCisjZGVmaW5lIEFV RElPX0VESURfTEVOR1RIICgyICogRURJRF9MRU5HVEgpCiBjb25zdCB1bnNpZ25lZCBjaGFyICpp Z3Rfa21zX2dldF9iYXNlX2VkaWQodm9pZCk7CiBjb25zdCB1bnNpZ25lZCBjaGFyICppZ3Rfa21z X2dldF9hbHRfZWRpZCh2b2lkKTsKIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0X2hk bWlfYXVkaW9fZWRpZCh2b2lkKTsKK2NvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0X2Rw X2F1ZGlvX2VkaWQodm9pZCk7Cgogc3RydWN0IHVkZXZfbW9uaXRvciAqaWd0X3dhdGNoX2hvdHBs dWcodm9pZCk7CiBib29sIGlndF9ob3RwbHVnX2RldGVjdGVkKHN0cnVjdCB1ZGV2X21vbml0b3Ig Km1vbiwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jaGFtZWxpdW0uYyBiL3Rlc3RzL2ttc19jaGFt ZWxpdW0uYwppbmRleCA1MmUzZjA5NTM2MjEuLjNiZWVhMGM2MjNiZCAxMDA2NDQKLS0tIGEvdGVz dHMva21zX2NoYW1lbGl1bS5jCisrKyBiL3Rlc3RzL2ttc19jaGFtZWxpdW0uYwpAQCAtMzksNyAr MzksOSBAQCBlbnVtIHRlc3RfZWRpZCB7CiAJVEVTVF9FRElEX0JBU0UsCiAJVEVTVF9FRElEX0FM VCwKIAlURVNUX0VESURfSERNSV9BVURJTywKKwlURVNUX0VESURfRFBfQVVESU8sCiB9OworI2Rl ZmluZSBURVNUX0VESURfQ09VTlQgNQoKIHR5cGVkZWYgc3RydWN0IHsKIAlzdHJ1Y3QgY2hhbWVs aXVtICpjaGFtZWxpdW07CkBAIC00OSw3ICs1MSw3IEBAIHR5cGVkZWYgc3RydWN0IHsKCiAJaW50 IGRybV9mZDsKCi0JaW50IGVkaWRzWzRdOworCWludCBlZGlkc1tURVNUX0VESURfQ09VTlRdOwog fSBkYXRhX3Q7CgogI2RlZmluZSBIT1RQTFVHX1RJTUVPVVQgMjAgLyogc2Vjb25kcyAqLwpAQCAt MTk5Nyw2ICsxOTk5LDggQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmdldF9lZGlkKGVu dW0gdGVzdF9lZGlkIGVkaWQpCiAJCXJldHVybiBpZ3Rfa21zX2dldF9hbHRfZWRpZCgpOwogCWNh c2UgVEVTVF9FRElEX0hETUlfQVVESU86CiAJCXJldHVybiBpZ3Rfa21zX2dldF9oZG1pX2F1ZGlv X2VkaWQoKTsKKwljYXNlIFRFU1RfRURJRF9EUF9BVURJTzoKKwkJcmV0dXJuIGlndF9rbXNfZ2V0 X2RwX2F1ZGlvX2VkaWQoKTsKIAl9CiAJYXNzZXJ0KDApOyAvKiB1bnJlYWNoYWJsZSAqLwogfQpA QCAtMjAzMSw3ICsyMDM1LDcgQEAgaWd0X21haW4KIAkJCQkJCSAmZGF0YS5wb3J0X2NvdW50KTsK CiAJCWRhdGEuZWRpZHNbVEVTVF9FRElEX0NIQU1FTElVTV9ERUZBVUxUXSA9IENIQU1FTElVTV9E RUZBVUxUX0VESUQ7Ci0JCWZvciAoaSA9IDE7IGkgPCBzaXplb2YoZGF0YS5lZGlkcykgLyBzaXpl b2YoZGF0YS5lZGlkc1swXSk7ICsraSkgeworCQlmb3IgKGkgPSAxOyBpIDwgVEVTVF9FRElEX0NP VU5UOyArK2kpIHsKIAkJCWRhdGEuZWRpZHNbaV0gPSBjaGFtZWxpdW1fbmV3X2VkaWQoZGF0YS5j aGFtZWxpdW0sCiAJCQkJCQkJICAgZ2V0X2VkaWQoaSkpOwogCQl9CkBAIC0yMTEzLDcgKzIxMTcs NyBAQCBpZ3RfbWFpbgogCQkgKiBVc2UgdGhlIENoYW1lbGl1bSdzIGRlZmF1bHQgRURJRCBmb3Ig RFAgYXVkaW8uICovCiAJCWNvbm5lY3Rvcl9zdWJ0ZXN0KCJkcC1hdWRpbyIsIERpc3BsYXlQb3J0 KQogCQkJdGVzdF9kaXNwbGF5X2F1ZGlvKCZkYXRhLCBwb3J0LCAiSERNSSIsCi0JCQkJCSAgIFRF U1RfRURJRF9DSEFNRUxJVU1fREVGQVVMVCk7CisJCQkJCSAgIFRFU1RfRURJRF9EUF9BVURJTyk7 CiAJfQoKIAlpZ3Rfc3VidGVzdF9ncm91cCB7CmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfaGRtaV9p bmplY3QuYyBiL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jCmluZGV4IDQ3ZjVlZjJjNTU4YS4uNmI3 ZTEwMGYyMDI3IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfaGRtaV9pbmplY3QuYworKysgYi90ZXN0 cy9rbXNfaGRtaV9pbmplY3QuYwpAQCAtMjE5LDcgKzIxOSw3IEBAIGhkbWlfaW5qZWN0X2F1ZGlv KGludCBkcm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3Qga21zdGVz dF9jb25uZWN0b3JfY29uZmlnIGNvbmZpZzsKCiAJZWRpZCA9IGlndF9rbXNfZ2V0X2hkbWlfYXVk aW9fZWRpZCgpOwotCWxlbmd0aCA9IEhETUlfQVVESU9fRURJRF9MRU5HVEg7CisJbGVuZ3RoID0g QVVESU9fRURJRF9MRU5HVEg7CgogCWttc3Rlc3RfZm9yY2VfZWRpZChkcm1fZmQsIGNvbm5lY3Rv ciwgZWRpZCwgbGVuZ3RoKTsKCi0tCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pZ3QtZGV2