summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorSarada Prasanna Garnayak <sgarna@codeaurora.org>2016-03-11 16:31:02 +0530
committerKyle Yan <kyan@codeaurora.org>2016-05-31 15:25:28 -0700
commit267a202df036e8ef083444309d608868d577944e (patch)
tree06cb0bed1cd32a97011927648d7fb6e545109793 /drivers/net
parentb48a17256e088271f19193a7b9f3c9534ed8671c (diff)
net: cnss: add dual cnss platform driver support for dual WiFi
For dual WiFi both cnss sdio and pcie platform needs to be enabled. Added changes below to support dual platform driver for dual WiFi. Refactor the common api and data structure to avoid namespace collision compilation error. Refactor sdio and pcie bus specific kernel api and removed conditional compilation config flag. The platform driver at run time identifies the wlan bus type from the PHY device pointer passed by the wlan driver through vos api and cnss platform driver redirects the cnss api according the bus type. Remove conditional compilation flag from cnss common api and update cnss makefile for dual platform driver compilation with single config flag. CRs-Fixed: 988871 Change-Id: I8205c2979c857c2f3845ba2dc397d2f9dd1afa3b Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org> Signed-off-by: Ryan Hsu <ryanhsu@codeaurora.org>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/cnss/Kconfig23
-rw-r--r--drivers/net/wireless/cnss/Makefile4
-rw-r--r--drivers/net/wireless/cnss/cnss_common.c166
-rw-r--r--drivers/net/wireless/cnss/cnss_pci.c212
4 files changed, 240 insertions, 165 deletions
diff --git a/drivers/net/wireless/cnss/Kconfig b/drivers/net/wireless/cnss/Kconfig
index bd06ed10d8a7..4558dc30fec1 100644
--- a/drivers/net/wireless/cnss/Kconfig
+++ b/drivers/net/wireless/cnss/Kconfig
@@ -9,29 +9,6 @@ config CNSS
This driver also adds support to integrate WLAN module to subsystem
restart framework.
-config CNSS_PCI
- tristate "Flag to enable platform driver for PCIe based wifi device"
- select CNSS
- depends on PCI
- depends on PCI_MSI
- ---help---
- This module specifies whether CNSS Platform Driver supports PCI.
- This flag needs to be disabled if CNSS platform Driver need to be
- supported for other buses.
- The Flag depends on the CNSS Platform Driver and PCI. This Flag
- is used by the CLD driver to use the PCIe exported API's through
- CNSS Driver.
-
-config CNSS_SDIO
- tristate "Flag to enable platform driver for SIDO based wifi device"
- select CNSS
- depends on MMC_SDHCI
- depends on MMC_SDHCI_MSM
- ---help---
- This module specifies whether CNSS Platform Driver supports SDIO.
- This flag needs to be disabled if CNSS platform Driver need to be
- supported for other buses.
-
config CNSS_MAC_BUG
bool "Enable/disable 0-4K memory initialization for QCA6174"
depends on CNSS
diff --git a/drivers/net/wireless/cnss/Makefile b/drivers/net/wireless/cnss/Makefile
index 4401158fe888..86bd27ae3f45 100644
--- a/drivers/net/wireless/cnss/Makefile
+++ b/drivers/net/wireless/cnss/Makefile
@@ -1,5 +1,5 @@
# Makefile for CNSS platform driver
-obj-$(CONFIG_CNSS_PCI) += cnss_pci.o
-obj-$(CONFIG_CNSS_SDIO) += cnss_sdio.o
+obj-$(CONFIG_CNSS) += cnss_pci.o
+obj-$(CONFIG_CNSS) += cnss_sdio.o
obj-$(CONFIG_CNSS) += cnss_common.o
diff --git a/drivers/net/wireless/cnss/cnss_common.c b/drivers/net/wireless/cnss/cnss_common.c
index 428c2f6ad5e6..3639d3245077 100644
--- a/drivers/net/wireless/cnss/cnss_common.c
+++ b/drivers/net/wireless/cnss/cnss_common.c
@@ -244,7 +244,10 @@ EXPORT_SYMBOL(cnss_dump_stack);
enum cnss_dev_bus_type cnss_get_dev_bus_type(struct device *dev)
{
- if (!dev && !dev->bus)
+ if (!dev)
+ return CNSS_BUS_NONE;
+
+ if (!dev->bus)
return CNSS_BUS_NONE;
if (memcmp(dev->bus->name, "sdio", 4) == 0)
@@ -255,122 +258,127 @@ enum cnss_dev_bus_type cnss_get_dev_bus_type(struct device *dev)
return CNSS_BUS_NONE;
}
-#ifdef CONFIG_CNSS_SDIO
int cnss_common_request_bus_bandwidth(struct device *dev, int bandwidth)
{
- if (CNSS_BUS_SDIO == cnss_get_dev_bus_type(dev))
- return cnss_sdio_request_bus_bandwidth(bandwidth);
- else
- return 0;
-}
-EXPORT_SYMBOL(cnss_common_request_bus_bandwidth);
-
-void *cnss_common_get_virt_ramdump_mem(struct device *dev, unsigned long *size)
-{
- if (CNSS_BUS_SDIO == cnss_get_dev_bus_type(dev))
- return cnss_sdio_get_virt_ramdump_mem(size);
- else
- return NULL;
-}
-EXPORT_SYMBOL(cnss_common_get_virt_ramdump_mem);
-
-void cnss_common_device_self_recovery(struct device *dev)
-{
- if (CNSS_BUS_SDIO == cnss_get_dev_bus_type(dev))
- cnss_sdio_device_self_recovery();
-}
-EXPORT_SYMBOL(cnss_common_device_self_recovery);
-
-void cnss_common_schedule_recovery_work(struct device *dev)
-{
- if (CNSS_BUS_SDIO == cnss_get_dev_bus_type(dev))
- cnss_sdio_schedule_recovery_work();
-}
-EXPORT_SYMBOL(cnss_common_schedule_recovery_work);
-
-void cnss_common_device_crashed(struct device *dev)
-{
- if (CNSS_BUS_SDIO == cnss_get_dev_bus_type(dev))
- cnss_sdio_device_crashed();
-}
-EXPORT_SYMBOL(cnss_common_device_crashed);
-
-u8 *cnss_common_get_wlan_mac_address(struct device *dev, uint32_t *num)
-{
- if (CNSS_BUS_SDIO == cnss_get_dev_bus_type(dev))
- return cnss_sdio_get_wlan_mac_address(num);
- else
- return NULL;
-}
-EXPORT_SYMBOL(cnss_common_get_wlan_mac_address);
-
-int cnss_common_set_wlan_mac_address(
- struct device *dev, const u8 *in, uint32_t len)
-{
- if (CNSS_BUS_SDIO == cnss_get_dev_bus_type(dev))
- return cnss_sdio_set_wlan_mac_address(in, len);
- else
- return -EINVAL;
-}
-EXPORT_SYMBOL(cnss_common_set_wlan_mac_address);
-#endif
+ int ret;
+
+ switch (cnss_get_dev_bus_type(dev)) {
+ case CNSS_BUS_SDIO:
+ ret = cnss_sdio_request_bus_bandwidth(bandwidth);
+ break;
+ case CNSS_BUS_PCI:
+ ret = cnss_pci_request_bus_bandwidth(bandwidth);
+ break;
+ default:
+ pr_debug("%s: Invalid device type\n", __func__);
+ ret = -EINVAL;
+ break;
+ }
-#ifdef CONFIG_CNSS_PCI
-int cnss_common_request_bus_bandwidth(struct device *dev, int bandwidth)
-{
- if (CNSS_BUS_PCI == cnss_get_dev_bus_type(dev))
- return cnss_pci_request_bus_bandwidth(bandwidth);
- else
- return 0;
+ return ret;
}
EXPORT_SYMBOL(cnss_common_request_bus_bandwidth);
void *cnss_common_get_virt_ramdump_mem(struct device *dev, unsigned long *size)
{
- if (CNSS_BUS_PCI == cnss_get_dev_bus_type(dev))
+ switch (cnss_get_dev_bus_type(dev)) {
+ case CNSS_BUS_SDIO:
+ return cnss_sdio_get_virt_ramdump_mem(size);
+ case CNSS_BUS_PCI:
return cnss_pci_get_virt_ramdump_mem(size);
- else
+ default:
+ pr_debug("%s: Invalid device type\n", __func__);
return NULL;
+ }
}
EXPORT_SYMBOL(cnss_common_get_virt_ramdump_mem);
void cnss_common_device_self_recovery(struct device *dev)
{
- if (CNSS_BUS_PCI == cnss_get_dev_bus_type(dev))
+ switch (cnss_get_dev_bus_type(dev)) {
+ case CNSS_BUS_SDIO:
+ cnss_sdio_device_self_recovery();
+ break;
+ case CNSS_BUS_PCI:
cnss_pci_device_self_recovery();
+ break;
+ default:
+ pr_debug("%s: Invalid device type\n", __func__);
+ break;
+ }
}
EXPORT_SYMBOL(cnss_common_device_self_recovery);
void cnss_common_schedule_recovery_work(struct device *dev)
{
- if (CNSS_BUS_PCI == cnss_get_dev_bus_type(dev))
+ switch (cnss_get_dev_bus_type(dev)) {
+ case CNSS_BUS_SDIO:
+ cnss_sdio_schedule_recovery_work();
+ break;
+ case CNSS_BUS_PCI:
cnss_pci_schedule_recovery_work();
+ break;
+ default:
+ pr_debug("%s: Invalid device type\n", __func__);
+ break;
+ }
}
EXPORT_SYMBOL(cnss_common_schedule_recovery_work);
void cnss_common_device_crashed(struct device *dev)
{
- if (CNSS_BUS_PCI == cnss_get_dev_bus_type(dev))
+ switch (cnss_get_dev_bus_type(dev)) {
+ case CNSS_BUS_SDIO:
+ cnss_sdio_device_crashed();
+ break;
+ case CNSS_BUS_PCI:
cnss_pci_device_crashed();
+ break;
+ default:
+ pr_debug("%s: Invalid device type\n", __func__);
+ break;
+ }
}
EXPORT_SYMBOL(cnss_common_device_crashed);
u8 *cnss_common_get_wlan_mac_address(struct device *dev, uint32_t *num)
{
- if (CNSS_BUS_PCI == cnss_get_dev_bus_type(dev))
- return cnss_pci_get_wlan_mac_address(num);
- else
- return NULL;
+ u8 *ret;
+
+ switch (cnss_get_dev_bus_type(dev)) {
+ case CNSS_BUS_SDIO:
+ ret = cnss_sdio_get_wlan_mac_address(num);
+ break;
+ case CNSS_BUS_PCI:
+ ret = cnss_pci_get_wlan_mac_address(num);
+ break;
+ default:
+ pr_debug("%s: Invalid device type\n", __func__);
+ ret = NULL;
+ break;
+ }
+ return ret;
}
EXPORT_SYMBOL(cnss_common_get_wlan_mac_address);
int cnss_common_set_wlan_mac_address(
struct device *dev, const u8 *in, uint32_t len)
{
- if (CNSS_BUS_PCI == cnss_get_dev_bus_type(dev))
- return cnss_pcie_set_wlan_mac_address(in, len);
- else
- return -EINVAL;
+ int ret;
+
+ switch (cnss_get_dev_bus_type(dev)) {
+ case CNSS_BUS_SDIO:
+ ret = cnss_sdio_set_wlan_mac_address(in, len);
+ break;
+ case CNSS_BUS_PCI:
+ ret = cnss_pcie_set_wlan_mac_address(in, len);
+ break;
+ default:
+ pr_debug("%s: Invalid device type\n", __func__);
+ ret = -EINVAL;
+ break;
+ }
+
+ return ret;
}
EXPORT_SYMBOL(cnss_common_set_wlan_mac_address);
-#endif
diff --git a/drivers/net/wireless/cnss/cnss_pci.c b/drivers/net/wireless/cnss/cnss_pci.c
index e34c08c337f7..322de8b58cd5 100644
--- a/drivers/net/wireless/cnss/cnss_pci.c
+++ b/drivers/net/wireless/cnss/cnss_pci.c
@@ -41,11 +41,7 @@
#include <linux/scatterlist.h>
#include <linux/log2.h>
#include <linux/etherdevice.h>
-#ifdef CONFIG_PCI_MSM
#include <linux/msm_pcie.h>
-#else
-#include <mach/msm_pcie.h>
-#endif
#include <soc/qcom/subsystem_restart.h>
#include <soc/qcom/subsystem_notif.h>
#include <soc/qcom/ramdump.h>
@@ -1422,6 +1418,95 @@ static void cnss_smmu_remove(struct device *dev)
penv->smmu_mapping = NULL;
}
+#ifdef CONFIG_PCI_MSM
+struct pci_saved_state *cnss_pci_store_saved_state(struct pci_dev *dev)
+{
+ return pci_store_saved_state(dev);
+}
+
+int cnss_msm_pcie_pm_control(
+ enum msm_pcie_pm_opt pm_opt, u32 bus_num,
+ struct pci_dev *pdev, u32 options)
+{
+ return msm_pcie_pm_control(pm_opt, bus_num, pdev, NULL, options);
+}
+
+int cnss_pci_load_and_free_saved_state(
+ struct pci_dev *dev, struct pci_saved_state **state)
+{
+ return pci_load_and_free_saved_state(dev, state);
+}
+
+int cnss_msm_pcie_shadow_control(struct pci_dev *dev, bool enable)
+{
+ return msm_pcie_shadow_control(dev, enable);
+}
+
+int cnss_msm_pcie_deregister_event(struct msm_pcie_register_event *reg)
+{
+ return msm_pcie_deregister_event(reg);
+}
+
+int cnss_msm_pcie_recover_config(struct pci_dev *dev)
+{
+ return msm_pcie_recover_config(dev);
+}
+
+int cnss_msm_pcie_register_event(struct msm_pcie_register_event *reg)
+{
+ return msm_pcie_register_event(reg);
+}
+
+int cnss_msm_pcie_enumerate(u32 rc_idx)
+{
+ return msm_pcie_enumerate(rc_idx);
+}
+#else /* !defined CONFIG_PCI_MSM */
+
+struct pci_saved_state *cnss_pci_store_saved_state(struct pci_dev *dev)
+{
+ return NULL;
+}
+
+int cnss_msm_pcie_pm_control(
+ enum msm_pcie_pm_opt pm_opt, u32 bus_num,
+ struct pci_dev *pdev, u32 options)
+{
+ return -ENODEV;
+}
+
+int cnss_pci_load_and_free_saved_state(
+ struct pci_dev *dev, struct pci_saved_state **state)
+{
+ return 0;
+}
+
+int cnss_msm_pcie_shadow_control(struct pci_dev *dev, bool enable)
+{
+ return -ENODEV;
+}
+
+int cnss_msm_pcie_deregister_event(struct msm_pcie_register_event *reg)
+{
+ return -ENODEV;
+}
+
+int cnss_msm_pcie_recover_config(struct pci_dev *dev)
+{
+ return -ENODEV;
+}
+
+int cnss_msm_pcie_register_event(struct msm_pcie_register_event *reg)
+{
+ return -ENODEV;
+}
+
+int cnss_msm_pcie_enumerate(u32 rc_idx)
+{
+ return -EPROBE_DEFER;
+}
+#endif
+
static int cnss_wlan_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *id)
{
@@ -1474,11 +1559,11 @@ static int cnss_wlan_pci_probe(struct pci_dev *pdev,
if (penv->pcie_link_state) {
pci_save_state(pdev);
- penv->saved_state = pci_store_saved_state(pdev);
+ penv->saved_state = cnss_pci_store_saved_state(pdev);
- ret = msm_pcie_pm_control(MSM_PCIE_SUSPEND,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS);
+ ret = cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS);
if (ret) {
pr_err("Failed to shutdown PCIe link\n");
goto err_pcie_suspend;
@@ -1578,7 +1663,7 @@ static int cnss_wlan_pci_suspend(struct device *dev)
if (penv->pcie_link_state) {
pci_save_state(pdev);
- penv->saved_state = pci_store_saved_state(pdev);
+ penv->saved_state = cnss_pci_store_saved_state(pdev);
}
}
penv->monitor_wake_intr = false;
@@ -1602,8 +1687,8 @@ static int cnss_wlan_pci_resume(struct device *dev)
if (wdriver->resume && !penv->pcie_link_down_ind) {
if (penv->saved_state)
- pci_load_and_free_saved_state(pdev,
- &penv->saved_state);
+ cnss_pci_load_and_free_saved_state(
+ pdev, &penv->saved_state);
pci_restore_state(pdev);
ret = wdriver->resume(pdev);
@@ -1842,7 +1927,7 @@ EXPORT_SYMBOL(cnss_wlan_pci_link_down);
int cnss_pcie_shadow_control(struct pci_dev *dev, bool enable)
{
- return msm_pcie_shadow_control(dev, enable);
+ return cnss_msm_pcie_shadow_control(dev, enable);
}
EXPORT_SYMBOL(cnss_pcie_shadow_control);
@@ -2128,14 +2213,14 @@ again:
penv->event_reg.mode = MSM_PCIE_TRIGGER_CALLBACK;
penv->event_reg.callback = cnss_pci_events_cb;
penv->event_reg.options = MSM_PCIE_CONFIG_NO_RECOVERY;
- ret = msm_pcie_register_event(&penv->event_reg);
+ ret = cnss_msm_pcie_register_event(&penv->event_reg);
if (ret)
pr_err("%s: PCIe event register failed! %d\n", __func__, ret);
if (!penv->pcie_link_state && !penv->pcie_link_down_ind) {
- ret = msm_pcie_pm_control(MSM_PCIE_RESUME,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS);
+ ret = cnss_msm_pcie_pm_control(
+ MSM_PCIE_RESUME, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS);
if (ret) {
pr_err("PCIe link bring-up failed\n");
goto err_pcie_link_up;
@@ -2143,9 +2228,9 @@ again:
penv->pcie_link_state = PCIE_LINK_UP;
} else if (!penv->pcie_link_state && penv->pcie_link_down_ind) {
- ret = msm_pcie_pm_control(MSM_PCIE_RESUME,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS_RESUME_LINK_DOWN);
+ ret = cnss_msm_pcie_pm_control(
+ MSM_PCIE_RESUME, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS_RESUME_LINK_DOWN);
if (ret) {
pr_err("PCIe link bring-up failed (link down option)\n");
@@ -2153,7 +2238,7 @@ again:
}
penv->pcie_link_state = PCIE_LINK_UP;
- ret = msm_pcie_recover_config(pdev);
+ ret = cnss_msm_pcie_recover_config(pdev);
if (ret) {
pr_err("cnss: PCI link failed to recover\n");
goto err_pcie_link_up;
@@ -2166,7 +2251,8 @@ again:
if (wdrv->probe) {
if (penv->saved_state)
- pci_load_and_free_saved_state(pdev, &penv->saved_state);
+ cnss_pci_load_and_free_saved_state(
+ pdev, &penv->saved_state);
pci_restore_state(pdev);
@@ -2180,11 +2266,12 @@ again:
goto err_wlan_probe;
}
pci_save_state(pdev);
- penv->saved_state = pci_store_saved_state(pdev);
- msm_pcie_deregister_event(&penv->event_reg);
- msm_pcie_pm_control(MSM_PCIE_SUSPEND,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS);
+ penv->saved_state = cnss_pci_store_saved_state(pdev);
+ cnss_msm_pcie_deregister_event(&penv->event_reg);
+ cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND,
+ cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS);
penv->pcie_link_state = PCIE_LINK_DOWN;
cnss_wlan_gpio_set(gpio_info, WLAN_EN_LOW);
msleep(WLAN_ENABLE_DELAY);
@@ -2202,14 +2289,14 @@ again:
err_wlan_probe:
pci_save_state(pdev);
- penv->saved_state = pci_store_saved_state(pdev);
+ penv->saved_state = cnss_pci_store_saved_state(pdev);
err_pcie_link_up:
- msm_pcie_deregister_event(&penv->event_reg);
+ cnss_msm_pcie_deregister_event(&penv->event_reg);
if (penv->pcie_link_state) {
- msm_pcie_pm_control(MSM_PCIE_SUSPEND,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS);
+ cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS);
penv->pcie_link_state = PCIE_LINK_DOWN;
}
@@ -2265,24 +2352,24 @@ void cnss_wlan_unregister_driver(struct cnss_wlan_driver *driver)
wcnss_prealloc_check_memory_leak();
wcnss_pre_alloc_reset();
- msm_pcie_deregister_event(&penv->event_reg);
+ cnss_msm_pcie_deregister_event(&penv->event_reg);
if (penv->pcie_link_state && !penv->pcie_link_down_ind) {
pci_save_state(pdev);
- penv->saved_state = pci_store_saved_state(pdev);
+ penv->saved_state = cnss_pci_store_saved_state(pdev);
- if (msm_pcie_pm_control(MSM_PCIE_SUSPEND,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS)) {
+ if (cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS)) {
pr_err("Failed to shutdown PCIe link\n");
return;
}
} else if (penv->pcie_link_state && penv->pcie_link_down_ind) {
penv->saved_state = NULL;
- if (msm_pcie_pm_control(MSM_PCIE_SUSPEND,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS_SUSPEND_LINK_DOWN)) {
+ if (cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS_SUSPEND_LINK_DOWN)) {
pr_err("Failed to shutdown PCIe link (with linkdown option)\n");
return;
}
@@ -2308,10 +2395,10 @@ int cnss_wlan_pm_control(bool vote)
if (!penv || !penv->pdev)
return -ENODEV;
- return msm_pcie_pm_control(
+ return cnss_msm_pcie_pm_control(
vote ? MSM_PCIE_DISABLE_PC : MSM_PCIE_ENABLE_PC,
cnss_get_pci_dev_bus_number(penv->pdev),
- penv->pdev, NULL, PM_OPTIONS);
+ penv->pdev, PM_OPTIONS);
}
EXPORT_SYMBOL(cnss_wlan_pm_control);
#endif
@@ -2397,9 +2484,9 @@ static int cnss_shutdown(const struct subsys_desc *subsys, bool force_stop)
wdrv->shutdown(pdev);
if (penv->pcie_link_state) {
- if (msm_pcie_pm_control(MSM_PCIE_SUSPEND,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS_SUSPEND_LINK_DOWN)) {
+ if (cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS_SUSPEND_LINK_DOWN)) {
pr_debug("cnss: Failed to shutdown PCIe link!\n");
ret = -EFAULT;
}
@@ -2451,16 +2538,17 @@ static int cnss_powerup(const struct subsys_desc *subsys)
}
if (!penv->pcie_link_state) {
- ret = msm_pcie_pm_control(MSM_PCIE_RESUME,
+ ret = cnss_msm_pcie_pm_control(
+ MSM_PCIE_RESUME,
cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS_RESUME_LINK_DOWN);
+ pdev, PM_OPTIONS_RESUME_LINK_DOWN);
if (ret) {
pr_err("cnss: Failed to bring-up PCIe link!\n");
goto err_pcie_link_up;
}
penv->pcie_link_state = PCIE_LINK_UP;
- ret = msm_pcie_recover_config(penv->pdev);
+ ret = cnss_msm_pcie_recover_config(penv->pdev);
if (ret) {
pr_err("cnss: PCI link failed to recover\n");
goto err_pcie_link_up;
@@ -2470,8 +2558,8 @@ static int cnss_powerup(const struct subsys_desc *subsys)
if (wdrv && wdrv->reinit) {
if (penv->saved_state)
- pci_load_and_free_saved_state(pdev,
- &penv->saved_state);
+ cnss_pci_load_and_free_saved_state(
+ pdev, &penv->saved_state);
pci_restore_state(pdev);
@@ -2494,10 +2582,11 @@ out:
err_wlan_reinit:
pci_save_state(pdev);
- penv->saved_state = pci_store_saved_state(pdev);
- msm_pcie_pm_control(MSM_PCIE_SUSPEND,
+ penv->saved_state = cnss_pci_store_saved_state(pdev);
+ cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND,
cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS);
+ pdev, PM_OPTIONS);
penv->pcie_link_state = PCIE_LINK_DOWN;
err_pcie_link_up:
@@ -2682,7 +2771,7 @@ static int cnss_probe(struct platform_device *pdev)
goto err_get_rc;
}
- ret = msm_pcie_enumerate(rc_num);
+ ret = cnss_msm_pcie_enumerate(rc_num);
if (ret) {
pr_err("%s: Failed to enable PCIe RC%x!\n", __func__, rc_num);
goto err_pcie_enumerate;
@@ -3161,14 +3250,15 @@ int cnss_auto_suspend(void)
if (penv->pcie_link_state) {
pci_save_state(pdev);
- penv->saved_state = pci_store_saved_state(pdev);
+ penv->saved_state = cnss_pci_store_saved_state(pdev);
pci_disable_device(pdev);
ret = pci_set_power_state(pdev, PCI_D3hot);
if (ret)
pr_err("%s: Set D3Hot failed: %d\n", __func__, ret);
- if (msm_pcie_pm_control(MSM_PCIE_SUSPEND,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS)) {
+ if (cnss_msm_pcie_pm_control(
+ MSM_PCIE_SUSPEND,
+ cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS)) {
pr_err("%s: Failed to shutdown PCIe link\n", __func__);
ret = -EAGAIN;
goto out;
@@ -3195,9 +3285,9 @@ int cnss_auto_resume(void)
pdev = penv->pdev;
if (!penv->pcie_link_state) {
- if (msm_pcie_pm_control(MSM_PCIE_RESUME,
- cnss_get_pci_dev_bus_number(pdev),
- pdev, NULL, PM_OPTIONS)) {
+ if (cnss_msm_pcie_pm_control(
+ MSM_PCIE_RESUME, cnss_get_pci_dev_bus_number(pdev),
+ pdev, PM_OPTIONS)) {
pr_err("%s: Failed to resume PCIe link\n", __func__);
ret = -EAGAIN;
goto out;
@@ -3209,7 +3299,7 @@ int cnss_auto_resume(void)
}
if (penv->saved_state)
- pci_load_and_free_saved_state(pdev, &penv->saved_state);
+ cnss_pci_load_and_free_saved_state(pdev, &penv->saved_state);
pci_restore_state(pdev);
pci_set_master(pdev);