Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
ns83820.c File Reference
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/delay.h>
#include <linux/workqueue.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ip.h>
#include <linux/in.h>
#include <linux/compiler.h>
#include <linux/prefetch.h>
#include <linux/ethtool.h>
#include <linux/sched.h>
#include <linux/timer.h>
#include <linux/if_vlan.h>
#include <linux/rtnetlink.h>
#include <linux/jiffies.h>
#include <linux/slab.h>
#include <asm/io.h>
#include <asm/uaccess.h>

Go to the source code of this file.

Data Structures

struct  rx_info
 
struct  ns83820
 

Macros

#define VERSION   "0.23"
 
#define dprintk(x...)   do { } while (0)
 
#define DRV_NAME   "ns83820"
 
#define Dprintk   dprintk
 
#define RX_BUF_SIZE   1500 /* 8192 */
 
#define NR_RX_DESC   64
 
#define NR_TX_DESC   128
 
#define REAL_RX_BUF_SIZE   (RX_BUF_SIZE + 14) /* rx/tx mac addr + type */
 
#define MIN_TX_DESC_FREE   8
 
#define CFGCS   0x04
 
#define CR_TXE   0x00000001
 
#define CR_TXD   0x00000002
 
#define CR_RXE   0x00000004
 
#define CR_RXD   0x00000008
 
#define CR_TXR   0x00000010
 
#define CR_RXR   0x00000020
 
#define CR_SWI   0x00000080
 
#define CR_RST   0x00000100
 
#define PTSCR_EEBIST_FAIL   0x00000001
 
#define PTSCR_EEBIST_EN   0x00000002
 
#define PTSCR_EELOAD_EN   0x00000004
 
#define PTSCR_RBIST_FAIL   0x000001b8
 
#define PTSCR_RBIST_DONE   0x00000200
 
#define PTSCR_RBIST_EN   0x00000400
 
#define PTSCR_RBIST_RST   0x00002000
 
#define MEAR_EEDI   0x00000001
 
#define MEAR_EEDO   0x00000002
 
#define MEAR_EECLK   0x00000004
 
#define MEAR_EESEL   0x00000008
 
#define MEAR_MDIO   0x00000010
 
#define MEAR_MDDIR   0x00000020
 
#define MEAR_MDC   0x00000040
 
#define ISR_TXDESC3   0x40000000
 
#define ISR_TXDESC2   0x20000000
 
#define ISR_TXDESC1   0x10000000
 
#define ISR_TXDESC0   0x08000000
 
#define ISR_RXDESC3   0x04000000
 
#define ISR_RXDESC2   0x02000000
 
#define ISR_RXDESC1   0x01000000
 
#define ISR_RXDESC0   0x00800000
 
#define ISR_TXRCMP   0x00400000
 
#define ISR_RXRCMP   0x00200000
 
#define ISR_DPERR   0x00100000
 
#define ISR_SSERR   0x00080000
 
#define ISR_RMABT   0x00040000
 
#define ISR_RTABT   0x00020000
 
#define ISR_RXSOVR   0x00010000
 
#define ISR_HIBINT   0x00008000
 
#define ISR_PHY   0x00004000
 
#define ISR_PME   0x00002000
 
#define ISR_SWI   0x00001000
 
#define ISR_MIB   0x00000800
 
#define ISR_TXURN   0x00000400
 
#define ISR_TXIDLE   0x00000200
 
#define ISR_TXERR   0x00000100
 
#define ISR_TXDESC   0x00000080
 
#define ISR_TXOK   0x00000040
 
#define ISR_RXORN   0x00000020
 
#define ISR_RXIDLE   0x00000010
 
#define ISR_RXEARLY   0x00000008
 
#define ISR_RXERR   0x00000004
 
#define ISR_RXDESC   0x00000002
 
#define ISR_RXOK   0x00000001
 
#define TXCFG_CSI   0x80000000
 
#define TXCFG_HBI   0x40000000
 
#define TXCFG_MLB   0x20000000
 
#define TXCFG_ATP   0x10000000
 
#define TXCFG_ECRETRY   0x00800000
 
#define TXCFG_BRST_DIS   0x00080000
 
#define TXCFG_MXDMA1024   0x00000000
 
#define TXCFG_MXDMA512   0x00700000
 
#define TXCFG_MXDMA256   0x00600000
 
#define TXCFG_MXDMA128   0x00500000
 
#define TXCFG_MXDMA64   0x00400000
 
#define TXCFG_MXDMA32   0x00300000
 
#define TXCFG_MXDMA16   0x00200000
 
#define TXCFG_MXDMA8   0x00100000
 
