summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJeroen Hofstee <jeroen@myspectrum.nl>2015-06-07 17:30:38 +0200
committerJoe Hershberger <joe.hershberger@ni.com>2015-08-11 13:35:45 -0500
commit0b830198fb3c6ee0dbbe5aa98829eddbb27429b1 (patch)
tree53e3636d23415dfd109ecb580bce53bb69cdbb3c /drivers
parent8396d0ab8b46907bd89e9f3a35fbb727f077d28a (diff)
downloadu-boot-imx-0b830198fb3c6ee0dbbe5aa98829eddbb27429b1.zip
u-boot-imx-0b830198fb3c6ee0dbbe5aa98829eddbb27429b1.tar.gz
u-boot-imx-0b830198fb3c6ee0dbbe5aa98829eddbb27429b1.tar.bz2
net: davinci_emac: don't teardown inactive rx channel
Tearing down an unitialized rx channel causes a pending address hole event to be queued. When booting linux it will report this pending as something like "Address Hole seen by USB_OTG at address 57fff584", since u-boot did not handled this interrupt. Prevent that by not tearing down the rx channel, when not receiving. Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/davinci_emac.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index 427ad3e..0444795 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -598,7 +598,8 @@ static void davinci_eth_close(struct eth_device *dev)
debug_emac("+ emac_close\n");
davinci_eth_ch_teardown(EMAC_CH_TX); /* TX Channel teardown */
- davinci_eth_ch_teardown(EMAC_CH_RX); /* RX Channel teardown */
+ if (readl(&adap_emac->RXCONTROL) & 1)
+ davinci_eth_ch_teardown(EMAC_CH_RX); /* RX Channel teardown */
/* Reset EMAC module and disable interrupts in wrapper */
writel(1, &adap_emac->SOFTRESET);