bnx2x: declare MODULE_FIRMWARE
authorBen Hutchings <ben@decadent.org.uk>
Sat, 7 Nov 2009 11:53:39 +0000 (11:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Nov 2009 04:28:49 +0000 (20:28 -0800)
Replace run-time string formatting with preprocessor string
manipulation.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Acked-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2x_main.c

index 61974b7..5b6c68a 100644 (file)
@@ -49,6 +49,7 @@
 #include <linux/prefetch.h>
 #include <linux/zlib.h>
 #include <linux/io.h>
+#include <linux/stringify.h>
 
 
 #include "bnx2x.h"
 #include <linux/firmware.h>
 #include "bnx2x_fw_file_hdr.h"
 /* FW files */
-#define FW_FILE_PREFIX_E1      "bnx2x-e1-"
-#define FW_FILE_PREFIX_E1H     "bnx2x-e1h-"
+#define FW_FILE_VERSION                                        \
+       __stringify(BCM_5710_FW_MAJOR_VERSION) "."      \
+       __stringify(BCM_5710_FW_MINOR_VERSION) "."      \
+       __stringify(BCM_5710_FW_REVISION_VERSION) "."   \
+       __stringify(BCM_5710_FW_ENGINEERING_VERSION)
+#define FW_FILE_NAME_E1                "bnx2x-e1-" FW_FILE_VERSION ".fw"
+#define FW_FILE_NAME_E1H       "bnx2x-e1h-" FW_FILE_VERSION ".fw"
 
 /* Time in jiffies before concluding the transmitter is hung */
 #define TX_TIMEOUT             (5*HZ)
@@ -77,6 +83,8 @@ MODULE_AUTHOR("Eliezer Tamir");
 MODULE_DESCRIPTION("Broadcom NetXtreme II BCM57710/57711/57711E Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_MODULE_VERSION);
+MODULE_FIRMWARE(FW_FILE_NAME_E1);
+MODULE_FIRMWARE(FW_FILE_NAME_E1H);
 
 static int multi_mode = 1;
 module_param(multi_mode, int, 0);
@@ -12111,21 +12119,14 @@ static inline void be16_to_cpu_n(const u8 *_source, u8 *_target, u32 n)
 
 static int __devinit bnx2x_init_firmware(struct bnx2x *bp, struct device *dev)
 {
-       char fw_file_name[40] = {0};
+       const char *fw_file_name;
        struct bnx2x_fw_file_hdr *fw_hdr;
-       int rc, offset;
+       int rc;
 
-       /* Create a FW file name */
        if (CHIP_IS_E1(bp))
-               offset = sprintf(fw_file_name, FW_FILE_PREFIX_E1);
+               fw_file_name = FW_FILE_NAME_E1;
        else
-               offset = sprintf(fw_file_name, FW_FILE_PREFIX_E1H);
-
-       sprintf(fw_file_name + offset, "%d.%d.%d.%d.fw",
-               BCM_5710_FW_MAJOR_VERSION,
-               BCM_5710_FW_MINOR_VERSION,
-               BCM_5710_FW_REVISION_VERSION,
-               BCM_5710_FW_ENGINEERING_VERSION);
+               fw_file_name = FW_FILE_NAME_E1H;
 
        printk(KERN_INFO PFX "Loading %s\n", fw_file_name);