#define CFG_LNKSTS   0x80000000
 
#define CFG_SPDSTS   0x60000000
 
#define CFG_SPDSTS1   0x40000000
 
#define CFG_SPDSTS0   0x20000000
 
#define CFG_DUPSTS   0x10000000
 
#define CFG_TBI_EN   0x01000000
 
#define CFG_MODE_1000   0x00400000
 
#define CFG_AUTO_1000   0x00200000
 
#define CFG_PINT_CTL   0x001c0000
 
#define CFG_PINT_DUPSTS   0x00100000
 
#define CFG_PINT_LNKSTS   0x00080000
 
#define CFG_PINT_SPDSTS   0x00040000
 
#define CFG_TMRTEST   0x00020000
 
#define CFG_MRM_DIS   0x00010000
 
#define CFG_MWI_DIS   0x00008000
 
#define CFG_T64ADDR   0x00004000
 
#define CFG_PCI64_DET   0x00002000
 
#define CFG_DATA64_EN   0x00001000
 
#define CFG_M64ADDR   0x00000800
 
#define CFG_PHY_RST   0x00000400
 
#define CFG_PHY_DIS   0x00000200
 
#define CFG_EXTSTS_EN   0x00000100
 
#define CFG_REQALG   0x00000080
 
#define CFG_SB   0x00000040
 
#define CFG_POW   0x00000020
 
#define CFG_EXD   0x00000010
 
#define CFG_PESEL   0x00000008
 
#define CFG_BROM_DIS   0x00000004
 
#define CFG_EXT_125   0x00000002
 
#define CFG_BEM   0x00000001
 
#define EXTSTS_UDPPKT   0x00200000
 
#define EXTSTS_TCPPKT   0x00080000
 
#define EXTSTS_IPPKT   0x00020000
 
#define EXTSTS_VPKT   0x00010000
 
#define EXTSTS_VTG_MASK   0x0000ffff
 
#define SPDSTS_POLARITY   (CFG_SPDSTS1 | CFG_SPDSTS0 | CFG_DUPSTS | (lnksts ? CFG_LNKSTS : 0))
 
#define MIBC_MIBS   0x00000008
 
#define MIBC_ACLR   0x00000004
 
#define MIBC_FRZ   0x00000002
 
#define MIBC_WRN   0x00000001
 
#define PCR_PSEN   (1 << 31)
 
#define PCR_PS_MCAST   (1 << 30)
 
#define PCR_PS_DA   (1 << 29)
 
#define PCR_STHI_8   (3 << 23)
 
#define PCR_STLO_4   (1 << 23)
 
#define PCR_FFHI_8K   (3 << 21)
 
#define PCR_FFLO_4K   (1 << 21)
 
#define PCR_PAUSE_CNT   0xFFFE
 
#define RXCFG_AEP   0x80000000
 
#define RXCFG_ARP   0x40000000
 
#define RXCFG_STRIPCRC   0x20000000
 
#define RXCFG_RX_FD   0x10000000
 
#define RXCFG_ALP   0x08000000
 
#define RXCFG_AIRL   0x04000000
 
#define RXCFG_MXDMA512   0x00700000
 
#define RXCFG_DRTH   0x0000003e
 
#define RXCFG_DRTH0   0x00000002
 
#define RFCR_RFEN   0x80000000
 
#define RFCR_AAB   0x40000000
 
#define RFCR_AAM   0x20000000
 
#define RFCR_AAU   0x10000000
 
#define RFCR_APM   0x08000000
 
#define RFCR_APAT   0x07800000
 
#define RFCR_APAT3   0x04000000
 
#define RFCR_APAT2   0x02000000
 
#define RFCR_APAT1   0x01000000
 
#define RFCR_APAT0   0x00800000
 
#define RFCR_AARP   0x00400000
 
#define RFCR_MHEN   0x00200000
 
#define RFCR_UHEN   0x00100000
 
#define RFCR_ULM   0x00080000
 
#define VRCR_RUDPE   0x00000080
 
#define VRCR_RTCPE   0x00000040
 
#define VRCR_RIPE   0x00000020
 
#define VRCR_IPEN   0x00000010
 
#define VRCR_DUTF   0x00000008
 
#define VRCR_DVTF   0x00000004
 
#define VRCR_VTREN   0x00000002
 
#define VRCR_VTDEN   0x00000001
 
#define VTCR_PPCHK   0x00000008
 
#define VTCR_GCHK   0x00000004
 
#define VTCR_VPPTI   0x00000002
 
#define VTCR_VGTI   0x00000001
 
#define CR   0x00
 
#define CFG   0x04
 
