diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-23 23:44:19 -0500 |
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-23 23:44:19 -0500 |
| commit | 1ebbe2b20091d306453a5cf480a87e6cd28ae76f (patch) | |
| tree | f5cd7a0fa69b8b1938cb5a0faed2e7b0628072a5 /drivers/net/bnx2.h | |
| parent | ac58c9059da8886b5e8cde012a80266b18ca146e (diff) | |
| parent | 674a396c6d2ba0341ebdd7c1c9950f32f018e2dd (diff) | |
Merge branch 'linus'
Diffstat (limited to 'drivers/net/bnx2.h')
| -rw-r--r-- | drivers/net/bnx2.h | 97 |
1 files changed, 36 insertions, 61 deletions
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h index 9f691cbd666b..b87925f6a228 100644 --- a/drivers/net/bnx2.h +++ b/drivers/net/bnx2.h | |||
| @@ -13,45 +13,6 @@ | |||
| 13 | #ifndef BNX2_H | 13 | #ifndef BNX2_H |
| 14 | #define BNX2_H | 14 | #define BNX2_H |
| 15 | 15 | ||
| 16 | #include <linux/config.h> | ||
| 17 | |||
| 18 | #include <linux/module.h> | ||
| 19 | #include <linux/moduleparam.h> | ||
| 20 | |||
| 21 | #include <linux/kernel.h> | ||
| 22 | #include <linux/timer.h> | ||
| 23 | #include <linux/errno.h> | ||
| 24 | #include <linux/ioport.h> | ||
| 25 | #include <linux/slab.h> | ||
| 26 | #include <linux/interrupt.h> | ||
| 27 | #include <linux/pci.h> | ||
| 28 | #include <linux/init.h> | ||
| 29 | #include <linux/netdevice.h> | ||
| 30 | #include <linux/etherdevice.h> | ||
| 31 | #include <linux/skbuff.h> | ||
| 32 | #include <linux/dma-mapping.h> | ||
| 33 | #include <asm/bitops.h> | ||
| 34 | #include <asm/io.h> | ||
| 35 | #include <asm/irq.h> | ||
| 36 | #include <linux/delay.h> | ||
| 37 | #include <asm/byteorder.h> | ||
| 38 | #include <linux/time.h> | ||
| 39 | #include <linux/ethtool.h> | ||
| 40 | #include <linux/mii.h> | ||
| 41 | #ifdef NETIF_F_HW_VLAN_TX | ||
| 42 | #include <linux/if_vlan.h> | ||
| 43 | #define BCM_VLAN 1 | ||
| 44 | #endif | ||
| 45 | #ifdef NETIF_F_TSO | ||
| 46 | #include <net/ip.h> | ||
| 47 | #include <net/tcp.h> | ||
| 48 | #include <net/checksum.h> | ||
| 49 | #define BCM_TSO 1 | ||
| 50 | #endif | ||
| 51 | #include <linux/workqueue.h> | ||
| 52 | #include <linux/crc32.h> | ||
| 53 | #include <linux/prefetch.h> | ||
| 54 | |||
| 55 | /* Hardware data structures and register definitions automatically | 16 | /* Hardware data structures and register definitions automatically |
| 56 | * generated from RTL code. Do not modify. | 17 | * generated from RTL code. Do not modify. |
| 57 | */ | 18 | */ |
| @@ -3792,8 +3753,10 @@ struct l2_fhdr { | |||
| 3792 | #define TX_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct tx_bd)) | 3753 | #define TX_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct tx_bd)) |
| 3793 | #define MAX_TX_DESC_CNT (TX_DESC_CNT - 1) | 3754 | #define MAX_TX_DESC_CNT (TX_DESC_CNT - 1) |
| 3794 | 3755 | ||
| 3756 | #define MAX_RX_RINGS 4 | ||
| 3795 | #define RX_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct rx_bd)) | 3757 | #define RX_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct rx_bd)) |
| 3796 | #define MAX_RX_DESC_CNT (RX_DESC_CNT - 1) | 3758 | #define MAX_RX_DESC_CNT (RX_DESC_CNT - 1) |
| 3759 | #define MAX_TOTAL_RX_DESC_CNT (MAX_RX_DESC_CNT * MAX_RX_RINGS) | ||
| 3797 | 3760 | ||
| 3798 | #define NEXT_TX_BD(x) (((x) & (MAX_TX_DESC_CNT - 1)) == \ | 3761 | #define NEXT_TX_BD(x) (((x) & (MAX_TX_DESC_CNT - 1)) == \ |
| 3799 | (MAX_TX_DESC_CNT - 1)) ? \ | 3762 | (MAX_TX_DESC_CNT - 1)) ? \ |
| @@ -3805,8 +3768,10 @@ struct l2_fhdr { | |||
| 3805 | (MAX_RX_DESC_CNT - 1)) ? \ | 3768 | (MAX_RX_DESC_CNT - 1)) ? \ |
| 3806 | (x) + 2 : (x) + 1 | 3769 | (x) + 2 : (x) + 1 |
| 3807 | 3770 | ||
| 3808 | #define RX_RING_IDX(x) ((x) & MAX_RX_DESC_CNT) | 3771 | #define RX_RING_IDX(x) ((x) & bp->rx_max_ring_idx) |
| 3809 | 3772 | ||
| 3773 | #define RX_RING(x) (((x) & ~MAX_RX_DESC_CNT) >> 8) | ||
| 3774 | #define RX_IDX(x) ((x) & MAX_RX_DESC_CNT) | ||
| 3810 | 3775 | ||
| 3811 | /* Context size. */ | 3776 | /* Context size. */ |
| 3812 | #define CTX_SHIFT 7 | 3777 | #define CTX_SHIFT 7 |
| @@ -3903,15 +3868,26 @@ struct bnx2 { | |||
| 3903 | struct status_block *status_blk; | 3868 | struct status_block *status_blk; |
| 3904 | u32 last_status_idx; | 3869 | u32 last_status_idx; |
| 3905 | 3870 | ||
| 3906 | struct tx_bd *tx_desc_ring; | 3871 | u32 flags; |
| 3907 | struct sw_bd *tx_buf_ring; | 3872 | #define PCIX_FLAG 1 |
| 3908 | u32 tx_prod_bseq; | 3873 | #define PCI_32BIT_FLAG 2 |
| 3909 | u16 tx_prod; | 3874 | #define ONE_TDMA_FLAG 4 /* no longer used */ |
| 3910 | u16 tx_cons; | 3875 | #define NO_WOL_FLAG 8 |
| 3911 | int tx_ring_size; | 3876 | #define USING_DAC_FLAG 0x10 |
| 3877 | #define USING_MSI_FLAG 0x20 | ||
| 3878 | #define ASF_ENABLE_FLAG 0x40 | ||
| 3912 | 3879 | ||
| 3913 | u16 hw_tx_cons; | 3880 | /* Put tx producer and consumer fields in separate cache lines. */ |
| 3914 | u16 hw_rx_cons; | 3881 | |
| 3882 | u32 tx_prod_bseq __attribute__((aligned(L1_CACHE_BYTES))); | ||
| 3883 | u16 tx_prod; | ||
| 3884 | |||
| 3885 | struct tx_bd *tx_desc_ring; | ||
| 3886 | struct sw_bd *tx_buf_ring; | ||
| 3887 | int tx_ring_size; | ||
| 3888 | |||
| 3889 | u16 tx_cons __attribute__((aligned(L1_CACHE_BYTES))); | ||
| 3890 | u16 hw_tx_cons; | ||
| 3915 | 3891 | ||
| 3916 | #ifdef BCM_VLAN | 3892 | #ifdef BCM_VLAN |
| 3917 | struct vlan_group *vlgrp; | 3893 | struct vlan_group *vlgrp; |
| @@ -3920,19 +3896,23 @@ struct bnx2 { | |||
| 3920 | u32 rx_offset; | 3896 | u32 rx_offset; |
| 3921 | u32 rx_buf_use_size; /* useable size */ | 3897 | u32 rx_buf_use_size; /* useable size */ |
| 3922 | u32 rx_buf_size; /* with alignment */ | 3898 | u32 rx_buf_size; /* with alignment */ |
| 3923 | struct rx_bd *rx_desc_ring; | 3899 | u32 rx_max_ring_idx; |
| 3924 | struct sw_bd *rx_buf_ring; | 3900 | |
| 3925 | u32 rx_prod_bseq; | 3901 | u32 rx_prod_bseq; |
| 3926 | u16 rx_prod; | 3902 | u16 rx_prod; |
| 3927 | u16 rx_cons; | 3903 | u16 rx_cons; |
| 3904 | u16 hw_rx_cons; | ||
| 3928 | 3905 | ||
| 3929 | u32 rx_csum; | 3906 | u32 rx_csum; |
| 3930 | 3907 | ||
| 3908 | struct sw_bd *rx_buf_ring; | ||
| 3909 | struct rx_bd *rx_desc_ring[MAX_RX_RINGS]; | ||
| 3910 | |||
| 3931 | /* Only used to synchronize netif_stop_queue/wake_queue when tx */ | 3911 | /* Only used to synchronize netif_stop_queue/wake_queue when tx */ |
| 3932 | /* ring is full */ | 3912 | /* ring is full */ |
| 3933 | spinlock_t tx_lock; | 3913 | spinlock_t tx_lock; |
| 3934 | 3914 | ||
| 3935 | /* End of fileds used in the performance code paths. */ | 3915 | /* End of fields used in the performance code paths. */ |
| 3936 | 3916 | ||
| 3937 | char *name; | 3917 | char *name; |
| 3938 | 3918 | ||
| @@ -3945,15 +3925,6 @@ struct bnx2 { | |||
| 3945 | /* Used to synchronize phy accesses. */ | 3925 | /* Used to synchronize phy accesses. */ |
| 3946 | spinlock_t phy_lock; | 3926 | spinlock_t phy_lock; |
| 3947 | 3927 | ||
| 3948 | u32 flags; | ||
| 3949 | #define PCIX_FLAG 1 | ||
| 3950 | #define PCI_32BIT_FLAG 2 | ||
| 3951 | #define ONE_TDMA_FLAG 4 /* no longer used */ | ||
| 3952 | #define NO_WOL_FLAG 8 | ||
| 3953 | #define USING_DAC_FLAG 0x10 | ||
| 3954 | #define USING_MSI_FLAG 0x20 | ||
| 3955 | #define ASF_ENABLE_FLAG 0x40 | ||
| 3956 | |||
| 3957 | u32 phy_flags; | 3928 | u32 phy_flags; |
| 3958 | #define PHY_SERDES_FLAG 1 | 3929 | #define PHY_SERDES_FLAG 1 |
| 3959 | #define PHY_CRC_FIX_FLAG 2 | 3930 | #define PHY_CRC_FIX_FLAG 2 |
| @@ -4004,8 +3975,9 @@ struct bnx2 { | |||
| 4004 | dma_addr_t tx_desc_mapping; | 3975 | dma_addr_t tx_desc_mapping; |
| 4005 | 3976 | ||
| 4006 | 3977 | ||
| 3978 | int rx_max_ring; | ||
| 4007 | int rx_ring_size; | 3979 | int rx_ring_size; |
| 4008 | dma_addr_t rx_desc_mapping; | 3980 | dma_addr_t rx_desc_mapping[MAX_RX_RINGS]; |
| 4009 | 3981 | ||
| 4010 | u16 tx_quick_cons_trip; | 3982 | u16 tx_quick_cons_trip; |
| 4011 | u16 tx_quick_cons_trip_int; | 3983 | u16 tx_quick_cons_trip_int; |
| @@ -4029,6 +4001,7 @@ struct bnx2 { | |||
| 4029 | struct statistics_block *stats_blk; | 4001 | struct statistics_block *stats_blk; |
| 4030 | dma_addr_t stats_blk_mapping; | 4002 | dma_addr_t stats_blk_mapping; |
| 4031 | 4003 | ||
| 4004 | u32 hc_cmd; | ||
| 4032 | u32 rx_mode; | 4005 | u32 rx_mode; |
| 4033 | 4006 | ||
| 4034 | u16 req_line_speed; | 4007 | u16 req_line_speed; |
| @@ -4073,6 +4046,8 @@ struct bnx2 { | |||
| 4073 | 4046 | ||
| 4074 | struct flash_spec *flash_info; | 4047 | struct flash_spec *flash_info; |
| 4075 | u32 flash_size; | 4048 | u32 flash_size; |
| 4049 | |||
| 4050 | int status_stats_size; | ||
| 4076 | }; | 4051 | }; |
| 4077 | 4052 | ||
| 4078 | static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset); | 4053 | static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset); |
