From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 09DE56E442 for ; Wed, 19 Jun 2019 15:55:19 +0000 (UTC) From: Simon Ser Date: Wed, 19 Jun 2019 18:55:18 +0300 Message-Id: <20190619155518.25129-10-simon.ser@intel.com> In-Reply-To: <20190619155518.25129-1-simon.ser@intel.com> References: <20190619155518.25129-1-simon.ser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 9/9] lib/igt_chamelium: autodiscover Chamelium port mappings 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: VGhpcyByZW1vdmVzIHRoZSBuZWVkIGZvciBjb25maWd1cmluZyBDaGFtZWxpdW0gcG9ydHMgaW4g LmlndHJjLCBtYWtpbmcgaXQgYm90aAplYXNpZXIgYW5kIGxlc3MgZXJyb3ItcHJvbmUgdG8gc2V0 dXAgQ2hhbWVsaXVtIGJvYXJkcy4KCkEgbmV3IGZ1bmN0aW9uIGNoYW1lbGl1bV9hdXRvZGlzY292 ZXIgc2V0cyBhIGRpZmZlcmVudCBFRElEIG9uIGVhY2ggQ2hhbWVsaXVtCnBvcnQgYW5kIHBsdWdz IHRoZW0uIFdlIHRoZW4gd2FsayB0aGUgbGlzdCBvZiBEUk0gY29ubmVjdG9ycywgcmVhZCBiYWNr IHRoZQpFRElEIGFuZCBpbmZlciB0aGUgbWFwcGluZy4KClRoZSBFRElEIHNlcmlhbCBudW1iZXIg aXMgdXNlZCB0byB0ZWxsIGVhY2ggcG9ydCBhcGFydC4gSW4gY2FzZSBhIG1hcHBpbmcgaXMKYWxy ZWFkeSBjb25maWd1cmVkIGluIHRoZSAuaWd0cmMgZmlsZSwgd2UgY2hlY2sgdGhhdCBpdCdzIGNv bnNpc3RlbnQuCgpNU1QgaXMgbm90IGhhbmRsZWQgeWV0IChyZXF1aXJlcyByZWZhY3RvcmluZyBl eGlzdGluZyB0ZXN0cyBzaW5jZSBjb25uZWN0b3IgSURzCmFyZW4ndCBzdGFibGUpLgoKU2lnbmVk LW9mZi1ieTogU2ltb24gU2VyIDxzaW1vbi5zZXJAaW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfY2hh bWVsaXVtLmMgfCAyMDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KIDEgZmlsZSBjaGFuZ2VkLCAyMDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saWIvaWd0X2NoYW1lbGl1bS5jIGIvbGliL2lndF9jaGFtZWxpdW0uYwppbmRl eCBkY2M1OWU5ZjBiMDQuLmRkZWExYmE0N2Q0ZSAxMDA2NDQKLS0tIGEvbGliL2lndF9jaGFtZWxp dW0uYworKysgYi9saWIvaWd0X2NoYW1lbGl1bS5jCkBAIC0zNTgsNyArMzU4LDcgQEAgc3RhdGlj IHhtbHJwY192YWx1ZSAqY2hhbWVsaXVtX3JwYyhzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0s CiAgKi8KIHZvaWQgY2hhbWVsaXVtX3BsdWcoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLCBz dHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQpCiB7Ci0JaWd0X2RlYnVnKCJQbHVnZ2luZyAlc1xu IiwgcG9ydC0+bmFtZSk7CisJaWd0X2RlYnVnKCJQbHVnZ2luZyAlcyAoQ2hhbWVsaXVtIHBvcnQg SUQgJWQpXG4iLCBwb3J0LT5uYW1lLCBwb3J0LT5pZCk7CiAJeG1scnBjX0RFQ1JFRihjaGFtZWxp dW1fcnBjKGNoYW1lbGl1bSwgTlVMTCwgIlBsdWciLCAiKGkpIiwgcG9ydC0+aWQpKTsKIH0KIApA QCAtMTgyOCw2ICsxODI4LDIwNCBAQCBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KIAorLyoqCisgKiBh dXRvZGlzY292ZXJfcG9ydHM6IGxpc3Qgb2YgcG9ydHMgd2hpY2ggY2FuIGJlIGF1dG8tZGlzY292 ZXJlZAorICoKKyAqIFNlZSB0aGlzIGZpbGUgZm9yIGEgbGlzdCBvZiBDaGFtZWxpdW0gcG9ydHM6 CisgKiBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW1vcy9wbGF0Zm9y bS9jaGFtZWxlb24vKy9tYXN0ZXIvY2hhbWVsZW9uZC91dGlscy9pZHMucHkKKyAqLworc3RhdGlj IGNvbnN0IGludCBhdXRvZGlzY292ZXJfcG9ydHNbXSA9IHsxLCAyLCAzLCA0fTsKKworI2RlZmlu ZSBBVVRPRElTQ09WRVJfUE9SVFNfTEVOIChzaXplb2YoYXV0b2Rpc2NvdmVyX3BvcnRzKSAvIHNp emVvZihhdXRvZGlzY292ZXJfcG9ydHNbMF0pKQorCitzdGF0aWMgaW50IHBvcnRfaWRfZnJvbV9l ZGlkKGludCBkcm1fZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlpbnQgcG9y dF9pZCA9IC0xOworCWJvb2wgb2s7CisJdWludDY0X3QgZWRpZF9ibG9iX2lkOworCWRybU1vZGVQ cm9wZXJ0eUJsb2JSZXMgKmVkaWRfYmxvYjsKKwljb25zdCBzdHJ1Y3QgZWRpZCAqZWRpZDsKKwlj aGFyIG1mZ1szXTsKKworCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rpb24gIT0gRFJNX01PREVfQ09O TkVDVEVEKSB7CisJCWlndF9kZWJ1ZygiU2tpcHBpbmcgYXV0by1kaXNjb3ZlcnkgZm9yIGNvbm5l Y3RvciAlcy0lZDogIgorCQkJICAiY29ubmVjdG9yIHN0YXR1cyBpcyBub3QgY29ubmVjdGVkXG4i LAorCQkJICBrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihjb25uZWN0b3ItPmNvbm5lY3Rvcl90 eXBlKSwKKwkJCSAgY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZV9pZCk7CisJCXJldHVybiAtMTsK Kwl9CisKKwlvayA9IGttc3Rlc3RfZ2V0X3Byb3BlcnR5KGRybV9mZCwgY29ubmVjdG9yLT5jb25u ZWN0b3JfaWQsCisJCQkJICBEUk1fTU9ERV9PQkpFQ1RfQ09OTkVDVE9SLCAiRURJRCIsCisJCQkJ ICBOVUxMLCAmZWRpZF9ibG9iX2lkLCBOVUxMKTsKKwlpZiAoIW9rKSB7CisJCWlndF9kZWJ1Zygi U2tpcHBpbmcgYXV0by1kaXNjb3ZlcnkgZm9yIGNvbm5lY3RvciAlcy0lZDogIgorCQkJICAibWlz c2luZyB0aGUgRURJRCBwcm9wZXJ0eVxuIiwKKwkJCSAga21zdGVzdF9jb25uZWN0b3JfdHlwZV9z dHIoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSksCisJCQkgIGNvbm5lY3Rvci0+Y29ubmVjdG9y X3R5cGVfaWQpOworCQlyZXR1cm4gLTE7CisJfQorCisJZWRpZF9ibG9iID0gZHJtTW9kZUdldFBy b3BlcnR5QmxvYihkcm1fZmQsIGVkaWRfYmxvYl9pZCk7CisJaWd0X2Fzc2VydChlZGlkX2Jsb2Ip OworCisJZWRpZCA9IChjb25zdCBzdHJ1Y3QgZWRpZCAqKSBlZGlkX2Jsb2ItPmRhdGE7CisKKwll ZGlkX2dldF9tZmcoZWRpZCwgbWZnKTsKKwlpZiAobWVtY21wKG1mZywgIklHVCIsIDMpICE9IDAp IHsKKwkJaWd0X2RlYnVnKCJTa2lwcGluZyBjb25uZWN0b3IgJXMtJWQgZm9yIGF1dG8tZGlzY292 ZXJ5OiAiCisJCQkgICJtYW51ZmFjdHVyZXIgaXMgJS4zcywgbm90IElHVFxuIiwKKwkJCSAga21z dGVzdF9jb25uZWN0b3JfdHlwZV9zdHIoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSksCisJCQkg IGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGVfaWQsIG1mZyk7CisJCWdvdG8gb3V0OworCX0KKwor CWlmIChlZGlkLT5wcm9kX2NvZGVbMF0gIT0gJ0MnIHx8IGVkaWQtPnByb2RfY29kZVsxXSAhPSAn SCcpIHsKKwkJaWd0X3dhcm4oIkludmFsaWQgRURJRCBmb3IgSUdUIGNvbm5lY3RvciAlcy0lZDog IgorCQkJICAiaW52YWxpZCBwcm9kdWN0IGNvZGVcbiIsCisJCQkgIGttc3Rlc3RfY29ubmVjdG9y X3R5cGVfc3RyKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUpLAorCQkJICBjb25uZWN0b3ItPmNv bm5lY3Rvcl90eXBlX2lkKTsKKwkJZ290byBvdXQ7CisJfQorCisJcG9ydF9pZCA9ICoodWludDMy X3QgKikgJmVkaWQtPnNlcmlhbDsKKwlpZ3RfZGVidWcoIkF1dG8tZGlzY292ZXJ5IG1hcHBlZCBj b25uZWN0b3IgJXMtJWQgdG8gQ2hhbWVsaXVtICIKKwkJICAicG9ydCBJRCAlZFxuIiwKKwkJICBr bXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSwKKwkJ ICBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlX2lkLCBwb3J0X2lkKTsKKworb3V0OgorCWRybU1v ZGVGcmVlUHJvcGVydHlCbG9iKGVkaWRfYmxvYik7CisJcmV0dXJuIHBvcnRfaWQ7Cit9CisKKy8q KgorICogY2hhbWVsaXVtX2F1dG9kaXNjb3ZlcjogVE9ETworICovCitzdGF0aWMgYm9vbCBjaGFt ZWxpdW1fYXV0b2Rpc2NvdmVyKHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bSwgaW50IGRybV9m ZCkKK3sKKwlkcm1Nb2RlUmVzICpyZXM7CisJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOwor CXN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydDsKKwlzaXplX3QgaSwgaiwgcG9ydF9pbmRleDsK KwlpbnQgcG9ydF9pZDsKKwl1aW50MzJfdCBjb25uX2lkOworCXN0cnVjdCBjaGFtZWxpdW1fZWRp ZCAqZWRpZDsKKwlib29sIGZvdW5kOworCXVpbnQzMl90IGF1dG9kaXNjb3ZlcmVkW0FVVE9ESVND T1ZFUl9QT1JUU19MRU5dID0gezB9OworCWNoYXIgY29ubl9uYW1lWzY0XTsKKworCWlndF9kZWJ1 ZygiU3RhcnRpbmcgQ2hhbWVsaXVtIHBvcnQgYXV0by1kaXNjb3ZlcnlcbiIpOworCisJZWRpZCA9 IGNoYW1lbGl1bV9uZXdfZWRpZChjaGFtZWxpdW0sIGlndF9rbXNfZ2V0X2Jhc2VfZWRpZCgpKTsK KworCS8qIFNldCBFRElEIGFuZCBwbHVnIHBvcnRzIHdlIHdhbnQgdG8gYXV0by1kaXNjb3ZlciAq LworCXBvcnRfaW5kZXggPSBjaGFtZWxpdW0tPnBvcnRfY291bnQ7CisJZm9yIChpID0gMDsgaSA8 IEFVVE9ESVNDT1ZFUl9QT1JUU19MRU47IGkrKykgeworCQlwb3J0X2lkID0gYXV0b2Rpc2NvdmVy X3BvcnRzW2ldOworCisJCS8qIE5vIG5lZWQgdG8gYXV0by1kaXNjb3ZlciBwb3J0cyBleHBsaWNp dGx5IGNvbmZpZ3VyZWQgaW4gdGhlCisJCSAqIC5pZ3RyYyBmaWxlLiAqLworCQlmb3VuZCA9IGZh bHNlOworCQlmb3IgKGogPSAwOyBqIDwgY2hhbWVsaXVtLT5wb3J0X2NvdW50OyBqKyspIHsKKwkJ CWlmIChjaGFtZWxpdW0tPnBvcnRzW2pdLmlkID09IHBvcnRfaWQpIHsKKwkJCQlmb3VuZCA9IHRy dWU7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGZvdW5kKQorCQkJY29udGludWU7CisK KwkJaWd0X2Fzc2VydChwb3J0X2luZGV4IDwgQ0hBTUVMSVVNX01BWF9QT1JUUyk7CisJCXBvcnQg PSAmY2hhbWVsaXVtLT5wb3J0c1twb3J0X2luZGV4XTsKKwkJcG9ydF9pbmRleCsrOworCisJCXBv cnQtPmlkID0gcG9ydF9pZDsKKworCQljaGFtZWxpdW1fcG9ydF9zZXRfZWRpZChjaGFtZWxpdW0s IHBvcnQsIGVkaWQpOworCQljaGFtZWxpdW1fcGx1ZyhjaGFtZWxpdW0sIHBvcnQpOworCX0KKwor CS8qIFJlcHJvYmUgY29ubmVjdG9ycyBhbmQgYnVpbGQgdGhlIG1hcHBpbmcgKi8KKwlyZXMgPSBk cm1Nb2RlR2V0UmVzb3VyY2VzKGRybV9mZCk7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsK KworCWZvciAoaSA9IDA7IGkgPCByZXMtPmNvdW50X2Nvbm5lY3RvcnM7IGkrKykgeworCQljb25u X2lkID0gcmVzLT5jb25uZWN0b3JzW2ldOworCisJCS8qIFJlYWQgdGhlIEVESUQgYW5kIHBhcnNl IHRoZSBDaGFtZWxpdW0gcG9ydCBJRCB3ZSBzdG9yZWQKKwkJICogdGhlcmUuICovCisJCWNvbm5l Y3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3IoZHJtX2ZkLCByZXMtPmNvbm5lY3RvcnNbaV0pOwor CQlwb3J0X2lkID0gcG9ydF9pZF9mcm9tX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IpOworCQlkcm1N b2RlRnJlZUNvbm5lY3Rvcihjb25uZWN0b3IpOworCQlpZiAocG9ydF9pZCA8IDApCisJCQljb250 aW51ZTsKKworCQkvKiBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBtYXBwaW5nIGZyb20gdGhlIGNvbmZp ZyBmaWxlLCBjaGVjaworCQkgKiB0aGF0IGl0J3MgY29uc2lzdGVudC4gKi8KKwkJZm91bmQgPSBm YWxzZTsKKwkJZm9yIChqID0gMDsgaiA8IGNoYW1lbGl1bS0+cG9ydF9jb3VudDsgaisrKSB7CisJ CQlwb3J0ID0gJmNoYW1lbGl1bS0+cG9ydHNbal07CisJCQlpZiAocG9ydC0+Y29ubmVjdG9yX2lk ID09IGNvbm5faWQpIHsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJaWd0X2Fzc2VydF9mKHBvcnQt PmlkID09IHBvcnRfaWQsCisJCQkJCSAgICAgIkluY29uc2lzdGVuY3kgZGV0ZWN0ZWQgaW4gLmln dHJjOiAiCisJCQkJCSAgICAgImNvbm5lY3RvciAlcyBpcyBjb25maWd1cmVkIHdpdGggIgorCQkJ CQkgICAgICJDaGFtZWxpdW0gcG9ydCAlZCwgYnV0IGlzICIKKwkJCQkJICAgICAiY29ubmVjdGVk IHRvIHBvcnQgJWRcbiIsCisJCQkJCSAgICAgcG9ydC0+bmFtZSwgcG9ydC0+aWQsIHBvcnRfaWQp OworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChmb3VuZCkKKwkJCWNvbnRpbnVlOworCisJ CS8qIEdldCBnb3QgYSBuZXcgbWFwcGluZyAqLworCQlmb3VuZCA9IGZhbHNlOworCQlmb3IgKGog PSAwOyBqIDwgQVVUT0RJU0NPVkVSX1BPUlRTX0xFTjsgaisrKSB7CisJCQlpZiAocG9ydF9pZCA9 PSBhdXRvZGlzY292ZXJfcG9ydHNbal0pIHsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYXV0b2Rp c2NvdmVyZWRbal0gPSBjb25uX2lkOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlndF9hc3Nl cnRfZihmb3VuZCwgIkF1dG8tZGlzY292ZXJlZCBhIHBvcnQgKCVkKSB3ZSBoYXZlbid0ICIKKwkJ CSAgICAgInNldHVwXG4iLCBwb3J0X2lkKTsKKwl9CisKKwlkcm1Nb2RlRnJlZVJlc291cmNlcyhy ZXMpOworCisJLyogV2Ugbm93IGhhdmUgYSBDaGFtZWxpdW0gcG9ydCBJRCDihpQgRFJNIGNvbm5l Y3RvciBJRCBtYXBwaW5nOgorCSAqIGF1dG9kaXNjb3Zlcl9wb3J0cyBjb250YWlucyB0aGUgQ2hh bWVsaXVtIHBvcnQgSURzIGFuZAorCSAqIGF1dG9kaXNjb3ZlcmVkIGNvbnRhaW5zIHRoZSBEUk0g Y29ubmVjdG9yIElEcy4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVVUT0RJU0NPVkVSX1BPUlRTX0xF TjsgaSsrKSB7CisJCXBvcnRfaWQgPSBhdXRvZGlzY292ZXJfcG9ydHNbaV07CisJCWNvbm5faWQg PSBhdXRvZGlzY292ZXJlZFtpXTsKKwkJaWYgKCFjb25uX2lkKSB7CisJCQljb250aW51ZTsKKwkJ fQorCisJCXBvcnQgPSAmY2hhbWVsaXVtLT5wb3J0c1tjaGFtZWxpdW0tPnBvcnRfY291bnRdOwor CQljaGFtZWxpdW0tPnBvcnRfY291bnQrKzsKKworCQlwb3J0LT5pZCA9IHBvcnRfaWQ7CisJCXBv cnQtPnR5cGUgPSBjaGFtZWxpdW1fZ2V0X3BvcnRfdHlwZShjaGFtZWxpdW0sIHBvcnQpOworCQlw b3J0LT5jb25uZWN0b3JfaWQgPSBjb25uX2lkOworCisJCWNvbm5lY3RvciA9IGRybU1vZGVHZXRD b25uZWN0b3JDdXJyZW50KGRybV9mZCwgY29ubl9pZCk7CisJCXNucHJpbnRmKGNvbm5fbmFtZSwg c2l6ZW9mKGNvbm5fbmFtZSksICIlcy0ldSIsCisJCQkga21zdGVzdF9jb25uZWN0b3JfdHlwZV9z dHIoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSksCisJCQkgY29ubmVjdG9yLT5jb25uZWN0b3Jf dHlwZV9pZCk7CisJCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7CisJCXBvcnQtPm5h bWUgPSBzdHJkdXAoY29ubl9uYW1lKTsKKwl9CisKKwljaGFtZWxpdW1fcmVzZXQoY2hhbWVsaXVt KTsKKworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbCBjaGFtZWxpdW1fcmVhZF9jb25m aWcoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLCBpbnQgZHJtX2ZkKQogewogCUdFcnJvciAq ZXJyb3IgPSBOVUxMOwpAQCAtMTg0NSw3ICsyMDQzLDEwIEBAIHN0YXRpYyBib29sIGNoYW1lbGl1 bV9yZWFkX2NvbmZpZyhzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0sIGludCBkcm1fZmQpCiAJ CXJldHVybiBmYWxzZTsKIAl9CiAKLQlyZXR1cm4gY2hhbWVsaXVtX3JlYWRfcG9ydF9tYXBwaW5n cyhjaGFtZWxpdW0sIGRybV9mZCk7CisJaWYgKCFjaGFtZWxpdW1fcmVhZF9wb3J0X21hcHBpbmdz KGNoYW1lbGl1bSwgZHJtX2ZkKSkgeworCQlyZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiBjaGFt ZWxpdW1fYXV0b2Rpc2NvdmVyKGNoYW1lbGl1bSwgZHJtX2ZkKTsKIH0KIAogLyoqCi0tIAoyLjIy LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==