]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: rtl8139: Finish cleanup
authorMarek Vasut <marek.vasut+renesas@gmail.com>
Sun, 12 Apr 2020 21:01:45 +0000 (23:01 +0200)
committermarex <marex@desktop.lan>
Fri, 1 May 2020 10:35:21 +0000 (12:35 +0200)
Finish the checkpatch cleanup of the driver, fix the remaining issues
in probe and init function and in global variables, rename the probe
function to rtl8139_init(), no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/rtl8139.c

index 68ef9eea2503290cec5b9c65ffa78a39fa268d52..b901e3a79b7247039709e691dc3b88550b37d499 100644 (file)
@@ -8,68 +8,67 @@
  */
 
 /* rtl8139.c - etherboot driver for the Realtek 8139 chipset
-
-  ported from the linux driver written by Donald Becker
-  by Rainer Bawidamann (Rainer.Bawidamann@informatik.uni-ulm.de) 1999
-
-  This software may be used and distributed according to the terms
-  of the GNU Public License, incorporated herein by reference.
-
-  changes to the original driver:
-  - removed support for interrupts, switching to polling mode (yuck!)
-  - removed support for the 8129 chip (external MII)
-
-*/
+ *
+ * ported from the linux driver written by Donald Becker
+ * by Rainer Bawidamann (Rainer.Bawidamann@informatik.uni-ulm.de) 1999
+ *
+ * This software may be used and distributed according to the terms
+ * of the GNU Public License, incorporated herein by reference.
+ *
+ * changes to the original driver:
+ * - removed support for interrupts, switching to polling mode (yuck!)
+ * - removed support for the 8129 chip (external MII)
+ */
 
 /*********************************************************************/
 /* Revision History                                                 */
 /*********************************************************************/
 
 /*
 28 Dec 2002  ken_yap@users.sourceforge.net (Ken Yap)
-     Put in virt_to_bus calls to allow Etherboot relocation.
-
 06 Apr 2001  ken_yap@users.sourceforge.net (Ken Yap)
-     Following email from Hyun-Joon Cha, added a disable routine, otherwise
-     NIC remains live and can crash the kernel later.
-
 4 Feb 2000   espenlaub@informatik.uni-ulm.de (Klaus Espenlaub)
-     Shuffled things around, removed the leftovers from the 8129 support
-     that was in the Linux driver and added a bit more 8139 definitions.
-     Moved the 8K receive buffer to a fixed, available address outside the
    0x98000-0x9ffff range.  This is a bit of a hack, but currently the only
-     way to make room for the Etherboot features that need substantial amounts
    of code like the ANSI console support.  Currently the buffer is just below
-     0x10000, so this even conforms to the tagged boot image specification,
    which reserves the ranges 0x00000-0x10000 and 0x98000-0xA0000.  My
-     interpretation of this "reserved" is that Etherboot may do whatever it
-     likes, as long as its environment is kept intact (like the BIOS
    variables).  Hopefully fixed rtl8139_recv() once and for all.     The symptoms
-     were that if Etherboot was left at the boot menu for several minutes, the
    first eth_poll failed.  Seems like I am the only person who does this.
-     First of all I fixed the debugging code and then set out for a long bug
    hunting session.  It took me about a week full time work - poking around
-     various places in the driver, reading Don Becker's and Jeff Garzik's Linux
-     driver and even the FreeBSD driver (what a piece of crap!) - and
-     eventually spotted the nasty thing: the transmit routine was acknowledging
-     each and every interrupt pending, including the RxOverrun and RxFIFIOver
    interrupts.  This confused the RTL8139 thoroughly.         It destroyed the
-     Rx ring contents by dumping the 2K FIFO contents right where we wanted to
    get the next packet.  Oh well, what fun.
-
 18 Jan 2000  mdc@thinguin.org (Marty Connor)
    Drastically simplified error handling.  Basically, if any error
-     in transmission or reception occurs, the card is reset.
-     Also, pointed all transmit descriptors to the same buffer to
    save buffer space.         This should decrease driver size and avoid
-     corruption because of exceeding 32K during runtime.
-
 28 Jul 1999  (Matthias Meixner - meixner@rbg.informatik.tu-darmstadt.de)
-     rtl8139_recv was quite broken: it used the RxOK interrupt flag instead
-     of the RxBufferEmpty flag which often resulted in very bad
-     transmission performace - below 1kBytes/s.
-
-*/
* 28 Dec 2002 ken_yap@users.sourceforge.net (Ken Yap)
*    Put in virt_to_bus calls to allow Etherboot relocation.
+ *
* 06 Apr 2001 ken_yap@users.sourceforge.net (Ken Yap)
*    Following email from Hyun-Joon Cha, added a disable routine, otherwise
*    NIC remains live and can crash the kernel later.
+ *
* 4 Feb 2000 espenlaub@informatik.uni-ulm.de (Klaus Espenlaub)
*    Shuffled things around, removed the leftovers from the 8129 support
*    that was in the Linux driver and added a bit more 8139 definitions.
*    Moved the 8K receive buffer to a fixed, available address outside the
*    0x98000-0x9ffff range. This is a bit of a hack, but currently the only
*    way to make room for the Etherboot features that need substantial amounts
*    of code like the ANSI console support. Currently the buffer is just below
*    0x10000, so this even conforms to the tagged boot image specification,
*    which reserves the ranges 0x00000-0x10000 and 0x98000-0xA0000. My
*    interpretation of this "reserved" is that Etherboot may do whatever it
*    likes, as long as its environment is kept intact (like the BIOS
*    variables). Hopefully fixed rtl8139_recv() once and for all. The symptoms
*    were that if Etherboot was left at the boot menu for several minutes, the
*    first eth_poll failed. Seems like I am the only person who does this.
*    First of all I fixed the debugging code and then set out for a long bug
*    hunting session. It took me about a week full time work - poking around
*    various places in the driver, reading Don Becker's and Jeff Garzik's Linux
*    driver and even the FreeBSD driver (what a piece of crap!) - and
*    eventually spotted the nasty thing: the transmit routine was acknowledging
*    each and every interrupt pending, including the RxOverrun and RxFIFIOver
*    interrupts. This confused the RTL8139 thoroughly. It destroyed the
*    Rx ring contents by dumping the 2K FIFO contents right where we wanted to
*    get the next packet. Oh well, what fun.
+ *
* 18 Jan 2000 mdc@thinguin.org (Marty Connor)
*    Drastically simplified error handling. Basically, if any error
*    in transmission or reception occurs, the card is reset.
*    Also, pointed all transmit descriptors to the same buffer to
*    save buffer space. This should decrease driver size and avoid
*    corruption because of exceeding 32K during runtime.
+ *
* 28 Jul 1999 (Matthias Meixner - meixner@rbg.informatik.tu-darmstadt.de)
*    rtl8139_recv was quite broken: it used the RxOK interrupt flag instead
*    of the RxBufferEmpty flag which often resulted in very bad
*    transmission performace - below 1kBytes/s.
+ *
+ */
 
 #include <common.h>
 #include <cpu_func.h>
