Merge git://git.denx.de/u-boot-sh
[oweals/u-boot.git] / drivers / net / natsemi.c
index e09da1d2ae429108973cb61c06d9cb161a7800ca..bf6fa8f2ba2b99167260856b9a310c44a28effae 100644 (file)
 #include <netdev.h>
 #include <asm/io.h>
 #include <pci.h>
+#include <linux/delay.h>
 
 /* defines */
 #define EEPROM_SIZE 0xb /*12 16-bit chunks, or 24 bytes*/
 
 #define DSIZE          0x00000FFF
-#define ETH_ALEN       6
 #define CRC_SIZE       4
 #define TOUT_LOOP      500000
 #define TX_BUF_SIZE    1536
@@ -237,8 +237,7 @@ static void natsemi_init_txd(struct eth_device *dev);
 static void natsemi_init_rxd(struct eth_device *dev);
 static void natsemi_set_rx_mode(struct eth_device *dev);
 static void natsemi_check_duplex(struct eth_device *dev);
-static int natsemi_send(struct eth_device *dev, volatile void *packet,
-                       int length);
+static int natsemi_send(struct eth_device *dev, void *packet, int length);
 static int natsemi_poll(struct eth_device *dev);
 static void natsemi_disable(struct eth_device *dev);
 
@@ -282,7 +281,7 @@ OUTL(struct eth_device *dev, int command, u_long addr)
  * ready to send and receive packets.
  *
  * Side effects:
- *            leaves the natsemi initialized, and ready to recieve packets.
+ *            leaves the natsemi initialized, and ready to receive packets.
  *
  * Returns:   struct eth_device *:          pointer to NIC data structure
  */
@@ -321,6 +320,11 @@ natsemi_initialize(bd_t * bis)
                }
 
                dev = (struct eth_device *) malloc(sizeof *dev);
+               if (!dev) {
+                       printf("natsemi: Can not allocate memory\n");
+                       break;
+               }
+               memset(dev, 0, sizeof(*dev));
 
                sprintf(dev->name, "dp83815#%d", card_number);
                dev->iobase = bus_to_phys(iobase);
@@ -749,8 +753,7 @@ natsemi_check_duplex(struct eth_device *dev)
  * Description: transmits a packet and waits for completion or timeout.
  *
  * Returns:   void.  */
-static int
-natsemi_send(struct eth_device *dev, volatile void *packet, int length)
+static int natsemi_send(struct eth_device *dev, void *packet, int length)
 {
        u32 i, status = 0;
        u32 tx_status = 0;
@@ -838,7 +841,8 @@ natsemi_poll(struct eth_device *dev)
                     rx_status);
                retstat = 0;
        } else {                /* give packet to higher level routine */
-               NetReceive((rxb + cur_rx * RX_BUF_SIZE), length);
+               net_process_received_packet((rxb + cur_rx * RX_BUF_SIZE),
+                                           length);
                retstat = 1;
        }