fec_recv() can be triggered during a MDIO access. so we may not clear the FEC_IEVENT_MII interrupt the MDIO access is waiting for. Clearing it in that moment causes the MDIO access to timeout. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- drivers/net/fec_imx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c index 5ef1d4359e..f814b3b960 100644 --- a/drivers/net/fec_imx.c +++ b/drivers/net/fec_imx.c @@ -514,6 +514,7 @@ static int fec_recv(struct eth_device *dev) * Check if any critical events have happened */ ievent = readl(fec->regs + FEC_IEVENT); + ievent &= ~FEC_IEVENT_MII; writel(ievent, fec->regs + FEC_IEVENT); if (ievent & FEC_IEVENT_BABT) { -- 2.25.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox