* [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
@ 2009-10-28 13:48 Sriramakrishnan
2009-11-04 13:03 ` Hiremath, Vaibhav
0 siblings, 1 reply; 6+ messages in thread
From: Sriramakrishnan @ 2009-10-28 13:48 UTC (permalink / raw)
To: linux-omap; +Cc: Sriramakrishnan
Migrate to smsc911x ethernet driver instead of smc911x driver.
The smsc911x ethernet driver supports NAPI and performs better
under heavy traffic. With the smc911x driver we were witnessing
very high iowait time for high IO load over NFS.
Signed-off-by: Sriramakrishnan <srk@ti.com>
---
This patch is generated against tip of for-next branch.
arch/arm/configs/omap3_evm_defconfig | 4 +-
arch/arm/mach-omap2/board-omap3evm.c | 36 +++++++++++++++++++++++++--------
2 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/arch/arm/configs/omap3_evm_defconfig b/arch/arm/configs/omap3_evm_defconfig
index d5ff477..50afc67 100644
--- a/arch/arm/configs/omap3_evm_defconfig
+++ b/arch/arm/configs/omap3_evm_defconfig
@@ -617,8 +617,8 @@ CONFIG_MII=y
# CONFIG_DM9000 is not set
# CONFIG_ENC28J60 is not set
# CONFIG_ETHOC is not set
-CONFIG_SMC911X=y
-# CONFIG_SMSC911X is not set
+# CONFIG_SMC911X is not set
+CONFIG_SMSC911X=y
# CONFIG_DNET is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 5d2310e..9bcdaf7 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -21,11 +21,13 @@
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/leds.h>
+#include <linux/interrupt.h>
#include <linux/spi/spi.h>
#include <linux/spi/ads7846.h>
#include <linux/i2c/twl4030.h>
#include <linux/usb/otg.h>
+#include <linux/smsc911x.h>
#include <linux/regulator/machine.h>
@@ -51,7 +53,8 @@
#define OMAP3EVM_ETHR_GPIO_IRQ 176
#define OMAP3EVM_SMC911X_CS 5
-static struct resource omap3evm_smc911x_resources[] = {
+#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
+static struct resource omap3evm_smsc911x_resources[] = {
[0] = {
.start = OMAP3EVM_ETHR_START,
.end = (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1),
@@ -60,18 +63,28 @@ static struct resource omap3evm_smc911x_resources[] = {
[1] = {
.start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
.end = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
- .flags = IORESOURCE_IRQ,
+ .flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
},
};
-static struct platform_device omap3evm_smc911x_device = {
- .name = "smc911x",
+static struct smsc911x_platform_config smsc911x_config = {
+ .phy_interface = PHY_INTERFACE_MODE_MII,
+ .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
+ .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
+ .flags = (SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS),
+};
+
+static struct platform_device omap3evm_smsc911x_device = {
+ .name = "smsc911x",
.id = -1,
- .num_resources = ARRAY_SIZE(omap3evm_smc911x_resources),
- .resource = &omap3evm_smc911x_resources[0],
+ .num_resources = ARRAY_SIZE(omap3evm_smsc911x_resources),
+ .resource = &omap3evm_smsc911x_resources[0],
+ .dev = {
+ .platform_data = &smsc911x_config,
+ },
};
-static inline void __init omap3evm_init_smc911x(void)
+static inline void __init omap3evm_init_smsc911x(void)
{
int eth_cs;
struct clk *l3ck;
@@ -92,8 +105,14 @@ static inline void __init omap3evm_init_smc911x(void)
}
gpio_direction_input(OMAP3EVM_ETHR_GPIO_IRQ);
+
+ platform_device_register(&omap3evm_smsc911x_device);
}
+#else
+static inline void __init omap3evm_init_smsc911x(void) { return; }
+#endif
+
static struct regulator_consumer_supply omap3evm_vmmc1_supply = {
.supply = "vmmc",
};
@@ -335,12 +354,10 @@ static void __init omap3_evm_init_irq(void)
omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL);
omap_init_irq();
omap_gpio_init();
- omap3evm_init_smc911x();
}
static struct platform_device *omap3_evm_devices[] __initdata = {
&omap3_evm_lcd_device,
- &omap3evm_smc911x_device,
};
static void __init omap3_evm_init(void)
@@ -359,6 +376,7 @@ static void __init omap3_evm_init(void)
#endif
usb_musb_init();
ads7846_dev_init();
+ omap3evm_init_smsc911x();
}
static void __init omap3_evm_map_io(void)
--
1.6.2.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
2009-10-28 13:48 [PATCH] omap3evm: Migrate to smsc911x ethernet driver Sriramakrishnan
@ 2009-11-04 13:03 ` Hiremath, Vaibhav
2009-11-11 8:12 ` Govindarajan, Sriramakrishnan
0 siblings, 1 reply; 6+ messages in thread
From: Hiremath, Vaibhav @ 2009-11-04 13:03 UTC (permalink / raw)
To: Govindarajan, Sriramakrishnan, linux-omap@vger.kernel.org
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Govindarajan, Sriramakrishnan
> Sent: Wednesday, October 28, 2009 7:19 PM
> To: linux-omap@vger.kernel.org
> Cc: Govindarajan, Sriramakrishnan
> Subject: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
>
> Migrate to smsc911x ethernet driver instead of smc911x driver.
> The smsc911x ethernet driver supports NAPI and performs better
> under heavy traffic. With the smc911x driver we were witnessing
> very high iowait time for high IO load over NFS.
>
> Signed-off-by: Sriramakrishnan <srk@ti.com>
> ---
> This patch is generated against tip of for-next branch.
>
> arch/arm/configs/omap3_evm_defconfig | 4 +-
> arch/arm/mach-omap2/board-omap3evm.c | 36
> +++++++++++++++++++++++++--------
> 2 files changed, 29 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/configs/omap3_evm_defconfig
> b/arch/arm/configs/omap3_evm_defconfig
> index d5ff477..50afc67 100644
> --- a/arch/arm/configs/omap3_evm_defconfig
> +++ b/arch/arm/configs/omap3_evm_defconfig
> @@ -617,8 +617,8 @@ CONFIG_MII=y
> # CONFIG_DM9000 is not set
> # CONFIG_ENC28J60 is not set
> # CONFIG_ETHOC is not set
> -CONFIG_SMC911X=y
> -# CONFIG_SMSC911X is not set
> +# CONFIG_SMC911X is not set
> +CONFIG_SMSC911X=y
> # CONFIG_DNET is not set
> # CONFIG_IBM_NEW_EMAC_ZMII is not set
> # CONFIG_IBM_NEW_EMAC_RGMII is not set
> diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> index 5d2310e..9bcdaf7 100644
> --- a/arch/arm/mach-omap2/board-omap3evm.c
> +++ b/arch/arm/mach-omap2/board-omap3evm.c
> @@ -21,11 +21,13 @@
> #include <linux/gpio.h>
> #include <linux/input.h>
> #include <linux/leds.h>
> +#include <linux/interrupt.h>
>
> #include <linux/spi/spi.h>
> #include <linux/spi/ads7846.h>
> #include <linux/i2c/twl4030.h>
> #include <linux/usb/otg.h>
> +#include <linux/smsc911x.h>
>
> #include <linux/regulator/machine.h>
>
> @@ -51,7 +53,8 @@
> #define OMAP3EVM_ETHR_GPIO_IRQ 176
> #define OMAP3EVM_SMC911X_CS 5
>
> -static struct resource omap3evm_smc911x_resources[] = {
> +#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
> +static struct resource omap3evm_smsc911x_resources[] = {
> [0] = {
> .start = OMAP3EVM_ETHR_START,
> .end = (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1),
> @@ -60,18 +63,28 @@ static struct resource
> omap3evm_smc911x_resources[] = {
> [1] = {
> .start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> .end = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> - .flags = IORESOURCE_IRQ,
> + .flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
> },
> };
>
> -static struct platform_device omap3evm_smc911x_device = {
> - .name = "smc911x",
> +static struct smsc911x_platform_config smsc911x_config = {
> + .phy_interface = PHY_INTERFACE_MODE_MII,
> + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
> + .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
> + .flags = (SMSC911X_USE_32BIT |
> SMSC911X_SAVE_MAC_ADDRESS),
> +};
> +
> +static struct platform_device omap3evm_smsc911x_device = {
> + .name = "smsc911x",
> .id = -1,
> - .num_resources = ARRAY_SIZE(omap3evm_smc911x_resources),
> - .resource = &omap3evm_smc911x_resources[0],
> + .num_resources = ARRAY_SIZE(omap3evm_smsc911x_resources),
> + .resource = &omap3evm_smsc911x_resources[0],
> + .dev = {
> + .platform_data = &smsc911x_config,
> + },
> };
>
> -static inline void __init omap3evm_init_smc911x(void)
> +static inline void __init omap3evm_init_smsc911x(void)
> {
> int eth_cs;
> struct clk *l3ck;
> @@ -92,8 +105,14 @@ static inline void __init
> omap3evm_init_smc911x(void)
> }
>
> gpio_direction_input(OMAP3EVM_ETHR_GPIO_IRQ);
> +
> + platform_device_register(&omap3evm_smsc911x_device);
> }
>
> +#else
> +static inline void __init omap3evm_init_smsc911x(void) { return; }
> +#endif
> +
> static struct regulator_consumer_supply omap3evm_vmmc1_supply = {
> .supply = "vmmc",
> };
> @@ -335,12 +354,10 @@ static void __init omap3_evm_init_irq(void)
> omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL);
> omap_init_irq();
> omap_gpio_init();
> - omap3evm_init_smc911x();
> }
>
> static struct platform_device *omap3_evm_devices[] __initdata = {
> &omap3_evm_lcd_device,
> - &omap3evm_smc911x_device,
> };
>
> static void __init omap3_evm_init(void)
> @@ -359,6 +376,7 @@ static void __init omap3_evm_init(void)
> #endif
> usb_musb_init();
> ads7846_dev_init();
> + omap3evm_init_smsc911x();
> }
>
> static void __init omap3_evm_map_io(void)
[Hiremath, Vaibhav] I validated this patch on OMAP3EVM and it is working for me. At-least I could able to mount NFS and work without any issue, which was failing before with SMC911x. For me, earlier I was not able to mount NFS filesystem at all.
Verified-by: Vaibhav Hiremath <hvaibhav@ti.com>
Thanks,
Vaibhav
> --
> 1.6.2.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-
> omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
2009-11-04 13:03 ` Hiremath, Vaibhav
@ 2009-11-11 8:12 ` Govindarajan, Sriramakrishnan
2009-11-12 23:25 ` Tony Lindgren
0 siblings, 1 reply; 6+ messages in thread
From: Govindarajan, Sriramakrishnan @ 2009-11-11 8:12 UTC (permalink / raw)
To: linux-omap@vger.kernel.org
Tony,
Are there comments with respect to this patch. Will this be merged in the next window?
Regards
Sriram
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Govindarajan, Sriramakrishnan
> Sent: Wednesday, October 28, 2009 7:19 PM
> To: linux-omap@vger.kernel.org
> Cc: Govindarajan, Sriramakrishnan
> Subject: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
>
> Migrate to smsc911x ethernet driver instead of smc911x driver.
> The smsc911x ethernet driver supports NAPI and performs better
> under heavy traffic. With the smc911x driver we were witnessing
> very high iowait time for high IO load over NFS.
>
> Signed-off-by: Sriramakrishnan <srk@ti.com>
> ---
> This patch is generated against tip of for-next branch.
>
> arch/arm/configs/omap3_evm_defconfig | 4 +-
> arch/arm/mach-omap2/board-omap3evm.c | 36
> +++++++++++++++++++++++++--------
> 2 files changed, 29 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/configs/omap3_evm_defconfig
> b/arch/arm/configs/omap3_evm_defconfig
> index d5ff477..50afc67 100644
> --- a/arch/arm/configs/omap3_evm_defconfig
> +++ b/arch/arm/configs/omap3_evm_defconfig
> @@ -617,8 +617,8 @@ CONFIG_MII=y
> # CONFIG_DM9000 is not set
> # CONFIG_ENC28J60 is not set
> # CONFIG_ETHOC is not set
> -CONFIG_SMC911X=y
> -# CONFIG_SMSC911X is not set
> +# CONFIG_SMC911X is not set
> +CONFIG_SMSC911X=y
> # CONFIG_DNET is not set
> # CONFIG_IBM_NEW_EMAC_ZMII is not set
> # CONFIG_IBM_NEW_EMAC_RGMII is not set
> diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> index 5d2310e..9bcdaf7 100644
> --- a/arch/arm/mach-omap2/board-omap3evm.c
> +++ b/arch/arm/mach-omap2/board-omap3evm.c
> @@ -21,11 +21,13 @@
> #include <linux/gpio.h>
> #include <linux/input.h>
> #include <linux/leds.h>
> +#include <linux/interrupt.h>
>
> #include <linux/spi/spi.h>
> #include <linux/spi/ads7846.h>
> #include <linux/i2c/twl4030.h>
> #include <linux/usb/otg.h>
> +#include <linux/smsc911x.h>
>
> #include <linux/regulator/machine.h>
>
> @@ -51,7 +53,8 @@
> #define OMAP3EVM_ETHR_GPIO_IRQ 176
> #define OMAP3EVM_SMC911X_CS 5
>
> -static struct resource omap3evm_smc911x_resources[] = {
> +#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
> +static struct resource omap3evm_smsc911x_resources[] = {
> [0] = {
> .start = OMAP3EVM_ETHR_START,
> .end = (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1),
> @@ -60,18 +63,28 @@ static struct resource
> omap3evm_smc911x_resources[] = {
> [1] = {
> .start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> .end = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> - .flags = IORESOURCE_IRQ,
> + .flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
> },
> };
>
> -static struct platform_device omap3evm_smc911x_device = {
> - .name = "smc911x",
> +static struct smsc911x_platform_config smsc911x_config = {
> + .phy_interface = PHY_INTERFACE_MODE_MII,
> + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
> + .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
> + .flags = (SMSC911X_USE_32BIT |
> SMSC911X_SAVE_MAC_ADDRESS),
> +};
> +
> +static struct platform_device omap3evm_smsc911x_device = {
> + .name = "smsc911x",
> .id = -1,
> - .num_resources = ARRAY_SIZE(omap3evm_smc911x_resources),
> - .resource = &omap3evm_smc911x_resources[0],
> + .num_resources = ARRAY_SIZE(omap3evm_smsc911x_resources),
> + .resource = &omap3evm_smsc911x_resources[0],
> + .dev = {
> + .platform_data = &smsc911x_config,
> + },
> };
>
> -static inline void __init omap3evm_init_smc911x(void)
> +static inline void __init omap3evm_init_smsc911x(void)
> {
> int eth_cs;
> struct clk *l3ck;
> @@ -92,8 +105,14 @@ static inline void __init
> omap3evm_init_smc911x(void)
> }
>
> gpio_direction_input(OMAP3EVM_ETHR_GPIO_IRQ);
> +
> + platform_device_register(&omap3evm_smsc911x_device);
> }
>
> +#else
> +static inline void __init omap3evm_init_smsc911x(void) { return; }
> +#endif
> +
> static struct regulator_consumer_supply omap3evm_vmmc1_supply = {
> .supply = "vmmc",
> };
> @@ -335,12 +354,10 @@ static void __init omap3_evm_init_irq(void)
> omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL);
> omap_init_irq();
> omap_gpio_init();
> - omap3evm_init_smc911x();
> }
>
> static struct platform_device *omap3_evm_devices[] __initdata = {
> &omap3_evm_lcd_device,
> - &omap3evm_smc911x_device,
> };
>
> static void __init omap3_evm_init(void)
> @@ -359,6 +376,7 @@ static void __init omap3_evm_init(void)
> #endif
> usb_musb_init();
> ads7846_dev_init();
> + omap3evm_init_smsc911x();
> }
>
> static void __init omap3_evm_map_io(void)
[Hiremath, Vaibhav] I validated this patch on OMAP3EVM and it is working for me. At-least I could able to mount NFS and work without any issue, which was failing before with SMC911x. For me, earlier I was not able to mount NFS filesystem at all.
Verified-by: Vaibhav Hiremath <hvaibhav@ti.com>
Thanks,
Vaibhav
> --
> 1.6.2.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-
> omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
2009-11-12 10:57 FW: " Aggarwal, Anuj
@ 2009-11-12 11:00 ` Aggarwal, Anuj
0 siblings, 0 replies; 6+ messages in thread
From: Aggarwal, Anuj @ 2009-11-12 11:00 UTC (permalink / raw)
To: linux-omap@vger.kernel.org
Sorry for the earlier mail, not meant for the l-o list :(
Regards,
Anuj Aggarwal
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Aggarwal, Anuj
> Sent: Thursday, November 12, 2009 4:27 PM
> To: linux-omap@vger.kernel.org
> Subject: FW: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
>
> Pushed this patch to psp-group:build7 ...
>
> Regards,
> Anuj Aggarwal
>
>
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Govindarajan, Sriramakrishnan
> Sent: Wednesday, November 11, 2009 1:43 PM
> To: linux-omap@vger.kernel.org
> Subject: RE: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
>
> Tony,
> Are there comments with respect to this patch. Will this be merged in the
> next window?
> Regards
> Sriram
>
> > -----Original Message-----
> > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > owner@vger.kernel.org] On Behalf Of Govindarajan, Sriramakrishnan
> > Sent: Wednesday, October 28, 2009 7:19 PM
> > To: linux-omap@vger.kernel.org
> > Cc: Govindarajan, Sriramakrishnan
> > Subject: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
> >
> > Migrate to smsc911x ethernet driver instead of smc911x driver.
> > The smsc911x ethernet driver supports NAPI and performs better
> > under heavy traffic. With the smc911x driver we were witnessing
> > very high iowait time for high IO load over NFS.
> >
> > Signed-off-by: Sriramakrishnan <srk@ti.com>
> > ---
> > This patch is generated against tip of for-next branch.
> >
> > arch/arm/configs/omap3_evm_defconfig | 4 +-
> > arch/arm/mach-omap2/board-omap3evm.c | 36
> > +++++++++++++++++++++++++--------
> > 2 files changed, 29 insertions(+), 11 deletions(-)
> >
> > diff --git a/arch/arm/configs/omap3_evm_defconfig
> > b/arch/arm/configs/omap3_evm_defconfig
> > index d5ff477..50afc67 100644
> > --- a/arch/arm/configs/omap3_evm_defconfig
> > +++ b/arch/arm/configs/omap3_evm_defconfig
> > @@ -617,8 +617,8 @@ CONFIG_MII=y
> > # CONFIG_DM9000 is not set
> > # CONFIG_ENC28J60 is not set
> > # CONFIG_ETHOC is not set
> > -CONFIG_SMC911X=y
> > -# CONFIG_SMSC911X is not set
> > +# CONFIG_SMC911X is not set
> > +CONFIG_SMSC911X=y
> > # CONFIG_DNET is not set
> > # CONFIG_IBM_NEW_EMAC_ZMII is not set
> > # CONFIG_IBM_NEW_EMAC_RGMII is not set
> > diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> > omap2/board-omap3evm.c
> > index 5d2310e..9bcdaf7 100644
> > --- a/arch/arm/mach-omap2/board-omap3evm.c
> > +++ b/arch/arm/mach-omap2/board-omap3evm.c
> > @@ -21,11 +21,13 @@
> > #include <linux/gpio.h>
> > #include <linux/input.h>
> > #include <linux/leds.h>
> > +#include <linux/interrupt.h>
> >
> > #include <linux/spi/spi.h>
> > #include <linux/spi/ads7846.h>
> > #include <linux/i2c/twl4030.h>
> > #include <linux/usb/otg.h>
> > +#include <linux/smsc911x.h>
> >
> > #include <linux/regulator/machine.h>
> >
> > @@ -51,7 +53,8 @@
> > #define OMAP3EVM_ETHR_GPIO_IRQ 176
> > #define OMAP3EVM_SMC911X_CS 5
> >
> > -static struct resource omap3evm_smc911x_resources[] = {
> > +#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
> > +static struct resource omap3evm_smsc911x_resources[] = {
> > [0] = {
> > .start = OMAP3EVM_ETHR_START,
> > .end = (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1),
> > @@ -60,18 +63,28 @@ static struct resource
> > omap3evm_smc911x_resources[] = {
> > [1] = {
> > .start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> > .end = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> > - .flags = IORESOURCE_IRQ,
> > + .flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
> > },
> > };
> >
> > -static struct platform_device omap3evm_smc911x_device = {
> > - .name = "smc911x",
> > +static struct smsc911x_platform_config smsc911x_config = {
> > + .phy_interface = PHY_INTERFACE_MODE_MII,
> > + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
> > + .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
> > + .flags = (SMSC911X_USE_32BIT |
> > SMSC911X_SAVE_MAC_ADDRESS),
> > +};
> > +
> > +static struct platform_device omap3evm_smsc911x_device = {
> > + .name = "smsc911x",
> > .id = -1,
> > - .num_resources = ARRAY_SIZE(omap3evm_smc911x_resources),
> > - .resource = &omap3evm_smc911x_resources[0],
> > + .num_resources = ARRAY_SIZE(omap3evm_smsc911x_resources),
> > + .resource = &omap3evm_smsc911x_resources[0],
> > + .dev = {
> > + .platform_data = &smsc911x_config,
> > + },
> > };
> >
> > -static inline void __init omap3evm_init_smc911x(void)
> > +static inline void __init omap3evm_init_smsc911x(void)
> > {
> > int eth_cs;
> > struct clk *l3ck;
> > @@ -92,8 +105,14 @@ static inline void __init
> > omap3evm_init_smc911x(void)
> > }
> >
> > gpio_direction_input(OMAP3EVM_ETHR_GPIO_IRQ);
> > +
> > + platform_device_register(&omap3evm_smsc911x_device);
> > }
> >
> > +#else
> > +static inline void __init omap3evm_init_smsc911x(void) { return; }
> > +#endif
> > +
> > static struct regulator_consumer_supply omap3evm_vmmc1_supply = {
> > .supply = "vmmc",
> > };
> > @@ -335,12 +354,10 @@ static void __init omap3_evm_init_irq(void)
> > omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL);
> > omap_init_irq();
> > omap_gpio_init();
> > - omap3evm_init_smc911x();
> > }
> >
> > static struct platform_device *omap3_evm_devices[] __initdata = {
> > &omap3_evm_lcd_device,
> > - &omap3evm_smc911x_device,
> > };
> >
> > static void __init omap3_evm_init(void)
> > @@ -359,6 +376,7 @@ static void __init omap3_evm_init(void)
> > #endif
> > usb_musb_init();
> > ads7846_dev_init();
> > + omap3evm_init_smsc911x();
> > }
> >
> > static void __init omap3_evm_map_io(void)
>
> [Hiremath, Vaibhav] I validated this patch on OMAP3EVM and it is working
> for me. At-least I could able to mount NFS and work without any issue,
> which was failing before with SMC911x. For me, earlier I was not able to
> mount NFS filesystem at all.
>
> Verified-by: Vaibhav Hiremath <hvaibhav@ti.com>
>
> Thanks,
> Vaibhav
>
> > --
> > 1.6.2.4
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-
> > omap" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
2009-11-11 8:12 ` Govindarajan, Sriramakrishnan
@ 2009-11-12 23:25 ` Tony Lindgren
0 siblings, 0 replies; 6+ messages in thread
From: Tony Lindgren @ 2009-11-12 23:25 UTC (permalink / raw)
To: Govindarajan, Sriramakrishnan; +Cc: linux-omap@vger.kernel.org
* Govindarajan, Sriramakrishnan <srk@ti.com> [091111 00:12]:
> Tony,
> Are there comments with respect to this patch. Will this be merged in the next window?
Looks OK to me, but needs to be refreshed against omap for-next to apply.
Tony
> Regards
> Sriram
>
> > -----Original Message-----
> > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > owner@vger.kernel.org] On Behalf Of Govindarajan, Sriramakrishnan
> > Sent: Wednesday, October 28, 2009 7:19 PM
> > To: linux-omap@vger.kernel.org
> > Cc: Govindarajan, Sriramakrishnan
> > Subject: [PATCH] omap3evm: Migrate to smsc911x ethernet driver.
> >
> > Migrate to smsc911x ethernet driver instead of smc911x driver.
> > The smsc911x ethernet driver supports NAPI and performs better
> > under heavy traffic. With the smc911x driver we were witnessing
> > very high iowait time for high IO load over NFS.
> >
> > Signed-off-by: Sriramakrishnan <srk@ti.com>
> > ---
> > This patch is generated against tip of for-next branch.
> >
> > arch/arm/configs/omap3_evm_defconfig | 4 +-
> > arch/arm/mach-omap2/board-omap3evm.c | 36
> > +++++++++++++++++++++++++--------
> > 2 files changed, 29 insertions(+), 11 deletions(-)
> >
> > diff --git a/arch/arm/configs/omap3_evm_defconfig
> > b/arch/arm/configs/omap3_evm_defconfig
> > index d5ff477..50afc67 100644
> > --- a/arch/arm/configs/omap3_evm_defconfig
> > +++ b/arch/arm/configs/omap3_evm_defconfig
> > @@ -617,8 +617,8 @@ CONFIG_MII=y
> > # CONFIG_DM9000 is not set
> > # CONFIG_ENC28J60 is not set
> > # CONFIG_ETHOC is not set
> > -CONFIG_SMC911X=y
> > -# CONFIG_SMSC911X is not set
> > +# CONFIG_SMC911X is not set
> > +CONFIG_SMSC911X=y
> > # CONFIG_DNET is not set
> > # CONFIG_IBM_NEW_EMAC_ZMII is not set
> > # CONFIG_IBM_NEW_EMAC_RGMII is not set
> > diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> > omap2/board-omap3evm.c
> > index 5d2310e..9bcdaf7 100644
> > --- a/arch/arm/mach-omap2/board-omap3evm.c
> > +++ b/arch/arm/mach-omap2/board-omap3evm.c
> > @@ -21,11 +21,13 @@
> > #include <linux/gpio.h>
> > #include <linux/input.h>
> > #include <linux/leds.h>
> > +#include <linux/interrupt.h>
> >
> > #include <linux/spi/spi.h>
> > #include <linux/spi/ads7846.h>
> > #include <linux/i2c/twl4030.h>
> > #include <linux/usb/otg.h>
> > +#include <linux/smsc911x.h>
> >
> > #include <linux/regulator/machine.h>
> >
> > @@ -51,7 +53,8 @@
> > #define OMAP3EVM_ETHR_GPIO_IRQ 176
> > #define OMAP3EVM_SMC911X_CS 5
> >
> > -static struct resource omap3evm_smc911x_resources[] = {
> > +#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
> > +static struct resource omap3evm_smsc911x_resources[] = {
> > [0] = {
> > .start = OMAP3EVM_ETHR_START,
> > .end = (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1),
> > @@ -60,18 +63,28 @@ static struct resource
> > omap3evm_smc911x_resources[] = {
> > [1] = {
> > .start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> > .end = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
> > - .flags = IORESOURCE_IRQ,
> > + .flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
> > },
> > };
> >
> > -static struct platform_device omap3evm_smc911x_device = {
> > - .name = "smc911x",
> > +static struct smsc911x_platform_config smsc911x_config = {
> > + .phy_interface = PHY_INTERFACE_MODE_MII,
> > + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
> > + .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
> > + .flags = (SMSC911X_USE_32BIT |
> > SMSC911X_SAVE_MAC_ADDRESS),
> > +};
> > +
> > +static struct platform_device omap3evm_smsc911x_device = {
> > + .name = "smsc911x",
> > .id = -1,
> > - .num_resources = ARRAY_SIZE(omap3evm_smc911x_resources),
> > - .resource = &omap3evm_smc911x_resources[0],
> > + .num_resources = ARRAY_SIZE(omap3evm_smsc911x_resources),
> > + .resource = &omap3evm_smsc911x_resources[0],
> > + .dev = {
> > + .platform_data = &smsc911x_config,
> > + },
> > };
> >
> > -static inline void __init omap3evm_init_smc911x(void)
> > +static inline void __init omap3evm_init_smsc911x(void)
> > {
> > int eth_cs;
> > struct clk *l3ck;
> > @@ -92,8 +105,14 @@ static inline void __init
> > omap3evm_init_smc911x(void)
> > }
> >
> > gpio_direction_input(OMAP3EVM_ETHR_GPIO_IRQ);
> > +
> > + platform_device_register(&omap3evm_smsc911x_device);
> > }
> >
> > +#else
> > +static inline void __init omap3evm_init_smsc911x(void) { return; }
> > +#endif
> > +
> > static struct regulator_consumer_supply omap3evm_vmmc1_supply = {
> > .supply = "vmmc",
> > };
> > @@ -335,12 +354,10 @@ static void __init omap3_evm_init_irq(void)
> > omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL);
> > omap_init_irq();
> > omap_gpio_init();
> > - omap3evm_init_smc911x();
> > }
> >
> > static struct platform_device *omap3_evm_devices[] __initdata = {
> > &omap3_evm_lcd_device,
> > - &omap3evm_smc911x_device,
> > };
> >
> > static void __init omap3_evm_init(void)
> > @@ -359,6 +376,7 @@ static void __init omap3_evm_init(void)
> > #endif
> > usb_musb_init();
> > ads7846_dev_init();
> > + omap3evm_init_smsc911x();
> > }
> >
> > static void __init omap3_evm_map_io(void)
>
> [Hiremath, Vaibhav] I validated this patch on OMAP3EVM and it is working for me. At-least I could able to mount NFS and work without any issue, which was failing before with SMC911x. For me, earlier I was not able to mount NFS filesystem at all.
>
> Verified-by: Vaibhav Hiremath <hvaibhav@ti.com>
>
> Thanks,
> Vaibhav
>
> > --
> > 1.6.2.4
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-
> > omap" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] omap3evm: MIgrate to smsc911x ethernet driver.
@ 2009-11-13 9:47 Sriramakrishnan
0 siblings, 0 replies; 6+ messages in thread
From: Sriramakrishnan @ 2009-11-13 9:47 UTC (permalink / raw)
To: linux-omap; +Cc: Sriramakrishnan
Migrate to smsc911x ethernet driver instead of smc911x driver.
The smsc911x ethernet driver supports NAPI and performs better
under heavy traffic. With the smc911x driver we were witnessing
very high iowait time for high IO load over NFS.
Signed-off-by: Sriramakrishnan <srk@ti.com>
---
This patch has been refreshed against the tip of for-next branch.
Tested by reverting commit 20dec08ce892df224 as it was breaking
compilation otherwise.
arch/arm/configs/omap3_evm_defconfig | 4 +-
arch/arm/mach-omap2/board-omap3evm.c | 43 +++++++++++++++++++++++----------
2 files changed, 32 insertions(+), 15 deletions(-)
diff --git a/arch/arm/configs/omap3_evm_defconfig b/arch/arm/configs/omap3_evm_defconfig
index da69732..e190fc8 100644
--- a/arch/arm/configs/omap3_evm_defconfig
+++ b/arch/arm/configs/omap3_evm_defconfig
@@ -617,8 +617,8 @@ CONFIG_MII=y
# CONFIG_DM9000 is not set
# CONFIG_ENC28J60 is not set
# CONFIG_ETHOC is not set
-CONFIG_SMC911X=y
-# CONFIG_SMSC911X is not set
+# CONFIG_SMC911X is not set
+CONFIG_SMSC911X=y
# CONFIG_DNET is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index be93142..e8a7617 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -22,11 +22,13 @@
#include <linux/input.h>
#include <linux/input/matrix_keypad.h>
#include <linux/leds.h>
+#include <linux/interrupt.h>
#include <linux/spi/spi.h>
#include <linux/spi/ads7846.h>
#include <linux/i2c/twl4030.h>
#include <linux/usb/otg.h>
+#include <linux/smsc911x.h>
#include <linux/regulator/machine.h>
@@ -52,7 +54,7 @@
#define OMAP3EVM_ETHR_SIZE 1024
#define OMAP3EVM_ETHR_ID_REV 0x50
#define OMAP3EVM_ETHR_GPIO_IRQ 176
-#define OMAP3EVM_SMC911X_CS 5
+#define OMAP3EVM_SMSC911X_CS 5
static u8 omap3_evm_version;
@@ -84,7 +86,8 @@ static void __init omap3_evm_get_revision(void)
}
}
-static struct resource omap3evm_smc911x_resources[] = {
+#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
+static struct resource omap3evm_smsc911x_resources[] = {
[0] = {
.start = OMAP3EVM_ETHR_START,
.end = (OMAP3EVM_ETHR_START + OMAP3EVM_ETHR_SIZE - 1),
@@ -93,24 +96,34 @@ static struct resource omap3evm_smc911x_resources[] = {
[1] = {
.start = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
.end = OMAP_GPIO_IRQ(OMAP3EVM_ETHR_GPIO_IRQ),
- .flags = IORESOURCE_IRQ,
+ .flags = (IORESOURCE_IRQ | IRQF_TRIGGER_LOW),
},
};
-static struct platform_device omap3evm_smc911x_device = {
- .name = "smc911x",
+static struct smsc911x_platform_config smsc911x_config = {
+ .phy_interface = PHY_INTERFACE_MODE_MII,
+ .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
+ .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
+ .flags = (SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS),
+};
+
+static struct platform_device omap3evm_smsc911x_device = {
+ .name = "smsc911x",
.id = -1,
- .num_resources = ARRAY_SIZE(omap3evm_smc911x_resources),
- .resource = &omap3evm_smc911x_resources[0],
+ .num_resources = ARRAY_SIZE(omap3evm_smsc911x_resources),
+ .resource = &omap3evm_smsc911x_resources[0],
+ .dev = {
+ .platform_data = &smsc911x_config,
+ },
};
-static inline void __init omap3evm_init_smc911x(void)
+static inline void __init omap3evm_init_smsc911x(void)
{
int eth_cs;
struct clk *l3ck;
unsigned int rate;
- eth_cs = OMAP3EVM_SMC911X_CS;
+ eth_cs = OMAP3EVM_SMSC911X_CS;
l3ck = clk_get(NULL, "l3_ck");
if (IS_ERR(l3ck))
@@ -118,15 +131,20 @@ static inline void __init omap3evm_init_smc911x(void)
else
rate = clk_get_rate(l3ck);
- if (gpio_request(OMAP3EVM_ETHR_GPIO_IRQ, "SMC911x irq") < 0) {
- printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
+ if (gpio_request(OMAP3EVM_ETHR_GPIO_IRQ, "SMSC911x irq") < 0) {
+ printk(KERN_ERR "Failed to request GPIO%d for smsc911x IRQ\n",
OMAP3EVM_ETHR_GPIO_IRQ);
return;
}
gpio_direction_input(OMAP3EVM_ETHR_GPIO_IRQ);
+ platform_device_register(&omap3evm_smsc911x_device);
}
+#else
+static inline void __init omap3evm_init_smsc911x(void) { return; }
+#endif
+
static struct regulator_consumer_supply omap3evm_vmmc1_supply = {
.supply = "vmmc",
};
@@ -368,12 +386,10 @@ static void __init omap3_evm_init_irq(void)
omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL);
omap_init_irq();
omap_gpio_init();
- omap3evm_init_smc911x();
}
static struct platform_device *omap3_evm_devices[] __initdata = {
&omap3_evm_lcd_device,
- &omap3evm_smc911x_device,
};
static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
@@ -430,6 +446,7 @@ static void __init omap3_evm_init(void)
usb_musb_init();
usb_ehci_init(&ehci_pdata);
ads7846_dev_init();
+ omap3evm_init_smsc911x();
}
static void __init omap3_evm_map_io(void)
--
1.6.2.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-11-13 9:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-28 13:48 [PATCH] omap3evm: Migrate to smsc911x ethernet driver Sriramakrishnan
2009-11-04 13:03 ` Hiremath, Vaibhav
2009-11-11 8:12 ` Govindarajan, Sriramakrishnan
2009-11-12 23:25 ` Tony Lindgren
-- strict thread matches above, loose matches on Subject: below --
2009-11-12 10:57 FW: " Aggarwal, Anuj
2009-11-12 11:00 ` Aggarwal, Anuj
2009-11-13 9:47 [PATCH] omap3evm: MIgrate " Sriramakrishnan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox