public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] [patch] fix bugs in rtl8139.c
@ 2007-10-15 14:40 Lucas Jin
  0 siblings, 0 replies; only message in thread
From: Lucas Jin @ 2007-10-15 14:40 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lucas Jin <lucasjin@gmail.com>

bug 1: "rx_ring" and "tx_buffer" are in local memory space, so they shouldn't be translated by "phys_to_bus".

bug 2: macro KSEG1ADDR is just for MIPS, so we can use "le32_to_cpu" as a common way.

------------------------------

--- ./drivers/rtl8139.c.orig	2007-10-12 22:17:52.000000000 +0800
+++ ./drivers/rtl8139.c	2007-10-15 22:46:59.991316984 +0800
@@ -76,6 +76,7 @@
 #include <net.h>
 #include <asm/io.h>
 #include <pci.h>
+#include <linux/byteorder/generic.h>
 
 #if (CONFIG_COMMANDS & CFG_CMD_NET) && defined(CONFIG_NET_MULTI) && \
 	defined(CONFIG_RTL8139)
@@ -383,7 +384,7 @@
 #ifdef	DEBUG_RX
 	printf("rx ring address is %X\n",(unsigned long)rx_ring);
 #endif
-	outl(phys_to_bus((int)rx_ring), ioaddr + RxBuf);
+	outl((int)rx_ring, ioaddr + RxBuf);
 
 	/* If we add multicast support, the MAR0 register would have to be
 	 * initialized to 0xffffffffffffffff (two 32 bit accesses).  Etherboot
@@ -423,7 +424,7 @@
 		tx_buffer[len++] = '\0';
 	}
 
-	outl(phys_to_bus((int)tx_buffer), ioaddr + TxAddr0 + cur_tx*4);
+	outl((int)tx_buffer, ioaddr + TxAddr0 + cur_tx*4);
 	outl(((TX_FIFO_THRESH<<11) & 0x003f0000) | len,
 		ioaddr + TxStatus0 + cur_tx*4);
 
@@ -480,7 +481,7 @@
 #endif
 
 	ring_offs = cur_rx % RX_BUF_LEN;
-	rx_status = *(unsigned int*)KSEG1ADDR((rx_ring + ring_offs));
+	rx_status = le32_to_cpu(*(unsigned int*)(rx_ring + ring_offs));
 	rx_size = rx_status >> 16;
 	rx_status &= 0xffff;
 
 				
--------------
Lucas Jin

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-10-15 14:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-15 14:40 [U-Boot-Users] [patch] fix bugs in rtl8139.c Lucas Jin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox