diff options
-rw-r--r-- | drivers/net/ethernet/cadence/macb.c | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c index f25681ba6418..2ba0934e52dc 100644 --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c | |||
@@ -187,7 +187,7 @@ static void macb_get_hwaddr(struct macb *bp) | |||
187 | 187 | ||
188 | pdata = dev_get_platdata(&bp->pdev->dev); | 188 | pdata = dev_get_platdata(&bp->pdev->dev); |
189 | 189 | ||
190 | /* Check all 4 address register for vaild address */ | 190 | /* Check all 4 address register for valid address */ |
191 | for (i = 0; i < 4; i++) { | 191 | for (i = 0; i < 4; i++) { |
192 | bottom = macb_or_gem_readl(bp, SA1B + i * 8); | 192 | bottom = macb_or_gem_readl(bp, SA1B + i * 8); |
193 | top = macb_or_gem_readl(bp, SA1T + i * 8); | 193 | top = macb_or_gem_readl(bp, SA1T + i * 8); |
@@ -295,7 +295,7 @@ static void macb_set_tx_clk(struct clk *clk, int speed, struct net_device *dev) | |||
295 | ferr = DIV_ROUND_UP(ferr, rate / 100000); | 295 | ferr = DIV_ROUND_UP(ferr, rate / 100000); |
296 | if (ferr > 5) | 296 | if (ferr > 5) |
297 | netdev_warn(dev, "unable to generate target frequency: %ld Hz\n", | 297 | netdev_warn(dev, "unable to generate target frequency: %ld Hz\n", |
298 | rate); | 298 | rate); |
299 | 299 | ||
300 | if (clk_set_rate(clk, rate_rounded)) | 300 | if (clk_set_rate(clk, rate_rounded)) |
301 | netdev_err(dev, "adjusting tx_clk failed.\n"); | 301 | netdev_err(dev, "adjusting tx_clk failed.\n"); |
@@ -429,7 +429,7 @@ static int macb_mii_init(struct macb *bp) | |||
429 | macb_writel(bp, NCR, MACB_BIT(MPE)); | 429 | macb_writel(bp, NCR, MACB_BIT(MPE)); |
430 | 430 | ||
431 | bp->mii_bus = mdiobus_alloc(); | 431 | bp->mii_bus = mdiobus_alloc(); |
432 | if (bp->mii_bus == NULL) { | 432 | if (!bp->mii_bus) { |
433 | err = -ENOMEM; | 433 | err = -ENOMEM; |
434 | goto err_out; | 434 | goto err_out; |
435 | } | 435 | } |
@@ -438,7 +438,7 @@ static int macb_mii_init(struct macb *bp) | |||
438 | bp->mii_bus->read = &macb_mdio_read; | 438 | bp->mii_bus->read = &macb_mdio_read; |
439 | bp->mii_bus->write = &macb_mdio_write; | 439 | bp->mii_bus->write = &macb_mdio_write; |
440 | snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x", | 440 | snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x", |
441 | bp->pdev->name, bp->pdev->id); | 441 | bp->pdev->name, bp->pdev->id); |
442 | bp->mii_bus->priv = bp; | 442 | bp->mii_bus->priv = bp; |
443 | bp->mii_bus->parent = &bp->dev->dev; | 443 | bp->mii_bus->parent = &bp->dev->dev; |
444 | pdata = dev_get_platdata(&bp->pdev->dev); | 444 | pdata = dev_get_platdata(&bp->pdev->dev); |
@@ -659,7 +659,7 @@ static void macb_tx_interrupt(struct macb_queue *queue) | |||
659 | queue_writel(queue, ISR, MACB_BIT(TCOMP)); | 659 | queue_writel(queue, ISR, MACB_BIT(TCOMP)); |
660 | 660 | ||
661 | netdev_vdbg(bp->dev, "macb_tx_interrupt status = 0x%03lx\n", | 661 | netdev_vdbg(bp->dev, "macb_tx_interrupt status = 0x%03lx\n", |
662 | (unsigned long)status); | 662 | (unsigned long)status); |
663 | 663 | ||
664 | head = queue->tx_head; | 664 | head = queue->tx_head; |
665 | for (tail = queue->tx_tail; tail != head; tail++) { | 665 | for (tail = queue->tx_tail; tail != head; tail++) { |
@@ -728,10 +728,10 @@ static void gem_rx_refill(struct macb *bp) | |||
728 | 728 | ||
729 | bp->rx_prepared_head++; | 729 | bp->rx_prepared_head++; |
730 | 730 | ||
731 | if (bp->rx_skbuff[entry] == NULL) { | 731 | if (!bp->rx_skbuff[entry]) { |
732 | /* allocate sk_buff for this free entry in ring */ | 732 | /* allocate sk_buff for this free entry in ring */ |
733 | skb = netdev_alloc_skb(bp->dev, bp->rx_buffer_size); | 733 | skb = netdev_alloc_skb(bp->dev, bp->rx_buffer_size); |
734 | if (unlikely(skb == NULL)) { | 734 | if (unlikely(!skb)) { |
735 | netdev_err(bp->dev, | 735 | netdev_err(bp->dev, |
736 | "Unable to allocate sk_buff\n"); | 736 | "Unable to allocate sk_buff\n"); |
737 | break; | 737 | break; |
@@ -765,7 +765,7 @@ static void gem_rx_refill(struct macb *bp) | |||
765 | wmb(); | 765 | wmb(); |
766 | 766 | ||
767 | netdev_vdbg(bp->dev, "rx ring: prepared head %d, tail %d\n", | 767 | netdev_vdbg(bp->dev, "rx ring: prepared head %d, tail %d\n", |
768 | bp->rx_prepared_head, bp->rx_tail); | 768 | bp->rx_prepared_head, bp->rx_tail); |
769 | } | 769 | } |
770 | 770 | ||
771 | /* Mark DMA descriptors from begin up to and not including end as unused */ | 771 | /* Mark DMA descriptors from begin up to and not including end as unused */ |
@@ -879,8 +879,8 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag, | |||
879 | len = desc->ctrl & bp->rx_frm_len_mask; | 879 | len = desc->ctrl & bp->rx_frm_len_mask; |
880 | 880 | ||
881 | netdev_vdbg(bp->dev, "macb_rx_frame frags %u - %u (len %u)\n", | 881 | netdev_vdbg(bp->dev, "macb_rx_frame frags %u - %u (len %u)\n", |
882 | macb_rx_ring_wrap(first_frag), | 882 | macb_rx_ring_wrap(first_frag), |
883 | macb_rx_ring_wrap(last_frag), len); | 883 | macb_rx_ring_wrap(last_frag), len); |
884 | 884 | ||
885 | /* The ethernet header starts NET_IP_ALIGN bytes into the | 885 | /* The ethernet header starts NET_IP_ALIGN bytes into the |
886 | * first buffer. Since the header is 14 bytes, this makes the | 886 | * first buffer. Since the header is 14 bytes, this makes the |
@@ -922,7 +922,8 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag, | |||
922 | frag_len = len - offset; | 922 | frag_len = len - offset; |
923 | } | 923 | } |
924 | skb_copy_to_linear_data_offset(skb, offset, | 924 | skb_copy_to_linear_data_offset(skb, offset, |
925 | macb_rx_buffer(bp, frag), frag_len); | 925 | macb_rx_buffer(bp, frag), |
926 | frag_len); | ||
926 | offset += bp->rx_buffer_size; | 927 | offset += bp->rx_buffer_size; |
927 | desc = macb_rx_desc(bp, frag); | 928 | desc = macb_rx_desc(bp, frag); |
928 | desc->addr &= ~MACB_BIT(RX_USED); | 929 | desc->addr &= ~MACB_BIT(RX_USED); |
@@ -940,7 +941,7 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag, | |||
940 | bp->stats.rx_packets++; | 941 | bp->stats.rx_packets++; |
941 | bp->stats.rx_bytes += skb->len; | 942 | bp->stats.rx_bytes += skb->len; |
942 | netdev_vdbg(bp->dev, "received skb of length %u, csum: %08x\n", | 943 | netdev_vdbg(bp->dev, "received skb of length %u, csum: %08x\n", |
943 | skb->len, skb->csum); | 944 | skb->len, skb->csum); |
944 | netif_receive_skb(skb); | 945 | netif_receive_skb(skb); |
945 | 946 | ||
946 | return 0; | 947 | return 0; |
@@ -1047,7 +1048,7 @@ static int macb_poll(struct napi_struct *napi, int budget) | |||
1047 | work_done = 0; | 1048 | work_done = 0; |
1048 | 1049 | ||
1049 | netdev_vdbg(bp->dev, "poll: status = %08lx, budget = %d\n", | 1050 | netdev_vdbg(bp->dev, "poll: status = %08lx, budget = %d\n", |
1050 | (unsigned long)status, budget); | 1051 | (unsigned long)status, budget); |
1051 | 1052 | ||
1052 | work_done = bp->macbgem_ops.mog_rx(bp, budget); | 1053 | work_done = bp->macbgem_ops.mog_rx(bp, budget); |
1053 | if (work_done < budget) { | 1054 | if (work_done < budget) { |
@@ -1262,7 +1263,7 @@ static unsigned int macb_tx_map(struct macb *bp, | |||
1262 | } | 1263 | } |
1263 | 1264 | ||
1264 | /* Should never happen */ | 1265 | /* Should never happen */ |
1265 | if (unlikely(tx_skb == NULL)) { | 1266 | if (unlikely(!tx_skb)) { |
1266 | netdev_err(bp->dev, "BUG! empty skb!\n"); | 1267 | netdev_err(bp->dev, "BUG! empty skb!\n"); |
1267 | return 0; | 1268 | return 0; |
1268 | } | 1269 | } |
@@ -1332,16 +1333,16 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1332 | 1333 | ||
1333 | #if defined(DEBUG) && defined(VERBOSE_DEBUG) | 1334 | #if defined(DEBUG) && defined(VERBOSE_DEBUG) |
1334 | netdev_vdbg(bp->dev, | 1335 | netdev_vdbg(bp->dev, |
1335 | "start_xmit: queue %hu len %u head %p data %p tail %p end %p\n", | 1336 | "start_xmit: queue %hu len %u head %p data %p tail %p end %p\n", |
1336 | queue_index, skb->len, skb->head, skb->data, | 1337 | queue_index, skb->len, skb->head, skb->data, |
1337 | skb_tail_pointer(skb), skb_end_pointer(skb)); | 1338 | skb_tail_pointer(skb), skb_end_pointer(skb)); |
1338 | print_hex_dump(KERN_DEBUG, "data: ", DUMP_PREFIX_OFFSET, 16, 1, | 1339 | print_hex_dump(KERN_DEBUG, "data: ", DUMP_PREFIX_OFFSET, 16, 1, |
1339 | skb->data, 16, true); | 1340 | skb->data, 16, true); |
1340 | #endif | 1341 | #endif |
1341 | 1342 | ||
1342 | /* Count how many TX buffer descriptors are needed to send this | 1343 | /* Count how many TX buffer descriptors are needed to send this |
1343 | * socket buffer: skb fragments of jumbo frames may need to be | 1344 | * socket buffer: skb fragments of jumbo frames may need to be |
1344 | * splitted into many buffer descriptors. | 1345 | * split into many buffer descriptors. |
1345 | */ | 1346 | */ |
1346 | count = DIV_ROUND_UP(skb_headlen(skb), bp->max_tx_length); | 1347 | count = DIV_ROUND_UP(skb_headlen(skb), bp->max_tx_length); |
1347 | nr_frags = skb_shinfo(skb)->nr_frags; | 1348 | nr_frags = skb_shinfo(skb)->nr_frags; |
@@ -1392,8 +1393,8 @@ static void macb_init_rx_buffer_size(struct macb *bp, size_t size) | |||
1392 | 1393 | ||
1393 | if (bp->rx_buffer_size % RX_BUFFER_MULTIPLE) { | 1394 | if (bp->rx_buffer_size % RX_BUFFER_MULTIPLE) { |
1394 | netdev_dbg(bp->dev, | 1395 | netdev_dbg(bp->dev, |
1395 | "RX buffer must be multiple of %d bytes, expanding\n", | 1396 | "RX buffer must be multiple of %d bytes, expanding\n", |
1396 | RX_BUFFER_MULTIPLE); | 1397 | RX_BUFFER_MULTIPLE); |
1397 | bp->rx_buffer_size = | 1398 | bp->rx_buffer_size = |
1398 | roundup(bp->rx_buffer_size, RX_BUFFER_MULTIPLE); | 1399 | roundup(bp->rx_buffer_size, RX_BUFFER_MULTIPLE); |
1399 | } | 1400 | } |
@@ -1416,7 +1417,7 @@ static void gem_free_rx_buffers(struct macb *bp) | |||
1416 | for (i = 0; i < RX_RING_SIZE; i++) { | 1417 | for (i = 0; i < RX_RING_SIZE; i++) { |
1417 | skb = bp->rx_skbuff[i]; | 1418 | skb = bp->rx_skbuff[i]; |
1418 | 1419 | ||
1419 | if (skb == NULL) | 1420 | if (!skb) |
1420 | continue; | 1421 | continue; |
1421 | 1422 | ||
1422 | desc = &bp->rx_ring[i]; | 1423 | desc = &bp->rx_ring[i]; |
@@ -1817,7 +1818,8 @@ static void macb_sethashtable(struct net_device *dev) | |||
1817 | unsigned int bitnr; | 1818 | unsigned int bitnr; |
1818 | struct macb *bp = netdev_priv(dev); | 1819 | struct macb *bp = netdev_priv(dev); |
1819 | 1820 | ||
1820 | mc_filter[0] = mc_filter[1] = 0; | 1821 | mc_filter[0] = 0; |
1822 | mc_filter[1] = 0; | ||
1821 | 1823 | ||
1822 | netdev_for_each_mc_addr(ha, dev) { | 1824 | netdev_for_each_mc_addr(ha, dev) { |
1823 | bitnr = hash_get_index(ha->addr); | 1825 | bitnr = hash_get_index(ha->addr); |