aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwmc3200wifi/sdio.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwmc3200wifi/sdio.c')
-rw-r--r--drivers/net/wireless/iwmc3200wifi/sdio.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/sdio.c b/drivers/net/wireless/iwmc3200wifi/sdio.c
index 8b1de84003c..a7ec7eac913 100644
--- a/drivers/net/wireless/iwmc3200wifi/sdio.c
+++ b/drivers/net/wireless/iwmc3200wifi/sdio.c
@@ -224,8 +224,6 @@ static int if_sdio_disable(struct iwm_priv *iwm)
224 struct iwm_sdio_priv *hw = iwm_to_if_sdio(iwm); 224 struct iwm_sdio_priv *hw = iwm_to_if_sdio(iwm);
225 int ret; 225 int ret;
226 226
227 iwm_reset(iwm);
228
229 sdio_claim_host(hw->func); 227 sdio_claim_host(hw->func);
230 sdio_writeb(hw->func, 0, IWM_SDIO_INTR_ENABLE_ADDR, &ret); 228 sdio_writeb(hw->func, 0, IWM_SDIO_INTR_ENABLE_ADDR, &ret);
231 if (ret < 0) 229 if (ret < 0)
@@ -237,6 +235,8 @@ static int if_sdio_disable(struct iwm_priv *iwm)
237 235
238 iwm_sdio_rx_free(hw); 236 iwm_sdio_rx_free(hw);
239 237
238 iwm_reset(iwm);
239
240 IWM_DBG_SDIO(iwm, INFO, "IWM SDIO disable\n"); 240 IWM_DBG_SDIO(iwm, INFO, "IWM SDIO disable\n");
241 241
242 return 0; 242 return 0;
@@ -399,6 +399,9 @@ static struct iwm_if_ops if_sdio_ops = {
399 .calib_lmac_name = "iwmc3200wifi-calib-sdio.bin", 399 .calib_lmac_name = "iwmc3200wifi-calib-sdio.bin",
400 .lmac_name = "iwmc3200wifi-lmac-sdio.bin", 400 .lmac_name = "iwmc3200wifi-lmac-sdio.bin",
401}; 401};
402MODULE_FIRMWARE("iwmc3200wifi-umac-sdio.bin");
403MODULE_FIRMWARE("iwmc3200wifi-calib-sdio.bin");
404MODULE_FIRMWARE("iwmc3200wifi-lmac-sdio.bin");
402 405
403static int iwm_sdio_probe(struct sdio_func *func, 406static int iwm_sdio_probe(struct sdio_func *func,
404 const struct sdio_device_id *id) 407 const struct sdio_device_id *id)
@@ -493,8 +496,10 @@ static void iwm_sdio_remove(struct sdio_func *func)
493} 496}
494 497
495static const struct sdio_device_id iwm_sdio_ids[] = { 498static const struct sdio_device_id iwm_sdio_ids[] = {
496 { SDIO_DEVICE(SDIO_VENDOR_ID_INTEL, 499 /* Global/AGN SKU */
497 SDIO_DEVICE_ID_INTEL_IWMC3200WIFI) }, 500 { SDIO_DEVICE(SDIO_VENDOR_ID_INTEL, 0x1403) },
501 /* BGN SKU */
502 { SDIO_DEVICE(SDIO_VENDOR_ID_INTEL, 0x1408) },
498 { /* end: all zeroes */ }, 503 { /* end: all zeroes */ },
499}; 504};
500MODULE_DEVICE_TABLE(sdio, iwm_sdio_ids); 505MODULE_DEVICE_TABLE(sdio, iwm_sdio_ids);