diff --git a/drivers/net/arc_emac.c b/drivers/net/arc_emac.c index 23df3fdbc..8b74ea570 100644 --- a/drivers/net/arc_emac.c +++ b/drivers/net/arc_emac.c @@ -210,9 +210,6 @@ static int arc_emac_open(struct eth_device *edev) arc_reg_set(priv, R_RX_RING, (unsigned int)priv->rxbd); arc_reg_set(priv, R_TX_RING, (unsigned int)priv->txbd); - /* Enable interrupts */ - arc_reg_set(priv, R_ENABLE, RXINT_MASK | ERR_MASK); - /* Set CONTROL */ arc_reg_set(priv, R_CTRL, (RX_BD_NUM << 24) | /* RX BD table length */ @@ -317,9 +314,6 @@ static void arc_emac_halt(struct eth_device *edev) { struct arc_emac_priv *priv = edev->priv; - /* Disable interrupts */ - arc_reg_clr(priv, R_ENABLE, RXINT_MASK | ERR_MASK); - /* Disable EMAC */ arc_reg_clr(priv, R_CTRL, EN_MASK); } @@ -440,6 +434,9 @@ static int arc_emac_probe(struct device_d *dev) /* Set poll rate so that it polls every 1 ms */ arc_reg_set(priv, R_POLLRATE, clock_frequency / 1000000); + /* Disable interrupts */ + arc_reg_set(priv, R_ENABLE, 0); + mdiobus_register(miibus); eth_register(edev);