All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 6/8]  pxa: make lubbock to use smc91x platform data
@ 2008-06-19 11:08 Eric Miao
  2008-06-19 16:53 ` Nicolas Pitre
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Miao @ 2008-06-19 11:08 UTC (permalink / raw)
  To: linux-netdev, linux-arm-kernel; +Cc: Nicolas Pitre, Magnus Damm


Signed-off-by: Eric Miao <eric.miao@marvell.com>
---
 arch/arm/mach-pxa/lubbock.c |    8 ++++++++
 drivers/net/smc91x.h        |   19 +------------------
 2 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index 429e197..423c883 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -21,6 +21,7 @@
 #include <linux/interrupt.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
+#include <linux/smc91x.h>
 
 #include <linux/spi/spi.h>
 #include <linux/spi/ads7846.h>
@@ -335,11 +336,18 @@ static struct resource smc91x_resources[] = {
 	},
 };
 
+static struct smc91x_platdata lubbock_smc91x_info = {
+	.flags	= SMC91X_USE_16BIT | SMC91X_NOWAIT | SMC91X_IO_SHIFT_2,
+};
+
 static struct platform_device smc91x_device = {
 	.name		= "smc91x",
 	.id		= -1,
 	.num_resources	= ARRAY_SIZE(smc91x_resources),
 	.resource	= smc91x_resources,
+	.dev		= {
+		.platform_data = &lubbock_smc91x_info,
+	},
 };
 
 static struct resource flash_resources[] = {
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index 3ce1ca4..1d9b57f 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -40,24 +40,7 @@
  * Define your architecture specific bus configuration parameters here.
  */
 
-#if	defined(CONFIG_ARCH_LUBBOCK)
-
-/* We can only do 16-bit reads and writes in the static memory space. */
-#define SMC_CAN_USE_8BIT	0
-#define SMC_CAN_USE_16BIT	1
-#define SMC_CAN_USE_32BIT	0
-#define SMC_NOWAIT		1
-
-/* The first two address lines aren't connected... */
-#define SMC_IO_SHIFT		2
-
-#define SMC_inw(a, r)		readw((a) + (r))
-#define SMC_outw(v, a, r)	writew(v, (a) + (r))
-#define SMC_insw(a, r, p, l)	readsw((a) + (r), p, l)
-#define SMC_outsw(a, r, p, l)	writesw((a) + (r), p, l)
-#define SMC_IRQ_FLAGS		(-1)	/* from resource */
-
-#elif defined(CONFIG_BLACKFIN)
+#if defined(CONFIG_BLACKFIN)
 
 #define SMC_IRQ_FLAGS		IRQF_TRIGGER_HIGH
 #define RPC_LSA_DEFAULT		RPC_LED_100_10
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 6/8]  pxa: make lubbock to use smc91x platform data
  2008-06-19 11:08 [PATCH 6/8] pxa: make lubbock to use smc91x platform data Eric Miao
@ 2008-06-19 16:53 ` Nicolas Pitre
  2008-06-20  1:23   ` Eric Miao
  0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Pitre @ 2008-06-19 16:53 UTC (permalink / raw)
  To: Eric Miao; +Cc: linux-netdev, linux-arm-kernel, Magnus Damm

On Thu, 19 Jun 2008, Eric Miao wrote:

> 
> Signed-off-by: Eric Miao <eric.miao@marvell.com>

This (and 7/8 and 8/8) are a bit unfortunate.  Maybe not as visible on 
Lubbock which has a SMC91C94 which can do 10mbps only, but the others 
will have poorer performances because of those patches.  Did you compare 
performances, let's say with netperf, before and after those patches are 
applied?

I understand your goal of wanting to have a single kernel image that 
dynamically can select the right bus access method for all the concerned 
platforms.  But I think you'll see that the runtime overhead has a 
significant impact on network throughput and CPU usage.

I think that some other solution should be explored such that when only 
one machine type (or machine types with the same bus config) is 
configured then the compile time optimizations should remain.  Something 
based on the machine_is_lubbock(), machine_is_Mainstone(), and so on, 
which becomes constants with the right kernel configuration.


Nicolas

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 6/8]  pxa: make lubbock to use smc91x platform data
  2008-06-19 16:53 ` Nicolas Pitre
@ 2008-06-20  1:23   ` Eric Miao
  0 siblings, 0 replies; 3+ messages in thread
From: Eric Miao @ 2008-06-20  1:23 UTC (permalink / raw)
  To: Nicolas Pitre; +Cc: linux-netdev, linux-arm-kernel, Magnus Damm

Nicolas Pitre wrote:
> On Thu, 19 Jun 2008, Eric Miao wrote:
> 
>> Signed-off-by: Eric Miao <eric.miao@marvell.com>
> 
> This (and 7/8 and 8/8) are a bit unfortunate.  Maybe not as visible on 
> Lubbock which has a SMC91C94 which can do 10mbps only, but the others 
> will have poorer performances because of those patches.  Did you compare 
> performances, let's say with netperf, before and after those patches are 
> applied?
> 
> I understand your goal of wanting to have a single kernel image that 
> dynamically can select the right bus access method for all the concerned 
> platforms.  But I think you'll see that the runtime overhead has a 
> significant impact on network throughput and CPU usage.
> 
> I think that some other solution should be explored such that when only 
> one machine type (or machine types with the same bus config) is 
> configured then the compile time optimizations should remain.  Something 
> based on the machine_is_lubbock(), machine_is_Mainstone(), and so on, 
> which becomes constants with the right kernel configuration.
> 

OK, I know your concern. Let's see if we can work this out in another way.

> 
> Nicolas


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-06-20  1:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-06-19 11:08 [PATCH 6/8] pxa: make lubbock to use smc91x platform data Eric Miao
2008-06-19 16:53 ` Nicolas Pitre
2008-06-20  1:23   ` Eric Miao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.