]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - drivers/net/uli526x.c
net: cosmetic: Fix var naming net <-> eth drivers
[people/ms/u-boot.git] / drivers / net / uli526x.c
index 56eee7bee60551e4147f0f4a0c3557e0eeb6ef3b..47cdb858c7731211c0114cc6e5fca70cbc8dd592 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007 Freescale Semiconductor, Inc.
+ * Copyright 2007, 2010 Freescale Semiconductor, Inc.
  *
  * Author: Roy Zang <tie-fei.zang@freescale.com>, Sep, 2007
  *
@@ -7,10 +7,7 @@
  * ULI 526x Ethernet port driver.
  * Based on the Linux driver: drivers/net/tulip/uli526x.c
  *
- * This is free software; you can redistribute it and/or modify
- * it under the terms of  the GNU General  Public License as published by
- * the Free Software Foundation;  either version 2 of the  License, or
- * (at your option) any later version.
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -168,16 +165,15 @@ static char buf_pool[TX_BUF_ALLOC * TX_DESC_CNT + 4];
 static int mode = 8;
 
 /* function declaration -- */
-static int uli526x_start_xmit(struct eth_device *dev,
-                               volatile void *packet, int length);
+static int uli526x_start_xmit(struct eth_device *dev, void *packet, int length);
 static const struct ethtool_ops netdev_ethtool_ops;
 static u16 read_srom_word(long, int);
 static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long);
 static void allocate_rx_buffer(struct uli526x_board_info *);
 static void update_cr6(u32, unsigned long);
-static u16 phy_read(unsigned long, u8, u8, u32);
+static u16 uli_phy_read(unsigned long, u8, u8, u32);
 static u16 phy_readby_cr10(unsigned long, u8, u8);
-static void phy_write(unsigned long, u8, u8, u16, u32);
+static void uli_phy_write(unsigned long, u8, u8, u16, u32);
 static void phy_writeby_cr10(unsigned long, u8, u8, u16);
 static void phy_write_1bit(unsigned long, u32, u32);
 static u16 phy_read_1bit(unsigned long, u32);
@@ -225,6 +221,11 @@ int uli526x_initialize(bd_t *bis)
                iobase &= ~0xf;
 
                dev = (struct eth_device *)malloc(sizeof *dev);
+               if (!dev) {
+                       printf("uli526x: Can not allocate memory\n");
+                       break;
+               }
+               memset(dev, 0, sizeof(*dev));
                sprintf(dev->name, "uli526x#%d", card_number);
                db = (struct uli526x_board_info *)
                        malloc(sizeof(struct uli526x_board_info));
@@ -311,7 +312,8 @@ static int uli526x_init_one(struct eth_device *dev, bd_t *bis)
                        i));
 
        /* Set Node address */
