]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
mwifiex: Allow mwifiex early access to device structure
authorRajat Jain <rajatja@google.com>
Tue, 15 Nov 2016 13:36:02 +0000 (19:06 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 19 Nov 2016 07:13:11 +0000 (09:13 +0200)
Today all the interface drivers (usb/pcie/sdio) assign the
adapter->dev in the register_dev() callback, although they
have this piece of info well before hand.

This patch makes the device structure available for mwifiex
right at the beginning, so that it can be used for early
initialization if needed.

This is needed for subsequent patches in this patchset that
intend to unify and consolidate some of the code that would
otherwise have to be duplicated among the interface drivers
(sdio, pcie, usb).

Signed-off-by: Rajat Jain <rajatja@google.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
drivers/net/wireless/marvell/mwifiex/sdio.c
drivers/net/wireless/marvell/mwifiex/usb.c

index 2478ccd6f2d936c9e962f5cc6cdeeb9a5908219a..dcceab2899e53dd7a198621b4a81f36d6c57f3a3 100644 (file)
@@ -1567,7 +1567,8 @@ EXPORT_SYMBOL_GPL(mwifiex_do_flr);
  */
 int
 mwifiex_add_card(void *card, struct semaphore *sem,
-                struct mwifiex_if_ops *if_ops, u8 iface_type)
+                struct mwifiex_if_ops *if_ops, u8 iface_type,
+                struct device *dev)
 {
        struct mwifiex_adapter *adapter;
 
@@ -1579,6 +1580,7 @@ mwifiex_add_card(void *card, struct semaphore *sem,
                goto err_init_sw;
        }
 
+       adapter->dev = dev;
        adapter->iface_type = iface_type;
        adapter->card_sem = sem;
 
index d61fe3a721183764223aa9dca3b565dbaad0bedc..549e1ba89576af1af7f1b82625e377df27c1b758 100644 (file)
@@ -1412,7 +1412,9 @@ static inline u8 mwifiex_is_tdls_link_setup(u8 status)
 
 int mwifiex_init_shutdown_fw(struct mwifiex_private *priv,
                             u32 func_init_shutdown);
-int mwifiex_add_card(void *, struct semaphore *, struct mwifiex_if_ops *, u8);
+int mwifiex_add_card(void *card, struct semaphore *sem,
+                    struct mwifiex_if_ops *if_ops, u8 iface_type,
+                    struct device *dev);
 int mwifiex_remove_card(struct mwifiex_adapter *, struct semaphore *);
 
 void mwifiex_get_version(struct mwifiex_adapter *adapter, char *version,
index 5737cc64f211fb9699bb01427274f7423b5b2441..0b0f9c754f42a9e8950665d5094d1c24a112fd58 100644 (file)
@@ -231,7 +231,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
        }
 
        if (mwifiex_add_card(card, &add_remove_card_sem, &pcie_ops,
-                            MWIFIEX_PCIE)) {
+                            MWIFIEX_PCIE, &pdev->dev)) {
                pr_err("%s failed\n", __func__);
                return -1;
        }
@@ -2992,11 +2992,9 @@ static void mwifiex_pcie_get_fw_name(struct mwifiex_adapter *adapter)
 static int mwifiex_register_dev(struct mwifiex_adapter *adapter)
 {
        struct pcie_service_card *card = adapter->card;
-       struct pci_dev *pdev = card->dev;
 
        /* save adapter pointer in card */
        card->adapter = adapter;
-       adapter->dev = &pdev->dev;
 
        if (mwifiex_pcie_request_irq(adapter))
                return -1;
index e25a7f0dd51bb4f4c39d9cff90e086a960d0dcf1..037a0f9dd6d9abc00e12fbc049831afacb9f5a04 100644 (file)
@@ -206,7 +206,7 @@ mwifiex_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id)
        }
 
        ret = mwifiex_add_card(card, &add_remove_card_sem, &sdio_ops,
-                              MWIFIEX_SDIO);
+                              MWIFIEX_SDIO, &func->dev);
        if (ret) {
                dev_err(&func->dev, "add card failed\n");
                goto err_disable;
@@ -2104,9 +2104,6 @@ static int mwifiex_register_dev(struct mwifiex_adapter *adapter)
                return ret;
        }
 
-
-       adapter->dev = &func->dev;
-
        strcpy(adapter->fw_name, card->firmware);
        if (card->fw_dump_enh) {
                adapter->mem_type_mapping_tbl = generic_mem_type_map;
index 57ed834ba29617228eb4fadcdb61bd0431c865b6..9cc2a0c0b6700b9968a243e0dcfdb0cf83cd5d9a 100644 (file)
@@ -476,7 +476,7 @@ static int mwifiex_usb_probe(struct usb_interface *intf,
        usb_set_intfdata(intf, card);
 
        ret = mwifiex_add_card(card, &add_remove_card_sem, &usb_ops,
-                              MWIFIEX_USB);
+                              MWIFIEX_USB, &card->udev->dev);
        if (ret) {
                pr_err("%s: mwifiex_add_card failed: %d\n", __func__, ret);
                usb_reset_device(udev);
@@ -927,7 +927,6 @@ static int mwifiex_register_dev(struct mwifiex_adapter *adapter)
        struct usb_card_rec *card = (struct usb_card_rec *)adapter->card;
 
        card->adapter = adapter;
-       adapter->dev = &card->udev->dev;
 
        switch (le16_to_cpu(card->udev->descriptor.idProduct)) {
        case USB8997_PID_1: