Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
ks8851_mll.c File Reference
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/ethtool.h>
#include <linux/cache.h>
#include <linux/crc32.h>
#include <linux/mii.h>
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/ks8851_mll.h>

Go to the source code of this file.

Data Structures

union  ks_tx_hdr
 
struct  type_frame_head
 
struct  ks_net
 

Macros

#define pr_fmt(fmt)   KBUILD_MODNAME ": " fmt
 
#define DRV_NAME   "ks8851_mll"
 
#define MAX_RECV_FRAMES   255
 
#define MAX_BUF_SIZE   2048
 
#define TX_BUF_SIZE   2000
 
#define RX_BUF_SIZE   2000
 
#define KS_CCR   0x08
 
#define CCR_EEPROM   (1 << 9)
 
#define CCR_SPI   (1 << 8)
 
#define CCR_8BIT   (1 << 7)
 
#define CCR_16BIT   (1 << 6)
 
#define CCR_32BIT   (1 << 5)
 
#define CCR_SHARED   (1 << 4)
 
#define CCR_32PIN   (1 << 0)
 
#define KS_MARL   0x10
 
#define KS_MARM   0x12
 
#define KS_MARH   0x14
 
#define KS_OBCR   0x20
 
#define OBCR_ODS_16MA   (1 << 6)
 
#define KS_EEPCR   0x22
 
#define EEPCR_EESA   (1 << 4)
 
#define EEPCR_EESB   (1 << 3)
 
#define EEPCR_EEDO   (1 << 2)
 
#define EEPCR_EESCK   (1 << 1)
 
#define EEPCR_EECS   (1 << 0)
 
#define KS_MBIR   0x24
 
#define MBIR_TXMBF   (1 << 12)
 
#define MBIR_TXMBFA   (1 << 11)
 
#define MBIR_RXMBF   (1 << 4)
 
#define MBIR_RXMBFA   (1 << 3)
 
#define KS_GRR   0x26
 
#define GRR_QMU   (1 << 1)
 
#define GRR_GSR   (1 << 0)
 
#define KS_WFCR   0x2A
 
#define WFCR_MPRXE   (1 << 7)
 
#define WFCR_WF3E   (1 << 3)
 
#define WFCR_WF2E   (1 << 2)
 
#define WFCR_WF1E   (1 << 1)
 
#define WFCR_WF0E   (1 << 0)
 
#define KS_WF0CRC0   0x30
 
#define KS_WF0CRC1   0x32
 
#define KS_WF0BM0   0x34
 
#define KS_WF0BM1   0x36
 
#define KS_WF0BM2   0x38
 
#define KS_WF0BM3   0x3A
 
#define KS_WF1CRC0   0x40
 
#define KS_WF1CRC1   0x42
 
#define KS_WF1BM0   0x44
 
#define KS_WF1BM1   0x46
 
#define KS_WF1BM2   0x48
 
#define KS_WF1BM3   0x4A
 
#define KS_WF2CRC0   0x50
 
#define KS_WF2CRC1   0x52
 
#define KS_WF2BM0   0x54
 
#define KS_WF2BM1   0x56
 
#define KS_WF2BM2   0x58
 
#define KS_WF2BM3   0x5A
 
#define KS_WF3CRC0   0x60
 
#define KS_WF3CRC1   0x62
 
#define KS_WF3BM0   0x64
 
#define KS_WF3BM1   0x66
 
#define KS_WF3BM2   0x68
 
#define KS_WF3BM3   0x6A
 
#define KS_TXCR   0x70
 
#define TXCR_TCGICMP   (1 << 8)
 
#define TXCR_TCGUDP   (1 << 7)
 
#define TXCR_TCGTCP   (1 << 6)
 
#define TXCR_TCGIP   (1 << 5)
 
#define TXCR_FTXQ   (1 << 4)
 
#define TXCR_TXFCE   (1 << 3)
 
#define TXCR_TXPE   (1 << 2)
 
#define TXCR_TXCRC   (1 << 1)
 
#define TXCR_TXE   (1 << 0)
 
#define KS_TXSR   0x72
 
#define TXSR_TXLC   (1 << 13)
 
#define TXSR_TXMC   (1 << 12)
 
#define TXSR_TXFID_MASK   (0x3f << 0)
 
#define TXSR_TXFID_SHIFT   (0)
 
#define TXSR_TXFID_GET(_v)   (((_v) >> 0) & 0x3f)
 
#define KS_RXCR1   0x74
 
#define RXCR1_FRXQ   (1 << 15)
 
#define RXCR1_RXUDPFCC   (1 << 14)
 
#define RXCR1_RXTCPFCC   (1 << 13)
 
#define RXCR1_RXIPFCC   (1 << 12)
 
#define RXCR1_RXPAFMA   (1 << 11)
 
#define RXCR1_RXFCE   (1 << 10)
 
#define RXCR1_RXEFE   (1 << 9)
 
#define RXCR1_RXMAFMA   (1 << 8)
 
#define RXCR1_RXBE   (1 << 7)
 
#define RXCR1_RXME   (1 << 6)
 
#define RXCR1_RXUE   (1 << 5)
 
#define RXCR1_RXAE   (1 << 4)
 
#define RXCR1_RXINVF   (1 << 1)
 
#define RXCR1_RXE   (1 << 0)
 
#define RXCR1_FILTER_MASK
 
#define KS_RXCR2   0x76
 
#define RXCR2_SRDBL_MASK   (0x7 << 5)
 
#define RXCR2_SRDBL_SHIFT   (5)
 
#define RXCR2_SRDBL_4B   (0x0 << 5)
 
#define RXCR2_SRDBL_8B   (0x1 << 5)
 
#define RXCR2_SRDBL_16B   (0x2 << 5)
 
#define RXCR2_SRDBL_32B   (0x3 << 5)
 
#define RXCR2_IUFFP   (1 << 4)
 
#define RXCR2_RXIUFCEZ   (1 << 3)
 
#define RXCR2_UDPLFE   (1 << 2)
 
#define RXCR2_RXICMPFCC   (1 << 1)
 
