net/smsc911x: Correctly configure 16-bit register access from DT
authorDave Martin <dave.martin@linaro.org>
Tue, 13 Sep 2011 00:49:29 +0000 (00:49 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Sep 2011 19:18:31 +0000 (15:18 -0400)
The SMSC911X_USE_16BIT needs to be set when using 16-bit register
access.  However, currently no flag is set if the device tree
doesn't specify 32-bit access, resulting in a BUG() and a non-
working driver when 16-bit register access is configured for
smsc911x in the DT.

This patch should set the SMSC911X_USE_16BIT flag in a manner
consistent with the documented DT bindings.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/smsc/smsc911x.c

index 788c4fdab9c22bdd707426d42511d2038df7da2e..a3aa4c0e87f31b87200d53f28df73f19c4cf56e3 100644 (file)
@@ -2121,6 +2121,8 @@ static int __devinit smsc911x_probe_config_dt(
        of_property_read_u32(np, "reg-io-width", &width);
        if (width == 4)
                config->flags |= SMSC911X_USE_32BIT;
+       else
+               config->flags |= SMSC911X_USE_16BIT;
 
        if (of_get_property(np, "smsc,irq-active-high", NULL))
                config->irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH;