From 4d824b3235dde8189285f4ec37ffb147a03616c4 Mon Sep 17 00:00:00 2001 From: Ahmad Fatoum Date: Mon, 11 Nov 2019 10:56:07 +0100 Subject: net: designware: eqos: stop DMA on halt designware_eqos.c contains an eqos_stop implementation to stop the NIC when halting the interface. Unfortunately it wasn't used leading to memory corruption on boot, possibly due to DMA. Fix this. Signed-off-by: Ahmad Fatoum Signed-off-by: Sascha Hauer --- drivers/net/designware_stm32.c | 2 ++ drivers/net/designware_tegra186.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/net/designware_stm32.c b/drivers/net/designware_stm32.c index 5b087ad5a3..ed54ff2b26 100644 --- a/drivers/net/designware_stm32.c +++ b/drivers/net/designware_stm32.c @@ -199,6 +199,8 @@ static void eqos_stop_stm32(struct eth_device *edev) { struct eqos_stm32 *priv = to_stm32(edev->priv); + eqos_stop(edev); + clk_bulk_disable(priv->num_clks, priv->clks); } diff --git a/drivers/net/designware_tegra186.c b/drivers/net/designware_tegra186.c index 58484d4095..618ae11397 100644 --- a/drivers/net/designware_tegra186.c +++ b/drivers/net/designware_tegra186.c @@ -282,6 +282,8 @@ static void eqos_stop_tegra186(struct eth_device *edev) { struct eqos_tegra186 *priv = to_tegra186(edev->priv); + eqos_stop(edev); + eqos_reset_tegra186(priv, true); clk_bulk_disable(priv->num_clks, priv->clks); -- cgit v1.2.3