diff options
| author | Jeroen Hofstee <[email protected]> | 2015-06-07 17:30:38 +0200 |
|---|---|---|
| committer | Joe Hershberger <[email protected]> | 2015-08-11 13:35:45 -0500 |
| commit | 0b830198fb3c6ee0dbbe5aa98829eddbb27429b1 (patch) | |
| tree | 53e3636d23415dfd109ecb580bce53bb69cdbb3c | |
| parent | 8396d0ab8b46907bd89e9f3a35fbb727f077d28a (diff) | |
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 <[email protected]>
| -rw-r--r-- | drivers/net/davinci_emac.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 427ad3e6fac..04447953c92 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); |
