Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 25 Feb 2013 19:50:31 +0000 (14:50 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 25 Feb 2013 19:50:31 +0000 (14:50 -0500)
1  2 
drivers/net/wireless/mwifiex/sdio.c

index e63f646a260e33407c9d5b0a418b545327dfa7af,e819a4e82ca2ed1fd1b38dd40cddad2885bf865f..363ba31b58bf057fbd305007a70aba9ffea82978
@@@ -161,7 -161,6 +161,6 @@@ static int mwifiex_sdio_suspend(struct 
        struct sdio_mmc_card *card;
        struct mwifiex_adapter *adapter;
        mmc_pm_flag_t pm_flag = 0;
-       int i;
        int ret = 0;
  
        if (func) {
        /* Indicate device suspended */
        adapter->is_suspended = true;
  
-       for (i = 0; i < adapter->priv_num; i++)
-               netif_carrier_off(adapter->priv[i]->netdev);
        return ret;
  }
  
@@@ -220,7 -216,6 +216,6 @@@ static int mwifiex_sdio_resume(struct d
        struct sdio_mmc_card *card;
        struct mwifiex_adapter *adapter;
        mmc_pm_flag_t pm_flag = 0;
-       int i;
  
        if (func) {
                pm_flag = sdio_get_host_pm_caps(func);
  
        adapter->is_suspended = false;
  
-       for (i = 0; i < adapter->priv_num; i++)
-               if (adapter->priv[i]->media_connected)
-                       netif_carrier_on(adapter->priv[i]->netdev);
        /* Disable Host Sleep */
        mwifiex_cancel_hs(mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_STA),
                          MWIFIEX_ASYNC_CMD);
@@@ -716,8 -707,11 +707,8 @@@ static int mwifiex_prog_fw_w_helper(str
  
        /* Assume that the allocated buffer is 8-byte aligned */
        fwbuf = kzalloc(MWIFIEX_UPLD_SIZE, GFP_KERNEL);
 -      if (!fwbuf) {
 -              dev_err(adapter->dev,
 -                      "unable to alloc buffer for FW. Terminating dnld\n");
 +      if (!fwbuf)
                return -ENOMEM;
 -      }
  
        /* Perform firmware data transfer */
        do {
@@@ -1515,6 -1509,7 +1506,6 @@@ static int mwifiex_alloc_sdio_mpa_buffe
  
        card->mpa_tx.buf = kzalloc(mpa_tx_buf_size, GFP_KERNEL);
        if (!card->mpa_tx.buf) {
 -              dev_err(adapter->dev, "could not alloc buffer for MP-A TX\n");
                ret = -1;
                goto error;
        }
  
        card->mpa_rx.buf = kzalloc(mpa_rx_buf_size, GFP_KERNEL);
        if (!card->mpa_rx.buf) {
 -              dev_err(adapter->dev, "could not alloc buffer for MP-A RX\n");
                ret = -1;
                goto error;
        }
@@@ -1675,8 -1671,10 +1666,8 @@@ static int mwifiex_init_sdio(struct mwi
  
        /* Allocate buffers for SDIO MP-A */
        card->mp_regs = kzalloc(MAX_MP_REGS, GFP_KERNEL);
 -      if (!card->mp_regs) {
 -              dev_err(adapter->dev, "failed to alloc mp_regs\n");
 +      if (!card->mp_regs)
                return -ENOMEM;
 -      }
  
        ret = mwifiex_alloc_sdio_mpa_buffers(adapter,
                                             SDIO_MP_TX_AGGR_DEF_BUF_SIZE,
@@@ -1743,8 -1741,6 +1734,8 @@@ mwifiex_update_mp_end_port(struct mwifi
  static struct mmc_host *reset_host;
  static void sdio_card_reset_worker(struct work_struct *work)
  {
 +      struct mmc_host *target = reset_host;
 +
        /* The actual reset operation must be run outside of driver thread.
         * This is because mmc_remove_host() will cause the device to be
         * instantly destroyed, and the driver then needs to end its thread,
         */
  
        pr_err("Resetting card...\n");
 -      mmc_remove_host(reset_host);
 +      mmc_remove_host(target);
        /* 20ms delay is based on experiment with sdhci controller */
        mdelay(20);
 -      mmc_add_host(reset_host);
 +      mmc_add_host(target);
  }
  static DECLARE_WORK(card_reset_work, sdio_card_reset_worker);
  
@@@ -1766,6 -1762,9 +1757,6 @@@ static void mwifiex_sdio_card_reset(str
  {
        struct sdio_mmc_card *card = adapter->card;
  
 -      if (work_pending(&card_reset_work))
 -              return;
 -
        reset_host = card->func->card->host;
        schedule_work(&card_reset_work);
  }