Skip to content

Commit 7f7e4c4

Browse files
marcanjannau
authored andcommitted
xhci-pci: asmedia: Add a firmware loader for ASM2214a chips
Apple ships ASM2214a ICs in some Apple Silicon hardware (notably, the 2021 iMac and the 2022 Mac Studio) without a flash ROM, and relies on the OS to load firmware on startup. Add support for this to the generic xhci-pci driver. The loader code first checks the firmware version, and only attempts to load firmware if the version isn't the known ROM version. Since this arrangement only exists on Apple machines so far, and Apple are the only source of the (non-redistributable) firmware intended for use on these machines, the firmware is named asmedia/asm2214a-apple.bin. If this style of firmware loading ever becomes necessary on non-Apple machines, we should add a generic firmware name at the time (if it can be part of linux-firmware) or another vendor-specific firmware name. Signed-off-by: Hector Martin <[email protected]>
1 parent 6770246 commit 7f7e4c4

File tree

6 files changed

+442
-0
lines changed

6 files changed

+442
-0
lines changed

drivers/usb/host/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,15 @@ config USB_XHCI_PCI_RENESAS
5151
installed on your system for this device to work.
5252
If unsure, say 'N'.
5353

54+
config USB_XHCI_PCI_ASMEDIA
55+
bool "Support for ASMedia xHCI controller with firmware"
56+
default ARCH_APPLE
57+
depends on USB_XHCI_PCI
58+
help
59+
Say 'Y' to enable support for ASMedia xHCI controllers with
60+
host-supplied firmware. These are usually present on Apple devices.
61+
If unsure, say 'N'.
62+
5463
config USB_XHCI_PLATFORM
5564
tristate "Generic xHCI driver for a platform device"
5665
help

drivers/usb/host/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ obj-$(CONFIG_USB_XHCI_HCD) += xhci-hcd.o
7070
obj-$(CONFIG_USB_XHCI_PCI) += xhci-pci.o
7171
xhci-pci-y += xhci-pci-core.o
7272
xhci-pci-$(CONFIG_USB_XHCI_PCI_RENESAS) += xhci-pci-renesas.o
73+
xhci-pci-$(CONFIG_USB_XHCI_PCI_ASMEDIA) += xhci-pci-asmedia.o
7374
obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o
7475
obj-$(CONFIG_USB_XHCI_HISTB) += xhci-histb.o
7576
obj-$(CONFIG_USB_XHCI_RCAR) += xhci-rcar-hcd.o

0 commit comments

Comments
 (0)