ARM: pxa: enhance smc91x platform data
authorRobert Jarzmik <robert.jarzmik@free.fr>
Mon, 17 Oct 2016 19:45:29 +0000 (21:45 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Oct 2016 18:14:20 +0000 (14:14 -0400)
Instead of having the smc91x driver relying on machine_is_*() calls,
provide this data through platform data, ie. idp, mainstone and
stargate.

This way, the driver doesn't need anymore machine_is_*() calls, which
wouldn't work anymore with a device-tree build.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/arm/mach-pxa/idp.c
arch/arm/mach-pxa/mainstone.c
arch/arm/mach-pxa/stargate2.c
include/linux/smc91x.h

index 66070ac..d1db32b 100644 (file)
@@ -85,6 +85,7 @@ static struct resource smc91x_resources[] = {
 static struct smc91x_platdata smc91x_platdata = {
        .flags = SMC91X_USE_8BIT | SMC91X_USE_16BIT | SMC91X_USE_32BIT |
                 SMC91X_USE_DMA | SMC91X_NOWAIT,
+       .pxa_u16_align4 = true,
 };
 
 static struct platform_device smc91x_device = {
index 4096406..a2d851a 100644 (file)
@@ -140,6 +140,7 @@ static struct resource smc91x_resources[] = {
 static struct smc91x_platdata mainstone_smc91x_info = {
        .flags  = SMC91X_USE_8BIT | SMC91X_USE_16BIT | SMC91X_USE_32BIT |
                  SMC91X_NOWAIT | SMC91X_USE_DMA,
+       .pxa_u16_align4 = true,
 };
 
 static struct platform_device smc91x_device = {
index 702f4f1..7b6610e 100644 (file)
@@ -673,6 +673,7 @@ static struct resource smc91x_resources[] = {
 static struct smc91x_platdata stargate2_smc91x_info = {
        .flags = SMC91X_USE_8BIT | SMC91X_USE_16BIT | SMC91X_USE_32BIT
        | SMC91X_NOWAIT | SMC91X_USE_DMA,
+       .pxa_u16_align4 = true,
 };
 
 static struct platform_device smc91x_device = {
index e302c44..129bc67 100644 (file)
@@ -39,6 +39,7 @@ struct smc91x_platdata {
        unsigned long flags;
        unsigned char leda;
        unsigned char ledb;
+       bool pxa_u16_align4;    /* PXA buggy u16 writes on 4*n+2 addresses */
 };
 
 #endif /* __SMC91X_H__ */