aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-04-29 23:25:26 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2019-04-29 23:25:26 -0700
commitef5e807a6b951d234da1a9b7048a2c48050cde41 (patch)
tree2ecbe7695b50569434a6d80aebe12acb3e9e98da
parentb75bf7f9734fe51ff85ffabfc4155fc8ddf32de2 (diff)
parente74079e7b8c0d3854cd2d09bb0951fa2a149d8a6 (diff)
Merge "cnss2: Expose PCIe DRV connection status"LAW.BR.4.0-04200-89xx.0
-rw-r--r--drivers/net/wireless/cnss2/pci.c11
-rw-r--r--drivers/net/wireless/cnss2/pci.h1
-rw-r--r--include/net/cnss2.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c
index e3c076e79526..3c8def257fc2 100644
--- a/drivers/net/wireless/cnss2/pci.c
+++ b/drivers/net/wireless/cnss2/pci.c
@@ -713,6 +713,17 @@ int cnss_pci_dev_ramdump(struct cnss_pci_data *pci_priv)
return ret;
}
+int cnss_pci_is_drv_connected(struct device *dev)
+{
+ struct cnss_pci_data *pci_priv = cnss_get_pci_priv(to_pci_dev(dev));
+
+ if (!pci_priv)
+ return -ENODEV;
+
+ return pci_priv->drv_connected_last;
+}
+EXPORT_SYMBOL(cnss_pci_is_drv_connected);
+
int cnss_wlan_register_driver(struct cnss_wlan_driver *driver_ops)
{
int ret = 0;
diff --git a/drivers/net/wireless/cnss2/pci.h b/drivers/net/wireless/cnss2/pci.h
index debb55446e62..8c0a3688b6a1 100644
--- a/drivers/net/wireless/cnss2/pci.h
+++ b/drivers/net/wireless/cnss2/pci.h
@@ -59,6 +59,7 @@ struct cnss_pci_data {
struct pci_saved_state *default_state;
struct msm_pcie_register_event msm_pci_event;
atomic_t auto_suspended;
+ u8 drv_connected_last;
bool monitor_wake_intr;
struct dma_iommu_mapping *smmu_mapping;
bool smmu_s1_enable;
diff --git a/include/net/cnss2.h b/include/net/cnss2.h
index 347987d64e15..fff4a0992cf4 100644
--- a/include/net/cnss2.h
+++ b/include/net/cnss2.h
@@ -206,6 +206,7 @@ extern void cnss_release_pm_sem(struct device *dev);
extern int cnss_wlan_pm_control(struct device *dev, bool vote);
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);
extern int cnss_pci_force_wake_request(struct device *dev);
extern int cnss_pci_is_device_awake(struct device *dev);
extern int cnss_pci_force_wake_release(struct device *dev);