--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -243,6 +243,12 @@
+@@ -244,6 +244,12 @@
#define MVNETA_TXQ_TOKEN_SIZE_REG(q) (0x3e40 + ((q) << 2))
#define MVNETA_TXQ_TOKEN_SIZE_MAX 0x7fffffff
#define MVNETA_CAUSE_TXQ_SENT_DESC_ALL_MASK 0xff
/* Descriptor ring Macros */
-@@ -316,6 +322,11 @@
+@@ -317,6 +323,11 @@
#define MVNETA_RX_GET_BM_POOL_ID(rxd) \
(((rxd)->status & MVNETA_RXD_BM_POOL_MASK) >> MVNETA_RXD_BM_POOL_SHIFT)
struct mvneta_statistic {
unsigned short offset;
unsigned short type;
-@@ -324,6 +335,7 @@ struct mvneta_statistic {
+@@ -325,6 +336,7 @@ struct mvneta_statistic {
#define T_REG_32 32
#define T_REG_64 64
static const struct mvneta_statistic mvneta_statistics[] = {
{ 0x3000, T_REG_64, "good_octets_received", },
-@@ -358,6 +370,7 @@ static const struct mvneta_statistic mvn
+@@ -359,6 +371,7 @@ static const struct mvneta_statistic mvn
{ 0x304c, T_REG_32, "broadcast_frames_sent", },
{ 0x3054, T_REG_32, "fc_sent", },
{ 0x300c, T_REG_32, "internal_mac_transmit_err", },
};
struct mvneta_pcpu_stats {
-@@ -416,6 +429,10 @@ struct mvneta_port {
+@@ -417,6 +430,10 @@ struct mvneta_port {
struct mvneta_bm_pool *pool_short;
int bm_win_id;
u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
u32 indir[MVNETA_RSS_LU_TABLE_SIZE];
-@@ -3289,6 +3306,18 @@ static void mvneta_mac_config(struct net
+@@ -3290,6 +3307,18 @@ static void mvneta_mac_config(struct net
mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, new_an);
}
static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode)
{
struct mvneta_port *pp = netdev_priv(ndev);
-@@ -3302,6 +3331,9 @@ static void mvneta_mac_link_down(struct
+@@ -3303,6 +3332,9 @@ static void mvneta_mac_link_down(struct
val |= MVNETA_GMAC_FORCE_LINK_DOWN;
mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
}
}
static void mvneta_mac_link_up(struct net_device *ndev, unsigned int mode,
-@@ -3318,6 +3350,11 @@ static void mvneta_mac_link_up(struct ne
+@@ -3319,6 +3351,11 @@ static void mvneta_mac_link_up(struct ne
}
mvneta_port_up(pp);
}
static const struct phylink_mac_ops mvneta_phylink_ops = {
-@@ -3770,6 +3807,13 @@ static void mvneta_ethtool_update_stats(
+@@ -3771,6 +3808,13 @@ static void mvneta_ethtool_update_stats(
high = readl_relaxed(base + s->offset + 4);
val = (u64)high << 32 | low;
break;
}
pp->ethtool_stats[i] += val;
-@@ -3905,6 +3949,47 @@ static u16 mvneta_select_queue(struct ne
+@@ -3906,6 +3950,47 @@ static u16 mvneta_select_queue(struct ne
}
static const struct net_device_ops mvneta_netdev_ops = {
.ndo_open = mvneta_open,
.ndo_stop = mvneta_stop,
-@@ -3937,6 +4022,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3938,6 +4023,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,