aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2011-05-23 21:00:17 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-06-01 15:12:31 -0400
commit4a7f5db19c0d8783f700cb606597c4c7b1364db5 (patch)
tree47e3ed3ece7255c0d21a5bb3a46da3aeb34f65bc /drivers/net/wireless/mwifiex
parent0541ac4cb47a31f44bf841a4dade539395c146ee (diff)
mwifiex: remove support for old chipsets W0/W1
For SD8787 A0/A1 chipsets we use the default firmware image file 'mrvl/sd8787_uapsta.bin'. So the chip rev id variable is removed. The global variable fw_name is moved to adapter structure so that we can support a different interface, such as PCIe, in future. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex')
-rw-r--r--drivers/net/wireless/mwifiex/main.c18
-rw-r--r--drivers/net/wireless/mwifiex/main.h11
-rw-r--r--drivers/net/wireless/mwifiex/sdio.c8
-rw-r--r--drivers/net/wireless/mwifiex/sdio.h2
4 files changed, 7 insertions, 32 deletions
diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c
index f0582259c93..4f43443036f 100644
--- a/drivers/net/wireless/mwifiex/main.c
+++ b/drivers/net/wireless/mwifiex/main.c
@@ -35,8 +35,6 @@ static struct mwifiex_bss_attr mwifiex_bss_sta[] = {
35 35
36static int drv_mode = DRV_MODE_STA; 36static int drv_mode = DRV_MODE_STA;
37 37
38static char fw_name[32] = DEFAULT_FW_NAME;
39
40/* Supported drv_mode table */ 38/* Supported drv_mode table */
41static struct mwifiex_drv_mode mwifiex_drv_mode_tbl[] = { 39static struct mwifiex_drv_mode mwifiex_drv_mode_tbl[] = {
42 { 40 {
@@ -384,20 +382,8 @@ static int mwifiex_init_hw_fw(struct mwifiex_adapter *adapter)
384 382
385 memset(&fw, 0, sizeof(struct mwifiex_fw_image)); 383 memset(&fw, 0, sizeof(struct mwifiex_fw_image));
386 384
387 switch (adapter->revision_id) { 385 err = request_firmware(&adapter->firmware, adapter->fw_name,
388 case SD8787_W0: 386 adapter->dev);
389 case SD8787_W1:
390 strcpy(fw_name, SD8787_W1_FW_NAME);
391 break;
392 case SD8787_A0:
393 case SD8787_A1:
394 strcpy(fw_name, SD8787_AX_FW_NAME);
395 break;
396 default:
397 break;
398 }
399
400 err = request_firmware(&adapter->firmware, fw_name, adapter->dev);
401 if (err < 0) { 387 if (err < 0) {
402 dev_err(adapter->dev, "request_firmware() returned" 388 dev_err(adapter->dev, "request_firmware() returned"
403 " error code %#x\n", err); 389 " error code %#x\n", err);
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index 8316b3cd92c..89f98701b70 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -48,15 +48,6 @@ enum {
48 48
49#define DRV_MODE_STA 0x1 49#define DRV_MODE_STA 0x1
50 50
51#define SD8787_W0 0x30
52#define SD8787_W1 0x31
53#define SD8787_A0 0x40
54#define SD8787_A1 0x41
55
56#define DEFAULT_FW_NAME "mrvl/sd8787_uapsta.bin"
57#define SD8787_W1_FW_NAME "mrvl/sd8787_uapsta_w1.bin"
58#define SD8787_AX_FW_NAME "mrvl/sd8787_uapsta.bin"
59
60struct mwifiex_drv_mode { 51struct mwifiex_drv_mode {
61 u16 drv_mode; 52 u16 drv_mode;
62 u16 intf_num; 53 u16 intf_num;
@@ -576,10 +567,10 @@ struct mwifiex_adapter {
576 u8 priv_num; 567 u8 priv_num;
577 struct mwifiex_drv_mode *drv_mode; 568 struct mwifiex_drv_mode *drv_mode;
578 const struct firmware *firmware; 569 const struct firmware *firmware;
570 char fw_name[32];
579 struct device *dev; 571 struct device *dev;
580 bool surprise_removed; 572 bool surprise_removed;
581 u32 fw_release_number; 573 u32 fw_release_number;
582 u32 revision_id;
583 u16 init_wait_q_woken; 574 u16 init_wait_q_woken;
584 wait_queue_head_t init_wait_q; 575 wait_queue_head_t init_wait_q;
585 void *card; 576 void *card;
diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index d425dbd91d1..4327b6d099c 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
@@ -1531,6 +1531,7 @@ static int mwifiex_register_dev(struct mwifiex_adapter *adapter)
1531 sdio_set_drvdata(func, card); 1531 sdio_set_drvdata(func, card);
1532 1532
1533 adapter->dev = &func->dev; 1533 adapter->dev = &func->dev;
1534 strcpy(adapter->fw_name, SD8787_DEFAULT_FW_NAME);
1534 1535
1535 return 0; 1536 return 0;
1536 1537
@@ -1552,7 +1553,6 @@ disable_func:
1552 * the first interrupt got from bootloader 1553 * the first interrupt got from bootloader
1553 * - Disable host interrupt mask register 1554 * - Disable host interrupt mask register
1554 * - Get SDIO port 1555 * - Get SDIO port
1555 * - Get revision ID
1556 * - Initialize SDIO variables in card 1556 * - Initialize SDIO variables in card
1557 * - Allocate MP registers 1557 * - Allocate MP registers
1558 * - Allocate MPA Tx and Rx buffers 1558 * - Allocate MPA Tx and Rx buffers
@@ -1576,10 +1576,6 @@ static int mwifiex_init_sdio(struct mwifiex_adapter *adapter)
1576 /* Get SDIO ioport */ 1576 /* Get SDIO ioport */
1577 mwifiex_init_sdio_ioport(adapter); 1577 mwifiex_init_sdio_ioport(adapter);
1578 1578
1579 /* Get revision ID */
1580#define REV_ID_REG 0x5c
1581 mwifiex_read_reg(adapter, REV_ID_REG, &adapter->revision_id);
1582
1583 /* Initialize SDIO variables in card */ 1579 /* Initialize SDIO variables in card */
1584 card->mp_rd_bitmap = 0; 1580 card->mp_rd_bitmap = 0;
1585 card->mp_wr_bitmap = 0; 1581 card->mp_wr_bitmap = 0;
@@ -1751,4 +1747,4 @@ MODULE_AUTHOR("Marvell International Ltd.");
1751MODULE_DESCRIPTION("Marvell WiFi-Ex SDIO Driver version " SDIO_VERSION); 1747MODULE_DESCRIPTION("Marvell WiFi-Ex SDIO Driver version " SDIO_VERSION);
1752MODULE_VERSION(SDIO_VERSION); 1748MODULE_VERSION(SDIO_VERSION);
1753MODULE_LICENSE("GPL v2"); 1749MODULE_LICENSE("GPL v2");
1754MODULE_FIRMWARE("sd8787.bin"); 1750MODULE_FIRMWARE("mrvl/sd8787_uapsta.bin");
diff --git a/drivers/net/wireless/mwifiex/sdio.h b/drivers/net/wireless/mwifiex/sdio.h
index 4e97e90aa39..c925376fcaa 100644
--- a/drivers/net/wireless/mwifiex/sdio.h
+++ b/drivers/net/wireless/mwifiex/sdio.h
@@ -28,6 +28,8 @@
28 28
29#include "main.h" 29#include "main.h"
30 30
31#define SD8787_DEFAULT_FW_NAME "mrvl/sd8787_uapsta.bin"
32
31#define BLOCK_MODE 1 33#define BLOCK_MODE 1
32#define BYTE_MODE 0 34#define BYTE_MODE 0
33 35