Commit fcca8d5a authored by Bing Zhao's avatar Bing Zhao Committed by John W. Linville

mwifiex: remove static forward declarations in pcie.c

move functions up just to avoid static forward declaration for
mwifiex_pcie_resume.
Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 18c45b10
...@@ -36,8 +36,6 @@ static u8 user_rmmod; ...@@ -36,8 +36,6 @@ static u8 user_rmmod;
static struct mwifiex_if_ops pcie_ops; static struct mwifiex_if_ops pcie_ops;
static struct semaphore add_remove_card_sem; static struct semaphore add_remove_card_sem;
static int mwifiex_pcie_enable_host_int(struct mwifiex_adapter *adapter);
static int mwifiex_pcie_resume(struct pci_dev *pdev);
static int static int
mwifiex_map_pci_memory(struct mwifiex_adapter *adapter, struct sk_buff *skb, mwifiex_map_pci_memory(struct mwifiex_adapter *adapter, struct sk_buff *skb,
...@@ -78,6 +76,80 @@ static bool mwifiex_pcie_ok_to_access_hw(struct mwifiex_adapter *adapter) ...@@ -78,6 +76,80 @@ static bool mwifiex_pcie_ok_to_access_hw(struct mwifiex_adapter *adapter)
return false; return false;
} }
/*
* Kernel needs to suspend all functions separately. Therefore all
* registered functions must have drivers with suspend and resume
* methods. Failing that the kernel simply removes the whole card.
*
* If already not suspended, this function allocates and sends a host
* sleep activate request to the firmware and turns off the traffic.
*/
static int mwifiex_pcie_suspend(struct pci_dev *pdev, pm_message_t state)
{
struct mwifiex_adapter *adapter;
struct pcie_service_card *card;
int hs_actived;
if (pdev) {
card = (struct pcie_service_card *) pci_get_drvdata(pdev);
if (!card || !card->adapter) {
pr_err("Card or adapter structure is not valid\n");
return 0;
}
} else {
pr_err("PCIE device is not specified\n");
return 0;
}
adapter = card->adapter;
hs_actived = mwifiex_enable_hs(adapter);
/* Indicate device suspended */
adapter->is_suspended = true;
return 0;
}
/*
* Kernel needs to suspend all functions separately. Therefore all
* registered functions must have drivers with suspend and resume
* methods. Failing that the kernel simply removes the whole card.
*
* If already not resumed, this function turns on the traffic and
* sends a host sleep cancel request to the firmware.
*/
static int mwifiex_pcie_resume(struct pci_dev *pdev)
{
struct mwifiex_adapter *adapter;
struct pcie_service_card *card;
if (pdev) {
card = (struct pcie_service_card *) pci_get_drvdata(pdev);
if (!card || !card->adapter) {
pr_err("Card or adapter structure is not valid\n");
return 0;
}
} else {
pr_err("PCIE device is not specified\n");
return 0;
}
adapter = card->adapter;
if (!adapter->is_suspended) {
dev_warn(adapter->dev, "Device already resumed\n");
return 0;
}
adapter->is_suspended = false;
mwifiex_cancel_hs(mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_STA),
MWIFIEX_ASYNC_CMD);
return 0;
}
/* /*
* This function probes an mwifiex device and registers it. It allocates * This function probes an mwifiex device and registers it. It allocates
* the card structure, enables PCIE function number and initiates the * the card structure, enables PCIE function number and initiates the
...@@ -159,80 +231,6 @@ static void mwifiex_pcie_remove(struct pci_dev *pdev) ...@@ -159,80 +231,6 @@ static void mwifiex_pcie_remove(struct pci_dev *pdev)
kfree(card); kfree(card);
} }
/*
* Kernel needs to suspend all functions separately. Therefore all
* registered functions must have drivers with suspend and resume
* methods. Failing that the kernel simply removes the whole card.
*
* If already not suspended, this function allocates and sends a host
* sleep activate request to the firmware and turns off the traffic.
*/
static int mwifiex_pcie_suspend(struct pci_dev *pdev, pm_message_t state)
{
struct mwifiex_adapter *adapter;
struct pcie_service_card *card;
int hs_actived;
if (pdev) {
card = (struct pcie_service_card *) pci_get_drvdata(pdev);
if (!card || !card->adapter) {
pr_err("Card or adapter structure is not valid\n");
return 0;
}
} else {
pr_err("PCIE device is not specified\n");
return 0;
}
adapter = card->adapter;
hs_actived = mwifiex_enable_hs(adapter);
/* Indicate device suspended */
adapter->is_suspended = true;
return 0;
}
/*
* Kernel needs to suspend all functions separately. Therefore all
* registered functions must have drivers with suspend and resume
* methods. Failing that the kernel simply removes the whole card.
*
* If already not resumed, this function turns on the traffic and
* sends a host sleep cancel request to the firmware.
*/
static int mwifiex_pcie_resume(struct pci_dev *pdev)
{
struct mwifiex_adapter *adapter;
struct pcie_service_card *card;
if (pdev) {
card = (struct pcie_service_card *) pci_get_drvdata(pdev);
if (!card || !card->adapter) {
pr_err("Card or adapter structure is not valid\n");
return 0;
}
} else {
pr_err("PCIE device is not specified\n");
return 0;
}
adapter = card->adapter;
if (!adapter->is_suspended) {
dev_warn(adapter->dev, "Device already resumed\n");
return 0;
}
adapter->is_suspended = false;
mwifiex_cancel_hs(mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_STA),
MWIFIEX_ASYNC_CMD);
return 0;
}
static DEFINE_PCI_DEVICE_TABLE(mwifiex_ids) = { static DEFINE_PCI_DEVICE_TABLE(mwifiex_ids) = {
{ {
PCIE_VENDOR_ID_MARVELL, PCIE_DEVICE_ID_MARVELL_88W8766P, PCIE_VENDOR_ID_MARVELL, PCIE_DEVICE_ID_MARVELL_88W8766P,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment