aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sky2.h')
-rw-r--r--drivers/net/sky2.h41
1 files changed, 34 insertions, 7 deletions
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h
index a5e182dd9819..084eff21b67a 100644
--- a/drivers/net/sky2.h
+++ b/drivers/net/sky2.h
@@ -548,6 +548,14 @@ enum {
548 CHIP_ID_YUKON_UL_2 = 0xba, /* YUKON-2 Ultra 2 */ 548 CHIP_ID_YUKON_UL_2 = 0xba, /* YUKON-2 Ultra 2 */
549 CHIP_ID_YUKON_OPT = 0xbc, /* YUKON-2 Optima */ 549 CHIP_ID_YUKON_OPT = 0xbc, /* YUKON-2 Optima */
550}; 550};
551
552enum yukon_xl_rev {
553 CHIP_REV_YU_XL_A0 = 0,
554 CHIP_REV_YU_XL_A1 = 1,
555 CHIP_REV_YU_XL_A2 = 2,
556 CHIP_REV_YU_XL_A3 = 3,
557};
558
551enum yukon_ec_rev { 559enum yukon_ec_rev {
552 CHIP_REV_YU_EC_A1 = 0, /* Chip Rev. for Yukon-EC A1/A0 */ 560 CHIP_REV_YU_EC_A1 = 0, /* Chip Rev. for Yukon-EC A1/A0 */
553 CHIP_REV_YU_EC_A2 = 1, /* Chip Rev. for Yukon-EC A2 */ 561 CHIP_REV_YU_EC_A2 = 1, /* Chip Rev. for Yukon-EC A2 */
@@ -557,6 +565,7 @@ enum yukon_ec_u_rev {
557 CHIP_REV_YU_EC_U_A0 = 1, 565 CHIP_REV_YU_EC_U_A0 = 1,
558 CHIP_REV_YU_EC_U_A1 = 2, 566 CHIP_REV_YU_EC_U_A1 = 2,
559 CHIP_REV_YU_EC_U_B0 = 3, 567 CHIP_REV_YU_EC_U_B0 = 3,
568 CHIP_REV_YU_EC_U_B1 = 5,
560}; 569};
561enum yukon_fe_rev { 570enum yukon_fe_rev {
562 CHIP_REV_YU_FE_A1 = 1, 571 CHIP_REV_YU_FE_A1 = 1,
@@ -685,8 +694,21 @@ enum {
685 TXA_CTRL = 0x0210,/* 8 bit Tx Arbiter Control Register */ 694 TXA_CTRL = 0x0210,/* 8 bit Tx Arbiter Control Register */
686 TXA_TEST = 0x0211,/* 8 bit Tx Arbiter Test Register */ 695 TXA_TEST = 0x0211,/* 8 bit Tx Arbiter Test Register */
687 TXA_STAT = 0x0212,/* 8 bit Tx Arbiter Status Register */ 696 TXA_STAT = 0x0212,/* 8 bit Tx Arbiter Status Register */
697
698 RSS_KEY = 0x0220, /* RSS Key setup */
699 RSS_CFG = 0x0248, /* RSS Configuration */
688}; 700};
689 701
702enum {
703 HASH_TCP_IPV6_EX_CTRL = 1<<5,
704 HASH_IPV6_EX_CTRL = 1<<4,
705 HASH_TCP_IPV6_CTRL = 1<<3,
706 HASH_IPV6_CTRL = 1<<2,
707 HASH_TCP_IPV4_CTRL = 1<<1,
708 HASH_IPV4_CTRL = 1<<0,
709
710 HASH_ALL = 0x3f,
711};
690 712
691enum { 713enum {
692 B6_EXT_REG = 0x0300,/* External registers (GENESIS only) */ 714 B6_EXT_REG = 0x0300,/* External registers (GENESIS only) */
@@ -1775,10 +1797,13 @@ enum {
1775/* GM_SERIAL_MODE 16 bit r/w Serial Mode Register */ 1797/* GM_SERIAL_MODE 16 bit r/w Serial Mode Register */
1776enum { 1798enum {
1777 GM_SMOD_DATABL_MSK = 0x1f<<11, /* Bit 15..11: Data Blinder (r/o) */ 1799 GM_SMOD_DATABL_MSK = 0x1f<<11, /* Bit 15..11: Data Blinder (r/o) */
1778 GM_SMOD_LIMIT_4 = 1<<10, /* Bit 10: 4 consecutive Tx trials */ 1800 GM_SMOD_LIMIT_4 = 1<<10, /* 4 consecutive Tx trials */
1779 GM_SMOD_VLAN_ENA = 1<<9, /* Bit 9: Enable VLAN (Max. Frame Len) */ 1801 GM_SMOD_VLAN_ENA = 1<<9, /* Enable VLAN (Max. Frame Len) */
1780 GM_SMOD_JUMBO_ENA = 1<<8, /* Bit 8: Enable Jumbo (Max. Frame Len) */ 1802 GM_SMOD_JUMBO_ENA = 1<<8, /* Enable Jumbo (Max. Frame Len) */
1781 GM_SMOD_IPG_MSK = 0x1f /* Bit 4..0: Inter-Packet Gap (IPG) */ 1803
1804 GM_NEW_FLOW_CTRL = 1<<6, /* Enable New Flow-Control */
1805
1806 GM_SMOD_IPG_MSK = 0x1f /* Bit 4..0: Inter-Packet Gap (IPG) */
1782}; 1807};
1783 1808
1784#define DATA_BLIND_VAL(x) (((x)<<11) & GM_SMOD_DATABL_MSK) 1809#define DATA_BLIND_VAL(x) (((x)<<11) & GM_SMOD_DATABL_MSK)
@@ -2157,14 +2182,14 @@ struct tx_ring_info {
2157 unsigned long flags; 2182 unsigned long flags;
2158#define TX_MAP_SINGLE 0x0001 2183#define TX_MAP_SINGLE 0x0001
2159#define TX_MAP_PAGE 0x0002 2184#define TX_MAP_PAGE 0x0002
2160 DECLARE_PCI_UNMAP_ADDR(mapaddr); 2185 DEFINE_DMA_UNMAP_ADDR(mapaddr);
2161 DECLARE_PCI_UNMAP_LEN(maplen); 2186 DEFINE_DMA_UNMAP_LEN(maplen);
2162}; 2187};
2163 2188
2164struct rx_ring_info { 2189struct rx_ring_info {
2165 struct sk_buff *skb; 2190 struct sk_buff *skb;
2166 dma_addr_t data_addr; 2191 dma_addr_t data_addr;
2167 DECLARE_PCI_UNMAP_LEN(data_size); 2192 DEFINE_DMA_UNMAP_LEN(data_size);
2168 dma_addr_t frag_addr[ETH_JUMBO_MTU >> PAGE_SHIFT]; 2193 dma_addr_t frag_addr[ETH_JUMBO_MTU >> PAGE_SHIFT];
2169}; 2194};
2170 2195
@@ -2249,6 +2274,7 @@ struct sky2_hw {
2249#define SKY2_HW_NEW_LE 0x00000020 /* new LSOv2 format */ 2274#define SKY2_HW_NEW_LE 0x00000020 /* new LSOv2 format */
2250#define SKY2_HW_AUTO_TX_SUM 0x00000040 /* new IP decode for Tx */ 2275#define SKY2_HW_AUTO_TX_SUM 0x00000040 /* new IP decode for Tx */
2251#define SKY2_HW_ADV_POWER_CTL 0x00000080 /* additional PHY power regs */ 2276#define SKY2_HW_ADV_POWER_CTL 0x00000080 /* additional PHY power regs */
2277#define SKY2_HW_RSS_BROKEN 0x00000100
2252 2278
2253 u8 chip_id; 2279 u8 chip_id;
2254 u8 chip_rev; 2280 u8 chip_rev;
@@ -2256,6 +2282,7 @@ struct sky2_hw {
2256 u8 ports; 2282 u8 ports;
2257 2283
2258 struct sky2_status_le *st_le; 2284 struct sky2_status_le *st_le;
2285 u32 st_size;
2259 u32 st_idx; 2286 u32 st_idx;
2260 dma_addr_t st_dma; 2287 dma_addr_t st_dma;
2261 2288