Index: alunn/arch/arm/mach-dove/common.c
===================================================================
--- alunn.orig/arch/arm/mach-dove/common.c	2012-07-20 09:14:45.000000000 +0200
+++ alunn/arch/arm/mach-dove/common.c	2012-07-20 17:51:38.872925518 +0200
@@ -102,7 +102,7 @@ void __init dove_ehci1_init(void)
 void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data)
 {
 	orion_ge00_init(eth_data, DOVE_GE00_PHYS_BASE,
-			IRQ_DOVE_GE00_SUM, IRQ_DOVE_GE00_ERR);
+			IRQ_DOVE_GE00_SUM, IRQ_DOVE_GE00_ERR, 0);
 }
 
 /*****************************************************************************
Index: alunn/arch/arm/mach-kirkwood/common.c
===================================================================
--- alunn.orig/arch/arm/mach-kirkwood/common.c	2012-07-20 09:14:46.000000000 +0200
+++ alunn/arch/arm/mach-kirkwood/common.c	2012-07-20 17:51:03.104927094 +0200
@@ -301,7 +301,7 @@ void __init kirkwood_ge00_init(struct mv
 {
 	orion_ge00_init(eth_data,
 			GE00_PHYS_BASE, IRQ_KIRKWOOD_GE00_SUM,
-			IRQ_KIRKWOOD_GE00_ERR);
+			IRQ_KIRKWOOD_GE00_ERR, 1600);
 	/* The interface forgets the MAC address assigned by u-boot if
 	the clock is turned off, so claim the clk now. */
 	clk_prepare_enable(ge0);
@@ -315,7 +315,7 @@ void __init kirkwood_ge01_init(struct mv
 {
 	orion_ge01_init(eth_data,
 			GE01_PHYS_BASE, IRQ_KIRKWOOD_GE01_SUM,
-			IRQ_KIRKWOOD_GE01_ERR);
+			IRQ_KIRKWOOD_GE01_ERR, 1600);
 	clk_prepare_enable(ge1);
 }
 
Index: alunn/arch/arm/mach-mv78xx0/common.c
===================================================================
--- alunn.orig/arch/arm/mach-mv78xx0/common.c	2012-07-20 09:14:46.000000000 +0200
+++ alunn/arch/arm/mach-mv78xx0/common.c	2012-07-20 17:50:26.712928695 +0200
@@ -213,7 +213,7 @@ void __init mv78xx0_ge00_init(struct mv6
 {
 	orion_ge00_init(eth_data,
 			GE00_PHYS_BASE, IRQ_MV78XX0_GE00_SUM,
-			IRQ_MV78XX0_GE_ERR);
+			IRQ_MV78XX0_GE_ERR, 0);
 }
 
 
@@ -224,7 +224,7 @@ void __init mv78xx0_ge01_init(struct mv6
 {
 	orion_ge01_init(eth_data,
 			GE01_PHYS_BASE, IRQ_MV78XX0_GE01_SUM,
-			NO_IRQ);
+			NO_IRQ, 0);
 }
 
 
Index: alunn/arch/arm/mach-orion5x/common.c
===================================================================
--- alunn.orig/arch/arm/mach-orion5x/common.c	2012-07-20 09:14:46.000000000 +0200
+++ alunn/arch/arm/mach-orion5x/common.c	2012-07-20 17:50:26.744928692 +0200
@@ -109,7 +109,7 @@ void __init orion5x_eth_init(struct mv64
 {
 	orion_ge00_init(eth_data,
 			ORION5X_ETH_PHYS_BASE, IRQ_ORION5X_ETH_SUM,
-			IRQ_ORION5X_ETH_ERR);
+			IRQ_ORION5X_ETH_ERR, 0);
 }
 
 
Index: alunn/arch/arm/plat-orion/common.c
===================================================================
--- alunn.orig/arch/arm/plat-orion/common.c	2012-07-20 09:14:46.000000000 +0200
+++ alunn/arch/arm/plat-orion/common.c	2012-07-20 17:50:26.756928690 +0200
@@ -291,10 +291,12 @@ static struct platform_device orion_ge00
 void __init orion_ge00_init(struct mv643xx_eth_platform_data *eth_data,
 			    unsigned long mapbase,
 			    unsigned long irq,
-			    unsigned long irq_err)
+			    unsigned long irq_err,
+			    unsigned int tx_csum_limit)
 {
 	fill_resources(&orion_ge00_shared, orion_ge00_shared_resources,
 		       mapbase + 0x2000, SZ_16K - 1, irq_err);
+	orion_ge00_shared_data.tx_csum_limit = tx_csum_limit;
 	ge_complete(&orion_ge00_shared_data,
 		    orion_ge00_resources, irq, &orion_ge00_shared,
 		    eth_data, &orion_ge00);
@@ -343,10 +345,12 @@ static struct platform_device orion_ge01
 void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
 			    unsigned long mapbase,
 			    unsigned long irq,
-			    unsigned long irq_err)
+			    unsigned long irq_err,
+			    unsigned int tx_csum_limit)
 {
 	fill_resources(&orion_ge01_shared, orion_ge01_shared_resources,
 		       mapbase + 0x2000, SZ_16K - 1, irq_err);
+	orion_ge01_shared_data.tx_csum_limit = tx_csum_limit;
 	ge_complete(&orion_ge01_shared_data,
 		    orion_ge01_resources, irq, &orion_ge01_shared,
 		    eth_data, &orion_ge01);
Index: alunn/arch/arm/plat-orion/include/plat/common.h
===================================================================
--- alunn.orig/arch/arm/plat-orion/include/plat/common.h	2012-07-20 09:14:46.000000000 +0200
+++ alunn/arch/arm/plat-orion/include/plat/common.h	2012-07-20 17:50:26.772928691 +0200
@@ -39,12 +39,14 @@ void __init orion_rtc_init(unsigned long
 void __init orion_ge00_init(struct mv643xx_eth_platform_data *eth_data,
 			    unsigned long mapbase,
 			    unsigned long irq,
-			    unsigned long irq_err);
+			    unsigned long irq_err,
+			    unsigned int tx_csum_limit);
 
 void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
 			    unsigned long mapbase,
 			    unsigned long irq,
-			    unsigned long irq_err);
+			    unsigned long irq_err,
+			    unsigned int tx_csum_limit);
 
 void __init orion_ge10_init(struct mv643xx_eth_platform_data *eth_data,
 			    unsigned long mapbase,
