From b324a9c24304fddd6f111df4663ec583d887020c Mon Sep 17 00:00:00 2001 From: Thomas Miletich Date: Mon, 19 Aug 2013 12:59:34 +0200 Subject: [PATCH] [3c90x] Stall upload engine before setting RX ring address According to the 3c90x datasheet we have to stall the upload (receive) engine before setting the receive ring address. Signed-off-by: Thomas Miletich Signed-off-by: Michael Brown --- src/drivers/net/3c90x.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/drivers/net/3c90x.c b/src/drivers/net/3c90x.c index c1900574..1433e64a 100644 --- a/src/drivers/net/3c90x.c +++ b/src/drivers/net/3c90x.c @@ -813,10 +813,14 @@ static int a3c90x_open(struct net_device *netdev) goto error; } + a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdStallCtl, upStall); + /* send rx_ring address to NIC */ outl(virt_to_bus(inf_3c90x->rx_ring), inf_3c90x->IOAddr + regUpListPtr_l); + a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdStallCtl, upUnStall); + /* enable packet transmission and reception */ a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdTxEnable, 0); a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdRxEnable, 0);