kernel: bump 4.4 to 4.4.110
[openwrt/openwrt.git] / target / linux / mvebu / patches-4.4 / 045-net-mvneta-bm-add-support-for-hardware-buffer-manage.patch
index d343b3983f3bb9643911e63b2abc3e02c5545063..a1b5ca8c6a784f0cdf5f581cce5b1c64be45bc53 100644 (file)
@@ -495,7 +495,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  /* Start the Ethernet port RX and TX activity */
  static void mvneta_port_up(struct mvneta_port *pp)
  {
-@@ -1147,9 +1379,17 @@ static void mvneta_defaults_set(struct m
+@@ -1151,9 +1383,17 @@ static void mvneta_defaults_set(struct m
        mvreg_write(pp, MVNETA_PORT_RX_RESET, 0);
  
        /* Set Port Acceleration Mode */
@@ -514,7 +514,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        /* Update val of portCfg register accordingly with all RxQueue types */
        val = MVNETA_PORT_CONFIG_DEFL_VALUE(pp->rxq_def);
        mvreg_write(pp, MVNETA_PORT_CONFIG, val);
-@@ -1516,23 +1756,25 @@ static void mvneta_txq_done(struct mvnet
+@@ -1520,23 +1760,25 @@ static void mvneta_txq_done(struct mvnet
        }
  }
  
@@ -547,7 +547,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static int mvneta_rx_refill(struct mvneta_port *pp,
                            struct mvneta_rx_desc *rx_desc)
  
-@@ -1540,7 +1782,7 @@ static int mvneta_rx_refill(struct mvnet
+@@ -1544,7 +1786,7 @@ static int mvneta_rx_refill(struct mvnet
        dma_addr_t phys_addr;
        void *data;
  
@@ -556,7 +556,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        if (!data)
                return -ENOMEM;
  
-@@ -1548,7 +1790,7 @@ static int mvneta_rx_refill(struct mvnet
+@@ -1552,7 +1794,7 @@ static int mvneta_rx_refill(struct mvnet
                                   MVNETA_RX_BUF_SIZE(pp->pkt_size),
                                   DMA_FROM_DEVICE);
        if (unlikely(dma_mapping_error(pp->dev->dev.parent, phys_addr))) {
@@ -565,7 +565,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                return -ENOMEM;
        }
  
-@@ -1594,22 +1836,156 @@ static void mvneta_rxq_drop_pkts(struct
+@@ -1598,22 +1840,156 @@ static void mvneta_rxq_drop_pkts(struct
        int rx_done, i;
  
        rx_done = mvneta_rxq_busy_desc_num_get(pp, rxq);
@@ -728,7 +728,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  {
        struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
        struct net_device *dev = pp->dev;
-@@ -1628,21 +2004,29 @@ static int mvneta_rx(struct mvneta_port
+@@ -1632,21 +2008,29 @@ static int mvneta_rx(struct mvneta_port
        /* Fairness NAPI loop */
        while (rx_done < rx_todo) {
                struct mvneta_rx_desc *rx_desc = mvneta_rxq_next_desc_get(rxq);
@@ -760,7 +760,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                        dev->stats.rx_errors++;
                        mvneta_rx_error(pp, rx_desc);
                        /* leave the descriptor untouched */
-@@ -1653,7 +2037,7 @@ static int mvneta_rx(struct mvneta_port
+@@ -1657,7 +2041,7 @@ static int mvneta_rx(struct mvneta_port
                        /* better copy a small frame and not unmap the DMA region */
                        skb = netdev_alloc_skb_ip_align(dev, rx_bytes);
                        if (unlikely(!skb))
@@ -769,7 +769,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
                        dma_sync_single_range_for_cpu(dev->dev.parent,
                                                      rx_desc->buf_phys_addr,
-@@ -1671,26 +2055,31 @@ static int mvneta_rx(struct mvneta_port
+@@ -1675,26 +2059,31 @@ static int mvneta_rx(struct mvneta_port
                        rcvd_pkts++;
                        rcvd_bytes += rx_bytes;
  
@@ -807,7 +807,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                if (!skb)
                        goto err_drop_frame;
  
-@@ -2295,7 +2684,10 @@ static int mvneta_poll(struct napi_struc
+@@ -2299,7 +2688,10 @@ static int mvneta_poll(struct napi_struc
  
        if (rx_queue) {
                rx_queue = rx_queue - 1;
@@ -819,7 +819,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
  
        budget -= rx_done;
-@@ -2384,9 +2776,17 @@ static int mvneta_rxq_init(struct mvneta
+@@ -2388,9 +2780,17 @@ static int mvneta_rxq_init(struct mvneta
        mvneta_rx_pkts_coal_set(pp, rxq, rxq->pkts_coal);
        mvneta_rx_time_coal_set(pp, rxq, rxq->time_coal);
  
@@ -840,7 +840,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        mvneta_rxq_fill(pp, rxq, rxq->size);
  
        return 0;
-@@ -2659,6 +3059,9 @@ static int mvneta_change_mtu(struct net_
+@@ -2663,6 +3063,9 @@ static int mvneta_change_mtu(struct net_
        dev->mtu = mtu;
  
        if (!netif_running(dev)) {
@@ -850,7 +850,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                netdev_update_features(dev);
                return 0;
        }
-@@ -2671,6 +3074,9 @@ static int mvneta_change_mtu(struct net_
+@@ -2675,6 +3078,9 @@ static int mvneta_change_mtu(struct net_
        mvneta_cleanup_txqs(pp);
        mvneta_cleanup_rxqs(pp);
  
@@ -860,7 +860,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        pp->pkt_size = MVNETA_RX_PKT_SIZE(dev->mtu);
        pp->frag_size = SKB_DATA_ALIGN(MVNETA_RX_BUF_SIZE(pp->pkt_size)) +
                        SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
-@@ -3563,6 +3969,7 @@ static int mvneta_probe(struct platform_
+@@ -3567,6 +3973,7 @@ static int mvneta_probe(struct platform_
        struct resource *res;
        struct device_node *dn = pdev->dev.of_node;
        struct device_node *phy_node;
@@ -868,7 +868,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        struct mvneta_port *pp;
        struct net_device *dev;
        const char *dt_mac_addr;
-@@ -3690,26 +4097,39 @@ static int mvneta_probe(struct platform_
+@@ -3694,26 +4101,39 @@ static int mvneta_probe(struct platform_
  
        pp->tx_csum_limit = tx_csum_limit;
  
@@ -914,7 +914,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        for_each_present_cpu(cpu) {
                struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
  
-@@ -3744,6 +4164,13 @@ static int mvneta_probe(struct platform_
+@@ -3748,6 +4168,13 @@ static int mvneta_probe(struct platform_
  
        return 0;
  
@@ -928,7 +928,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  err_free_stats:
        free_percpu(pp->stats);
  err_free_ports:
-@@ -3773,6 +4200,12 @@ static int mvneta_remove(struct platform
+@@ -3777,6 +4204,12 @@ static int mvneta_remove(struct platform
        of_node_put(pp->phy_node);
        free_netdev(dev);