#define RXCR2_RXSAF   (1 << 0)
 
#define KS_TXMIR   0x78
 
#define KS_RXFHSR   0x7C
 
#define RXFSHR_RXFV   (1 << 15)
 
#define RXFSHR_RXICMPFCS   (1 << 13)
 
#define RXFSHR_RXIPFCS   (1 << 12)
 
#define RXFSHR_RXTCPFCS   (1 << 11)
 
#define RXFSHR_RXUDPFCS   (1 << 10)
 
#define RXFSHR_RXBF   (1 << 7)
 
#define RXFSHR_RXMF   (1 << 6)
 
#define RXFSHR_RXUF   (1 << 5)
 
#define RXFSHR_RXMR   (1 << 4)
 
#define RXFSHR_RXFT   (1 << 3)
 
#define RXFSHR_RXFTL   (1 << 2)
 
#define RXFSHR_RXRF   (1 << 1)
 
#define RXFSHR_RXCE   (1 << 0)
 
#define RXFSHR_ERR
 
#define KS_RXFHBCR   0x7E
 
#define RXFHBCR_CNT_MASK   0x0FFF
 
#define KS_TXQCR   0x80
 
#define TXQCR_AETFE   (1 << 2)
 
#define TXQCR_TXQMAM   (1 << 1)
 
#define TXQCR_METFE   (1 << 0)
 
#define KS_RXQCR   0x82
 
#define RXQCR_RXDTTS   (1 << 12)
 
#define RXQCR_RXDBCTS   (1 << 11)
 
#define RXQCR_RXFCTS   (1 << 10)
 
#define RXQCR_RXIPHTOE   (1 << 9)
 
#define RXQCR_RXDTTE   (1 << 7)
 
#define RXQCR_RXDBCTE   (1 << 6)
 
#define RXQCR_RXFCTE   (1 << 5)
 
#define RXQCR_ADRFE   (1 << 4)
 
#define RXQCR_SDA   (1 << 3)
 
#define RXQCR_RRXEF   (1 << 0)
 
#define RXQCR_CMD_CNTL   (RXQCR_RXFCTE|RXQCR_ADRFE)
 
#define KS_TXFDPR   0x84
 
#define TXFDPR_TXFPAI   (1 << 14)
 
#define TXFDPR_TXFP_MASK   (0x7ff << 0)
 
#define TXFDPR_TXFP_SHIFT   (0)
 
#define KS_RXFDPR   0x86
 
#define RXFDPR_RXFPAI   (1 << 14)
 
#define KS_RXDTTR   0x8C
 
#define KS_RXDBCTR   0x8E
 
#define KS_IER   0x90
 
#define KS_ISR   0x92
 
#define IRQ_LCI   (1 << 15)
 
#define IRQ_TXI   (1 << 14)
 
#define IRQ_RXI   (1 << 13)
 
#define IRQ_RXOI   (1 << 11)
 
#define IRQ_TXPSI   (1 << 9)
 
#define IRQ_RXPSI   (1 << 8)
 
#define IRQ_TXSAI   (1 << 6)
 
#define IRQ_RXWFDI   (1 << 5)
 
#define IRQ_RXMPDI   (1 << 4)
 
#define IRQ_LDI   (1 << 3)
 
#define IRQ_EDI   (1 << 2)
 
#define IRQ_SPIBEI   (1 << 1)
 
#define IRQ_DEDI   (1 << 0)
 
#define KS_RXFCTR   0x9C
 
#define RXFCTR_THRESHOLD_MASK   0x00FF
 
#define KS_RXFC   0x9D
 
#define RXFCTR_RXFC_MASK   (0xff << 8)
 
#define RXFCTR_RXFC_SHIFT   (8)
 
#define RXFCTR_RXFC_GET(_v)   (((_v) >> 8) & 0xff)
 
#define RXFCTR_RXFCT_MASK   (0xff << 0)
 
#define RXFCTR_RXFCT_SHIFT   (0)
 
#define KS_TXNTFSR   0x9E
 
#define KS_MAHTR0   0xA0
 
#define KS_MAHTR1   0xA2
 
#define KS_MAHTR2   0xA4
 
#define KS_MAHTR3   0xA6
 
#define KS_FCLWR   0xB0
 
#define KS_FCHWR   0xB2
 
#define KS_FCOWR   0xB4
 
#define KS_CIDER   0xC0
 
#define CIDER_ID   0x8870
 
#define CIDER_REV_MASK   (0x7 << 1)
 
#define CIDER_REV_SHIFT   (1)
 
#define CIDER_REV_GET(_v)   (((_v) >> 1) & 0x7)
 
#define KS_CGCR   0xC6
 
#define KS_IACR   0xC8
 
#define IACR_RDEN   (1 << 12)
 
#define IACR_TSEL_MASK   (0x3 << 10)
 
#define IACR_TSEL_SHIFT   (10)
 
#define IACR_TSEL_MIB   (0x3 << 10)
 
#define IACR_ADDR_MASK   (0x1f << 0)
 
#define IACR_ADDR_SHIFT   (0)
 
#define KS_IADLR   0xD0
 
#define KS_IAHDR   0xD2
 
#define KS_PMECR   0xD4
 
#define PMECR_PME_DELAY   (1 << 14)
 
#define PMECR_PME_POL   (1 << 12)
 
#define PMECR_WOL_WAKEUP   (1 << 11)
 
#define PMECR_WOL_MAGICPKT   (1 << 10)
 
#define PMECR_WOL_LINKUP   (1 << 9)
 
#define PMECR_WOL_ENERGY   (1 << 8)
 
#define PMECR_AUTO_WAKE_EN   (1 << 7)
 
#define PMECR_WAKEUP_NORMAL   (1 << 6)
 
#define PMECR_WKEVT_MASK   (0xf << 2)
 
#define PMECR_WKEVT_SHIFT   (2)
 
#define PMECR_WKEVT_GET(_v)   (((_v) >> 2) & 0xf)
 
#define PMECR_WKEVT_ENERGY   (0x1 << 2)
 
