소스 검색

skge: FIFO Ram calculation error

The calculation of usable FIFO RAM is wrong in the skge driver.
First, is doesn't take into account the reserved area on the original
SysKonnect Genesis boards. Second it has an off-by-one error because
hw->ports is either 1 or 2.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Stephen Hemminger 17 년 전
부모
커밋
29816d9aa5
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      drivers/net/skge.c

+ 2 - 2
drivers/net/skge.c

@@ -2619,8 +2619,8 @@ static int skge_up(struct net_device *dev)
 		yukon_mac_init(hw, port);
 		yukon_mac_init(hw, port);
 	spin_unlock_bh(&hw->phy_lock);
 	spin_unlock_bh(&hw->phy_lock);
 
 
-	/* Configure RAMbuffers */
-	chunk = hw->ram_size / ((hw->ports + 1)*2);
+	/* Configure RAMbuffers - equally between ports and tx/rx */
+	chunk = (hw->ram_size  - hw->ram_offset) / (hw->ports * 2);
 	ram_addr = hw->ram_offset + 2 * chunk * port;
 	ram_addr = hw->ram_offset + 2 * chunk * port;
 
 
 	skge_ramset(hw, rxqaddr[port], ram_addr, chunk);
 	skge_ramset(hw, rxqaddr[port], ram_addr, chunk);