#define MEAR   0x08
 
#define PTSCR   0x0c
 
#define ISR   0x10
 
#define IMR   0x14
 
#define IER   0x18
 
#define IHR   0x1c
 
#define TXDP   0x20
 
#define TXDP_HI   0x24
 
#define TXCFG   0x28
 
#define GPIOR   0x2c
 
#define RXDP   0x30
 
#define RXDP_HI   0x34
 
#define RXCFG   0x38
 
#define PQCR   0x3c
 
#define WCSR   0x40
 
#define PCR   0x44
 
#define RFCR   0x48
 
#define RFDR   0x4c
 
#define SRR   0x58
 
#define VRCR   0xbc
 
#define VTCR   0xc0
 
#define VDR   0xc4
 
#define CCSR   0xcc
 
#define TBICR   0xe0
 
#define TBISR   0xe4
 
#define TANAR   0xe8
 
#define TANLPAR   0xec
 
#define TANER   0xf0
 
#define TESR   0xf4
 
#define TBICR_MR_AN_ENABLE   0x00001000
 
#define TBICR_MR_RESTART_AN   0x00000200
 
#define TBISR_MR_LINK_STATUS   0x00000020
 
#define TBISR_MR_AN_COMPLETE   0x00000004
 
#define TANAR_PS2   0x00000100
 
#define TANAR_PS1   0x00000080
 
#define TANAR_HALF_DUP   0x00000040
 
#define TANAR_FULL_DUP   0x00000020
 
#define GPIOR_GP5_OE   0x00000200
 
#define GPIOR_GP4_OE   0x00000100
 
#define GPIOR_GP3_OE   0x00000080
 
#define GPIOR_GP2_OE   0x00000040
 
#define GPIOR_GP1_OE   0x00000020
 
#define GPIOR_GP3_OUT   0x00000004
 
#define GPIOR_GP1_OUT   0x00000001
 
#define LINK_AUTONEGOTIATE   0x01
 
#define LINK_DOWN   0x02
 
#define LINK_UP   0x04
 
#define HW_ADDR_LEN   sizeof(dma_addr_t)
 
#define desc_addr_set(desc, addr)
 
#define desc_addr_get(desc)
 
#define DESC_LINK   0
 
#define DESC_BUFPTR   (DESC_LINK + HW_ADDR_LEN/4)
 
#define DESC_CMDSTS   (DESC_BUFPTR + HW_ADDR_LEN/4)
 
#define DESC_EXTSTS   (DESC_CMDSTS + 4/4)
 
#define CMDSTS_OWN   0x80000000
 
#define CMDSTS_MORE   0x40000000
 
#define CMDSTS_INTR   0x20000000
 
#define CMDSTS_ERR   0x10000000
 
#define CMDSTS_OK   0x08000000
 
#define CMDSTS_RUNT   0x00200000
 
#define CMDSTS_LEN_MASK   0x0000ffff
 
#define CMDSTS_DEST_MASK   0x01800000
 
#define CMDSTS_DEST_SELF   0x00800000
 
#define CMDSTS_DEST_MULTI   0x01000000
 
#define DESC_SIZE   8 /* Should be cache line sized */
 
#define __kick_rx(dev)   writel(CR_RXE, dev->base + CR)
 
#define start_tx_okay(dev)   (((NR_TX_DESC-2 + dev->tx_done_idx - dev->tx_free_idx) % NR_TX_DESC) > MIN_TX_DESC_FREE)
 
#define nr_rx_empty(dev)   ((NR_RX_DESC-2 + dev->rx_info.next_rx - dev->rx_info.next_empty) % NR_RX_DESC)
 
#define VRCR_INIT_VALUE   (VRCR_IPEN|VRCR_VTDEN)
 
#define VTCR_INIT_VALUE   VTCR_PPCHK
 

Functions

 MODULE_AUTHOR ("Benjamin LaHaise <[email protected]>")
 
 MODULE_DESCRIPTION ("National Semiconductor DP83820 10/100/1000 driver")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_DEVICE_TABLE (pci, ns83820_pci_tbl)
 
 module_param (lnksts, int, 0)
 
 MODULE_PARM_DESC (lnksts,"Polarity of LNKSTS bit")
 
 module_param (ihr, int, 0)
 
 MODULE_PARM_DESC (ihr,"Time in 100 us increments to delay interrupts (range 0-127)")
 
 module_param (reset_phy, int, 0)
 
 MODULE_PARM_DESC (reset_phy,"Set to 1 to reset the PHY on startup")
 
 module_init (ns83820_init)
 
 module_exit (ns83820_exit)
 