#define PMECR_WKEVT_LINK   (0x2 << 2)
 
#define PMECR_WKEVT_MAGICPKT   (0x4 << 2)
 
#define PMECR_WKEVT_FRAME   (0x8 << 2)
 
#define PMECR_PM_MASK   (0x3 << 0)
 
#define PMECR_PM_SHIFT   (0)
 
#define PMECR_PM_NORMAL   (0x0 << 0)
 
#define PMECR_PM_ENERGY   (0x1 << 0)
 
#define PMECR_PM_SOFTDOWN   (0x2 << 0)
 
#define PMECR_PM_POWERSAVE   (0x3 << 0)
 
#define KS_P1MBCR   0xE4
 
#define P1MBCR_FORCE_FDX   (1 << 8)
 
#define KS_P1MBSR   0xE6
 
#define P1MBSR_AN_COMPLETE   (1 << 5)
 
#define P1MBSR_AN_CAPABLE   (1 << 3)
 
#define P1MBSR_LINK_UP   (1 << 2)
 
#define KS_PHY1ILR   0xE8
 
#define KS_PHY1IHR   0xEA
 
#define KS_P1ANAR   0xEC
 
#define KS_P1ANLPR   0xEE
 
#define KS_P1SCLMD   0xF4
 
#define P1SCLMD_LEDOFF   (1 << 15)
 
#define P1SCLMD_TXIDS   (1 << 14)
 
#define P1SCLMD_RESTARTAN   (1 << 13)
 
#define P1SCLMD_DISAUTOMDIX   (1 << 10)
 
#define P1SCLMD_FORCEMDIX   (1 << 9)
 
#define P1SCLMD_AUTONEGEN   (1 << 7)
 
#define P1SCLMD_FORCE100   (1 << 6)
 
#define P1SCLMD_FORCEFDX   (1 << 5)
 
#define P1SCLMD_ADV_FLOW   (1 << 4)
 
#define P1SCLMD_ADV_100BT_FDX   (1 << 3)
 
#define P1SCLMD_ADV_100BT_HDX   (1 << 2)
 
#define P1SCLMD_ADV_10BT_FDX   (1 << 1)
 
#define P1SCLMD_ADV_10BT_HDX   (1 << 0)
 
#define KS_P1CR   0xF6
 
#define P1CR_HP_MDIX   (1 << 15)
 
#define P1CR_REV_POL   (1 << 13)
 
#define P1CR_OP_100M   (1 << 10)
 
#define P1CR_OP_FDX   (1 << 9)
 
#define P1CR_OP_MDI   (1 << 7)
 
#define P1CR_AN_DONE   (1 << 6)
 
#define P1CR_LINK_GOOD   (1 << 5)
 
#define P1CR_PNTR_FLOW   (1 << 4)
 
#define P1CR_PNTR_100BT_FDX   (1 << 3)
 
#define P1CR_PNTR_100BT_HDX   (1 << 2)
 
#define P1CR_PNTR_10BT_FDX   (1 << 1)
 
#define P1CR_PNTR_10BT_HDX   (1 << 0)
 
#define TXFR_TXIC   (1 << 15)
 
#define TXFR_TXFID_MASK   (0x3f << 0)
 
#define TXFR_TXFID_SHIFT   (0)
 
#define KS_P1SR   0xF8
 
#define P1SR_HP_MDIX   (1 << 15)
 
#define P1SR_REV_POL   (1 << 13)
 
#define P1SR_OP_100M   (1 << 10)
 
#define P1SR_OP_FDX   (1 << 9)
 
#define P1SR_OP_MDI   (1 << 7)
 
#define P1SR_AN_DONE   (1 << 6)
 
#define P1SR_LINK_GOOD   (1 << 5)
 
#define P1SR_PNTR_FLOW   (1 << 4)
 
#define P1SR_PNTR_100BT_FDX   (1 << 3)
 
#define P1SR_PNTR_100BT_HDX   (1 << 2)
 
#define P1SR_PNTR_10BT_FDX   (1 << 1)
 
#define P1SR_PNTR_10BT_HDX   (1 << 0)
 
#define ENUM_BUS_NONE   0
 
#define ENUM_BUS_8BIT   1
 
#define ENUM_BUS_16BIT   2
 
#define ENUM_BUS_32BIT   3
 
#define MAX_MCAST_LST   32
 
#define HW_MCAST_SIZE   8
 
#define BE3   0x8000 /* Byte Enable 3 */
 
#define BE2   0x4000 /* Byte Enable 2 */
 
#define BE1   0x2000 /* Byte Enable 1 */
 
#define BE0   0x1000 /* Byte Enable 0 */
 
#define KS_INT_FLAGS   (IRQF_DISABLED|IRQF_TRIGGER_LOW)
 
#define MHEADER_SIZE   (sizeof(struct type_frame_head) * MAX_RECV_FRAMES)
 

Functions

void ks_enable_qmu (struct ks_net *ks)
 
 module_platform_driver (ks8851_platform_driver)
 
 MODULE_DESCRIPTION ("KS8851 MLL Network driver")
 
 MODULE_AUTHOR ("David Choi <[email protected]>")
 
 MODULE_LICENSE ("GPL")
 
 module_param_named (message, msg_enable, int, 0)
 
 MODULE_PARM_DESC (message,"Message verbosity level (0=none, 31=all)")
 

Macro Definition Documentation

#define BE0   0x1000 /* Byte Enable 0 */

Definition at line 465 of file ks8851_mll.c.

#define BE1   0x2000 /* Byte Enable 1 */

Definition at line 464 of file ks8851_mll.c.

#define BE2   0x4000 /* Byte Enable 2 */

Definition at line 463 of file ks8851_mll.c.

#define BE3   0x8000 /* Byte Enable 3 */

Definition at line 462 of file ks8851_mll.c.

#define CCR_16BIT   (1 << 6)

Definition at line 51 of file ks8851_mll.c.

#define CCR_32BIT   (1 << 5)

Definition at line 52 of file ks8851_mll.c.

