
USB has complicated classes

drivers/usb/audio.c

static struct usb_device_id usb_audio_ids [] = {
  { 
    match_flags: (USB_DEVICE_ID_MATCH_INT_CLASS | 
                   USB_DEVICE_ID_MATCH_INT_SUBCLASS),
    bInterfaceClass:    USB_CLASS_AUDIO,
    bInterfaceSubClass: 1,
  },
  { }    /* Terminating entry */
};

MODULE_DEVICE_TABLE (usb, usb_audio_ids);
