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 1429B895B5 for ; Wed, 15 May 2019 07:29:34 +0000 (UTC) From: Simon Ser Date: Wed, 15 May 2019 10:29:15 +0300 Message-Id: <20190515072922.30768-3-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 2/9] lib/igt_edid: add support for Short Audio Descriptors 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: U2hvcnQgQXVkaW8gRGVzY3JpcHRvcnMgKFNBRHMpIGNhbiBiZSB3cmFwcGVkIGluIGFuIEVESUQg ZXh0ZW5zaW9uIHRvIGFkdmVydGlzZQphdWRpbyBzdXBwb3J0LgoKVGhlIEVESUQgc3RydWN0dXJl IGlzIGFzIGZvbGxvd3M6Ci0gVGhlIDEyOC1ieXRlIEVESUQgYmxvY2sgY29udGFpbnMgYSBmaWVs ZCB3aXRoIHRoZSBudW1iZXIgb2YgMTI4LWJ5dGUKICBleHRlbnNpb24gYmxvY2tzIHRoYXQgZm9s bG93LgotIEVhY2ggZXh0ZW5zaW9uIGJsb2NrIGhhcyBhIHRhZyB3aGljaCBzcGVjaWZpZXMgaXRz IHR5cGUuIFRoZSB0YWcgd2UncmUKICBpbnRlcmVzdGVkIGluIGlzIENFQS04NjEuCi0gVGhlIENF QSBibG9jayBoYXMgYSBmZXcgZmxhZ3MsIGluY2x1ZGluZyBvbmUgdGhhdCBpbmRpY2F0ZXMgd2hl dGhlciBiYXNpYwogIGF1ZGlvIGlzIHN1cHBvcnRlZC4gVGhlIENFQSBibG9jayBjb250YWlucyBz ZXZlcmFsIHN1Yi1ibG9ja3Mgb2YgdmFyaWFibGUKICBzaXplLiBUaGVyZSBhcmUgdHdvIHR5cGVz IG9mIENFQSBzdWItYmxvY2tzOgogIC0gRGV0YWlsZWQgVGltaW5nIERlc2NyaXB0b3JzIChEVERz KTogYWRkaXRpb25hbCB2aWRlbyB0aW1pbmdzCiAgLSBEYXRhIEJsb2NrIENvbGxlY3Rpb246IHRo ZXNlIGNhbiBkZXRhaWwgdmlkZW8sIGF1ZGlvLCBzcGVha2VyIHBsYWNlbWVudCBhbmQKICAgIG90 aGVyIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlzcGxheS4KICBXZSdyZSBpbnRl cmVzdGVkIGluIGF1ZGlvIGJsb2Nrcy4KLSBBdWRpbyBibG9ja3MgY29udGFpbiBvbmUgb3IgbW9y ZSBTaG9ydCBBdWRpbyBEZXNjcmlwdG9ycyAoU0FEcykuIEEgU0FEIGlzIGEKICAzLWJ5dGUgcmVj b3JkIGRlc2NyaWJpbmcgYSBzdXBwb3J0ZWQgZm9ybWF0LgotIFNBRHMgY2FuIGRlc2NyaWJlIHN1 cHBvcnQgZm9yIHRoZSBQQ00gZm9ybWF0LCBpbmNsdWRpbmcgc2FtcGxpbmcgcmF0ZSwKICBzYW1w bGUgc2l6ZSBhbmQgY2hhbm5lbHMuCgpUaGUgaWd0X2VkaWQgbGlicmFyeSBpbnRlbnRpb25hbGx5 IGV4cG9zZXMgYWxsIG9mIHRoaXMgY29tcGxleGl0eSBiZWNhdXNlIGl0CndvdWxkIGJlIG5pY2Ug dG8gZ2VuZXJhdGUgYWxsIGtpbmQgb2YgdmFsaWQgRURJRHMgYW5kIHRlc3QgdGhlIGtlcm5lbCBo YW5kbGVzCnRoZW0gY29ycmVjdGx5IChlLmcuIG11bHRpcGxlIFNBRHMgaW4gZGlmZmVyZW50IENF QSBibG9ja3MsIG9yIGFueSBFRElEIHdlIGZpbmQKaW4gdGhlIHdpbGQgcmVhbGx5KS4KClNpZ25l ZC1vZmYtYnk6IFNpbW9uIFNlciA8c2ltb24uc2VyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEFy a2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X2Vk aWQuYyB8IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogbGli L2lndF9lZGlkLmggfCA4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9lZGlkLmMgYi9saWIvaWd0X2VkaWQuYwppbmRl eCA5ZDYwNGIxM2M0ZDYuLmQwMWRlZmIwOTI1ZSAxMDA2NDQKLS0tIGEvbGliL2lndF9lZGlkLmMK KysrIGIvbGliL2lndF9lZGlkLmMKQEAgLTI1MiwxOSArMjUyLDc0IEBAIHZvaWQgZWRpZF9pbml0 X3dpdGhfbW9kZShzdHJ1Y3QgZWRpZCAqZWRpZCwgZHJtTW9kZU1vZGVJbmZvICptb2RlKQogCQkJ CSAgIEVESURfREVUQUlMX01PTklUT1JfTkFNRSwgIklHVCIpOwogfQogCitzdGF0aWMgdWludDhf dCBjb21wdXRlX2NoZWNrc3VtKGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCit7CisJ c2l6ZV90IGk7CisJdWludDhfdCBzdW0gPSAwOworCisJYXNzZXJ0KHNpemUgPiAwKTsKKwlmb3Ig KGkgPSAwOyBpIDwgc2l6ZSAtIDE7IGkrKykgeworCQlzdW0gKz0gYnVmW2ldOworCX0KKworCXJl dHVybiAyNTYgLSBzdW07Cit9CisKIC8qKgogICogZWRpZF91cGRhdGVfY2hlY2tzdW06IGNvbXB1 dGUgYW5kIHVwZGF0ZSB0aGUgRURJRCBjaGVja3N1bQogICovCiB2b2lkIGVkaWRfdXBkYXRlX2No ZWNrc3VtKHN0cnVjdCBlZGlkICplZGlkKQogewotCXNpemVfdCBpOwotCWNvbnN0IHVpbnQ4X3Qg KmJ1ZiA9IChjb25zdCB1aW50OF90ICopIGVkaWQ7Ci0JdWludDhfdCBzdW0gPSAwOworCWVkaWQt PmNoZWNrc3VtID0gY29tcHV0ZV9jaGVja3N1bSgodWludDhfdCAqKSBlZGlkLAorCQkJCQkgIHNp emVvZihzdHJ1Y3QgZWRpZCkpOworfQogCi0JLyogY2FsY3VsYXRlIGNoZWNrc3VtICovCi0JZm9y IChpID0gMDsgaSA8IHNpemVvZihzdHJ1Y3QgZWRpZCkgLSAxOyBpKyspIHsKLQkJc3VtID0gc3Vt ICsgYnVmW2ldOwotCX0KKy8qKgorICogY2VhX3NhZF9pbml0X3BjbToKKyAqIEBjaGFubmVsczog dGhlIG51bWJlciBvZiBzdXBwb3J0ZWQgY2hhbm5lbHMgKG1heC4gOCkKKyAqIEBzYW1wbGluZ19y YXRlczogYml0ZmllbGQgb2YgZW51bSBjZWFfc2FkX3NhbXBsaW5nX3JhdGUKKyAqIEBzYW1wbGVf c2l6ZXM6IGJpdGZpZWxkIG9mIGVudW0gY2VhX3NhZF9wY21fc2FtcGxlX3NpemUKKyAqCisgKiBJ bml0aWFsaXplIGEgU2hvcnQgQXVkaW8gRGVzY3JpcHRvciB0byBhZHZlcnRpc2UgUENNIHN1cHBv cnQuCisgKi8KK3ZvaWQgY2VhX3NhZF9pbml0X3BjbShzdHJ1Y3QgY2VhX3NhZCAqc2FkLCBpbnQg Y2hhbm5lbHMsCisJCSAgICAgIHVpbnQ4X3Qgc2FtcGxpbmdfcmF0ZXMsIHVpbnQ4X3Qgc2FtcGxl X3NpemVzKQoreworCWFzc2VydChjaGFubmVscyA8PSA4KTsKKwlzYWQtPmZvcm1hdF9jaGFubmVs cyA9IENFQV9TQURfRk9STUFUX1BDTSA8PCAzIHwgKGNoYW5uZWxzIC0gMSk7CisJc2FkLT5zYW1w bGluZ19yYXRlcyA9IHNhbXBsaW5nX3JhdGVzOworCXNhZC0+Yml0cmF0ZSA9IHNhbXBsZV9zaXpl czsKK30KKworLyoqCisgKiBlZGlkX2V4dF9zZXRfY2VhX3NhZDogc2V0IGFuIGV4dGVuc2lvbiBi bG9jayB0byBiZSBDRUEgU0FECisgKi8KK3ZvaWQgZWRpZF9leHRfc2V0X2NlYV9zYWQoc3RydWN0 IGVkaWRfZXh0ICpleHQsIGNvbnN0IHN0cnVjdCBjZWFfc2FkICpzYWRzLAorCQkJICBzaXplX3Qg c2Fkc19sZW4pCit7CisJc3RydWN0IGVkaWRfY2VhICpjZWEgPSAmZXh0LT5kYXRhLmNlYTsKKwlz dHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayAqZGF0YV9ibG9jazsKKwlzaXplX3Qgc2Fkc19zaXpl LCBkYXRhX2Jsb2NrX3NpemU7CiAKLQllZGlkLT5jaGVja3N1bSA9IDI1NiAtIHN1bTsKKwltZW1z ZXQoZXh0LCAwLCBzaXplb2Yoc3RydWN0IGVkaWRfZXh0KSk7CisKKwlzYWRzX3NpemUgPSBzaXpl b2Yoc3RydWN0IGNlYV9zYWQpICogc2Fkc19sZW47CisJZGF0YV9ibG9ja19zaXplID0gc2l6ZW9m KHN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrKSArIHNhZHNfc2l6ZTsKKworCWV4dC0+dGFnID0g RURJRF9FWFRfQ0VBOworCisJY2VhLT5yZXZpc2lvbiA9IDM7CisJY2VhLT5kdGRfc3RhcnQgPSA0 ICsgZGF0YV9ibG9ja19zaXplOworCWNlYS0+bWlzYyA9IDEgPDwgNjsgLyogYmFzaWMgYXVkaW8s IG5vIERURCAqLworCisJYXNzZXJ0KHNhZHNfc2l6ZSA8PSAweEZGKTsKKwlkYXRhX2Jsb2NrID0g KHN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrICopIGNlYS0+ZGF0YTsKKwlkYXRhX2Jsb2NrLT50 eXBlX2xlbiA9IEVESURfQ0VBX0RBVEFfQVVESU8gPDwgNSB8IHNhZHNfc2l6ZTsKKwltZW1jcHko ZGF0YV9ibG9jay0+ZGF0YS5zYWRzLCBzYWRzLCBzYWRzX3NpemUpOworfQorCit2b2lkIGVkaWRf ZXh0X3VwZGF0ZV9jZWFfY2hlY2tzdW0oc3RydWN0IGVkaWRfZXh0ICpleHQpCit7CisJZXh0LT5k YXRhLmNlYS5jaGVja3N1bSA9IGNvbXB1dGVfY2hlY2tzdW0oKHVpbnQ4X3QgKikgZXh0LAorCQkJ CQkJICBzaXplb2Yoc3RydWN0IGVkaWRfZXh0KSk7CiB9CmRpZmYgLS1naXQgYS9saWIvaWd0X2Vk aWQuaCBiL2xpYi9pZ3RfZWRpZC5oCmluZGV4IDM2ZWVjN2U5ZGVkYi4uMzY2OGQ3MzNmMDZhIDEw MDY0NAotLS0gYS9saWIvaWd0X2VkaWQuaAorKysgYi9saWIvaWd0X2VkaWQuaApAQCAtMTQ4LDYg KzE0OCw4MCBAQCBzdHJ1Y3QgZGV0YWlsZWRfdGltaW5nIHsKIAl9IGRhdGE7CiB9IF9fYXR0cmli dXRlX18oKHBhY2tlZCkpOwogCitlbnVtIGNlYV9zYWRfZm9ybWF0IHsKKwlDRUFfU0FEX0ZPUk1B VF9QQ00gPSAxLAorCUNFQV9TQURfRk9STUFUX0FDMyA9IDIsCisJQ0VBX1NBRF9GT1JNQVRfTVBF RzEgPSAzLCAvKiBMYXllcnMgMSAmIDIgKi8KKwlDRUFfU0FEX0ZPUk1BVF9NUDMgPSA0LAorCUNF QV9TQURfRk9STUFUX01QRUcyID0gNSwKKwlDRUFfU0FEX0ZPUk1BVF9BQUMgPSA2LAorCUNFQV9T QURfRk9STUFUX0RUUyA9IDcsCisJQ0VBX1NBRF9GT1JNQVRfQVRSQUMgPSA4LAorCUNFQV9TQURf Rk9STUFUX1NBQ0QgPSA5LCAvKiBPbmUtYml0IGF1ZGlvICovCisJQ0VBX1NBRF9GT1JNQVRfRERf UExVUyA9IDEwLAorCUNFQV9TQURfRk9STUFUX0RUU19IRCA9IDExLAorCUNFQV9TQURfRk9STUFU X0RPTEJZID0gMTIsIC8qIE1MUC9Eb2xieSBUcnVlSEQgKi8KKwlDRUFfU0FEX0ZPUk1BVF9EU1Qg PSAxMywKKwlDRUFfU0FEX0ZPUk1BVF9XTUEgPSAxNCwgLyogTWljcm9zb2Z0IFdNQSBQcm8gKi8K K307CisKK2VudW0gY2VhX3NhZF9zYW1wbGluZ19yYXRlIHsKKwlDRUFfU0FEX1NBTVBMSU5HX1JB VEVfMzJLSFogPSAxIDw8IDAsCisJQ0VBX1NBRF9TQU1QTElOR19SQVRFXzQ0S0haID0gMSA8PCAx LAorCUNFQV9TQURfU0FNUExJTkdfUkFURV80OEtIWiA9IDEgPDwgMiwKKwlDRUFfU0FEX1NBTVBM SU5HX1JBVEVfODhLSFogPSAxIDw8IDMsCisJQ0VBX1NBRF9TQU1QTElOR19SQVRFXzk2S0haID0g MSA8PCA0LAorCUNFQV9TQURfU0FNUExJTkdfUkFURV8xNzZLSFogPSAxIDw8IDUsCisJQ0VBX1NB RF9TQU1QTElOR19SQVRFXzE5MktIWiA9IDEgPDwgNiwKK307CisKKy8qIGZvciBQQ00gb25seSAq LworZW51bSBjZWFfc2FkX3BjbV9zYW1wbGVfc2l6ZSB7CisJQ0VBX1NBRF9TQU1QTEVfU0laRV8x NiA9IDEgPDwgMCwKKwlDRUFfU0FEX1NBTVBMRV9TSVpFXzIwID0gMSA8PCAxLAorCUNFQV9TQURf U0FNUExFX1NJWkVfMjQgPSAxIDw8IDIsCit9OworCisvKiBTaG9ydCBBdWRpbyBEZXNjcmlwdG9y ICovCitzdHJ1Y3QgY2VhX3NhZCB7CisJdWludDhfdCBmb3JtYXRfY2hhbm5lbHM7CisJdWludDhf dCBzYW1wbGluZ19yYXRlczsKKwl1aW50OF90IGJpdHJhdGU7Cit9IF9fYXR0cmlidXRlX18oKHBh Y2tlZCkpOworCitlbnVtIGVkaWRfY2VhX2RhdGFfdHlwZSB7CisJRURJRF9DRUFfREFUQV9BVURJ TyA9IDEsCisJRURJRF9DRUFfREFUQV9WSURFTyA9IDIsCisJRURJRF9DRUFfREFUQV9WRU5ET1Jf U1BFQ0lGSUMgPSAzLAorCUVESURfQ0VBX0RBVEFfU1BFQUtFUl9BTExPQyA9IDQsCit9OworCitz dHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayB7CisJdWludDhfdCB0eXBlX2xlbjsgLyogdHlwZSBp cyBmcm9tIGVudW0gZWRpZF9jZWFfZGF0YV90eXBlICovCisJdW5pb24geworCQlzdHJ1Y3QgY2Vh X3NhZCBzYWRzWzBdOworCX0gZGF0YTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0 cnVjdCBlZGlkX2NlYSB7CisJdWludDhfdCByZXZpc2lvbjsKKwl1aW50OF90IGR0ZF9zdGFydDsK Kwl1aW50OF90IG1pc2M7CisJY2hhciBkYXRhWzEyM107IC8qIERCQyAmIERURCBjb2xsZWN0aW9u LCBwYWRkZWQgd2l0aCB6ZXJvcyAqLworCXVpbnQ4X3QgY2hlY2tzdW07Cit9IF9fYXR0cmlidXRl X18oKHBhY2tlZCkpOworCitlbnVtIGVkaWRfZXh0X3RhZyB7CisJRURJRF9FWFRfQ0VBID0gMHgw MiwKK307CisKK3N0cnVjdCBlZGlkX2V4dCB7CisJdWludDhfdCB0YWc7IC8qIGVudW0gZWRpZF9l eHRfdGFnICovCisJdW5pb24geworCQlzdHJ1Y3QgZWRpZF9jZWEgY2VhOworCX0gZGF0YTsKK30g X19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKIHN0cnVjdCBlZGlkIHsKIAljaGFyIGhlYWRlcls4 XTsKIAkvKiBWZW5kb3IgJiBwcm9kdWN0IGluZm8gKi8KQEAgLTE4Myw5ICsyNTcsOSBAQCBzdHJ1 Y3QgZWRpZCB7CiAJLyogRGV0YWlsaW5nIHRpbWluZ3MgMS00ICovCiAJc3RydWN0IGRldGFpbGVk X3RpbWluZyBkZXRhaWxlZF90aW1pbmdzW0RFVEFJTEVEX1RJTUlOR1NfTEVOXTsKIAkvKiBOdW1i ZXIgb2YgMTI4IGJ5dGUgZXh0LiBibG9ja3MgKi8KLQl1aW50OF90IGV4dGVuc2lvbnM7Ci0JLyog Q2hlY2tzdW0gKi8KKwl1aW50OF90IGV4dGVuc2lvbnNfbGVuOwogCXVpbnQ4X3QgY2hlY2tzdW07 CisJc3RydWN0IGVkaWRfZXh0IGV4dGVuc2lvbnNbXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2Vk KSk7CiAKIHZvaWQgZWRpZF9pbml0KHN0cnVjdCBlZGlkICplZGlkKTsKQEAgLTE5OSw0ICsyNzMs MTAgQEAgdm9pZCBkZXRhaWxlZF90aW1pbmdfc2V0X3N0cmluZyhzdHJ1Y3QgZGV0YWlsZWRfdGlt aW5nICpkdCwKIAkJCQllbnVtIGRldGFpbGVkX25vbl9waXhlbF90eXBlIHR5cGUsCiAJCQkJY29u c3QgY2hhciAqc3RyKTsKIAordm9pZCBjZWFfc2FkX2luaXRfcGNtKHN0cnVjdCBjZWFfc2FkICpz YWQsIGludCBjaGFubmVscywKKwkJICAgICAgdWludDhfdCBzYW1wbGluZ19yYXRlcywgdWludDhf dCBzYW1wbGVfc2l6ZXMpOwordm9pZCBlZGlkX2V4dF9zZXRfY2VhX3NhZChzdHJ1Y3QgZWRpZF9l eHQgKmV4dCwgY29uc3Qgc3RydWN0IGNlYV9zYWQgKnNhZHMsCisJCQkgIHNpemVfdCBzYWRzX2xl bik7Cit2b2lkIGVkaWRfZXh0X3VwZGF0ZV9jZWFfY2hlY2tzdW0oc3RydWN0IGVkaWRfZXh0ICpl eHQpOworCiAjZW5kaWYKLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pZ3QtZGV2