kernel: bump 4.9 to 4.9.73
Refresh patches. Runtime tested: ar71xx - Archer C7 v2 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
This commit is contained in:
parent
7c0a2bc930
commit
4b275baf91
13 changed files with 82 additions and 71 deletions
|
@ -4,12 +4,12 @@ LINUX_RELEASE?=1
|
||||||
|
|
||||||
LINUX_VERSION-3.18 = .71
|
LINUX_VERSION-3.18 = .71
|
||||||
LINUX_VERSION-4.4 = .108
|
LINUX_VERSION-4.4 = .108
|
||||||
LINUX_VERSION-4.9 = .72
|
LINUX_VERSION-4.9 = .73
|
||||||
LINUX_VERSION-4.14 = .6
|
LINUX_VERSION-4.14 = .6
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
||||||
LINUX_KERNEL_HASH-4.4.108 = 5a001198625ce9f7b0ef1e4b43e033aea859e1ef3509532412cce8f0375ba51a
|
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
|
LINUX_KERNEL_HASH-4.14.6 = 0907678ba9ea146ddbdecd0a0b6363f56b896b5c61c9a15e809effb3ea346ccc
|
||||||
|
|
||||||
ifdef KERNEL_PATCHVER
|
ifdef KERNEL_PATCHVER
|
||||||
|
|
|
@ -803,7 +803,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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 */
|
/* Free tx queue skbuffs */
|
||||||
static void mvneta_txq_bufs_free(struct mvneta_port *pp,
|
static void mvneta_txq_bufs_free(struct mvneta_port *pp,
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < num; 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;
|
txq->txq_get_index;
|
||||||
struct sk_buff *skb = txq->tx_skb[txq->txq_get_index];
|
struct sk_buff *skb = txq->tx_skb[txq->txq_get_index];
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
mvneta_txq_inc_get(txq);
|
mvneta_txq_inc_get(txq);
|
||||||
|
|
||||||
if (!IS_TSO_HEADER(txq, tx_desc->buf_phys_addr))
|
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;
|
continue;
|
||||||
dev_kfree_skb_any(skb);
|
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)
|
if (!tx_done)
|
||||||
return;
|
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 mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats);
|
||||||
struct netdev_queue *nq = netdev_get_tx_queue(dev, txq_id);
|
struct netdev_queue *nq = netdev_get_tx_queue(dev, txq_id);
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
txq->count += frags;
|
txq->count += frags;
|
||||||
mvneta_txq_pend_desc_add(pp, txq, 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 */
|
/* reset txq */
|
||||||
txq->count = 0;
|
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,
|
static void mvneta_txq_deinit(struct mvneta_port *pp,
|
||||||
struct mvneta_tx_queue *txq)
|
struct mvneta_tx_queue *txq)
|
||||||
{
|
{
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
kfree(txq->tx_skb);
|
kfree(txq->tx_skb);
|
||||||
|
|
||||||
if (txq->tso_hdrs)
|
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->size * MVNETA_DESC_ALIGNED_SIZE,
|
||||||
txq->descs, txq->descs_phys);
|
txq->descs, txq->descs_phys);
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
---
|
---
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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 = {
|
static const struct net_device_ops mvneta_netdev_ops = {
|
||||||
.ndo_open = mvneta_open,
|
.ndo_open = mvneta_open,
|
||||||
.ndo_stop = mvneta_stop,
|
.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_fix_features = mvneta_fix_features,
|
||||||
.ndo_get_stats64 = mvneta_get_stats64,
|
.ndo_get_stats64 = mvneta_get_stats64,
|
||||||
.ndo_do_ioctl = mvneta_ioctl,
|
.ndo_do_ioctl = mvneta_ioctl,
|
||||||
|
|
|
@ -74,7 +74,18 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
|
|
||||||
struct mvneta_bm *bm_priv;
|
struct mvneta_bm *bm_priv;
|
||||||
struct mvneta_bm_pool *pool_long;
|
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)
|
static void mvneta_percpu_unmask_interrupt(void *arg)
|
||||||
{
|
{
|
||||||
struct mvneta_port *pp = 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;
|
val &= ~MVNETA_PHY_POLLING_ENABLE;
|
||||||
mvreg_write(pp, MVNETA_UNIT_CONTROL, val);
|
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_ucast_table(pp, -1);
|
||||||
mvneta_set_special_mcast_table(pp, -1);
|
mvneta_set_special_mcast_table(pp, -1);
|
||||||
mvneta_set_other_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;
|
u32 cause_rx_tx;
|
||||||
int rx_queue;
|
int rx_queue;
|
||||||
struct mvneta_port *pp = netdev_priv(napi->dev);
|
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);
|
struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
|
||||||
|
|
||||||
if (!netif_running(pp->dev)) {
|
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);
|
u32 cause_misc = mvreg_read(pp, MVNETA_INTR_MISC_CAUSE);
|
||||||
|
|
||||||
mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
|
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)
|
static void mvneta_start_dev(struct mvneta_port *pp)
|
||||||
{
|
{
|
||||||
int cpu;
|
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_max_rx_size_set(pp, pp->pkt_size);
|
||||||
mvneta_txq_max_tx_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_LINK_CHANGE |
|
||||||
MVNETA_CAUSE_PSC_SYNC_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) {
|
for_each_online_cpu(cpu) {
|
||||||
struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, 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;
|
- struct phy_device *phydev = ndev->phydev;
|
||||||
- int status_change = 0;
|
- int status_change = 0;
|
||||||
+ u32 gmac_stat;
|
+ 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 (phydev->link) {
|
||||||
- if ((pp->speed != phydev->speed) ||
|
- 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;
|
- val |= MVNETA_GMAC_CONFIG_GMII_SPEED;
|
||||||
- else if (phydev->speed == SPEED_100)
|
- else if (phydev->speed == SPEED_100)
|
||||||
- val |= MVNETA_GMAC_CONFIG_MII_SPEED;
|
- val |= MVNETA_GMAC_CONFIG_MII_SPEED;
|
||||||
+ state->an_complete = !!(gmac_stat & MVNETA_GMAC_AN_COMPLETE);
|
+ gmac_stat = mvreg_read(pp, MVNETA_GMAC_STATUS);
|
||||||
+ state->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
|
|
||||||
+ state->duplex = !!(gmac_stat & MVNETA_GMAC_FULL_DUPLEX);
|
|
||||||
|
|
||||||
- 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->duplex = phydev->duplex;
|
||||||
- pp->speed = phydev->speed;
|
- 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)
|
+static void mvneta_mac_an_restart(struct net_device *ndev, unsigned int mode)
|
||||||
+{
|
+{
|
||||||
+ struct mvneta_port *pp = netdev_priv(ndev);
|
+ 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)
|
const struct ethtool_link_ksettings *cmd)
|
||||||
{
|
{
|
||||||
struct mvneta_port *pp = netdev_priv(ndev);
|
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;
|
const struct mvneta_statistic *s;
|
||||||
void __iomem *base = pp->base;
|
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_rxnfc = mvneta_ethtool_get_rxnfc,
|
||||||
.get_rxfh = mvneta_ethtool_get_rxfh,
|
.get_rxfh = mvneta_ethtool_get_rxfh,
|
||||||
.set_rxfh = mvneta_ethtool_set_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;
|
const struct mbus_dram_target_info *dram_target_info;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
struct device_node *dn = pdev->dev.of_node;
|
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 tx_csum_limit;
|
||||||
int phy_mode;
|
int phy_mode;
|
||||||
int err;
|
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);
|
pp = netdev_priv(dev);
|
||||||
spin_lock_init(&pp->lock);
|
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);
|
pp->clk = devm_clk_get(&pdev->dev, NULL);
|
||||||
if (IS_ERR(pp->clk)) {
|
if (IS_ERR(pp->clk)) {
|
||||||
err = PTR_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->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||||
dev->gso_max_segs = MVNETA_MAX_TSO_SEGS;
|
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);
|
err = register_netdev(dev);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(&pdev->dev, "failed to register\n");
|
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;
|
return 0;
|
||||||
|
|
||||||
err_netdev:
|
err_netdev:
|
||||||
@@ -4209,16 +4214,14 @@ err_netdev:
|
@@ -4213,16 +4214,14 @@ err_netdev:
|
||||||
1 << pp->id);
|
1 << pp->id);
|
||||||
}
|
}
|
||||||
err_free_stats:
|
err_free_stats:
|
||||||
|
@ -721,7 +732,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
err_free_irq:
|
err_free_irq:
|
||||||
irq_dispose_mapping(dev->irq);
|
irq_dispose_mapping(dev->irq);
|
||||||
err_free_netdev:
|
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)
|
static int mvneta_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct net_device *dev = platform_get_drvdata(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);
|
struct mvneta_port *pp = netdev_priv(dev);
|
||||||
|
|
||||||
unregister_netdev(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);
|
clk_disable_unprepare(pp->clk);
|
||||||
free_percpu(pp->ports);
|
free_percpu(pp->ports);
|
||||||
free_percpu(pp->stats);
|
free_percpu(pp->stats);
|
||||||
|
|
|
@ -12,7 +12,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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);
|
mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
|
||||||
|
|
||||||
if (cause_misc & (MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
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,
|
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
||||||
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
||||||
|
@ -36,7 +36,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||||
|
|
||||||
phylink_start(pp->phylink);
|
phylink_start(pp->phylink);
|
||||||
netif_tx_start_all_queues(pp->dev);
|
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);
|
on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
|
||||||
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
||||||
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
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);
|
netif_tx_start_all_queues(pp->dev);
|
||||||
spin_unlock(&pp->lock);
|
spin_unlock(&pp->lock);
|
||||||
return 0;
|
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);
|
on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
|
||||||
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
||||||
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
||||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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 */
|
/* Set interrupt coalescing for ethtools */
|
||||||
static int mvneta_ethtool_set_coalesce(struct net_device *dev,
|
static int mvneta_ethtool_set_coalesce(struct net_device *dev,
|
||||||
struct ethtool_coalesce *c)
|
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 = {
|
||||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
|
||||||
state->duplex = !!(gmac_stat & MVNETA_GMAC_FULL_DUPLEX);
|
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))
|
if (phylink_test(state->advertising, Pause))
|
||||||
new_an |= MVNETA_GMAC_ADVERT_SYM_FLOW_CTRL;
|
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) {
|
switch (mode) {
|
||||||
case MLO_AN_SGMII:
|
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 */
|
/* The MAC only supports FD mode */
|
||||||
MVNETA_GMAC_CONFIG_FULL_DUPLEX;
|
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;
|
new_an |= MVNETA_GMAC_AN_FLOW_CTRL_EN;
|
||||||
break;
|
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,
|
static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset,
|
||||||
u8 *data)
|
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_drvinfo = mvneta_ethtool_get_drvinfo,
|
||||||
.get_ringparam = mvneta_ethtool_get_ringparam,
|
.get_ringparam = mvneta_ethtool_get_ringparam,
|
||||||
.set_ringparam = mvneta_ethtool_set_ringparam,
|
.set_ringparam = mvneta_ethtool_set_ringparam,
|
||||||
|
|
|
@ -12,7 +12,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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, 10baseT_Full);
|
||||||
phylink_set(mask, 100baseT_Half);
|
phylink_set(mask, 100baseT_Half);
|
||||||
phylink_set(mask, 100baseT_Full);
|
phylink_set(mask, 100baseT_Full);
|
||||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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, BNC);
|
||||||
phylink_set(mask, Backplane);
|
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 */
|
/* Half-duplex at speeds higher than 100Mbit is unsupported */
|
||||||
phylink_set(mask, 1000baseT_Full);
|
phylink_set(mask, 1000baseT_Full);
|
||||||
phylink_set(mask, 1000baseX_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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
|
u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
|
||||||
|
|
||||||
u32 indir[MVNETA_RSS_LU_TABLE_SIZE];
|
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)
|
static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode)
|
||||||
{
|
{
|
||||||
struct mvneta_port *pp = netdev_priv(ndev);
|
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;
|
val |= MVNETA_GMAC_FORCE_LINK_DOWN;
|
||||||
mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
|
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);
|
high = readl_relaxed(base + s->offset + 4);
|
||||||
val = (u64)high << 32 | low;
|
val = (u64)high << 32 | low;
|
||||||
break;
|
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 = {
|
static const struct net_device_ops mvneta_netdev_ops = {
|
||||||
.ndo_open = mvneta_open,
|
.ndo_open = mvneta_open,
|
||||||
.ndo_stop = mvneta_stop,
|
.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,
|
.set_rxfh = mvneta_ethtool_set_rxfh,
|
||||||
.get_link_ksettings = mvneta_ethtool_get_link_ksettings,
|
.get_link_ksettings = mvneta_ethtool_get_link_ksettings,
|
||||||
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
|
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
|
||||||
|
|
|
@ -7,7 +7,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||||
+++ b/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,
|
static int mvneta_ethtool_get_eee(struct net_device *dev,
|
||||||
struct ethtool_eee *eee)
|
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,
|
.set_rxfh = mvneta_ethtool_set_rxfh,
|
||||||
.get_link_ksettings = mvneta_ethtool_get_link_ksettings,
|
.get_link_ksettings = mvneta_ethtool_get_link_ksettings,
|
||||||
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
|
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
|
||||||
|
|
Loading…
Reference in a new issue