aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/cadence/macb.c46
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);