diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2019-10-25 12:46:38 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-10-25 12:46:37 -0700 |
| commit | 33f3e0360fc89237b56f271ff4ce947c635b9519 (patch) | |
| tree | 65b2bf9f0f6e57a2d92e7e790380dba80cc096b5 | |
| parent | b634cc178c9b41c61ca949c9353334b0c616681e (diff) | |
| parent | 5ff3c8e36617ec6a80c3b4b79e30bff9b127627a (diff) | |
Merge "cnss2: Expose PCIe window register lock related APIs"
| -rw-r--r-- | drivers/net/wireless/cnss2/pci.c | 13 | ||||
| -rw-r--r-- | include/net/cnss2.h | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index 7dc419753a80..099aa9d38bb8 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -56,6 +56,7 @@ #ifdef CONFIG_PCI_MSM static DEFINE_SPINLOCK(pci_link_down_lock); #endif +static DEFINE_SPINLOCK(pci_reg_window_lock); static unsigned int pci_link_down_panic; module_param(pci_link_down_panic, uint, 0600); @@ -268,6 +269,18 @@ int cnss_pci_is_device_down(struct device *dev) } EXPORT_SYMBOL(cnss_pci_is_device_down); +void cnss_pci_lock_reg_window(struct device *dev, unsigned long *flags) +{ + spin_lock_bh(&pci_reg_window_lock); +} +EXPORT_SYMBOL(cnss_pci_lock_reg_window); + +void cnss_pci_unlock_reg_window(struct device *dev, unsigned long *flags) +{ + spin_unlock_bh(&pci_reg_window_lock); +} +EXPORT_SYMBOL(cnss_pci_unlock_reg_window); + int cnss_pci_recovery_update_status(struct cnss_pci_data *pci_priv) { struct cnss_plat_data *plat_priv; diff --git a/include/net/cnss2.h b/include/net/cnss2.h index 5ed1b05277b1..4a541581f9d7 100644 --- a/include/net/cnss2.h +++ b/include/net/cnss2.h @@ -245,6 +245,9 @@ extern void cnss_request_pm_qos(struct device *dev, u32 qos_val); extern void cnss_remove_pm_qos(struct device *dev); extern void cnss_lock_pm_sem(struct device *dev); extern void cnss_release_pm_sem(struct device *dev); +extern void cnss_pci_lock_reg_window(struct device *dev, unsigned long *flags); +extern void cnss_pci_unlock_reg_window(struct device *dev, + unsigned long *flags); extern int cnss_auto_suspend(struct device *dev); extern int cnss_auto_resume(struct device *dev); extern int cnss_pci_is_drv_connected(struct device *dev); |
