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>
This commit is contained in:
Jeroen Hofstee 2015-06-07 17:30:38 +02:00 committed by Joe Hershberger
parent 8396d0ab8b
commit 0b830198fb
1 changed files with 2 additions and 1 deletions

View File

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