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

Commit 689771bf authored by Yue Ma's avatar Yue Ma
Browse files

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: default avatarYue Ma <yuem@codeaurora.org>
parent a2d6c83b
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -764,6 +764,22 @@ int cnss_resume_pci_link(struct cnss_pci_data *pci_priv)
	return ret;
	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)
int cnss_pci_link_down(struct device *dev)
{
{
	unsigned long flags;
	unsigned long flags;
+3 −1
Original line number Original line Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/* 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
#ifndef _NET_CNSS2_H
#define _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 int cnss_wlan_register_driver(struct cnss_wlan_driver *driver);
extern void cnss_wlan_unregister_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 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_link_down(struct device *dev);
extern int cnss_pci_is_device_down(struct device *dev);
extern int cnss_pci_is_device_down(struct device *dev);
extern void cnss_schedule_recovery(struct device *dev,
extern void cnss_schedule_recovery(struct device *dev,