From: Jeroen Hofstee Date: Sun, 7 Jun 2015 15:30:38 +0000 (+0200) Subject: net: davinci_emac: don't teardown inactive rx channel X-Git-Tag: KARO-TX6-2015-09-18~515 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=commitdiff_plain;h=c3d17dd8422144d80af8a772a1c7c78740d1e401 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 --- diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 427ad3e6fa..04447953c9 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);