aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bgmac.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/broadcom/bgmac.c')
-rw-r--r--drivers/net/ethernet/broadcom/bgmac.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c
index e6e74ca86e60..b045dc072c40 100644
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -269,15 +269,16 @@ static void bgmac_dma_tx_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring)
269 while (ring->start != ring->end) { 269 while (ring->start != ring->end) {
270 int slot_idx = ring->start % BGMAC_TX_RING_SLOTS; 270 int slot_idx = ring->start % BGMAC_TX_RING_SLOTS;
271 struct bgmac_slot_info *slot = &ring->slots[slot_idx]; 271 struct bgmac_slot_info *slot = &ring->slots[slot_idx];
272 u32 ctl1; 272 u32 ctl0, ctl1;
273 int len; 273 int len;
274 274
275 if (slot_idx == empty_slot) 275 if (slot_idx == empty_slot)
276 break; 276 break;
277 277
278 ctl0 = le32_to_cpu(ring->cpu_base[slot_idx].ctl0);
278 ctl1 = le32_to_cpu(ring->cpu_base[slot_idx].ctl1); 279 ctl1 = le32_to_cpu(ring->cpu_base[slot_idx].ctl1);
279 len = ctl1 & BGMAC_DESC_CTL1_LEN; 280 len = ctl1 & BGMAC_DESC_CTL1_LEN;
280 if (ctl1 & BGMAC_DESC_CTL0_SOF) 281 if (ctl0 & BGMAC_DESC_CTL0_SOF)
281 /* Unmap no longer used buffer */ 282 /* Unmap no longer used buffer */
282 dma_unmap_single(dma_dev, slot->dma_addr, len, 283 dma_unmap_single(dma_dev, slot->dma_addr, len,
283 DMA_TO_DEVICE); 284 DMA_TO_DEVICE);
@@ -1322,7 +1323,8 @@ static int bgmac_open(struct net_device *net_dev)
1322 1323
1323 phy_start(net_dev->phydev); 1324 phy_start(net_dev->phydev);
1324 1325
1325 netif_carrier_on(net_dev); 1326 netif_start_queue(net_dev);
1327
1326 return 0; 1328 return 0;
1327} 1329}
1328 1330