usb/117911: [ums] [request] Mouse Gembird MUSWC not work
Alex Keda
admin at lissyara.su
Mon Jul 14 16:50:05 UTC 2008
The following reply was made to PR usb/117911; it has been noted by GNATS.
From: Alex Keda <admin at lissyara.su>
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 20:42:08 +0400
This is a multi-part message in MIME format.
--------------050502020101000706000208
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
resend mail.
============
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
--------------050502020101000706000208
Content-Type: text/plain;
name="usb.diff"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="usb.diff"
ZGlmZiAtTnJ1IHN5cy9kZXYvdXNiLm9yaWcvaGlkLmMgc3lzL2Rldi91c2IvaGlkLmMKLS0t
IHN5cy9kZXYvdXNiLm9yaWcvaGlkLmMJMjAwNy0wNi0yMCAwOToxMDo1Mi4wMDAwMDAwMDAg
KzA0MDAKKysrIHN5cy9kZXYvdXNiL2hpZC5jCTIwMDgtMDctMTQgMTY6MDE6MzkuMDAwMDAw
MDAwICswNDAwCkBAIC03Miw2ICs3Miw3IEBACiAJaW50IG11bHRpOwogCWludCBtdWx0aW1h
eDsKIAlpbnQga2luZHNldDsKKwlpbnQgdXNhZ2U7CiB9OwogCiBzdGF0aWMgdm9pZApAQCAt
MTE1LDcgKzExNiw3IEBACiB9CiAKIGludAotaGlkX2dldF9pdGVtKHN0cnVjdCBoaWRfZGF0
YSAqcywgc3RydWN0IGhpZF9pdGVtICpoKQoraGlkX2dldF9pdGVtKHN0cnVjdCBoaWRfZGF0
YSAqcywgdV9pbnQzMl90IHUsIHN0cnVjdCBoaWRfaXRlbSAqaCkKIHsKIAlzdHJ1Y3QgaGlk
X2l0ZW0gKmMgPSAmcy0+Y3VyOwogCXVuc2lnbmVkIGludCBiVGFnLCBiVHlwZSwgYlNpemU7
CkBAIC0xOTMsNiArMTk0LDkgQEAKIAkJY2FzZSAwOgkJCS8qIE1haW4gKi8KIAkJCXN3aXRj
aCAoYlRhZykgewogCQkJY2FzZSA4OgkJLyogSW5wdXQgKi8KKwkJCQlpZiAocy0+dXNhZ2Ug
IT0gdSA+PjE2ICYmIHUgIT0gMCkKKwkJCQkJYnJlYWs7CisKIAkJCQlpZiAoIShzLT5raW5k
c2V0ICYgKDEgPDwgaGlkX2lucHV0KSkpCiAJCQkJCWNvbnRpbnVlOwogCQkJCWMtPmtpbmQg
PSBoaWRfaW5wdXQ7CkBAIC0yMjMsNiArMjI3LDkgQEAKIAkJCQkJcmV0dXJuICgxKTsKIAkJ
CQl9CiAJCQljYXNlIDk6CQkvKiBPdXRwdXQgKi8KKwkJCQlpZiAocy0+dXNhZ2UgIT0gdSA+
PjE2ICYmIHUgIT0gMCkKKwkJCQkJYnJlYWs7CisKIAkJCQlpZiAoIShzLT5raW5kc2V0ICYg
KDEgPDwgaGlkX291dHB1dCkpKQogCQkJCQljb250aW51ZTsKIAkJCQljLT5raW5kID0gaGlk
X291dHB1dDsKQEAgLTIzMiwxMSArMjM5LDE2IEBACiAJCQkJYy0+a2luZCA9IGhpZF9jb2xs
ZWN0aW9uOwogCQkJCWMtPmNvbGxlY3Rpb24gPSBkdmFsOwogCQkJCWMtPmNvbGxldmVsKys7
CisJCQkJaWYgKGMtPmNvbGxldmVsID4gMCAmJiB1ICE9IDApCisJCQkJCXMtPnVzYWdlID0g
Yy0+X3VzYWdlX3BhZ2UgPj4gMTY7CiAJCQkJKmggPSAqYzsKIAkJCQloaWRfY2xlYXJfbG9j
YWwoYyk7CiAJCQkJcy0+bnUgPSAwOwogCQkJCXJldHVybiAoMSk7CiAJCQljYXNlIDExOgkv
KiBGZWF0dXJlICovCisJCQkJaWYgKHMtPnVzYWdlICE9IHUgPj4xNiAmJiB1ICE9IDApCisJ
CQkJCWJyZWFrOworCiAJCQkJaWYgKCEocy0+a2luZHNldCAmICgxIDw8IGhpZF9mZWF0dXJl
KSkpCiAJCQkJCWNvbnRpbnVlOwogCQkJCWMtPmtpbmQgPSBoaWRfZmVhdHVyZTsKQEAgLTI1
OCw2ICsyNzAsOSBAQAogCQkJc3dpdGNoIChiVGFnKSB7CiAJCQljYXNlIDA6CiAJCQkJYy0+
X3VzYWdlX3BhZ2UgPSBkdmFsIDw8IDE2OworCisJCQkJaWYgKHUgIT0gMCAmJiB1Pj4xNiA9
PSBkdmFsKQorCQkJCQlzLT51c2FnZSA9IGR2YWw7CiAJCQkJYnJlYWs7CiAJCQljYXNlIDE6
CiAJCQkJYy0+bG9naWNhbF9taW5pbXVtID0gZHZhbDsKQEAgLTM2NCw3ICszNzksNyBAQAog
fQogCiBpbnQKLWhpZF9yZXBvcnRfc2l6ZSh2b2lkICpidWYsIGludCBsZW4sIGVudW0gaGlk
X2tpbmQgaywgdV9pbnQ4X3QgKmlkcCkKK2hpZF9yZXBvcnRfc2l6ZSh2b2lkICpidWYsIGlu
dCBsZW4sIHVfaW50MzJfdCB1LCBlbnVtIGhpZF9raW5kIGssIHVfaW50OF90ICppZHApCiB7
CiAJc3RydWN0IGhpZF9kYXRhICpkOwogCXN0cnVjdCBoaWRfaXRlbSBoOwpAQCAtMzcyLDcg
KzM4Nyw3IEBACiAKIAlpZCA9IDA7CiAJaGkgPSBsbyA9IC0xOwotCWZvciAoZCA9IGhpZF9z
dGFydF9wYXJzZShidWYsIGxlbiwgMTw8ayk7IGhpZF9nZXRfaXRlbShkLCAmaCk7ICkKKwlm
b3IgKGQgPSBoaWRfc3RhcnRfcGFyc2UoYnVmLCBsZW4sIDE8PGspOyBoaWRfZ2V0X2l0ZW0o
ZCwgdSwgJmgpOyApCiAJCWlmIChoLmtpbmQgPT0gaykgewogCQkJaWYgKGgucmVwb3J0X0lE
ICE9IDAgJiYgIWlkKQogCQkJCWlkID0gaC5yZXBvcnRfSUQ7CkBAIC0zOTksNyArNDE0LDcg
QEAKIAlzdHJ1Y3QgaGlkX2RhdGEgKmQ7CiAJc3RydWN0IGhpZF9pdGVtIGg7CiAKLQlmb3Ig
KGQgPSBoaWRfc3RhcnRfcGFyc2UoZGVzYywgc2l6ZSwgMTw8ayk7IGhpZF9nZXRfaXRlbShk
LCAmaCk7ICkgeworCWZvciAoZCA9IGhpZF9zdGFydF9wYXJzZShkZXNjLCBzaXplLCAxPDxr
KTsgaGlkX2dldF9pdGVtKGQsIHUsICZoKTsgKSB7CiAJCWlmIChoLmtpbmQgPT0gayAmJiAh
KGguZmxhZ3MgJiBISU9fQ09OU1QpICYmIGgudXNhZ2UgPT0gdSkgewogCQkJaWYgKGxvYyAh
PSBOVUxMKQogCQkJCSpsb2MgPSBoLmxvYzsKQEAgLTQ1Miw3ICs0NjcsNyBAQAogCWlmICho
ZCA9PSBOVUxMKQogCQlyZXR1cm4gKDApOwogCi0JZXJyID0gaGlkX2dldF9pdGVtKGhkLCAm
aGkpICYmCisJZXJyID0gaGlkX2dldF9pdGVtKGhkLCB1c2FnZSwgJmhpKSAmJgogCSAgICBo
aS5raW5kID09IGhpZF9jb2xsZWN0aW9uICYmCiAJICAgIGhpLnVzYWdlID09IHVzYWdlOwog
CWhpZF9lbmRfcGFyc2UoaGQpOwpkaWZmIC1OcnUgc3lzL2Rldi91c2Iub3JpZy9oaWQuaCBz
eXMvZGV2L3VzYi9oaWQuaAotLS0gc3lzL2Rldi91c2Iub3JpZy9oaWQuaAkyMDA1LTAxLTA2
IDA0OjQzOjI3LjAwMDAwMDAwMCArMDMwMAorKysgc3lzL2Rldi91c2IvaGlkLmgJMjAwOC0w
Ny0xNCAxNjowMTozOS4wMDAwMDAwMDAgKzA0MDAKQEAgLTgyLDggKzgyLDggQEAKIAogc3Ry
dWN0IGhpZF9kYXRhICpoaWRfc3RhcnRfcGFyc2Uodm9pZCAqZCwgaW50IGxlbiwgaW50IGtp
bmRzZXQpOwogdm9pZCBoaWRfZW5kX3BhcnNlKHN0cnVjdCBoaWRfZGF0YSAqcyk7Ci1pbnQg
aGlkX2dldF9pdGVtKHN0cnVjdCBoaWRfZGF0YSAqcywgc3RydWN0IGhpZF9pdGVtICpoKTsK
LWludCBoaWRfcmVwb3J0X3NpemUodm9pZCAqYnVmLCBpbnQgbGVuLCBlbnVtIGhpZF9raW5k
IGssIHVfaW50OF90ICppZCk7CitpbnQgaGlkX2dldF9pdGVtKHN0cnVjdCBoaWRfZGF0YSAq
cywgdV9pbnQzMl90IHUsIHN0cnVjdCBoaWRfaXRlbSAqaCk7CitpbnQgaGlkX3JlcG9ydF9z
aXplKHZvaWQgKmJ1ZiwgaW50IGxlbiwgdV9pbnQzMl90IHUsIGVudW0gaGlkX2tpbmQgaywg
dV9pbnQ4X3QgKmlkKTsKIGludCBoaWRfbG9jYXRlKHZvaWQgKmRlc2MsIGludCBzaXplLCB1
X2ludDMyX3QgdXNhZ2UsCiAJCSAgICBlbnVtIGhpZF9raW5kIGtpbmQsIHN0cnVjdCBoaWRf
bG9jYXRpb24gKmxvYywKIAkJICAgIHVfaW50MzJfdCAqZmxhZ3MpOwpkaWZmIC1OcnUgc3lz
L2Rldi91c2Iub3JpZy91Y3ljb20uYyBzeXMvZGV2L3VzYi91Y3ljb20uYwotLS0gc3lzL2Rl
di91c2Iub3JpZy91Y3ljb20uYwkyMDA3LTA2LTIxIDE4OjQyOjMzLjAwMDAwMDAwMCArMDQw
MAorKysgc3lzL2Rldi91c2IvdWN5Y29tLmMJMjAwOC0wNy0xNCAxNjowMTozOS4wMDAwMDAw
MDAgKzA0MDAKQEAgLTIyMSw5ICsyMjEsOSBAQAogCX0KIAogCS8qIGdldCByZXBvcnQgc2l6
ZXMgKi8KLQlzYy0+c2NfZmxlbiA9IGhpZF9yZXBvcnRfc2l6ZSh1cmQsIHVyZGxlbiwgaGlk
X2ZlYXR1cmUsICZzYy0+c2NfZmlkKTsKLQlzYy0+c2NfaWxlbiA9IGhpZF9yZXBvcnRfc2l6
ZSh1cmQsIHVyZGxlbiwgaGlkX2lucHV0LCAmc2MtPnNjX2lpZCk7Ci0Jc2MtPnNjX29sZW4g
PSBoaWRfcmVwb3J0X3NpemUodXJkLCB1cmRsZW4sIGhpZF9vdXRwdXQsICZzYy0+c2Nfb2lk
KTsKKwlzYy0+c2NfZmxlbiA9IGhpZF9yZXBvcnRfc2l6ZSh1cmQsIHVyZGxlbiwgMCwgaGlk
X2ZlYXR1cmUsICZzYy0+c2NfZmlkKTsgLyogTkVFRCBUTyBCRSBGSVhYID8/Pz8/ICovCisJ
c2MtPnNjX2lsZW4gPSBoaWRfcmVwb3J0X3NpemUodXJkLCB1cmRsZW4sIDAsIGhpZF9pbnB1
dCwgJnNjLT5zY19paWQpOwkvKiBORUVEIFRPIEJFIEZJWFggPz8/Pz8gKi8KKwlzYy0+c2Nf
b2xlbiA9IGhpZF9yZXBvcnRfc2l6ZSh1cmQsIHVyZGxlbiwgMCwgaGlkX291dHB1dCwgJnNj
LT5zY19vaWQpOwkvKiBORUVEIFRPIEJFIEZJWFggPz8/Pz8gKi8KIAogCWlmIChzYy0+c2Nf
aWxlbiA+IFVDWUNPTV9NQVhfSU9MRU4gfHwgc2MtPnNjX29sZW4gPiBVQ1lDT01fTUFYX0lP
TEVOKSB7CiAJCWRldmljZV9wcmludGYoZGV2LCAiSS9PIHJlcG9ydCBzaXplIHRvbyBiaWcg
KCV6dSwgJXp1LCAldSlcbiIsCmRpZmYgLU5ydSBzeXMvZGV2L3VzYi5vcmlnL3VoaWQuYyBz
eXMvZGV2L3VzYi91aGlkLmMKLS0tIHN5cy9kZXYvdXNiLm9yaWcvdWhpZC5jCTIwMDctMDYt
MjEgMTg6NDI6MzMuMDAwMDAwMDAwICswNDAwCisrKyBzeXMvZGV2L3VzYi91aGlkLmMJMjAw
OC0wNy0xNCAxNjowMTozOS4wMDAwMDAwMDAgKzA0MDAKQEAgLTMyMCw5ICszMjAsOSBAQAog
CiAJKHZvaWQpdXNiZF9zZXRfaWRsZShpZmFjZSwgMCwgMCk7CiAKLQlzYy0+c2NfaXNpemUg
PSBoaWRfcmVwb3J0X3NpemUoZGVzYywgc2l6ZSwgaGlkX2lucHV0LCAgICZzYy0+c2NfaWlk
KTsKLQlzYy0+c2Nfb3NpemUgPSBoaWRfcmVwb3J0X3NpemUoZGVzYywgc2l6ZSwgaGlkX291
dHB1dCwgICZzYy0+c2Nfb2lkKTsKLQlzYy0+c2NfZnNpemUgPSBoaWRfcmVwb3J0X3NpemUo
ZGVzYywgc2l6ZSwgaGlkX2ZlYXR1cmUsICZzYy0+c2NfZmlkKTsKKwlzYy0+c2NfaXNpemUg
PSBoaWRfcmVwb3J0X3NpemUoZGVzYywgc2l6ZSwgMCwgaGlkX2lucHV0LCAgICZzYy0+c2Nf
aWlkKTsKKwlzYy0+c2Nfb3NpemUgPSBoaWRfcmVwb3J0X3NpemUoZGVzYywgc2l6ZSwgMCwg
aGlkX291dHB1dCwgICZzYy0+c2Nfb2lkKTsKKwlzYy0+c2NfZnNpemUgPSBoaWRfcmVwb3J0
X3NpemUoZGVzYywgc2l6ZSwgMCwgaGlkX2ZlYXR1cmUsICZzYy0+c2NfZmlkKTsKIAogCXNj
LT5zY19yZXBkZXNjID0gZGVzYzsKIAlzYy0+c2NfcmVwZGVzY19zaXplID0gc2l6ZTsKZGlm
ZiAtTnJ1IHN5cy9kZXYvdXNiLm9yaWcvdW1zLmMgc3lzL2Rldi91c2IvdW1zLmMKLS0tIHN5
cy9kZXYvdXNiLm9yaWcvdW1zLmMJMjAwOC0wNC0zMCAyMzozNzo1NC4wMDAwMDAwMDAgKzA0
MDAKKysrIHN5cy9kZXYvdXNiL3Vtcy5jCTIwMDgtMDctMTQgMTY6MDE6MzkuMDAwMDAwMDAw
ICswNDAwCkBAIC0zNTgsNyArMzU4LDggQEAKIAkJaGlkX2xvY2F0ZShkZXNjLCBzaXplLCBI
SURfVVNBR0UyKEhVUF9CVVRUT04sIGkpLAogCQkJCWhpZF9pbnB1dCwgJnNjLT5zY19sb2Nf
YnRuW2ktMV0sIDApOwogCi0Jc2MtPnNjX2lzaXplID0gaGlkX3JlcG9ydF9zaXplKGRlc2Ms
IHNpemUsIGhpZF9pbnB1dCwgJnNjLT5zY19paWQpOworCXNjLT5zY19pc2l6ZSA9IGhpZF9y
ZXBvcnRfc2l6ZShkZXNjLCBzaXplLCBISURfVVNBR0UyKEhVUF9HRU5FUklDX0RFU0tUT1As
IEhVR19NT1VTRSksCisJCQkJCWhpZF9pbnB1dCwgJnNjLT5zY19paWQpOwogCXNjLT5zY19p
YnVmID0gbWFsbG9jKHNjLT5zY19pc2l6ZSwgTV9VU0IsIE1fTk9XQUlUKTsKIAlpZiAoIXNj
LT5zY19pYnVmKSB7CiAJCXByaW50ZigiJXM6IG5vIG1lbW9yeVxuIiwgZGV2aWNlX2dldF9u
YW1ldW5pdChzYy0+c2NfZGV2KSk7CkBAIC0zOTMsNiArMzk0LDcgQEAKIAkgKiBkZXNjcmlw
dG9yKSwgaXQgc2VlbXMgdGhhdCByZXBvcnQgaWQgMTcgY29udGFpbnMgdGhlIG5lY2Vzc2Fy
eQogCSAqIG1vdXNlIGluZm9ybWF0aW9uKDMtYnV0dG9ucyxYLFksd2hlZWwpIHNvIHdlIHNw
ZWNpZnkgaXQgbWFudWFsbHkuCiAJICovCisJLyogSVMgSVQgTkVTU0VTQVJZID8/PyBORUVE
IFRPIEJFIFJFQ0hFQ0sgISEhISEhISBBTkQgRVhDTFVERSAqLwogCWlmICh1YWEtPnZlbmRv
ciA9PSBVU0JfVkVORE9SX01JQ1JPU09GVCAmJgogCSAgICB1YWEtPnByb2R1Y3QgPT0gVVNC
X1BST0RVQ1RfTUlDUk9TT0ZUX1dMTk9URUJPT0szKSB7CiAJCXNjLT5mbGFncyA9IFVNU19a
Owo=
--------------050502020101000706000208--
More information about the freebsd-usb
mailing list