aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/common/Kconfig2
-rw-r--r--arch/arm/common/sa1111.c4
-rw-r--r--arch/arm/configs/trizeps4_defconfig1
-rw-r--r--arch/arm/mach-clps711x/include/mach/memory.h2
-rw-r--r--arch/arm/mach-ixp4xx/Kconfig5
-rw-r--r--arch/arm/mach-kirkwood/common.c35
-rw-r--r--arch/arm/mach-kirkwood/common.h2
-rw-r--r--arch/arm/mach-kirkwood/rd88f6281-setup.c11
-rw-r--r--arch/arm/mach-mv78xx0/db78x00-bp-setup.c5
-rw-r--r--arch/arm/mach-orion5x/common.c38
-rw-r--r--arch/arm/mach-orion5x/common.h2
-rw-r--r--arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c11
-rw-r--r--arch/arm/mach-orion5x/rd88f5181l-ge-setup.c11
-rw-r--r--arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c11
-rw-r--r--arch/arm/mach-orion5x/wrt350n-v2-setup.c11
-rw-r--r--arch/arm/mach-pxa/Kconfig1
-rw-r--r--arch/arm/mach-pxa/include/mach/irqs.h5
-rw-r--r--arch/arm/mach-pxa/include/mach/spitz.h2
-rw-r--r--arch/arm/mach-pxa/pwm.c2
-rw-r--r--arch/arm/mach-pxa/trizeps4.c2
-rw-r--r--arch/arm/mach-s3c2443/clock.c3
-rw-r--r--arch/arm/mm/cache-v4.S6
-rw-r--r--arch/arm/plat-s3c24xx/pwm-clock.c2
-rw-r--r--arch/arm/plat-s3c24xx/pwm.c12
-rw-r--r--drivers/pcmcia/Makefile2
-rw-r--r--drivers/serial/Kconfig2
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
13config SA1111 13config 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
18config DMABOUNCE 17config DMABOUNCE
19 bool 18 bool
19 select ZONE_DMA
20 20
21config TIMER_ACORN 21config 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
602out: 604out:
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
940static int sa1111_probe(struct platform_device *pdev) 942static 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
150CONFIG_TRIZEPS_PXA=y
150CONFIG_MACH_TRIZEPS4=y 151CONFIG_MACH_TRIZEPS4=y
151CONFIG_MACH_TRIZEPS4_CONXS=y 152CONFIG_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
168comment "IXP4xx Options" 168comment "IXP4xx Options"
169 169
170config DMABOUNCE
171 bool
172 default y
173 depends on PCI
174
175config IXP4XX_INDIRECT_PCI 170config 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 ****************************************************************************/
158static struct resource kirkwood_switch_resources[] = {
159 {
160 .start = 0,
161 .end = 0,
162 .flags = IORESOURCE_IRQ,
163 },
164};
165
166static struct platform_device kirkwood_switch_device = {
167 .name = "dsa",
168 .id = 0,
169 .num_resources = 0,
170 .resource = kirkwood_switch_resources,
171};
172
173void __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 ****************************************************************************/
157static struct resource kirkwood_rtc_resource = { 192static 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
14struct dsa_platform_data;
14struct mv643xx_eth_platform_data; 15struct mv643xx_eth_platform_data;
15struct mv_sata_platform_data; 16struct mv_sata_platform_data;
16 17
@@ -29,6 +30,7 @@ void kirkwood_pcie_id(u32 *dev, u32 *rev);
29 30
30void kirkwood_ehci_init(void); 31void kirkwood_ehci_init(void);
31void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); 32void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data);
33void kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq);
32void kirkwood_pcie_init(void); 34void kirkwood_pcie_init(void);
33void kirkwood_rtc_init(void); 35void kirkwood_rtc_init(void);
34void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); 36void 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
78static 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
77static struct mv_sata_platform_data rd88f6281_sata_data = { 87static 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
29static struct mv643xx_eth_platform_data db78x00_ge10_data = { 30static 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
33static struct mv643xx_eth_platform_data db78x00_ge11_data = { 36static 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
37static struct mv_sata_platform_data db78x00_sata_data = { 42static 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 ****************************************************************************/
204static struct resource orion5x_switch_resources[] = {
205 {
206 .start = 0,
207 .end = 0,
208 .flags = IORESOURCE_IRQ,
209 },
210};
211
212static struct platform_device orion5x_switch_device = {
213 .name = "dsa",
214 .id = 0,
215 .num_resources = 0,
216 .resource = orion5x_switch_resources,
217};
218
219void __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 ****************************************************************************/
203static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = { 238static 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 ****************************************************************************/
277static struct orion_spi_info orion5x_spi_plat_data = { 312static struct orion_spi_info orion5x_spi_plat_data = {
278 .tclk = 0, 313 .tclk = 0,
314 .enable_clock_fix = 1,
279}; 315};
280 316
281static struct resource orion5x_spi_resources[] = { 317static 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
4struct dsa_platform_data;
4struct mv643xx_eth_platform_data; 5struct mv643xx_eth_platform_data;
5struct mv_sata_platform_data; 6struct mv_sata_platform_data;
6 7
@@ -29,6 +30,7 @@ void orion5x_setup_pcie_wa_win(u32 base, u32 size);
29void orion5x_ehci0_init(void); 30void orion5x_ehci0_init(void);
30void orion5x_ehci1_init(void); 31void orion5x_ehci1_init(void);
31void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data); 32void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data);
33void orion5x_eth_switch_init(struct dsa_platform_data *d, int irq);
32void orion5x_i2c_init(void); 34void orion5x_i2c_init(void);
33void orion5x_sata_init(struct mv_sata_platform_data *sata_data); 35void orion5x_sata_init(struct mv_sata_platform_data *sata_data);
34void orion5x_spi_init(void); 36void 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
97static 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
96static void __init rd88f5181l_fxo_init(void) 106static 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
98static 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
97static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { 107static 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
38static 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
37static struct mtd_partition rd88f6183ap_ge_partitions[] = { 47static 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
109static 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
108static void __init wrt350n_v2_init(void) 118static 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 */
31ENTRY(v4_flush_kern_cache_all) 31ENTRY(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 */
50ENTRY(v4_flush_user_cache_range) 50ENTRY(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 */
118ENTRY(v4_dma_flush_range) 118ENTRY(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
69struct platform_device s3c_device_timer[] = { 69struct 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
77static inline int pwm_is_tdiv(struct pwm_device *pwm) 77static 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
70pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o 70pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o
71pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx_cs.o 71pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx_cs.o
72pxa2xx-obj-$(CONFIG_ARCH_VIPER) += pxa2xx_viper.o 72pxa2xx-obj-$(CONFIG_ARCH_VIPER) += pxa2xx_viper.o
73pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps.o 73pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps4.o
74pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o 74pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o
75pxa2xx-obj-$(CONFIG_MACH_PALMLD) += pxa2xx_palmld.o 75pxa2xx-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
458config SERIAL_SAMSUNG_DEBUG 458config 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