Macro Definition Documentation

#define __kick_rx (   dev)    writel(CR_RXE, dev->base + CR)

Definition at line 470 of file ns83820.c.

#define CCSR   0xcc

Definition at line 349 of file ns83820.c.

#define CFG   0x04

Definition at line 324 of file ns83820.c.

#define CFG_AUTO_1000   0x00200000

Definition at line 238 of file ns83820.c.

#define CFG_BEM   0x00000001

Definition at line 260 of file ns83820.c.

#define CFG_BROM_DIS   0x00000004

Definition at line 258 of file ns83820.c.

#define CFG_DATA64_EN   0x00001000

Definition at line 248 of file ns83820.c.

#define CFG_DUPSTS   0x10000000

Definition at line 233 of file ns83820.c.

#define CFG_EXD   0x00000010

Definition at line 256 of file ns83820.c.

#define CFG_EXT_125   0x00000002

Definition at line 259 of file ns83820.c.

#define CFG_EXTSTS_EN   0x00000100

Definition at line 252 of file ns83820.c.

#define CFG_LNKSTS   0x80000000

Definition at line 229 of file ns83820.c.

#define CFG_M64ADDR   0x00000800

Definition at line 249 of file ns83820.c.

#define CFG_MODE_1000   0x00400000

Definition at line 235 of file ns83820.c.

#define CFG_MRM_DIS   0x00010000

Definition at line 244 of file ns83820.c.

#define CFG_MWI_DIS   0x00008000

Definition at line 245 of file ns83820.c.

#define CFG_PCI64_DET   0x00002000

Definition at line 247 of file ns83820.c.

#define CFG_PESEL   0x00000008

Definition at line 257 of file ns83820.c.

#define CFG_PHY_DIS   0x00000200

Definition at line 251 of file ns83820.c.

#define CFG_PHY_RST   0x00000400

Definition at line 250 of file ns83820.c.

#define CFG_PINT_CTL   0x001c0000

Definition at line 239 of file ns83820.c.

#define CFG_PINT_DUPSTS   0x00100000

Definition at line 240 of file ns83820.c.

#define CFG_PINT_LNKSTS   0x00080000

Definition at line 241 of file ns83820.c.

#define CFG_PINT_SPDSTS   0x00040000

Definition at line 242 of file ns83820.c.

#define CFG_POW   0x00000020

Definition at line 255 of file ns83820.c.

#define CFG_REQALG   0x00000080

Definition at line 253 of file ns83820.c.

#define CFG_SB   0x00000040

Definition at line 254 of file ns83820.c.

#define CFG_SPDSTS   0x60000000

Definition at line 230 of file ns83820.c.

#define CFG_SPDSTS0   0x20000000

Definition at line 232 of file ns83820.c.

#define CFG_SPDSTS1   0x40000000

Definition at line 231 of file ns83820.c.

#define CFG_T64ADDR   0x00004000

Definition at line 246 of file ns83820.c.

#define CFG_TBI_EN   0x01000000

Definition at line 234 of file ns83820.c.

#define CFG_TMRTEST   0x00020000

Definition at line 243 of file ns83820.c.

#define CFGCS   0x04

Definition at line 152 of file ns83820.c.

#define CMDSTS_DEST_MASK   0x01800000

Definition at line 405 of file ns83820.c.

#define CMDSTS_DEST_MULTI   0x01000000

Definition at line 407 of file ns83820.c.

#define CMDSTS_DEST_SELF   0x00800000

Definition at line 406 of file ns83820.c.

#define CMDSTS_ERR   0x10000000

Definition at line 400 of file ns83820.c.

#define CMDSTS_INTR   0x20000000

Definition at line 399 of file ns83820.c.

#define CMDSTS_LEN_MASK   0x0000ffff

Definition at line 403 of file ns83820.c.

#define CMDSTS_MORE   0x40000000

Definition at line 398 of file ns83820.c.

#define CMDSTS_OK   0x08000000

Definition at line 401 of file ns83820.c.

#define CMDSTS_OWN   0x80000000

Definition at line 397 of file ns83820.c.

#define CMDSTS_RUNT   0x00200000

Definition at line 402 of file ns83820.c.

#define CR   0x00

Definition at line 323 of file ns83820.c.

#define CR_RST   0x00000100

Definition at line 164 of file ns83820.c.

#define CR_RXD   0x00000008

Definition at line 160 of file ns83820.c.

#define CR_RXE   0x00000004

Definition at line 159 of file ns83820.c.

#define CR_RXR   0x00000020

Definition at line 162 of file ns83820.c.

#define CR_SWI   0x00000080

