When using hotplug with the driver for my prism54 compiled static into the kernel, it does not load the firmware it the card is in the slot when booting. I have to remove the card and reinsert it to make it work. If I compile the driver as a module, it works with it in the slot when booting. I think it is a hotplug problem. Reproducible: Always Steps to Reproduce: 1. Copy firmware in place 2. Compile the driver static in the kernel and boot it with the card in the slot. 3. Now compile the kernel with the driver as a module, and boot it, now it works. Actual Results: It only works when using the driver as a module Expected Results: It should work with the driver both as module and static.
Problem is userspace is never notified that the device needs firmware, as that notification happens too early in the boot process (before userspace starts up.) So for now, I'd recommend leaving the driver as a module, and talking to the authors of the driver for what they recommend doing if you want to build the driver into the kernel.
Okay, I'll go upstream with it :)