diff options
Diffstat (limited to 'arch/arm')
| -rw-r--r-- | arch/arm/Kconfig | 11 | ||||
| -rw-r--r-- | arch/arm/boot/dts/at91sam9x5.dtsi | 28 | ||||
| -rw-r--r-- | arch/arm/boot/dts/exynos4.dtsi | 9 | ||||
| -rw-r--r-- | arch/arm/boot/dts/exynos5440.dtsi | 6 | ||||
| -rw-r--r-- | arch/arm/kernel/smp.c | 2 | ||||
| -rw-r--r-- | arch/arm/lib/memset.S | 33 | ||||
| -rw-r--r-- | arch/arm/mach-at91/include/mach/gpio.h | 8 | ||||
| -rw-r--r-- | arch/arm/mach-at91/irq.c | 20 | ||||
| -rw-r--r-- | arch/arm/mach-at91/pm.c | 10 | ||||
| -rw-r--r-- | arch/arm/mach-davinci/dma.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-footbridge/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/mach-imx/clk-imx35.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-imx/imx25-dt.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-mmp/gplugd.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/clock.c | 36 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/mach-goni.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-shmobile/board-marzen.c | 1 | ||||
| -rw-r--r-- | arch/arm/net/bpf_jit_32.c | 2 |
18 files changed, 115 insertions, 64 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 2c3bdce15134..13b739469c51 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -49,7 +49,6 @@ config ARM | |||
| 49 | select HAVE_REGS_AND_STACK_ACCESS_API | 49 | select HAVE_REGS_AND_STACK_ACCESS_API |
| 50 | select HAVE_SYSCALL_TRACEPOINTS | 50 | select HAVE_SYSCALL_TRACEPOINTS |
| 51 | select HAVE_UID16 | 51 | select HAVE_UID16 |
| 52 | select VIRT_TO_BUS | ||
| 53 | select KTIME_SCALAR | 52 | select KTIME_SCALAR |
| 54 | select PERF_USE_VMALLOC | 53 | select PERF_USE_VMALLOC |
| 55 | select RTC_LIB | 54 | select RTC_LIB |
| @@ -743,6 +742,7 @@ config ARCH_RPC | |||
| 743 | select NEED_MACH_IO_H | 742 | select NEED_MACH_IO_H |
| 744 | select NEED_MACH_MEMORY_H | 743 | select NEED_MACH_MEMORY_H |
| 745 | select NO_IOPORT | 744 | select NO_IOPORT |
| 745 | select VIRT_TO_BUS | ||
| 746 | help | 746 | help |
| 747 | On the Acorn Risc-PC, Linux can support the internal IDE disk and | 747 | On the Acorn Risc-PC, Linux can support the internal IDE disk and |
| 748 | CD-ROM interface, serial and parallel port, and the floppy drive. | 748 | CD-ROM interface, serial and parallel port, and the floppy drive. |
| @@ -878,6 +878,7 @@ config ARCH_SHARK | |||
| 878 | select ISA_DMA | 878 | select ISA_DMA |
| 879 | select NEED_MACH_MEMORY_H | 879 | select NEED_MACH_MEMORY_H |
| 880 | select PCI | 880 | select PCI |
| 881 | select VIRT_TO_BUS | ||
| 881 | select ZONE_DMA | 882 | select ZONE_DMA |
| 882 | help | 883 | help |
| 883 | Support for the StrongARM based Digital DNARD machine, also known | 884 | Support for the StrongARM based Digital DNARD machine, also known |
| @@ -1005,12 +1006,12 @@ config ARCH_MULTI_V4_V5 | |||
| 1005 | bool | 1006 | bool |
| 1006 | 1007 | ||
| 1007 | config ARCH_MULTI_V6 | 1008 | config ARCH_MULTI_V6 |
| 1008 | bool "ARMv6 based platforms (ARM11, Scorpion, ...)" | 1009 | bool "ARMv6 based platforms (ARM11)" |
| 1009 | select ARCH_MULTI_V6_V7 | 1010 | select ARCH_MULTI_V6_V7 |
| 1010 | select CPU_V6 | 1011 | select CPU_V6 |
| 1011 | 1012 | ||
| 1012 | config ARCH_MULTI_V7 | 1013 | config ARCH_MULTI_V7 |
| 1013 | bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" | 1014 | bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" |
| 1014 | default y | 1015 | default y |
| 1015 | select ARCH_MULTI_V6_V7 | 1016 | select ARCH_MULTI_V6_V7 |
| 1016 | select ARCH_VEXPRESS | 1017 | select ARCH_VEXPRESS |
| @@ -1461,10 +1462,6 @@ config ISA_DMA | |||
| 1461 | bool | 1462 | bool |
| 1462 | select ISA_DMA_API | 1463 | select ISA_DMA_API |
| 1463 | 1464 | ||
| 1464 | config ARCH_NO_VIRT_TO_BUS | ||
| 1465 | def_bool y | ||
| 1466 | depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK | ||
| 1467 | |||
| 1468 | # Select ISA DMA interface | 1465 | # Select ISA DMA interface |
| 1469 | config ISA_DMA_API | 1466 | config ISA_DMA_API |
| 1470 | bool | 1467 | bool |
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index aa98e641931f..a98c0d50fbbe 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi | |||
| @@ -238,8 +238,32 @@ | |||
| 238 | nand { | 238 | nand { |
| 239 | pinctrl_nand: nand-0 { | 239 | pinctrl_nand: nand-0 { |
| 240 | atmel,pins = | 240 | atmel,pins = |
| 241 | <3 4 0x0 0x1 /* PD5 gpio RDY pin pull_up */ | 241 | <3 0 0x1 0x0 /* PD0 periph A Read Enable */ |
| 242 | 3 5 0x0 0x1>; /* PD4 gpio enable pin pull_up */ | 242 | 3 1 0x1 0x0 /* PD1 periph A Write Enable */ |
| 243 | 3 2 0x1 0x0 /* PD2 periph A Address Latch Enable */ | ||
| 244 | 3 3 0x1 0x0 /* PD3 periph A Command Latch Enable */ | ||
| 245 | 3 4 0x0 0x1 /* PD4 gpio Chip Enable pin pull_up */ | ||
| 246 | 3 5 0x0 0x1 /* PD5 gpio RDY/BUSY pin pull_up */ | ||
| 247 | 3 6 0x1 0x0 /* PD6 periph A Data bit 0 */ | ||
| 248 | 3 7 0x1 0x0 /* PD7 periph A Data bit 1 */ | ||
| 249 | 3 8 0x1 0x0 /* PD8 periph A Data bit 2 */ | ||
| 250 | 3 9 0x1 0x0 /* PD9 periph A Data bit 3 */ | ||
| 251 | 3 10 0x1 0x0 /* PD10 periph A Data bit 4 */ | ||
| 252 | 3 11 0x1 0x0 /* PD11 periph A Data bit 5 */ | ||
| 253 | 3 12 0x1 0x0 /* PD12 periph A Data bit 6 */ | ||
| 254 | 3 13 0x1 0x0>; /* PD13 periph A Data bit 7 */ | ||
| 255 | }; | ||
| 256 | |||
| 257 | pinctrl_nand_16bits: nand_16bits-0 { | ||
| 258 | atmel,pins = | ||
| 259 | <3 14 0x1 0x0 /* PD14 periph A Data bit 8 */ | ||
| 260 | 3 15 0x1 0x0 /* PD15 periph A Data bit 9 */ | ||
| 261 | 3 16 0x1 0x0 /* PD16 periph A Data bit 10 */ | ||
| 262 | 3 17 0x1 0x0 /* PD17 periph A Data bit 11 */ | ||
| 263 | 3 18 0x1 0x0 /* PD18 periph A Data bit 12 */ | ||
| 264 | 3 19 0x1 0x0 /* PD19 periph A Data bit 13 */ | ||
| 265 | 3 20 0x1 0x0 /* PD20 periph A Data bit 14 */ | ||
| 266 | 3 21 0x1 0x0>; /* PD21 periph A Data bit 15 */ | ||
| 243 | }; | 267 | }; |
| 244 | }; | 268 | }; |
| 245 | 269 | ||
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index e1347fceb5bc..1a62bcf18aa3 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi | |||
| @@ -275,18 +275,27 @@ | |||
| 275 | compatible = "arm,pl330", "arm,primecell"; | 275 | compatible = "arm,pl330", "arm,primecell"; |
| 276 | reg = <0x12680000 0x1000>; | 276 | reg = <0x12680000 0x1000>; |
| 277 | interrupts = <0 35 0>; | 277 | interrupts = <0 35 0>; |
| 278 | #dma-cells = <1>; | ||
| 279 | #dma-channels = <8>; | ||
| 280 | #dma-requests = <32>; | ||
| 278 | }; | 281 | }; |
| 279 | 282 | ||
| 280 | pdma1: pdma@12690000 { | 283 | pdma1: pdma@12690000 { |
| 281 | compatible = "arm,pl330", "arm,primecell"; | 284 | compatible = "arm,pl330", "arm,primecell"; |
| 282 | reg = <0x12690000 0x1000>; | 285 | reg = <0x12690000 0x1000>; |
| 283 | interrupts = <0 36 0>; | 286 | interrupts = <0 36 0>; |
| 287 | #dma-cells = <1>; | ||
| 288 | #dma-channels = <8>; | ||
| 289 | #dma-requests = <32>; | ||
| 284 | }; | 290 | }; |
| 285 | 291 | ||
| 286 | mdma1: mdma@12850000 { | 292 | mdma1: mdma@12850000 { |
| 287 | compatible = "arm,pl330", "arm,primecell"; | 293 | compatible = "arm,pl330", "arm,primecell"; |
| 288 | reg = <0x12850000 0x1000>; | 294 | reg = <0x12850000 0x1000>; |
| 289 | interrupts = <0 34 0>; | 295 | interrupts = <0 34 0>; |
| 296 | #dma-cells = <1>; | ||
| 297 | #dma-channels = <8>; | ||
| 298 | #dma-requests = <1>; | ||
| 290 | }; | 299 | }; |
| 291 | }; | 300 | }; |
| 292 | }; | 301 | }; |
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi index 5f3562ad6746..9a99755920c0 100644 --- a/arch/arm/boot/dts/exynos5440.dtsi +++ b/arch/arm/boot/dts/exynos5440.dtsi | |||
| @@ -142,12 +142,18 @@ | |||
| 142 | compatible = "arm,pl330", "arm,primecell"; | 142 | compatible = "arm,pl330", "arm,primecell"; |
| 143 | reg = <0x120000 0x1000>; | 143 | reg = <0x120000 0x1000>; |
| 144 | interrupts = <0 34 0>; | 144 | interrupts = <0 34 0>; |
| 145 | #dma-cells = <1>; | ||
| 146 | #dma-channels = <8>; | ||
| 147 | #dma-requests = <32>; | ||
| 145 | }; | 148 | }; |
| 146 | 149 | ||
| 147 | pdma1: pdma@121B0000 { | 150 | pdma1: pdma@121B0000 { |
| 148 | compatible = "arm,pl330", "arm,primecell"; | 151 | compatible = "arm,pl330", "arm,primecell"; |
| 149 | reg = <0x121000 0x1000>; | 152 | reg = <0x121000 0x1000>; |
| 150 | interrupts = <0 35 0>; | 153 | interrupts = <0 35 0>; |
| 154 | #dma-cells = <1>; | ||
| 155 | #dma-channels = <8>; | ||
| 156 | #dma-requests = <32>; | ||
| 151 | }; | 157 | }; |
| 152 | }; | 158 | }; |
| 153 | 159 | ||
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 31644f1978d5..79078edbb9bc 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
| @@ -480,7 +480,7 @@ static void __cpuinit broadcast_timer_setup(struct clock_event_device *evt) | |||
| 480 | evt->features = CLOCK_EVT_FEAT_ONESHOT | | 480 | evt->features = CLOCK_EVT_FEAT_ONESHOT | |
| 481 | CLOCK_EVT_FEAT_PERIODIC | | 481 | CLOCK_EVT_FEAT_PERIODIC | |
| 482 | CLOCK_EVT_FEAT_DUMMY; | 482 | CLOCK_EVT_FEAT_DUMMY; |
| 483 | evt->rating = 400; | 483 | evt->rating = 100; |
| 484 | evt->mult = 1; | 484 | evt->mult = 1; |
| 485 | evt->set_mode = broadcast_timer_set_mode; | 485 | evt->set_mode = broadcast_timer_set_mode; |
| 486 | 486 | ||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S index d912e7397ecc..94b0650ea98f 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S | |||
| @@ -14,31 +14,15 @@ | |||
| 14 | 14 | ||
| 15 | .text | 15 | .text |
| 16 | .align 5 | 16 | .align 5 |
| 17 | .word 0 | ||
| 18 | |||
| 19 | 1: subs r2, r2, #4 @ 1 do we have enough | ||
| 20 | blt 5f @ 1 bytes to align with? | ||
| 21 | cmp r3, #2 @ 1 | ||
| 22 | strltb r1, [ip], #1 @ 1 | ||
| 23 | strleb r1, [ip], #1 @ 1 | ||
| 24 | strb r1, [ip], #1 @ 1 | ||
| 25 | add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) | ||
| 26 | /* | ||
| 27 | * The pointer is now aligned and the length is adjusted. Try doing the | ||
| 28 | * memset again. | ||
| 29 | */ | ||
| 30 | 17 | ||
| 31 | ENTRY(memset) | 18 | ENTRY(memset) |
| 32 | /* | 19 | ands r3, r0, #3 @ 1 unaligned? |
| 33 | * Preserve the contents of r0 for the return value. | 20 | mov ip, r0 @ preserve r0 as return value |
| 34 | */ | 21 | bne 6f @ 1 |
| 35 | mov ip, r0 | ||
| 36 | ands r3, ip, #3 @ 1 unaligned? | ||
| 37 | bne 1b @ 1 | ||
| 38 | /* | 22 | /* |
| 39 | * we know that the pointer in ip is aligned to a word boundary. | 23 | * we know that the pointer in ip is aligned to a word boundary. |
| 40 | */ | 24 | */ |
| 41 | orr r1, r1, r1, lsl #8 | 25 | 1: orr r1, r1, r1, lsl #8 |
| 42 | orr r1, r1, r1, lsl #16 | 26 | orr r1, r1, r1, lsl #16 |
| 43 | mov r3, r1 | 27 | mov r3, r1 |
| 44 | cmp r2, #16 | 28 | cmp r2, #16 |
| @@ -127,4 +111,13 @@ ENTRY(memset) | |||
| 127 | tst r2, #1 | 111 | tst r2, #1 |
| 128 | strneb r1, [ip], #1 | 112 | strneb r1, [ip], #1 |
| 129 | mov pc, lr | 113 | mov pc, lr |
| 114 | |||
| 115 | 6: subs r2, r2, #4 @ 1 do we have enough | ||
| 116 | blt 5b @ 1 bytes to align with? | ||
| 117 | cmp r3, #2 @ 1 | ||
| 118 | strltb r1, [ip], #1 @ 1 | ||
| 119 | strleb r1, [ip], #1 @ 1 | ||
| 120 | strb r1, [ip], #1 @ 1 | ||
| 121 | add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) | ||
| 122 | b 1b | ||
| 130 | ENDPROC(memset) | 123 | ENDPROC(memset) |
diff --git a/arch/arm/mach-at91/include/mach/gpio.h b/arch/arm/mach-at91/include/mach/gpio.h index eed465ab0dd7..5fc23771c154 100644 --- a/arch/arm/mach-at91/include/mach/gpio.h +++ b/arch/arm/mach-at91/include/mach/gpio.h | |||
| @@ -209,6 +209,14 @@ extern int at91_get_gpio_value(unsigned pin); | |||
| 209 | extern void at91_gpio_suspend(void); | 209 | extern void at91_gpio_suspend(void); |
| 210 | extern void at91_gpio_resume(void); | 210 | extern void at91_gpio_resume(void); |
| 211 | 211 | ||
| 212 | #ifdef CONFIG_PINCTRL_AT91 | ||
| 213 | extern void at91_pinctrl_gpio_suspend(void); | ||
| 214 | extern void at91_pinctrl_gpio_resume(void); | ||
| 215 | #else | ||
| 216 | static inline void at91_pinctrl_gpio_suspend(void) {} | ||
| 217 | static inline void at91_pinctrl_gpio_resume(void) {} | ||
| 218 | #endif | ||
| 219 | |||
| 212 | #endif /* __ASSEMBLY__ */ | 220 | #endif /* __ASSEMBLY__ */ |
| 213 | 221 | ||
| 214 | #endif | 222 | #endif |
diff --git a/arch/arm/mach-at91/irq.c b/arch/arm/mach-at91/irq.c index 8e210262aeee..e0ca59171022 100644 --- a/arch/arm/mach-at91/irq.c +++ b/arch/arm/mach-at91/irq.c | |||
| @@ -92,23 +92,21 @@ static int at91_aic_set_wake(struct irq_data *d, unsigned value) | |||
| 92 | 92 | ||
| 93 | void at91_irq_suspend(void) | 93 | void at91_irq_suspend(void) |
| 94 | { | 94 | { |
| 95 | int i = 0, bit; | 95 | int bit = -1; |
| 96 | 96 | ||
| 97 | if (has_aic5()) { | 97 | if (has_aic5()) { |
| 98 | /* disable enabled irqs */ | 98 | /* disable enabled irqs */ |
| 99 | while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { | 99 | while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) { |
| 100 | at91_aic_write(AT91_AIC5_SSR, | 100 | at91_aic_write(AT91_AIC5_SSR, |
| 101 | bit & AT91_AIC5_INTSEL_MSK); | 101 | bit & AT91_AIC5_INTSEL_MSK); |
| 102 | at91_aic_write(AT91_AIC5_IDCR, 1); | 102 | at91_aic_write(AT91_AIC5_IDCR, 1); |
| 103 | i = bit; | ||
| 104 | } | 103 | } |
| 105 | /* enable wakeup irqs */ | 104 | /* enable wakeup irqs */ |
| 106 | i = 0; | 105 | bit = -1; |
| 107 | while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { | 106 | while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) { |
| 108 | at91_aic_write(AT91_AIC5_SSR, | 107 | at91_aic_write(AT91_AIC5_SSR, |
| 109 | bit & AT91_AIC5_INTSEL_MSK); | 108 | bit & AT91_AIC5_INTSEL_MSK); |
| 110 | at91_aic_write(AT91_AIC5_IECR, 1); | 109 | at91_aic_write(AT91_AIC5_IECR, 1); |
| 111 | i = bit; | ||
| 112 | } | 110 | } |
| 113 | } else { | 111 | } else { |
| 114 | at91_aic_write(AT91_AIC_IDCR, *backups); | 112 | at91_aic_write(AT91_AIC_IDCR, *backups); |
| @@ -118,23 +116,21 @@ void at91_irq_suspend(void) | |||
| 118 | 116 | ||
| 119 | void at91_irq_resume(void) | 117 | void at91_irq_resume(void) |
| 120 | { | 118 | { |
| 121 | int i = 0, bit; | 119 | int bit = -1; |
| 122 | 120 | ||
| 123 | if (has_aic5()) { | 121 | if (has_aic5()) { |
| 124 | /* disable wakeup irqs */ | 122 | /* disable wakeup irqs */ |
| 125 | while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { | 123 | while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) { |
| 126 | at91_aic_write(AT91_AIC5_SSR, | 124 | at91_aic_write(AT91_AIC5_SSR, |
| 127 | bit & AT91_AIC5_INTSEL_MSK); | 125 | bit & AT91_AIC5_INTSEL_MSK); |
| 128 | at91_aic_write(AT91_AIC5_IDCR, 1); | 126 | at91_aic_write(AT91_AIC5_IDCR, 1); |
| 129 | i = bit; | ||
| 130 | } | 127 | } |
| 131 | /* enable irqs disabled for suspend */ | 128 | /* enable irqs disabled for suspend */ |
| 132 | i = 0; | 129 | bit = -1; |
| 133 | while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { | 130 | while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) { |
| 134 | at91_aic_write(AT91_AIC5_SSR, | 131 | at91_aic_write(AT91_AIC5_SSR, |
| 135 | bit & AT91_AIC5_INTSEL_MSK); | 132 | bit & AT91_AIC5_INTSEL_MSK); |
| 136 | at91_aic_write(AT91_AIC5_IECR, 1); | 133 | at91_aic_write(AT91_AIC5_IECR, 1); |
| 137 | i = bit; | ||
| 138 | } | 134 | } |
| 139 | } else { | 135 | } else { |
| 140 | at91_aic_write(AT91_AIC_IDCR, *wakeups); | 136 | at91_aic_write(AT91_AIC_IDCR, *wakeups); |
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index adb6db888a1f..73f1f250403a 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c | |||
| @@ -201,7 +201,10 @@ extern u32 at91_slow_clock_sz; | |||
| 201 | 201 | ||
| 202 | static int at91_pm_enter(suspend_state_t state) | 202 | static int at91_pm_enter(suspend_state_t state) |
| 203 | { | 203 | { |
| 204 | at91_gpio_suspend(); | 204 | if (of_have_populated_dt()) |
| 205 | at91_pinctrl_gpio_suspend(); | ||
| 206 | else | ||
| 207 | at91_gpio_suspend(); | ||
| 205 | at91_irq_suspend(); | 208 | at91_irq_suspend(); |
| 206 | 209 | ||
| 207 | pr_debug("AT91: PM - wake mask %08x, pm state %d\n", | 210 | pr_debug("AT91: PM - wake mask %08x, pm state %d\n", |
| @@ -286,7 +289,10 @@ static int at91_pm_enter(suspend_state_t state) | |||
| 286 | error: | 289 | error: |
| 287 | target_state = PM_SUSPEND_ON; | 290 | target_state = PM_SUSPEND_ON; |
| 288 | at91_irq_resume(); | 291 | at91_irq_resume(); |
| 289 | at91_gpio_resume(); | 292 | if (of_have_populated_dt()) |
| 293 | at91_pinctrl_gpio_resume(); | ||
| 294 | else | ||
| 295 | at91_gpio_resume(); | ||
| 290 | return 0; | 296 | return 0; |
| 291 | } | 297 | } |
| 292 | 298 | ||
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c index a685e9706b7b..45b7c71d9cc1 100644 --- a/arch/arm/mach-davinci/dma.c +++ b/arch/arm/mach-davinci/dma.c | |||
| @@ -743,6 +743,9 @@ EXPORT_SYMBOL(edma_free_channel); | |||
| 743 | */ | 743 | */ |
| 744 | int edma_alloc_slot(unsigned ctlr, int slot) | 744 | int edma_alloc_slot(unsigned ctlr, int slot) |
| 745 | { | 745 | { |
| 746 | if (!edma_cc[ctlr]) | ||
| 747 | return -EINVAL; | ||
| 748 | |||
| 746 | if (slot >= 0) | 749 | if (slot >= 0) |
| 747 | slot = EDMA_CHAN_SLOT(slot); | 750 | slot = EDMA_CHAN_SLOT(slot); |
| 748 | 751 | ||
diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index abda5a18a664..0f2111a11315 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig | |||
| @@ -67,6 +67,7 @@ config ARCH_NETWINDER | |||
| 67 | select ISA | 67 | select ISA |
| 68 | select ISA_DMA | 68 | select ISA_DMA |
| 69 | select PCI | 69 | select PCI |
| 70 | select VIRT_TO_BUS | ||
| 70 | help | 71 | help |
| 71 | Say Y here if you intend to run this kernel on the Rebel.COM | 72 | Say Y here if you intend to run this kernel on the Rebel.COM |
| 72 | NetWinder. Information about this machine can be found at: | 73 | NetWinder. Information about this machine can be found at: |
diff --git a/arch/arm/mach-imx/clk-imx35.c b/arch/arm/mach-imx/clk-imx35.c index 74e3a34d78b8..e13a8fa5e62c 100644 --- a/arch/arm/mach-imx/clk-imx35.c +++ b/arch/arm/mach-imx/clk-imx35.c | |||
| @@ -264,6 +264,7 @@ int __init mx35_clocks_init(void) | |||
| 264 | clk_prepare_enable(clk[gpio3_gate]); | 264 | clk_prepare_enable(clk[gpio3_gate]); |
| 265 | clk_prepare_enable(clk[iim_gate]); | 265 | clk_prepare_enable(clk[iim_gate]); |
| 266 | clk_prepare_enable(clk[emi_gate]); | 266 | clk_prepare_enable(clk[emi_gate]); |
| 267 | clk_prepare_enable(clk[max_gate]); | ||
| 267 | 268 | ||
| 268 | /* | 269 | /* |
| 269 | * SCC is needed to boot via mmc after a watchdog reset. The clock code | 270 | * SCC is needed to boot via mmc after a watchdog reset. The clock code |
diff --git a/arch/arm/mach-imx/imx25-dt.c b/arch/arm/mach-imx/imx25-dt.c index 03b65e5ea541..82348391582a 100644 --- a/arch/arm/mach-imx/imx25-dt.c +++ b/arch/arm/mach-imx/imx25-dt.c | |||
| @@ -27,6 +27,11 @@ static const char * const imx25_dt_board_compat[] __initconst = { | |||
| 27 | NULL | 27 | NULL |
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | static void __init imx25_timer_init(void) | ||
| 31 | { | ||
| 32 | mx25_clocks_init_dt(); | ||
| 33 | } | ||
| 34 | |||
| 30 | DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") | 35 | DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") |
| 31 | .map_io = mx25_map_io, | 36 | .map_io = mx25_map_io, |
| 32 | .init_early = imx25_init_early, | 37 | .init_early = imx25_init_early, |
diff --git a/arch/arm/mach-mmp/gplugd.c b/arch/arm/mach-mmp/gplugd.c index d1e2d595e79c..f62b68d926f4 100644 --- a/arch/arm/mach-mmp/gplugd.c +++ b/arch/arm/mach-mmp/gplugd.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/platform_device.h> | ||
| 12 | #include <linux/gpio.h> | 13 | #include <linux/gpio.h> |
| 13 | 14 | ||
| 14 | #include <asm/mach/arch.h> | 15 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c index fcdf52dbcc49..f051f53e35b7 100644 --- a/arch/arm/mach-s5pv210/clock.c +++ b/arch/arm/mach-s5pv210/clock.c | |||
| @@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = { | |||
| 214 | .name = "pcmcdclk", | 214 | .name = "pcmcdclk", |
| 215 | }; | 215 | }; |
| 216 | 216 | ||
| 217 | static struct clk dummy_apb_pclk = { | ||
| 218 | .name = "apb_pclk", | ||
| 219 | .id = -1, | ||
| 220 | }; | ||
| 221 | |||
| 222 | static struct clk *clkset_vpllsrc_list[] = { | 217 | static struct clk *clkset_vpllsrc_list[] = { |
| 223 | [0] = &clk_fin_vpll, | 218 | [0] = &clk_fin_vpll, |
| 224 | [1] = &clk_sclk_hdmi27m, | 219 | [1] = &clk_sclk_hdmi27m, |
| @@ -305,18 +300,6 @@ static struct clk_ops clk_fout_apll_ops = { | |||
| 305 | 300 | ||
| 306 | static struct clk init_clocks_off[] = { | 301 | static struct clk init_clocks_off[] = { |
| 307 | { | 302 | { |
| 308 | .name = "dma", | ||
| 309 | .devname = "dma-pl330.0", | ||
| 310 | .parent = &clk_hclk_psys.clk, | ||
| 311 | .enable = s5pv210_clk_ip0_ctrl, | ||
| 312 | .ctrlbit = (1 << 3), | ||
| 313 | }, { | ||
| 314 | .name = "dma", | ||
| 315 | .devname = "dma-pl330.1", | ||
| 316 | .parent = &clk_hclk_psys.clk, | ||
| 317 | .enable = s5pv210_clk_ip0_ctrl, | ||
| 318 | .ctrlbit = (1 << 4), | ||
| 319 | }, { | ||
| 320 | .name = "rot", | 303 | .name = "rot", |
| 321 | .parent = &clk_hclk_dsys.clk, | 304 | .parent = &clk_hclk_dsys.clk, |
| 322 | .enable = s5pv210_clk_ip0_ctrl, | 305 | .enable = s5pv210_clk_ip0_ctrl, |
| @@ -573,6 +556,20 @@ static struct clk clk_hsmmc3 = { | |||
| 573 | .ctrlbit = (1<<19), | 556 | .ctrlbit = (1<<19), |
| 574 | }; | 557 | }; |
| 575 | 558 | ||
| 559 | static struct clk clk_pdma0 = { | ||
| 560 | .name = "pdma0", | ||
| 561 | .parent = &clk_hclk_psys.clk, | ||
| 562 | .enable = s5pv210_clk_ip0_ctrl, | ||
| 563 | .ctrlbit = (1 << 3), | ||
| 564 | }; | ||
| 565 | |||
| 566 | static struct clk clk_pdma1 = { | ||
| 567 | .name = "pdma1", | ||
| 568 | .parent = &clk_hclk_psys.clk, | ||
| 569 | .enable = s5pv210_clk_ip0_ctrl, | ||
| 570 | .ctrlbit = (1 << 4), | ||
| 571 | }; | ||
| 572 | |||
| 576 | static struct clk *clkset_uart_list[] = { | 573 | static struct clk *clkset_uart_list[] = { |
| 577 | [6] = &clk_mout_mpll.clk, | 574 | [6] = &clk_mout_mpll.clk, |
| 578 | [7] = &clk_mout_epll.clk, | 575 | [7] = &clk_mout_epll.clk, |
| @@ -1075,6 +1072,8 @@ static struct clk *clk_cdev[] = { | |||
| 1075 | &clk_hsmmc1, | 1072 | &clk_hsmmc1, |
| 1076 | &clk_hsmmc2, | 1073 | &clk_hsmmc2, |
| 1077 | &clk_hsmmc3, | 1074 | &clk_hsmmc3, |
| 1075 | &clk_pdma0, | ||
| 1076 | &clk_pdma1, | ||
| 1078 | }; | 1077 | }; |
| 1079 | 1078 | ||
| 1080 | /* Clock initialisation code */ | 1079 | /* Clock initialisation code */ |
| @@ -1333,6 +1332,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = { | |||
| 1333 | CLKDEV_INIT(NULL, "spi_busclk0", &clk_p), | 1332 | CLKDEV_INIT(NULL, "spi_busclk0", &clk_p), |
| 1334 | CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk), | 1333 | CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk), |
| 1335 | CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk), | 1334 | CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk), |
| 1335 | CLKDEV_INIT("dma-pl330.0", "apb_pclk", &clk_pdma0), | ||
| 1336 | CLKDEV_INIT("dma-pl330.1", "apb_pclk", &clk_pdma1), | ||
| 1336 | }; | 1337 | }; |
| 1337 | 1338 | ||
| 1338 | void __init s5pv210_register_clocks(void) | 1339 | void __init s5pv210_register_clocks(void) |
| @@ -1361,6 +1362,5 @@ void __init s5pv210_register_clocks(void) | |||
| 1361 | for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++) | 1362 | for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++) |
| 1362 | s3c_disable_clocks(clk_cdev[ptr], 1); | 1363 | s3c_disable_clocks(clk_cdev[ptr], 1); |
| 1363 | 1364 | ||
| 1364 | s3c24xx_register_clock(&dummy_apb_pclk); | ||
| 1365 | s3c_pwmclk_init(); | 1365 | s3c_pwmclk_init(); |
| 1366 | } | 1366 | } |
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c index 3a38f7b34b94..e373de44a8b6 100644 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c | |||
| @@ -845,7 +845,7 @@ static struct fimc_source_info goni_camera_sensors[] = { | |||
| 845 | .mux_id = 0, | 845 | .mux_id = 0, |
| 846 | .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING | | 846 | .flags = V4L2_MBUS_PCLK_SAMPLE_FALLING | |
| 847 | V4L2_MBUS_VSYNC_ACTIVE_LOW, | 847 | V4L2_MBUS_VSYNC_ACTIVE_LOW, |
| 848 | .bus_type = FIMC_BUS_TYPE_ITU_601, | 848 | .fimc_bus_type = FIMC_BUS_TYPE_ITU_601, |
| 849 | .board_info = &noon010pc30_board_info, | 849 | .board_info = &noon010pc30_board_info, |
| 850 | .i2c_bus_num = 0, | 850 | .i2c_bus_num = 0, |
| 851 | .clk_frequency = 16000000UL, | 851 | .clk_frequency = 16000000UL, |
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index cdcb799e802f..fec49ebc359a 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c | |||
| @@ -32,6 +32,7 @@ | |||
| 32 | #include <linux/smsc911x.h> | 32 | #include <linux/smsc911x.h> |
| 33 | #include <linux/spi/spi.h> | 33 | #include <linux/spi/spi.h> |
| 34 | #include <linux/spi/sh_hspi.h> | 34 | #include <linux/spi/sh_hspi.h> |
| 35 | #include <linux/mmc/host.h> | ||
| 35 | #include <linux/mmc/sh_mobile_sdhi.h> | 36 | #include <linux/mmc/sh_mobile_sdhi.h> |
| 36 | #include <linux/mfd/tmio.h> | 37 | #include <linux/mfd/tmio.h> |
| 37 | #include <linux/usb/otg.h> | 38 | #include <linux/usb/otg.h> |
diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c index 6828ef6ce80e..a0bd8a755bdf 100644 --- a/arch/arm/net/bpf_jit_32.c +++ b/arch/arm/net/bpf_jit_32.c | |||
| @@ -576,7 +576,7 @@ load_ind: | |||
| 576 | /* x = ((*(frame + k)) & 0xf) << 2; */ | 576 | /* x = ((*(frame + k)) & 0xf) << 2; */ |
| 577 | ctx->seen |= SEEN_X | SEEN_DATA | SEEN_CALL; | 577 | ctx->seen |= SEEN_X | SEEN_DATA | SEEN_CALL; |
| 578 | /* the interpreter should deal with the negative K */ | 578 | /* the interpreter should deal with the negative K */ |
| 579 | if (k < 0) | 579 | if ((int)k < 0) |
| 580 | return -1; | 580 | return -1; |
| 581 | /* offset in r1: we might have to take the slow path */ | 581 | /* offset in r1: we might have to take the slow path */ |
| 582 | emit_mov_i(r_off, k, ctx); | 582 | emit_mov_i(r_off, k, ctx); |