Definition at line 163 of file ns83820.c.

#define CR_TXD   0x00000002

Definition at line 155 of file ns83820.c.

#define CR_TXE   0x00000001

Definition at line 154 of file ns83820.c.

#define CR_TXR   0x00000010

Definition at line 161 of file ns83820.c.

#define desc_addr_get (   desc)
Value:
(le32_to_cpu((desc)[0]) | \
(HW_ADDR_LEN == 8 ? ((dma_addr_t)le32_to_cpu((desc)[1]))<<32 : 0))

Definition at line 388 of file ns83820.c.

#define desc_addr_set (   desc,
  addr 
)
Value:
do { \
((desc)[0] = cpu_to_le32(addr)); \
if (HW_ADDR_LEN == 8) \
(desc)[1] = cpu_to_le32(((u64)addr) >> 32); \
} while(0)

Definition at line 382 of file ns83820.c.

#define DESC_BUFPTR   (DESC_LINK + HW_ADDR_LEN/4)

Definition at line 393 of file ns83820.c.

#define DESC_CMDSTS   (DESC_BUFPTR + HW_ADDR_LEN/4)

Definition at line 394 of file ns83820.c.

#define DESC_EXTSTS   (DESC_CMDSTS + 4/4)

Definition at line 395 of file ns83820.c.

#define DESC_LINK   0

Definition at line 392 of file ns83820.c.

#define DESC_SIZE   8 /* Should be cache line sized */

Definition at line 409 of file ns83820.c.

#define dprintk (   x...)    do { } while (0)

Definition at line 97 of file ns83820.c.

#define Dprintk   dprintk

Definition at line 134 of file ns83820.c.

#define DRV_NAME   "ns83820"

Definition at line 125 of file ns83820.c.

#define EXTSTS_IPPKT   0x00020000

Definition at line 264 of file ns83820.c.

#define EXTSTS_TCPPKT   0x00080000

Definition at line 263 of file ns83820.c.

#define EXTSTS_UDPPKT   0x00200000

Definition at line 262 of file ns83820.c.

#define EXTSTS_VPKT   0x00010000

Definition at line 265 of file ns83820.c.

#define EXTSTS_VTG_MASK   0x0000ffff

Definition at line 266 of file ns83820.c.

#define GPIOR   0x2c

Definition at line 334 of file ns83820.c.

#define GPIOR_GP1_OE   0x00000020

Definition at line 373 of file ns83820.c.

#define GPIOR_GP1_OUT   0x00000001

Definition at line 375 of file ns83820.c.

#define GPIOR_GP2_OE   0x00000040

Definition at line 372 of file ns83820.c.

#define GPIOR_GP3_OE   0x00000080

Definition at line 371 of file ns83820.c.

#define GPIOR_GP3_OUT   0x00000004

Definition at line 374 of file ns83820.c.

#define GPIOR_GP4_OE   0x00000100

Definition at line 370 of file ns83820.c.

#define GPIOR_GP5_OE   0x00000200

Definition at line 369 of file ns83820.c.

#define HW_ADDR_LEN   sizeof(dma_addr_t)

Definition at line 381 of file ns83820.c.

#define IER   0x18

Definition at line 329 of file ns83820.c.

#define IHR   0x1c

Definition at line 330 of file ns83820.c.

#define IMR   0x14

Definition at line 328 of file ns83820.c.

#define ISR   0x10

Definition at line 327 of file ns83820.c.

#define ISR_DPERR   0x00100000

Definition at line 192 of file ns83820.c.

#define ISR_HIBINT   0x00008000

Definition at line 197 of file ns83820.c.

#define ISR_MIB   0x00000800

Definition at line 201 of file ns83820.c.

#define ISR_PHY   0x00004000

Definition at line 198 of file ns83820.c.

#define ISR_PME   0x00002000

Definition at line 199 of file ns83820.c.

#define ISR_RMABT   0x00040000

Definition at line 194 of file ns83820.c.

#define ISR_RTABT   0x00020000

Definition at line 195 of file ns83820.c.

#define ISR_RXDESC   0x00000002

Definition at line 211 of file ns83820.c.

#define ISR_RXDESC0   0x00800000

Definition at line 189 of file ns83820.c.

#define ISR_RXDESC1   0x01000000

Definition at line 188 of file ns83820.c.

#define ISR_RXDESC2   0x02000000

Definition at line 187 of file ns83820.c.

#define ISR_RXDESC3   0x04000000

Definition at line 186 of file ns83820.c.

#define ISR_RXEARLY   0x00000008

Definition at line 209 of file ns83820.c.

#define ISR_RXERR   0x00000004

