Fransicso wrote: >Could you point to a list of firmwares which need attention?
This list is certainly not complete, but here it is. (No warranty; I may have made errors. Blanket permission to copy, redistribute, and/or modify is hereby granted.) If someone made a Wiki or something to keep track of known problems and who was working on them, that would be clearly beneficial. :-) I've noted (with an 'easy') some of the drivers which appear (though I'm not sure) to load their firmware in process context with interrupts enabled and without holding spinlocks; these are the ones which should be easy to convert. :-) Firmware without proper permission to distribute (dammit): sound/oss/724hwmcode.h (unused, already removed by Herbert; bug #242500) sound/oss/Hwmcode.h (unused, already removed by Herbert; bug #242500) drivers/usb/misc/emi26_fw.h (used by drivers/usb/misc/emi26.c, bug #242895) sound/oss/ymfpci_image.h (used by sound/oss/ymfpci.c, bug #243022) sound/pci/ymfpci/ymfpci_image.h (used by sound/pci/ymfpci.c, bug #243022) drivers/char/drm/r128_cce.c (already patched by me to use userland loading, bug 242866) drivers/char/drm/radeon_cp.c (already patched by me to use userland loading, bug 242866) drivers/net/acenic_firmware.h (bug 242866) Non-free firmware with clear permission to distribute: drivers/net/tg3.c (I've mostly dealt with this, but I haven't quite got the userland firmware loading working right) drivers/char/drm/mga_ucode.h (bug 242866; easy) drivers/net/appletalk/cops_ffdrv.h (bug 242866; used in cops.c; easy) drivers/net/appletalk/cops_ltdrv.h (used in cops.c; easy) drivers/net/tokenring/3c359_microcode.h (used in 3c359.c; not necessary for all cards; easy; bug 242866) drivers/net/pcmcia/ositech.h (used in smc91c92_cs.c; not necessary for all cards; easy; bug 242866) drivers/net/typhoon_firmware.c (used in typhoon.c; easy?) I'm quite sure there's more, but this is more than enough to start on, eh? We should probably discuss firmware file naming conventions; I think the last discussion concluded that the best choice was "(module)/(file)-version" (many drivers will have multiple firmware files, and the firmware file version will likely be closely linked with the driver version). The name has to be <= FIRMWARE_NAME_MAX chars, which is currently 30.

