summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBeniamino Galvani <b.galvani@gmail.com>2014-05-19 22:35:00 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-05-20 07:44:42 +0200
commit15b0abce264be775aa63dc0de9c74d39529baf84 (patch)
tree8927802608491b9dd824ca3dbb14cac310ce7f1e /drivers
parentb158af4f08a8f1ad24df52baff34389296adc2a1 (diff)
downloadbarebox-15b0abce264be775aa63dc0de9c74d39529baf84.tar.gz
barebox-15b0abce264be775aa63dc0de9c74d39529baf84.tar.xz
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/arc_emac.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/arc_emac.c b/drivers/net/arc_emac.c
index 23df3fdbcd..8b74ea5704 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);