X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fnet%2Fnatsemi.c;h=0ed9bb5765cb0ce82fa379884ebaea31c4b2aeb2;hb=793ea947703899c36a51c30e477466c49a8e9657;hp=a523959812b87eeb812b815af0bcba22e358c20f;hpb=10a3367955bc2033b288915f8f10d0e507fe2fa1;p=u-boot diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c index a523959812..0ed9bb5765 100644 --- a/drivers/net/natsemi.c +++ b/drivers/net/natsemi.c @@ -53,12 +53,10 @@ #include #include #include +#include #include #include -#if defined(CONFIG_CMD_NET) \ - && defined(CONFIG_NET_MULTI) && defined(CONFIG_NATSEMI) - /* defines */ #define EEPROM_SIZE 0xb /*12 16-bit chunks, or 24 bytes*/ @@ -239,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); @@ -284,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 */ @@ -323,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); @@ -411,7 +413,7 @@ natsemi_initialize(bd_t * bis) The EEPROM code is for common 93c06/46 EEPROMs w/ 6bit addresses. */ /* Delay between EEPROM clock transitions. - No extra delay is needed with 33Mhz PCI, but future 66Mhz + No extra delay is needed with 33MHz PCI, but future 66MHz access may need a delay. */ #define eeprom_delay(ee_addr) INL(dev, ee_addr) @@ -751,12 +753,12 @@ 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; - vu_long *res = (vu_long *)&tx_status; + u32 *tx_ptr = &tx_status; + vu_long *res = (vu_long *)tx_ptr; /* Stop the transmitter */ OUTL(dev, TxOff, ChipCmd); @@ -839,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; } @@ -878,5 +881,3 @@ natsemi_disable(struct eth_device *dev) /* Restore PME enable bit */ OUTL(dev, SavedClkRun, ClkRun); } - -#endif