diff --git a/patch/kernel/archive/rockchip-6.16/0001-temp-workaround-dma-reset.patch b/patch/kernel/archive/rockchip-6.16/0001-temp-workaround-dma-reset.patch new file mode 100644 index 000000000..5a7958751 --- /dev/null +++ b/patch/kernel/archive/rockchip-6.16/0001-temp-workaround-dma-reset.patch @@ -0,0 +1,21 @@ +Temporary patch to workaround a DMA reset issue with rockchip +devices experienced at least on rk3288 and rk3328 with a message +like this: + +rk_gmac-dwmac ff290000.ethernet end0: Failed to reset the dma + +diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +index e0fb06af1f94..156a5d25d1fd 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c ++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +@@ -3133,8 +3133,8 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv) + + ret = stmmac_reset(priv, priv->ioaddr); + if (ret) { +- netdev_err(priv->dev, "Failed to reset the dma\n"); +- return ret; ++ netdev_warn(priv->dev, "Failed to reset the dma, device will work with reduced throughput\n"); ++ ret = 0; + } + + /* DMA Configuration */ diff --git a/patch/kernel/archive/rockchip64-6.16/temporary-workaround-dma-reset.patch b/patch/kernel/archive/rockchip64-6.16/temporary-workaround-dma-reset.patch new file mode 100644 index 000000000..5a7958751 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.16/temporary-workaround-dma-reset.patch @@ -0,0 +1,21 @@ +Temporary patch to workaround a DMA reset issue with rockchip +devices experienced at least on rk3288 and rk3328 with a message +like this: + +rk_gmac-dwmac ff290000.ethernet end0: Failed to reset the dma + +diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +index e0fb06af1f94..156a5d25d1fd 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c ++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +@@ -3133,8 +3133,8 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv) + + ret = stmmac_reset(priv, priv->ioaddr); + if (ret) { +- netdev_err(priv->dev, "Failed to reset the dma\n"); +- return ret; ++ netdev_warn(priv->dev, "Failed to reset the dma, device will work with reduced throughput\n"); ++ ret = 0; + } + + /* DMA Configuration */