]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/eepro100.c
net: smc91111: use mdelay()
[u-boot] / drivers / net / eepro100.c
index 9c06b25569419d73d96b4537e7db3b4339967032..07ec34cbba4b9a560ae73d9d65427213d9f26e87 100644 (file)
@@ -321,7 +321,8 @@ static int set_phyreg (struct eth_device *dev, unsigned char addr,
 /* Check if given phyaddr is valid, i.e. there is a PHY connected.
  * Do this by checking model value field from ID2 register.
  */
-static struct eth_device* verify_phyaddr (char *devname, unsigned char addr)
+static struct eth_device* verify_phyaddr (const char *devname,
+                                               unsigned char addr)
 {
        struct eth_device *dev;
        unsigned short value;
@@ -334,7 +335,7 @@ static struct eth_device* verify_phyaddr (char *devname, unsigned char addr)
        }
 
        /* read id2 register */
-       if (get_phyreg(dev, addr, PHY_PHYIDR2, &value) != 0) {
+       if (get_phyreg(dev, addr, MII_PHYSID2, &value) != 0) {
                printf("%s: mii read timeout!\n", devname);
                return NULL;
        }
@@ -350,7 +351,7 @@ static struct eth_device* verify_phyaddr (char *devname, unsigned char addr)
        return dev;
 }
 
-static int eepro100_miiphy_read (char *devname, unsigned char addr,
+static int eepro100_miiphy_read(const char *devname, unsigned char addr,
                unsigned char reg, unsigned short *value)
 {
        struct eth_device *dev;
@@ -367,7 +368,7 @@ static int eepro100_miiphy_read (char *devname, unsigned char addr,
        return 0;
 }
 
-static int eepro100_miiphy_write (char *devname, unsigned char addr,
+static int eepro100_miiphy_write(const char *devname, unsigned char addr,
                unsigned char reg, unsigned short value)
 {
        struct eth_device *dev;
@@ -449,6 +450,11 @@ int eepro100_initialize (bd_t * bis)
                }
 
                dev = (struct eth_device *) malloc (sizeof *dev);
+               if (!dev) {
+                       printf("eepro100: Can not allocate memory\n");
+                       break;
+               }
+               memset(dev, 0, sizeof(*dev));
 
                sprintf (dev->name, "i82559#%d", card_number);
                dev->priv = (void *) devno; /* this have to come before bus_to_phys() */
@@ -917,7 +923,6 @@ static void purge_tx_ring (struct eth_device *dev)
 
 static void read_hw_addr (struct eth_device *dev, bd_t * bis)
 {
-       u16 eeprom[0x40];
        u16 sum = 0;
        int i, j;
        int addr_len = read_eeprom (dev, 0, 6) == 0xffff ? 8 : 6;
@@ -925,7 +930,6 @@ static void read_hw_addr (struct eth_device *dev, bd_t * bis)
        for (j = 0, i = 0; i < 0x40; i++) {
                u16 value = read_eeprom (dev, i, addr_len);
 
-               eeprom[i] = value;
                sum += value;
                if (i < 3) {
                        dev->enetaddr[j++] = value;