diff options
author | Eric Miao <eric.miao@marvell.com> | 2008-06-19 05:39:03 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-07-12 16:52:40 -0400 |
commit | c4f0e76747e80578a8f7fddd82fd0ce8127bd2f8 (patch) | |
tree | 48dfd3c9b7204f1096410b6f4ee7f7640705c67d | |
parent | fa6d3be08538bb80274d20c7e59f9beca48fa44a (diff) |
[NET] smc91x: add SMC91X_NOWAIT flag to platform data
And also favors the usage of SMC91X_NOWAIT over the hardcoded SMC_NOWAIT
by converting "nowait" (module parameter overridable) to platform flag.
There are several possibilities:
1. platform data present - preferred and use as is
2. platform data absent - use "nowait", it can be:
a. SMC_NOWAIT if defined
b. default to 0 if SMC_NOWAIT isn't defined
c. overriden by module parameter
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Acked-by: Nicolas Pitre <nico@cam.org>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | drivers/net/smc91x.c | 3 | ||||
-rw-r--r-- | include/linux/smc91x.h | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 1b19022b6c7c..de7a913c487c 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c | |||
@@ -308,7 +308,7 @@ static void smc_reset(struct net_device *dev) | |||
308 | * can't handle it then there will be no recovery except for | 308 | * can't handle it then there will be no recovery except for |
309 | * a hard reset or power cycle | 309 | * a hard reset or power cycle |
310 | */ | 310 | */ |
311 | if (nowait) | 311 | if (lp->cfg.flags & SMC91X_NOWAIT) |
312 | cfg |= CONFIG_NO_WAIT; | 312 | cfg |= CONFIG_NO_WAIT; |
313 | 313 | ||
314 | /* | 314 | /* |
@@ -2160,6 +2160,7 @@ static int smc_drv_probe(struct platform_device *pdev) | |||
2160 | lp->cfg.flags |= (SMC_CAN_USE_8BIT) ? SMC91X_USE_8BIT : 0; | 2160 | lp->cfg.flags |= (SMC_CAN_USE_8BIT) ? SMC91X_USE_8BIT : 0; |
2161 | lp->cfg.flags |= (SMC_CAN_USE_16BIT) ? SMC91X_USE_16BIT : 0; | 2161 | lp->cfg.flags |= (SMC_CAN_USE_16BIT) ? SMC91X_USE_16BIT : 0; |
2162 | lp->cfg.flags |= (SMC_CAN_USE_32BIT) ? SMC91X_USE_32BIT : 0; | 2162 | lp->cfg.flags |= (SMC_CAN_USE_32BIT) ? SMC91X_USE_32BIT : 0; |
2163 | lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0; | ||
2163 | } | 2164 | } |
2164 | 2165 | ||
2165 | ndev->dma = (unsigned char)-1; | 2166 | ndev->dma = (unsigned char)-1; |
diff --git a/include/linux/smc91x.h b/include/linux/smc91x.h index fc7682f04d89..90434db72db2 100644 --- a/include/linux/smc91x.h +++ b/include/linux/smc91x.h | |||
@@ -5,6 +5,8 @@ | |||
5 | #define SMC91X_USE_16BIT (1 << 1) | 5 | #define SMC91X_USE_16BIT (1 << 1) |
6 | #define SMC91X_USE_32BIT (1 << 2) | 6 | #define SMC91X_USE_32BIT (1 << 2) |
7 | 7 | ||
8 | #define SMC91X_NOWAIT (1 << 3) | ||
9 | |||
8 | struct smc91x_platdata { | 10 | struct smc91x_platdata { |
9 | unsigned long flags; | 11 | unsigned long flags; |
10 | }; | 12 | }; |