Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 27245
b: refs/heads/master
c: d269a69
h: refs/heads/master
i:
  27243: 35ce7b8
v: v3
  • Loading branch information
Daniele Venzano authored and Jeff Garzik committed Apr 20, 2006
1 parent c60a4ba commit 724a400
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5ad05b990062c1b7a797f0ca293f6bdde62a50d9
refs/heads/master: d269a69fbbbb7ddd2081af7a768feac754b8357a
26 changes: 20 additions & 6 deletions trunk/drivers/net/sis900.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* sis900.c: A SiS 900/7016 PCI Fast Ethernet driver for Linux.
Copyright 1999 Silicon Integrated System Corporation
Revision: 1.08.09 Sep. 19 2005
Revision: 1.08.10 Apr. 2 2006
Modified from the driver which is originally written by Donald Becker.
Expand All @@ -17,9 +17,10 @@
SiS 7014 Single Chip 100BASE-TX/10BASE-T Physical Layer Solution,
preliminary Rev. 1.0 Jan. 18, 1998
Rev 1.08.10 Apr. 2 2006 Daniele Venzano add vlan (jumbo packets) support
Rev 1.08.09 Sep. 19 2005 Daniele Venzano add Wake on LAN support
Rev 1.08.08 Jan. 22 2005 Daniele Venzano use netif_msg for debugging messages
Rev 1.08.07 Nov. 2 2003 Daniele Venzano <webvenza@libero.it> add suspend/resume support
Rev 1.08.07 Nov. 2 2003 Daniele Venzano <venza@brownhat.org> add suspend/resume support
Rev 1.08.06 Sep. 24 2002 Mufasa Yang bug fix for Tx timeout & add SiS963 support
Rev 1.08.05 Jun. 6 2002 Mufasa Yang bug fix for read_eeprom & Tx descriptor over-boundary
Rev 1.08.04 Apr. 25 2002 Mufasa Yang <mufasa@sis.com.tw> added SiS962 support
Expand Down Expand Up @@ -77,7 +78,7 @@
#include "sis900.h"

#define SIS900_MODULE_NAME "sis900"
#define SIS900_DRV_VERSION "v1.08.09 Sep. 19 2005"
#define SIS900_DRV_VERSION "v1.08.10 Apr. 2 2006"

static char version[] __devinitdata =
KERN_INFO "sis900.c: " SIS900_DRV_VERSION "\n";
Expand Down Expand Up @@ -1401,6 +1402,11 @@ static void sis900_set_mode (long ioaddr, int speed, int duplex)
rx_flags |= RxATX;
}

#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
/* Can accept Jumbo packet */
rx_flags |= RxAJAB;
#endif

outl (tx_flags, ioaddr + txcfg);
outl (rx_flags, ioaddr + rxcfg);
}
Expand Down Expand Up @@ -1713,18 +1719,26 @@ static int sis900_rx(struct net_device *net_dev)

while (rx_status & OWN) {
unsigned int rx_size;
unsigned int data_size;

if (--rx_work_limit < 0)
break;

rx_size = (rx_status & DSIZE) - CRC_SIZE;
data_size = rx_status & DSIZE;
rx_size = data_size - CRC_SIZE;

#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
/* ``TOOLONG'' flag means jumbo packet recived. */
if ((rx_status & TOOLONG) && data_size <= MAX_FRAME_SIZE)
rx_status &= (~ ((unsigned int)TOOLONG));
#endif

if (rx_status & (ABORT|OVERRUN|TOOLONG|RUNT|RXISERR|CRCERR|FAERR)) {
/* corrupted packet received */
if (netif_msg_rx_err(sis_priv))
printk(KERN_DEBUG "%s: Corrupted packet "
"received, buffer status = 0x%8.8x.\n",
net_dev->name, rx_status);
"received, buffer status = 0x%8.8x/%d.\n",
net_dev->name, rx_status, data_size);
sis_priv->stats.rx_errors++;
if (rx_status & OVERRUN)
sis_priv->stats.rx_over_errors++;
Expand Down
10 changes: 8 additions & 2 deletions trunk/drivers/net/sis900.h
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,14 @@ enum sis630_revision_id {
#define CRC_SIZE 4
#define MAC_HEADER_SIZE 14

#define TX_BUF_SIZE 1536
#define RX_BUF_SIZE 1536
#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
#define MAX_FRAME_SIZE (1518 + 4)
#else
#define MAX_FRAME_SIZE 1518
#endif /* CONFIG_VLAN_802_1Q */

#define TX_BUF_SIZE (MAX_FRAME_SIZE+18)
#define RX_BUF_SIZE (MAX_FRAME_SIZE+18)

#define NUM_TX_DESC 16 /* Number of Tx descriptor registers. */
#define NUM_RX_DESC 16 /* Number of Rx descriptor registers. */
Expand Down

0 comments on commit 724a400

Please sign in to comment.