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>
This commit is contained in:
parent
a134fd6b10
commit
c30836580b
|
@ -602,7 +602,7 @@ int i2400m_bootrom_init(struct i2400m *i2400m, enum i2400m_bri flags)
|
|||
struct device *dev = i2400m_dev(i2400m);
|
||||
struct i2400m_bootrom_header *cmd;
|
||||
struct i2400m_bootrom_header ack;
|
||||
int count = I2400M_BOOT_RETRIES;
|
||||
int count = i2400m->bus_bm_retries;
|
||||
int ack_timeout_cnt = 1;
|
||||
|
||||
BUILD_BUG_ON(sizeof(*cmd) != sizeof(i2400m_NBOOT_BARKER));
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
|
||||
/* Host-Device interface for SDIO */
|
||||
enum {
|
||||
I2400M_SDIO_BOOT_RETRIES = 3,
|
||||
I2400MS_BLK_SIZE = 256,
|
||||
I2400MS_PL_SIZE_MAX = 0x3E00,
|
||||
|
||||
|
|
|
@ -137,6 +137,7 @@ static inline int edc_inc(struct edc *edc, u16 max_err, u16 timeframe)
|
|||
|
||||
/* Host-Device interface for USB */
|
||||
enum {
|
||||
I2400M_USB_BOOT_RETRIES = 3,
|
||||
I2400MU_MAX_NOTIFICATION_LEN = 256,
|
||||
I2400MU_BLK_SIZE = 16,
|
||||
I2400MU_PL_SIZE_MAX = 0x3EFF,
|
||||
|
|
|
@ -148,9 +148,6 @@
|
|||
|
||||
/* Misc constants */
|
||||
enum {
|
||||
/* Firmware uploading */
|
||||
I2400M_BOOT_RETRIES = 3,
|
||||
I3200_BOOT_RETRIES = 3,
|
||||
/* Size of the Boot Mode Command buffer */
|
||||
I2400M_BM_CMD_BUF_SIZE = 16 * 1024,
|
||||
I2400M_BM_ACK_BUF_SIZE = 256,
|
||||
|
|
|
@ -430,7 +430,7 @@ int i2400ms_probe(struct sdio_func *func,
|
|||
i2400m->bus_reset = i2400ms_bus_reset;
|
||||
/* The iwmc3200-wimax sometimes requires the driver to try
|
||||
* hard when we paint it into a corner. */
|
||||
i2400m->bus_bm_retries = I3200_BOOT_RETRIES;
|
||||
i2400m->bus_bm_retries = I2400M_SDIO_BOOT_RETRIES;
|
||||
i2400m->bus_bm_cmd_send = i2400ms_bus_bm_cmd_send;
|
||||
i2400m->bus_bm_wait_for_ack = i2400ms_bus_bm_wait_for_ack;
|
||||
i2400m->bus_fw_names = i2400ms_bus_fw_names;
|
||||
|
|
|
@ -406,7 +406,7 @@ int i2400mu_probe(struct usb_interface *iface,
|
|||
i2400m->bus_dev_stop = i2400mu_bus_dev_stop;
|
||||
i2400m->bus_tx_kick = i2400mu_bus_tx_kick;
|
||||
i2400m->bus_reset = i2400mu_bus_reset;
|
||||
i2400m->bus_bm_retries = I2400M_BOOT_RETRIES;
|
||||
i2400m->bus_bm_retries = I2400M_USB_BOOT_RETRIES;
|
||||
i2400m->bus_bm_cmd_send = i2400mu_bus_bm_cmd_send;
|
||||
i2400m->bus_bm_wait_for_ack = i2400mu_bus_bm_wait_for_ack;
|
||||
i2400m->bus_fw_names = i2400mu_bus_fw_names;
|
||||
|
|
Loading…
Reference in New Issue