Merge "wil6210: protect against sporadic interrupt during suspend flow"
This commit is contained in:
commit
e326dbfb8f
1 changed files with 12 additions and 1 deletions
|
@ -80,12 +80,20 @@ int wil_suspend(struct wil6210_priv *wil, bool is_runtime)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wil->platform_ops.suspend)
|
/* Disable PCIe IRQ to prevent sporadic IRQs when PCIe is suspending */
|
||||||
|
wil_dbg_pm(wil, "Disabling PCIe IRQ before suspending\n");
|
||||||
|
wil_disable_irq(wil);
|
||||||
|
|
||||||
|
if (wil->platform_ops.suspend) {
|
||||||
rc = wil->platform_ops.suspend(wil->platform_handle);
|
rc = wil->platform_ops.suspend(wil->platform_handle);
|
||||||
|
if (rc)
|
||||||
|
wil_enable_irq(wil);
|
||||||
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
wil_dbg_pm(wil, "suspend: %s => %d\n",
|
wil_dbg_pm(wil, "suspend: %s => %d\n",
|
||||||
is_runtime ? "runtime" : "system", rc);
|
is_runtime ? "runtime" : "system", rc);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,6 +112,9 @@ int wil_resume(struct wil6210_priv *wil, bool is_runtime)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wil_dbg_pm(wil, "Enabling PCIe IRQ\n");
|
||||||
|
wil_enable_irq(wil);
|
||||||
|
|
||||||
/* if netif up, bring hardware up
|
/* if netif up, bring hardware up
|
||||||
* During open(), IFF_UP set after actual device method
|
* During open(), IFF_UP set after actual device method
|
||||||
* invocation. This prevent recursive call to wil_up()
|
* invocation. This prevent recursive call to wil_up()
|
||||||
|
|
Loading…
Add table
Reference in a new issue