Loading drivers/net/wireless/cnss2/pci.c +16 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #endif static DEFINE_SPINLOCK(pci_link_down_lock); static DEFINE_SPINLOCK(pci_reg_window_lock); #define MHI_TIMEOUT_OVERWRITE_MS (plat_priv->ctrl_params.mhi_timeout) Loading Loading @@ -227,10 +228,13 @@ static int cnss_pci_reg_read(struct cnss_pci_data *pci_priv, return 0; } spin_lock_bh(&pci_reg_window_lock); cnss_pci_select_window(pci_priv, offset); *val = readl_relaxed(pci_priv->bar + WINDOW_START + (offset & WINDOW_RANGE_MASK)); spin_unlock_bh(&pci_reg_window_lock); return 0; } Loading Loading @@ -482,6 +486,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_call_driver_probe(struct cnss_pci_data *pci_priv) { int ret = 0; Loading include/net/cnss2.h +3 −0 Original line number Diff line number Diff line Loading @@ -216,6 +216,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_wlan_pm_control(struct device *dev, bool vote); extern int cnss_auto_suspend(struct device *dev); extern int cnss_auto_resume(struct device *dev); Loading Loading
drivers/net/wireless/cnss2/pci.c +16 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #endif static DEFINE_SPINLOCK(pci_link_down_lock); static DEFINE_SPINLOCK(pci_reg_window_lock); #define MHI_TIMEOUT_OVERWRITE_MS (plat_priv->ctrl_params.mhi_timeout) Loading Loading @@ -227,10 +228,13 @@ static int cnss_pci_reg_read(struct cnss_pci_data *pci_priv, return 0; } spin_lock_bh(&pci_reg_window_lock); cnss_pci_select_window(pci_priv, offset); *val = readl_relaxed(pci_priv->bar + WINDOW_START + (offset & WINDOW_RANGE_MASK)); spin_unlock_bh(&pci_reg_window_lock); return 0; } Loading Loading @@ -482,6 +486,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_call_driver_probe(struct cnss_pci_data *pci_priv) { int ret = 0; Loading
include/net/cnss2.h +3 −0 Original line number Diff line number Diff line Loading @@ -216,6 +216,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_wlan_pm_control(struct device *dev, bool vote); extern int cnss_auto_suspend(struct device *dev); extern int cnss_auto_resume(struct device *dev); Loading