There were already some hooks in usbcore, but they were only configurable for root hubs ... but not keyboards, mice, Ethernet adapters, or other devices.