summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/bluetooth/bluetooth-power.c2
-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
-rw-r--r--include/net/cnss.h4
6 files changed, 241 insertions, 170 deletions
diff --git a/drivers/bluetooth/bluetooth-power.c b/drivers/bluetooth/bluetooth-power.c
index 77a463d8217e..b020fa364a9f 100644
--- a/drivers/bluetooth/bluetooth-power.c
+++ b/drivers/bluetooth/bluetooth-power.c
@@ -295,7 +295,7 @@ static const struct rfkill_ops bluetooth_power_rfkill_ops = {
.set_block = bluetooth_toggle_radio,
};
-#ifdef CONFIG_CNSS
+#if defined(CONFIG_CNSS) && defined(CONFIG_CLD_LL_CORE)
static ssize_t enable_extldo(struct device *dev, struct device_attribute *attr,
char *buf)
{
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);
diff --git a/include/net/cnss.h b/include/net/cnss.h
index 07056c1cc522..78d68fd22ded 100644
--- a/include/net/cnss.h
+++ b/include/net/cnss.h
@@ -16,9 +16,7 @@
#include <linux/skbuff.h>
#include <linux/pci.h>
#include <net/cnss_common.h>
-#ifdef CONFIG_CNSS_SDIO
#include <linux/mmc/sdio_func.h>
-#endif
#ifdef CONFIG_CNSS
#define CNSS_MAX_FILE_NAME 20
@@ -192,7 +190,6 @@ enum {
};
extern int cnss_get_restart_level(void);
-#ifdef CONFIG_CNSS_SDIO
struct cnss_sdio_wlan_driver {
const char *name;
const struct sdio_device_id *id_table;
@@ -215,5 +212,4 @@ extern int cnss_wlan_query_oob_status(void);
extern int cnss_wlan_register_oob_irq_handler(oob_irq_handler_t handler,
void *pm_oob);
extern int cnss_wlan_unregister_oob_irq_handler(void *pm_oob);
-#endif
#endif /* _NET_CNSS_H_ */