kernel: bump 4.9 to 4.9.73
authorKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Sat, 30 Dec 2017 14:22:36 +0000 (14:22 +0000)
committerJohn Crispin <john@phrozen.org>
Tue, 2 Jan 2018 06:14:09 +0000 (07:14 +0100)
Refresh patches.

Runtime tested: ar71xx - Archer C7 v2

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
13 files changed:
include/kernel-version.mk
target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch
target/linux/mvebu/patches-4.9/120-net-mvneta-add-BQL-support.patch
target/linux/mvebu/patches-4.9/300-mvneta-tx-queue-workaround.patch
target/linux/mvebu/patches-4.9/419-net-mvneta-convert-to-phylink.patch
target/linux/mvebu/patches-4.9/420-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch
target/linux/mvebu/patches-4.9/422-net-mvneta-add-nway_reset-support.patch
target/linux/mvebu/patches-4.9/424-net-mvneta-add-flow-control-support-via-phylink.patch
target/linux/mvebu/patches-4.9/425-net-mvneta-enable-flow-control-for-PHY-connections.patch
target/linux/mvebu/patches-4.9/426-net-mvneta-enable-flow-control-for-fixed-connections.patch
target/linux/mvebu/patches-4.9/427-phylink-add-EEE-support.patch
target/linux/mvebu/patches-4.9/428-net-mvneta-add-EEE-support.patch
target/linux/mvebu/patches-4.9/430-net-mvneta-add-module-EEPROM-reading-support.patch

index ff652b3236a0927a3ccd3d1fc07479cc5fcc5b4c..524eb967366b65224334e0deb28c4be9e7566735 100644 (file)
@@ -4,12 +4,12 @@ LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .71
 LINUX_VERSION-4.4 = .108
 
 LINUX_VERSION-3.18 = .71
 LINUX_VERSION-4.4 = .108
-LINUX_VERSION-4.9 = .72
+LINUX_VERSION-4.9 = .73
 LINUX_VERSION-4.14 = .6
 
 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
 LINUX_KERNEL_HASH-4.4.108 = 5a001198625ce9f7b0ef1e4b43e033aea859e1ef3509532412cce8f0375ba51a
 LINUX_VERSION-4.14 = .6
 
 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
 LINUX_KERNEL_HASH-4.4.108 = 5a001198625ce9f7b0ef1e4b43e033aea859e1ef3509532412cce8f0375ba51a
-LINUX_KERNEL_HASH-4.9.72 = 69f201f1eb9eade9a3cde26d3896a53df9fddf1e19f9fa7b36331b8b1976b83b
+LINUX_KERNEL_HASH-4.9.73 = 558b65c53f6d6c421d897ad4b651e51ba341fe4dd97122ec922e23ebd2c16e2b
 LINUX_KERNEL_HASH-4.14.6 = 0907678ba9ea146ddbdecd0a0b6363f56b896b5c61c9a15e809effb3ea346ccc
 
 ifdef KERNEL_PATCHVER
 LINUX_KERNEL_HASH-4.14.6 = 0907678ba9ea146ddbdecd0a0b6363f56b896b5c61c9a15e809effb3ea346ccc
 
 ifdef KERNEL_PATCHVER
index 9da3f3e327aaf180c0fb3f585e9d3083352021e1..aa7c857b16bbd9b96b5b9987c5155ed499e73740 100644 (file)
@@ -803,7 +803,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
  
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -2697,11 +2697,9 @@ static int mvneta_poll(struct napi_struc
+@@ -2701,11 +2701,9 @@ static int mvneta_poll(struct napi_struc
                        rx_done = mvneta_rx_swbm(pp, budget, &pp->rxqs[rx_queue]);
        }
  
                        rx_done = mvneta_rx_swbm(pp, budget, &pp->rxqs[rx_queue]);
        }
  
