mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
Drivers: net: ethernet: 3com: 3c589_cs fixed coding style issues
checkpatch.pl clean-up, from 14 error/ 277 warnings, to 0 errors, 7 warnings Signed-off-by: Justin van Wijngaarden <justinvanwijngaarden@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
82f148e992
commit
6df3efccee
1 changed files with 555 additions and 514 deletions
|
@ -1,23 +1,24 @@
|
|||
/*======================================================================
|
||||
|
||||
A PCMCIA ethernet driver for the 3com 3c589 card.
|
||||
|
||||
Copyright (C) 1999 David A. Hinds -- dahinds@users.sourceforge.net
|
||||
|
||||
3c589_cs.c 1.162 2001/10/13 00:08:50
|
||||
|
||||
The network driver code is based on Donald Becker's 3c589 code:
|
||||
|
||||
Written 1994 by Donald Becker.
|
||||
Copyright 1993 United States Government as represented by the
|
||||
Director, National Security Agency. This software may be used and
|
||||
distributed according to the terms of the GNU General Public License,
|
||||
incorporated herein by reference.
|
||||
Donald Becker may be reached at becker@scyld.com
|
||||
|
||||
Updated for 2.5.x by Alan Cox <alan@lxorguk.ukuu.org.uk>
|
||||
|
||||
======================================================================*/
|
||||
/* ======================================================================
|
||||
*
|
||||
* A PCMCIA ethernet driver for the 3com 3c589 card.
|
||||
*
|
||||
* Copyright (C) 1999 David A. Hinds -- dahinds@users.sourceforge.net
|
||||
*
|
||||
* 3c589_cs.c 1.162 2001/10/13 00:08:50
|
||||
*
|
||||
* The network driver code is based on Donald Becker's 3c589 code:
|
||||
*
|
||||
* Written 1994 by Donald Becker.
|
||||
* Copyright 1993 United States Government as represented by the
|
||||
* Director, National Security Agency. This software may be used and
|
||||
* distributed according to the terms of the GNU General Public License,
|
||||
* incorporated herein by reference.
|
||||
* Donald Becker may be reached at becker@scyld.com
|
||||
*
|
||||
* Updated for 2.5.x by Alan Cox <alan@lxorguk.ukuu.org.uk>
|
||||
*
|
||||
* ======================================================================
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
|
@ -41,18 +42,20 @@
|
|||
#include <linux/ioport.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <pcmcia/cistpl.h>
|
||||
#include <pcmcia/cisreg.h>
|
||||
#include <pcmcia/ciscode.h>
|
||||
#include <pcmcia/ds.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
/* To minimize the size of the driver source I only define operating
|
||||
constants if they are used several times. You'll need the manual
|
||||
if you want to understand driver details. */
|
||||
* constants if they are used several times. You'll need the manual
|
||||
* if you want to understand driver details.
|
||||
*/
|
||||
|
||||
/* Offsets from base I/O address. */
|
||||
#define EL3_DATA 0x00
|
||||
#define EL3_TIMER 0x0a
|
||||
|
@ -65,7 +68,9 @@
|
|||
#define EL3WINDOW(win_num) outw(SelectWindow + (win_num), ioaddr + EL3_CMD)
|
||||
|
||||
/* The top five bits written to EL3_CMD are a command, the lower
|
||||
11 bits are the parameter, if applicable. */
|
||||
* 11 bits are the parameter, if applicable.
|
||||
*/
|
||||
|
||||
enum c509cmd {
|
||||
TotalReset = 0<<11,
|
||||
SelectWindow = 1<<11,
|
||||
|
@ -253,7 +258,8 @@ static int tc589_config(struct pcmcia_device *link)
|
|||
|
||||
/* For the 3c562, the base address must be xx00-xx7f */
|
||||
for (i = j = 0; j < 0x400; j += 0x10) {
|
||||
if (multi && (j & 0x80)) continue;
|
||||
if (multi && (j & 0x80))
|
||||
continue;
|
||||
link->resource[0]->start = j ^ 0x300;
|
||||
i = pcmcia_request_io(link);
|
||||
if (i == 0)
|
||||
|
@ -276,7 +282,8 @@ static int tc589_config(struct pcmcia_device *link)
|
|||
EL3WINDOW(0);
|
||||
|
||||
/* The 3c589 has an extra EEPROM for configuration info, including
|
||||
the hardware address. The 3c562 puts the address in the CIS. */
|
||||
* the hardware address. The 3c562 puts the address in the CIS.
|
||||
*/
|
||||
len = pcmcia_get_tuple(link, 0x88, &buf);
|
||||
if (buf && len >= 6) {
|
||||
for (i = 0; i < 3; i++)
|
||||
|
@ -294,7 +301,9 @@ static int tc589_config(struct pcmcia_device *link)
|
|||
}
|
||||
|
||||
/* The address and resource configuration register aren't loaded from
|
||||
the EEPROM and *must* be set to 0 and IRQ3 for the PCMCIA version. */
|
||||
* the EEPROM and *must* be set to 0 and IRQ3 for the PCMCIA version.
|
||||
*/
|
||||
|
||||
outw(0x3f00, ioaddr + 8);
|
||||
fifo = inl(ioaddr);
|
||||
|
||||
|
@ -353,23 +362,23 @@ static int tc589_resume(struct pcmcia_device *link)
|
|||
|
||||
/*====================================================================*/
|
||||
|
||||
/*
|
||||
Use this for commands that may take time to finish
|
||||
*/
|
||||
/* Use this for commands that may take time to finish */
|
||||
|
||||
static void tc589_wait_for_completion(struct net_device *dev, int cmd)
|
||||
{
|
||||
int i = 100;
|
||||
outw(cmd, dev->base_addr + EL3_CMD);
|
||||
while (--i > 0)
|
||||
if (!(inw(dev->base_addr + EL3_STATUS) & 0x1000)) break;
|
||||
if (!(inw(dev->base_addr + EL3_STATUS) & 0x1000))
|
||||
break;
|
||||
if (i == 0)
|
||||
netdev_warn(dev, "command 0x%04x did not complete!\n", cmd);
|
||||
}
|
||||
|
||||
/*
|
||||
Read a word from the EEPROM using the regular EEPROM access register.
|
||||
Assume that we are in register window zero.
|
||||
*/
|
||||
/* Read a word from the EEPROM using the regular EEPROM access register.
|
||||
* Assume that we are in register window zero.
|
||||
*/
|
||||
|
||||
static u16 read_eeprom(unsigned int ioaddr, int index)
|
||||
{
|
||||
int i;
|
||||
|
@ -381,10 +390,10 @@ static u16 read_eeprom(unsigned int ioaddr, int index)
|
|||
return inw(ioaddr + 12);
|
||||
}
|
||||
|
||||
/*
|
||||
Set transceiver type, perhaps to something other than what the user
|
||||
specified in dev->if_port.
|
||||
*/
|
||||
/* Set transceiver type, perhaps to something other than what the user
|
||||
* specified in dev->if_port.
|
||||
*/
|
||||
|
||||
static void tc589_set_xcvr(struct net_device *dev, int if_port)
|
||||
{
|
||||
struct el3_private *lp = netdev_priv(dev);
|
||||
|
@ -392,9 +401,16 @@ static void tc589_set_xcvr(struct net_device *dev, int if_port)
|
|||
|
||||
EL3WINDOW(0);
|
||||
switch (if_port) {
|
||||
case 0: case 1: outw(0, ioaddr + 6); break;
|
||||
case 2: outw(3<<14, ioaddr + 6); break;
|
||||
case 3: outw(1<<14, ioaddr + 6); break;
|
||||
case 0:
|
||||
case 1:
|
||||
outw(0, ioaddr + 6);
|
||||
break;
|
||||
case 2:
|
||||
outw(3<<14, ioaddr + 6);
|
||||
break;
|
||||
case 3:
|
||||
outw(1<<14, ioaddr + 6);
|
||||
break;
|
||||
}
|
||||
/* On PCMCIA, this just turns on the LED */
|
||||
outw((if_port == 2) ? StartCoax : StopCoax, ioaddr + EL3_CMD);
|
||||
|
@ -483,9 +499,10 @@ static int el3_config(struct net_device *dev, struct ifmap *map)
|
|||
dev->if_port = map->port;
|
||||
netdev_info(dev, "switched to %s port\n", if_names[dev->if_port]);
|
||||
tc589_set_xcvr(dev, dev->if_port);
|
||||
} else
|
||||
} else {
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -535,7 +552,8 @@ static void pop_tx_status(struct net_device *dev)
|
|||
/* Clear the Tx status stack. */
|
||||
for (i = 32; i > 0; i--) {
|
||||
u_char tx_status = inb(ioaddr + TX_STATUS);
|
||||
if (!(tx_status & 0x84)) break;
|
||||
if (!(tx_status & 0x84))
|
||||
break;
|
||||
/* reset transmitter on jabber error or underrun */
|
||||
if (tx_status & 0x30)
|
||||
tc589_wait_for_completion(dev, TxReset);
|
||||
|
@ -619,7 +637,8 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
|
|||
/* Handle all uncommon interrupts. */
|
||||
if (status & StatsFull) /* Empty statistics. */
|
||||
update_stats(dev);
|
||||
if (status & RxEarly) { /* Rx early is unused. */
|
||||
if (status & RxEarly) {
|
||||
/* Rx early is unused. */
|
||||
el3_rx(dev);
|
||||
outw(AckIntr | RxEarly, ioaddr + EL3_CMD);
|
||||
}
|
||||
|
@ -669,10 +688,12 @@ static void media_check(unsigned long arg)
|
|||
u16 media, errs;
|
||||
unsigned long flags;
|
||||
|
||||
if (!netif_device_present(dev)) goto reschedule;
|
||||
if (!netif_device_present(dev))
|
||||
goto reschedule;
|
||||
|
||||
/* Check for pending interrupt with expired latency timer: with
|
||||
this, we can limp along even if the interrupt is blocked */
|
||||
* this, we can limp along even if the interrupt is blocked
|
||||
*/
|
||||
if ((inw(ioaddr + EL3_STATUS) & IntLatch) &&
|
||||
(inb(ioaddr + EL3_TIMER) == 0xff)) {
|
||||
if (!lp->fast_poll)
|
||||
|
@ -692,7 +713,9 @@ static void media_check(unsigned long arg)
|
|||
}
|
||||
|
||||
/* lp->lock guards the EL3 window. Window should always be 1 except
|
||||
when the lock is held */
|
||||
* when the lock is held
|
||||
*/
|
||||
|
||||
spin_lock_irqsave(&lp->lock, flags);
|
||||
EL3WINDOW(4);
|
||||
media = inw(ioaddr+WN4_MEDIA) & 0xc810;
|
||||
|
@ -707,7 +730,8 @@ static void media_check(unsigned long arg)
|
|||
errs = inb(ioaddr + 0);
|
||||
outw(StatsEnable, ioaddr + EL3_CMD);
|
||||
dev->stats.tx_carrier_errors += errs;
|
||||
if (errs || (lp->media_status & 0x0010)) media |= 0x0010;
|
||||
if (errs || (lp->media_status & 0x0010))
|
||||
media |= 0x0010;
|
||||
}
|
||||
|
||||
if (media != lp->media_status) {
|
||||
|
@ -757,14 +781,14 @@ static struct net_device_stats *el3_get_stats(struct net_device *dev)
|
|||
return &dev->stats;
|
||||
}
|
||||
|
||||
/*
|
||||
Update statistics. We change to register window 6, so this should be run
|
||||
single-threaded if the device is active. This is expected to be a rare
|
||||
operation, and it's simpler for the rest of the driver to assume that
|
||||
window 1 is always valid rather than use a special window-state variable.
|
||||
|
||||
Caller must hold the lock for this
|
||||
/* Update statistics. We change to register window 6, so this should be run
|
||||
* single-threaded if the device is active. This is expected to be a rare
|
||||
* operation, and it's simpler for the rest of the driver to assume that
|
||||
* window 1 is always valid rather than use a special window-state variable.
|
||||
*
|
||||
* Caller must hold the lock for this
|
||||
*/
|
||||
|
||||
static void update_stats(struct net_device *dev)
|
||||
{
|
||||
unsigned int ioaddr = dev->base_addr;
|
||||
|
@ -776,15 +800,20 @@ static void update_stats(struct net_device *dev)
|
|||
EL3WINDOW(6);
|
||||
dev->stats.tx_carrier_errors += inb(ioaddr + 0);
|
||||
dev->stats.tx_heartbeat_errors += inb(ioaddr + 1);
|
||||
/* Multiple collisions. */ inb(ioaddr + 2);
|
||||
/* Multiple collisions. */
|
||||
inb(ioaddr + 2);
|
||||
dev->stats.collisions += inb(ioaddr + 3);
|
||||
dev->stats.tx_window_errors += inb(ioaddr + 4);
|
||||
dev->stats.rx_fifo_errors += inb(ioaddr + 5);
|
||||
dev->stats.tx_packets += inb(ioaddr + 6);
|
||||
/* Rx packets */ inb(ioaddr + 7);
|
||||
/* Tx deferrals */ inb(ioaddr + 8);
|
||||
/* Rx octets */ inw(ioaddr + 10);
|
||||
/* Tx octets */ inw(ioaddr + 12);
|
||||
/* Rx packets */
|
||||
inb(ioaddr + 7);
|
||||
/* Tx deferrals */
|
||||
inb(ioaddr + 8);
|
||||
/* Rx octets */
|
||||
inw(ioaddr + 10);
|
||||
/* Tx octets */
|
||||
inw(ioaddr + 12);
|
||||
|
||||
/* Back to window 1, and turn statistics back on. */
|
||||
EL3WINDOW(1);
|
||||
|
@ -806,12 +835,24 @@ static int el3_rx(struct net_device *dev)
|
|||
short error = rx_status & 0x3800;
|
||||
dev->stats.rx_errors++;
|
||||
switch (error) {
|
||||
case 0x0000: dev->stats.rx_over_errors++; break;
|
||||
case 0x0800: dev->stats.rx_length_errors++; break;
|
||||
case 0x1000: dev->stats.rx_frame_errors++; break;
|
||||
case 0x1800: dev->stats.rx_length_errors++; break;
|
||||
case 0x2000: dev->stats.rx_frame_errors++; break;
|
||||
case 0x2800: dev->stats.rx_crc_errors++; break;
|
||||
case 0x0000:
|
||||
dev->stats.rx_over_errors++;
|
||||
break;
|
||||
case 0x0800:
|
||||
dev->stats.rx_length_errors++;
|
||||
break;
|
||||
case 0x1000:
|
||||
dev->stats.rx_frame_errors++;
|
||||
break;
|
||||
case 0x1800:
|
||||
dev->stats.rx_length_errors++;
|
||||
break;
|
||||
case 0x2000:
|
||||
dev->stats.rx_frame_errors++;
|
||||
break;
|
||||
case 0x2800:
|
||||
dev->stats.rx_crc_errors++;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
short pkt_len = rx_status & 0x7ff;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue