aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2.c
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2012-12-06 05:33:09 -0500
committerDavid S. Miller <davem@davemloft.net>2012-12-07 12:44:01 -0500
commit2bc4078e92b28375a762d7236c1c9619eecab315 (patch)
tree420fb018df8b016e9e10927d783140f4b9145964 /drivers/net/ethernet/broadcom/bnx2.c
parente503e0662447ce2bd7c0a73c90395c78ebee494c (diff)
bnx2: Add BNX2 prefix to descriptor structures and macros
for namespace consistency. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2.c')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2.c190
1 files changed, 98 insertions, 92 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index 41fa6af2fd86..98cb76b9482c 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -260,10 +260,10 @@ static inline u32 bnx2_tx_avail(struct bnx2 *bp, struct bnx2_tx_ring_info *txr)
260 * needs to be skipped. 260 * needs to be skipped.
261 */ 261 */
262 diff = txr->tx_prod - txr->tx_cons; 262 diff = txr->tx_prod - txr->tx_cons;
263 if (unlikely(diff >= TX_DESC_CNT)) { 263 if (unlikely(diff >= BNX2_TX_DESC_CNT)) {
264 diff &= 0xffff; 264 diff &= 0xffff;
265 if (diff == TX_DESC_CNT) 265 if (diff == BNX2_TX_DESC_CNT)
266 diff = MAX_TX_DESC_CNT; 266 diff = BNX2_MAX_TX_DESC_CNT;
267 } 267 }
268 return bp->tx_ring_size - diff; 268 return bp->tx_ring_size - diff;
269} 269}
@@ -824,7 +824,7 @@ bnx2_free_mem(struct bnx2 *bp)
824 824
825 for (i = 0; i < bp->ctx_pages; i++) { 825 for (i = 0; i < bp->ctx_pages; i++) {
826 if (bp->ctx_blk[i]) { 826 if (bp->ctx_blk[i]) {
827 dma_free_coherent(&bp->pdev->dev, BCM_PAGE_SIZE, 827 dma_free_coherent(&bp->pdev->dev, BNX2_PAGE_SIZE,
828 bp->ctx_blk[i], 828 bp->ctx_blk[i],
829 bp->ctx_blk_mapping[i]); 829 bp->ctx_blk_mapping[i]);
830 bp->ctx_blk[i] = NULL; 830 bp->ctx_blk[i] = NULL;
@@ -888,12 +888,12 @@ bnx2_alloc_mem(struct bnx2 *bp)
888 bp->stats_blk_mapping = bp->status_blk_mapping + status_blk_size; 888 bp->stats_blk_mapping = bp->status_blk_mapping + status_blk_size;
889 889
890 if (CHIP_NUM(bp) == CHIP_NUM_5709) { 890 if (CHIP_NUM(bp) == CHIP_NUM_5709) {
891 bp->ctx_pages = 0x2000 / BCM_PAGE_SIZE; 891 bp->ctx_pages = 0x2000 / BNX2_PAGE_SIZE;
892 if (bp->ctx_pages == 0) 892 if (bp->ctx_pages == 0)
893 bp->ctx_pages = 1; 893 bp->ctx_pages = 1;
894 for (i = 0; i < bp->ctx_pages; i++) { 894 for (i = 0; i < bp->ctx_pages; i++) {
895 bp->ctx_blk[i] = dma_alloc_coherent(&bp->pdev->dev, 895 bp->ctx_blk[i] = dma_alloc_coherent(&bp->pdev->dev,
896 BCM_PAGE_SIZE, 896 BNX2_PAGE_SIZE,
897 &bp->ctx_blk_mapping[i], 897 &bp->ctx_blk_mapping[i],
898 GFP_KERNEL); 898 GFP_KERNEL);
899 if (bp->ctx_blk[i] == NULL) 899 if (bp->ctx_blk[i] == NULL)
@@ -2538,7 +2538,7 @@ bnx2_init_5709_context(struct bnx2 *bp)
2538 u32 val; 2538 u32 val;
2539 2539
2540 val = BNX2_CTX_COMMAND_ENABLED | BNX2_CTX_COMMAND_MEM_INIT | (1 << 12); 2540 val = BNX2_CTX_COMMAND_ENABLED | BNX2_CTX_COMMAND_MEM_INIT | (1 << 12);
2541 val |= (BCM_PAGE_BITS - 8) << 16; 2541 val |= (BNX2_PAGE_BITS - 8) << 16;
2542 BNX2_WR(bp, BNX2_CTX_COMMAND, val); 2542 BNX2_WR(bp, BNX2_CTX_COMMAND, val);
2543 for (i = 0; i < 10; i++) { 2543 for (i = 0; i < 10; i++) {
2544 val = BNX2_RD(bp, BNX2_CTX_COMMAND); 2544 val = BNX2_RD(bp, BNX2_CTX_COMMAND);
@@ -2553,7 +2553,7 @@ bnx2_init_5709_context(struct bnx2 *bp)
2553 int j; 2553 int j;
2554 2554
2555 if (bp->ctx_blk[i]) 2555 if (bp->ctx_blk[i])
2556 memset(bp->ctx_blk[i], 0, BCM_PAGE_SIZE); 2556 memset(bp->ctx_blk[i], 0, BNX2_PAGE_SIZE);
2557 else 2557 else
2558 return -ENOMEM; 2558 return -ENOMEM;
2559 2559
@@ -2690,9 +2690,9 @@ static inline int
2690bnx2_alloc_rx_page(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index, gfp_t gfp) 2690bnx2_alloc_rx_page(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index, gfp_t gfp)
2691{ 2691{
2692 dma_addr_t mapping; 2692 dma_addr_t mapping;
2693 struct sw_pg *rx_pg = &rxr->rx_pg_ring[index]; 2693 struct bnx2_sw_pg *rx_pg = &rxr->rx_pg_ring[index];
2694 struct rx_bd *rxbd = 2694 struct bnx2_rx_bd *rxbd =
2695 &rxr->rx_pg_desc_ring[RX_RING(index)][RX_IDX(index)]; 2695 &rxr->rx_pg_desc_ring[BNX2_RX_RING(index)][BNX2_RX_IDX(index)];
2696 struct page *page = alloc_page(gfp); 2696 struct page *page = alloc_page(gfp);
2697 2697
2698 if (!page) 2698 if (!page)
@@ -2714,7 +2714,7 @@ bnx2_alloc_rx_page(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index, gf
2714static void 2714static void
2715bnx2_free_rx_page(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index) 2715bnx2_free_rx_page(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index)
2716{ 2716{
2717 struct sw_pg *rx_pg = &rxr->rx_pg_ring[index]; 2717 struct bnx2_sw_pg *rx_pg = &rxr->rx_pg_ring[index];
2718 struct page *page = rx_pg->page; 2718 struct page *page = rx_pg->page;
2719 2719
2720 if (!page) 2720 if (!page)
@@ -2731,9 +2731,10 @@ static inline int
2731bnx2_alloc_rx_data(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index, gfp_t gfp) 2731bnx2_alloc_rx_data(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, u16 index, gfp_t gfp)
2732{ 2732{
2733 u8 *data; 2733 u8 *data;
2734 struct sw_bd *rx_buf = &rxr->rx_buf_ring[index]; 2734 struct bnx2_sw_bd *rx_buf = &rxr->rx_buf_ring[index];
2735 dma_addr_t mapping; 2735 dma_addr_t mapping;
2736 struct rx_bd *rxbd = &rxr->rx_desc_ring[RX_RING(index)][RX_IDX(index)]; 2736 struct bnx2_rx_bd *rxbd =
2737 &rxr->rx_desc_ring[BNX2_RX_RING(index)][BNX2_RX_IDX(index)];
2737 2738
2738 data = kmalloc(bp->rx_buf_size, gfp); 2739 data = kmalloc(bp->rx_buf_size, gfp);
2739 if (!data) 2740 if (!data)
@@ -2802,7 +2803,7 @@ bnx2_get_hw_tx_cons(struct bnx2_napi *bnapi)
2802 barrier(); 2803 barrier();
2803 cons = *bnapi->hw_tx_cons_ptr; 2804 cons = *bnapi->hw_tx_cons_ptr;
2804 barrier(); 2805 barrier();
2805 if (unlikely((cons & MAX_TX_DESC_CNT) == MAX_TX_DESC_CNT)) 2806 if (unlikely((cons & BNX2_MAX_TX_DESC_CNT) == BNX2_MAX_TX_DESC_CNT))
2806 cons++; 2807 cons++;
2807 return cons; 2808 return cons;
2808} 2809}
@@ -2823,11 +2824,11 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
2823 sw_cons = txr->tx_cons; 2824 sw_cons = txr->tx_cons;
2824 2825
2825 while (sw_cons != hw_cons) { 2826 while (sw_cons != hw_cons) {
2826 struct sw_tx_bd *tx_buf; 2827 struct bnx2_sw_tx_bd *tx_buf;
2827 struct sk_buff *skb; 2828 struct sk_buff *skb;
2828 int i, last; 2829 int i, last;
2829 2830
2830 sw_ring_cons = TX_RING_IDX(sw_cons); 2831 sw_ring_cons = BNX2_TX_RING_IDX(sw_cons);
2831 2832
2832 tx_buf = &txr->tx_buf_ring[sw_ring_cons]; 2833 tx_buf = &txr->tx_buf_ring[sw_ring_cons];
2833 skb = tx_buf->skb; 2834 skb = tx_buf->skb;
@@ -2841,7 +2842,7 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
2841 2842
2842 last_idx = sw_cons + tx_buf->nr_frags + 1; 2843 last_idx = sw_cons + tx_buf->nr_frags + 1;
2843 last_ring_idx = sw_ring_cons + tx_buf->nr_frags + 1; 2844 last_ring_idx = sw_ring_cons + tx_buf->nr_frags + 1;
2844 if (unlikely(last_ring_idx >= MAX_TX_DESC_CNT)) { 2845 if (unlikely(last_ring_idx >= BNX2_MAX_TX_DESC_CNT)) {
2845 last_idx++; 2846 last_idx++;
2846 } 2847 }
2847 if (((s16) ((s16) last_idx - (s16) hw_cons)) > 0) { 2848 if (((s16) ((s16) last_idx - (s16) hw_cons)) > 0) {
@@ -2856,17 +2857,18 @@ bnx2_tx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
2856 last = tx_buf->nr_frags; 2857 last = tx_buf->nr_frags;
2857 2858
2858 for (i = 0; i < last; i++) { 2859 for (i = 0; i < last; i++) {
2859 sw_cons = NEXT_TX_BD(sw_cons); 2860 struct bnx2_sw_tx_bd *tx_buf;
2860 2861
2862 sw_cons = BNX2_NEXT_TX_BD(sw_cons);
2863
2864 tx_buf = &txr->tx_buf_ring[BNX2_TX_RING_IDX(sw_cons)];
2861 dma_unmap_page(&bp->pdev->dev, 2865 dma_unmap_page(&bp->pdev->dev,
2862 dma_unmap_addr( 2866 dma_unmap_addr(tx_buf, mapping),
2863 &txr->tx_buf_ring[TX_RING_IDX(sw_cons)],
2864 mapping),
2865 skb_frag_size(&skb_shinfo(skb)->frags[i]), 2867 skb_frag_size(&skb_shinfo(skb)->frags[i]),
2866 PCI_DMA_TODEVICE); 2868 PCI_DMA_TODEVICE);
2867 } 2869 }
2868 2870
2869 sw_cons = NEXT_TX_BD(sw_cons); 2871 sw_cons = BNX2_NEXT_TX_BD(sw_cons);
2870 2872
2871 tx_bytes += skb->len; 2873 tx_bytes += skb->len;
2872 dev_kfree_skb(skb); 2874 dev_kfree_skb(skb);
@@ -2905,8 +2907,8 @@ static void
2905bnx2_reuse_rx_skb_pages(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, 2907bnx2_reuse_rx_skb_pages(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
2906 struct sk_buff *skb, int count) 2908 struct sk_buff *skb, int count)
2907{ 2909{
2908 struct sw_pg *cons_rx_pg, *prod_rx_pg; 2910 struct bnx2_sw_pg *cons_rx_pg, *prod_rx_pg;
2909 struct rx_bd *cons_bd, *prod_bd; 2911 struct bnx2_rx_bd *cons_bd, *prod_bd;
2910 int i; 2912 int i;
2911 u16 hw_prod, prod; 2913 u16 hw_prod, prod;
2912 u16 cons = rxr->rx_pg_cons; 2914 u16 cons = rxr->rx_pg_cons;
@@ -2933,12 +2935,14 @@ bnx2_reuse_rx_skb_pages(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
2933 hw_prod = rxr->rx_pg_prod; 2935 hw_prod = rxr->rx_pg_prod;
2934 2936
2935 for (i = 0; i < count; i++) { 2937 for (i = 0; i < count; i++) {
2936 prod = RX_PG_RING_IDX(hw_prod); 2938 prod = BNX2_RX_PG_RING_IDX(hw_prod);
2937 2939
2938 prod_rx_pg = &rxr->rx_pg_ring[prod]; 2940 prod_rx_pg = &rxr->rx_pg_ring[prod];
2939 cons_rx_pg = &rxr->rx_pg_ring[cons]; 2941 cons_rx_pg = &rxr->rx_pg_ring[cons];
2940 cons_bd = &rxr->rx_pg_desc_ring[RX_RING(cons)][RX_IDX(cons)]; 2942 cons_bd = &rxr->rx_pg_desc_ring[BNX2_RX_RING(cons)]
2941 prod_bd = &rxr->rx_pg_desc_ring[RX_RING(prod)][RX_IDX(prod)]; 2943 [BNX2_RX_IDX(cons)];
2944 prod_bd = &rxr->rx_pg_desc_ring[BNX2_RX_RING(prod)]
2945 [BNX2_RX_IDX(prod)];
2942 2946
2943 if (prod != cons) { 2947 if (prod != cons) {
2944 prod_rx_pg->page = cons_rx_pg->page; 2948 prod_rx_pg->page = cons_rx_pg->page;
@@ -2950,8 +2954,8 @@ bnx2_reuse_rx_skb_pages(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
2950 prod_bd->rx_bd_haddr_lo = cons_bd->rx_bd_haddr_lo; 2954 prod_bd->rx_bd_haddr_lo = cons_bd->rx_bd_haddr_lo;
2951 2955
2952 } 2956 }
2953 cons = RX_PG_RING_IDX(NEXT_RX_BD(cons)); 2957 cons = BNX2_RX_PG_RING_IDX(BNX2_NEXT_RX_BD(cons));
2954 hw_prod = NEXT_RX_BD(hw_prod); 2958 hw_prod = BNX2_NEXT_RX_BD(hw_prod);
2955 } 2959 }
2956 rxr->rx_pg_prod = hw_prod; 2960 rxr->rx_pg_prod = hw_prod;
2957 rxr->rx_pg_cons = cons; 2961 rxr->rx_pg_cons = cons;
@@ -2961,8 +2965,8 @@ static inline void
2961bnx2_reuse_rx_data(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr, 2965bnx2_reuse_rx_data(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
2962 u8 *data, u16 cons, u16 prod) 2966 u8 *data, u16 cons, u16 prod)
2963{ 2967{
2964 struct sw_bd *cons_rx_buf, *prod_rx_buf; 2968 struct bnx2_sw_bd *cons_rx_buf, *prod_rx_buf;
2965 struct rx_bd *cons_bd, *prod_bd; 2969 struct bnx2_rx_bd *cons_bd, *prod_bd;
2966 2970
2967 cons_rx_buf = &rxr->rx_buf_ring[cons]; 2971 cons_rx_buf = &rxr->rx_buf_ring[cons];
2968 prod_rx_buf = &rxr->rx_buf_ring[prod]; 2972 prod_rx_buf = &rxr->rx_buf_ring[prod];
@@ -2981,8 +2985,8 @@ bnx2_reuse_rx_data(struct bnx2 *bp, struct bnx2_rx_ring_info *rxr,
2981 dma_unmap_addr_set(prod_rx_buf, mapping, 2985 dma_unmap_addr_set(prod_rx_buf, mapping,
2982 dma_unmap_addr(cons_rx_buf, mapping)); 2986 dma_unmap_addr(cons_rx_buf, mapping));
2983 2987
2984 cons_bd = &rxr->rx_desc_ring[RX_RING(cons)][RX_IDX(cons)]; 2988 cons_bd = &rxr->rx_desc_ring[BNX2_RX_RING(cons)][BNX2_RX_IDX(cons)];
2985 prod_bd = &rxr->rx_desc_ring[RX_RING(prod)][RX_IDX(prod)]; 2989 prod_bd = &rxr->rx_desc_ring[BNX2_RX_RING(prod)][BNX2_RX_IDX(prod)];
2986 prod_bd->rx_bd_haddr_hi = cons_bd->rx_bd_haddr_hi; 2990 prod_bd->rx_bd_haddr_hi = cons_bd->rx_bd_haddr_hi;
2987 prod_bd->rx_bd_haddr_lo = cons_bd->rx_bd_haddr_lo; 2991 prod_bd->rx_bd_haddr_lo = cons_bd->rx_bd_haddr_lo;
2988} 2992}
@@ -3022,7 +3026,7 @@ error:
3022 return skb; 3026 return skb;
3023 } else { 3027 } else {
3024 unsigned int i, frag_len, frag_size, pages; 3028 unsigned int i, frag_len, frag_size, pages;
3025 struct sw_pg *rx_pg; 3029 struct bnx2_sw_pg *rx_pg;
3026 u16 pg_cons = rxr->rx_pg_cons; 3030 u16 pg_cons = rxr->rx_pg_cons;
3027 u16 pg_prod = rxr->rx_pg_prod; 3031 u16 pg_prod = rxr->rx_pg_prod;
3028 3032
@@ -3065,7 +3069,7 @@ error:
3065 rx_pg->page = NULL; 3069 rx_pg->page = NULL;
3066 3070
3067 err = bnx2_alloc_rx_page(bp, rxr, 3071 err = bnx2_alloc_rx_page(bp, rxr,
3068 RX_PG_RING_IDX(pg_prod), 3072 BNX2_RX_PG_RING_IDX(pg_prod),
3069 GFP_ATOMIC); 3073 GFP_ATOMIC);
3070 if (unlikely(err)) { 3074 if (unlikely(err)) {
3071 rxr->rx_pg_cons = pg_cons; 3075 rxr->rx_pg_cons = pg_cons;
@@ -3083,8 +3087,8 @@ error:
3083 skb->truesize += PAGE_SIZE; 3087 skb->truesize += PAGE_SIZE;
3084 skb->len += frag_len; 3088 skb->len += frag_len;
3085 3089
3086 pg_prod = NEXT_RX_BD(pg_prod); 3090 pg_prod = BNX2_NEXT_RX_BD(pg_prod);
3087 pg_cons = RX_PG_RING_IDX(NEXT_RX_BD(pg_cons)); 3091 pg_cons = BNX2_RX_PG_RING_IDX(BNX2_NEXT_RX_BD(pg_cons));
3088 } 3092 }
3089 rxr->rx_pg_prod = pg_prod; 3093 rxr->rx_pg_prod = pg_prod;
3090 rxr->rx_pg_cons = pg_cons; 3094 rxr->rx_pg_cons = pg_cons;
@@ -3101,7 +3105,7 @@ bnx2_get_hw_rx_cons(struct bnx2_napi *bnapi)
3101 barrier(); 3105 barrier();
3102 cons = *bnapi->hw_rx_cons_ptr; 3106 cons = *bnapi->hw_rx_cons_ptr;
3103 barrier(); 3107 barrier();
3104 if (unlikely((cons & MAX_RX_DESC_CNT) == MAX_RX_DESC_CNT)) 3108 if (unlikely((cons & BNX2_MAX_RX_DESC_CNT) == BNX2_MAX_RX_DESC_CNT))
3105 cons++; 3109 cons++;
3106 return cons; 3110 return cons;
3107} 3111}
@@ -3125,13 +3129,14 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
3125 while (sw_cons != hw_cons) { 3129 while (sw_cons != hw_cons) {
3126 unsigned int len, hdr_len; 3130 unsigned int len, hdr_len;
3127 u32 status; 3131 u32 status;
3128 struct sw_bd *rx_buf, *next_rx_buf; 3132 struct bnx2_sw_bd *rx_buf, *next_rx_buf;
3129 struct sk_buff *skb; 3133 struct sk_buff *skb;
3130 dma_addr_t dma_addr; 3134 dma_addr_t dma_addr;
3131 u8 *data; 3135 u8 *data;
3136 u16 next_ring_idx;
3132 3137
3133 sw_ring_cons = RX_RING_IDX(sw_cons); 3138 sw_ring_cons = BNX2_RX_RING_IDX(sw_cons);
3134 sw_ring_prod = RX_RING_IDX(sw_prod); 3139 sw_ring_prod = BNX2_RX_RING_IDX(sw_prod);
3135 3140
3136 rx_buf = &rxr->rx_buf_ring[sw_ring_cons]; 3141 rx_buf = &rxr->rx_buf_ring[sw_ring_cons];
3137 data = rx_buf->data; 3142 data = rx_buf->data;
@@ -3146,8 +3151,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
3146 BNX2_RX_OFFSET + BNX2_RX_COPY_THRESH, 3151 BNX2_RX_OFFSET + BNX2_RX_COPY_THRESH,
3147 PCI_DMA_FROMDEVICE); 3152 PCI_DMA_FROMDEVICE);
3148 3153
3149 next_rx_buf = 3154 next_ring_idx = BNX2_RX_RING_IDX(BNX2_NEXT_RX_BD(sw_cons));
3150 &rxr->rx_buf_ring[RX_RING_IDX(NEXT_RX_BD(sw_cons))]; 3155 next_rx_buf = &rxr->rx_buf_ring[next_ring_idx];
3151 prefetch(get_l2_fhdr(next_rx_buf->data)); 3156 prefetch(get_l2_fhdr(next_rx_buf->data));
3152 3157
3153 len = rx_hdr->l2_fhdr_pkt_len; 3158 len = rx_hdr->l2_fhdr_pkt_len;
@@ -3239,8 +3244,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
3239 rx_pkt++; 3244 rx_pkt++;
3240 3245
3241next_rx: 3246next_rx:
3242 sw_cons = NEXT_RX_BD(sw_cons); 3247 sw_cons = BNX2_NEXT_RX_BD(sw_cons);
3243 sw_prod = NEXT_RX_BD(sw_prod); 3248 sw_prod = BNX2_NEXT_RX_BD(sw_prod);
3244 3249
3245 if ((rx_pkt == budget)) 3250 if ((rx_pkt == budget))
3246 break; 3251 break;
@@ -4907,13 +4912,13 @@ bnx2_init_chip(struct bnx2 *bp)
4907 BNX2_WR(bp, BNX2_MQ_KNL_BYP_WIND_START, val); 4912 BNX2_WR(bp, BNX2_MQ_KNL_BYP_WIND_START, val);
4908 BNX2_WR(bp, BNX2_MQ_KNL_WIND_END, val); 4913 BNX2_WR(bp, BNX2_MQ_KNL_WIND_END, val);
4909 4914
4910 val = (BCM_PAGE_BITS - 8) << 24; 4915 val = (BNX2_PAGE_BITS - 8) << 24;
4911 BNX2_WR(bp, BNX2_RV2P_CONFIG, val); 4916 BNX2_WR(bp, BNX2_RV2P_CONFIG, val);
4912 4917
4913 /* Configure page size. */ 4918 /* Configure page size. */
4914 val = BNX2_RD(bp, BNX2_TBDR_CONFIG); 4919 val = BNX2_RD(bp, BNX2_TBDR_CONFIG);
4915 val &= ~BNX2_TBDR_CONFIG_PAGE_SIZE; 4920 val &= ~BNX2_TBDR_CONFIG_PAGE_SIZE;
4916 val |= (BCM_PAGE_BITS - 8) << 24 | 0x40; 4921 val |= (BNX2_PAGE_BITS - 8) << 24 | 0x40;
4917 BNX2_WR(bp, BNX2_TBDR_CONFIG, val); 4922 BNX2_WR(bp, BNX2_TBDR_CONFIG, val);
4918 4923
4919 val = bp->mac_addr[0] + 4924 val = bp->mac_addr[0] +
@@ -5113,7 +5118,7 @@ bnx2_init_tx_context(struct bnx2 *bp, u32 cid, struct bnx2_tx_ring_info *txr)
5113static void 5118static void
5114bnx2_init_tx_ring(struct bnx2 *bp, int ring_num) 5119bnx2_init_tx_ring(struct bnx2 *bp, int ring_num)
5115{ 5120{
5116 struct tx_bd *txbd; 5121 struct bnx2_tx_bd *txbd;
5117 u32 cid = TX_CID; 5122 u32 cid = TX_CID;
5118 struct bnx2_napi *bnapi; 5123 struct bnx2_napi *bnapi;
5119 struct bnx2_tx_ring_info *txr; 5124 struct bnx2_tx_ring_info *txr;
@@ -5128,7 +5133,7 @@ bnx2_init_tx_ring(struct bnx2 *bp, int ring_num)
5128 5133
5129 bp->tx_wake_thresh = bp->tx_ring_size / 2; 5134 bp->tx_wake_thresh = bp->tx_ring_size / 2;
5130 5135
5131 txbd = &txr->tx_desc_ring[MAX_TX_DESC_CNT]; 5136 txbd = &txr->tx_desc_ring[BNX2_MAX_TX_DESC_CNT];
5132 5137
5133 txbd->tx_bd_haddr_hi = (u64) txr->tx_desc_mapping >> 32; 5138 txbd->tx_bd_haddr_hi = (u64) txr->tx_desc_mapping >> 32;
5134 txbd->tx_bd_haddr_lo = (u64) txr->tx_desc_mapping & 0xffffffff; 5139 txbd->tx_bd_haddr_lo = (u64) txr->tx_desc_mapping & 0xffffffff;
@@ -5143,17 +5148,17 @@ bnx2_init_tx_ring(struct bnx2 *bp, int ring_num)
5143} 5148}
5144 5149
5145static void 5150static void
5146bnx2_init_rxbd_rings(struct rx_bd *rx_ring[], dma_addr_t dma[], u32 buf_size, 5151bnx2_init_rxbd_rings(struct bnx2_rx_bd *rx_ring[], dma_addr_t dma[],
5147 int num_rings) 5152 u32 buf_size, int num_rings)
5148{ 5153{
5149 int i; 5154 int i;
5150 struct rx_bd *rxbd; 5155 struct bnx2_rx_bd *rxbd;
5151 5156
5152 for (i = 0; i < num_rings; i++) { 5157 for (i = 0; i < num_rings; i++) {
5153 int j; 5158 int j;
5154 5159
5155 rxbd = &rx_ring[i][0]; 5160 rxbd = &rx_ring[i][0];
5156 for (j = 0; j < MAX_RX_DESC_CNT; j++, rxbd++) { 5161 for (j = 0; j < BNX2_MAX_RX_DESC_CNT; j++, rxbd++) {
5157 rxbd->rx_bd_len = buf_size; 5162 rxbd->rx_bd_len = buf_size;
5158 rxbd->rx_bd_flags = RX_BD_FLAGS_START | RX_BD_FLAGS_END; 5163 rxbd->rx_bd_flags = RX_BD_FLAGS_START | RX_BD_FLAGS_END;
5159 } 5164 }
@@ -5225,8 +5230,8 @@ bnx2_init_rx_ring(struct bnx2 *bp, int ring_num)
5225 ring_num, i, bp->rx_pg_ring_size); 5230 ring_num, i, bp->rx_pg_ring_size);
5226 break; 5231 break;
5227 } 5232 }
5228 prod = NEXT_RX_BD(prod); 5233 prod = BNX2_NEXT_RX_BD(prod);
5229 ring_prod = RX_PG_RING_IDX(prod); 5234 ring_prod = BNX2_RX_PG_RING_IDX(prod);
5230 } 5235 }
5231 rxr->rx_pg_prod = prod; 5236 rxr->rx_pg_prod = prod;
5232 5237
@@ -5237,8 +5242,8 @@ bnx2_init_rx_ring(struct bnx2 *bp, int ring_num)
5237 ring_num, i, bp->rx_ring_size); 5242 ring_num, i, bp->rx_ring_size);
5238 break; 5243 break;
5239 } 5244 }
5240 prod = NEXT_RX_BD(prod); 5245 prod = BNX2_NEXT_RX_BD(prod);
5241 ring_prod = RX_RING_IDX(prod); 5246 ring_prod = BNX2_RX_RING_IDX(prod);
5242 } 5247 }
5243 rxr->rx_prod = prod; 5248 rxr->rx_prod = prod;
5244 5249
@@ -5303,8 +5308,8 @@ static u32 bnx2_find_max_ring(u32 ring_size, u32 max_size)
5303{ 5308{
5304 u32 max, num_rings = 1; 5309 u32 max, num_rings = 1;
5305 5310
5306 while (ring_size > MAX_RX_DESC_CNT) { 5311 while (ring_size > BNX2_MAX_RX_DESC_CNT) {
5307 ring_size -= MAX_RX_DESC_CNT; 5312 ring_size -= BNX2_MAX_RX_DESC_CNT;
5308 num_rings++; 5313 num_rings++;
5309 } 5314 }
5310 /* round to next power of 2 */ 5315 /* round to next power of 2 */
@@ -5337,13 +5342,14 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size)
5337 int pages = PAGE_ALIGN(bp->dev->mtu - 40) >> PAGE_SHIFT; 5342 int pages = PAGE_ALIGN(bp->dev->mtu - 40) >> PAGE_SHIFT;
5338 5343
5339 jumbo_size = size * pages; 5344 jumbo_size = size * pages;
5340 if (jumbo_size > MAX_TOTAL_RX_PG_DESC_CNT) 5345 if (jumbo_size > BNX2_MAX_TOTAL_RX_PG_DESC_CNT)
5341 jumbo_size = MAX_TOTAL_RX_PG_DESC_CNT; 5346 jumbo_size = BNX2_MAX_TOTAL_RX_PG_DESC_CNT;
5342 5347
5343 bp->rx_pg_ring_size = jumbo_size; 5348 bp->rx_pg_ring_size = jumbo_size;
5344 bp->rx_max_pg_ring = bnx2_find_max_ring(jumbo_size, 5349 bp->rx_max_pg_ring = bnx2_find_max_ring(jumbo_size,
5345 MAX_RX_PG_RINGS); 5350 BNX2_MAX_RX_PG_RINGS);
5346 bp->rx_max_pg_ring_idx = (bp->rx_max_pg_ring * RX_DESC_CNT) - 1; 5351 bp->rx_max_pg_ring_idx =
5352 (bp->rx_max_pg_ring * BNX2_RX_DESC_CNT) - 1;
5347 rx_size = BNX2_RX_COPY_THRESH + BNX2_RX_OFFSET; 5353 rx_size = BNX2_RX_COPY_THRESH + BNX2_RX_OFFSET;
5348 bp->rx_copy_thresh = 0; 5354 bp->rx_copy_thresh = 0;
5349 } 5355 }
@@ -5354,8 +5360,8 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size)
5354 NET_SKB_PAD + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); 5360 NET_SKB_PAD + SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
5355 bp->rx_jumbo_thresh = rx_size - BNX2_RX_OFFSET; 5361 bp->rx_jumbo_thresh = rx_size - BNX2_RX_OFFSET;
5356 bp->rx_ring_size = size; 5362 bp->rx_ring_size = size;
5357 bp->rx_max_ring = bnx2_find_max_ring(size, MAX_RX_RINGS); 5363 bp->rx_max_ring = bnx2_find_max_ring(size, BNX2_MAX_RX_RINGS);
5358 bp->rx_max_ring_idx = (bp->rx_max_ring * RX_DESC_CNT) - 1; 5364 bp->rx_max_ring_idx = (bp->rx_max_ring * BNX2_RX_DESC_CNT) - 1;
5359} 5365}
5360 5366
5361static void 5367static void
@@ -5371,13 +5377,13 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
5371 if (txr->tx_buf_ring == NULL) 5377 if (txr->tx_buf_ring == NULL)
5372 continue; 5378 continue;
5373 5379
5374 for (j = 0; j < TX_DESC_CNT; ) { 5380 for (j = 0; j < BNX2_TX_DESC_CNT; ) {
5375 struct sw_tx_bd *tx_buf = &txr->tx_buf_ring[j]; 5381 struct bnx2_sw_tx_bd *tx_buf = &txr->tx_buf_ring[j];
5376 struct sk_buff *skb = tx_buf->skb; 5382 struct sk_buff *skb = tx_buf->skb;
5377 int k, last; 5383 int k, last;
5378 5384
5379 if (skb == NULL) { 5385 if (skb == NULL) {
5380 j = NEXT_TX_BD(j); 5386 j = BNX2_NEXT_TX_BD(j);
5381 continue; 5387 continue;
5382 } 5388 }
5383 5389
@@ -5389,9 +5395,9 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
5389 tx_buf->skb = NULL; 5395 tx_buf->skb = NULL;
5390 5396
5391 last = tx_buf->nr_frags; 5397 last = tx_buf->nr_frags;
5392 j = NEXT_TX_BD(j); 5398 j = BNX2_NEXT_TX_BD(j);
5393 for (k = 0; k < last; k++, j = NEXT_TX_BD(j)) { 5399 for (k = 0; k < last; k++, j = BNX2_NEXT_TX_BD(j)) {
5394 tx_buf = &txr->tx_buf_ring[TX_RING_IDX(j)]; 5400 tx_buf = &txr->tx_buf_ring[BNX2_TX_RING_IDX(j)];
5395 dma_unmap_page(&bp->pdev->dev, 5401 dma_unmap_page(&bp->pdev->dev,
5396 dma_unmap_addr(tx_buf, mapping), 5402 dma_unmap_addr(tx_buf, mapping),
5397 skb_frag_size(&skb_shinfo(skb)->frags[k]), 5403 skb_frag_size(&skb_shinfo(skb)->frags[k]),
@@ -5417,7 +5423,7 @@ bnx2_free_rx_skbs(struct bnx2 *bp)
5417 return; 5423 return;
5418 5424
5419 for (j = 0; j < bp->rx_max_ring_idx; j++) { 5425 for (j = 0; j < bp->rx_max_ring_idx; j++) {
5420 struct sw_bd *rx_buf = &rxr->rx_buf_ring[j]; 5426 struct bnx2_sw_bd *rx_buf = &rxr->rx_buf_ring[j];
5421 u8 *data = rx_buf->data; 5427 u8 *data = rx_buf->data;
5422 5428
5423 if (data == NULL) 5429 if (data == NULL)
@@ -5741,8 +5747,8 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode)
5741 unsigned char *packet; 5747 unsigned char *packet;
5742 u16 rx_start_idx, rx_idx; 5748 u16 rx_start_idx, rx_idx;
5743 dma_addr_t map; 5749 dma_addr_t map;
5744 struct tx_bd *txbd; 5750 struct bnx2_tx_bd *txbd;
5745 struct sw_bd *rx_buf; 5751 struct bnx2_sw_bd *rx_buf;
5746 struct l2_fhdr *rx_hdr; 5752 struct l2_fhdr *rx_hdr;
5747 int ret = -ENODEV; 5753 int ret = -ENODEV;
5748 struct bnx2_napi *bnapi = &bp->bnx2_napi[0], *tx_napi; 5754 struct bnx2_napi *bnapi = &bp->bnx2_napi[0], *tx_napi;
@@ -5794,7 +5800,7 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode)
5794 5800
5795 num_pkts = 0; 5801 num_pkts = 0;
5796 5802
5797 txbd = &txr->tx_desc_ring[TX_RING_IDX(txr->tx_prod)]; 5803 txbd = &txr->tx_desc_ring[BNX2_TX_RING_IDX(txr->tx_prod)];
5798 5804
5799 txbd->tx_bd_haddr_hi = (u64) map >> 32; 5805 txbd->tx_bd_haddr_hi = (u64) map >> 32;
5800 txbd->tx_bd_haddr_lo = (u64) map & 0xffffffff; 5806 txbd->tx_bd_haddr_lo = (u64) map & 0xffffffff;
@@ -5802,7 +5808,7 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode)
5802 txbd->tx_bd_vlan_tag_flags = TX_BD_FLAGS_START | TX_BD_FLAGS_END; 5808 txbd->tx_bd_vlan_tag_flags = TX_BD_FLAGS_START | TX_BD_FLAGS_END;
5803 5809
5804 num_pkts++; 5810 num_pkts++;
5805 txr->tx_prod = NEXT_TX_BD(txr->tx_prod); 5811 txr->tx_prod = BNX2_NEXT_TX_BD(txr->tx_prod);
5806 txr->tx_prod_bseq += pkt_size; 5812 txr->tx_prod_bseq += pkt_size;
5807 5813
5808 BNX2_WR16(bp, txr->tx_bidx_addr, txr->tx_prod); 5814 BNX2_WR16(bp, txr->tx_bidx_addr, txr->tx_prod);
@@ -6533,8 +6539,8 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
6533{ 6539{
6534 struct bnx2 *bp = netdev_priv(dev); 6540 struct bnx2 *bp = netdev_priv(dev);
6535 dma_addr_t mapping; 6541 dma_addr_t mapping;
6536 struct tx_bd *txbd; 6542 struct bnx2_tx_bd *txbd;
6537 struct sw_tx_bd *tx_buf; 6543 struct bnx2_sw_tx_bd *tx_buf;
6538 u32 len, vlan_tag_flags, last_frag, mss; 6544 u32 len, vlan_tag_flags, last_frag, mss;
6539 u16 prod, ring_prod; 6545 u16 prod, ring_prod;
6540 int i; 6546 int i;
@@ -6557,7 +6563,7 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
6557 } 6563 }
6558 len = skb_headlen(skb); 6564 len = skb_headlen(skb);
6559 prod = txr->tx_prod; 6565 prod = txr->tx_prod;
6560 ring_prod = TX_RING_IDX(prod); 6566 ring_prod = BNX2_TX_RING_IDX(prod);
6561 6567
6562 vlan_tag_flags = 0; 6568 vlan_tag_flags = 0;
6563 if (skb->ip_summed == CHECKSUM_PARTIAL) { 6569 if (skb->ip_summed == CHECKSUM_PARTIAL) {
@@ -6627,8 +6633,8 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
6627 for (i = 0; i < last_frag; i++) { 6633 for (i = 0; i < last_frag; i++) {
6628 const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 6634 const skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
6629 6635
6630 prod = NEXT_TX_BD(prod); 6636 prod = BNX2_NEXT_TX_BD(prod);
6631 ring_prod = TX_RING_IDX(prod); 6637 ring_prod = BNX2_TX_RING_IDX(prod);
6632 txbd = &txr->tx_desc_ring[ring_prod]; 6638 txbd = &txr->tx_desc_ring[ring_prod];
6633 6639
6634 len = skb_frag_size(frag); 6640 len = skb_frag_size(frag);
@@ -6652,7 +6658,7 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
6652 6658
6653 netdev_tx_sent_queue(txq, skb->len); 6659 netdev_tx_sent_queue(txq, skb->len);
6654 6660
6655 prod = NEXT_TX_BD(prod); 6661 prod = BNX2_NEXT_TX_BD(prod);
6656 txr->tx_prod_bseq += skb->len; 6662 txr->tx_prod_bseq += skb->len;
6657 6663
6658 BNX2_WR16(bp, txr->tx_bidx_addr, prod); 6664 BNX2_WR16(bp, txr->tx_bidx_addr, prod);
@@ -6682,7 +6688,7 @@ dma_error:
6682 6688
6683 /* start back at beginning and unmap skb */ 6689 /* start back at beginning and unmap skb */
6684 prod = txr->tx_prod; 6690 prod = txr->tx_prod;
6685 ring_prod = TX_RING_IDX(prod); 6691 ring_prod = BNX2_TX_RING_IDX(prod);
6686 tx_buf = &txr->tx_buf_ring[ring_prod]; 6692 tx_buf = &txr->tx_buf_ring[ring_prod];
6687 tx_buf->skb = NULL; 6693 tx_buf->skb = NULL;
6688 dma_unmap_single(&bp->pdev->dev, dma_unmap_addr(tx_buf, mapping), 6694 dma_unmap_single(&bp->pdev->dev, dma_unmap_addr(tx_buf, mapping),
@@ -6690,8 +6696,8 @@ dma_error:
6690 6696
6691 /* unmap remaining mapped pages */ 6697 /* unmap remaining mapped pages */
6692 for (i = 0; i < last_frag; i++) { 6698 for (i = 0; i < last_frag; i++) {
6693 prod = NEXT_TX_BD(prod); 6699 prod = BNX2_NEXT_TX_BD(prod);
6694 ring_prod = TX_RING_IDX(prod); 6700 ring_prod = BNX2_TX_RING_IDX(prod);
6695 tx_buf = &txr->tx_buf_ring[ring_prod]; 6701 tx_buf = &txr->tx_buf_ring[ring_prod];
6696 dma_unmap_page(&bp->pdev->dev, dma_unmap_addr(tx_buf, mapping), 6702 dma_unmap_page(&bp->pdev->dev, dma_unmap_addr(tx_buf, mapping),
6697 skb_frag_size(&skb_shinfo(skb)->frags[i]), 6703 skb_frag_size(&skb_shinfo(skb)->frags[i]),
@@ -7254,13 +7260,13 @@ bnx2_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
7254{ 7260{
7255 struct bnx2 *bp = netdev_priv(dev); 7261 struct bnx2 *bp = netdev_priv(dev);
7256 7262
7257 ering->rx_max_pending = MAX_TOTAL_RX_DESC_CNT; 7263 ering->rx_max_pending = BNX2_MAX_TOTAL_RX_DESC_CNT;
7258 ering->rx_jumbo_max_pending = MAX_TOTAL_RX_PG_DESC_CNT; 7264 ering->rx_jumbo_max_pending = BNX2_MAX_TOTAL_RX_PG_DESC_CNT;
7259 7265
7260 ering->rx_pending = bp->rx_ring_size; 7266 ering->rx_pending = bp->rx_ring_size;
7261 ering->rx_jumbo_pending = bp->rx_pg_ring_size; 7267 ering->rx_jumbo_pending = bp->rx_pg_ring_size;
7262 7268
7263 ering->tx_max_pending = MAX_TX_DESC_CNT; 7269 ering->tx_max_pending = BNX2_MAX_TX_DESC_CNT;
7264 ering->tx_pending = bp->tx_ring_size; 7270 ering->tx_pending = bp->tx_ring_size;
7265} 7271}
7266 7272
@@ -7326,8 +7332,8 @@ bnx2_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering)
7326 struct bnx2 *bp = netdev_priv(dev); 7332 struct bnx2 *bp = netdev_priv(dev);
7327 int rc; 7333 int rc;
7328 7334
7329 if ((ering->rx_pending > MAX_TOTAL_RX_DESC_CNT) || 7335 if ((ering->rx_pending > BNX2_MAX_TOTAL_RX_DESC_CNT) ||
7330 (ering->tx_pending > MAX_TX_DESC_CNT) || 7336 (ering->tx_pending > BNX2_MAX_TX_DESC_CNT) ||
7331 (ering->tx_pending <= MAX_SKB_FRAGS)) { 7337 (ering->tx_pending <= MAX_SKB_FRAGS)) {
7332 7338
7333 return -EINVAL; 7339 return -EINVAL;
@@ -8299,7 +8305,7 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
8299 bp->mac_addr[4] = (u8) (reg >> 8); 8305 bp->mac_addr[4] = (u8) (reg >> 8);
8300 bp->mac_addr[5] = (u8) reg; 8306 bp->mac_addr[5] = (u8) reg;
8301 8307
8302 bp->tx_ring_size = MAX_TX_DESC_CNT; 8308 bp->tx_ring_size = BNX2_MAX_TX_DESC_CNT;
8303 bnx2_set_rx_ring_size(bp, 255); 8309 bnx2_set_rx_ring_size(bp, 255);
8304 8310
8305 bp->tx_quick_cons_trip_int = 2; 8311 bp->tx_quick_cons_trip_int = 2;