Definition at line 210 of file ns83820.c.

#define ISR_RXIDLE   0x00000010

Definition at line 208 of file ns83820.c.

#define ISR_RXOK   0x00000001

Definition at line 212 of file ns83820.c.

#define ISR_RXORN   0x00000020

Definition at line 207 of file ns83820.c.

#define ISR_RXRCMP   0x00200000

Definition at line 191 of file ns83820.c.

#define ISR_RXSOVR   0x00010000

Definition at line 196 of file ns83820.c.

#define ISR_SSERR   0x00080000

Definition at line 193 of file ns83820.c.

#define ISR_SWI   0x00001000

Definition at line 200 of file ns83820.c.

#define ISR_TXDESC   0x00000080

Definition at line 205 of file ns83820.c.

#define ISR_TXDESC0   0x08000000

Definition at line 185 of file ns83820.c.

#define ISR_TXDESC1   0x10000000

Definition at line 184 of file ns83820.c.

#define ISR_TXDESC2   0x20000000

Definition at line 183 of file ns83820.c.

#define ISR_TXDESC3   0x40000000

Definition at line 182 of file ns83820.c.

#define ISR_TXERR   0x00000100

Definition at line 204 of file ns83820.c.

#define ISR_TXIDLE   0x00000200

Definition at line 203 of file ns83820.c.

#define ISR_TXOK   0x00000040

Definition at line 206 of file ns83820.c.

#define ISR_TXRCMP   0x00400000

Definition at line 190 of file ns83820.c.

#define ISR_TXURN   0x00000400

Definition at line 202 of file ns83820.c.

#define LINK_AUTONEGOTIATE   0x01

Definition at line 377 of file ns83820.c.

#define LINK_DOWN   0x02

Definition at line 378 of file ns83820.c.

#define LINK_UP   0x04

Definition at line 379 of file ns83820.c.

#define MEAR   0x08

Definition at line 325 of file ns83820.c.

#define MEAR_EECLK   0x00000004

Definition at line 176 of file ns83820.c.

#define MEAR_EEDI   0x00000001

Definition at line 174 of file ns83820.c.

#define MEAR_EEDO   0x00000002

Definition at line 175 of file ns83820.c.

#define MEAR_EESEL   0x00000008

Definition at line 177 of file ns83820.c.

#define MEAR_MDC   0x00000040

Definition at line 180 of file ns83820.c.

#define MEAR_MDDIR   0x00000020

Definition at line 179 of file ns83820.c.

#define MEAR_MDIO   0x00000010

Definition at line 178 of file ns83820.c.

#define MIBC_ACLR   0x00000004

Definition at line 271 of file ns83820.c.

#define MIBC_FRZ   0x00000002

Definition at line 272 of file ns83820.c.

#define MIBC_MIBS   0x00000008

Definition at line 270 of file ns83820.c.

#define MIBC_WRN   0x00000001

Definition at line 273 of file ns83820.c.

#define MIN_TX_DESC_FREE   8

Definition at line 149 of file ns83820.c.

#define NR_RX_DESC   64

Definition at line 143 of file ns83820.c.

#define nr_rx_empty (   dev)    ((NR_RX_DESC-2 + dev->rx_info.next_rx - dev->rx_info.next_empty) % NR_RX_DESC)

Definition at line 514 of file ns83820.c.

#define NR_TX_DESC   128

Definition at line 144 of file ns83820.c.

#define PCR   0x44

Definition at line 340 of file ns83820.c.

#define PCR_FFHI_8K   (3 << 21)

Definition at line 280 of file ns83820.c.

#define PCR_FFLO_4K   (1 << 21)

Definition at line 281 of file ns83820.c.

#define PCR_PAUSE_CNT   0xFFFE

Definition at line 282 of file ns83820.c.

#define PCR_PS_DA   (1 << 29)

Definition at line 277 of file ns83820.c.

#define PCR_PS_MCAST   (1 << 30)

Definition at line 276 of file ns83820.c.

#define PCR_PSEN   (1 << 31)

Definition at line 275 of file ns83820.c.

#define PCR_STHI_8   (3 << 23)

Definition at line 278 of file ns83820.c.

#define PCR_STLO_4   (1 << 23)

Definition at line 279 of file ns83820.c.

#define PQCR   0x3c

Definition at line 338 of file ns83820.c.

#define PTSCR   0x0c

Definition at line 326 of file ns83820.c.

#define PTSCR_EEBIST_EN   0x00000002

Definition at line 167 of file ns83820.c.

#define PTSCR_EEBIST_FAIL   0x00000001

Definition at line 166 of file ns83820.c.