#define CCR_32PIN   (1 << 0)

Definition at line 54 of file ks8851_mll.c.

#define CCR_8BIT   (1 << 7)

Definition at line 50 of file ks8851_mll.c.

#define CCR_EEPROM   (1 << 9)

Definition at line 48 of file ks8851_mll.c.

#define CCR_SHARED   (1 << 4)

Definition at line 53 of file ks8851_mll.c.

#define CCR_SPI   (1 << 8)

Definition at line 49 of file ks8851_mll.c.

#define CIDER_ID   0x8870

Definition at line 257 of file ks8851_mll.c.

#define CIDER_REV_GET (   _v)    (((_v) >> 1) & 0x7)

Definition at line 260 of file ks8851_mll.c.

#define CIDER_REV_MASK   (0x7 << 1)

Definition at line 258 of file ks8851_mll.c.

#define CIDER_REV_SHIFT   (1)

Definition at line 259 of file ks8851_mll.c.

#define DRV_NAME   "ks8851_mll"

Definition at line 39 of file ks8851_mll.c.

#define EEPCR_EECS   (1 << 0)

Definition at line 69 of file ks8851_mll.c.

#define EEPCR_EEDO   (1 << 2)

Definition at line 67 of file ks8851_mll.c.

#define EEPCR_EESA   (1 << 4)

Definition at line 65 of file ks8851_mll.c.

#define EEPCR_EESB   (1 << 3)

Definition at line 66 of file ks8851_mll.c.

#define EEPCR_EESCK   (1 << 1)

Definition at line 68 of file ks8851_mll.c.

#define ENUM_BUS_16BIT   2

Definition at line 362 of file ks8851_mll.c.

#define ENUM_BUS_32BIT   3

Definition at line 363 of file ks8851_mll.c.

#define ENUM_BUS_8BIT   1

Definition at line 361 of file ks8851_mll.c.

#define ENUM_BUS_NONE   0

Definition at line 360 of file ks8851_mll.c.

#define GRR_GSR   (1 << 0)

Definition at line 79 of file ks8851_mll.c.

#define GRR_QMU   (1 << 1)

Definition at line 78 of file ks8851_mll.c.

#define HW_MCAST_SIZE   8

Definition at line 366 of file ks8851_mll.c.

#define IACR_ADDR_MASK   (0x1f << 0)

Definition at line 268 of file ks8851_mll.c.

#define IACR_ADDR_SHIFT   (0)

Definition at line 269 of file ks8851_mll.c.

#define IACR_RDEN   (1 << 12)

Definition at line 264 of file ks8851_mll.c.

#define IACR_TSEL_MASK   (0x3 << 10)

Definition at line 265 of file ks8851_mll.c.

#define IACR_TSEL_MIB   (0x3 << 10)

Definition at line 267 of file ks8851_mll.c.

#define IACR_TSEL_SHIFT   (10)

Definition at line 266 of file ks8851_mll.c.

#define IRQ_DEDI   (1 << 0)

Definition at line 233 of file ks8851_mll.c.

#define IRQ_EDI   (1 << 2)

Definition at line 231 of file ks8851_mll.c.

#define IRQ_LCI   (1 << 15)

Definition at line 221 of file ks8851_mll.c.

#define IRQ_LDI   (1 << 3)

Definition at line 230 of file ks8851_mll.c.

#define IRQ_RXI   (1 << 13)

Definition at line 223 of file ks8851_mll.c.

#define IRQ_RXMPDI   (1 << 4)

Definition at line 229 of file ks8851_mll.c.

#define IRQ_RXOI   (1 << 11)

Definition at line 224 of file ks8851_mll.c.

#define IRQ_RXPSI   (1 << 8)

Definition at line 226 of file ks8851_mll.c.

#define IRQ_RXWFDI   (1 << 5)

Definition at line 228 of file ks8851_mll.c.

#define IRQ_SPIBEI   (1 << 1)

Definition at line 232 of file ks8851_mll.c.

#define IRQ_TXI   (1 << 14)

Definition at line 222 of file ks8851_mll.c.

#define IRQ_TXPSI   (1 << 9)

Definition at line 225 of file ks8851_mll.c.

#define IRQ_TXSAI   (1 << 6)

Definition at line 227 of file ks8851_mll.c.

#define KS_CCR   0x08

Definition at line 47 of file ks8851_mll.c.

#define KS_CGCR   0xC6

Definition at line 262 of file ks8851_mll.c.

#define KS_CIDER   0xC0

Definition at line 256 of file ks8851_mll.c.

#define KS_EEPCR   0x22

Definition at line 64 of file ks8851_mll.c.

#define KS_FCHWR   0xB2

Definition at line 253 of file ks8851_mll.c.

#define KS_FCLWR   0xB0

Definition at line 252 of file ks8851_mll.c.

#define KS_FCOWR   0xB4

Definition at line 254 of file ks8851_mll.c.

#define KS_GRR   0x26

Definition at line 77 of file ks8851_mll.c.

#define KS_IACR   0xC8

Definition at line 263 of file ks8851_mll.c.

#define KS_IADLR   0xD0

Definition at line 271 of file ks8851_mll.c.

#define KS_IAHDR   0xD2

Definition at line 272 of file ks8851_mll.c.

#define KS_IER   0x90

Definition at line 219 of file ks8851_mll.c.

#define KS_INT_FLAGS   (IRQF_DISABLED|IRQF_TRIGGER_LOW)
#define KS_ISR   0x92

Definition at line 220 of file ks8851_mll.c.

#define KS_MAHTR0   0xA0

Definition at line 247 of file ks8851_mll.c.

#define KS_MAHTR1   0xA2

Definition at line 248 of file ks8851_mll.c.

#define KS_MAHTR2   0xA4

Definition at line 249 of file ks8851_mll.c.

#define KS_MAHTR3   0xA6

Definition at line 250 of file ks8851_mll.c.

#define KS_MARH   0x14

Definition at line 59 of file ks8851_mll.c.

#define KS_MARL   0x10

Definition at line 57 of file ks8851_mll.c.

