Date: Mon, 14 Jul 2008 16:00:15 GMT From: ddk ddk <ddkprog@yahoo.com> To: freebsd-usb@FreeBSD.org Subject: Re: usb/117911: [ums] [request] Mouse Gembird MUSWC not work Message-ID: <200807141600.m6EG0FvI044107@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR usb/117911; it has been noted by GNATS. From: ddk ddk <ddkprog@yahoo.com> To: bug-followup@FreeBSD.org, admin@lissyara.su Cc: Subject: Re: usb/117911: [ums] [request] Mouse Gembird MUSWC not work Date: Mon, 14 Jul 2008 05:52:03 -0700 (PDT) --0-923209554-1216039923=:43904 Content-Type: text/plain; charset=us-ascii hi! this problem an HID parser on FreeBSD and other *BSD system i'am use a krepdump http://people.freebsd.org/~kaiw/tools/krepdump.tgz to show full HID protocol dump from this USB Mouse ----------------------------------------------- [report desc size=79] USAGE PAGE Consumer(0xc) USAGE Consumer Control(0x1)[Consumer(0xc)] COLLECTION Application(1) REPORT ID 1 USAGE MINIMUM Unassigned(0) USAGE MAXIMUM AC Underline(576) LOGICAL MINIMUM 0 LOGICAL MAXIMUM 576 REPORT SIZE 16 REPORT COUNT 1 INPUT ( Data Array Absolute ) (0) END COLLECTION USAGE PAGE Generic Desktop(0x1) USAGE Mouse(0x2)[Generic Desktop(0x1)] COLLECTION Application(1) REPORT ID 2 USAGE Pointer(0x1)[Generic Desktop(0x1)] COLLECTION Physical(0) USAGE PAGE Button(0x9) USAGE MINIMUM Button1(1) USAGE MAXIMUM Button3(3) LOGICAL MINIMUM 0 LOGICAL MAXIMUM 1 REPORT SIZE 1 REPORT COUNT 3 INPUT ( Data Variable Absolute ) (2) REPORT SIZE 5 REPORT COUNT 1 INPUT ( Const Array Absolute ) (1) USAGE PAGE Generic Desktop(0x1) USAGE X(0x30)[Generic Desktop(0x1)] USAGE Y(0x31)[Generic Desktop(0x1)] USAGE Wheel(0x38)[Generic Desktop(0x1)] LOGICAL MINIMUM -127 LOGICAL MAXIMUM 127 REPORT SIZE 8 REPORT COUNT 3 INPUT ( Data Variable Relative ) (6) END COLLECTION END COLLECTION [hexdump] 0000 05 0C 09 01 A1 01 85 01 19 00 2A 40 02 15 00 26 0010 40 02 75 10 95 01 81 00 C0 05 01 09 02 A1 01 85 0020 02 09 01 A1 00 05 09 19 01 29 03 15 00 25 01 75 0030 01 95 03 81 02 75 05 95 01 81 01 05 01 09 30 09 0040 31 09 38 15 81 25 7F 75 08 95 03 81 06 C0 C0 -------------------------------------------------- as you can see this Mouse generate 2 HID protocol collection the first collection is USAGE PAGE Consumer(0xc) USAGE Consumer Control(0x1)[Consumer(0xc)] COLLECTION Application(1) REPORT ID 1 ... the second collection is USAGE PAGE Generic Desktop(0x1) USAGE Mouse(0x2)[Generic Desktop(0x1)] COLLECTION Application(1) REPORT ID 2 ... two collection describe a two protocol first protocol - AC line (Wireless Mouse from AC battarey) second protocol - Mouse movement an exists FreeBSD HID parser don't work with such collection to parse it used first collection, allways is't correct!! as example with this Mouse #kldload ums.ko #dmesg -a | grep ums ---------------------- ums_attach: 3 buttons ums_attach: X 24/8 ums_attach: Y 32/8 ums_attach: Z 40/8 ums_attach: B1 16/1 ums_attach: B2 17/1 ums_attach: B3 18/1 ums_attach: size=3, id=1 ---------------------- the HID parser use first HID collection to parse Mouse movenent Mouse not work!! i'am fixx the HID parser to correct use HID collection after patch http://paradox.org.ua/work/fixx.tar.bz2 ---------------------- ums_attach: 3 buttons ums_attach: X 8/8 ums_attach: Y 16/8 ums_attach: Z 24/8 ums_attach: B1 0/1 ums_attach: B2 1/1 ums_attach: B3 2/1 ums_attach: size=5, id=2 ---------------------- and Mouse works fine! i think this patch fixx fixed all USB Mouse problem an *BSD system --0-923209554-1216039923=:43904 Content-Type: text/plain; name="usb.fixx" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="usb.fixx" ZGlmZiAtdXJOIHVzYi5vcmlnL2hpZC5jIHVzYi5uZXcvaGlkLmMKLS0tIHVz Yi5vcmlnL2hpZC5jCTIwMDgtMDMtMDMgMDM6MTQ6NDcuMDAwMDAwMDAwICsw MjAwCisrKyB1c2IubmV3L2hpZC5jCTIwMDgtMDctMTQgMDI6MDM6MTMuMDAw MDAwMDAwICswMzAwCkBAIC03Miw2ICs3Miw3IEBACiAJaW50IG11bHRpOwog CWludCBtdWx0aW1heDsKIAlpbnQga2luZHNldDsKKwlpbnQgdXNhZ2U7CiB9 OwogCiBzdGF0aWMgdm9pZApAQCAtMTE1LDcgKzExNiw3IEBACiB9CiAKIGlu dAotaGlkX2dldF9pdGVtKHN0cnVjdCBoaWRfZGF0YSAqcywgc3RydWN0IGhp ZF9pdGVtICpoKQoraGlkX2dldF9pdGVtKHN0cnVjdCBoaWRfZGF0YSAqcywg dV9pbnQzMl90IHUsIHN0cnVjdCBoaWRfaXRlbSAqaCkKIHsKIAlzdHJ1Y3Qg aGlkX2l0ZW0gKmMgPSAmcy0+Y3VyOwogCXVuc2lnbmVkIGludCBiVGFnLCBi VHlwZSwgYlNpemU7CkBAIC0xOTMsNiArMTk0LDkgQEAKIAkJY2FzZSAwOgkJ CS8qIE1haW4gKi8KIAkJCXN3aXRjaCAoYlRhZykgewogCQkJY2FzZSA4OgkJ LyogSW5wdXQgKi8KKwkJCQlpZiAocy0+dXNhZ2UgIT0gdSA+PjE2ICYmIHUg IT0gMCkKKwkJCQkJYnJlYWs7CisKIAkJCQlpZiAoIShzLT5raW5kc2V0ICYg KDEgPDwgaGlkX2lucHV0KSkpCiAJCQkJCWNvbnRpbnVlOwogCQkJCWMtPmtp bmQgPSBoaWRfaW5wdXQ7CkBAIC0yMjMsNiArMjI3LDkgQEAKIAkJCQkJcmV0 dXJuICgxKTsKIAkJCQl9CiAJCQljYXNlIDk6CQkvKiBPdXRwdXQgKi8KKwkJ CQlpZiAocy0+dXNhZ2UgIT0gdSA+PjE2ICYmIHUgIT0gMCkKKwkJCQkJYnJl YWs7CisKIAkJCQlpZiAoIShzLT5raW5kc2V0ICYgKDEgPDwgaGlkX291dHB1 dCkpKQogCQkJCQljb250aW51ZTsKIAkJCQljLT5raW5kID0gaGlkX291dHB1 dDsKQEAgLTIzMiwxMSArMjM5LDE2IEBACiAJCQkJYy0+a2luZCA9IGhpZF9j b2xsZWN0aW9uOwogCQkJCWMtPmNvbGxlY3Rpb24gPSBkdmFsOwogCQkJCWMt PmNvbGxldmVsKys7CisJCQkJaWYgKGMtPmNvbGxldmVsID4gMCAmJiB1ICE9 IDApCisJCQkJCXMtPnVzYWdlID0gYy0+X3VzYWdlX3BhZ2UgPj4gMTY7CiAJ CQkJKmggPSAqYzsKIAkJCQloaWRfY2xlYXJfbG9jYWwoYyk7CiAJCQkJcy0+ bnUgPSAwOwogCQkJCXJldHVybiAoMSk7CiAJCQljYXNlIDExOgkvKiBGZWF0 dXJlICovCisJCQkJaWYgKHMtPnVzYWdlICE9IHUgPj4xNiAmJiB1ICE9IDAp CisJCQkJCWJyZWFrOworCiAJCQkJaWYgKCEocy0+a2luZHNldCAmICgxIDw8 IGhpZF9mZWF0dXJlKSkpCiAJCQkJCWNvbnRpbnVlOwogCQkJCWMtPmtpbmQg PSBoaWRfZmVhdHVyZTsKQEAgLTI1OCw2ICsyNzAsOSBAQAogCQkJc3dpdGNo IChiVGFnKSB7CiAJCQljYXNlIDA6CiAJCQkJYy0+X3VzYWdlX3BhZ2UgPSBk dmFsIDw8IDE2OworCisJCQkJaWYgKHUgIT0gMCAmJiB1Pj4xNiA9PSBkdmFs KQorCQkJCQlzLT51c2FnZSA9IGR2YWw7CiAJCQkJYnJlYWs7CiAJCQljYXNl IDE6CiAJCQkJYy0+bG9naWNhbF9taW5pbXVtID0gZHZhbDsKQEAgLTM2NCw3 ICszNzksNyBAQAogfQogCiBpbnQKLWhpZF9yZXBvcnRfc2l6ZSh2b2lkICpi dWYsIGludCBsZW4sIGVudW0gaGlkX2tpbmQgaywgdV9pbnQ4X3QgKmlkcCkK K2hpZF9yZXBvcnRfc2l6ZSh2b2lkICpidWYsIGludCBsZW4sIHVfaW50MzJf dCB1LCBlbnVtIGhpZF9raW5kIGssIHVfaW50OF90ICppZHApCiB7CiAJc3Ry dWN0IGhpZF9kYXRhICpkOwogCXN0cnVjdCBoaWRfaXRlbSBoOwpAQCAtMzcy LDcgKzM4Nyw3IEBACiAKIAlpZCA9IDA7CiAJaGkgPSBsbyA9IC0xOwotCWZv ciAoZCA9IGhpZF9zdGFydF9wYXJzZShidWYsIGxlbiwgMTw8ayk7IGhpZF9n ZXRfaXRlbShkLCAmaCk7ICkKKwlmb3IgKGQgPSBoaWRfc3RhcnRfcGFyc2Uo YnVmLCBsZW4sIDE8PGspOyBoaWRfZ2V0X2l0ZW0oZCwgdSwgJmgpOyApCiAJ CWlmIChoLmtpbmQgPT0gaykgewogCQkJaWYgKGgucmVwb3J0X0lEICE9IDAg JiYgIWlkKQogCQkJCWlkID0gaC5yZXBvcnRfSUQ7CkBAIC0zOTksNyArNDE0 LDcgQEAKIAlzdHJ1Y3QgaGlkX2RhdGEgKmQ7CiAJc3RydWN0IGhpZF9pdGVt IGg7CiAKLQlmb3IgKGQgPSBoaWRfc3RhcnRfcGFyc2UoZGVzYywgc2l6ZSwg MTw8ayk7IGhpZF9nZXRfaXRlbShkLCAmaCk7ICkgeworCWZvciAoZCA9IGhp ZF9zdGFydF9wYXJzZShkZXNjLCBzaXplLCAxPDxrKTsgaGlkX2dldF9pdGVt KGQsIHUsICZoKTsgKSB7CiAJCWlmIChoLmtpbmQgPT0gayAmJiAhKGguZmxh Z3MgJiBISU9fQ09OU1QpICYmIGgudXNhZ2UgPT0gdSkgewogCQkJaWYgKGxv YyAhPSBOVUxMKQogCQkJCSpsb2MgPSBoLmxvYzsKQEAgLTQ1Miw3ICs0Njcs NyBAQAogCWlmIChoZCA9PSBOVUxMKQogCQlyZXR1cm4gKDApOwogCi0JZXJy ID0gaGlkX2dldF9pdGVtKGhkLCAmaGkpICYmCisJZXJyID0gaGlkX2dldF9p dGVtKGhkLCB1c2FnZSwgJmhpKSAmJgogCSAgICBoaS5raW5kID09IGhpZF9j b2xsZWN0aW9uICYmCiAJICAgIGhpLnVzYWdlID09IHVzYWdlOwogCWhpZF9l bmRfcGFyc2UoaGQpOwpkaWZmIC11ck4gdXNiLm9yaWcvaGlkLmggdXNiLm5l dy9oaWQuaAotLS0gdXNiLm9yaWcvaGlkLmgJMjAwNS0wMS0xOSAxNzo1MTow My4wMDAwMDAwMDAgKzAyMDAKKysrIHVzYi5uZXcvaGlkLmgJMjAwOC0wNy0x MSAxOTozNTowOS4wMDAwMDAwMDAgKzAzMDAKQEAgLTgyLDggKzgyLDggQEAK IAogc3RydWN0IGhpZF9kYXRhICpoaWRfc3RhcnRfcGFyc2Uodm9pZCAqZCwg aW50IGxlbiwgaW50IGtpbmRzZXQpOwogdm9pZCBoaWRfZW5kX3BhcnNlKHN0 cnVjdCBoaWRfZGF0YSAqcyk7Ci1pbnQgaGlkX2dldF9pdGVtKHN0cnVjdCBo aWRfZGF0YSAqcywgc3RydWN0IGhpZF9pdGVtICpoKTsKLWludCBoaWRfcmVw b3J0X3NpemUodm9pZCAqYnVmLCBpbnQgbGVuLCBlbnVtIGhpZF9raW5kIGss IHVfaW50OF90ICppZCk7CitpbnQgaGlkX2dldF9pdGVtKHN0cnVjdCBoaWRf ZGF0YSAqcywgdV9pbnQzMl90IHUsIHN0cnVjdCBoaWRfaXRlbSAqaCk7Citp bnQgaGlkX3JlcG9ydF9zaXplKHZvaWQgKmJ1ZiwgaW50IGxlbiwgdV9pbnQz Ml90IHUsIGVudW0gaGlkX2tpbmQgaywgdV9pbnQ4X3QgKmlkKTsKIGludCBo aWRfbG9jYXRlKHZvaWQgKmRlc2MsIGludCBzaXplLCB1X2ludDMyX3QgdXNh Z2UsCiAJCSAgICBlbnVtIGhpZF9raW5kIGtpbmQsIHN0cnVjdCBoaWRfbG9j YXRpb24gKmxvYywKIAkJICAgIHVfaW50MzJfdCAqZmxhZ3MpOwpkaWZmIC11 ck4gdXNiLm9yaWcvdWN5Y29tLmMgdXNiLm5ldy91Y3ljb20uYwotLS0gdXNi Lm9yaWcvdWN5Y29tLmMJMjAwOC0wMy0wMyAwMzoxODoxMi4wMDAwMDAwMDAg KzAyMDAKKysrIHVzYi5uZXcvdWN5Y29tLmMJMjAwOC0wNy0xMiAwMzo0Njox MS4wMDAwMDAwMDAgKzAzMDAKQEAgLTIyMSw5ICsyMjEsOSBAQAogCX0KIAog CS8qIGdldCByZXBvcnQgc2l6ZXMgKi8KLQlzYy0+c2NfZmxlbiA9IGhpZF9y ZXBvcnRfc2l6ZSh1cmQsIHVyZGxlbiwgaGlkX2ZlYXR1cmUsICZzYy0+c2Nf ZmlkKTsKLQlzYy0+c2NfaWxlbiA9IGhpZF9yZXBvcnRfc2l6ZSh1cmQsIHVy ZGxlbiwgaGlkX2lucHV0LCAmc2MtPnNjX2lpZCk7Ci0Jc2MtPnNjX29sZW4g PSBoaWRfcmVwb3J0X3NpemUodXJkLCB1cmRsZW4sIGhpZF9vdXRwdXQsICZz Yy0+c2Nfb2lkKTsKKwlzYy0+c2NfZmxlbiA9IGhpZF9yZXBvcnRfc2l6ZSh1 cmQsIHVyZGxlbiwgMCwgaGlkX2ZlYXR1cmUsICZzYy0+c2NfZmlkKTsgLyog TkVFRCBUTyBCRSBGSVhYID8/Pz8/ICovCisJc2MtPnNjX2lsZW4gPSBoaWRf cmVwb3J0X3NpemUodXJkLCB1cmRsZW4sIDAsIGhpZF9pbnB1dCwgJnNjLT5z Y19paWQpOwkvKiBORUVEIFRPIEJFIEZJWFggPz8/Pz8gKi8KKwlzYy0+c2Nf b2xlbiA9IGhpZF9yZXBvcnRfc2l6ZSh1cmQsIHVyZGxlbiwgMCwgaGlkX291 dHB1dCwgJnNjLT5zY19vaWQpOwkvKiBORUVEIFRPIEJFIEZJWFggPz8/Pz8g Ki8KIAogCWlmIChzYy0+c2NfaWxlbiA+IFVDWUNPTV9NQVhfSU9MRU4gfHwg c2MtPnNjX29sZW4gPiBVQ1lDT01fTUFYX0lPTEVOKSB7CiAJCWRldmljZV9w cmludGYoZGV2LCAiSS9PIHJlcG9ydCBzaXplIHRvbyBiaWcgKCV6dSwgJXp1 LCAldSlcbiIsCmRpZmYgLXVyTiB1c2Iub3JpZy91aGlkLmMgdXNiLm5ldy91 aGlkLmMKLS0tIHVzYi5vcmlnL3VoaWQuYwkyMDA3LTA2LTIxIDE3OjQyOjMz LjAwMDAwMDAwMCArMDMwMAorKysgdXNiLm5ldy91aGlkLmMJMjAwOC0wNy0x MiAwMjoxNzoyNi4wMDAwMDAwMDAgKzAzMDAKQEAgLTMyMCw5ICszMjAsOSBA QAogCiAJKHZvaWQpdXNiZF9zZXRfaWRsZShpZmFjZSwgMCwgMCk7CiAKLQlz Yy0+c2NfaXNpemUgPSBoaWRfcmVwb3J0X3NpemUoZGVzYywgc2l6ZSwgaGlk X2lucHV0LCAgICZzYy0+c2NfaWlkKTsKLQlzYy0+c2Nfb3NpemUgPSBoaWRf cmVwb3J0X3NpemUoZGVzYywgc2l6ZSwgaGlkX291dHB1dCwgICZzYy0+c2Nf b2lkKTsKLQlzYy0+c2NfZnNpemUgPSBoaWRfcmVwb3J0X3NpemUoZGVzYywg c2l6ZSwgaGlkX2ZlYXR1cmUsICZzYy0+c2NfZmlkKTsKKwlzYy0+c2NfaXNp emUgPSBoaWRfcmVwb3J0X3NpemUoZGVzYywgc2l6ZSwgMCwgaGlkX2lucHV0 LCAgICZzYy0+c2NfaWlkKTsKKwlzYy0+c2Nfb3NpemUgPSBoaWRfcmVwb3J0 X3NpemUoZGVzYywgc2l6ZSwgMCwgaGlkX291dHB1dCwgICZzYy0+c2Nfb2lk KTsKKwlzYy0+c2NfZnNpemUgPSBoaWRfcmVwb3J0X3NpemUoZGVzYywgc2l6 ZSwgMCwgaGlkX2ZlYXR1cmUsICZzYy0+c2NfZmlkKTsKIAogCXNjLT5zY19y ZXBkZXNjID0gZGVzYzsKIAlzYy0+c2NfcmVwZGVzY19zaXplID0gc2l6ZTsK ZGlmZiAtdXJOIHVzYi5vcmlnL3Vtcy5jIHVzYi5uZXcvdW1zLmMKLS0tIHVz Yi5vcmlnL3Vtcy5jCTIwMDgtMDQtMzAgMjI6Mzc6NTQuMDAwMDAwMDAwICsw MzAwCisrKyB1c2IubmV3L3Vtcy5jCTIwMDgtMDctMTEgMTk6NTY6MjAuMDAw MDAwMDAwICswMzAwCkBAIC0zNTgsNyArMzU4LDggQEAKIAkJaGlkX2xvY2F0 ZShkZXNjLCBzaXplLCBISURfVVNBR0UyKEhVUF9CVVRUT04sIGkpLAogCQkJ CWhpZF9pbnB1dCwgJnNjLT5zY19sb2NfYnRuW2ktMV0sIDApOwogCi0Jc2Mt PnNjX2lzaXplID0gaGlkX3JlcG9ydF9zaXplKGRlc2MsIHNpemUsIGhpZF9p bnB1dCwgJnNjLT5zY19paWQpOworCXNjLT5zY19pc2l6ZSA9IGhpZF9yZXBv cnRfc2l6ZShkZXNjLCBzaXplLCBISURfVVNBR0UyKEhVUF9HRU5FUklDX0RF U0tUT1AsIEhVR19NT1VTRSksCisJCQkJCWhpZF9pbnB1dCwgJnNjLT5zY19p aWQpOwogCXNjLT5zY19pYnVmID0gbWFsbG9jKHNjLT5zY19pc2l6ZSwgTV9V U0IsIE1fTk9XQUlUKTsKIAlpZiAoIXNjLT5zY19pYnVmKSB7CiAJCXByaW50 ZigiJXM6IG5vIG1lbW9yeVxuIiwgZGV2aWNlX2dldF9uYW1ldW5pdChzYy0+ c2NfZGV2KSk7CkBAIC0zOTMsNiArMzk0LDcgQEAKIAkgKiBkZXNjcmlwdG9y KSwgaXQgc2VlbXMgdGhhdCByZXBvcnQgaWQgMTcgY29udGFpbnMgdGhlIG5l Y2Vzc2FyeQogCSAqIG1vdXNlIGluZm9ybWF0aW9uKDMtYnV0dG9ucyxYLFks d2hlZWwpIHNvIHdlIHNwZWNpZnkgaXQgbWFudWFsbHkuCiAJICovCisJLyog SVMgSVQgTkVTU0VTQVJZID8/PyBORUVEIFRPIEJFIFJFQ0hFQ0sgISEhISEh ISBBTkQgRVhDTFVERSAqLwogCWlmICh1YWEtPnZlbmRvciA9PSBVU0JfVkVO RE9SX01JQ1JPU09GVCAmJgogCSAgICB1YWEtPnByb2R1Y3QgPT0gVVNCX1BS T0RVQ1RfTUlDUk9TT0ZUX1dMTk9URUJPT0szKSB7CiAJCXNjLT5mbGFncyA9 IFVNU19aOwo=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807141600.m6EG0FvI044107>