From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm v3 2/5] xf86drm: Add USB support Date: Wed, 18 Jan 2017 10:02:06 +0100 Message-ID: <20170118090209.13819-3-thierry.reding@gmail.com> References: <20170118090209.13819-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: <20170118090209.13819-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: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org, Thierry Reding , Emil Velikov List-Id: dri-devel@lists.freedesktop.org QWxsb3cgRFJNL0tNUyBkZXZpY2VzIGhvc3RlZCBvbiBVU0IgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhl IGRybURldmljZQppbmZyYXN0cnVjdHVyZS4KCnYzOgotIGd1YXJkIExpbnV4LXNwZWNpZmljIHN5 c2ZzIHBhcnNpbmcgY29kZSB3aXRoICNpZmRlZiBfX2xpbnV4X18KCnYyOgotIG1ha2Ugc3lzZnNf dWV2ZW50X2dldCgpIG1vcmUgZmxleGlibGUgdXNpbmcgYSBmb3JtYXQgc3RyaW5nCgpTaWduZWQt b2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgotLS0KIHhm ODZkcm0uYyB8IDE3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogeGY4NmRybS5oIHwgIDEzICsrKysrCiAyIGZpbGVzIGNoYW5n ZWQsIDE4OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGY4NmRybS5jIGIveGY4NmRybS5j CmluZGV4IDc3NjZiZmU5MzdkYi4uZDgzNjc0ZTYzOGM0IDEwMDY0NAotLS0gYS94Zjg2ZHJtLmMK KysrIGIveGY4NmRybS5jCkBAIC0yODg2LDYgKzI4ODYsNTAgQEAgY2hhciAqZHJtR2V0UmVuZGVy RGV2aWNlTmFtZUZyb21GZChpbnQgZmQpCiAgICAgcmV0dXJuIGRybUdldE1pbm9yTmFtZUZvckZE KGZkLCBEUk1fTk9ERV9SRU5ERVIpOwogfQogCisjaWZkZWYgX19saW51eF9fCitzdGF0aWMgY2hh ciAqIERSTV9QUklOVEZMSUtFKDIsIDMpCitzeXNmc191ZXZlbnRfZ2V0KGNvbnN0IGNoYXIgKnBh dGgsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworICAgIGNoYXIgZmlsZW5hbWVbUEFUSF9NQVgg KyAxXSwgKmtleSwgKmxpbmUgPSBOVUxMLCAqdmFsdWUgPSBOVUxMOworICAgIHNpemVfdCBzaXpl ID0gMCwgbGVuOworICAgIHNzaXplX3QgbnVtOworICAgIHZhX2xpc3QgYXA7CisgICAgRklMRSAq ZnA7CisKKyAgICB2YV9zdGFydChhcCwgZm10KTsKKyAgICBudW0gPSB2YXNwcmludGYoJmtleSwg Zm10LCBhcCk7CisgICAgdmFfZW5kKGFwKTsKKyAgICBsZW4gPSBudW07CisKKyAgICBzbnByaW50 ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIiVzL3VldmVudCIsIHBhdGgpOworCisgICAg ZnAgPSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyAgICBpZiAoIWZwKSB7CisgICAgICAgIGZyZWUo a2V5KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgd2hpbGUgKChudW0gPSBn ZXRsaW5lKCZsaW5lLCAmc2l6ZSwgZnApKSA+PSAwKSB7CisgICAgICAgIGlmICgoc3RybmNtcChs aW5lLCBrZXksIGxlbikgPT0gMCkgJiYgKGxpbmVbbGVuXSA9PSAnPScpKSB7CisgICAgICAgICAg ICBjaGFyICpzdGFydCA9IGxpbmUgKyBsZW4gKyAxLCAqZW5kID0gbGluZSArIG51bSAtIDE7CisK KyAgICAgICAgICAgIGlmICgqZW5kICE9ICdcbicpCisgICAgICAgICAgICAgICAgZW5kKys7CisK KyAgICAgICAgICAgIHZhbHVlID0gc3RybmR1cChzdGFydCwgZW5kIC0gc3RhcnQpOworICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmcmVlKGxpbmUpOworICAgIGZj bG9zZShmcCk7CisKKyAgICBmcmVlKGtleSk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisjZW5k aWYKKwogc3RhdGljIGludCBkcm1QYXJzZVN1YnN5c3RlbVR5cGUoaW50IG1haiwgaW50IG1pbikK IHsKICNpZmRlZiBfX2xpbnV4X18KQEAgLTI5MDYsNiArMjk1MCw5IEBAIHN0YXRpYyBpbnQgZHJt UGFyc2VTdWJzeXN0ZW1UeXBlKGludCBtYWosIGludCBtaW4pCiAgICAgaWYgKHN0cm5jbXAobmFt ZSwgIi9wY2kiLCA0KSA9PSAwKQogICAgICAgICByZXR1cm4gRFJNX0JVU19QQ0k7CiAKKyAgICBp ZiAoc3RybmNtcChuYW1lLCAiL3VzYiIsIDQpID09IDApCisgICAgICAgIHJldHVybiBEUk1fQlVT X1VTQjsKKwogICAgIHJldHVybiAtRUlOVkFMOwogI2VsaWYgZGVmaW5lZChfX09wZW5CU0RfXykK ICAgICByZXR1cm4gRFJNX0JVU19QQ0k7CkBAIC0yOTkyLDYgKzMwMzksMTAgQEAgc3RhdGljIGlu dCBkcm1Db21wYXJlQnVzSW5mbyhkcm1EZXZpY2VQdHIgYSwgZHJtRGV2aWNlUHRyIGIpCiAgICAg c3dpdGNoIChhLT5idXN0eXBlKSB7CiAgICAgY2FzZSBEUk1fQlVTX1BDSToKICAgICAgICAgcmV0 dXJuIG1lbWNtcChhLT5idXNpbmZvLnBjaSwgYi0+YnVzaW5mby5wY2ksIHNpemVvZihkcm1QY2lC dXNJbmZvKSk7CisKKyAgICBjYXNlIERSTV9CVVNfVVNCOgorICAgICAgICByZXR1cm4gbWVtY21w KGEtPmJ1c2luZm8udXNiLCBiLT5idXNpbmZvLnVzYiwgc2l6ZW9mKGRybVVzYkJ1c0luZm8pKTsK KwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTMyMzUsNiArMzI4Niwx MTMgQEAgZnJlZV9kZXZpY2U6CiAgICAgcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBkcm1Q YXJzZVVzYkJ1c0luZm8oaW50IG1haiwgaW50IG1pbiwgZHJtVXNiQnVzSW5mb1B0ciBpbmZvKQor eworI2lmZGVmIF9fbGludXhfXworICAgIGNoYXIgcGF0aFtQQVRIX01BWCArIDFdLCAqdmFsdWU7 CisgICAgdW5zaWduZWQgaW50IGJ1cywgZGV2OworICAgIGludCByZXQ7CisKKyAgICBzbnByaW50 ZihwYXRoLCBzaXplb2YocGF0aCksICIvc3lzL2Rldi9jaGFyLyVkOiVkL2RldmljZSIsIG1haiwg bWluKTsKKworICAgIHZhbHVlID0gc3lzZnNfdWV2ZW50X2dldChwYXRoLCAiQlVTTlVNIik7Cisg ICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAgICByZXQgPSBzc2Nh bmYodmFsdWUsICIlMDN1IiwgJmJ1cyk7CisgICAgZnJlZSh2YWx1ZSk7CisKKyAgICBpZiAocmV0 IDw9IDApCisgICAgICAgIHJldHVybiAtZXJybm87CisKKyAgICB2YWx1ZSA9IHN5c2ZzX3VldmVu dF9nZXQocGF0aCwgIkRFVk5VTSIpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiAt RU5PRU5UOworCisgICAgcmV0ID0gc3NjYW5mKHZhbHVlLCAiJTAzdSIsICZkZXYpOworICAgIGZy ZWUodmFsdWUpOworCisgICAgaWYgKHJldCA8PSAwKQorICAgICAgICByZXR1cm4gLWVycm5vOwor CisgICAgaW5mby0+YnVzID0gYnVzOworICAgIGluZm8tPmRldiA9IGRldjsKKworICAgIHJldHVy biAwOworI2Vsc2UKKyN3YXJuaW5nICJNaXNzaW5nIGltcGxlbWVudGF0aW9uIG9mIGRybVBhcnNl VXNiQnVzSW5mbyIKKyAgICByZXR1cm4gLUVJTlZBTDsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50 IGRybVBhcnNlVXNiRGV2aWNlSW5mbyhpbnQgbWFqLCBpbnQgbWluLCBkcm1Vc2JEZXZpY2VJbmZv UHRyIGluZm8pCit7CisjaWZkZWYgX19saW51eF9fCisgICAgY2hhciBwYXRoW1BBVEhfTUFYICsg MV0sICp2YWx1ZTsKKyAgICB1bnNpZ25lZCBpbnQgdmVuZG9yLCBwcm9kdWN0OworICAgIGludCBy ZXQ7CisKKyAgICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvc3lzL2Rldi9jaGFyLyVk OiVkL2RldmljZSIsIG1haiwgbWluKTsKKworICAgIHZhbHVlID0gc3lzZnNfdWV2ZW50X2dldChw YXRoLCAiUFJPRFVDVCIpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiAtRU5PRU5U OworCisgICAgcmV0ID0gc3NjYW5mKHZhbHVlLCAiJXgvJXgiLCAmdmVuZG9yLCAmcHJvZHVjdCk7 CisgICAgZnJlZSh2YWx1ZSk7CisKKyAgICBpZiAocmV0IDw9IDApCisgICAgICAgIHJldHVybiAt ZXJybm87CisKKyAgICBpbmZvLT52ZW5kb3IgPSB2ZW5kb3I7CisgICAgaW5mby0+cHJvZHVjdCA9 IHByb2R1Y3Q7CisKKyAgICByZXR1cm4gMDsKKyNlbHNlCisjd2FybmluZyAiTWlzc2luZyBpbXBs ZW1lbnRhdGlvbiBvZiBkcm1QYXJzZVVzYkRldmljZUluZm8iCisgICAgcmV0dXJuIC1FSU5WQUw7 CisjZW5kaWYKK30KKworc3RhdGljIGludCBkcm1Qcm9jZXNzVXNiRGV2aWNlKGRybURldmljZVB0 ciAqZGV2aWNlLCBjb25zdCBjaGFyICpub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBub2RlX3R5cGUsIGludCBtYWosIGludCBtaW4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCBmZXRjaF9kZXZpY2VpbmZvLCB1aW50MzJfdCBmbGFncykKK3sKKyAg ICBkcm1EZXZpY2VQdHIgZGV2OworICAgIGNoYXIgKnB0cjsKKyAgICBpbnQgcmV0OworCisgICAg ZGV2ID0gZHJtRGV2aWNlQWxsb2Mobm9kZV90eXBlLCBub2RlLCBzaXplb2YoZHJtVXNiQnVzSW5m byksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRybVVzYkRldmljZUluZm8pLCAm cHRyKTsKKyAgICBpZiAoIWRldikKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICBkZXYt PmJ1c3R5cGUgPSBEUk1fQlVTX1VTQjsKKworICAgIGRldi0+YnVzaW5mby51c2IgPSAoZHJtVXNi QnVzSW5mb1B0cilwdHI7CisKKyAgICByZXQgPSBkcm1QYXJzZVVzYkJ1c0luZm8obWFqLCBtaW4s IGRldi0+YnVzaW5mby51c2IpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICBnb3RvIGZyZWVf ZGV2aWNlOworCisgICAgaWYgKGZldGNoX2RldmljZWluZm8pIHsKKyAgICAgICAgcHRyICs9IHNp emVvZihkcm1Vc2JCdXNJbmZvKTsKKyAgICAgICAgZGV2LT5kZXZpY2VpbmZvLnVzYiA9IChkcm1V c2JEZXZpY2VJbmZvUHRyKXB0cjsKKworICAgICAgICByZXQgPSBkcm1QYXJzZVVzYkRldmljZUlu Zm8obWFqLCBtaW4sIGRldi0+ZGV2aWNlaW5mby51c2IpOworICAgICAgICBpZiAocmV0IDwgMCkK KyAgICAgICAgICAgIGdvdG8gZnJlZV9kZXZpY2U7CisgICAgfQorCisgICAgKmRldmljZSA9IGRl djsKKworICAgIHJldHVybiAwOworCitmcmVlX2RldmljZToKKyAgICBmcmVlKGRldik7CisgICAg cmV0dXJuIHJldDsKK30KKwogLyogQ29uc2lkZXIgZGV2aWNlcyBsb2NhdGVkIG9uIHRoZSBzYW1l IGJ1cyBhcyBkdXBsaWNhdGUgYW5kIGZvbGQgdGhlIHJlc3BlY3RpdmUKICAqIGVudHJpZXMgaW50 byBhIHNpbmdsZSBvbmUuCiAgKgpAQCAtMzQxMCw2ICszNTY4LDE0IEBAIGludCBkcm1HZXREZXZp Y2UyKGludCBmZCwgdWludDMyX3QgZmxhZ3MsIGRybURldmljZVB0ciAqZGV2aWNlKQogICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNl IERSTV9CVVNfVVNCOgorICAgICAgICAgICAgcmV0ID0gZHJtUHJvY2Vzc1VzYkRldmljZSgmZCwg bm9kZSwgbm9kZV90eXBlLCBtYWosIG1pbiwgdHJ1ZSwgZmxhZ3MpOworICAgICAgICAgICAgaWYg KHJldCkKKyAgICAgICAgICAgICAgICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAgICAg YnJlYWs7CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg ICB9CkBAIC0zNTQxLDYgKzM3MDcsMTUgQEAgaW50IGRybUdldERldmljZXMyKHVpbnQzMl90IGZs YWdzLCBkcm1EZXZpY2VQdHIgZGV2aWNlc1tdLCBpbnQgbWF4X2RldmljZXMpCiAgICAgICAgICAg ICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRFJN X0JVU19VU0I6CisgICAgICAgICAgICByZXQgPSBkcm1Qcm9jZXNzVXNiRGV2aWNlKCZkZXZpY2Us IG5vZGUsIG5vZGVfdHlwZSwgbWFqLCBtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRldmljZXMgIT0gTlVMTCwgZmxhZ3MpOworICAgICAgICAgICAgaWYgKHJldCkK KyAgICAgICAgICAgICAgICBnb3RvIGZyZWVfZGV2aWNlczsKKworICAgICAgICAgICAgYnJlYWs7 CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CmRp ZmYgLS1naXQgYS94Zjg2ZHJtLmggYi94Zjg2ZHJtLmgKaW5kZXggYjM0MGZjNDZjZDQ0Li42NWQ1 MzIxOTUwZmMgMTAwNjQ0Ci0tLSBhL3hmODZkcm0uaAorKysgYi94Zjg2ZHJtLmgKQEAgLTc2Nyw2 ICs3NjcsNyBAQCBleHRlcm4gY2hhciAqZHJtR2V0UHJpbWFyeURldmljZU5hbWVGcm9tRmQoaW50 IGZkKTsKIGV4dGVybiBjaGFyICpkcm1HZXRSZW5kZXJEZXZpY2VOYW1lRnJvbUZkKGludCBmZCk7 CiAKICNkZWZpbmUgRFJNX0JVU19QQ0kgICAwCisjZGVmaW5lIERSTV9CVVNfVVNCICAgMQogCiB0 eXBlZGVmIHN0cnVjdCBfZHJtUGNpQnVzSW5mbyB7CiAgICAgdWludDE2X3QgZG9tYWluOwpAQCAt NzgzLDE1ICs3ODQsMjcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybVBjaURldmljZUluZm8gewogICAg IHVpbnQ4X3QgcmV2aXNpb25faWQ7CiB9IGRybVBjaURldmljZUluZm8sICpkcm1QY2lEZXZpY2VJ bmZvUHRyOwogCit0eXBlZGVmIHN0cnVjdCBfZHJtVXNiQnVzSW5mbyB7CisgICAgdWludDhfdCBi dXM7CisgICAgdWludDhfdCBkZXY7Cit9IGRybVVzYkJ1c0luZm8sICpkcm1Vc2JCdXNJbmZvUHRy OworCit0eXBlZGVmIHN0cnVjdCBfZHJtVXNiRGV2aWNlSW5mbyB7CisgICAgdWludDE2X3QgdmVu ZG9yOworICAgIHVpbnQxNl90IHByb2R1Y3Q7Cit9IGRybVVzYkRldmljZUluZm8sICpkcm1Vc2JE ZXZpY2VJbmZvUHRyOworCiB0eXBlZGVmIHN0cnVjdCBfZHJtRGV2aWNlIHsKICAgICBjaGFyICoq bm9kZXM7IC8qIERSTV9OT0RFX01BWCBzaXplZCBhcnJheSAqLwogICAgIGludCBhdmFpbGFibGVf bm9kZXM7IC8qIERSTV9OT0RFXyogYml0bWFzayAqLwogICAgIGludCBidXN0eXBlOwogICAgIHVu aW9uIHsKICAgICAgICAgZHJtUGNpQnVzSW5mb1B0ciBwY2k7CisgICAgICAgIGRybVVzYkJ1c0lu Zm9QdHIgdXNiOwogICAgIH0gYnVzaW5mbzsKICAgICB1bmlvbiB7CiAgICAgICAgIGRybVBjaURl dmljZUluZm9QdHIgcGNpOworICAgICAgICBkcm1Vc2JEZXZpY2VJbmZvUHRyIHVzYjsKICAgICB9 IGRldmljZWluZm87CiB9IGRybURldmljZSwgKmRybURldmljZVB0cjsKIAotLSAKMi4xMS4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp4b3JnLWRldmVs QGxpc3RzLngub3JnOiBYLk9yZyBkZXZlbG9wbWVudApBcmNoaXZlczogaHR0cDovL2xpc3RzLngu b3JnL2FyY2hpdmVzL3hvcmctZGV2ZWwKSW5mbzogaHR0cHM6Ly9saXN0cy54Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL3hvcmctZGV2ZWw=