From 40eb3e3bbb4ca4154b5986298ea4a2576bcea9c5 Mon Sep 17 00:00:00 2001 From: Yue Ma Date: Fri, 7 Feb 2020 12:02:12 -0800 Subject: [PATCH] cnss2: Expose APIs to prevent and allow PCIe L1 state WLAN driver can use the APIs to control if PCIe can enter L1 and L1ss states. Change-Id: Iad784b1ca66199ad61c471635a67542afd34480e Signed-off-by: Yue Ma --- drivers/net/wireless/cnss2/pci.c | 16 ++++++++++++++++ include/net/cnss2.h | 4 +++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index 5054a0dd78f6..8bd5cfab2345 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -804,6 +804,22 @@ out: return ret; } +int cnss_pci_prevent_l1(struct device *dev) +{ + struct pci_dev *pci_dev = to_pci_dev(dev); + + return msm_pcie_prevent_l1(pci_dev); +} +EXPORT_SYMBOL(cnss_pci_prevent_l1); + +void cnss_pci_allow_l1(struct device *dev) +{ + struct pci_dev *pci_dev = to_pci_dev(dev); + + msm_pcie_allow_l1(pci_dev); +} +EXPORT_SYMBOL(cnss_pci_allow_l1); + int cnss_pci_link_down(struct device *dev) { unsigned long flags; diff --git a/include/net/cnss2.h b/include/net/cnss2.h index ee6cbb7894b7..78143ea5a701 100644 --- a/include/net/cnss2.h +++ b/include/net/cnss2.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. */ +/* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. */ #ifndef _NET_CNSS2_H #define _NET_CNSS2_H @@ -158,6 +158,8 @@ enum cnss_recovery_reason { extern int cnss_wlan_register_driver(struct cnss_wlan_driver *driver); extern void cnss_wlan_unregister_driver(struct cnss_wlan_driver *driver); extern void cnss_device_crashed(struct device *dev); +extern int cnss_pci_prevent_l1(struct device *dev); +extern void cnss_pci_allow_l1(struct device *dev); extern int cnss_pci_link_down(struct device *dev); extern int cnss_pci_is_device_down(struct device *dev); extern void cnss_schedule_recovery(struct device *dev,