[PATCH] MODULE_FIRMWARE for binary firmware(s)

James Bottomley
2006-08-28T22:08:24Z

From: Jon Masters <jcm@redhat.com>

Right now, various kernel modules are being migrated over to use
request_firmware in order to pull in binary firmware blobs from userland
when the module is loaded. This makes sense.

However, there is right now little mechanism in place to automatically
determine which binary firmware blobs must be included with a kernel in
order to satisfy the prerequisites of these drivers. This affects
vendors, but also regular users to a certain extent too.

The attached patch introduces MODULE_FIRMWARE as a mechanism for
advertising that a particular firmware file is to be loaded - it will
then show up via modinfo and could be used e.g. when packaging a kernel.

Signed-off-by: Jon Masters <jcm@redhat.com>

Comments added in line with all the other MODULE_ tag

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Index: BUILD-2.6/include/linux/module.h
===================================================================
--- BUILD-2.6.orig/include/linux/module.h 2006-08-28 13:16:22.000000000 -0500
+++ BUILD-2.6/include/linux/module.h 2006-08-28 13:17:46.000000000 -0500
@@ -156,6 +156,11 @@ extern struct module __this_module;
*/
#define MODULE_VERSION(_version) MODULE_INFO(version, _version)

+/* Optional firmware file (or files) needed by the module
+ * format is simply firmware file name. Multiple firmware
+ * files require multiple MODULE_FIRMWARE() specifiers */
+#define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware)
+
/* Given an address, look for it in the exception tables */
const struct exception_table_entry *search_exception_tables(unsigned long add);