* [PATCH v4 1/3] net: mvneta: introduce compatible string "marvell,armada-xp-neta"
[not found] <1435674022-13295-1-git-send-email-simon.guinot@sequanux.org>
@ 2015-06-30 14:20 ` Simon Guinot
2015-06-30 14:22 ` Thomas Petazzoni
2015-06-30 14:20 ` [PATCH v4 2/3] ARM: mvebu: update Ethernet compatible string for Armada XP Simon Guinot
2015-06-30 14:20 ` [PATCH v4 3/3] net: mvneta: disable IP checksum with jumbo frames for Armada 370 Simon Guinot
2 siblings, 1 reply; 6+ messages in thread
From: Simon Guinot @ 2015-06-30 14:20 UTC (permalink / raw)
To: David S. Miller, Thomas Petazzoni
Cc: Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth,
netdev, linux-arm-kernel, Vincent Donnefort, stable
The mvneta driver supports the Ethernet IP found in the Armada 370, XP,
380 and 385 SoCs. Since at least one more hardware feature is available
for the Armada XP SoCs then a way to identify them is needed.
This patch introduces a new compatible string "marvell,armada-xp-neta".
Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
Cc: <stable@vger.kernel.org> # v3.8+
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt b/Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt
index 750d577e8083..f5a8ca29aff0 100644
--- a/Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt
+++ b/Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt
@@ -1,7 +1,7 @@
* Marvell Armada 370 / Armada XP Ethernet Controller (NETA)
Required properties:
-- compatible: should be "marvell,armada-370-neta".
+- compatible: "marvell,armada-370-neta" or "marvell,armada-xp-neta".
- reg: address and length of the register set for the device.
- interrupts: interrupt for the device
- phy: See ethernet.txt file in the same directory.
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index ce5f7f9cff06..aceb977b104d 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3179,6 +3179,7 @@ static int mvneta_remove(struct platform_device *pdev)
static const struct of_device_id mvneta_match[] = {
{ .compatible = "marvell,armada-370-neta" },
+ { .compatible = "marvell,armada-xp-neta" },
{ }
};
MODULE_DEVICE_TABLE(of, mvneta_match);
--
2.1.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 2/3] ARM: mvebu: update Ethernet compatible string for Armada XP
[not found] <1435674022-13295-1-git-send-email-simon.guinot@sequanux.org>
2015-06-30 14:20 ` [PATCH v4 1/3] net: mvneta: introduce compatible string "marvell,armada-xp-neta" Simon Guinot
@ 2015-06-30 14:20 ` Simon Guinot
2015-06-30 14:23 ` Thomas Petazzoni
2015-06-30 14:20 ` [PATCH v4 3/3] net: mvneta: disable IP checksum with jumbo frames for Armada 370 Simon Guinot
2 siblings, 1 reply; 6+ messages in thread
From: Simon Guinot @ 2015-06-30 14:20 UTC (permalink / raw)
To: David S. Miller, Thomas Petazzoni
Cc: Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth,
netdev, linux-arm-kernel, Vincent Donnefort, stable
This patch updates the Ethernet DT nodes for Armada XP SoCs with the
compatible string "marvell,armada-xp-neta".
Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Fixes: 77916519cba3 ("arm: mvebu: Armada XP MV78230 has only three Ethernet interfaces")
Cc: <stable@vger.kernel.org> # v3.8+
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
arch/arm/boot/dts/armada-370-xp.dtsi | 2 --
arch/arm/boot/dts/armada-370.dtsi | 8 ++++++++
arch/arm/boot/dts/armada-xp-mv78260.dtsi | 2 +-
arch/arm/boot/dts/armada-xp-mv78460.dtsi | 2 +-
arch/arm/boot/dts/armada-xp.dtsi | 10 +++++++++-
5 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
index ec96f0b36346..06a2f2ae9d1e 100644
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
@@ -270,7 +270,6 @@
};
eth0: ethernet@70000 {
- compatible = "marvell,armada-370-neta";
reg = <0x70000 0x4000>;
interrupts = <8>;
clocks = <&gateclk 4>;
@@ -286,7 +285,6 @@
};
eth1: ethernet@74000 {
- compatible = "marvell,armada-370-neta";
reg = <0x74000 0x4000>;
interrupts = <10>;
clocks = <&gateclk 3>;
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi
index 00b50db57c9c..ca4257b2f77d 100644
--- a/arch/arm/boot/dts/armada-370.dtsi
+++ b/arch/arm/boot/dts/armada-370.dtsi
@@ -307,6 +307,14 @@
dmacap,memset;
};
};
+
+ ethernet@70000 {
+ compatible = "marvell,armada-370-neta";
+ };
+
+ ethernet@74000 {
+ compatible = "marvell,armada-370-neta";
+ };
};
};
};
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
index 8479fdc9e9c2..c5fdc99f0dbe 100644
--- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
@@ -318,7 +318,7 @@
};
eth3: ethernet@34000 {
- compatible = "marvell,armada-370-neta";
+ compatible = "marvell,armada-xp-neta";
reg = <0x34000 0x4000>;
interrupts = <14>;
clocks = <&gateclk 1>;
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
index 661d54c81580..0e24f1a38540 100644
--- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
@@ -356,7 +356,7 @@
};
eth3: ethernet@34000 {
- compatible = "marvell,armada-370-neta";
+ compatible = "marvell,armada-xp-neta";
reg = <0x34000 0x4000>;
interrupts = <14>;
clocks = <&gateclk 1>;
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
index 013d63f69e36..8fdd6d7c0ab1 100644
--- a/arch/arm/boot/dts/armada-xp.dtsi
+++ b/arch/arm/boot/dts/armada-xp.dtsi
@@ -177,7 +177,7 @@
};
eth2: ethernet@30000 {
- compatible = "marvell,armada-370-neta";
+ compatible = "marvell,armada-xp-neta";
reg = <0x30000 0x4000>;
interrupts = <12>;
clocks = <&gateclk 2>;
@@ -220,6 +220,14 @@
};
};
+ ethernet@70000 {
+ compatible = "marvell,armada-xp-neta";
+ };
+
+ ethernet@74000 {
+ compatible = "marvell,armada-xp-neta";
+ };
+
xor@f0900 {
compatible = "marvell,orion-xor";
reg = <0xF0900 0x100
--
2.1.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 3/3] net: mvneta: disable IP checksum with jumbo frames for Armada 370
[not found] <1435674022-13295-1-git-send-email-simon.guinot@sequanux.org>
2015-06-30 14:20 ` [PATCH v4 1/3] net: mvneta: introduce compatible string "marvell,armada-xp-neta" Simon Guinot
2015-06-30 14:20 ` [PATCH v4 2/3] ARM: mvebu: update Ethernet compatible string for Armada XP Simon Guinot
@ 2015-06-30 14:20 ` Simon Guinot
2015-06-30 14:26 ` Thomas Petazzoni
2 siblings, 1 reply; 6+ messages in thread
From: Simon Guinot @ 2015-06-30 14:20 UTC (permalink / raw)
To: David S. Miller, Thomas Petazzoni
Cc: Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth,
netdev, linux-arm-kernel, Vincent Donnefort, stable
The Ethernet controller found in the Armada 370, 380 and 385 SoCs don't
support TCP/IP checksumming with frame sizes larger than 1600 bytes.
This patch fixes the issue by disabling the features NETIF_F_IP_CSUM and
NETIF_F_TSO for the Armada 370 and compatibles SoCs when the MTU is set
to a value greater than 1600 bytes.
Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
Cc: <stable@vger.kernel.org> # v3.8+
---
drivers/net/ethernet/marvell/mvneta.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index aceb977b104d..9b2b7478fe47 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -310,6 +310,7 @@ struct mvneta_port {
unsigned int link;
unsigned int duplex;
unsigned int speed;
+ unsigned int tx_csum_limit;
int use_inband_status:1;
};
@@ -2502,8 +2503,10 @@ static int mvneta_change_mtu(struct net_device *dev, int mtu)
dev->mtu = mtu;
- if (!netif_running(dev))
+ if (!netif_running(dev)) {
+ netdev_update_features(dev);
return 0;
+ }
/* The interface is running, so we have to force a
* reallocation of the queues
@@ -2532,9 +2535,26 @@ static int mvneta_change_mtu(struct net_device *dev, int mtu)
mvneta_start_dev(pp);
mvneta_port_up(pp);
+ netdev_update_features(dev);
+
return 0;
}
+static netdev_features_t mvneta_fix_features(struct net_device *dev,
+ netdev_features_t features)
+{
+ struct mvneta_port *pp = netdev_priv(dev);
+
+ if (pp->tx_csum_limit && dev->mtu > pp->tx_csum_limit) {
+ features &= ~(NETIF_F_IP_CSUM | NETIF_F_TSO);
+ netdev_info(dev,
+ "Disable IP checksum for MTU greater than %dB\n",
+ pp->tx_csum_limit);
+ }
+
+ return features;
+}
+
/* Get mac address */
static void mvneta_get_mac_addr(struct mvneta_port *pp, unsigned char *addr)
{
@@ -2856,6 +2876,7 @@ static const struct net_device_ops mvneta_netdev_ops = {
.ndo_set_rx_mode = mvneta_set_rx_mode,
.ndo_set_mac_address = mvneta_set_mac_addr,
.ndo_change_mtu = mvneta_change_mtu,
+ .ndo_fix_features = mvneta_fix_features,
.ndo_get_stats64 = mvneta_get_stats64,
.ndo_do_ioctl = mvneta_ioctl,
};
@@ -3101,6 +3122,9 @@ static int mvneta_probe(struct platform_device *pdev)
}
}
+ if (of_device_is_compatible(dn, "marvell,armada-370-neta"))
+ pp->tx_csum_limit = 1600;
+
pp->tx_ring_size = MVNETA_MAX_TXD;
pp->rx_ring_size = MVNETA_MAX_RXD;
--
2.1.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 1/3] net: mvneta: introduce compatible string "marvell,armada-xp-neta"
2015-06-30 14:20 ` [PATCH v4 1/3] net: mvneta: introduce compatible string "marvell,armada-xp-neta" Simon Guinot
@ 2015-06-30 14:22 ` Thomas Petazzoni
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2015-06-30 14:22 UTC (permalink / raw)
To: Simon Guinot
Cc: David S. Miller, Jason Cooper, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, netdev, linux-arm-kernel,
Vincent Donnefort, stable
Dear Simon Guinot,
On Tue, 30 Jun 2015 16:20:20 +0200, Simon Guinot wrote:
> The mvneta driver supports the Ethernet IP found in the Armada 370, XP,
> 380 and 385 SoCs. Since at least one more hardware feature is available
> for the Armada XP SoCs then a way to identify them is needed.
>
> This patch introduces a new compatible string "marvell,armada-xp-neta".
>
> Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
> Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
> Cc: <stable@vger.kernel.org> # v3.8+
> Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/3] ARM: mvebu: update Ethernet compatible string for Armada XP
2015-06-30 14:20 ` [PATCH v4 2/3] ARM: mvebu: update Ethernet compatible string for Armada XP Simon Guinot
@ 2015-06-30 14:23 ` Thomas Petazzoni
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2015-06-30 14:23 UTC (permalink / raw)
To: Simon Guinot
Cc: David S. Miller, Jason Cooper, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, netdev, linux-arm-kernel,
Vincent Donnefort, stable
Dear Simon Guinot,
On Tue, 30 Jun 2015 16:20:21 +0200, Simon Guinot wrote:
> This patch updates the Ethernet DT nodes for Armada XP SoCs with the
> compatible string "marvell,armada-xp-neta".
>
> Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
> Fixes: 77916519cba3 ("arm: mvebu: Armada XP MV78230 has only three Ethernet interfaces")
> Cc: <stable@vger.kernel.org> # v3.8+
> Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 3/3] net: mvneta: disable IP checksum with jumbo frames for Armada 370
2015-06-30 14:20 ` [PATCH v4 3/3] net: mvneta: disable IP checksum with jumbo frames for Armada 370 Simon Guinot
@ 2015-06-30 14:26 ` Thomas Petazzoni
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2015-06-30 14:26 UTC (permalink / raw)
To: Simon Guinot
Cc: David S. Miller, Jason Cooper, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, netdev, linux-arm-kernel,
Vincent Donnefort, stable
Dear Simon Guinot,
On Tue, 30 Jun 2015 16:20:22 +0200, Simon Guinot wrote:
> The Ethernet controller found in the Armada 370, 380 and 385 SoCs don't
> support TCP/IP checksumming with frame sizes larger than 1600 bytes.
>
> This patch fixes the issue by disabling the features NETIF_F_IP_CSUM and
> NETIF_F_TSO for the Armada 370 and compatibles SoCs when the MTU is set
> to a value greater than 1600 bytes.
>
> Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
> Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
> Cc: <stable@vger.kernel.org> # v3.8+
> ---
> drivers/net/ethernet/marvell/mvneta.c | 26 +++++++++++++++++++++++++-
> 1 file changed, 25 insertions(+), 1 deletion(-)
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-06-30 14:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1435674022-13295-1-git-send-email-simon.guinot@sequanux.org>
2015-06-30 14:20 ` [PATCH v4 1/3] net: mvneta: introduce compatible string "marvell,armada-xp-neta" Simon Guinot
2015-06-30 14:22 ` Thomas Petazzoni
2015-06-30 14:20 ` [PATCH v4 2/3] ARM: mvebu: update Ethernet compatible string for Armada XP Simon Guinot
2015-06-30 14:23 ` Thomas Petazzoni
2015-06-30 14:20 ` [PATCH v4 3/3] net: mvneta: disable IP checksum with jumbo frames for Armada 370 Simon Guinot
2015-06-30 14:26 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).