Skip to contentSkip to conversation

kirkwood: set tx_csum_limit

PATCH New Arnaud Patard (Rtp) 3 participants 6 messages Jul 26, 2012

lore
Share & tools
lore
#1 lore raw

PATCH 1/1 kirkwood: set tx_csum_limit

Hi Arnaud,

Quoted 2 lines · On Thursday 26 July 2012 09:12:00 Arnaud Patard wrote:

kirkwood and dove have a smaller FIFO than other "orion" SoCs. This needs to be taken into account otherwise people using things like jumbo

frames

Quoted 4 lines

will get into some troubles.

As a side note, this patch is an updated version of a patch sent some years
ago: http://lists.infradead.org/pipermail/linux-arm-kernel/2010-

June/017320.html

Quoted 7 lines

which seems to have been lost.

Index: alunn/arch/arm/mach-dove/common.c
===================================================================
--- alunn.orig/arch/arm/mach-dove/common.c 2012-07-20 09:14:45.000000000

+0200

Quoted 1 line

+++ alunn/arch/arm/mach-dove/common.c 2012-07-20 17:51:38.872925518

+0200

Review void __init dove_ehci1_init(void) · line 106

Quoted 7 lines
(quoted diff) +1 -1
@@ -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);
 }

You might want to add a constant for TX_CSUM_NO_LIMIT or something like that, rather than a plain 0 which might be a little misleading.

Quoted 2 lines

