> Date: Sun, 25 Feb 2024 22:47:41 +0100 > From: Marek Vasut <ma...@denx.de> > > On 2/25/24 4:28 PM, Janne Grunau wrote: > > > > > > On Wed, Feb 21, 2024, at 13:39, Marek Vasut wrote: > >> On 2/21/24 08:25, Janne Grunau via B4 Relay wrote: > >>> From: Janne Grunau <j...@jannau.net> > >>> > >>> Apple USB keyboards carry the HID keyboard boot protocol on the second > >>> interface. Using the second interface in the USB keyboard driver does > >>> not work since the xhci has not allocated a transfer ring. > >> > >> So, what does this patch do ? That is not clear from the commit message. > > > > rewritten for v2: > > | usb: xhci: Set up endpoints for the first 2 interfaces > > | > > | The xhci driver currently only does the necessary initialization for > > | endpoints found in the first interface descriptor. Apple USB keyboards > > | (released 2021) use the second interface descriptor for the HID keyboard > > | boot protocol. To allow USB drivers to use endpoints from other > > | interface descriptors the xhci driver needs to ensure these endpoints > > | are initialized as well. > > | Use USB_MAX_ACTIVE_INTERFACES to control how many interface descriptors > > | are initialized and useable. Currently defined to 2 as that is enough to > > | make the Apple keyboard usable. > > Would it make sense to make this a tunable Kconfig option ?
Maybe, but it should probably be enabled everywhere where CONFIG_USB_KEYBOARD as folks will connect their Apple keyboard to non-Apple hardware as well. And I think someone mentioned on the #asahi irc channel that there are othe keyboards that have the boot protocol on the second interface descriptor. Cheers, Mark