#define KS_MARM   0x12

Definition at line 58 of file ks8851_mll.c.

#define KS_MBIR   0x24

Definition at line 71 of file ks8851_mll.c.

#define KS_OBCR   0x20

Definition at line 61 of file ks8851_mll.c.

#define KS_P1ANAR   0xEC

Definition at line 308 of file ks8851_mll.c.

#define KS_P1ANLPR   0xEE

Definition at line 309 of file ks8851_mll.c.

#define KS_P1CR   0xF6

Definition at line 326 of file ks8851_mll.c.

#define KS_P1MBCR   0xE4

Definition at line 298 of file ks8851_mll.c.

#define KS_P1MBSR   0xE6

Definition at line 301 of file ks8851_mll.c.

#define KS_P1SCLMD   0xF4

Definition at line 311 of file ks8851_mll.c.

#define KS_P1SR   0xF8

Definition at line 346 of file ks8851_mll.c.

#define KS_PHY1IHR   0xEA

Definition at line 307 of file ks8851_mll.c.

#define KS_PHY1ILR   0xE8

Definition at line 306 of file ks8851_mll.c.

#define KS_PMECR   0xD4

Definition at line 274 of file ks8851_mll.c.

#define KS_RXCR1   0x74

Definition at line 135 of file ks8851_mll.c.

#define KS_RXCR2   0x76

Definition at line 153 of file ks8851_mll.c.

#define KS_RXDBCTR   0x8E

Definition at line 217 of file ks8851_mll.c.

#define KS_RXDTTR   0x8C

Definition at line 216 of file ks8851_mll.c.

#define KS_RXFC   0x9D

Definition at line 238 of file ks8851_mll.c.

#define KS_RXFCTR   0x9C

Definition at line 235 of file ks8851_mll.c.

#define KS_RXFDPR   0x86

Definition at line 213 of file ks8851_mll.c.

#define KS_RXFHBCR   0x7E

Definition at line 187 of file ks8851_mll.c.

#define KS_RXFHSR   0x7C

Definition at line 169 of file ks8851_mll.c.

#define KS_RXQCR   0x82

Definition at line 195 of file ks8851_mll.c.

#define KS_TXCR   0x70

Definition at line 116 of file ks8851_mll.c.

#define KS_TXFDPR   0x84

Definition at line 208 of file ks8851_mll.c.

#define KS_TXMIR   0x78

Definition at line 167 of file ks8851_mll.c.

#define KS_TXNTFSR   0x9E

Definition at line 245 of file ks8851_mll.c.

#define KS_TXQCR   0x80

Definition at line 190 of file ks8851_mll.c.

#define KS_TXSR   0x72

Definition at line 127 of file ks8851_mll.c.

#define KS_WF0BM0   0x34

Definition at line 90 of file ks8851_mll.c.

#define KS_WF0BM1   0x36

Definition at line 91 of file ks8851_mll.c.

#define KS_WF0BM2   0x38

Definition at line 92 of file ks8851_mll.c.

#define KS_WF0BM3   0x3A

Definition at line 93 of file ks8851_mll.c.

#define KS_WF0CRC0   0x30

Definition at line 88 of file ks8851_mll.c.

#define KS_WF0CRC1   0x32

Definition at line 89 of file ks8851_mll.c.

#define KS_WF1BM0   0x44

Definition at line 97 of file ks8851_mll.c.

#define KS_WF1BM1   0x46

Definition at line 98 of file ks8851_mll.c.

#define KS_WF1BM2   0x48

Definition at line 99 of file ks8851_mll.c.

#define KS_WF1BM3   0x4A

Definition at line 100 of file ks8851_mll.c.

#define KS_WF1CRC0   0x40

Definition at line 95 of file ks8851_mll.c.

#define KS_WF1CRC1   0x42

Definition at line 96 of file ks8851_mll.c.

#define KS_WF2BM0   0x54

Definition at line 104 of file ks8851_mll.c.

#define KS_WF2BM1   0x56

Definition at line 105 of file ks8851_mll.c.

#define KS_WF2BM2   0x58

Definition at line 106 of file ks8851_mll.c.

#define KS_WF2BM3   0x5A

Definition at line 107 of file ks8851_mll.c.

#define KS_WF2CRC0   0x50

Definition at line 102 of file ks8851_mll.c.

#define KS_WF2CRC1   0x52

Definition at line 103 of file ks8851_mll.c.

#define KS_WF3BM0   0x64

Definition at line 111 of file ks8851_mll.c.

#define KS_WF3BM1   0x66

Definition at line 112 of file ks8851_mll.c.

#define KS_WF3BM2   0x68

Definition at line 113 of file ks8851_mll.c.

#define KS_WF3BM3   0x6A

Definition at line 114 of file ks8851_mll.c.

#define KS_WF3CRC0   0x60

Definition at line 109 of file ks8851_mll.c.

#define KS_WF3CRC1   0x62

Definition at line 110 of file ks8851_mll.c.

#define KS_WFCR   0x2A

Definition at line 81 of file ks8851_mll.c.

#define MAX_BUF_SIZE   2048

Definition at line 43 of file ks8851_mll.c.

#define MAX_MCAST_LST   32

Definition at line 365 of file ks8851_mll.c.

#define MAX_RECV_FRAMES   255

Definition at line 42 of file ks8851_mll.c.

#define MBIR_RXMBF   (1 << 4)

Definition at line 74 of file ks8851_mll.c.

#define MBIR_RXMBFA   (1 << 3)

Definition at line 75 of file ks8851_mll.c.

#define MBIR_TXMBF   (1 << 12)

Definition at line 72 of file ks8851_mll.c.

#define MBIR_TXMBFA   (1 << 11)

Definition at line 73 of file ks8851_mll.c.

#define MHEADER_SIZE   (sizeof(struct type_frame_head) * MAX_RECV_FRAMES)
#define OBCR_ODS_16MA   (1 << 6)

Definition at line 62 of file ks8851_mll.c.

#define P1CR_AN_DONE   (1 << 6)

