aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/entry-common.S4
-rw-r--r--arch/arm/mach-ep93xx/include/mach/platform.h2
-rw-r--r--arch/arm/mach-orion5x/common.c7
-rw-r--r--arch/arm/mach-s3c6410/mach-smdk6410.c4
-rw-r--r--arch/arm/plat-s3c64xx/clock.c2
-rw-r--r--arch/arm/plat-s3c64xx/gpiolib.c2
-rw-r--r--arch/arm/plat-s3c64xx/include/plat/irqs.h2
-rw-r--r--arch/arm/plat-s3c64xx/irq-eint.c15
-rw-r--r--arch/arm/plat-s3c64xx/irq.c2
-rw-r--r--arch/arm/plat-s3c64xx/s3c6400-clock.c24
-rw-r--r--arch/powerpc/platforms/86xx/gef_sbc610.c4
11 files changed, 50 insertions, 18 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 49a6ba926c2b..159d0416f270 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -111,6 +111,7 @@ ENTRY(mcount)
111 .globl mcount_call 111 .globl mcount_call
112mcount_call: 112mcount_call:
113 bl ftrace_stub 113 bl ftrace_stub
114 ldr lr, [fp, #-4] @ restore lr
114 ldmia sp!, {r0-r3, pc} 115 ldmia sp!, {r0-r3, pc}
115 116
116ENTRY(ftrace_caller) 117ENTRY(ftrace_caller)
@@ -122,6 +123,7 @@ ENTRY(ftrace_caller)
122 .globl ftrace_call 123 .globl ftrace_call
123ftrace_call: 124ftrace_call:
124 bl ftrace_stub 125 bl ftrace_stub
126 ldr lr, [fp, #-4] @ restore lr
125 ldmia sp!, {r0-r3, pc} 127 ldmia sp!, {r0-r3, pc}
126 128
127#else 129#else
@@ -133,6 +135,7 @@ ENTRY(mcount)
133 adr r0, ftrace_stub 135 adr r0, ftrace_stub
134 cmp r0, r2 136 cmp r0, r2
135 bne trace 137 bne trace
138 ldr lr, [fp, #-4] @ restore lr
136 ldmia sp!, {r0-r3, pc} 139 ldmia sp!, {r0-r3, pc}
137 140
138trace: 141trace:
@@ -141,6 +144,7 @@ trace:
141 sub r0, r0, #MCOUNT_INSN_SIZE 144 sub r0, r0, #MCOUNT_INSN_SIZE
142 mov lr, pc 145 mov lr, pc
143 mov pc, r2 146 mov pc, r2
147 mov lr, r1 @ restore lr
144 ldmia sp!, {r0-r3, pc} 148 ldmia sp!, {r0-r3, pc}
145 149
146#endif /* CONFIG_DYNAMIC_FTRACE */ 150#endif /* CONFIG_DYNAMIC_FTRACE */
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h
index 88f7e88f152f..05f0f4f2f3ce 100644
--- a/arch/arm/mach-ep93xx/include/mach/platform.h
+++ b/arch/arm/mach-ep93xx/include/mach/platform.h
@@ -4,6 +4,8 @@
4 4
5#ifndef __ASSEMBLY__ 5#ifndef __ASSEMBLY__
6 6
7struct i2c_board_info;
8
7struct ep93xx_eth_data 9struct ep93xx_eth_data
8{ 10{
9 unsigned char dev_addr[6]; 11 unsigned char dev_addr[6];
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
index 0a623379789f..8a0e49d84256 100644
--- a/arch/arm/mach-orion5x/common.c
+++ b/arch/arm/mach-orion5x/common.c
@@ -431,6 +431,10 @@ void __init orion5x_uart1_init(void)
431/***************************************************************************** 431/*****************************************************************************
432 * XOR engine 432 * XOR engine
433 ****************************************************************************/ 433 ****************************************************************************/
434struct mv_xor_platform_shared_data orion5x_xor_shared_data = {
435 .dram = &orion5x_mbus_dram_info,
436};
437
434static struct resource orion5x_xor_shared_resources[] = { 438static struct resource orion5x_xor_shared_resources[] = {
435 { 439 {
436 .name = "xor low", 440 .name = "xor low",
@@ -448,6 +452,9 @@ static struct resource orion5x_xor_shared_resources[] = {
448static struct platform_device orion5x_xor_shared = { 452static struct platform_device orion5x_xor_shared = {
449 .name = MV_XOR_SHARED_NAME, 453 .name = MV_XOR_SHARED_NAME,
450 .id = 0, 454 .id = 0,
455 .dev = {
456 .platform_data = &orion5x_xor_shared_data,
457 },
451 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), 458 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources),
452 .resource = orion5x_xor_shared_resources, 459 .resource = orion5x_xor_shared_resources,
453}; 460};
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
index 3c4d47145c83..25f7935576f8 100644
--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
+++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
@@ -129,7 +129,7 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = {
129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
130}; 130};
131 131
132struct map_desc smdk6410_iodesc[] = {}; 132static struct map_desc smdk6410_iodesc[] = {};
133 133
134static struct platform_device *smdk6410_devices[] __initdata = { 134static struct platform_device *smdk6410_devices[] __initdata = {
135#ifdef CONFIG_SMDK6410_SD_CH0 135#ifdef CONFIG_SMDK6410_SD_CH0
@@ -146,7 +146,7 @@ static struct platform_device *smdk6410_devices[] __initdata = {
146 146
147static struct i2c_board_info i2c_devs0[] __initdata = { 147static struct i2c_board_info i2c_devs0[] __initdata = {
148 { I2C_BOARD_INFO("24c08", 0x50), }, 148 { I2C_BOARD_INFO("24c08", 0x50), },
149 { I2C_BOARD_INFO("WM8580", 0X1b), }, 149 { I2C_BOARD_INFO("wm8580", 0x1b), },
150}; 150};
151 151
152static struct i2c_board_info i2c_devs1[] __initdata = { 152static struct i2c_board_info i2c_devs1[] __initdata = {
diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
index 136c982c68e1..ad1b9682c9c3 100644
--- a/arch/arm/plat-s3c64xx/clock.c
+++ b/arch/arm/plat-s3c64xx/clock.c
@@ -248,7 +248,7 @@ static struct clk *clks[] __initdata = {
248 &clk_48m, 248 &clk_48m,
249}; 249};
250 250
251void s3c64xx_register_clocks(void) 251void __init s3c64xx_register_clocks(void)
252{ 252{
253 struct clk *clkp; 253 struct clk *clkp;
254 int ret; 254 int ret;
diff --git a/arch/arm/plat-s3c64xx/gpiolib.c b/arch/arm/plat-s3c64xx/gpiolib.c
index cc62941d7b5c..ee9188add8fb 100644
--- a/arch/arm/plat-s3c64xx/gpiolib.c
+++ b/arch/arm/plat-s3c64xx/gpiolib.c
@@ -417,4 +417,4 @@ static __init int s3c64xx_gpiolib_init(void)
417 return 0; 417 return 0;
418} 418}
419 419
420arch_initcall(s3c64xx_gpiolib_init); 420core_initcall(s3c64xx_gpiolib_init);
diff --git a/arch/arm/plat-s3c64xx/include/plat/irqs.h b/arch/arm/plat-s3c64xx/include/plat/irqs.h
index 2846f550b727..f865bf4d709e 100644
--- a/arch/arm/plat-s3c64xx/include/plat/irqs.h
+++ b/arch/arm/plat-s3c64xx/include/plat/irqs.h
@@ -117,7 +117,7 @@
117#define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) 117#define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12)
118#define IRQ_NFC S3C64XX_IRQ_VIC1(13) 118#define IRQ_NFC S3C64XX_IRQ_VIC1(13)
119#define IRQ_CFCON S3C64XX_IRQ_VIC1(14) 119#define IRQ_CFCON S3C64XX_IRQ_VIC1(14)
120#define IRQ_UHOST S3C64XX_IRQ_VIC1(15) 120#define IRQ_USBH S3C64XX_IRQ_VIC1(15)
121#define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) 121#define IRQ_SPI0 S3C64XX_IRQ_VIC1(16)
122#define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) 122#define IRQ_SPI1 S3C64XX_IRQ_VIC1(17)
123#define IRQ_IIC S3C64XX_IRQ_VIC1(18) 123#define IRQ_IIC S3C64XX_IRQ_VIC1(18)
diff --git a/arch/arm/plat-s3c64xx/irq-eint.c b/arch/arm/plat-s3c64xx/irq-eint.c
index ebb305ce7689..cf524826c93a 100644
--- a/arch/arm/plat-s3c64xx/irq-eint.c
+++ b/arch/arm/plat-s3c64xx/irq-eint.c
@@ -14,12 +14,15 @@
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/interrupt.h> 16#include <linux/interrupt.h>
17#include <linux/gpio.h>
17#include <linux/irq.h> 18#include <linux/irq.h>
18#include <linux/io.h> 19#include <linux/io.h>
19 20
20#include <asm/hardware/vic.h> 21#include <asm/hardware/vic.h>
21 22
22#include <plat/regs-irqtype.h> 23#include <plat/regs-irqtype.h>
24#include <plat/regs-gpio.h>
25#include <plat/gpio-cfg.h>
23 26
24#include <mach/map.h> 27#include <mach/map.h>
25#include <plat/cpu.h> 28#include <plat/cpu.h>
@@ -74,6 +77,7 @@ static void s3c_irq_eint_maskack(unsigned int irq)
74static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) 77static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
75{ 78{
76 int offs = eint_offset(irq); 79 int offs = eint_offset(irq);
80 int pin;
77 int shift; 81 int shift;
78 u32 ctrl, mask; 82 u32 ctrl, mask;
79 u32 newvalue = 0; 83 u32 newvalue = 0;
@@ -125,6 +129,15 @@ static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
125 ctrl |= newvalue << shift; 129 ctrl |= newvalue << shift;
126 __raw_writel(ctrl, reg); 130 __raw_writel(ctrl, reg);
127 131
132 /* set the GPIO pin appropriately */
133
134 if (offs < 23)
135 pin = S3C64XX_GPN(offs);
136 else
137 pin = S3C64XX_GPM(offs - 23);
138
139 s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2));
140
128 return 0; 141 return 0;
129} 142}
130 143
@@ -181,7 +194,7 @@ static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
181 s3c_irq_demux_eint(20, 27); 194 s3c_irq_demux_eint(20, 27);
182} 195}
183 196
184int __init s3c64xx_init_irq_eint(void) 197static int __init s3c64xx_init_irq_eint(void)
185{ 198{
186 int irq; 199 int irq;
187 200
diff --git a/arch/arm/plat-s3c64xx/irq.c b/arch/arm/plat-s3c64xx/irq.c
index a94f1d5e819d..f22edf7c2d2d 100644
--- a/arch/arm/plat-s3c64xx/irq.c
+++ b/arch/arm/plat-s3c64xx/irq.c
@@ -207,7 +207,7 @@ static struct irq_chip s3c_irq_uart = {
207 207
208static void __init s3c64xx_uart_irq(struct uart_irq *uirq) 208static void __init s3c64xx_uart_irq(struct uart_irq *uirq)
209{ 209{
210 void *reg_base = uirq->regs; 210 void __iomem *reg_base = uirq->regs;
211 unsigned int irq; 211 unsigned int irq;
212 int offs; 212 int offs;
213 213
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c
index 8d9a0cada668..05b17528041e 100644
--- a/arch/arm/plat-s3c64xx/s3c6400-clock.c
+++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c
@@ -36,7 +36,7 @@
36 * ext_xtal_mux for want of an actual name from the manual. 36 * ext_xtal_mux for want of an actual name from the manual.
37*/ 37*/
38 38
39struct clk clk_ext_xtal_mux = { 39static struct clk clk_ext_xtal_mux = {
40 .name = "ext_xtal", 40 .name = "ext_xtal",
41 .id = -1, 41 .id = -1,
42}; 42};
@@ -63,7 +63,7 @@ struct clksrc_clk {
63 void __iomem *reg_divider; 63 void __iomem *reg_divider;
64}; 64};
65 65
66struct clk clk_fout_apll = { 66static struct clk clk_fout_apll = {
67 .name = "fout_apll", 67 .name = "fout_apll",
68 .id = -1, 68 .id = -1,
69}; 69};
@@ -78,7 +78,7 @@ static struct clk_sources clk_src_apll = {
78 .nr_sources = ARRAY_SIZE(clk_src_apll_list), 78 .nr_sources = ARRAY_SIZE(clk_src_apll_list),
79}; 79};
80 80
81struct clksrc_clk clk_mout_apll = { 81static struct clksrc_clk clk_mout_apll = {
82 .clk = { 82 .clk = {
83 .name = "mout_apll", 83 .name = "mout_apll",
84 .id = -1, 84 .id = -1,
@@ -88,7 +88,7 @@ struct clksrc_clk clk_mout_apll = {
88 .sources = &clk_src_apll, 88 .sources = &clk_src_apll,
89}; 89};
90 90
91struct clk clk_fout_epll = { 91static struct clk clk_fout_epll = {
92 .name = "fout_epll", 92 .name = "fout_epll",
93 .id = -1, 93 .id = -1,
94}; 94};
@@ -103,7 +103,7 @@ static struct clk_sources clk_src_epll = {
103 .nr_sources = ARRAY_SIZE(clk_src_epll_list), 103 .nr_sources = ARRAY_SIZE(clk_src_epll_list),
104}; 104};
105 105
106struct clksrc_clk clk_mout_epll = { 106static struct clksrc_clk clk_mout_epll = {
107 .clk = { 107 .clk = {
108 .name = "mout_epll", 108 .name = "mout_epll",
109 .id = -1, 109 .id = -1,
@@ -123,7 +123,7 @@ static struct clk_sources clk_src_mpll = {
123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list), 123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list),
124}; 124};
125 125
126struct clksrc_clk clk_mout_mpll = { 126static struct clksrc_clk clk_mout_mpll = {
127 .clk = { 127 .clk = {
128 .name = "mout_mpll", 128 .name = "mout_mpll",
129 .id = -1, 129 .id = -1,
@@ -145,7 +145,7 @@ static unsigned long s3c64xx_clk_doutmpll_get_rate(struct clk *clk)
145 return rate; 145 return rate;
146} 146}
147 147
148struct clk clk_dout_mpll = { 148static struct clk clk_dout_mpll = {
149 .name = "dout_mpll", 149 .name = "dout_mpll",
150 .id = -1, 150 .id = -1,
151 .parent = &clk_mout_mpll.clk, 151 .parent = &clk_mout_mpll.clk,
@@ -189,10 +189,10 @@ static struct clk_sources clkset_uart = {
189}; 189};
190 190
191static struct clk *clkset_uhost_list[] = { 191static struct clk *clkset_uhost_list[] = {
192 &clk_48m,
192 &clk_mout_epll.clk, 193 &clk_mout_epll.clk,
193 &clk_dout_mpll, 194 &clk_dout_mpll,
194 &clk_fin_epll, 195 &clk_fin_epll,
195 &clk_48m,
196}; 196};
197 197
198static struct clk_sources clkset_uhost = { 198static struct clk_sources clkset_uhost = {
@@ -239,10 +239,12 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate)
239 239
240 rate = clk_round_rate(clk, rate); 240 rate = clk_round_rate(clk, rate);
241 div = clk_get_rate(clk->parent) / rate; 241 div = clk_get_rate(clk->parent) / rate;
242 if (div > 16)
243 return -EINVAL;
242 244
243 val = __raw_readl(reg); 245 val = __raw_readl(reg);
244 val &= ~sclk->mask; 246 val &= ~(0xf << sclk->shift);
245 val |= (rate - 1) << sclk->shift; 247 val |= (div - 1) << sclk->shift;
246 __raw_writel(val, reg); 248 __raw_writel(val, reg);
247 249
248 return 0; 250 return 0;
@@ -351,7 +353,7 @@ static struct clksrc_clk clk_mmc2 = {
351 353
352static struct clksrc_clk clk_usbhost = { 354static struct clksrc_clk clk_usbhost = {
353 .clk = { 355 .clk = {
354 .name = "usb-host-bus", 356 .name = "usb-bus-host",
355 .id = -1, 357 .id = -1,
356 .ctrlbit = S3C_CLKCON_SCLK_UHOST, 358 .ctrlbit = S3C_CLKCON_SCLK_UHOST,
357 .enable = s3c64xx_sclk_ctrl, 359 .enable = s3c64xx_sclk_ctrl,
diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c
index fb371f5ce132..d6b772ba3b8f 100644
--- a/arch/powerpc/platforms/86xx/gef_sbc610.c
+++ b/arch/powerpc/platforms/86xx/gef_sbc610.c
@@ -142,6 +142,10 @@ static void __init gef_sbc610_nec_fixup(struct pci_dev *pdev)
142{ 142{
143 unsigned int val; 143 unsigned int val;
144 144
145 /* Do not do the fixup on other platforms! */
146 if (!machine_is(gef_sbc610))
147 return;
148
145 printk(KERN_INFO "Running NEC uPD720101 Fixup\n"); 149 printk(KERN_INFO "Running NEC uPD720101 Fixup\n");
146 150
147 /* Ensure ports 1, 2, 3, 4 & 5 are enabled */ 151 /* Ensure ports 1, 2, 3, 4 & 5 are enabled */