Lines Matching full:quirk
58 #include <dev/usb/quirk/usb_quirk.h>
65 #define USB_QUIRK_ENVROOT "hw.usb.quirk."
177 /* Quirk for Corsair Vengeance K60 keyboard */
179 /* Quirk for Corsair Gaming K68 keyboard */
181 /* Quirk for Corsair Vengeance K70 keyboard */
183 /* Quirk for Corsair K70 RGB keyboard */
185 /* Quirk for Corsair STRAFE Gaming keyboard */
188 /* Quirk for Kensington Slimblade Trackball */
672 * This function converts an USB quirk code into a string.
675 usb_quirkstr(uint16_t quirk)
677 return ((quirk < USB_QUIRK_MAX && usb_quirk_str[quirk] != NULL) ?
678 usb_quirk_str[quirk] : "UQ_UNKNOWN");
684 * This function converts a string into a USB quirk code.
687 * Less than USB_QUIRK_MAX: Quirk code
688 * Else: Quirk code not found
693 const char *quirk;
697 quirk = usb_quirkstr(x);
698 if (strncmp(str, quirk, len) == 0 &&
699 quirk[len] == 0)
709 * 0: Quirk not found
710 * Else: Quirk found
713 usb_test_quirk_by_info(const struct usbd_lookup_info *info, uint16_t quirk)
718 if (quirk == UQ_NONE)
724 /* see if quirk information does not match */
730 /* see if quirk only should match vendor ID */
742 /* lookup quirk */
744 if (usb_quirks[x].quirks[y] == quirk) {
746 DPRINTF("Found quirk '%s'.\n", usb_quirkstr(quirk));
753 return (0); /* no quirk match */
770 /* see if quirk information does not match */
786 /* see if quirk information does not match */
806 * usb_quirk_ioctl - handle quirk IOCTLs
860 /* convert quirk string into numerical */
898 /* convert quirk string into numerical */
933 /* all quirk entries are unused - release */
969 * Add a USB quirk entry from string.
970 * "VENDOR PRODUCT LO_REV HI_REV QUIRK[,QUIRK[,...]]"
978 uint16_t quirk;
986 printf("Adding USB QUIRK '%s' = '%s'\n", name, env);
994 /* parse quirk information */
1001 /* look for quirk separation character */
1006 /* lookup quirk in string table */
1007 quirk = usb_strquirk(env, end - env);
1008 if (quirk < USB_QUIRK_MAX) {
1009 entry.quirks[quirk_idx++] = quirk;
1011 printf("%s: unknown USB quirk '%.*s' (skipped)\n",
1016 /* skip quirk delimiter, if any */
1021 /* register quirk */
1047 mtx_init(&usb_quirk_mtx, "USB quirk", NULL, MTX_DEF);