Definition at line 332 of file ks8851_mll.c.

#define P1CR_HP_MDIX   (1 << 15)

Definition at line 327 of file ks8851_mll.c.

#define P1CR_LINK_GOOD   (1 << 5)

Definition at line 333 of file ks8851_mll.c.

#define P1CR_OP_100M   (1 << 10)

Definition at line 329 of file ks8851_mll.c.

#define P1CR_OP_FDX   (1 << 9)

Definition at line 330 of file ks8851_mll.c.

#define P1CR_OP_MDI   (1 << 7)

Definition at line 331 of file ks8851_mll.c.

#define P1CR_PNTR_100BT_FDX   (1 << 3)

Definition at line 335 of file ks8851_mll.c.

#define P1CR_PNTR_100BT_HDX   (1 << 2)

Definition at line 336 of file ks8851_mll.c.

#define P1CR_PNTR_10BT_FDX   (1 << 1)

Definition at line 337 of file ks8851_mll.c.

#define P1CR_PNTR_10BT_HDX   (1 << 0)

Definition at line 338 of file ks8851_mll.c.

#define P1CR_PNTR_FLOW   (1 << 4)

Definition at line 334 of file ks8851_mll.c.

#define P1CR_REV_POL   (1 << 13)

Definition at line 328 of file ks8851_mll.c.

#define P1MBCR_FORCE_FDX   (1 << 8)

Definition at line 299 of file ks8851_mll.c.

#define P1MBSR_AN_CAPABLE   (1 << 3)

Definition at line 303 of file ks8851_mll.c.

#define P1MBSR_AN_COMPLETE   (1 << 5)

Definition at line 302 of file ks8851_mll.c.

#define P1MBSR_LINK_UP   (1 << 2)

Definition at line 304 of file ks8851_mll.c.

#define P1SCLMD_ADV_100BT_FDX   (1 << 3)

Definition at line 321 of file ks8851_mll.c.

#define P1SCLMD_ADV_100BT_HDX   (1 << 2)

Definition at line 322 of file ks8851_mll.c.

#define P1SCLMD_ADV_10BT_FDX   (1 << 1)

Definition at line 323 of file ks8851_mll.c.

#define P1SCLMD_ADV_10BT_HDX   (1 << 0)

Definition at line 324 of file ks8851_mll.c.

#define P1SCLMD_ADV_FLOW   (1 << 4)

Definition at line 320 of file ks8851_mll.c.

#define P1SCLMD_AUTONEGEN   (1 << 7)

Definition at line 317 of file ks8851_mll.c.

#define P1SCLMD_DISAUTOMDIX   (1 << 10)

Definition at line 315 of file ks8851_mll.c.

#define P1SCLMD_FORCE100   (1 << 6)

Definition at line 318 of file ks8851_mll.c.

#define P1SCLMD_FORCEFDX   (1 << 5)

Definition at line 319 of file ks8851_mll.c.

#define P1SCLMD_FORCEMDIX   (1 << 9)

Definition at line 316 of file ks8851_mll.c.

#define P1SCLMD_LEDOFF   (1 << 15)

Definition at line 312 of file ks8851_mll.c.

#define P1SCLMD_RESTARTAN   (1 << 13)

Definition at line 314 of file ks8851_mll.c.

#define P1SCLMD_TXIDS   (1 << 14)

Definition at line 313 of file ks8851_mll.c.

#define P1SR_AN_DONE   (1 << 6)

Definition at line 352 of file ks8851_mll.c.

#define P1SR_HP_MDIX   (1 << 15)

Definition at line 347 of file ks8851_mll.c.

#define P1SR_LINK_GOOD   (1 << 5)

Definition at line 353 of file ks8851_mll.c.

#define P1SR_OP_100M   (1 << 10)

Definition at line 349 of file ks8851_mll.c.

#define P1SR_OP_FDX   (1 << 9)

Definition at line 350 of file ks8851_mll.c.

#define P1SR_OP_MDI   (1 << 7)

Definition at line 351 of file ks8851_mll.c.

#define P1SR_PNTR_100BT_FDX   (1 << 3)

Definition at line 355 of file ks8851_mll.c.

#define P1SR_PNTR_100BT_HDX   (1 << 2)

Definition at line 356 of file ks8851_mll.c.

#define P1SR_PNTR_10BT_FDX   (1 << 1)

Definition at line 357 of file ks8851_mll.c.

#define P1SR_PNTR_10BT_HDX   (1 << 0)

Definition at line 358 of file ks8851_mll.c.

#define P1SR_PNTR_FLOW   (1 << 4)

Definition at line 354 of file ks8851_mll.c.

#define P1SR_REV_POL   (1 << 13)

Definition at line 348 of file ks8851_mll.c.

#define PMECR_AUTO_WAKE_EN   (1 << 7)

Definition at line 281 of file ks8851_mll.c.

#define PMECR_PM_ENERGY   (0x1 << 0)

Definition at line 293 of file ks8851_mll.c.

#define PMECR_PM_MASK   (0x3 << 0)

Definition at line 290 of file ks8851_mll.c.

#define PMECR_PM_NORMAL   (0x0 << 0)

Definition at line 292 of file ks8851_mll.c.

#define PMECR_PM_POWERSAVE   (0x3 << 0)

Definition at line 295 of file ks8851_mll.c.

#define PMECR_PM_SHIFT   (0)

Definition at line 291 of file ks8851_mll.c.

#define PMECR_PM_SOFTDOWN   (0x2 << 0)

Definition at line 294 of file ks8851_mll.c.

#define PMECR_PME_DELAY   (1 << 14)

Definition at line 275 of file ks8851_mll.c.

#define PMECR_PME_POL   (1 << 12)

Definition at line 276 of file ks8851_mll.c.

#define PMECR_WAKEUP_NORMAL   (1 << 6)

Definition at line 282 of file ks8851_mll.c.

#define PMECR_WKEVT_ENERGY   (0x1 << 2)

Definition at line 286 of file ks8851_mll.c.

#define PMECR_WKEVT_FRAME   (0x8 << 2)

