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 */
660 * This function converts an USB quirk code into a string.
663 usb_quirkstr(uint16_t quirk) in usb_quirkstr() argument
665 return ((quirk < USB_QUIRK_MAX && usb_quirk_str[quirk] != NULL) ? in usb_quirkstr()
666 usb_quirk_str[quirk] : "UQ_UNKNOWN"); in usb_quirkstr()
672 * This function converts a string into a USB quirk code.
675 * Less than USB_QUIRK_MAX: Quirk code
676 * Else: Quirk code not found
681 const char *quirk; in usb_strquirk() local
685 quirk = usb_quirkstr(x); in usb_strquirk()
686 if (strncmp(str, quirk, len) == 0 && in usb_strquirk()
687 quirk[len] == 0) in usb_strquirk()
697 * 0: Quirk not found
698 * Else: Quirk found
701 usb_test_quirk_by_info(const struct usbd_lookup_info *info, uint16_t quirk) in usb_test_quirk_by_info() argument
706 if (quirk == UQ_NONE) in usb_test_quirk_by_info()
712 /* see if quirk information does not match */ in usb_test_quirk_by_info()
718 /* see if quirk only should match vendor ID */ in usb_test_quirk_by_info()
730 /* lookup quirk */ in usb_test_quirk_by_info()
732 if (usb_quirks[x].quirks[y] == quirk) { in usb_test_quirk_by_info()
734 DPRINTF("Found quirk '%s'.\n", usb_quirkstr(quirk)); in usb_test_quirk_by_info()
741 return (0); /* no quirk match */ in usb_test_quirk_by_info()
758 /* see if quirk information does not match */ in usb_quirk_get_entry()
774 /* see if quirk information does not match */ in usb_quirk_get_entry()
794 * usb_quirk_ioctl - handle quirk IOCTLs
848 /* convert quirk string into numerical */ in usb_quirk_ioctl()
886 /* convert quirk string into numerical */ in usb_quirk_ioctl()
921 /* all quirk entries are unused - release */ in usb_quirk_ioctl()
957 * Add a USB quirk entry from string.
958 * "VENDOR PRODUCT LO_REV HI_REV QUIRK[,QUIRK[,...]]"
966 uint16_t quirk; in usb_quirk_add_entry_from_str() local
974 printf("Adding USB QUIRK '%s' = '%s'\n", name, env); in usb_quirk_add_entry_from_str()
982 /* parse quirk information */ in usb_quirk_add_entry_from_str()
989 /* look for quirk separation character */ in usb_quirk_add_entry_from_str()
994 /* lookup quirk in string table */ in usb_quirk_add_entry_from_str()
995 quirk = usb_strquirk(env, end - env); in usb_quirk_add_entry_from_str()
996 if (quirk < USB_QUIRK_MAX) { in usb_quirk_add_entry_from_str()
997 entry.quirks[quirk_idx++] = quirk; in usb_quirk_add_entry_from_str()
999 printf("%s: unknown USB quirk '%.*s' (skipped)\n", in usb_quirk_add_entry_from_str()
1004 /* skip quirk delimiter, if any */ in usb_quirk_add_entry_from_str()
1009 /* register quirk */ in usb_quirk_add_entry_from_str()
1035 mtx_init(&usb_quirk_mtx, "USB quirk", NULL, MTX_DEF); in usb_quirk_init()