@@ -82,8 +81,8 @@
 
 #define RTL_TIMEOUT    100000
 
-/* PCI Tuning Parameters
-   Threshold is bytes transferred to chip before transmission starts. */
+/* PCI Tuning Parameters */
+/* Threshold is bytes transferred to chip before transmission starts. */
 #define TX_FIFO_THRESH 256     /* In bytes, rounded down to 32 byte units. */
 #define RX_FIFO_THRESH 4       /* Rx buffer level before first PCI xfer.  */
 #define RX_DMA_BURST   4       /* Maximum PCI burst, '4' is 256 bytes */
 #define RTL_STS_RXSTATUSOK                     BIT(0)
 
 static int ioaddr;
-static unsigned int cur_rx,cur_tx;
+static unsigned int cur_rx, cur_tx;
 
 /* The RTL8139 can only transmit from a contiguous, aligned memory block.  */
-static unsigned char tx_buffer[TX_BUF_SIZE] __attribute__((aligned(4)));
-static unsigned char rx_ring[RX_BUF_LEN+16] __attribute__((aligned(4)));
+static unsigned char tx_buffer[TX_BUF_SIZE] __aligned(4);
+static unsigned char rx_ring[RX_BUF_LEN + 16] __aligned(4);
 
-static int rtl8139_probe(struct eth_device *dev, bd_t *bis);
+static int rtl8139_init(struct eth_device *dev, bd_t *bis);
 static int rtl8139_read_eeprom(unsigned int location, unsigned int addr_len);
 static void rtl8139_reset(struct eth_device *dev);
 static int rtl8139_send(struct eth_device *dev, void *packet, int length);