#define PTSCR_EELOAD_EN   0x00000004

Definition at line 168 of file ns83820.c.

#define PTSCR_RBIST_DONE   0x00000200

Definition at line 170 of file ns83820.c.

#define PTSCR_RBIST_EN   0x00000400

Definition at line 171 of file ns83820.c.

#define PTSCR_RBIST_FAIL   0x000001b8

Definition at line 169 of file ns83820.c.

#define PTSCR_RBIST_RST   0x00002000

Definition at line 172 of file ns83820.c.

#define REAL_RX_BUF_SIZE   (RX_BUF_SIZE + 14) /* rx/tx mac addr + type */

Definition at line 147 of file ns83820.c.

#define RFCR   0x48

Definition at line 341 of file ns83820.c.

#define RFCR_AAB   0x40000000

Definition at line 295 of file ns83820.c.

#define RFCR_AAM   0x20000000

Definition at line 296 of file ns83820.c.

#define RFCR_AARP   0x00400000

Definition at line 304 of file ns83820.c.

#define RFCR_AAU   0x10000000

Definition at line 297 of file ns83820.c.

#define RFCR_APAT   0x07800000

Definition at line 299 of file ns83820.c.

#define RFCR_APAT0   0x00800000

Definition at line 303 of file ns83820.c.

#define RFCR_APAT1   0x01000000

Definition at line 302 of file ns83820.c.

#define RFCR_APAT2   0x02000000

Definition at line 301 of file ns83820.c.

#define RFCR_APAT3   0x04000000

Definition at line 300 of file ns83820.c.

#define RFCR_APM   0x08000000

Definition at line 298 of file ns83820.c.

#define RFCR_MHEN   0x00200000

Definition at line 305 of file ns83820.c.

#define RFCR_RFEN   0x80000000

Definition at line 294 of file ns83820.c.

#define RFCR_UHEN   0x00100000

Definition at line 306 of file ns83820.c.

#define RFCR_ULM   0x00080000

Definition at line 307 of file ns83820.c.

#define RFDR   0x4c

Definition at line 342 of file ns83820.c.

#define RX_BUF_SIZE   1500 /* 8192 */

Definition at line 137 of file ns83820.c.

#define RXCFG   0x38

Definition at line 337 of file ns83820.c.

#define RXCFG_AEP   0x80000000

Definition at line 284 of file ns83820.c.

#define RXCFG_AIRL   0x04000000

Definition at line 289 of file ns83820.c.

#define RXCFG_ALP   0x08000000

Definition at line 288 of file ns83820.c.

#define RXCFG_ARP   0x40000000

Definition at line 285 of file ns83820.c.

#define RXCFG_DRTH   0x0000003e

Definition at line 291 of file ns83820.c.

#define RXCFG_DRTH0   0x00000002

Definition at line 292 of file ns83820.c.

#define RXCFG_MXDMA512   0x00700000

Definition at line 290 of file ns83820.c.

#define RXCFG_RX_FD   0x10000000

Definition at line 287 of file ns83820.c.

#define RXCFG_STRIPCRC   0x20000000

Definition at line 286 of file ns83820.c.

#define RXDP   0x30

Definition at line 335 of file ns83820.c.

#define RXDP_HI   0x34

Definition at line 336 of file ns83820.c.

#define SPDSTS_POLARITY   (CFG_SPDSTS1 | CFG_SPDSTS0 | CFG_DUPSTS | (lnksts ? CFG_LNKSTS : 0))

Definition at line 268 of file ns83820.c.

#define SRR   0x58

Definition at line 344 of file ns83820.c.

#define start_tx_okay (   dev)    (((NR_TX_DESC-2 + dev->tx_done_idx - dev->tx_free_idx) % NR_TX_DESC) > MIN_TX_DESC_FREE)

Definition at line 489 of file ns83820.c.

#define TANAR   0xe8

Definition at line 353 of file ns83820.c.

#define TANAR_FULL_DUP   0x00000020

Definition at line 367 of file ns83820.c.

#define TANAR_HALF_DUP   0x00000040

Definition at line 366 of file ns83820.c.

#define TANAR_PS1   0x00000080

Definition at line 365 of file ns83820.c.

#define TANAR_PS2   0x00000100

Definition at line 364 of file ns83820.c.

#define TANER   0xf0

Definition at line 355 of file ns83820.c.

#define TANLPAR   0xec

Definition at line 354 of file ns83820.c.

#define TBICR   0xe0

Definition at line 351 of file ns83820.c.

#define TBICR_MR_AN_ENABLE   0x00001000

Definition at line 358 of file ns83820.c.

