[NET] smc91x: add SMC91X_NOWAIT flag to platform data
authorEric Miao <eric.miao@marvell.com>
Thu, 19 Jun 2008 09:39:03 +0000 (17:39 +0800)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 12 Jul 2008 20:52:40 +0000 (21:52 +0100)
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>
drivers/net/smc91x.c
include/linux/smc91x.h

index 1b19022b6c7ca7a379d92f373f9d9fc86c5e4268..de7a913c487cc84c77ee7c645536cd0408bdcb68 100644 (file)
@@ -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;
index fc7682f04d89649d46a40619fa714ec7cd947530..90434db72db2ef6720b1d281e1cf1daa4624f0a0 100644 (file)
@@ -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;
 };