mwifiex: get rid of mwifiex_do_flr wrapper
authorXinming Hu <huxm@marvell.com>
Wed, 14 Dec 2016 14:10:47 +0000 (19:40 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 12 Jan 2017 14:49:16 +0000 (16:49 +0200)
This patch gets rid of mwifiex_do_flr. We will call
mwifiex_shutdown_sw() and mwifiex_reinit_sw() directly.
These two general purpose functions will be useful for
sdio card reset handler.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/main.c
drivers/net/wireless/marvell/mwifiex/main.h
drivers/net/wireless/marvell/mwifiex/pcie.c

index c1821aa3ef3c8c4dbd24c3c78b8516d0a5454f68..3fc622195ad75c9d623d6c85457b2f535997a5ab 100644 (file)
@@ -1348,7 +1348,7 @@ static void mwifiex_main_work_queue(struct work_struct *work)
  * This function gets called during PCIe function level reset. Required
  * code is extracted from mwifiex_remove_card()
  */
-static int
+int
 mwifiex_shutdown_sw(struct mwifiex_adapter *adapter)
 {
        struct mwifiex_private *priv;
@@ -1417,13 +1417,13 @@ mwifiex_shutdown_sw(struct mwifiex_adapter *adapter)
 exit_return:
        return 0;
 }
+EXPORT_SYMBOL_GPL(mwifiex_shutdown_sw);
 
 /* This function gets called during PCIe function level reset. Required
  * code is extracted from mwifiex_add_card()
  */
-static int
-mwifiex_reinit_sw(struct mwifiex_adapter *adapter, struct completion *fw_done,
-                 struct mwifiex_if_ops *if_ops, u8 iface_type)
+int
+mwifiex_reinit_sw(struct mwifiex_adapter *adapter)
 {
        char fw_name[32];
        struct pcie_service_card *card = adapter->card;
@@ -1432,9 +1432,6 @@ mwifiex_reinit_sw(struct mwifiex_adapter *adapter, struct completion *fw_done,
        if (adapter->if_ops.up_dev)
                adapter->if_ops.up_dev(adapter);
 
-       adapter->iface_type = iface_type;
-       adapter->fw_done = fw_done;
-
        adapter->hw_status = MWIFIEX_HW_STATUS_INITIALIZING;
        adapter->surprise_removed = false;
        init_waitqueue_head(&adapter->init_wait_q);
@@ -1507,25 +1504,7 @@ err_kmalloc:
 
        return -1;
 }
-
-/* This function processes pre and post PCIe function level resets.
- * It performs software cleanup without touching PCIe specific code.
- * Also, during initialization PCIe stuff is skipped.
- */
-void mwifiex_do_flr(struct mwifiex_adapter *adapter, bool prepare)
-{
-       struct mwifiex_if_ops if_ops;
-
-       if (!prepare) {
-               mwifiex_reinit_sw(adapter, adapter->fw_done, &if_ops,
-                                 adapter->iface_type);
-       } else {
-               memcpy(&if_ops, &adapter->if_ops,
-                      sizeof(struct mwifiex_if_ops));
-               mwifiex_shutdown_sw(adapter);
-       }
-}
-EXPORT_SYMBOL_GPL(mwifiex_do_flr);
+EXPORT_SYMBOL_GPL(mwifiex_reinit_sw);
 
 static irqreturn_t mwifiex_irq_wakeup_handler(int irq, void *priv)
 {
index cf51e5dfc6198315ede1ef42640ba39f6122fb34..5c8297207f339559461f43cee1dc9b0585a23042 100644 (file)
@@ -1666,5 +1666,6 @@ void mwifiex_debugfs_remove(void);
 void mwifiex_dev_debugfs_init(struct mwifiex_private *priv);
 void mwifiex_dev_debugfs_remove(struct mwifiex_private *priv);
 #endif
-void mwifiex_do_flr(struct mwifiex_adapter *adapter, bool prepare);
+int mwifiex_reinit_sw(struct mwifiex_adapter *adapter);
+int mwifiex_shutdown_sw(struct mwifiex_adapter *adapter);
 #endif /* !_MWIFIEX_MAIN_H_ */
index 55c79e3811d7d32718d70844a17fc22379128a45..02f6db0fa395bc751e4348f6465b3778eb15925e 100644 (file)
@@ -375,7 +375,7 @@ static void mwifiex_pcie_reset_notify(struct pci_dev *pdev, bool prepare)
                 * Cleanup all software without cleaning anything related to
                 * PCIe and HW.
                 */
-               mwifiex_do_flr(adapter, prepare);
+               mwifiex_shutdown_sw(adapter);
                adapter->surprise_removed = true;
        } else {
                /* Kernel stores and restores PCIe function context before and
@@ -383,7 +383,7 @@ static void mwifiex_pcie_reset_notify(struct pci_dev *pdev, bool prepare)
                 * and firmware including firmware redownload
                 */
                adapter->surprise_removed = false;
-               mwifiex_do_flr(adapter, prepare);
+               mwifiex_reinit_sw(adapter);
        }
        mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__);
 }