/*****************************************************************************

Quoted 3 lines

Index: alunn/arch/arm/mach-kirkwood/common.c
===================================================================
--- alunn.orig/arch/arm/mach-kirkwood/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 1 line

+++ alunn/arch/arm/mach-kirkwood/common.c 2012-07-20 17:51:03.104927094

+0200

Quoted 18 lines
(quoted diff) +2 -2
@@ -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);
 }
 
Quoted 3 lines

Index: alunn/arch/arm/mach-mv78xx0/common.c
===================================================================
--- alunn.orig/arch/arm/mach-mv78xx0/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 19 lines

+++ alunn/arch/arm/mach-mv78xx0/common.c 2012-07-20 17:50:26.712928695 +0200

(quoted diff) +2 -2
@@ -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);
 }
 
 
Quoted 3 lines

Index: alunn/arch/arm/mach-orion5x/common.c
===================================================================
--- alunn.orig/arch/arm/mach-orion5x/common.c 2012-07-20 09:14:46.000000000

+0200

Quoted 1 line

+++ alunn/arch/arm/mach-orion5x/common.c 2012-07-20 17:50:26.744928692

+0200

Quoted 9 lines
(quoted diff) +1 -1
@@ -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);
 }
 
 
Quoted 3 lines

Index: alunn/arch/arm/plat-orion/common.c
===================================================================
--- alunn.orig/arch/arm/plat-orion/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 29 lines

+++ alunn/arch/arm/plat-orion/common.c 2012-07-20 17:50:26.756928690 +0200

(quoted diff) +6 -2
@@ -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);
Quoted 3 lines

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

Quoted 1 line

+++ alunn/arch/arm/plat-orion/include/plat/common.h 2012-07-20

17:50:26.772928691 +0200

Quoted 24 lines
(quoted diff) +4 -2
@@ -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,

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#2 lore raw

PATCH 1/1 kirkwood: set tx_csum_limit

Quoted 21 lines · Florian Fainelli

Hi Arnaud,

Quoted 2 lines · On Thursday 26 July 2012 09:12:00 Arnaud Patard wrote:

kirkwood and dove have a smaller FIFO than other "orion" SoCs. This needs to be taken into account otherwise people using things like jumbo

frames

Quoted 4 lines

will get into some troubles.

As a side note, this patch is an updated version of a patch sent some years
ago: http://lists.infradead.org/pipermail/linux-arm-kernel/2010-

June/017320.html

Quoted 7 lines

which seems to have been lost.

Index: alunn/arch/arm/mach-dove/common.c
===================================================================
--- alunn.orig/arch/arm/mach-dove/common.c 2012-07-20 09:14:45.000000000

+0200

Quoted 1 line

+++ alunn/arch/arm/mach-dove/common.c 2012-07-20 17:51:38.872925518

+0200

Quoted 11 lines

Review void __init dove_ehci1_init(void) · line 106

Quoted 7 lines
(quoted diff) +1 -1
@@ -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);
 }

You might want to add a constant for TX_CSUM_NO_LIMIT or something like that, rather than a plain 0 which might be a little misleading.

It's not to set an unlimited value but to tell the driver it has to use its default value. This limit is only valid for kirkwood but given that orion_ge*_init functions are used on all platforms, I have to set

Quoted 128 lines
Quoted 2 lines

/*****************************************************************************

Quoted 3 lines

Index: alunn/arch/arm/mach-kirkwood/common.c
===================================================================
--- alunn.orig/arch/arm/mach-kirkwood/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 1 line

+++ alunn/arch/arm/mach-kirkwood/common.c 2012-07-20 17:51:03.104927094

+0200

Quoted 18 lines
(quoted diff) +2 -2
@@ -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);
 }
 
Quoted 3 lines

Index: alunn/arch/arm/mach-mv78xx0/common.c
===================================================================
--- alunn.orig/arch/arm/mach-mv78xx0/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 19 lines

+++ alunn/arch/arm/mach-mv78xx0/common.c 2012-07-20 17:50:26.712928695 +0200

(quoted diff) +2 -2
@@ -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);
 }
 
 
Quoted 3 lines

Index: alunn/arch/arm/mach-orion5x/common.c
===================================================================
--- alunn.orig/arch/arm/mach-orion5x/common.c 2012-07-20 09:14:46.000000000

+0200

Quoted 1 line

+++ alunn/arch/arm/mach-orion5x/common.c 2012-07-20 17:50:26.744928692

+0200

Quoted 9 lines
(quoted diff) +1 -1
@@ -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);
 }
 
 
Quoted 3 lines

Index: alunn/arch/arm/plat-orion/common.c
===================================================================
--- alunn.orig/arch/arm/plat-orion/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 29 lines

+++ alunn/arch/arm/plat-orion/common.c 2012-07-20 17:50:26.756928690 +0200

(quoted diff) +6 -2
@@ -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);
Quoted 3 lines

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

Quoted 1 line

+++ alunn/arch/arm/plat-orion/include/plat/common.h 2012-07-20

17:50:26.772928691 +0200

Quoted 24 lines
(quoted diff) +4 -2
@@ -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,

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#3 lore raw

PATCH 1/1 kirkwood: set tx_csum_limit

Quoted 11 lines · On Thursday 26 July 2012 11:28:23 Arnaud Patard wrote:
Quoted 9 lines · Florian Fainelli

Hi Arnaud,

Quoted 2 lines · On Thursday 26 July 2012 09:12:00 Arnaud Patard wrote:

kirkwood and dove have a smaller FIFO than other "orion" SoCs. This needs to be taken into account otherwise people using things like jumbo

frames

Quoted 3 lines

will get into some troubles.

As a side note, this patch is an updated version of a patch sent some

years

Quoted 9 lines
Quoted 9 lines
Quoted 1 line

ago: http://lists.infradead.org/pipermail/linux-arm-kernel/2010-

June/017320.html

Quoted 7 lines

which seems to have been lost.

Index: alunn/arch/arm/mach-dove/common.c
===================================================================
--- alunn.orig/arch/arm/mach-dove/common.c 2012-07-20

09:14:45.000000000

Quoted 12 lines
Quoted 12 lines

+0200

Quoted 1 line

+++ alunn/arch/arm/mach-dove/common.c 2012-07-20 17:51:38.872925518

+0200

Review void __init dove_ehci1_init(void) · line 106

Quoted 7 lines
(quoted diff) +1 -1
@@ -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);
 }

You might want to add a constant for TX_CSUM_NO_LIMIT or something like

that,

Quoted 6 lines
Quoted 2 lines

rather than a plain 0 which might be a little misleading.

It's not to set an unlimited value but to tell the driver it has to use its default value. This limit is only valid for kirkwood but given that orion_ge*_init functions are used on all platforms, I have to set

Ok, then I guess that even more justifies a proper constant for this to make it less ambiguous for lazy readers like me.

Quoted 4 lines
Quoted 4 lines
Quoted 3 lines

/*****************************************************************************

Quoted 24 lines
Quoted 24 lines
Quoted 3 lines

Index: alunn/arch/arm/mach-kirkwood/common.c
===================================================================
--- alunn.orig/arch/arm/mach-kirkwood/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 1 line

+++ alunn/arch/arm/mach-kirkwood/common.c 2012-07-20 17:51:03.104927094

+0200

Quoted 18 lines
(quoted diff) +2 -2
@@ -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);
 }
 
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines

Index: alunn/arch/arm/mach-mv78xx0/common.c
===================================================================
--- alunn.orig/arch/arm/mach-mv78xx0/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 1 line

+++ alunn/arch/arm/mach-mv78xx0/common.c 2012-07-20 17:50:26.712928695

+0200

Quoted 18 lines
Quoted 18 lines
Quoted 18 lines
(quoted diff) +2 -2
@@ -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);
 }
 
 
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Index: alunn/arch/arm/mach-orion5x/common.c
===================================================================
--- alunn.orig/arch/arm/mach-orion5x/common.c 2012-07-20

09:14:46.000000000

Quoted 12 lines
Quoted 12 lines

+0200

Quoted 1 line

+++ alunn/arch/arm/mach-orion5x/common.c 2012-07-20 17:50:26.744928692

+0200

Quoted 9 lines
(quoted diff) +1 -1
@@ -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);
 }
 
 
Quoted 5 lines
Quoted 5 lines
Quoted 3 lines

Index: alunn/arch/arm/plat-orion/common.c
===================================================================
--- alunn.orig/arch/arm/plat-orion/common.c 2012-07-20

09:14:46.000000000 +0200

Quoted 1 line

+++ alunn/arch/arm/plat-orion/common.c 2012-07-20 17:50:26.756928690

+0200

Quoted 63 lines
Quoted 54 lines
Quoted 28 lines
(quoted diff) +6 -2
@@ -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);
Quoted 3 lines

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

Quoted 1 line

+++ alunn/arch/arm/plat-orion/include/plat/common.h 2012-07-20

17:50:26.772928691 +0200

Quoted 20 lines
(quoted diff) +4 -2
@@ -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,
Quoted 4 lines
Quoted 4 lines

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#4 lore raw

PATCH 1/1 kirkwood: set tx_csum_limit

In reply to Arnaud Patard (Rtp)
Quoted 9 lines
Quoted 8 lines

Review

Quoted 4 lines
(quoted diff) +1 -1
 	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);
 }

You might want to add a constant for TX_CSUM_NO_LIMIT or something like that, rather than a plain 0 which might be a little misleading.

Quoted 3 lines

It's not to set an unlimited value but to tell the driver it has to use its default value. This limit is only valid for kirkwood but given that orion_ge*_init functions are used on all platforms, I have to set

So how about TX_CSUM_DEFAULT_LIMIT?

It would also be nice if you could change the change log text to something like:

ARM: Orion: Set eth packet size csum offload limit

The mv643xx ethernet controller limits the packet size for the TX checksum offloading. This patch sets this limits for Kirkwood and Dove which have smaller limits that the default.

I would like to consistently use the prefixes:

ARM: Orion:
ARM: Kirkwood:
ARM: Dove:
ARM: Orion5x:
...

Thanks
Andrew

#5 lore raw

PATCH 1/1 kirkwood: set tx_csum_limit

Quoted 9 lines · Andrew Lunn
Quoted 9 lines
Quoted 8 lines

Review

Quoted 4 lines
(quoted diff) +1 -1
 	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);
 }

You might want to add a constant for TX_CSUM_NO_LIMIT or something like that, rather than a plain 0 which might be a little misleading.

Quoted 5 lines
Quoted 3 lines

It's not to set an unlimited value but to tell the driver it has to use its default value. This limit is only valid for kirkwood but given that orion_ge*_init functions are used on all platforms, I have to set

So how about TX_CSUM_DEFAULT_LIMIT?

sounds better :)

Quoted 10 lines

It would also be nice if you could change the change log text to something like:

ARM: Orion: Set eth packet size csum offload limit

The mv643xx ethernet controller limits the packet size for the TX checksum offloading. This patch sets this limits for Kirkwood and Dove which have smaller limits that the default.

ok. updated. Updated patch will follow soon

Quoted 4 lines

I would like to consistently use the prefixes:

ARM: Orion:

maybe it'll be replaced by mvebu some day ?

Arnaud