USB_DEVICE_...TERFACE_INFO(9)
π USB_DEVICE_...TERFACE_INFO(9) π
okay so bestie, welcome to the Kernel API Manual β this one's about USB_DEVICE_AND_INTERFACE_INFO, and it's genuinely one of those macros that hits different once it clicks. no cap. β¨
π NAME π
USB_DEVICE_AND_INTERFACE_INFO β the macro that describes a specific usb device paired with a class of usb interfaces π¦
πΈ SYNOPSIS πΈ
USB_DEVICE_AND_INTERFACE_INFO (vend , prod , cl , sc , pr );
β¨ ARGUMENTS β¨
vendβ the 16 bit USB Vendor ID, like the family name of the device πprodβ the 16 bit USB Product ID, the specific model vibe check π₯clβ thebInterfaceClassvalue πscβ thebInterfaceSubClassvalue πΈprβ thebInterfaceProtocolvalue π«
π DESCRIPTION π
So here's the thing, bestie: this macro creates a struct usb_device_id that matches a specific device with a specific class of interfaces. Both. Together. Main character energy. π
And it's especially useful when you're explicitly matching devices that have vendor specific bDeviceClass values, but standards-compliant interfaces β like, the device itself is doing its own quirky thing but the interfaces it hands you are perfectly well-behaved. iconic honestly. it's giving "chaotic on the outside, put-together on the inside" π«Ά
π¦ SEE ALSO π¦
Everything else you're gonna wanna peek at, fr fr:
- Kernel file
./include/linux/usb.h struct usb_host_endpoint(9),struct usb_interface(9),usb_set_intfdata(9),struct usb_interface_cache(9),struct usb_host_config(9),struct usb_device(9)usb_hub_for_each_child(9),usb_interface_claimed(9),usb_make_path(9)USB_DEVICE(9),USB_DEVICE_VER(9),USB_DEVICE_INTERFACE_CLASS(9),USB_DEVICE_INTERFACE_PROTOCOL(9),USB_DEVICE_INTERFACE_NUMBER(9),USB_DEVICE_INFO(9)USB_INTERFACE_INFO(9),USB_VENDOR_AND_INTERFACE_INFO(9)struct usb_driver(9),struct usb_device_driver(9),struct usb_class_driver(9),module_usb_driver(9)struct urb(9),usb_fill_control_urb(9),usb_fill_bulk_urb(9),usb_fill_int_urb(9),usb_urb_dir_in(9),usb_urb_dir_out(9),struct usb_sg_request(9)
aaaand that's the page! this lil gem lives in ./include/linux, it's dated October 2026, and it's filed under USB_DEVICE_...TERFACE_INFO(9) in your friendly neighbourhood Kernel API Manual. mwah π go match some devices, bestie π§π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms