usb/117911: [ums] [request] Mouse Gembird MUSWC not work
ddk ddk
ddkprog at yahoo.com
Mon Jul 14 16:00:15 UTC 2008
The following reply was made to PR usb/117911; it has been noted by GNATS.
From: ddk ddk <ddkprog at yahoo.com>
To: bug-followup at FreeBSD.org, admin at 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=
More information about the freebsd-usb
mailing list