@@ -206,82 +205,84 @@ static int rtl8139_recv(struct eth_device *dev);
 static void rtl8139_stop(struct eth_device *dev);
 static int rtl_bcast_addr(struct eth_device *dev, const u8 *bcast_mac, int join)
 {
-       return (0);
+       return 0;
 }
 
 static struct pci_device_id supported[] = {
-       {PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8139},
-       {PCI_VENDOR_ID_DLINK, PCI_DEVICE_ID_DLINK_8139},
-       {}
+       { PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8139 },
+       { PCI_VENDOR_ID_DLINK, PCI_DEVICE_ID_DLINK_8139 },
+       { }
 };
 
 int rtl8139_initialize(bd_t *bis)
 {
-       pci_dev_t devno;
-       int card_number = 0;
        struct eth_device *dev;
+       int card_number = 0;
+       pci_dev_t devno;
+       int idx = 0;
        u32 iobase;
-       int idx=0;
 
-       while(1){
+       while (1) {
                /* Find RTL8139 */
-               if ((devno = pci_find_devices(supported, idx++)) < 0)
+               devno = pci_find_devices(supported, idx++);
+               if (devno < 0)
                        break;
 
                pci_read_config_dword(devno, PCI_BASE_ADDRESS_1, &iobase);
                iobase &= ~0xf;
 
-               debug ("rtl8139: REALTEK RTL8139 @0x%x\n", iobase);
+               debug("rtl8139: REALTEK RTL8139 @0x%x\n", iobase);
 
-               dev = (struct eth_device *)malloc(sizeof *dev);
+               dev = (struct eth_device *)malloc(sizeof(*dev));
                if (!dev) {
                        printf("Can not allocate memory of rtl8139\n");
                        break;
                }
                memset(dev, 0, sizeof(*dev));
 
-               sprintf (dev->name, "RTL8139#%d", card_number);
+               sprintf(dev->name, "RTL8139#%d", card_number);
 
-               dev->priv = (void *) devno;
+               dev->priv = (void *)devno;
                dev->iobase = (int)bus_to_phys(iobase);
-               dev->init = rtl8139_probe;
+               dev->init = rtl8139_init;
                dev->halt = rtl8139_stop;
                dev->send = rtl8139_send;
                dev->recv = rtl8139_recv;
                dev->mcast = rtl_bcast_addr;
 
-               eth_register (dev);
+               eth_register(dev);
 
                card_number++;
 
-               pci_write_config_byte (devno, PCI_LATENCY_TIMER, 0x20);
+               pci_write_config_byte(devno, PCI_LATENCY_TIMER, 0x20);
 
-               udelay (10 * 1000);
+               udelay(10 * 1000);
        }
 
        return card_number;
 }
 
-static int rtl8139_probe(struct eth_device *dev, bd_t *bis)
+static int rtl8139_init(struct eth_device *dev, bd_t *bis)
 {
-       int i;
-       int addr_len;
        unsigned short *ap = (unsigned short *)dev->enetaddr;
+       int addr_len, i;
+       u8 reg;
 
        ioaddr = dev->iobase;
 
        /* Bring the chip out of low-power mode. */
        outb(0x00, ioaddr + RTL_REG_CONFIG1);
 
-       addr_len = rtl8139_read_eeprom(0,8) == 0x8129 ? 8 : 6;
+       addr_len = rtl8139_read_eeprom(0, 8) == 0x8129 ? 8 : 6;
        for (i = 0; i < 3; i++)
-               *ap++ = le16_to_cpu (rtl8139_read_eeprom(i + 7, addr_len));
+               *ap++ = le16_to_cpu(rtl8139_read_eeprom(i + 7, addr_len));
 
        rtl8139_reset(dev);
 
-       if (inb(ioaddr + RTL_REG_MEDIASTATUS) & RTL_REG_MEDIASTATUS_MSRLINKFAIL) {
+       reg = inb(ioaddr + RTL_REG_MEDIASTATUS);
+       if (reg & RTL_REG_MEDIASTATUS_MSRLINKFAIL) {
                printf("Cable not connected or other link failure\n");
-               return -1 ;
+               return -1;
        }
 
        return 0;