diff options
27 files changed, 164 insertions, 28 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index df39d20f7425..bc0fcde20901 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -356,7 +356,7 @@ config ARCH_IXP4XX | |||
356 | select GENERIC_GPIO | 356 | select GENERIC_GPIO |
357 | select GENERIC_TIME | 357 | select GENERIC_TIME |
358 | select GENERIC_CLOCKEVENTS | 358 | select GENERIC_CLOCKEVENTS |
359 | select ZONE_DMA if PCI | 359 | select DMABOUNCE if PCI |
360 | help | 360 | help |
361 | Support for Intel's IXP4XX (XScale) family of processors. | 361 | Support for Intel's IXP4XX (XScale) family of processors. |
362 | 362 | ||
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 f27f6b3d6e6f..f781873431f3 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
@@ -257,7 +257,6 @@ config MACH_ARMCORE | |||
257 | bool "CompuLab CM-X255/CM-X270 modules" | 257 | bool "CompuLab CM-X255/CM-X270 modules" |
258 | select PXA27x | 258 | select PXA27x |
259 | select IWMMXT | 259 | select IWMMXT |
260 | select ZONE_DMA if PCI | ||
261 | select PXA25x | 260 | select PXA25x |
262 | select PXA_SSP | 261 | select PXA_SSP |
263 | 262 | ||
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/include/mach/spitz.h b/arch/arm/mach-pxa/include/mach/spitz.h index 31ac26b55bc1..e8488dfb7e91 100644 --- a/arch/arm/mach-pxa/include/mach/spitz.h +++ b/arch/arm/mach-pxa/include/mach/spitz.h | |||
@@ -142,7 +142,7 @@ | |||
142 | 142 | ||
143 | #define SPITZ_SCP2_GPIO_BASE (NR_BUILTIN_GPIO + 12) | 143 | #define SPITZ_SCP2_GPIO_BASE (NR_BUILTIN_GPIO + 12) |
144 | #define SPITZ_GPIO_IR_ON (SPITZ_SCP2_GPIO_BASE + 0) | 144 | #define SPITZ_GPIO_IR_ON (SPITZ_SCP2_GPIO_BASE + 0) |
145 | #define SPITZ_GPIO_AKIN_PULLUP (SPITZ_SCP2_GPIO_BASE + 1 | 145 | #define SPITZ_GPIO_AKIN_PULLUP (SPITZ_SCP2_GPIO_BASE + 1) |
146 | #define SPITZ_GPIO_RESERVED_1 (SPITZ_SCP2_GPIO_BASE + 2) | 146 | #define SPITZ_GPIO_RESERVED_1 (SPITZ_SCP2_GPIO_BASE + 2) |
147 | #define SPITZ_GPIO_RESERVED_2 (SPITZ_SCP2_GPIO_BASE + 3) | 147 | #define SPITZ_GPIO_RESERVED_2 (SPITZ_SCP2_GPIO_BASE + 3) |
148 | #define SPITZ_GPIO_RESERVED_3 (SPITZ_SCP2_GPIO_BASE + 4) | 148 | #define SPITZ_GPIO_RESERVED_3 (SPITZ_SCP2_GPIO_BASE + 4) |
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 |