diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2019-04-29 23:25:26 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-04-29 23:25:26 -0700 |
commit | ef5e807a6b951d234da1a9b7048a2c48050cde41 (patch) | |
tree | 2ecbe7695b50569434a6d80aebe12acb3e9e98da | |
parent | b75bf7f9734fe51ff85ffabfc4155fc8ddf32de2 (diff) | |
parent | e74079e7b8c0d3854cd2d09bb0951fa2a149d8a6 (diff) |
Merge "cnss2: Expose PCIe DRV connection status"LAW.BR.4.0-04200-89xx.0
-rw-r--r-- | drivers/net/wireless/cnss2/pci.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/cnss2/pci.h | 1 | ||||
-rw-r--r-- | include/net/cnss2.h | 1 |
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); |