From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm v2 2/4] xf86drm: Add USB support Date: Thu, 12 Jan 2017 23:04:27 +0100 Message-ID: <20170112220429.28139-3-thierry.reding@gmail.com> References: <20170112220429.28139-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170112220429.28139-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: xorg-devel-bounces-go0+a7rfsptAfugRpC6u6w@public.gmane.org Sender: "xorg-devel" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Thierry Reding , xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org List-Id: dri-devel@lists.freedesktop.org QWxsb3cgRFJNL0tNUyBkZXZpY2VzIGhvc3RlZCBvbiBVU0IgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhl IGRybURldmljZQppbmZyYXN0cnVjdHVyZS4KCnYyOgotIG1ha2Ugc3lzZnNfdWV2ZW50X2dldCgp IG1vcmUgZmxleGlibGUgdXNpbmcgYSBmb3JtYXQgc3RyaW5nCgpTaWduZWQtb2ZmLWJ5OiBUaGll cnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgotLS0KIHhmODZkcm0uYyB8IDE2 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogeGY4NmRybS5oIHwgIDEzICsrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE3NiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGY4NmRybS5jIGIveGY4NmRybS5jCmluZGV4IGMxMjM2 NTBhMWUyMy4uMjdjZDZlYjUxOTNlIDEwMDY0NAotLS0gYS94Zjg2ZHJtLmMKKysrIGIveGY4NmRy bS5jCkBAIC0yOTA2LDYgKzI5MDYsOSBAQCBzdGF0aWMgaW50IGRybVBhcnNlU3Vic3lzdGVtVHlw ZShpbnQgbWFqLCBpbnQgbWluKQogICAgIGlmIChzdHJuY21wKG5hbWUsICIvcGNpIiwgNCkgPT0g MCkKICAgICAgICAgcmV0dXJuIERSTV9CVVNfUENJOwogCisgICAgaWYgKHN0cm5jbXAobmFtZSwg Ii91c2IiLCA0KSA9PSAwKQorICAgICAgICByZXR1cm4gRFJNX0JVU19VU0I7CisKICAgICByZXR1 cm4gLUVJTlZBTDsKICNlbGlmIGRlZmluZWQoX19PcGVuQlNEX18pCiAgICAgcmV0dXJuIERSTV9C VVNfUENJOwpAQCAtMjk5Miw2ICsyOTk1LDEwIEBAIHN0YXRpYyBpbnQgZHJtQ29tcGFyZUJ1c0lu Zm8oZHJtRGV2aWNlUHRyIGEsIGRybURldmljZVB0ciBiKQogICAgIHN3aXRjaCAoYS0+YnVzdHlw ZSkgewogICAgIGNhc2UgRFJNX0JVU19QQ0k6CiAgICAgICAgIHJldHVybiBtZW1jbXAoYS0+YnVz aW5mby5wY2ksIGItPmJ1c2luZm8ucGNpLCBzaXplb2YoZHJtUGNpQnVzSW5mbykpOworCisgICAg Y2FzZSBEUk1fQlVTX1VTQjoKKyAgICAgICAgcmV0dXJuIG1lbWNtcChhLT5idXNpbmZvLnVzYiwg Yi0+YnVzaW5mby51c2IsIHNpemVvZihkcm1Vc2JCdXNJbmZvKSk7CisKICAgICBkZWZhdWx0Ogog ICAgICAgICBicmVhazsKICAgICB9CkBAIC0zMjM1LDYgKzMyNDIsMTQ1IEBAIGZyZWVfZGV2aWNl OgogICAgIHJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBjaGFyICogRFJNX1BSSU5URkxJS0UoMiwg MykKK3N5c2ZzX3VldmVudF9nZXQoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZm10LCAu Li4pCit7CisgICAgY2hhciBmaWxlbmFtZVtQQVRIX01BWCArIDFdLCAqa2V5LCAqbGluZSA9IE5V TEwsICp2YWx1ZSA9IE5VTEw7CisgICAgc2l6ZV90IHNpemUgPSAwLCBsZW47CisgICAgc3NpemVf dCBudW07CisgICAgdmFfbGlzdCBhcDsKKyAgICBGSUxFICpmcDsKKworICAgIHZhX3N0YXJ0KGFw LCBmbXQpOworICAgIG51bSA9IHZhc3ByaW50Zigma2V5LCBmbXQsIGFwKTsKKyAgICB2YV9lbmQo YXApOworICAgIGxlbiA9IG51bTsKKworICAgIHNucHJpbnRmKGZpbGVuYW1lLCBzaXplb2YoZmls ZW5hbWUpLCAiJXMvdWV2ZW50IiwgcGF0aCk7CisKKyAgICBmcCA9IGZvcGVuKGZpbGVuYW1lLCAi ciIpOworICAgIGlmICghZnApIHsKKyAgICAgICAgZnJlZShrZXkpOworICAgICAgICByZXR1cm4g TlVMTDsKKyAgICB9CisKKyAgICB3aGlsZSAoKG51bSA9IGdldGxpbmUoJmxpbmUsICZzaXplLCBm cCkpID49IDApIHsKKyAgICAgICAgaWYgKChzdHJuY21wKGxpbmUsIGtleSwgbGVuKSA9PSAwKSAm JiAobGluZVtsZW5dID09ICc9JykpIHsKKyAgICAgICAgICAgIGNoYXIgKnN0YXJ0ID0gbGluZSAr IGxlbiArIDEsICplbmQgPSBsaW5lICsgbnVtIC0gMTsKKworICAgICAgICAgICAgaWYgKCplbmQg IT0gJ1xuJykKKyAgICAgICAgICAgICAgICBlbmQrKzsKKworICAgICAgICAgICAgdmFsdWUgPSBz dHJuZHVwKHN0YXJ0LCBlbmQgLSBzdGFydCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg fQorICAgIH0KKworICAgIGZyZWUobGluZSk7CisgICAgZmNsb3NlKGZwKTsKKworICAgIGZyZWUo a2V5KTsKKworICAgIHJldHVybiB2YWx1ZTsKK30KKworc3RhdGljIGludCBkcm1QYXJzZVVzYkJ1 c0luZm8oaW50IG1haiwgaW50IG1pbiwgZHJtVXNiQnVzSW5mb1B0ciBpbmZvKQoreworICAgIGNo YXIgcGF0aFtQQVRIX01BWCArIDFdLCAqdmFsdWU7CisgICAgdW5zaWduZWQgaW50IGJ1cywgZGV2 OworICAgIGludCByZXQ7CisKKyAgICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvc3lz L2Rldi9jaGFyLyVkOiVkL2RldmljZSIsIG1haiwgbWluKTsKKworICAgIHZhbHVlID0gc3lzZnNf dWV2ZW50X2dldChwYXRoLCAiQlVTTlVNIik7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0 dXJuIC1FTk9FTlQ7CisKKyAgICByZXQgPSBzc2NhbmYodmFsdWUsICIlMDN1IiwgJmJ1cyk7Cisg ICAgZnJlZSh2YWx1ZSk7CisKKyAgICBpZiAocmV0IDw9IDApCisgICAgICAgIHJldHVybiAtZXJy bm87CisKKyAgICB2YWx1ZSA9IHN5c2ZzX3VldmVudF9nZXQocGF0aCwgIkRFVk5VTSIpOworICAg IGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgcmV0ID0gc3NjYW5m KHZhbHVlLCAiJTAzdSIsICZkZXYpOworICAgIGZyZWUodmFsdWUpOworCisgICAgaWYgKHJldCA8 PSAwKQorICAgICAgICByZXR1cm4gLWVycm5vOworCisgICAgaW5mby0+YnVzID0gYnVzOworICAg IGluZm8tPmRldiA9IGRldjsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRybVBh cnNlVXNiRGV2aWNlSW5mbyhpbnQgbWFqLCBpbnQgbWluLCBkcm1Vc2JEZXZpY2VJbmZvUHRyIGlu Zm8pCit7CisgICAgY2hhciBwYXRoW1BBVEhfTUFYICsgMV0sICp2YWx1ZTsKKyAgICB1bnNpZ25l ZCBpbnQgdmVuZG9yLCBwcm9kdWN0OworICAgIGludCByZXQ7CisKKyAgICBzbnByaW50ZihwYXRo LCBzaXplb2YocGF0aCksICIvc3lzL2Rldi9jaGFyLyVkOiVkL2RldmljZSIsIG1haiwgbWluKTsK KworICAgIHZhbHVlID0gc3lzZnNfdWV2ZW50X2dldChwYXRoLCAiUFJPRFVDVCIpOworICAgIGlm ICghdmFsdWUpCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgcmV0ID0gc3NjYW5mKHZh bHVlLCAiJXgvJXgiLCAmdmVuZG9yLCAmcHJvZHVjdCk7CisgICAgZnJlZSh2YWx1ZSk7CisKKyAg ICBpZiAocmV0IDw9IDApCisgICAgICAgIHJldHVybiAtZXJybm87CisKKyAgICBpbmZvLT52ZW5k b3IgPSB2ZW5kb3I7CisgICAgaW5mby0+cHJvZHVjdCA9IHByb2R1Y3Q7CisKKyAgICByZXR1cm4g MDsKK30KKworc3RhdGljIGludCBkcm1Qcm9jZXNzVXNiRGV2aWNlKGRybURldmljZVB0ciAqZGV2 aWNlLCBjb25zdCBjaGFyICpub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBub2RlX3R5cGUsIGludCBtYWosIGludCBtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCBmZXRjaF9kZXZpY2VpbmZvLCB1aW50MzJfdCBmbGFncykKK3sKKyAgICBkcm1E ZXZpY2VQdHIgZGV2OworICAgIGNoYXIgKnB0cjsKKyAgICBpbnQgcmV0OworCisgICAgZGV2ID0g ZHJtRGV2aWNlQWxsb2Mobm9kZV90eXBlLCBub2RlLCBzaXplb2YoZHJtVXNiQnVzSW5mbyksCisg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRybVVzYkRldmljZUluZm8pLCAmcHRyKTsK KyAgICBpZiAoIWRldikKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICBkZXYtPmJ1c3R5 cGUgPSBEUk1fQlVTX1VTQjsKKworICAgIGRldi0+YnVzaW5mby51c2IgPSAoZHJtVXNiQnVzSW5m b1B0cilwdHI7CisKKyAgICByZXQgPSBkcm1QYXJzZVVzYkJ1c0luZm8obWFqLCBtaW4sIGRldi0+ YnVzaW5mby51c2IpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICBnb3RvIGZyZWVfZGV2aWNl OworCisgICAgaWYgKGZldGNoX2RldmljZWluZm8pIHsKKyAgICAgICAgcHRyICs9IHNpemVvZihk cm1Vc2JCdXNJbmZvKTsKKyAgICAgICAgZGV2LT5kZXZpY2VpbmZvLnVzYiA9IChkcm1Vc2JEZXZp Y2VJbmZvUHRyKXB0cjsKKworICAgICAgICByZXQgPSBkcm1QYXJzZVVzYkRldmljZUluZm8obWFq LCBtaW4sIGRldi0+ZGV2aWNlaW5mby51c2IpOworICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAg ICAgICAgIGdvdG8gZnJlZV9kZXZpY2U7CisgICAgfQorCisgICAgKmRldmljZSA9IGRldjsKKwor ICAgIHJldHVybiAwOworCitmcmVlX2RldmljZToKKyAgICBmcmVlKGRldik7CisgICAgcmV0dXJu IHJldDsKK30KKwogLyogQ29uc2lkZXIgZGV2aWNlcyBsb2NhdGVkIG9uIHRoZSBzYW1lIGJ1cyBh cyBkdXBsaWNhdGUgYW5kIGZvbGQgdGhlIHJlc3BlY3RpdmUKICAqIGVudHJpZXMgaW50byBhIHNp bmdsZSBvbmUuCiAgKgpAQCAtMzQxMCw2ICszNTU2LDE0IEBAIGludCBkcm1HZXREZXZpY2UyKGlu dCBmZCwgdWludDMyX3QgZmxhZ3MsIGRybURldmljZVB0ciAqZGV2aWNlKQogICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERSTV9C VVNfVVNCOgorICAgICAgICAgICAgcmV0ID0gZHJtUHJvY2Vzc1VzYkRldmljZSgmZCwgbm9kZSwg bm9kZV90eXBlLCBtYWosIG1pbiwgdHJ1ZSwgZmxhZ3MpOworICAgICAgICAgICAgaWYgKHJldCkK KyAgICAgICAgICAgICAgICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAgICAgYnJlYWs7 CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBA IC0zNTQxLDYgKzM2OTUsMTUgQEAgaW50IGRybUdldERldmljZXMyKHVpbnQzMl90IGZsYWdzLCBk cm1EZXZpY2VQdHIgZGV2aWNlc1tdLCBpbnQgbWF4X2RldmljZXMpCiAgICAgICAgICAgICAgICAg Y29udGludWU7CiAKICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRFJNX0JVU19V U0I6CisgICAgICAgICAgICByZXQgPSBkcm1Qcm9jZXNzVXNiRGV2aWNlKCZkZXZpY2UsIG5vZGUs IG5vZGVfdHlwZSwgbWFqLCBtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRldmljZXMgIT0gTlVMTCwgZmxhZ3MpOworICAgICAgICAgICAgaWYgKHJldCkKKyAgICAg ICAgICAgICAgICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAgICAgYnJlYWs7CisKICAg ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CmRpZmYgLS1n aXQgYS94Zjg2ZHJtLmggYi94Zjg2ZHJtLmgKaW5kZXggYjM0MGZjNDZjZDQ0Li42NWQ1MzIxOTUw ZmMgMTAwNjQ0Ci0tLSBhL3hmODZkcm0uaAorKysgYi94Zjg2ZHJtLmgKQEAgLTc2Nyw2ICs3Njcs NyBAQCBleHRlcm4gY2hhciAqZHJtR2V0UHJpbWFyeURldmljZU5hbWVGcm9tRmQoaW50IGZkKTsK IGV4dGVybiBjaGFyICpkcm1HZXRSZW5kZXJEZXZpY2VOYW1lRnJvbUZkKGludCBmZCk7CiAKICNk ZWZpbmUgRFJNX0JVU19QQ0kgICAwCisjZGVmaW5lIERSTV9CVVNfVVNCICAgMQogCiB0eXBlZGVm IHN0cnVjdCBfZHJtUGNpQnVzSW5mbyB7CiAgICAgdWludDE2X3QgZG9tYWluOwpAQCAtNzgzLDE1 ICs3ODQsMjcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybVBjaURldmljZUluZm8gewogICAgIHVpbnQ4 X3QgcmV2aXNpb25faWQ7CiB9IGRybVBjaURldmljZUluZm8sICpkcm1QY2lEZXZpY2VJbmZvUHRy OwogCit0eXBlZGVmIHN0cnVjdCBfZHJtVXNiQnVzSW5mbyB7CisgICAgdWludDhfdCBidXM7Cisg ICAgdWludDhfdCBkZXY7Cit9IGRybVVzYkJ1c0luZm8sICpkcm1Vc2JCdXNJbmZvUHRyOworCit0 eXBlZGVmIHN0cnVjdCBfZHJtVXNiRGV2aWNlSW5mbyB7CisgICAgdWludDE2X3QgdmVuZG9yOwor ICAgIHVpbnQxNl90IHByb2R1Y3Q7Cit9IGRybVVzYkRldmljZUluZm8sICpkcm1Vc2JEZXZpY2VJ bmZvUHRyOworCiB0eXBlZGVmIHN0cnVjdCBfZHJtRGV2aWNlIHsKICAgICBjaGFyICoqbm9kZXM7 IC8qIERSTV9OT0RFX01BWCBzaXplZCBhcnJheSAqLwogICAgIGludCBhdmFpbGFibGVfbm9kZXM7 IC8qIERSTV9OT0RFXyogYml0bWFzayAqLwogICAgIGludCBidXN0eXBlOwogICAgIHVuaW9uIHsK ICAgICAgICAgZHJtUGNpQnVzSW5mb1B0ciBwY2k7CisgICAgICAgIGRybVVzYkJ1c0luZm9QdHIg dXNiOwogICAgIH0gYnVzaW5mbzsKICAgICB1bmlvbiB7CiAgICAgICAgIGRybVBjaURldmljZUlu Zm9QdHIgcGNpOworICAgICAgICBkcm1Vc2JEZXZpY2VJbmZvUHRyIHVzYjsKICAgICB9IGRldmlj ZWluZm87CiB9IGRybURldmljZSwgKmRybURldmljZVB0cjsKIAotLSAKMi4xMS4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp4b3JnLWRldmVsQGxpc3Rz Lngub3JnOiBYLk9yZyBkZXZlbG9wbWVudApBcmNoaXZlczogaHR0cDovL2xpc3RzLngub3JnL2Fy Y2hpdmVzL3hvcmctZGV2ZWwKSW5mbzogaHR0cHM6Ly9saXN0cy54Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hvcmctZGV2ZWw=