#define TBICR_MR_RESTART_AN   0x00000200

Definition at line 359 of file ns83820.c.

#define TBISR   0xe4

Definition at line 352 of file ns83820.c.

#define TBISR_MR_AN_COMPLETE   0x00000004

Definition at line 362 of file ns83820.c.

#define TBISR_MR_LINK_STATUS   0x00000020

Definition at line 361 of file ns83820.c.

#define TESR   0xf4

Definition at line 356 of file ns83820.c.

#define TXCFG   0x28

Definition at line 333 of file ns83820.c.

#define TXCFG_ATP   0x10000000

Definition at line 217 of file ns83820.c.

#define TXCFG_BRST_DIS   0x00080000

Definition at line 219 of file ns83820.c.

#define TXCFG_CSI   0x80000000

Definition at line 214 of file ns83820.c.

#define TXCFG_ECRETRY   0x00800000

Definition at line 218 of file ns83820.c.

#define TXCFG_HBI   0x40000000

Definition at line 215 of file ns83820.c.

#define TXCFG_MLB   0x20000000

Definition at line 216 of file ns83820.c.

#define TXCFG_MXDMA1024   0x00000000

Definition at line 220 of file ns83820.c.

#define TXCFG_MXDMA128   0x00500000

Definition at line 223 of file ns83820.c.

#define TXCFG_MXDMA16   0x00200000

Definition at line 226 of file ns83820.c.

#define TXCFG_MXDMA256   0x00600000

Definition at line 222 of file ns83820.c.

#define TXCFG_MXDMA32   0x00300000

Definition at line 225 of file ns83820.c.

#define TXCFG_MXDMA512   0x00700000

Definition at line 221 of file ns83820.c.

#define TXCFG_MXDMA64   0x00400000

Definition at line 224 of file ns83820.c.

#define TXCFG_MXDMA8   0x00100000

Definition at line 227 of file ns83820.c.

#define TXDP   0x20

Definition at line 331 of file ns83820.c.

#define TXDP_HI   0x24

Definition at line 332 of file ns83820.c.

#define VDR   0xc4

Definition at line 348 of file ns83820.c.

#define VERSION   "0.23"

Definition at line 1 of file ns83820.c.

#define VRCR   0xbc

Definition at line 346 of file ns83820.c.

#define VRCR_DUTF   0x00000008

Definition at line 313 of file ns83820.c.

#define VRCR_DVTF   0x00000004

Definition at line 314 of file ns83820.c.

#define VRCR_INIT_VALUE   (VRCR_IPEN|VRCR_VTDEN)
#define VRCR_IPEN   0x00000010

Definition at line 312 of file ns83820.c.

#define VRCR_RIPE   0x00000020

Definition at line 311 of file ns83820.c.

#define VRCR_RTCPE   0x00000040

Definition at line 310 of file ns83820.c.

#define VRCR_RUDPE   0x00000080

Definition at line 309 of file ns83820.c.

#define VRCR_VTDEN   0x00000001

Definition at line 316 of file ns83820.c.

#define VRCR_VTREN   0x00000002

Definition at line 315 of file ns83820.c.

#define VTCR   0xc0

Definition at line 347 of file ns83820.c.

#define VTCR_GCHK   0x00000004

Definition at line 319 of file ns83820.c.

#define VTCR_INIT_VALUE   VTCR_PPCHK
#define VTCR_PPCHK   0x00000008

Definition at line 318 of file ns83820.c.

#define VTCR_VGTI   0x00000001

Definition at line 321 of file ns83820.c.

#define VTCR_VPPTI   0x00000002

Definition at line 320 of file ns83820.c.

#define WCSR   0x40

Definition at line 339 of file ns83820.c.

Function Documentation

MODULE_AUTHOR ( "Benjamin LaHaise <[email protected]>"  )
MODULE_DESCRIPTION ( "National Semiconductor DP83820 10/100/1000 driver )
MODULE_DEVICE_TABLE ( pci  ,
ns83820_pci_tbl   
)
module_exit ( ns83820_exit  )
module_init ( ns83820_init  )
MODULE_LICENSE ( "GPL"  )
module_param ( lnksts  ,
int  ,
 
)
module_param ( ihr  ,
int  ,
 
)
module_param ( reset_phy  ,
int  ,
 
)
MODULE_PARM_DESC ( lnksts  ,
"Polarity of LNKSTS bit  
)
MODULE_PARM_DESC ( ihr  ,
"Time in 100 us increments to delay interrupts (range 0-127)"   
)
MODULE_PARM_DESC ( reset_phy  ,
"Set to 1 to reset the PHY on startup"   
)