Definition at line 289 of file ks8851_mll.c.

#define PMECR_WKEVT_GET (   _v)    (((_v) >> 2) & 0xf)

Definition at line 285 of file ks8851_mll.c.

#define PMECR_WKEVT_LINK   (0x2 << 2)

Definition at line 287 of file ks8851_mll.c.

#define PMECR_WKEVT_MAGICPKT   (0x4 << 2)

Definition at line 288 of file ks8851_mll.c.

#define PMECR_WKEVT_MASK   (0xf << 2)

Definition at line 283 of file ks8851_mll.c.

#define PMECR_WKEVT_SHIFT   (2)

Definition at line 284 of file ks8851_mll.c.

#define PMECR_WOL_ENERGY   (1 << 8)

Definition at line 280 of file ks8851_mll.c.

#define PMECR_WOL_LINKUP   (1 << 9)

Definition at line 279 of file ks8851_mll.c.

#define PMECR_WOL_MAGICPKT   (1 << 10)

Definition at line 278 of file ks8851_mll.c.

#define PMECR_WOL_WAKEUP   (1 << 11)

Definition at line 277 of file ks8851_mll.c.

#define pr_fmt (   fmt)    KBUILD_MODNAME ": " fmt

drivers/net/ethernet/micrel/ks8851_mll.c Copyright (c) 2009 Micrel Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Definition at line 23 of file ks8851_mll.c.

#define RX_BUF_SIZE   2000

Definition at line 45 of file ks8851_mll.c.

#define RXCR1_FILTER_MASK
Value:
RXCR1_RXMAFMA | RXCR1_RXPAFMA)

Definition at line 150 of file ks8851_mll.c.

#define RXCR1_FRXQ   (1 << 15)

Definition at line 136 of file ks8851_mll.c.

#define RXCR1_RXAE   (1 << 4)

Definition at line 147 of file ks8851_mll.c.

#define RXCR1_RXBE   (1 << 7)

Definition at line 144 of file ks8851_mll.c.

#define RXCR1_RXE   (1 << 0)

Definition at line 149 of file ks8851_mll.c.

#define RXCR1_RXEFE   (1 << 9)

Definition at line 142 of file ks8851_mll.c.

#define RXCR1_RXFCE   (1 << 10)

Definition at line 141 of file ks8851_mll.c.

#define RXCR1_RXINVF   (1 << 1)

Definition at line 148 of file ks8851_mll.c.

#define RXCR1_RXIPFCC   (1 << 12)

Definition at line 139 of file ks8851_mll.c.

#define RXCR1_RXMAFMA   (1 << 8)

Definition at line 143 of file ks8851_mll.c.

#define RXCR1_RXME   (1 << 6)

Definition at line 145 of file ks8851_mll.c.

#define RXCR1_RXPAFMA   (1 << 11)

Definition at line 140 of file ks8851_mll.c.

#define RXCR1_RXTCPFCC   (1 << 13)

Definition at line 138 of file ks8851_mll.c.

#define RXCR1_RXUDPFCC   (1 << 14)

Definition at line 137 of file ks8851_mll.c.

#define RXCR1_RXUE   (1 << 5)

Definition at line 146 of file ks8851_mll.c.

#define RXCR2_IUFFP   (1 << 4)

Definition at line 161 of file ks8851_mll.c.

#define RXCR2_RXICMPFCC   (1 << 1)

Definition at line 164 of file ks8851_mll.c.

#define RXCR2_RXIUFCEZ   (1 << 3)

Definition at line 162 of file ks8851_mll.c.

#define RXCR2_RXSAF   (1 << 0)

Definition at line 165 of file ks8851_mll.c.

#define RXCR2_SRDBL_16B   (0x2 << 5)

Definition at line 158 of file ks8851_mll.c.

#define RXCR2_SRDBL_32B   (0x3 << 5)

Definition at line 159 of file ks8851_mll.c.

#define RXCR2_SRDBL_4B   (0x0 << 5)

Definition at line 156 of file ks8851_mll.c.

#define RXCR2_SRDBL_8B   (0x1 << 5)

Definition at line 157 of file ks8851_mll.c.

#define RXCR2_SRDBL_MASK   (0x7 << 5)

Definition at line 154 of file ks8851_mll.c.

#define RXCR2_SRDBL_SHIFT   (5)

Definition at line 155 of file ks8851_mll.c.

#define RXCR2_UDPLFE   (1 << 2)

Definition at line 163 of file ks8851_mll.c.

#define RXFCTR_RXFC_GET (   _v)    (((_v) >> 8) & 0xff)

Definition at line 241 of file ks8851_mll.c.

#define RXFCTR_RXFC_MASK   (0xff << 8)

Definition at line 239 of file ks8851_mll.c.

#define RXFCTR_RXFC_SHIFT   (8)

Definition at line 240 of file ks8851_mll.c.

#define RXFCTR_RXFCT_MASK   (0xff << 0)

Definition at line 242 of file ks8851_mll.c.

#define RXFCTR_RXFCT_SHIFT   (0)

Definition at line 243 of file ks8851_mll.c.

#define RXFCTR_THRESHOLD_MASK   0x00FF

Definition at line 236 of file ks8851_mll.c.

#define RXFDPR_RXFPAI   (1 << 14)

Definition at line 214 of file ks8851_mll.c.

#define RXFHBCR_CNT_MASK   0x0FFF

Definition at line 188 of file ks8851_mll.c.

#define RXFSHR_ERR
Value:
RXFSHR_RXFTL | RXFSHR_RXMR |\
RXFSHR_RXICMPFCS | RXFSHR_RXIPFCS |\
RXFSHR_RXTCPFCS)

Definition at line 183 of file ks8851_mll.c.

#define RXFSHR_RXBF   (1 << 7)

Definition at line 175 of file ks8851_mll.c.

#define RXFSHR_RXCE   (1 << 0)

Definition at line 182 of file ks8851_mll.c.

#define RXFSHR_RXFT   (1 << 3)

Definition at line 179 of file ks8851_mll.c.

