Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee9e1eb6 authored by Yue Ma's avatar Yue Ma
Browse files

cnss2: Expose PCIe DRV connection status



Interface change to expose PCIe DRV connection status to WLAN
driver so that it is able to suspend/resume based on the status.

Change-Id: If8f706b0eb38f209a5e322b112beb9a95babdcad
Signed-off-by: default avatarYue Ma <yuem@codeaurora.org>
parent 1f169742
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -980,6 +980,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;
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,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;
+1 −0
Original line number Diff line number Diff line
@@ -207,6 +207,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);