mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-15 21:21:49 -04:00
net: ethernet: ravb: Do not check URAM suspension when WoL is active
When updating the driver to match latest datasheet to suspend access to
URAM when suspending DMA transfers a corner-case was missed, URAM access
will not be suspended if WoL is enabled. This lead to the error message
(correctly) being triggered as URAM access is not suspended even tho
it's requested as part of stopping DMA.
Avoid checking if URAM access is suspended and printing the error
message if WoL is enabled when we suspend the system, as we know it will
not be.
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/all/CAMuHMdWnjV%3DHGE1o08zLhUfTgOSene5fYx1J5GG10mB%2BToq8qg@mail.gmail.com/
Fixes: 353d8e7989 ("net: ethernet: ravb: Suspend and resume the transmission flow")
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Sai Krishna <saikrishnag@marvell.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
3d042592eb
commit
f5b2772d14
@@ -1108,9 +1108,12 @@ static int ravb_stop_dma(struct net_device *ndev)
|
||||
|
||||
/* Request for transmission suspension */
|
||||
ravb_modify(ndev, CCC, CCC_DTSR, CCC_DTSR);
|
||||
error = ravb_wait(ndev, CSR, CSR_DTS, CSR_DTS);
|
||||
if (error)
|
||||
netdev_err(ndev, "failed to stop AXI BUS\n");
|
||||
/* Access to URAM will not be suspended if WoL is enabled. */
|
||||
if (!priv->wol_enabled) {
|
||||
error = ravb_wait(ndev, CSR, CSR_DTS, CSR_DTS);
|
||||
if (error)
|
||||
netdev_err(ndev, "failed to stop AXI BUS\n");
|
||||
}
|
||||
|
||||
/* Stop AVB-DMAC process */
|
||||
return ravb_set_opmode(ndev, CCC_OPC_CONFIG);
|
||||
|
||||
Reference in New Issue
Block a user