diff options
26 files changed, 163 insertions, 27 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4853f9df37bd..6c73e963d976 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -354,7 +354,7 @@ config ARCH_IXP4XX | |||
| 354 | select GENERIC_GPIO | 354 | select GENERIC_GPIO |
| 355 | select GENERIC_TIME | 355 | select GENERIC_TIME |
| 356 | select GENERIC_CLOCKEVENTS | 356 | select GENERIC_CLOCKEVENTS |
| 357 | select ZONE_DMA if PCI | 357 | select DMABOUNCE if PCI |
| 358 | help | 358 | help |
| 359 | Support for Intel's IXP4XX (XScale) family of processors. | 359 | Support for Intel's IXP4XX (XScale) family of processors. |
| 360 | 360 | ||
diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig index 2e32acca02fb..86b5e6982660 100644 --- a/arch/arm/common/Kconfig +++ b/arch/arm/common/Kconfig | |||
| @@ -13,10 +13,10 @@ config ICST307 | |||
| 13 | config SA1111 | 13 | config SA1111 |
| 14 | bool | 14 | bool |
| 15 | select DMABOUNCE if !ARCH_PXA | 15 | select DMABOUNCE if !ARCH_PXA |
| 16 | select ZONE_DMA if !ARCH_PXA | ||
| 17 | 16 | ||
| 18 | config DMABOUNCE | 17 | config DMABOUNCE |
| 19 | bool | 18 | bool |
| 19 | select ZONE_DMA | ||
| 20 | 20 | ||
| 21 | config TIMER_ACORN | 21 | config TIMER_ACORN |
| 22 | bool | 22 | bool |
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index fb86f248aab8..47ccec95f3e8 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
| @@ -581,6 +581,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, | |||
| 581 | goto out; | 581 | goto out; |
| 582 | } | 582 | } |
| 583 | 583 | ||
| 584 | #ifdef CONFIG_DMABOUNCE | ||
| 584 | /* | 585 | /* |
| 585 | * If the parent device has a DMA mask associated with it, | 586 | * If the parent device has a DMA mask associated with it, |
| 586 | * propagate it down to the children. | 587 | * propagate it down to the children. |
| @@ -598,6 +599,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, | |||
| 598 | } | 599 | } |
| 599 | } | 600 | } |
| 600 | } | 601 | } |
| 602 | #endif | ||
| 601 | 603 | ||
| 602 | out: | 604 | out: |
| 603 | return ret; | 605 | return ret; |
| @@ -937,7 +939,7 @@ static int sa1111_resume(struct platform_device *dev) | |||
| 937 | #define sa1111_resume NULL | 939 | #define sa1111_resume NULL |
| 938 | #endif | 940 | #endif |
| 939 | 941 | ||
| 940 | static int sa1111_probe(struct platform_device *pdev) | 942 | static int __devinit sa1111_probe(struct platform_device *pdev) |
| 941 | { | 943 | { |
| 942 | struct resource *mem; | 944 | struct resource *mem; |
| 943 | int irq; | 945 | int irq; |
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig index 8b7a431a8bfc..9033d147f052 100644 --- a/arch/arm/configs/trizeps4_defconfig +++ b/arch/arm/configs/trizeps4_defconfig | |||
| @@ -147,6 +147,7 @@ CONFIG_ARCH_PXA=y | |||
| 147 | # CONFIG_MACH_MAINSTONE is not set | 147 | # CONFIG_MACH_MAINSTONE is not set |
| 148 | # CONFIG_ARCH_PXA_IDP is not set | 148 | # CONFIG_ARCH_PXA_IDP is not set |
| 149 | # CONFIG_PXA_SHARPSL is not set | 149 | # CONFIG_PXA_SHARPSL is not set |
| 150 | CONFIG_TRIZEPS_PXA=y | ||
| 150 | CONFIG_MACH_TRIZEPS4=y | 151 | CONFIG_MACH_TRIZEPS4=y |
| 151 | CONFIG_MACH_TRIZEPS4_CONXS=y | 152 | CONFIG_MACH_TRIZEPS4_CONXS=y |
| 152 | # CONFIG_MACH_TRIZEPS4_ANY is not set | 153 | # CONFIG_MACH_TRIZEPS4_ANY is not set |
diff --git a/arch/arm/mach-clps711x/include/mach/memory.h b/arch/arm/mach-clps711x/include/mach/memory.h index 71c2fa70c8e8..98ec30c97bbe 100644 --- a/arch/arm/mach-clps711x/include/mach/memory.h +++ b/arch/arm/mach-clps711x/include/mach/memory.h | |||
| @@ -89,6 +89,8 @@ | |||
| 89 | * node 3: 0xd8000000 - 0xdfffffff | 89 | * node 3: 0xd8000000 - 0xdfffffff |
| 90 | */ | 90 | */ |
| 91 | #define NODE_MEM_SIZE_BITS 24 | 91 | #define NODE_MEM_SIZE_BITS 24 |
| 92 | #define SECTION_SIZE_BITS 24 | ||
| 93 | #define MAX_PHYSMEM_BITS 32 | ||
| 92 | 94 | ||
| 93 | #endif | 95 | #endif |
| 94 | 96 | ||
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig index db8b5fe06c0d..2c5a02b8520e 100644 --- a/arch/arm/mach-ixp4xx/Kconfig +++ b/arch/arm/mach-ixp4xx/Kconfig | |||
| @@ -167,11 +167,6 @@ config MACH_GTWX5715 | |||
| 167 | 167 | ||
| 168 | comment "IXP4xx Options" | 168 | comment "IXP4xx Options" |
| 169 | 169 | ||
| 170 | config DMABOUNCE | ||
| 171 | bool | ||
| 172 | default y | ||
| 173 | depends on PCI | ||
| 174 | |||
| 175 | config IXP4XX_INDIRECT_PCI | 170 | config IXP4XX_INDIRECT_PCI |
| 176 | bool "Use indirect PCI memory access" | 171 | bool "Use indirect PCI memory access" |
| 177 | depends on PCI | 172 | depends on PCI |
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 85cad05d8c5b..0bb1fbd84ccb 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include <linux/mv643xx_eth.h> | 16 | #include <linux/mv643xx_eth.h> |
| 17 | #include <linux/ata_platform.h> | 17 | #include <linux/ata_platform.h> |
| 18 | #include <linux/spi/orion_spi.h> | 18 | #include <linux/spi/orion_spi.h> |
| 19 | #include <net/dsa.h> | ||
| 19 | #include <asm/page.h> | 20 | #include <asm/page.h> |
| 20 | #include <asm/timex.h> | 21 | #include <asm/timex.h> |
| 21 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
| @@ -152,6 +153,40 @@ void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data) | |||
| 152 | 153 | ||
| 153 | 154 | ||
| 154 | /***************************************************************************** | 155 | /***************************************************************************** |
| 156 | * Ethernet switch | ||
| 157 | ****************************************************************************/ | ||
| 158 | static struct resource kirkwood_switch_resources[] = { | ||
| 159 | { | ||
| 160 | .start = 0, | ||
| 161 | .end = 0, | ||
| 162 | .flags = IORESOURCE_IRQ, | ||
| 163 | }, | ||
| 164 | }; | ||
| 165 | |||
| 166 | static struct platform_device kirkwood_switch_device = { | ||
| 167 | .name = "dsa", | ||
| 168 | .id = 0, | ||
| 169 | .num_resources = 0, | ||
| 170 | .resource = kirkwood_switch_resources, | ||
| 171 | }; | ||
| 172 | |||
| 173 | void __init kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq) | ||
| 174 | { | ||
| 175 | if (irq != NO_IRQ) { | ||
| 176 | kirkwood_switch_resources[0].start = irq; | ||
| 177 | kirkwood_switch_resources[0].end = irq; | ||
| 178 | kirkwood_switch_device.num_resources = 1; | ||
| 179 | } | ||
| 180 | |||
| 181 | d->mii_bus = &kirkwood_ge00_shared.dev; | ||
| 182 | d->netdev = &kirkwood_ge00.dev; | ||
| 183 | kirkwood_switch_device.dev.platform_data = d; | ||
| 184 | |||
| 185 | platform_device_register(&kirkwood_switch_device); | ||
| 186 | } | ||
| 187 | |||
| 188 | |||
| 189 | /***************************************************************************** | ||
| 155 | * SoC RTC | 190 | * SoC RTC |
| 156 | ****************************************************************************/ | 191 | ****************************************************************************/ |
| 157 | static struct resource kirkwood_rtc_resource = { | 192 | static struct resource kirkwood_rtc_resource = { |
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h index 8fa0f6a27635..5774632a67e3 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #ifndef __ARCH_KIRKWOOD_COMMON_H | 11 | #ifndef __ARCH_KIRKWOOD_COMMON_H |
| 12 | #define __ARCH_KIRKWOOD_COMMON_H | 12 | #define __ARCH_KIRKWOOD_COMMON_H |
| 13 | 13 | ||
| 14 | struct dsa_platform_data; | ||
| 14 | struct mv643xx_eth_platform_data; | 15 | struct mv643xx_eth_platform_data; |
| 15 | struct mv_sata_platform_data; | 16 | struct mv_sata_platform_data; |
| 16 | 17 | ||
| @@ -29,6 +30,7 @@ void kirkwood_pcie_id(u32 *dev, u32 *rev); | |||
| 29 | 30 | ||
| 30 | void kirkwood_ehci_init(void); | 31 | void kirkwood_ehci_init(void); |
| 31 | void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); | 32 | void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); |
| 33 | void kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq); | ||
| 32 | void kirkwood_pcie_init(void); | 34 | void kirkwood_pcie_init(void); |
| 33 | void kirkwood_rtc_init(void); | 35 | void kirkwood_rtc_init(void); |
| 34 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); | 36 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); |
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index f785093e433f..175054abd630 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/ata_platform.h> | 19 | #include <linux/ata_platform.h> |
| 20 | #include <linux/mv643xx_eth.h> | 20 | #include <linux/mv643xx_eth.h> |
| 21 | #include <linux/ethtool.h> | 21 | #include <linux/ethtool.h> |
| 22 | #include <net/dsa.h> | ||
| 22 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
| 23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
| 24 | #include <asm/mach/pci.h> | 25 | #include <asm/mach/pci.h> |
| @@ -74,6 +75,15 @@ static struct mv643xx_eth_platform_data rd88f6281_ge00_data = { | |||
| 74 | .duplex = DUPLEX_FULL, | 75 | .duplex = DUPLEX_FULL, |
| 75 | }; | 76 | }; |
| 76 | 77 | ||
| 78 | static struct dsa_platform_data rd88f6281_switch_data = { | ||
| 79 | .port_names[0] = "lan1", | ||
| 80 | .port_names[1] = "lan2", | ||
| 81 | .port_names[2] = "lan3", | ||
| 82 | .port_names[3] = "lan4", | ||
| 83 | .port_names[4] = "wan", | ||
| 84 | .port_names[5] = "cpu", | ||
| 85 | }; | ||
| 86 | |||
| 77 | static struct mv_sata_platform_data rd88f6281_sata_data = { | 87 | static struct mv_sata_platform_data rd88f6281_sata_data = { |
| 78 | .n_ports = 2, | 88 | .n_ports = 2, |
| 79 | }; | 89 | }; |
| @@ -87,6 +97,7 @@ static void __init rd88f6281_init(void) | |||
| 87 | 97 | ||
| 88 | kirkwood_ehci_init(); | 98 | kirkwood_ehci_init(); |
| 89 | kirkwood_ge00_init(&rd88f6281_ge00_data); | 99 | kirkwood_ge00_init(&rd88f6281_ge00_data); |
| 100 | kirkwood_ge00_switch_init(&rd88f6281_switch_data, NO_IRQ); | ||
| 90 | kirkwood_rtc_init(); | 101 | kirkwood_rtc_init(); |
| 91 | kirkwood_sata_init(&rd88f6281_sata_data); | 102 | kirkwood_sata_init(&rd88f6281_sata_data); |
| 92 | kirkwood_uart0_init(); | 103 | kirkwood_uart0_init(); |
diff --git a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c index 49f434c39eb7..2e285bbb7bbd 100644 --- a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c +++ b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
| 14 | #include <linux/ata_platform.h> | 14 | #include <linux/ata_platform.h> |
| 15 | #include <linux/mv643xx_eth.h> | 15 | #include <linux/mv643xx_eth.h> |
| 16 | #include <linux/ethtool.h> | ||
| 16 | #include <mach/mv78xx0.h> | 17 | #include <mach/mv78xx0.h> |
| 17 | #include <asm/mach-types.h> | 18 | #include <asm/mach-types.h> |
| 18 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
| @@ -28,10 +29,14 @@ static struct mv643xx_eth_platform_data db78x00_ge01_data = { | |||
| 28 | 29 | ||
| 29 | static struct mv643xx_eth_platform_data db78x00_ge10_data = { | 30 | static struct mv643xx_eth_platform_data db78x00_ge10_data = { |
| 30 | .phy_addr = MV643XX_ETH_PHY_NONE, | 31 | .phy_addr = MV643XX_ETH_PHY_NONE, |
| 32 | .speed = SPEED_1000, | ||
| 33 | .duplex = DUPLEX_FULL, | ||
| 31 | }; | 34 | }; |
| 32 | 35 | ||
| 33 | static struct mv643xx_eth_platform_data db78x00_ge11_data = { | 36 | static struct mv643xx_eth_platform_data db78x00_ge11_data = { |
| 34 | .phy_addr = MV643XX_ETH_PHY_NONE, | 37 | .phy_addr = MV643XX_ETH_PHY_NONE, |
| 38 | .speed = SPEED_1000, | ||
| 39 | .duplex = DUPLEX_FULL, | ||
| 35 | }; | 40 | }; |
| 36 | 41 | ||
| 37 | static struct mv_sata_platform_data db78x00_sata_data = { | 42 | static struct mv_sata_platform_data db78x00_sata_data = { |
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 9625ef5975d0..437065c25c9c 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/mv643xx_i2c.h> | 19 | #include <linux/mv643xx_i2c.h> |
| 20 | #include <linux/ata_platform.h> | 20 | #include <linux/ata_platform.h> |
| 21 | #include <linux/spi/orion_spi.h> | 21 | #include <linux/spi/orion_spi.h> |
| 22 | #include <net/dsa.h> | ||
| 22 | #include <asm/page.h> | 23 | #include <asm/page.h> |
| 23 | #include <asm/setup.h> | 24 | #include <asm/setup.h> |
| 24 | #include <asm/timex.h> | 25 | #include <asm/timex.h> |
| @@ -198,6 +199,40 @@ void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data) | |||
| 198 | 199 | ||
| 199 | 200 | ||
| 200 | /***************************************************************************** | 201 | /***************************************************************************** |
| 202 | * Ethernet switch | ||
| 203 | ****************************************************************************/ | ||
| 204 | static struct resource orion5x_switch_resources[] = { | ||
| 205 | { | ||
| 206 | .start = 0, | ||
| 207 | .end = 0, | ||
| 208 | .flags = IORESOURCE_IRQ, | ||
| 209 | }, | ||
| 210 | }; | ||
| 211 | |||
| 212 | static struct platform_device orion5x_switch_device = { | ||
| 213 | .name = "dsa", | ||
| 214 | .id = 0, | ||
| 215 | .num_resources = 0, | ||
| 216 | .resource = orion5x_switch_resources, | ||
| 217 | }; | ||
| 218 | |||
| 219 | void __init orion5x_eth_switch_init(struct dsa_platform_data *d, int irq) | ||
| 220 | { | ||
| 221 | if (irq != NO_IRQ) { | ||
| 222 | orion5x_switch_resources[0].start = irq; | ||
| 223 | orion5x_switch_resources[0].end = irq; | ||
| 224 | orion5x_switch_device.num_resources = 1; | ||
| 225 | } | ||
| 226 | |||
| 227 | d->mii_bus = &orion5x_eth_shared.dev; | ||
| 228 | d->netdev = &orion5x_eth.dev; | ||
| 229 | orion5x_switch_device.dev.platform_data = d; | ||
| 230 | |||
| 231 | platform_device_register(&orion5x_switch_device); | ||
| 232 | } | ||
| 233 | |||
| 234 | |||
| 235 | /***************************************************************************** | ||
| 201 | * I2C | 236 | * I2C |
| 202 | ****************************************************************************/ | 237 | ****************************************************************************/ |
| 203 | static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = { | 238 | static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = { |
| @@ -275,7 +310,8 @@ void __init orion5x_sata_init(struct mv_sata_platform_data *sata_data) | |||
| 275 | * SPI | 310 | * SPI |
| 276 | ****************************************************************************/ | 311 | ****************************************************************************/ |
| 277 | static struct orion_spi_info orion5x_spi_plat_data = { | 312 | static struct orion_spi_info orion5x_spi_plat_data = { |
| 278 | .tclk = 0, | 313 | .tclk = 0, |
| 314 | .enable_clock_fix = 1, | ||
| 279 | }; | 315 | }; |
| 280 | 316 | ||
| 281 | static struct resource orion5x_spi_resources[] = { | 317 | static struct resource orion5x_spi_resources[] = { |
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h index 1f8b2da676a5..a000c7c6ee96 100644 --- a/arch/arm/mach-orion5x/common.h +++ b/arch/arm/mach-orion5x/common.h | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef __ARCH_ORION5X_COMMON_H | 1 | #ifndef __ARCH_ORION5X_COMMON_H |
| 2 | #define __ARCH_ORION5X_COMMON_H | 2 | #define __ARCH_ORION5X_COMMON_H |
| 3 | 3 | ||
| 4 | struct dsa_platform_data; | ||
| 4 | struct mv643xx_eth_platform_data; | 5 | struct mv643xx_eth_platform_data; |
| 5 | struct mv_sata_platform_data; | 6 | struct mv_sata_platform_data; |
| 6 | 7 | ||
| @@ -29,6 +30,7 @@ void orion5x_setup_pcie_wa_win(u32 base, u32 size); | |||
| 29 | void orion5x_ehci0_init(void); | 30 | void orion5x_ehci0_init(void); |
| 30 | void orion5x_ehci1_init(void); | 31 | void orion5x_ehci1_init(void); |
| 31 | void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data); | 32 | void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data); |
| 33 | void orion5x_eth_switch_init(struct dsa_platform_data *d, int irq); | ||
| 32 | void orion5x_i2c_init(void); | 34 | void orion5x_i2c_init(void); |
| 33 | void orion5x_sata_init(struct mv_sata_platform_data *sata_data); | 35 | void orion5x_sata_init(struct mv_sata_platform_data *sata_data); |
| 34 | void orion5x_spi_init(void); | 36 | void orion5x_spi_init(void); |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c index 500cdadaf09c..15f53235ee30 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include <linux/mtd/physmap.h> | 16 | #include <linux/mtd/physmap.h> |
| 17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
| 18 | #include <linux/ethtool.h> | 18 | #include <linux/ethtool.h> |
| 19 | #include <net/dsa.h> | ||
| 19 | #include <asm/mach-types.h> | 20 | #include <asm/mach-types.h> |
| 20 | #include <asm/gpio.h> | 21 | #include <asm/gpio.h> |
| 21 | #include <asm/leds.h> | 22 | #include <asm/leds.h> |
| @@ -93,6 +94,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_fxo_eth_data = { | |||
| 93 | .duplex = DUPLEX_FULL, | 94 | .duplex = DUPLEX_FULL, |
| 94 | }; | 95 | }; |
| 95 | 96 | ||
| 97 | static struct dsa_platform_data rd88f5181l_fxo_switch_data = { | ||
| 98 | .port_names[0] = "lan2", | ||
| 99 | .port_names[1] = "lan1", | ||
| 100 | .port_names[2] = "wan", | ||
| 101 | .port_names[3] = "cpu", | ||
| 102 | .port_names[5] = "lan4", | ||
| 103 | .port_names[7] = "lan3", | ||
| 104 | }; | ||
| 105 | |||
| 96 | static void __init rd88f5181l_fxo_init(void) | 106 | static void __init rd88f5181l_fxo_init(void) |
| 97 | { | 107 | { |
| 98 | /* | 108 | /* |
| @@ -107,6 +117,7 @@ static void __init rd88f5181l_fxo_init(void) | |||
| 107 | */ | 117 | */ |
| 108 | orion5x_ehci0_init(); | 118 | orion5x_ehci0_init(); |
| 109 | orion5x_eth_init(&rd88f5181l_fxo_eth_data); | 119 | orion5x_eth_init(&rd88f5181l_fxo_eth_data); |
| 120 | orion5x_eth_switch_init(&rd88f5181l_fxo_switch_data, NO_IRQ); | ||
| 110 | orion5x_uart0_init(); | 121 | orion5x_uart0_init(); |
| 111 | 122 | ||
| 112 | orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE, | 123 | orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE, |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c index ebde81416499..8ad3934399d4 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
| 18 | #include <linux/ethtool.h> | 18 | #include <linux/ethtool.h> |
| 19 | #include <linux/i2c.h> | 19 | #include <linux/i2c.h> |
| 20 | #include <net/dsa.h> | ||
| 20 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
| 21 | #include <asm/gpio.h> | 22 | #include <asm/gpio.h> |
| 22 | #include <asm/leds.h> | 23 | #include <asm/leds.h> |
| @@ -94,6 +95,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_ge_eth_data = { | |||
| 94 | .duplex = DUPLEX_FULL, | 95 | .duplex = DUPLEX_FULL, |
| 95 | }; | 96 | }; |
| 96 | 97 | ||
| 98 | static struct dsa_platform_data rd88f5181l_ge_switch_data = { | ||
| 99 | .port_names[0] = "lan2", | ||
| 100 | .port_names[1] = "lan1", | ||
| 101 | .port_names[2] = "wan", | ||
| 102 | .port_names[3] = "cpu", | ||
| 103 | .port_names[5] = "lan4", | ||
| 104 | .port_names[7] = "lan3", | ||
| 105 | }; | ||
| 106 | |||
| 97 | static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { | 107 | static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { |
| 98 | I2C_BOARD_INFO("ds1338", 0x68), | 108 | I2C_BOARD_INFO("ds1338", 0x68), |
| 99 | }; | 109 | }; |
| @@ -112,6 +122,7 @@ static void __init rd88f5181l_ge_init(void) | |||
| 112 | */ | 122 | */ |
| 113 | orion5x_ehci0_init(); | 123 | orion5x_ehci0_init(); |
| 114 | orion5x_eth_init(&rd88f5181l_ge_eth_data); | 124 | orion5x_eth_init(&rd88f5181l_ge_eth_data); |
| 125 | orion5x_eth_switch_init(&rd88f5181l_ge_switch_data, gpio_to_irq(8)); | ||
| 115 | orion5x_i2c_init(); | 126 | orion5x_i2c_init(); |
| 116 | orion5x_uart0_init(); | 127 | orion5x_uart0_init(); |
| 117 | 128 | ||
diff --git a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c index 40e049539091..262e25e4dace 100644 --- a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/spi/orion_spi.h> | 19 | #include <linux/spi/orion_spi.h> |
| 20 | #include <linux/spi/flash.h> | 20 | #include <linux/spi/flash.h> |
| 21 | #include <linux/ethtool.h> | 21 | #include <linux/ethtool.h> |
| 22 | #include <net/dsa.h> | ||
| 22 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
| 23 | #include <asm/gpio.h> | 24 | #include <asm/gpio.h> |
| 24 | #include <asm/leds.h> | 25 | #include <asm/leds.h> |
| @@ -34,6 +35,15 @@ static struct mv643xx_eth_platform_data rd88f6183ap_ge_eth_data = { | |||
| 34 | .duplex = DUPLEX_FULL, | 35 | .duplex = DUPLEX_FULL, |
| 35 | }; | 36 | }; |
| 36 | 37 | ||
| 38 | static struct dsa_platform_data rd88f6183ap_ge_switch_data = { | ||
| 39 | .port_names[0] = "lan1", | ||
| 40 | .port_names[1] = "lan2", | ||
| 41 | .port_names[2] = "lan3", | ||
| 42 | .port_names[3] = "lan4", | ||
| 43 | .port_names[4] = "wan", | ||
| 44 | .port_names[5] = "cpu", | ||
| 45 | }; | ||
| 46 | |||
| 37 | static struct mtd_partition rd88f6183ap_ge_partitions[] = { | 47 | static struct mtd_partition rd88f6183ap_ge_partitions[] = { |
| 38 | { | 48 | { |
| 39 | .name = "kernel", | 49 | .name = "kernel", |
| @@ -79,6 +89,7 @@ static void __init rd88f6183ap_ge_init(void) | |||
| 79 | */ | 89 | */ |
| 80 | orion5x_ehci0_init(); | 90 | orion5x_ehci0_init(); |
| 81 | orion5x_eth_init(&rd88f6183ap_ge_eth_data); | 91 | orion5x_eth_init(&rd88f6183ap_ge_eth_data); |
| 92 | orion5x_eth_switch_init(&rd88f6183ap_ge_switch_data, gpio_to_irq(3)); | ||
| 82 | spi_register_board_info(rd88f6183ap_ge_spi_slave_info, | 93 | spi_register_board_info(rd88f6183ap_ge_spi_slave_info, |
| 83 | ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info)); | 94 | ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info)); |
| 84 | orion5x_spi_init(); | 95 | orion5x_spi_init(); |
diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c index 9a4fd5256462..cc8f89200865 100644 --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <linux/mtd/physmap.h> | 15 | #include <linux/mtd/physmap.h> |
| 16 | #include <linux/mv643xx_eth.h> | 16 | #include <linux/mv643xx_eth.h> |
| 17 | #include <linux/ethtool.h> | 17 | #include <linux/ethtool.h> |
| 18 | #include <net/dsa.h> | ||
| 18 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
| 19 | #include <asm/gpio.h> | 20 | #include <asm/gpio.h> |
| 20 | #include <asm/mach/arch.h> | 21 | #include <asm/mach/arch.h> |
| @@ -105,6 +106,15 @@ static struct mv643xx_eth_platform_data wrt350n_v2_eth_data = { | |||
| 105 | .duplex = DUPLEX_FULL, | 106 | .duplex = DUPLEX_FULL, |
| 106 | }; | 107 | }; |
| 107 | 108 | ||
| 109 | static struct dsa_platform_data wrt350n_v2_switch_data = { | ||
| 110 | .port_names[0] = "lan2", | ||
| 111 | .port_names[1] = "lan1", | ||
| 112 | .port_names[2] = "wan", | ||
| 113 | .port_names[3] = "cpu", | ||
| 114 | .port_names[5] = "lan3", | ||
| 115 | .port_names[7] = "lan4", | ||
| 116 | }; | ||
| 117 | |||
| 108 | static void __init wrt350n_v2_init(void) | 118 | static void __init wrt350n_v2_init(void) |
| 109 | { | 119 | { |
| 110 | /* | 120 | /* |
| @@ -119,6 +129,7 @@ static void __init wrt350n_v2_init(void) | |||
| 119 | */ | 129 | */ |
| 120 | orion5x_ehci0_init(); | 130 | orion5x_ehci0_init(); |
| 121 | orion5x_eth_init(&wrt350n_v2_eth_data); | 131 | orion5x_eth_init(&wrt350n_v2_eth_data); |
| 132 | orion5x_eth_switch_init(&wrt350n_v2_switch_data, NO_IRQ); | ||
| 122 | orion5x_uart0_init(); | 133 | orion5x_uart0_init(); |
| 123 | 134 | ||
| 124 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, | 135 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, |
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index 99b669b924d7..a062235e83a8 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
| @@ -265,7 +265,6 @@ config MACH_ARMCORE | |||
| 265 | bool "CompuLab CM-X255/CM-X270 modules" | 265 | bool "CompuLab CM-X255/CM-X270 modules" |
| 266 | select PXA27x | 266 | select PXA27x |
| 267 | select IWMMXT | 267 | select IWMMXT |
| 268 | select ZONE_DMA if PCI | ||
| 269 | select PXA25x | 268 | select PXA25x |
| 270 | select PXA_SSP | 269 | select PXA_SSP |
| 271 | 270 | ||
diff --git a/arch/arm/mach-pxa/include/mach/irqs.h b/arch/arm/mach-pxa/include/mach/irqs.h index 9c163e19ada9..32bb4a2eb7f1 100644 --- a/arch/arm/mach-pxa/include/mach/irqs.h +++ b/arch/arm/mach-pxa/include/mach/irqs.h | |||
| @@ -9,7 +9,8 @@ | |||
| 9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
| 10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
| 11 | */ | 11 | */ |
| 12 | 12 | #ifndef __ASM_MACH_IRQS_H | |
| 13 | #define __ASM_MACH_IRQS_H | ||
| 13 | 14 | ||
| 14 | #ifdef CONFIG_PXA_HAVE_ISA_IRQS | 15 | #ifdef CONFIG_PXA_HAVE_ISA_IRQS |
| 15 | #define PXA_ISA_IRQ(x) (x) | 16 | #define PXA_ISA_IRQ(x) (x) |
| @@ -264,3 +265,5 @@ | |||
| 264 | #endif | 265 | #endif |
| 265 | 266 | ||
| 266 | #endif /* CONFIG_PCI_HOST_ITE8152 */ | 267 | #endif /* CONFIG_PCI_HOST_ITE8152 */ |
| 268 | |||
| 269 | #endif /* __ASM_MACH_IRQS_H */ | ||
diff --git a/arch/arm/mach-pxa/pwm.c b/arch/arm/mach-pxa/pwm.c index 316cd986da5c..74e2ead8cee8 100644 --- a/arch/arm/mach-pxa/pwm.c +++ b/arch/arm/mach-pxa/pwm.c | |||
| @@ -60,7 +60,7 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) | |||
| 60 | do_div(c, 1000000000); | 60 | do_div(c, 1000000000); |
| 61 | period_cycles = c; | 61 | period_cycles = c; |
| 62 | 62 | ||
| 63 | if (period_cycles < 0) | 63 | if (period_cycles < 1) |
| 64 | period_cycles = 1; | 64 | period_cycles = 1; |
| 65 | prescale = (period_cycles - 1) / 1024; | 65 | prescale = (period_cycles - 1) / 1024; |
| 66 | pv = period_cycles / (prescale + 1) - 1; | 66 | pv = period_cycles / (prescale + 1) - 1; |
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index a13dbf3c2c05..a72e3add743c 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c | |||
| @@ -399,7 +399,7 @@ static void trizeps4_irda_transceiver_mode(struct device *dev, int mode) | |||
| 399 | /* Switch mode */ | 399 | /* Switch mode */ |
| 400 | if (mode & IR_SIRMODE) | 400 | if (mode & IR_SIRMODE) |
| 401 | trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */ | 401 | trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */ |
| 402 | else if (mode & IR_FIRMODE) { | 402 | else if (mode & IR_FIRMODE) |
| 403 | trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */ | 403 | trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */ |
| 404 | 404 | ||
| 405 | /* Switch power */ | 405 | /* Switch power */ |
diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c index 2f60bf6b8d43..f854e7385e3c 100644 --- a/arch/arm/mach-s3c2443/clock.c +++ b/arch/arm/mach-s3c2443/clock.c | |||
| @@ -1033,8 +1033,7 @@ void __init s3c2443_init_clocks(int xtal) | |||
| 1033 | 1033 | ||
| 1034 | fclk = pll / s3c2443_fclk_div(clkdiv0); | 1034 | fclk = pll / s3c2443_fclk_div(clkdiv0); |
| 1035 | hclk = s3c2443_prediv_getrate(&clk_prediv); | 1035 | hclk = s3c2443_prediv_getrate(&clk_prediv); |
| 1036 | hclk = hclk / s3c2443_get_hdiv(clkdiv0); | 1036 | hclk /= s3c2443_get_hdiv(clkdiv0); |
| 1037 | hclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_HCLK) ? 2 : 1); | ||
| 1038 | pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1); | 1037 | pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1); |
| 1039 | 1038 | ||
| 1040 | s3c24xx_setup_clocks(xtal, fclk, hclk, pclk); | 1039 | s3c24xx_setup_clocks(xtal, fclk, hclk, pclk); |
diff --git a/arch/arm/mm/cache-v4.S b/arch/arm/mm/cache-v4.S index 33926c9fcda6..5786adf10040 100644 --- a/arch/arm/mm/cache-v4.S +++ b/arch/arm/mm/cache-v4.S | |||
| @@ -29,7 +29,7 @@ ENTRY(v4_flush_user_cache_all) | |||
| 29 | * Clean and invalidate the entire cache. | 29 | * Clean and invalidate the entire cache. |
| 30 | */ | 30 | */ |
| 31 | ENTRY(v4_flush_kern_cache_all) | 31 | ENTRY(v4_flush_kern_cache_all) |
| 32 | #ifdef CPU_CP15 | 32 | #ifdef CONFIG_CPU_CP15 |
| 33 | mov r0, #0 | 33 | mov r0, #0 |
| 34 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache | 34 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache |
| 35 | mov pc, lr | 35 | mov pc, lr |
| @@ -48,7 +48,7 @@ ENTRY(v4_flush_kern_cache_all) | |||
| 48 | * - flags - vma_area_struct flags describing address space | 48 | * - flags - vma_area_struct flags describing address space |
| 49 | */ | 49 | */ |
| 50 | ENTRY(v4_flush_user_cache_range) | 50 | ENTRY(v4_flush_user_cache_range) |
| 51 | #ifdef CPU_CP15 | 51 | #ifdef CONFIG_CPU_CP15 |
| 52 | mov ip, #0 | 52 | mov ip, #0 |
| 53 | mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache | 53 | mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache |
| 54 | mov pc, lr | 54 | mov pc, lr |
| @@ -116,7 +116,7 @@ ENTRY(v4_dma_inv_range) | |||
| 116 | * - end - virtual end address | 116 | * - end - virtual end address |
| 117 | */ | 117 | */ |
| 118 | ENTRY(v4_dma_flush_range) | 118 | ENTRY(v4_dma_flush_range) |
| 119 | #ifdef CPU_CP15 | 119 | #ifdef CONFIG_CPU_CP15 |
| 120 | mov r0, #0 | 120 | mov r0, #0 |
| 121 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache | 121 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache |
| 122 | #endif | 122 | #endif |
diff --git a/arch/arm/plat-s3c24xx/pwm-clock.c b/arch/arm/plat-s3c24xx/pwm-clock.c index b8e854f1b1d5..3fad68a1e6bc 100644 --- a/arch/arm/plat-s3c24xx/pwm-clock.c +++ b/arch/arm/plat-s3c24xx/pwm-clock.c | |||
| @@ -315,7 +315,7 @@ static int clk_pwm_tin_set_parent(struct clk *clk, struct clk *parent) | |||
| 315 | if (parent == s3c24xx_pwmclk_tclk(id)) | 315 | if (parent == s3c24xx_pwmclk_tclk(id)) |
| 316 | bits = S3C2410_TCFG1_MUX_TCLK << shift; | 316 | bits = S3C2410_TCFG1_MUX_TCLK << shift; |
| 317 | else if (parent == s3c24xx_pwmclk_tdiv(id)) | 317 | else if (parent == s3c24xx_pwmclk_tdiv(id)) |
| 318 | bits = clk_pwm_tdiv_bits(to_tdiv(clk)) << shift; | 318 | bits = clk_pwm_tdiv_bits(to_tdiv(parent)) << shift; |
| 319 | else | 319 | else |
| 320 | return -EINVAL; | 320 | return -EINVAL; |
| 321 | 321 | ||
diff --git a/arch/arm/plat-s3c24xx/pwm.c b/arch/arm/plat-s3c24xx/pwm.c index feb770f2e84e..ec56b88866c4 100644 --- a/arch/arm/plat-s3c24xx/pwm.c +++ b/arch/arm/plat-s3c24xx/pwm.c | |||
| @@ -56,7 +56,7 @@ static struct clk *clk_scaler[2]; | |||
| 56 | } \ | 56 | } \ |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | #define DEFINE_TIMER(_tmr_no, _irq) \ | 59 | #define DEFINE_S3C_TIMER(_tmr_no, _irq) \ |
| 60 | .name = "s3c24xx-pwm", \ | 60 | .name = "s3c24xx-pwm", \ |
| 61 | .id = _tmr_no, \ | 61 | .id = _tmr_no, \ |
| 62 | .num_resources = TIMER_RESOURCE_SIZE, \ | 62 | .num_resources = TIMER_RESOURCE_SIZE, \ |
| @@ -67,11 +67,11 @@ static struct clk *clk_scaler[2]; | |||
| 67 | */ | 67 | */ |
| 68 | 68 | ||
| 69 | struct platform_device s3c_device_timer[] = { | 69 | struct platform_device s3c_device_timer[] = { |
| 70 | [0] = { DEFINE_TIMER(0, IRQ_TIMER0) }, | 70 | [0] = { DEFINE_S3C_TIMER(0, IRQ_TIMER0) }, |
| 71 | [1] = { DEFINE_TIMER(1, IRQ_TIMER1) }, | 71 | [1] = { DEFINE_S3C_TIMER(1, IRQ_TIMER1) }, |
| 72 | [2] = { DEFINE_TIMER(2, IRQ_TIMER2) }, | 72 | [2] = { DEFINE_S3C_TIMER(2, IRQ_TIMER2) }, |
| 73 | [3] = { DEFINE_TIMER(3, IRQ_TIMER3) }, | 73 | [3] = { DEFINE_S3C_TIMER(3, IRQ_TIMER3) }, |
| 74 | [4] = { DEFINE_TIMER(4, IRQ_TIMER4) }, | 74 | [4] = { DEFINE_S3C_TIMER(4, IRQ_TIMER4) }, |
| 75 | }; | 75 | }; |
| 76 | 76 | ||
| 77 | static inline int pwm_is_tdiv(struct pwm_device *pwm) | 77 | static inline int pwm_is_tdiv(struct pwm_device *pwm) |
diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile index b46c60b72708..23e492bf75cf 100644 --- a/drivers/pcmcia/Makefile +++ b/drivers/pcmcia/Makefile | |||
| @@ -70,7 +70,7 @@ pxa2xx-obj-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o | |||
| 70 | pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o | 70 | pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o |
| 71 | pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx_cs.o | 71 | pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx_cs.o |
| 72 | pxa2xx-obj-$(CONFIG_ARCH_VIPER) += pxa2xx_viper.o | 72 | pxa2xx-obj-$(CONFIG_ARCH_VIPER) += pxa2xx_viper.o |
| 73 | pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps.o | 73 | pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps4.o |
| 74 | pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o | 74 | pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o |
| 75 | pxa2xx-obj-$(CONFIG_MACH_PALMLD) += pxa2xx_palmld.o | 75 | pxa2xx-obj-$(CONFIG_MACH_PALMLD) += pxa2xx_palmld.o |
| 76 | 76 | ||
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index db783b77a881..c94d3c4b7521 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig | |||
| @@ -457,7 +457,7 @@ config SERIAL_SAMSUNG | |||
| 457 | 457 | ||
| 458 | config SERIAL_SAMSUNG_DEBUG | 458 | config SERIAL_SAMSUNG_DEBUG |
| 459 | bool "Samsung SoC serial debug" | 459 | bool "Samsung SoC serial debug" |
| 460 | depends on SERIAL_SAMSUNG | 460 | depends on SERIAL_SAMSUNG && DEBUG_LL |
| 461 | help | 461 | help |
| 462 | Add support for debugging the serial driver. Since this is | 462 | Add support for debugging the serial driver. Since this is |
| 463 | generally being used as a console, we use our own output | 463 | generally being used as a console, we use our own output |