-       if (((u16 *) db->srom)[0] == 0xffff || ((u16 *) db->srom)[0] == 0)
+       if (((db->srom[0] == 0xff) && (db->srom[1] == 0xff)) ||
+           ((db->srom[0] == 0x00) && (db->srom[1] == 0x00)))
        /* SROM absent, so write MAC address to ID Table */
                set_mac_addr(dev);
        else {          /*Exist SROM*/
@@ -343,7 +345,7 @@ static void uli526x_disable(struct eth_device *dev)
                /* Reset & stop ULI526X board */
                outl(ULI526X_RESET, db->ioaddr + DCR0);
                udelay(5);
-               phy_write(db->ioaddr, db->phy_addr, 0, 0x8000, db->chip_id);
+               uli_phy_write(db->ioaddr, db->phy_addr, 0, 0x8000, db->chip_id);
 
                /* reset the board */
                db->cr6_data &= ~(CR6_RXSC | CR6_TXSC); /* Disable Tx/Rx */
@@ -379,7 +381,7 @@ static void uli526x_init(struct eth_device *dev)
        db->tx_packet_cnt = 0;
        for (phy_tmp = 0; phy_tmp < 32; phy_tmp++) {
                /* peer add */
-               phy_value = phy_read(db->ioaddr, phy_tmp, 3, db->chip_id);
+               phy_value = uli_phy_read(db->ioaddr, phy_tmp, 3, db->chip_id);
                if (phy_value != 0xffff && phy_value != 0) {
                        db->phy_addr = phy_tmp;
                        break;
@@ -398,10 +400,10 @@ static void uli526x_init(struct eth_device *dev)
 
        if (!(inl(db->ioaddr + DCR12) & 0x8)) {
                /* Phyxcer capability setting */
-               phy_reg_reset = phy_read(db->ioaddr,
+               phy_reg_reset = uli_phy_read(db->ioaddr,
                        db->phy_addr, 0, db->chip_id);
                phy_reg_reset = (phy_reg_reset | 0x8000);
-               phy_write(db->ioaddr, db->phy_addr, 0,
+               uli_phy_write(db->ioaddr, db->phy_addr, 0,
                        phy_reg_reset, db->chip_id);
                udelay(500);
 
@@ -437,8 +439,7 @@ static void uli526x_init(struct eth_device *dev)
  *     Send a packet to media from the upper layer.
  */
 
-static int uli526x_start_xmit(struct eth_device *dev,
-                               volatile void *packet, int length)
+static int uli526x_start_xmit(struct eth_device *dev, void *packet, int length)
 {
        struct uli526x_board_info *db = dev->priv;
        struct tx_desc *txptr;
@@ -547,7 +548,7 @@ static int uli526x_rx_packet(struct eth_device *dev)
 
        rdes0 = le32_to_cpu(rxptr->rdes0);
 #ifdef RX_DEBUG
-       printf("%s(): rxptr->rdes0=%x:%x\n", __FUNCTION__, rxptr->rdes0);
+       printf("%s(): rxptr->rdes0=%x\n", __FUNCTION__, rxptr->rdes0);
 #endif
        if (!(rdes0 & 0x80000000)) {    /* packet owner check */
                if ((rdes0 & 0x300) != 0x300) {
@@ -586,7 +587,8 @@ static int uli526x_rx_packet(struct eth_device *dev)
                                        __FUNCTION__, i, rxptr->rx_buf_ptr[i]);
 #endif
 
-                               NetReceive((uchar *)rxptr->rx_buf_ptr, rxlen);
+                               net_process_received_packet(
+                                       (uchar *)rxptr->rx_buf_ptr, rxlen);
                                uli526x_reuse_buf(rxptr);
 
                        } else {
@@ -708,7 +710,7 @@ static void allocate_rx_buffer(struct uli526x_board_info *db)
        u32 addr;
 
        for (index = 0; index < RX_DESC_CNT; index++) {
-               addr = (u32)NetRxPackets[index];
+               addr = (u32)net_rx_packets[index];
                addr += (16 - (addr & 15));
                rxptr->rx_buf_ptr = (char *) addr;
                rxptr->rdes2 = cpu_to_le32(addr);
@@ -775,7 +777,8 @@ static void uli526x_set_phyxcer(struct uli526x_board_info *db)
        u16 phy_reg;
 
        /* Phyxcer capability setting */
-       phy_reg = phy_read(db->ioaddr, db->phy_addr, 4, db->chip_id) & ~0x01e0;
+       phy_reg = uli_phy_read(db->ioaddr,
+                       db->phy_addr, 4, db->chip_id) & ~0x01e0;
 
        if (db->media_mode & ULI526X_AUTO) {
                /* AUTO Mode */
@@ -796,10 +799,10 @@ static void uli526x_set_phyxcer(struct uli526x_board_info *db)
                phy_reg |= db->PHY_reg4;
                db->media_mode |= ULI526X_AUTO;
        }
-       phy_write(db->ioaddr, db->phy_addr, 4, phy_reg, db->chip_id);
+       uli_phy_write(db->ioaddr, db->phy_addr, 4, phy_reg, db->chip_id);
 
        /* Restart Auto-Negotiation */
-       phy_write(db->ioaddr, db->phy_addr, 0, 0x1200, db->chip_id);
+       uli_phy_write(db->ioaddr, db->phy_addr, 0, 0x1200, db->chip_id);
        udelay(50);
 }
 
@@ -807,7 +810,7 @@ static void uli526x_set_phyxcer(struct uli526x_board_info *db)
  *     Write a word to Phy register
  */
 
-static void phy_write(unsigned long iobase, u8 phy_addr, u8 offset,
+static void uli_phy_write(unsigned long iobase, u8 phy_addr, u8 offset,
        u16 phy_data, u32 chip_id)
 {
        u16 i;
@@ -856,7 +859,8 @@ static void phy_write(unsigned long iobase, u8 phy_addr, u8 offset,
  *     Read a word data from phy register
  */
 
-static u16 phy_read(unsigned long iobase, u8 phy_addr, u8 offset, u32 chip_id)
+static u16 uli_phy_read(unsigned long iobase, u8 phy_addr, u8 offset,
+                       u32 chip_id)
 {
        int i;
        u16 phy_data;