9
0
Fork 0

net: arc_emac: disable interrupts

The driver doesn't use interrupts and Linux driver crashes when emac
interrupts are enabled at boot: keep them disabled.

Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Beniamino Galvani 2014-05-19 22:35:00 +02:00 committed by Sascha Hauer
parent b158af4f08
commit 15b0abce26
1 changed files with 3 additions and 6 deletions

View File

@ -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);