diff options
-rw-r--r-- | drivers/bluetooth/bluetooth-power.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/cnss/Kconfig | 23 | ||||
-rw-r--r-- | drivers/net/wireless/cnss/Makefile | 4 | ||||
-rw-r--r-- | drivers/net/wireless/cnss/cnss_common.c | 166 | ||||
-rw-r--r-- | drivers/net/wireless/cnss/cnss_pci.c | 212 | ||||
-rw-r--r-- | include/net/cnss.h | 4 |
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_ */ |