aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Brandewie <dirk.j.brandewie@intel.com>2009-08-13 16:48:29 -0400
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-10-19 02:55:40 -0400
commitc30836580b35ae5cab3de97a3df16878fe097868 (patch)
treef88a13e7b9455b9f92260d95f9d9d3854911deaa
parenta134fd6b103b78378e3beb6af94d8d8c2abdd19d (diff)
wimax/i2400m: Make boot retries a BUS-specific parameter
In i2400m-based devices, the driver's bootloader will retry to load the firmware when things go wrong. The driver currently has a constant (I2400M_BOOT_RETRIES) which governs the max number of tries. However, different SKUs of the same hardware may admit or require different numbers of retries due to it's particulars, so it is made a BUS specific parameter and different values are assigned for 5x50 devices versus the 3200 ones. Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com> Signed-off-by: Cindy H Kao <cindy.h.kao@intel.com> Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
-rw-r--r--drivers/net/wimax/i2400m/fw.c2
-rw-r--r--drivers/net/wimax/i2400m/i2400m-sdio.h1
-rw-r--r--drivers/net/wimax/i2400m/i2400m-usb.h1
-rw-r--r--drivers/net/wimax/i2400m/i2400m.h3
-rw-r--r--drivers/net/wimax/i2400m/sdio.c2
-rw-r--r--drivers/net/wimax/i2400m/usb.c2
6 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c
index e81750e54452..55bd69e913b9 100644
--- a/drivers/net/wimax/i2400m/fw.c
+++ b/drivers/net/wimax/i2400m/fw.c
@@ -602,7 +602,7 @@ int i2400m_bootrom_init(struct i2400m *i2400m, enum i2400m_bri flags)
602 struct device *dev = i2400m_dev(i2400m); 602 struct device *dev = i2400m_dev(i2400m);
603 struct i2400m_bootrom_header *cmd; 603 struct i2400m_bootrom_header *cmd;
604 struct i2400m_bootrom_header ack; 604 struct i2400m_bootrom_header ack;
605 int count = I2400M_BOOT_RETRIES; 605 int count = i2400m->bus_bm_retries;
606 int ack_timeout_cnt = 1; 606 int ack_timeout_cnt = 1;
607 607
608 BUILD_BUG_ON(sizeof(*cmd) != sizeof(i2400m_NBOOT_BARKER)); 608 BUILD_BUG_ON(sizeof(*cmd) != sizeof(i2400m_NBOOT_BARKER));
diff --git a/drivers/net/wimax/i2400m/i2400m-sdio.h b/drivers/net/wimax/i2400m/i2400m-sdio.h
index 9c4e3189f7b5..66884eb59b26 100644
--- a/drivers/net/wimax/i2400m/i2400m-sdio.h
+++ b/drivers/net/wimax/i2400m/i2400m-sdio.h
@@ -67,6 +67,7 @@
67 67
68/* Host-Device interface for SDIO */ 68/* Host-Device interface for SDIO */
69enum { 69enum {
70 I2400M_SDIO_BOOT_RETRIES = 3,
70 I2400MS_BLK_SIZE = 256, 71 I2400MS_BLK_SIZE = 256,
71 I2400MS_PL_SIZE_MAX = 0x3E00, 72 I2400MS_PL_SIZE_MAX = 0x3E00,
72 73
diff --git a/drivers/net/wimax/i2400m/i2400m-usb.h b/drivers/net/wimax/i2400m/i2400m-usb.h
index 6f76558b170f..79c37534c200 100644
--- a/drivers/net/wimax/i2400m/i2400m-usb.h
+++ b/drivers/net/wimax/i2400m/i2400m-usb.h
@@ -137,6 +137,7 @@ static inline int edc_inc(struct edc *edc, u16 max_err, u16 timeframe)
137 137
138/* Host-Device interface for USB */ 138/* Host-Device interface for USB */
139enum { 139enum {
140 I2400M_USB_BOOT_RETRIES = 3,
140 I2400MU_MAX_NOTIFICATION_LEN = 256, 141 I2400MU_MAX_NOTIFICATION_LEN = 256,
141 I2400MU_BLK_SIZE = 16, 142 I2400MU_BLK_SIZE = 16,
142 I2400MU_PL_SIZE_MAX = 0x3EFF, 143 I2400MU_PL_SIZE_MAX = 0x3EFF,
diff --git a/drivers/net/wimax/i2400m/i2400m.h b/drivers/net/wimax/i2400m/i2400m.h
index a6e59f1c881d..73b4e6a15135 100644
--- a/drivers/net/wimax/i2400m/i2400m.h
+++ b/drivers/net/wimax/i2400m/i2400m.h
@@ -148,9 +148,6 @@
148 148
149/* Misc constants */ 149/* Misc constants */
150enum { 150enum {
151 /* Firmware uploading */
152 I2400M_BOOT_RETRIES = 3,
153 I3200_BOOT_RETRIES = 3,
154 /* Size of the Boot Mode Command buffer */ 151 /* Size of the Boot Mode Command buffer */
155 I2400M_BM_CMD_BUF_SIZE = 16 * 1024, 152 I2400M_BM_CMD_BUF_SIZE = 16 * 1024,
156 I2400M_BM_ACK_BUF_SIZE = 256, 153 I2400M_BM_ACK_BUF_SIZE = 256,
diff --git a/drivers/net/wimax/i2400m/sdio.c b/drivers/net/wimax/i2400m/sdio.c
index a68232aa2915..1429608164b0 100644
--- a/drivers/net/wimax/i2400m/sdio.c
+++ b/drivers/net/wimax/i2400m/sdio.c
@@ -430,7 +430,7 @@ int i2400ms_probe(struct sdio_func *func,
430 i2400m->bus_reset = i2400ms_bus_reset; 430 i2400m->bus_reset = i2400ms_bus_reset;
431 /* The iwmc3200-wimax sometimes requires the driver to try 431 /* The iwmc3200-wimax sometimes requires the driver to try
432 * hard when we paint it into a corner. */ 432 * hard when we paint it into a corner. */
433 i2400m->bus_bm_retries = I3200_BOOT_RETRIES; 433 i2400m->bus_bm_retries = I2400M_SDIO_BOOT_RETRIES;
434 i2400m->bus_bm_cmd_send = i2400ms_bus_bm_cmd_send; 434 i2400m->bus_bm_cmd_send = i2400ms_bus_bm_cmd_send;
435 i2400m->bus_bm_wait_for_ack = i2400ms_bus_bm_wait_for_ack; 435 i2400m->bus_bm_wait_for_ack = i2400ms_bus_bm_wait_for_ack;
436 i2400m->bus_fw_names = i2400ms_bus_fw_names; 436 i2400m->bus_fw_names = i2400ms_bus_fw_names;
diff --git a/drivers/net/wimax/i2400m/usb.c b/drivers/net/wimax/i2400m/usb.c
index 49d7554ad707..8f7b16a6bf3c 100644
--- a/drivers/net/wimax/i2400m/usb.c
+++ b/drivers/net/wimax/i2400m/usb.c
@@ -406,7 +406,7 @@ int i2400mu_probe(struct usb_interface *iface,
406 i2400m->bus_dev_stop = i2400mu_bus_dev_stop; 406 i2400m->bus_dev_stop = i2400mu_bus_dev_stop;
407 i2400m->bus_tx_kick = i2400mu_bus_tx_kick; 407 i2400m->bus_tx_kick = i2400mu_bus_tx_kick;
408 i2400m->bus_reset = i2400mu_bus_reset; 408 i2400m->bus_reset = i2400mu_bus_reset;
409 i2400m->bus_bm_retries = I2400M_BOOT_RETRIES; 409 i2400m->bus_bm_retries = I2400M_USB_BOOT_RETRIES;
410 i2400m->bus_bm_cmd_send = i2400mu_bus_bm_cmd_send; 410 i2400m->bus_bm_cmd_send = i2400mu_bus_bm_cmd_send;
411 i2400m->bus_bm_wait_for_ack = i2400mu_bus_bm_wait_for_ack; 411 i2400m->bus_bm_wait_for_ack = i2400mu_bus_bm_wait_for_ack;
412 i2400m->bus_fw_names = i2400mu_bus_fw_names; 412 i2400m->bus_fw_names = i2400mu_bus_fw_names;