7efa83d6bd
Cross-referenced with Linux 7.1 drivers/usb/core/driver.c:usb_device_match(). xhcid already has a built-in event-driven hotplug system: attach_device() → spawn_drivers() reads the embedded drivers.toml at enumeration time and spawns matching class drivers. This is equivalent to Linux's hub_port_connect() → usb_new_device() → device_add() → driver binding. Extended drivers.toml from 2 entries (hub + HID) to 7 entries covering all Red Bear USB class drivers: class=8 subclass=6 → usbscsid (was commented out: "causes XHCI errors") class=9 → usbhubd class=3 → usbhidd class=2 subclass=2 → redbear-acmd (CDC ACM) class=2 subclass=6 → redbear-ecmd (CDC ECM) class=1 → redbear-usbaudiod (USB Audio) class=255 → redbear-ftdi (FTDI serial) Drivers receive , , / template args. Subclass matching: exact match (2,6) or wildcard (-1 = any). This eliminates the need for a separate userspace hotplug daemon — xhcid's event-driven attach_device() path provides interrupt-level hotplug response (not polling-based). Linux 7.1 equivalence: hub_irq() → port_event() → hub_port_connect_change() → hub_port_connect() → usb_new_device() → device_add() → driver probe.