summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-10-25 12:46:38 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2019-10-25 12:46:37 -0700
commit33f3e0360fc89237b56f271ff4ce947c635b9519 (patch)
tree65b2bf9f0f6e57a2d92e7e790380dba80cc096b5
parentb634cc178c9b41c61ca949c9353334b0c616681e (diff)
parent5ff3c8e36617ec6a80c3b4b79e30bff9b127627a (diff)
Merge "cnss2: Expose PCIe window register lock related APIs"
-rw-r--r--drivers/net/wireless/cnss2/pci.c13
-rw-r--r--include/net/cnss2.h3
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);