On 2010/04/06 10:47, Stuart Henderson wrote: > this brings the UQ_BAD_HID entries together, lines up the > columns a bit better, and adds a short description for some > of the quirks. > > any comments? ok?
better with some spaces->tabs (prompted by mail from halex). Index: usb_quirks.c =================================================================== RCS file: /cvs/src/sys/dev/usb/usb_quirks.c,v retrieving revision 1.53 diff -u -p -r1.53 usb_quirks.c --- usb_quirks.c 17 Oct 2009 07:10:38 -0000 1.53 +++ usb_quirks.c 6 Apr 2010 10:20:24 -0000 @@ -79,7 +79,7 @@ const struct usbd_quirk_entry { 0x001, { UQ_ASSUME_CM_OVER_DATA }}, { USB_VENDOR_EICON, USB_PRODUCT_EICON_DIVA852, 0x100, { UQ_ASSUME_CM_OVER_DATA }}, - /* YAMAHA router's ucdDevice is the version of farmware and often changes. */ + /* YAMAHA router's ucdDevice is the version of firmware and often changes. */ { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTA54I, ANY, { UQ_ASSUME_CM_OVER_DATA }}, { USB_VENDOR_YAMAHA, USB_PRODUCT_YAMAHA_RTA55I, @@ -106,9 +106,9 @@ const struct usbd_quirk_entry { { USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41, 0x110, { UQ_POWER_CLAIM }}, { USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1, 0x009, { UQ_AU_NO_FRAC }}, - { USB_VENDOR_TERRATEC, USB_PRODUCT_TERRATEC_AUREON, - ANY, { UQ_BAD_HID }}, - + /* + * UQ_BROKEN_BIDIR: ulpt(4) devices which don't handle reading. + */ /* XXX These should have a revision number, but I don't know what they are. */ { USB_VENDOR_HP, USB_PRODUCT_HP_895C, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_HP, USB_PRODUCT_HP_880C, ANY, { UQ_BROKEN_BIDIR }}, @@ -120,39 +120,47 @@ const struct usbd_quirk_entry { { USB_VENDOR_HP, USB_PRODUCT_HP_816C, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_HP, USB_PRODUCT_HP_959C, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_HP, USB_PRODUCT_HP_1220C, ANY, { UQ_BROKEN_BIDIR }}, - { USB_VENDOR_ITUNER, USB_PRODUCT_ITUNER_USBLCD20x2, ANY, { UQ_BAD_HID }}, { USB_VENDOR_NEC, USB_PRODUCT_NEC_PICTY900, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_NEC, USB_PRODUCT_NEC_PICTY760, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_NEC, USB_PRODUCT_NEC_PICTY920, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_NEC, USB_PRODUCT_NEC_PICTY800, ANY, { UQ_BROKEN_BIDIR }}, - { USB_VENDOR_MECANIQUE, USB_PRODUCT_MECANIQUE_WISPY, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_OMRON, USB_PRODUCT_OMRON_BX35F, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_OMRON, USB_PRODUCT_OMRON_BX50F, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_TENX, USB_PRODUCT_TENX_MISSILE, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APC, USB_PRODUCT_APC_UPSPRO500, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C1500EITWRK, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2, ANY, { UQ_BAD_HID }}, + + /* + * UQ_BAD_HID: HID-class devices which must attach to ugen(4) + * to interact with software to control them. + */ + { USB_VENDOR_APC, USB_PRODUCT_APC_UPSPRO500, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C1500EITWRK, ANY, { UQ_BAD_HID }}, { USB_VENDOR_CYBERPOWER, USB_PRODUCT_CYBERPOWER_1500, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM_OLD, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM_FLASH, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_ITUNER, USB_PRODUCT_ITUNER_USBLCD20x2, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_LIEBERT, USB_PRODUCT_LIEBERT_POWERSURE_PXT, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_MECANIQUE, USB_PRODUCT_MECANIQUE_WISPY, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2, ANY, { UQ_BAD_HID }}, { USB_VENDOR_MUSTEK2, USB_PRODUCT_MUSTEK2_PM800, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_LIEBERT, USB_PRODUCT_LIEBERT_POWERSURE_PXT, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_OMRON, USB_PRODUCT_OMRON_BX35F, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_OMRON, USB_PRODUCT_OMRON_BX50F, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_TENX, USB_PRODUCT_TENX_MISSILE, ANY, { UQ_BAD_HID }}, + { USB_VENDOR_TERRATEC, USB_PRODUCT_TERRATEC_AUREON, ANY, { UQ_BAD_HID }}, + + /* + * UQ_NO_STRINGS: suppress printing strings from the device in + * attach lines; use for devices with bad strings to avoid broken + * dmesg output. + */ + { USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E220, ANY, { UQ_NO_STRINGS }}, - /* MS keyboards do weird things */ - { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLNOTEBOOK, + /* MS keyboards do weird things */ + { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLNOTEBOOK, ANY, { UQ_MS_BAD_CLASS | UQ_MS_LEADING_BYTE }}, - { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLNOTEBOOK2, + { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLNOTEBOOK2, ANY, { UQ_MS_BAD_CLASS | UQ_MS_LEADING_BYTE }}, - { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE, + { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE, ANY, { UQ_MS_LEADING_BYTE }}, - - /* SISPM devices */ - { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM_OLD, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM_FLASH, ANY, { UQ_BAD_HID }}, - - /* HUAWEI devices */ - { USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E220, ANY, { UQ_NO_STRINGS }}, { 0, 0, 0, { 0 } } };