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