index dba8f27b3d3d00f9bc580bdaec61073afb02faaa..f9d5ac1bbd8a5059345c0ed2e108280f2280b980 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -1720,8 +1720,10 @@ static struct mvneta_tx_queue *mvneta_tx
+@@ -1724,8 +1724,10 @@ static struct mvneta_tx_queue *mvneta_tx
  
  /* Free tx queue skbuffs */
  static void mvneta_txq_bufs_free(struct mvneta_port *pp,
  
  /* Free tx queue skbuffs */
  static void mvneta_txq_bufs_free(struct mvneta_port *pp,
@@ -12,7 +12,7 @@
        int i;
  
        for (i = 0; i < num; i++) {
        int i;
  
        for (i = 0; i < num; i++) {
-@@ -1729,6 +1731,11 @@ static void mvneta_txq_bufs_free(struct
+@@ -1733,6 +1735,11 @@ static void mvneta_txq_bufs_free(struct
                        txq->txq_get_index;
                struct sk_buff *skb = txq->tx_skb[txq->txq_get_index];
  
                        txq->txq_get_index;
                struct sk_buff *skb = txq->tx_skb[txq->txq_get_index];
  
@@ -24,7 +24,7 @@
                mvneta_txq_inc_get(txq);
  
                if (!IS_TSO_HEADER(txq, tx_desc->buf_phys_addr))
                mvneta_txq_inc_get(txq);
  
                if (!IS_TSO_HEADER(txq, tx_desc->buf_phys_addr))
-@@ -1739,6 +1746,8 @@ static void mvneta_txq_bufs_free(struct
+@@ -1743,6 +1750,8 @@ static void mvneta_txq_bufs_free(struct
                        continue;
                dev_kfree_skb_any(skb);
        }
                        continue;
                dev_kfree_skb_any(skb);
        }
@@ -33,7 +33,7 @@
  }
  
  /* Handle end of transmission */
  }
  
  /* Handle end of transmission */
-@@ -1752,7 +1761,7 @@ static void mvneta_txq_done(struct mvnet
+@@ -1756,7 +1765,7 @@ static void mvneta_txq_done(struct mvnet
        if (!tx_done)
                return;
  
        if (!tx_done)
                return;
  
@@ -42,7 +42,7 @@
  
        txq->count -= tx_done;
  
  
        txq->count -= tx_done;
  
-@@ -2359,6 +2368,8 @@ out:
+@@ -2363,6 +2372,8 @@ out:
                struct mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats);
                struct netdev_queue *nq = netdev_get_tx_queue(dev, txq_id);
  
                struct mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats);
                struct netdev_queue *nq = netdev_get_tx_queue(dev, txq_id);
  
@@ -51,7 +51,7 @@
                txq->count += frags;
                mvneta_txq_pend_desc_add(pp, txq, frags);
  
                txq->count += frags;
                mvneta_txq_pend_desc_add(pp, txq, frags);
  
-@@ -2383,9 +2394,10 @@ static void mvneta_txq_done_force(struct
+@@ -2387,9 +2398,10 @@ static void mvneta_txq_done_force(struct
                                  struct mvneta_tx_queue *txq)
  
  {
                                  struct mvneta_tx_queue *txq)
  
  {
@@ -63,7 +63,7 @@
  
        /* reset txq */
        txq->count = 0;
  
        /* reset txq */
        txq->count = 0;
-@@ -2881,6 +2893,8 @@ static int mvneta_txq_init(struct mvneta
+@@ -2885,6 +2897,8 @@ static int mvneta_txq_init(struct mvneta
  static void mvneta_txq_deinit(struct mvneta_port *pp,
                              struct mvneta_tx_queue *txq)
  {
  static void mvneta_txq_deinit(struct mvneta_port *pp,
                              struct mvneta_tx_queue *txq)
  {
@@ -72,7 +72,7 @@
        kfree(txq->tx_skb);
  
        if (txq->tso_hdrs)
        kfree(txq->tx_skb);
  
        if (txq->tso_hdrs)
-@@ -2892,6 +2906,8 @@ static void mvneta_txq_deinit(struct mvn
+@@ -2896,6 +2910,8 @@ static void mvneta_txq_deinit(struct mvn
                                  txq->size * MVNETA_DESC_ALIGNED_SIZE,
                                  txq->descs, txq->descs_phys);
  
                                  txq->size * MVNETA_DESC_ALIGNED_SIZE,
                                  txq->descs, txq->descs_phys);
  
index 2601d92fc3ec340df262d789af578baea2de7d08..d5486e738877656d9f6310dc0f5d5488135db0ee 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 ---
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3834,6 +3834,16 @@ static int mvneta_ethtool_get_rxfh(struc
+@@ -3838,6 +3838,16 @@ static int mvneta_ethtool_get_rxfh(struc
        return 0;
  }
  
        return 0;
  }
  
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static const struct net_device_ops mvneta_netdev_ops = {
        .ndo_open            = mvneta_open,
        .ndo_stop            = mvneta_stop,
  static const struct net_device_ops mvneta_netdev_ops = {
        .ndo_open            = mvneta_open,
        .ndo_stop            = mvneta_stop,
-@@ -3844,6 +3854,7 @@ static const struct net_device_ops mvnet
+@@ -3848,6 +3858,7 @@ static const struct net_device_ops mvnet
        .ndo_fix_features    = mvneta_fix_features,
        .ndo_get_stats64     = mvneta_get_stats64,
        .ndo_do_ioctl        = mvneta_ioctl,
        .ndo_fix_features    = mvneta_fix_features,
        .ndo_get_stats64     = mvneta_get_stats64,
        .ndo_do_ioctl        = mvneta_ioctl,
index 8084a17af1b76ba18341dd7ceaf45bee2cc87491..b62dadd2f37a887b6e2733dcf64cb8fb8e716184 100644 (file)
@@ -74,7 +74,18 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        struct mvneta_bm *bm_priv;
        struct mvneta_bm_pool *pool_long;
  
        struct mvneta_bm *bm_priv;
        struct mvneta_bm_pool *pool_long;
-@@ -1241,44 +1244,6 @@ static void mvneta_set_other_mcast_table
+@@ -1182,10 +1185,6 @@ static void mvneta_port_disable(struct m
+       val &= ~MVNETA_GMAC0_PORT_ENABLE;
+       mvreg_write(pp, MVNETA_GMAC_CTRL_0, val);
+-      pp->link = 0;
+-      pp->duplex = -1;
+-      pp->speed = 0;
+-
+       udelay(200);
+ }
+@@ -1245,44 +1244,6 @@ static void mvneta_set_other_mcast_table
                mvreg_write(pp, MVNETA_DA_FILT_OTH_MCAST + offset, val);
  }
  
                mvreg_write(pp, MVNETA_DA_FILT_OTH_MCAST + offset, val);
  }
  
@@ -119,7 +130,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static void mvneta_percpu_unmask_interrupt(void *arg)
  {
        struct mvneta_port *pp = arg;
  static void mvneta_percpu_unmask_interrupt(void *arg)
  {
        struct mvneta_port *pp = arg;
-@@ -1426,7 +1391,6 @@ static void mvneta_defaults_set(struct m
+@@ -1430,7 +1391,6 @@ static void mvneta_defaults_set(struct m
        val &= ~MVNETA_PHY_POLLING_ENABLE;
        mvreg_write(pp, MVNETA_UNIT_CONTROL, val);
  
        val &= ~MVNETA_PHY_POLLING_ENABLE;
        mvreg_write(pp, MVNETA_UNIT_CONTROL, val);
  
@@ -127,7 +138,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        mvneta_set_ucast_table(pp, -1);
        mvneta_set_special_mcast_table(pp, -1);
        mvneta_set_other_mcast_table(pp, -1);
        mvneta_set_ucast_table(pp, -1);
        mvneta_set_special_mcast_table(pp, -1);
        mvneta_set_other_mcast_table(pp, -1);
-@@ -2631,26 +2595,11 @@ static irqreturn_t mvneta_isr(int irq, v
+@@ -2635,26 +2595,11 @@ static irqreturn_t mvneta_isr(int irq, v
        return IRQ_HANDLED;
  }
  
        return IRQ_HANDLED;
  }
  
@@ -156,7 +167,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* NAPI handler
  }
  
  /* NAPI handler
-@@ -2666,7 +2615,6 @@ static int mvneta_poll(struct napi_struc
+@@ -2670,7 +2615,6 @@ static int mvneta_poll(struct napi_struc
        u32 cause_rx_tx;
        int rx_queue;
        struct mvneta_port *pp = netdev_priv(napi->dev);
        u32 cause_rx_tx;
        int rx_queue;
        struct mvneta_port *pp = netdev_priv(napi->dev);
@@ -164,7 +175,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
  
        if (!netif_running(pp->dev)) {
        struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
  
        if (!netif_running(pp->dev)) {
-@@ -2680,12 +2628,11 @@ static int mvneta_poll(struct napi_struc
+@@ -2684,12 +2628,11 @@ static int mvneta_poll(struct napi_struc
                u32 cause_misc = mvreg_read(pp, MVNETA_INTR_MISC_CAUSE);
  
                mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
                u32 cause_misc = mvreg_read(pp, MVNETA_INTR_MISC_CAUSE);
  
                mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
@@ -182,7 +193,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        }
  
        /* Release Tx descriptors */
        }
  
        /* Release Tx descriptors */
-@@ -2981,7 +2928,6 @@ static int mvneta_setup_txqs(struct mvne
+@@ -2985,7 +2928,6 @@ static int mvneta_setup_txqs(struct mvne
  static void mvneta_start_dev(struct mvneta_port *pp)
  {
        int cpu;
  static void mvneta_start_dev(struct mvneta_port *pp)
  {
        int cpu;
@@ -190,7 +201,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        mvneta_max_rx_size_set(pp, pp->pkt_size);
        mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
  
        mvneta_max_rx_size_set(pp, pp->pkt_size);
        mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
-@@ -3004,16 +2950,15 @@ static void mvneta_start_dev(struct mvne
+@@ -3008,16 +2950,15 @@ static void mvneta_start_dev(struct mvne
                    MVNETA_CAUSE_LINK_CHANGE |
                    MVNETA_CAUSE_PSC_SYNC_CHANGE);
  
                    MVNETA_CAUSE_LINK_CHANGE |
                    MVNETA_CAUSE_PSC_SYNC_CHANGE);
  
@@ -209,7 +220,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        for_each_online_cpu(cpu) {
                struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
  
        for_each_online_cpu(cpu) {
                struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
-@@ -3183,99 +3128,210 @@ static int mvneta_set_mac_addr(struct ne
+@@ -3187,99 +3128,210 @@ static int mvneta_set_mac_addr(struct ne
        return 0;
  }
  
        return 0;
  }
  
@@ -252,15 +263,6 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 -      struct phy_device *phydev = ndev->phydev;
 -      int status_change = 0;
 +      u32 gmac_stat;
 -      struct phy_device *phydev = ndev->phydev;
 -      int status_change = 0;
 +      u32 gmac_stat;
-+
-+      gmac_stat = mvreg_read(pp, MVNETA_GMAC_STATUS);
-+
-+      if (gmac_stat & MVNETA_GMAC_SPEED_1000)
-+              state->speed = SPEED_1000;
-+      else if (gmac_stat & MVNETA_GMAC_SPEED_100)
-+              state->speed = SPEED_100;
-+      else
-+              state->speed = SPEED_10;
  
 -      if (phydev->link) {
 -              if ((pp->speed != phydev->speed) ||
  
 -      if (phydev->link) {
 -              if ((pp->speed != phydev->speed) ||
@@ -279,17 +281,26 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 -                              val |= MVNETA_GMAC_CONFIG_GMII_SPEED;
 -                      else if (phydev->speed == SPEED_100)
 -                              val |= MVNETA_GMAC_CONFIG_MII_SPEED;
 -                              val |= MVNETA_GMAC_CONFIG_GMII_SPEED;
 -                      else if (phydev->speed == SPEED_100)
 -                              val |= MVNETA_GMAC_CONFIG_MII_SPEED;
-+      state->an_complete = !!(gmac_stat & MVNETA_GMAC_AN_COMPLETE);
-+      state->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
-+      state->duplex = !!(gmac_stat & MVNETA_GMAC_FULL_DUPLEX);
++      gmac_stat = mvreg_read(pp, MVNETA_GMAC_STATUS);
  
 -                      mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
  
 -                      mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
-+      return 1;
-+}
++      if (gmac_stat & MVNETA_GMAC_SPEED_1000)
++              state->speed = SPEED_1000;
++      else if (gmac_stat & MVNETA_GMAC_SPEED_100)
++              state->speed = SPEED_100;
++      else
++              state->speed = SPEED_10;
  
 -                      pp->duplex = phydev->duplex;
 -                      pp->speed  = phydev->speed;
 -              }
  
 -                      pp->duplex = phydev->duplex;
 -                      pp->speed  = phydev->speed;
 -              }
++      state->an_complete = !!(gmac_stat & MVNETA_GMAC_AN_COMPLETE);
++      state->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
++      state->duplex = !!(gmac_stat & MVNETA_GMAC_FULL_DUPLEX);
++
++      return 1;
++}
++
 +static void mvneta_mac_an_restart(struct net_device *ndev, unsigned int mode)
 +{
 +      struct mvneta_port *pp = netdev_priv(ndev);
 +static void mvneta_mac_an_restart(struct net_device *ndev, unsigned int mode)
 +{
 +      struct mvneta_port *pp = netdev_priv(ndev);
@@ -490,7 +501,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Electing a CPU must be done in an atomic way: it should be done
  }
  
  /* Electing a CPU must be done in an atomic way: it should be done
-@@ -3533,10 +3589,9 @@ static int mvneta_stop(struct net_device
+@@ -3537,10 +3589,9 @@ static int mvneta_stop(struct net_device
  
  static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
  {
  
  static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
  {
@@ -503,7 +514,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Ethtool methods */
  }
  
  /* Ethtool methods */
-@@ -3547,44 +3602,18 @@ mvneta_ethtool_set_link_ksettings(struct
+@@ -3551,44 +3602,18 @@ mvneta_ethtool_set_link_ksettings(struct
                                  const struct ethtool_link_ksettings *cmd)
  {
        struct mvneta_port *pp = netdev_priv(ndev);
                                  const struct ethtool_link_ksettings *cmd)
  {
        struct mvneta_port *pp = netdev_priv(ndev);
@@ -557,7 +568,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Set interrupt coalescing for ethtools */
  }
  
  /* Set interrupt coalescing for ethtools */
-@@ -3692,26 +3721,28 @@ static void mvneta_ethtool_update_stats(
+@@ -3696,26 +3721,28 @@ static void mvneta_ethtool_update_stats(
  {
        const struct mvneta_statistic *s;
        void __iomem *base = pp->base;
  {
        const struct mvneta_statistic *s;
        void __iomem *base = pp->base;
@@ -591,7 +602,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        }
  }
  
        }
  }
  
-@@ -3871,7 +3902,7 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3875,7 +3902,7 @@ const struct ethtool_ops mvneta_eth_tool
        .get_rxnfc      = mvneta_ethtool_get_rxnfc,
        .get_rxfh       = mvneta_ethtool_get_rxfh,
        .set_rxfh       = mvneta_ethtool_set_rxfh,
        .get_rxnfc      = mvneta_ethtool_get_rxnfc,
        .get_rxfh       = mvneta_ethtool_get_rxfh,
        .set_rxfh       = mvneta_ethtool_set_rxfh,
@@ -600,7 +611,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        .set_link_ksettings = mvneta_ethtool_set_link_ksettings,
  };
  
        .set_link_ksettings = mvneta_ethtool_set_link_ksettings,
  };
  
-@@ -3998,14 +4029,13 @@ static int mvneta_probe(struct platform_
+@@ -4002,14 +4029,13 @@ static int mvneta_probe(struct platform_
        const struct mbus_dram_target_info *dram_target_info;
        struct resource *res;
        struct device_node *dn = pdev->dev.of_node;
        const struct mbus_dram_target_info *dram_target_info;
        struct resource *res;
        struct device_node *dn = pdev->dev.of_node;
@@ -616,7 +627,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        int tx_csum_limit;
        int phy_mode;
        int err;
        int tx_csum_limit;
        int phy_mode;
        int err;
-@@ -4021,31 +4051,11 @@ static int mvneta_probe(struct platform_
+@@ -4025,31 +4051,11 @@ static int mvneta_probe(struct platform_
                goto err_free_netdev;
        }
  
                goto err_free_netdev;
        }
  
@@ -649,7 +660,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        }
  
        dev->tx_queue_len = MVNETA_MAX_TXD;
        }
  
        dev->tx_queue_len = MVNETA_MAX_TXD;
-@@ -4056,12 +4066,7 @@ static int mvneta_probe(struct platform_
+@@ -4060,12 +4066,7 @@ static int mvneta_probe(struct platform_
  
        pp = netdev_priv(dev);
        spin_lock_init(&pp->lock);
  
        pp = netdev_priv(dev);
        spin_lock_init(&pp->lock);
@@ -663,7 +674,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        pp->rxq_def = rxq_def;
  
  
        pp->rxq_def = rxq_def;
  
-@@ -4072,7 +4077,7 @@ static int mvneta_probe(struct platform_
+@@ -4076,7 +4077,7 @@ static int mvneta_probe(struct platform_
                pp->clk = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(pp->clk)) {
                err = PTR_ERR(pp->clk);
                pp->clk = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(pp->clk)) {
                err = PTR_ERR(pp->clk);
@@ -672,7 +683,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        }
  
        clk_prepare_enable(pp->clk);
        }
  
        clk_prepare_enable(pp->clk);
-@@ -4180,6 +4185,14 @@ static int mvneta_probe(struct platform_
+@@ -4184,6 +4185,14 @@ static int mvneta_probe(struct platform_
        dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
        dev->gso_max_segs = MVNETA_MAX_TSO_SEGS;
  
        dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
        dev->gso_max_segs = MVNETA_MAX_TSO_SEGS;
  
@@ -687,7 +698,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        err = register_netdev(dev);
        if (err < 0) {
                dev_err(&pdev->dev, "failed to register\n");
        err = register_netdev(dev);
        if (err < 0) {
                dev_err(&pdev->dev, "failed to register\n");
-@@ -4191,14 +4204,6 @@ static int mvneta_probe(struct platform_
+@@ -4195,14 +4204,6 @@ static int mvneta_probe(struct platform_
  
        platform_set_drvdata(pdev, pp->dev);
  
  
        platform_set_drvdata(pdev, pp->dev);
  
@@ -702,7 +713,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        return 0;
  
  err_netdev:
        return 0;
  
  err_netdev:
-@@ -4209,16 +4214,14 @@ err_netdev:
+@@ -4213,16 +4214,14 @@ err_netdev:
                                       1 << pp->id);
        }
  err_free_stats:
                                       1 << pp->id);
        }
  err_free_stats:
@@ -721,7 +732,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  err_free_irq:
        irq_dispose_mapping(dev->irq);
  err_free_netdev:
  err_free_irq:
        irq_dispose_mapping(dev->irq);
  err_free_netdev:
-@@ -4230,7 +4233,6 @@ err_free_netdev:
+@@ -4234,7 +4233,6 @@ err_free_netdev:
  static int mvneta_remove(struct platform_device *pdev)
  {
        struct net_device  *dev = platform_get_drvdata(pdev);
  static int mvneta_remove(struct platform_device *pdev)
  {
        struct net_device  *dev = platform_get_drvdata(pdev);
@@ -729,7 +740,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        struct mvneta_port *pp = netdev_priv(dev);
  
        unregister_netdev(dev);
        struct mvneta_port *pp = netdev_priv(dev);
  
        unregister_netdev(dev);
-@@ -4238,10 +4240,8 @@ static int mvneta_remove(struct platform
+@@ -4242,10 +4240,8 @@ static int mvneta_remove(struct platform
        clk_disable_unprepare(pp->clk);
        free_percpu(pp->ports);
        free_percpu(pp->stats);
        clk_disable_unprepare(pp->clk);
        free_percpu(pp->ports);
        free_percpu(pp->stats);
index 6d35b5005c2edebe233de997dc8729b10276d6bb..f6e6df3de855e076ecae2cbc2ae207f181edee3b 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -2630,9 +2630,11 @@ static int mvneta_poll(struct napi_struc
+@@ -2634,9 +2634,11 @@ static int mvneta_poll(struct napi_struc
                mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
  
                if (cause_misc & (MVNETA_CAUSE_PHY_STATUS_CHANGE |
                mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
  
                if (cause_misc & (MVNETA_CAUSE_PHY_STATUS_CHANGE |
@@ -26,7 +26,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
        }
  
        /* Release Tx descriptors */
        }
  
        /* Release Tx descriptors */
-@@ -2947,8 +2949,7 @@ static void mvneta_start_dev(struct mvne
+@@ -2951,8 +2953,7 @@ static void mvneta_start_dev(struct mvne
  
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
  
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
@@ -36,7 +36,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  
        phylink_start(pp->phylink);
        netif_tx_start_all_queues(pp->dev);
  
        phylink_start(pp->phylink);
        netif_tx_start_all_queues(pp->dev);
-@@ -3439,8 +3440,7 @@ static int mvneta_cpu_online(unsigned in
+@@ -3443,8 +3444,7 @@ static int mvneta_cpu_online(unsigned in
        on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
        on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
@@ -46,7 +46,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
        netif_tx_start_all_queues(pp->dev);
        spin_unlock(&pp->lock);
        return 0;
        netif_tx_start_all_queues(pp->dev);
        spin_unlock(&pp->lock);
        return 0;
-@@ -3481,8 +3481,7 @@ static int mvneta_cpu_dead(unsigned int
+@@ -3485,8 +3485,7 @@ static int mvneta_cpu_dead(unsigned int
        on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
        on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
index 20c23ba2ac464ed8bafbfdc4f02cc6db381cc2fb..d2bbb26ab4b4bf398e0ced4143f2fdc5b0c819c3 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3615,6 +3615,13 @@ mvneta_ethtool_get_link_ksettings(struct
+@@ -3619,6 +3619,13 @@ mvneta_ethtool_get_link_ksettings(struct
        return phylink_ethtool_ksettings_get(pp->phylink, cmd);
  }
  
        return phylink_ethtool_ksettings_get(pp->phylink, cmd);
  }
  
@@ -25,7 +25,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  /* Set interrupt coalescing for ethtools */
  static int mvneta_ethtool_set_coalesce(struct net_device *dev,
                                       struct ethtool_coalesce *c)
  /* Set interrupt coalescing for ethtools */
  static int mvneta_ethtool_set_coalesce(struct net_device *dev,
                                       struct ethtool_coalesce *c)
-@@ -3888,6 +3895,7 @@ static const struct net_device_ops mvnet
+@@ -3892,6 +3899,7 @@ static const struct net_device_ops mvnet
  };
  
  const struct ethtool_ops mvneta_eth_tool_ops = {
  };
  
  const struct ethtool_ops mvneta_eth_tool_ops = {
index 3f778953e08f8bbcb0414c865f575a06271fec8c..cb4cebe0e020f776ab650676b4194eacb50bfb4c 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3179,6 +3179,12 @@ static int mvneta_mac_link_state(struct
+@@ -3183,6 +3183,12 @@ static int mvneta_mac_link_state(struct
        state->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
        state->duplex = !!(gmac_stat & MVNETA_GMAC_FULL_DUPLEX);
  
        state->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
        state->duplex = !!(gmac_stat & MVNETA_GMAC_FULL_DUPLEX);
  
@@ -24,7 +24,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        return 1;
  }
  
        return 1;
  }
  
-@@ -3221,6 +3227,8 @@ static void mvneta_mac_config(struct net
+@@ -3225,6 +3231,8 @@ static void mvneta_mac_config(struct net
  
        if (phylink_test(state->advertising, Pause))
                new_an |= MVNETA_GMAC_ADVERT_SYM_FLOW_CTRL;
  
        if (phylink_test(state->advertising, Pause))
                new_an |= MVNETA_GMAC_ADVERT_SYM_FLOW_CTRL;
@@ -33,7 +33,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        switch (mode) {
        case MLO_AN_SGMII:
  
        switch (mode) {
        case MLO_AN_SGMII:
-@@ -3245,7 +3253,7 @@ static void mvneta_mac_config(struct net
+@@ -3249,7 +3257,7 @@ static void mvneta_mac_config(struct net
                         /* The MAC only supports FD mode */
                         MVNETA_GMAC_CONFIG_FULL_DUPLEX;
  
                         /* The MAC only supports FD mode */
                         MVNETA_GMAC_CONFIG_FULL_DUPLEX;
  
@@ -42,7 +42,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                        new_an |= MVNETA_GMAC_AN_FLOW_CTRL_EN;
                break;
  
                        new_an |= MVNETA_GMAC_AN_FLOW_CTRL_EN;
                break;
  
-@@ -3711,6 +3719,22 @@ static int mvneta_ethtool_set_ringparam(
+@@ -3715,6 +3723,22 @@ static int mvneta_ethtool_set_ringparam(
        return 0;
  }
  
        return 0;
  }
  
@@ -65,7 +65,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset,
                                       u8 *data)
  {
  static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset,
                                       u8 *data)
  {
-@@ -3902,6 +3926,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3906,6 +3930,8 @@ const struct ethtool_ops mvneta_eth_tool
        .get_drvinfo    = mvneta_ethtool_get_drvinfo,
        .get_ringparam  = mvneta_ethtool_get_ringparam,
        .set_ringparam  = mvneta_ethtool_set_ringparam,
        .get_drvinfo    = mvneta_ethtool_get_drvinfo,
        .get_ringparam  = mvneta_ethtool_get_ringparam,
        .set_ringparam  = mvneta_ethtool_set_ringparam,
index f2d14afdac2d197bd991630d301850d4d7efedaa..3c2511d26533451bdaa4bb19ae5d0af987eab6c3 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3153,10 +3153,11 @@ static void mvneta_validate_support(stru
+@@ -3157,10 +3157,11 @@ static void mvneta_validate_support(stru
                phylink_set(mask, 10baseT_Full);
                phylink_set(mask, 100baseT_Half);
                phylink_set(mask, 100baseT_Full);
                phylink_set(mask, 10baseT_Full);
                phylink_set(mask, 100baseT_Half);
                phylink_set(mask, 100baseT_Full);
index bac74ca4e79a302b7d4ef889b0ae7271acd907b0..8bd6cec5c5a62657a7d352b6f7703a848b6c4481 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3143,6 +3143,8 @@ static void mvneta_validate_support(stru
+@@ -3147,6 +3147,8 @@ static void mvneta_validate_support(stru
        phylink_set(mask, BNC);
        phylink_set(mask, Backplane);
  
        phylink_set(mask, BNC);
        phylink_set(mask, Backplane);
  
@@ -20,7 +20,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
        /* Half-duplex at speeds higher than 100Mbit is unsupported */
        phylink_set(mask, 1000baseT_Full);
        phylink_set(mask, 1000baseX_Full);
        /* Half-duplex at speeds higher than 100Mbit is unsupported */
        phylink_set(mask, 1000baseT_Full);
        phylink_set(mask, 1000baseX_Full);
-@@ -3155,9 +3157,6 @@ static void mvneta_validate_support(stru
+@@ -3159,9 +3161,6 @@ static void mvneta_validate_support(stru
                phylink_set(mask, 100baseT_Full);
        }
  
                phylink_set(mask, 100baseT_Full);
        }
  
index bc7e5eeeb4bc11adb1870d760e6460c124a61cd9..8451e1ef1b60d54df18ef9674bd67357bafae189 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3305,7 +3305,8 @@ static void mvneta_mac_link_down(struct
+@@ -3309,7 +3309,8 @@ static void mvneta_mac_link_down(struct
        }
  }
  
        }
  }
  
index 3a20a06bee59cccf8e5919e3653b7c7f60847c51..9cffde54da909612a580dae140c1bf67705f264e 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
  
        u32 indir[MVNETA_RSS_LU_TABLE_SIZE];
        u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
  
        u32 indir[MVNETA_RSS_LU_TABLE_SIZE];
-@@ -3290,6 +3307,18 @@ static void mvneta_mac_config(struct net
+@@ -3294,6 +3311,18 @@ static void mvneta_mac_config(struct net
                mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, new_an);
  }
  
                mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, new_an);
  }
  
@@ -84,7 +84,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode)
  {
        struct mvneta_port *pp = netdev_priv(ndev);
  static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode)
  {
        struct mvneta_port *pp = netdev_priv(ndev);
-@@ -3303,6 +3332,9 @@ static void mvneta_mac_link_down(struct
+@@ -3307,6 +3336,9 @@ static void mvneta_mac_link_down(struct
                val |= MVNETA_GMAC_FORCE_LINK_DOWN;
                mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
        }
                val |= MVNETA_GMAC_FORCE_LINK_DOWN;
                mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
        }
@@ -94,7 +94,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  static void mvneta_mac_link_up(struct net_device *ndev, unsigned int mode,
  }
  
  static void mvneta_mac_link_up(struct net_device *ndev, unsigned int mode,
-@@ -3319,6 +3351,11 @@ static void mvneta_mac_link_up(struct ne
+@@ -3323,6 +3355,11 @@ static void mvneta_mac_link_up(struct ne
        }
  
        mvneta_port_up(pp);
        }
  
        mvneta_port_up(pp);
@@ -106,7 +106,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  static const struct phylink_mac_ops mvneta_phylink_ops = {
  }
  
  static const struct phylink_mac_ops mvneta_phylink_ops = {
-@@ -3771,6 +3808,13 @@ static void mvneta_ethtool_update_stats(
+@@ -3775,6 +3812,13 @@ static void mvneta_ethtool_update_stats(
                        high = readl_relaxed(base + s->offset + 4);
                        val = (u64)high << 32 | low;
                        break;
                        high = readl_relaxed(base + s->offset + 4);
                        val = (u64)high << 32 | low;
                        break;
@@ -120,7 +120,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                }
  
                pp->ethtool_stats[i] += val;
                }
  
                pp->ethtool_stats[i] += val;
-@@ -3906,6 +3950,47 @@ static u16 mvneta_select_queue(struct ne
+@@ -3910,6 +3954,47 @@ static u16 mvneta_select_queue(struct ne
  }
  
  
  }
  
  
@@ -168,7 +168,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static const struct net_device_ops mvneta_netdev_ops = {
        .ndo_open            = mvneta_open,
        .ndo_stop            = mvneta_stop,
  static const struct net_device_ops mvneta_netdev_ops = {
        .ndo_open            = mvneta_open,
        .ndo_stop            = mvneta_stop,
-@@ -3938,6 +4023,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3942,6 +4027,8 @@ const struct ethtool_ops mvneta_eth_tool
        .set_rxfh       = mvneta_ethtool_set_rxfh,
        .get_link_ksettings = mvneta_ethtool_get_link_ksettings,
        .set_link_ksettings = mvneta_ethtool_set_link_ksettings,
        .set_rxfh       = mvneta_ethtool_set_rxfh,
        .get_link_ksettings = mvneta_ethtool_get_link_ksettings,
        .set_link_ksettings = mvneta_ethtool_set_link_ksettings,
index 834bbe9a3e338ae5ecbb4734dd11d1ab3b442849..da98c1cbb0b114d23fd4d1330b5f448b47c5c00b 100644 (file)
@@ -7,7 +7,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3950,6 +3950,22 @@ static u16 mvneta_select_queue(struct ne
+@@ -3954,6 +3954,22 @@ static u16 mvneta_select_queue(struct ne
  }
  
  
  }
  
  
@@ -30,7 +30,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static int mvneta_ethtool_get_eee(struct net_device *dev,
                                  struct ethtool_eee *eee)
  {
  static int mvneta_ethtool_get_eee(struct net_device *dev,
                                  struct ethtool_eee *eee)
  {
-@@ -4023,6 +4039,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -4027,6 +4043,8 @@ const struct ethtool_ops mvneta_eth_tool
        .set_rxfh       = mvneta_ethtool_set_rxfh,
        .get_link_ksettings = mvneta_ethtool_get_link_ksettings,
        .set_link_ksettings = mvneta_ethtool_set_link_ksettings,
        .set_rxfh       = mvneta_ethtool_set_rxfh,
        .get_link_ksettings = mvneta_ethtool_get_link_ksettings,
        .set_link_ksettings = mvneta_ethtool_set_link_ksettings,