#define RXFSHR_RXFTL   (1 << 2)

Definition at line 180 of file ks8851_mll.c.

#define RXFSHR_RXFV   (1 << 15)

Definition at line 170 of file ks8851_mll.c.

#define RXFSHR_RXICMPFCS   (1 << 13)

Definition at line 171 of file ks8851_mll.c.

#define RXFSHR_RXIPFCS   (1 << 12)

Definition at line 172 of file ks8851_mll.c.

#define RXFSHR_RXMF   (1 << 6)

Definition at line 176 of file ks8851_mll.c.

#define RXFSHR_RXMR   (1 << 4)

Definition at line 178 of file ks8851_mll.c.

#define RXFSHR_RXRF   (1 << 1)

Definition at line 181 of file ks8851_mll.c.

#define RXFSHR_RXTCPFCS   (1 << 11)

Definition at line 173 of file ks8851_mll.c.

#define RXFSHR_RXUDPFCS   (1 << 10)

Definition at line 174 of file ks8851_mll.c.

#define RXFSHR_RXUF   (1 << 5)

Definition at line 177 of file ks8851_mll.c.

#define RXQCR_ADRFE   (1 << 4)

Definition at line 203 of file ks8851_mll.c.

#define RXQCR_CMD_CNTL   (RXQCR_RXFCTE|RXQCR_ADRFE)

Definition at line 206 of file ks8851_mll.c.

#define RXQCR_RRXEF   (1 << 0)

Definition at line 205 of file ks8851_mll.c.

#define RXQCR_RXDBCTE   (1 << 6)

Definition at line 201 of file ks8851_mll.c.

#define RXQCR_RXDBCTS   (1 << 11)

Definition at line 197 of file ks8851_mll.c.

#define RXQCR_RXDTTE   (1 << 7)

Definition at line 200 of file ks8851_mll.c.

#define RXQCR_RXDTTS   (1 << 12)

Definition at line 196 of file ks8851_mll.c.

#define RXQCR_RXFCTE   (1 << 5)

Definition at line 202 of file ks8851_mll.c.

#define RXQCR_RXFCTS   (1 << 10)

Definition at line 198 of file ks8851_mll.c.

#define RXQCR_RXIPHTOE   (1 << 9)

Definition at line 199 of file ks8851_mll.c.

#define RXQCR_SDA   (1 << 3)

Definition at line 204 of file ks8851_mll.c.

#define TX_BUF_SIZE   2000

Definition at line 44 of file ks8851_mll.c.

#define TXCR_FTXQ   (1 << 4)

Definition at line 121 of file ks8851_mll.c.

#define TXCR_TCGICMP   (1 << 8)

Definition at line 117 of file ks8851_mll.c.

#define TXCR_TCGIP   (1 << 5)

Definition at line 120 of file ks8851_mll.c.

#define TXCR_TCGTCP   (1 << 6)

Definition at line 119 of file ks8851_mll.c.

#define TXCR_TCGUDP   (1 << 7)

Definition at line 118 of file ks8851_mll.c.

#define TXCR_TXCRC   (1 << 1)

Definition at line 124 of file ks8851_mll.c.

#define TXCR_TXE   (1 << 0)

Definition at line 125 of file ks8851_mll.c.

#define TXCR_TXFCE   (1 << 3)

Definition at line 122 of file ks8851_mll.c.

#define TXCR_TXPE   (1 << 2)

Definition at line 123 of file ks8851_mll.c.

#define TXFDPR_TXFP_MASK   (0x7ff << 0)

Definition at line 210 of file ks8851_mll.c.

#define TXFDPR_TXFP_SHIFT   (0)

Definition at line 211 of file ks8851_mll.c.

#define TXFDPR_TXFPAI   (1 << 14)

Definition at line 209 of file ks8851_mll.c.

#define TXFR_TXFID_MASK   (0x3f << 0)

Definition at line 343 of file ks8851_mll.c.

#define TXFR_TXFID_SHIFT   (0)

Definition at line 344 of file ks8851_mll.c.

#define TXFR_TXIC   (1 << 15)

Definition at line 342 of file ks8851_mll.c.

#define TXQCR_AETFE   (1 << 2)

Definition at line 191 of file ks8851_mll.c.

#define TXQCR_METFE   (1 << 0)

Definition at line 193 of file ks8851_mll.c.

#define TXQCR_TXQMAM   (1 << 1)

Definition at line 192 of file ks8851_mll.c.

#define TXSR_TXFID_GET (   _v)    (((_v) >> 0) & 0x3f)

Definition at line 132 of file ks8851_mll.c.

#define TXSR_TXFID_MASK   (0x3f << 0)

Definition at line 130 of file ks8851_mll.c.

#define TXSR_TXFID_SHIFT   (0)

Definition at line 131 of file ks8851_mll.c.

#define TXSR_TXLC   (1 << 13)

Definition at line 128 of file ks8851_mll.c.

#define TXSR_TXMC   (1 << 12)

Definition at line 129 of file ks8851_mll.c.

#define WFCR_MPRXE   (1 << 7)

Definition at line 82 of file ks8851_mll.c.

#define WFCR_WF0E   (1 << 0)

Definition at line 86 of file ks8851_mll.c.

#define WFCR_WF1E   (1 << 1)

Definition at line 85 of file ks8851_mll.c.

#define WFCR_WF2E   (1 << 2)

Definition at line 84 of file ks8851_mll.c.

#define WFCR_WF3E   (1 << 3)

Definition at line 83 of file ks8851_mll.c.

Function Documentation

void ks_enable_qmu ( struct ks_net ks)

Definition at line 688 of file ks8851_mll.c.

MODULE_AUTHOR ( "David Choi <[email protected]>"  )
MODULE_DESCRIPTION ( "KS8851 MLL Network driver )
MODULE_LICENSE ( "GPL"  )
module_param_named ( message  ,
msg_enable  ,
int  ,
 
)
MODULE_PARM_DESC ( message  ,
"Message verbosity level (0=none, 31=all)"   
)
module_platform_driver ( ks8851_platform_driver  )