Changeset 35833


Ignore:
Timestamp:
2013-02-28T14:24:39+01:00 (5 years ago)
Author:
hauke
Message:

brcm47xx: bgmac: update to version form netdev git repository

Location:
trunk/target/linux/brcm47xx
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm47xx/patches-3.6/760-bgmac-fixes.patch

    r35621 r35833  
    11--- a/drivers/net/ethernet/broadcom/bgmac.c 
    22+++ b/drivers/net/ethernet/broadcom/bgmac.c 
    3 @@ -301,8 +301,9 @@ static int bgmac_dma_rx_read(struct bgma 
     3@@ -301,7 +301,7 @@ static int bgmac_dma_rx_read(struct bgma 
    44                        bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n", 
    55                                  ring->start); 
    66                } else { 
    77-                       new_skb = netdev_alloc_skb(bgmac->net_dev, len); 
    8 +                       new_skb = netdev_alloc_skb(bgmac->net_dev, len + 2); 
     8+                       new_skb = netdev_alloc_skb_ip_align(bgmac->net_dev, len); 
    99                        if (new_skb) { 
    10 +                               skb_reserve(new_skb, 2); 
    1110                                skb_put(new_skb, len); 
    1211                                skb_copy_from_linear_data_offset(skb, BGMAC_RX_FRAME_OFFSET, 
    13                                                                  new_skb->data, 
    14 @@ -535,7 +536,7 @@ static void bgmac_dma_init(struct bgmac 
     12@@ -436,6 +436,8 @@ static int bgmac_dma_alloc(struct bgmac 
     13        } 
     14  
     15        for (i = 0; i < BGMAC_MAX_RX_RINGS; i++) { 
     16+               int j; 
     17+ 
     18                ring = &bgmac->rx_ring[i]; 
     19                ring->num_slots = BGMAC_RX_RING_SLOTS; 
     20                ring->mmio_base = ring_base[i]; 
     21@@ -458,8 +460,8 @@ static int bgmac_dma_alloc(struct bgmac 
     22                        bgmac_warn(bgmac, "DMA address using 0xC0000000 bit(s), it may need translation trick\n"); 
     23  
     24                /* Alloc RX slots */ 
     25-               for (i = 0; i < ring->num_slots; i++) { 
     26-                       err = bgmac_dma_rx_skb_for_slot(bgmac, &ring->slots[i]); 
     27+               for (j = 0; j < ring->num_slots; j++) { 
     28+                       err = bgmac_dma_rx_skb_for_slot(bgmac, &ring->slots[j]); 
     29                        if (err) { 
     30                                bgmac_err(bgmac, "Can't allocate skb for slot in RX ring\n"); 
     31                                goto err_dma_free; 
     32@@ -496,6 +498,8 @@ static void bgmac_dma_init(struct bgmac 
     33        } 
     34  
     35        for (i = 0; i < BGMAC_MAX_RX_RINGS; i++) { 
     36+               int j; 
     37+ 
     38                ring = &bgmac->rx_ring[i]; 
     39  
     40                /* We don't implement unaligned addressing, so enable first */ 
     41@@ -505,11 +509,11 @@ static void bgmac_dma_init(struct bgmac 
     42                bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_RINGHI, 
     43                            upper_32_bits(ring->dma_base)); 
     44  
     45-               for (i = 0, dma_desc = ring->cpu_base; i < ring->num_slots; 
     46-                    i++, dma_desc++) { 
     47+               for (j = 0, dma_desc = ring->cpu_base; j < ring->num_slots; 
     48+                    j++, dma_desc++) { 
     49                        ctl0 = ctl1 = 0; 
     50  
     51-                       if (i == ring->num_slots - 1) 
     52+                       if (j == ring->num_slots - 1) 
     53                                ctl0 |= BGMAC_DESC_CTL0_EOT; 
     54                        ctl1 |= BGMAC_RX_BUF_SIZE & BGMAC_DESC_CTL1_LEN; 
     55                        /* Is there any BGMAC device that requires extension? */ 
     56@@ -517,8 +521,8 @@ static void bgmac_dma_init(struct bgmac 
     57                         * B43_DMA64_DCTL1_ADDREXT_MASK; 
     58                         */ 
     59  
     60-                       dma_desc->addr_low = cpu_to_le32(lower_32_bits(ring->slots[i].dma_addr)); 
     61-                       dma_desc->addr_high = cpu_to_le32(upper_32_bits(ring->slots[i].dma_addr)); 
     62+                       dma_desc->addr_low = cpu_to_le32(lower_32_bits(ring->slots[j].dma_addr)); 
     63+                       dma_desc->addr_high = cpu_to_le32(upper_32_bits(ring->slots[j].dma_addr)); 
     64                        dma_desc->ctl0 = cpu_to_le32(ctl0); 
     65                        dma_desc->ctl1 = cpu_to_le32(ctl1); 
     66                } 
     67@@ -535,7 +539,7 @@ static void bgmac_dma_init(struct bgmac 
    1568  * PHY ops 
    1669  **************************************************/ 
     
    2174        struct bcma_device *core; 
    2275        u16 phy_access_addr; 
    23 @@ -584,7 +585,7 @@ u16 bgmac_phy_read(struct bgmac *bgmac, 
     76@@ -584,7 +588,7 @@ u16 bgmac_phy_read(struct bgmac *bgmac, 
    2477 } 
    2578  
     
    3083        struct bcma_device *core; 
    3184        u16 phy_access_addr; 
    32 @@ -617,9 +618,13 @@ void bgmac_phy_write(struct bgmac *bgmac 
     85@@ -617,9 +621,13 @@ void bgmac_phy_write(struct bgmac *bgmac 
    3386        tmp |= value; 
    3487        bcma_write32(core, phy_access_addr, tmp); 
     
    4598  
    4699 /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipphyforce */ 
    47 @@ -761,6 +766,26 @@ static void bgmac_cmdcfg_maskset(struct 
     100@@ -761,6 +769,26 @@ static void bgmac_cmdcfg_maskset(struct 
    48101        udelay(2); 
    49102 } 
     
    72125 static void bgmac_chip_stats_update(struct bgmac *bgmac) 
    73126 { 
    74 @@ -889,8 +914,10 @@ static void bgmac_chip_reset(struct bgma 
     127@@ -889,8 +917,10 @@ static void bgmac_chip_reset(struct bgma 
    75128                        sw_type = et_swtype; 
    76129                } else if (ci->id == BCMA_CHIP_ID_BCM5357 && ci->pkg == 9) { 
     
    85138                bcma_chipco_chipctl_maskset(cc, 1, 
    86139                                            ~(BGMAC_CHIPCTL_1_IF_TYPE_MASK | 
    87 @@ -948,6 +975,7 @@ static void bgmac_chip_intrs_on(struct b 
     140@@ -948,6 +978,7 @@ static void bgmac_chip_intrs_on(struct b 
    88141 static void bgmac_chip_intrs_off(struct bgmac *bgmac) 
    89142 { 
     
    93146  
    94147 /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/gmac_enable */ 
    95 @@ -1004,8 +1032,6 @@ static void bgmac_enable(struct bgmac *b 
     148@@ -1004,8 +1035,6 @@ static void bgmac_enable(struct bgmac *b 
    96149 static void bgmac_chip_init(struct bgmac *bgmac, bool full_init) 
    97150 { 
     
    102155  
    103156        /* 1 interrupt per received frame */ 
    104 @@ -1014,21 +1040,14 @@ static void bgmac_chip_init(struct bgmac 
     157@@ -1014,21 +1043,14 @@ static void bgmac_chip_init(struct bgmac 
    105158        /* Enable 802.3x tx flow control (honor received PAUSE frames) */ 
    106159        bgmac_cmdcfg_maskset(bgmac, ~BGMAC_CMDCFG_RPI, 0, true); 
     
    128181        bgmac_write(bgmac, BGMAC_RXMAX_LENGTH, 32 + ETHER_MAX_LEN); 
    129182  
    130 @@ -1160,6 +1179,19 @@ static netdev_tx_t bgmac_start_xmit(stru 
     183@@ -1160,6 +1182,19 @@ static netdev_tx_t bgmac_start_xmit(stru 
    131184        return bgmac_dma_tx_add(bgmac, ring, skb); 
    132185 } 
     
    148201 { 
    149202        struct bgmac *bgmac = netdev_priv(net_dev); 
    150 @@ -1190,7 +1222,9 @@ static const struct net_device_ops bgmac 
     203@@ -1190,7 +1225,9 @@ static const struct net_device_ops bgmac 
    151204        .ndo_open               = bgmac_open, 
    152205        .ndo_stop               = bgmac_stop, 
     
    159212 }; 
    160213  
    161 @@ -1290,6 +1324,12 @@ static int bgmac_probe(struct bcma_devic 
     214@@ -1290,6 +1327,12 @@ static int bgmac_probe(struct bcma_devic 
    162215                return -ENOTSUPP; 
    163216        } 
  • trunk/target/linux/brcm47xx/patches-3.8/760-bgmac-fixes.patch

    r35632 r35833  
    1010                                skb_put(new_skb, len); 
    1111                                skb_copy_from_linear_data_offset(skb, BGMAC_RX_FRAME_OFFSET, 
    12 @@ -535,7 +535,7 @@ static void bgmac_dma_init(struct bgmac 
     12@@ -436,6 +436,8 @@ static int bgmac_dma_alloc(struct bgmac 
     13        } 
     14  
     15        for (i = 0; i < BGMAC_MAX_RX_RINGS; i++) { 
     16+               int j; 
     17+ 
     18                ring = &bgmac->rx_ring[i]; 
     19                ring->num_slots = BGMAC_RX_RING_SLOTS; 
     20                ring->mmio_base = ring_base[i]; 
     21@@ -458,8 +460,8 @@ static int bgmac_dma_alloc(struct bgmac 
     22                        bgmac_warn(bgmac, "DMA address using 0xC0000000 bit(s), it may need translation trick\n"); 
     23  
     24                /* Alloc RX slots */ 
     25-               for (i = 0; i < ring->num_slots; i++) { 
     26-                       err = bgmac_dma_rx_skb_for_slot(bgmac, &ring->slots[i]); 
     27+               for (j = 0; j < ring->num_slots; j++) { 
     28+                       err = bgmac_dma_rx_skb_for_slot(bgmac, &ring->slots[j]); 
     29                        if (err) { 
     30                                bgmac_err(bgmac, "Can't allocate skb for slot in RX ring\n"); 
     31                                goto err_dma_free; 
     32@@ -496,6 +498,8 @@ static void bgmac_dma_init(struct bgmac 
     33        } 
     34  
     35        for (i = 0; i < BGMAC_MAX_RX_RINGS; i++) { 
     36+               int j; 
     37+ 
     38                ring = &bgmac->rx_ring[i]; 
     39  
     40                /* We don't implement unaligned addressing, so enable first */ 
     41@@ -505,11 +509,11 @@ static void bgmac_dma_init(struct bgmac 
     42                bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_RINGHI, 
     43                            upper_32_bits(ring->dma_base)); 
     44  
     45-               for (i = 0, dma_desc = ring->cpu_base; i < ring->num_slots; 
     46-                    i++, dma_desc++) { 
     47+               for (j = 0, dma_desc = ring->cpu_base; j < ring->num_slots; 
     48+                    j++, dma_desc++) { 
     49                        ctl0 = ctl1 = 0; 
     50  
     51-                       if (i == ring->num_slots - 1) 
     52+                       if (j == ring->num_slots - 1) 
     53                                ctl0 |= BGMAC_DESC_CTL0_EOT; 
     54                        ctl1 |= BGMAC_RX_BUF_SIZE & BGMAC_DESC_CTL1_LEN; 
     55                        /* Is there any BGMAC device that requires extension? */ 
     56@@ -517,8 +521,8 @@ static void bgmac_dma_init(struct bgmac 
     57                         * B43_DMA64_DCTL1_ADDREXT_MASK; 
     58                         */ 
     59  
     60-                       dma_desc->addr_low = cpu_to_le32(lower_32_bits(ring->slots[i].dma_addr)); 
     61-                       dma_desc->addr_high = cpu_to_le32(upper_32_bits(ring->slots[i].dma_addr)); 
     62+                       dma_desc->addr_low = cpu_to_le32(lower_32_bits(ring->slots[j].dma_addr)); 
     63+                       dma_desc->addr_high = cpu_to_le32(upper_32_bits(ring->slots[j].dma_addr)); 
     64                        dma_desc->ctl0 = cpu_to_le32(ctl0); 
     65                        dma_desc->ctl1 = cpu_to_le32(ctl1); 
     66                } 
     67@@ -535,7 +539,7 @@ static void bgmac_dma_init(struct bgmac 
    1368  * PHY ops 
    1469  **************************************************/ 
     
    1974        struct bcma_device *core; 
    2075        u16 phy_access_addr; 
    21 @@ -584,7 +584,7 @@ u16 bgmac_phy_read(struct bgmac *bgmac, 
     76@@ -584,7 +588,7 @@ u16 bgmac_phy_read(struct bgmac *bgmac, 
    2277 } 
    2378  
     
    2883        struct bcma_device *core; 
    2984        u16 phy_access_addr; 
    30 @@ -617,9 +617,13 @@ void bgmac_phy_write(struct bgmac *bgmac 
     85@@ -617,9 +621,13 @@ void bgmac_phy_write(struct bgmac *bgmac 
    3186        tmp |= value; 
    3287        bcma_write32(core, phy_access_addr, tmp); 
     
    4398  
    4499 /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipphyforce */ 
    45 @@ -761,6 +765,26 @@ static void bgmac_cmdcfg_maskset(struct 
     100@@ -761,6 +769,26 @@ static void bgmac_cmdcfg_maskset(struct 
    46101        udelay(2); 
    47102 } 
     
    70125 static void bgmac_chip_stats_update(struct bgmac *bgmac) 
    71126 { 
    72 @@ -889,8 +913,10 @@ static void bgmac_chip_reset(struct bgma 
     127@@ -889,8 +917,10 @@ static void bgmac_chip_reset(struct bgma 
    73128                        sw_type = et_swtype; 
    74129                } else if (ci->id == BCMA_CHIP_ID_BCM5357 && ci->pkg == 9) { 
     
    83138                bcma_chipco_chipctl_maskset(cc, 1, 
    84139                                            ~(BGMAC_CHIPCTL_1_IF_TYPE_MASK | 
    85 @@ -948,6 +974,7 @@ static void bgmac_chip_intrs_on(struct b 
     140@@ -948,6 +978,7 @@ static void bgmac_chip_intrs_on(struct b 
    86141 static void bgmac_chip_intrs_off(struct bgmac *bgmac) 
    87142 { 
     
    91146  
    92147 /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/gmac_enable */ 
    93 @@ -1004,8 +1031,6 @@ static void bgmac_enable(struct bgmac *b 
     148@@ -1004,8 +1035,6 @@ static void bgmac_enable(struct bgmac *b 
    94149 static void bgmac_chip_init(struct bgmac *bgmac, bool full_init) 
    95150 { 
     
    100155  
    101156        /* 1 interrupt per received frame */ 
    102 @@ -1014,21 +1039,14 @@ static void bgmac_chip_init(struct bgmac 
     157@@ -1014,21 +1043,14 @@ static void bgmac_chip_init(struct bgmac 
    103158        /* Enable 802.3x tx flow control (honor received PAUSE frames) */ 
    104159        bgmac_cmdcfg_maskset(bgmac, ~BGMAC_CMDCFG_RPI, 0, true); 
     
    126181        bgmac_write(bgmac, BGMAC_RXMAX_LENGTH, 32 + ETHER_MAX_LEN); 
    127182  
    128 @@ -1160,6 +1178,19 @@ static netdev_tx_t bgmac_start_xmit(stru 
     183@@ -1160,6 +1182,19 @@ static netdev_tx_t bgmac_start_xmit(stru 
    129184        return bgmac_dma_tx_add(bgmac, ring, skb); 
    130185 } 
     
    146201 { 
    147202        struct bgmac *bgmac = netdev_priv(net_dev); 
    148 @@ -1190,7 +1221,9 @@ static const struct net_device_ops bgmac 
     203@@ -1190,7 +1225,9 @@ static const struct net_device_ops bgmac 
    149204        .ndo_open               = bgmac_open, 
    150205        .ndo_stop               = bgmac_stop, 
     
    157212 }; 
    158213  
    159 @@ -1290,6 +1323,12 @@ static int bgmac_probe(struct bcma_devic 
     214@@ -1290,6 +1327,12 @@ static int bgmac_probe(struct bcma_devic 
    160215                return -ENOTSUPP; 
    161216        } 
Note: See TracChangeset for help on using the changeset viewer.