diff options
author | Eric Miao <eric.miao@marvell.com> | 2008-06-19 17:39:03 +0800 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-07-12 21:52:40 +0100 |
commit | c4f0e76747e80578a8f7fddd82fd0ce8127bd2f8 (patch) | |
tree | 48dfd3c9b7204f1096410b6f4ee7f7640705c67d | |
parent | fa6d3be08538bb80274d20c7e59f9beca48fa44a (diff) | |
download | kernel_samsung_crespo-c4f0e76747e80578a8f7fddd82fd0ce8127bd2f8.zip kernel_samsung_crespo-c4f0e76747e80578a8f7fddd82fd0ce8127bd2f8.tar.gz kernel_samsung_crespo-c4f0e76747e80578a8f7fddd82fd0ce8127bd2f8.tar.bz2 |
[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 1b19022..de7a913 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c @@ -308,7 +308,7 @@ static void smc_reset(struct net_device *dev) * can't handle it then there will be no recovery except for * a hard reset or power cycle */ - if (nowait) + if (lp->cfg.flags & SMC91X_NOWAIT) cfg |= CONFIG_NO_WAIT; /* @@ -2160,6 +2160,7 @@ static int smc_drv_probe(struct platform_device *pdev) lp->cfg.flags |= (SMC_CAN_USE_8BIT) ? SMC91X_USE_8BIT : 0; lp->cfg.flags |= (SMC_CAN_USE_16BIT) ? SMC91X_USE_16BIT : 0; lp->cfg.flags |= (SMC_CAN_USE_32BIT) ? SMC91X_USE_32BIT : 0; + lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0; } ndev->dma = (unsigned char)-1; diff --git a/include/linux/smc91x.h b/include/linux/smc91x.h index fc7682f..90434db 100644 --- a/include/linux/smc91x.h +++ b/include/linux/smc91x.h @@ -5,6 +5,8 @@ #define SMC91X_USE_16BIT (1 << 1) #define SMC91X_USE_32BIT (1 << 2) +#define SMC91X_NOWAIT (1 << 3) + struct smc91x_platdata { unsigned long flags; }; |