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

Commit 9fa22520 authored by Yue Ma's avatar Yue Ma
Browse files

cnss2: Avoid checking PCIe status in IRQ or IRQ disable context



PCIe config space read during checking PCIe status may take a few
milliseconds, so avoid checking PCIe status in IRQ or IRQ disable
context for such cases before accessing any registers.

Change-Id: Ib63ae8f47e27bd607300bd304adbb000ba59f27e
Signed-off-by: default avatarYue Ma <yuem@codeaurora.org>
parent 2828b2b3
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -396,9 +396,11 @@ static int cnss_pci_reg_read(struct cnss_pci_data *pci_priv,
{
	int ret;

	if (!in_interrupt() && !irqs_disabled()) {
		ret = cnss_pci_check_link_status(pci_priv);
		if (ret)
			return ret;
	}

	if (pci_priv->pci_dev->device == QCA6174_DEVICE_ID ||
	    offset < MAX_UNWINDOWED_ADDRESS) {
@@ -421,9 +423,11 @@ static int cnss_pci_reg_write(struct cnss_pci_data *pci_priv, u32 offset,
{
	int ret;

	if (!in_interrupt() && !irqs_disabled()) {
		ret = cnss_pci_check_link_status(pci_priv);
		if (ret)
			return ret;
	}

	if (pci_priv->pci_dev->device == QCA6174_DEVICE_ID ||
	    offset < MAX_UNWINDOWED_ADDRESS) {