diff options
Diffstat (limited to 'drivers/net/sky2.h')
-rw-r--r-- | drivers/net/sky2.h | 41 |
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 | |||
552 | enum 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 | |||
551 | enum yukon_ec_rev { | 559 | enum 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 | }; |
561 | enum yukon_fe_rev { | 570 | enum 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 | ||
702 | enum { | ||
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 | ||
691 | enum { | 713 | enum { |
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 */ |
1776 | enum { | 1798 | enum { |
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 | ||
2164 | struct rx_ring_info { | 2189 | struct 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 | ||