diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-03 11:22:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-03 11:22:06 -0400 |
commit | cf0223503e6198292cdcc864e01eeb5fe7490752 (patch) | |
tree | 5ed99ae5fc7a67ec19df19f4b46b0c04d97db174 /arch | |
parent | 3f8ddb032afa729d4bad1bf2965d3ec068de6b72 (diff) | |
parent | e857bfd4604a3a4edaf9c7038db880d9f78aecbd (diff) |
Merge branch 'sh-latest' of git://github.com/pmundt/linux-sh
* 'sh-latest' of git://github.com/pmundt/linux-sh:
sh: Add default uImage rule for sh7757lcr
sh: modify the asm/sh_eth.h to linux/sh_eth.h in sh7757lcr
sh: userimask.c needs linux/stat.h
sh: pfc: Add GPIO IRQ support
sh: modify the asm/sh_eth.h to linux/sh_eth.h in some boards
sh: pfc: Remove unused gpio_in_use member
sh: add parameters for EHCI and RIIC in clock-sh7757.c
sh: kexec: Add PHYSICAL_START
SH: irq: Remove IRQF_DISABLED
sh: pfc: get_config_reg() shift clean up
sh: intc: Add IRQ trigger bit field check
sh: drop unused Kconfig symbol
sh: Fix implicit declaration of function numa_node_id
sh: kexec: Register crashk_res
sh: ecovec: add renesas_usbhs DMAEngine support
Diffstat (limited to 'arch')
25 files changed, 70 insertions, 38 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index ff9177c8f643..5629e2099130 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -101,10 +101,6 @@ config GENERIC_LOCKBREAK | |||
101 | def_bool y | 101 | def_bool y |
102 | depends on SMP && PREEMPT | 102 | depends on SMP && PREEMPT |
103 | 103 | ||
104 | config SYS_SUPPORTS_PM | ||
105 | bool | ||
106 | depends on !SMP | ||
107 | |||
108 | config ARCH_SUSPEND_POSSIBLE | 104 | config ARCH_SUSPEND_POSSIBLE |
109 | def_bool n | 105 | def_bool n |
110 | 106 | ||
@@ -649,7 +645,7 @@ config CRASH_DUMP | |||
649 | a specially reserved region and then later executed after | 645 | a specially reserved region and then later executed after |
650 | a crash by kdump/kexec. The crash dump kernel must be compiled | 646 | a crash by kdump/kexec. The crash dump kernel must be compiled |
651 | to a memory address not used by the main kernel using | 647 | to a memory address not used by the main kernel using |
652 | MEMORY_START. | 648 | PHYSICAL_START. |
653 | 649 | ||
654 | For more details see Documentation/kdump/kdump.txt | 650 | For more details see Documentation/kdump/kdump.txt |
655 | 651 | ||
@@ -660,6 +656,17 @@ config KEXEC_JUMP | |||
660 | Jump between original kernel and kexeced kernel and invoke | 656 | Jump between original kernel and kexeced kernel and invoke |
661 | code via KEXEC | 657 | code via KEXEC |
662 | 658 | ||
659 | config PHYSICAL_START | ||
660 | hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP) | ||
661 | default MEMORY_START | ||
662 | ---help--- | ||
663 | This gives the physical address where the kernel is loaded | ||
664 | and is ordinarily the same as MEMORY_START. | ||
665 | |||
666 | Different values are primarily used in the case of kexec on panic | ||
667 | where the fail safe kernel needs to run at a different address | ||
668 | than the panic-ed kernel. | ||
669 | |||
663 | config SECCOMP | 670 | config SECCOMP |
664 | bool "Enable seccomp to safely compute untrusted bytecode" | 671 | bool "Enable seccomp to safely compute untrusted bytecode" |
665 | depends on PROC_FS | 672 | depends on PROC_FS |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index 99385d0b3f3b..3fc0f413777c 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -80,6 +80,7 @@ defaultimage-$(CONFIG_SH_RSK) := uImage | |||
80 | defaultimage-$(CONFIG_SH_URQUELL) := uImage | 80 | defaultimage-$(CONFIG_SH_URQUELL) := uImage |
81 | defaultimage-$(CONFIG_SH_MIGOR) := uImage | 81 | defaultimage-$(CONFIG_SH_MIGOR) := uImage |
82 | defaultimage-$(CONFIG_SH_AP325RXA) := uImage | 82 | defaultimage-$(CONFIG_SH_AP325RXA) := uImage |
83 | defaultimage-$(CONFIG_SH_SH7757LCR) := uImage | ||
83 | defaultimage-$(CONFIG_SH_7724_SOLUTION_ENGINE) := uImage | 84 | defaultimage-$(CONFIG_SH_7724_SOLUTION_ENGINE) := uImage |
84 | defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux | 85 | defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux |
85 | defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE) := vmlinux | 86 | defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE) := vmlinux |
diff --git a/arch/sh/boards/board-espt.c b/arch/sh/boards/board-espt.c index 9da92ac36533..b3ae9d38cbc0 100644 --- a/arch/sh/boards/board-espt.c +++ b/arch/sh/boards/board-espt.c | |||
@@ -13,9 +13,9 @@ | |||
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/mtd/physmap.h> | 14 | #include <linux/mtd/physmap.h> |
15 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <linux/sh_eth.h> | ||
16 | #include <asm/machvec.h> | 17 | #include <asm/machvec.h> |
17 | #include <asm/sizes.h> | 18 | #include <asm/sizes.h> |
18 | #include <asm/sh_eth.h> | ||
19 | 19 | ||
20 | /* NOR Flash */ | 20 | /* NOR Flash */ |
21 | static struct mtd_partition espt_nor_flash_partitions[] = { | 21 | static struct mtd_partition espt_nor_flash_partitions[] = { |
diff --git a/arch/sh/boards/board-secureedge5410.c b/arch/sh/boards/board-secureedge5410.c index f968f17891a4..03820c3c93d4 100644 --- a/arch/sh/boards/board-secureedge5410.c +++ b/arch/sh/boards/board-secureedge5410.c | |||
@@ -41,8 +41,7 @@ static int __init eraseconfig_init(void) | |||
41 | printk("SnapGear: EraseConfig init\n"); | 41 | printk("SnapGear: EraseConfig init\n"); |
42 | 42 | ||
43 | /* Setup "EraseConfig" switch on external IRQ 0 */ | 43 | /* Setup "EraseConfig" switch on external IRQ 0 */ |
44 | if (request_irq(irq, eraseconfig_interrupt, IRQF_DISABLED, | 44 | if (request_irq(irq, eraseconfig_interrupt, 0, "Erase Config", NULL)) |
45 | "Erase Config", NULL)) | ||
46 | printk("SnapGear: failed to register IRQ%d for Reset witch\n", | 45 | printk("SnapGear: failed to register IRQ%d for Reset witch\n", |
47 | irq); | 46 | irq); |
48 | else | 47 | else |
diff --git a/arch/sh/boards/board-sh7757lcr.c b/arch/sh/boards/board-sh7757lcr.c index fa2a208ec6cb..ec8c84c14b17 100644 --- a/arch/sh/boards/board-sh7757lcr.c +++ b/arch/sh/boards/board-sh7757lcr.c | |||
@@ -18,8 +18,8 @@ | |||
18 | #include <linux/mmc/host.h> | 18 | #include <linux/mmc/host.h> |
19 | #include <linux/mmc/sh_mmcif.h> | 19 | #include <linux/mmc/sh_mmcif.h> |
20 | #include <linux/mmc/sh_mobile_sdhi.h> | 20 | #include <linux/mmc/sh_mobile_sdhi.h> |
21 | #include <linux/sh_eth.h> | ||
21 | #include <cpu/sh7757.h> | 22 | #include <cpu/sh7757.h> |
22 | #include <asm/sh_eth.h> | ||
23 | #include <asm/heartbeat.h> | 23 | #include <asm/heartbeat.h> |
24 | 24 | ||
25 | static struct resource heartbeat_resource = { | 25 | static struct resource heartbeat_resource = { |
diff --git a/arch/sh/boards/mach-cayman/irq.c b/arch/sh/boards/mach-cayman/irq.c index 311bcebdbd07..724e8b7271f4 100644 --- a/arch/sh/boards/mach-cayman/irq.c +++ b/arch/sh/boards/mach-cayman/irq.c | |||
@@ -46,13 +46,11 @@ static irqreturn_t cayman_interrupt_pci2(int irq, void *dev_id) | |||
46 | static struct irqaction cayman_action_smsc = { | 46 | static struct irqaction cayman_action_smsc = { |
47 | .name = "Cayman SMSC Mux", | 47 | .name = "Cayman SMSC Mux", |
48 | .handler = cayman_interrupt_smsc, | 48 | .handler = cayman_interrupt_smsc, |
49 | .flags = IRQF_DISABLED, | ||
50 | }; | 49 | }; |
51 | 50 | ||
52 | static struct irqaction cayman_action_pci2 = { | 51 | static struct irqaction cayman_action_pci2 = { |
53 | .name = "Cayman PCI2 Mux", | 52 | .name = "Cayman PCI2 Mux", |
54 | .handler = cayman_interrupt_pci2, | 53 | .handler = cayman_interrupt_pci2, |
55 | .flags = IRQF_DISABLED, | ||
56 | }; | 54 | }; |
57 | 55 | ||
58 | static void enable_cayman_irq(struct irq_data *data) | 56 | static void enable_cayman_irq(struct irq_data *data) |
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c index b24d69d509e7..92ddce4b3456 100644 --- a/arch/sh/boards/mach-ecovec24/setup.c +++ b/arch/sh/boards/mach-ecovec24/setup.c | |||
@@ -28,13 +28,13 @@ | |||
28 | #include <linux/spi/mmc_spi.h> | 28 | #include <linux/spi/mmc_spi.h> |
29 | #include <linux/input.h> | 29 | #include <linux/input.h> |
30 | #include <linux/input/sh_keysc.h> | 30 | #include <linux/input/sh_keysc.h> |
31 | #include <linux/sh_eth.h> | ||
31 | #include <video/sh_mobile_lcdc.h> | 32 | #include <video/sh_mobile_lcdc.h> |
32 | #include <sound/sh_fsi.h> | 33 | #include <sound/sh_fsi.h> |
33 | #include <media/sh_mobile_ceu.h> | 34 | #include <media/sh_mobile_ceu.h> |
34 | #include <media/tw9910.h> | 35 | #include <media/tw9910.h> |
35 | #include <media/mt9t112.h> | 36 | #include <media/mt9t112.h> |
36 | #include <asm/heartbeat.h> | 37 | #include <asm/heartbeat.h> |
37 | #include <asm/sh_eth.h> | ||
38 | #include <asm/clock.h> | 38 | #include <asm/clock.h> |
39 | #include <asm/suspend.h> | 39 | #include <asm/suspend.h> |
40 | #include <cpu/sh7724.h> | 40 | #include <cpu/sh7724.h> |
@@ -248,6 +248,10 @@ static struct renesas_usbhs_platform_info usbhs_info = { | |||
248 | .driver_param = { | 248 | .driver_param = { |
249 | .buswait_bwait = 4, | 249 | .buswait_bwait = 4, |
250 | .detection_delay = 5, | 250 | .detection_delay = 5, |
251 | .d0_tx_id = SHDMA_SLAVE_USB1D0_TX, | ||
252 | .d0_rx_id = SHDMA_SLAVE_USB1D0_RX, | ||
253 | .d1_tx_id = SHDMA_SLAVE_USB1D1_TX, | ||
254 | .d1_rx_id = SHDMA_SLAVE_USB1D1_RX, | ||
251 | }, | 255 | }, |
252 | }; | 256 | }; |
253 | 257 | ||
diff --git a/arch/sh/boards/mach-hp6xx/hp6xx_apm.c b/arch/sh/boards/mach-hp6xx/hp6xx_apm.c index b49535c0ddd9..865d8d6e823f 100644 --- a/arch/sh/boards/mach-hp6xx/hp6xx_apm.c +++ b/arch/sh/boards/mach-hp6xx/hp6xx_apm.c | |||
@@ -86,7 +86,7 @@ static int __init hp6x0_apm_init(void) | |||
86 | int ret; | 86 | int ret; |
87 | 87 | ||
88 | ret = request_irq(HP680_BTN_IRQ, hp6x0_apm_interrupt, | 88 | ret = request_irq(HP680_BTN_IRQ, hp6x0_apm_interrupt, |
89 | IRQF_DISABLED, MODNAME, NULL); | 89 | 0, MODNAME, NULL); |
90 | if (unlikely(ret < 0)) { | 90 | if (unlikely(ret < 0)) { |
91 | printk(KERN_ERR MODNAME ": IRQ %d request failed\n", | 91 | printk(KERN_ERR MODNAME ": IRQ %d request failed\n", |
92 | HP680_BTN_IRQ); | 92 | HP680_BTN_IRQ); |
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c index d00756728bd2..b747c0ab9264 100644 --- a/arch/sh/boards/mach-se/7724/setup.c +++ b/arch/sh/boards/mach-se/7724/setup.c | |||
@@ -23,12 +23,12 @@ | |||
23 | #include <linux/input.h> | 23 | #include <linux/input.h> |
24 | #include <linux/input/sh_keysc.h> | 24 | #include <linux/input/sh_keysc.h> |
25 | #include <linux/usb/r8a66597.h> | 25 | #include <linux/usb/r8a66597.h> |
26 | #include <linux/sh_eth.h> | ||
26 | #include <video/sh_mobile_lcdc.h> | 27 | #include <video/sh_mobile_lcdc.h> |
27 | #include <media/sh_mobile_ceu.h> | 28 | #include <media/sh_mobile_ceu.h> |
28 | #include <sound/sh_fsi.h> | 29 | #include <sound/sh_fsi.h> |
29 | #include <asm/io.h> | 30 | #include <asm/io.h> |
30 | #include <asm/heartbeat.h> | 31 | #include <asm/heartbeat.h> |
31 | #include <asm/sh_eth.h> | ||
32 | #include <asm/clock.h> | 32 | #include <asm/clock.h> |
33 | #include <asm/suspend.h> | 33 | #include <asm/suspend.h> |
34 | #include <cpu/sh7724.h> | 34 | #include <cpu/sh7724.h> |
diff --git a/arch/sh/boards/mach-sh7763rdp/setup.c b/arch/sh/boards/mach-sh7763rdp/setup.c index f3d828f133e5..dd036f1661db 100644 --- a/arch/sh/boards/mach-sh7763rdp/setup.c +++ b/arch/sh/boards/mach-sh7763rdp/setup.c | |||
@@ -17,8 +17,8 @@ | |||
17 | #include <linux/mtd/physmap.h> | 17 | #include <linux/mtd/physmap.h> |
18 | #include <linux/fb.h> | 18 | #include <linux/fb.h> |
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include <linux/sh_eth.h> | ||
20 | #include <mach/sh7763rdp.h> | 21 | #include <mach/sh7763rdp.h> |
21 | #include <asm/sh_eth.h> | ||
22 | #include <asm/sh7760fb.h> | 22 | #include <asm/sh7760fb.h> |
23 | 23 | ||
24 | /* NOR Flash */ | 24 | /* NOR Flash */ |
diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile index ba515d800245..e4ea31a62c55 100644 --- a/arch/sh/boot/Makefile +++ b/arch/sh/boot/Makefile | |||
@@ -19,6 +19,7 @@ CONFIG_MEMORY_START ?= 0x0c000000 | |||
19 | CONFIG_BOOT_LINK_OFFSET ?= 0x00800000 | 19 | CONFIG_BOOT_LINK_OFFSET ?= 0x00800000 |
20 | CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000 | 20 | CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000 |
21 | CONFIG_ENTRY_OFFSET ?= 0x00001000 | 21 | CONFIG_ENTRY_OFFSET ?= 0x00001000 |
22 | CONFIG_PHYSICAL_START ?= $(CONFIG_MEMORY_START) | ||
22 | 23 | ||
23 | suffix-y := bin | 24 | suffix-y := bin |
24 | suffix-$(CONFIG_KERNEL_GZIP) := gz | 25 | suffix-$(CONFIG_KERNEL_GZIP) := gz |
@@ -48,7 +49,7 @@ $(obj)/romimage/vmlinux: $(obj)/zImage FORCE | |||
48 | $(Q)$(MAKE) $(build)=$(obj)/romimage $@ | 49 | $(Q)$(MAKE) $(build)=$(obj)/romimage $@ |
49 | 50 | ||
50 | KERNEL_MEMORY := $(shell /bin/bash -c 'printf "0x%08x" \ | 51 | KERNEL_MEMORY := $(shell /bin/bash -c 'printf "0x%08x" \ |
51 | $$[$(CONFIG_MEMORY_START) & 0x1fffffff]') | 52 | $$[$(CONFIG_PHYSICAL_START) & 0x1fffffff]') |
52 | 53 | ||
53 | KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%08x" \ | 54 | KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%08x" \ |
54 | $$[$(CONFIG_PAGE_OFFSET) + \ | 55 | $$[$(CONFIG_PAGE_OFFSET) + \ |
@@ -114,4 +115,5 @@ $(obj)/uImage: $(obj)/uImage.$(suffix-y) | |||
114 | @echo ' Image $@ is ready' | 115 | @echo ' Image $@ is ready' |
115 | 116 | ||
116 | export CONFIG_PAGE_OFFSET CONFIG_MEMORY_START CONFIG_BOOT_LINK_OFFSET \ | 117 | export CONFIG_PAGE_OFFSET CONFIG_MEMORY_START CONFIG_BOOT_LINK_OFFSET \ |
117 | CONFIG_ZERO_PAGE_OFFSET CONFIG_ENTRY_OFFSET KERNEL_MEMORY suffix-y | 118 | CONFIG_PHYSICAL_START CONFIG_ZERO_PAGE_OFFSET CONFIG_ENTRY_OFFSET \ |
119 | KERNEL_MEMORY suffix-y | ||
diff --git a/arch/sh/drivers/dma/dma-g2.c b/arch/sh/drivers/dma/dma-g2.c index af7bb589c2c8..be9ca7ca0ce4 100644 --- a/arch/sh/drivers/dma/dma-g2.c +++ b/arch/sh/drivers/dma/dma-g2.c | |||
@@ -170,7 +170,7 @@ static int __init g2_dma_init(void) | |||
170 | { | 170 | { |
171 | int ret; | 171 | int ret; |
172 | 172 | ||
173 | ret = request_irq(HW_EVENT_G2_DMA, g2_dma_interrupt, IRQF_DISABLED, | 173 | ret = request_irq(HW_EVENT_G2_DMA, g2_dma_interrupt, 0, |
174 | "g2 DMA handler", &g2_dma_info); | 174 | "g2 DMA handler", &g2_dma_info); |
175 | if (unlikely(ret)) | 175 | if (unlikely(ret)) |
176 | return -EINVAL; | 176 | return -EINVAL; |
diff --git a/arch/sh/drivers/dma/dma-pvr2.c b/arch/sh/drivers/dma/dma-pvr2.c index 3cee58e7f1e5..706a3434af7a 100644 --- a/arch/sh/drivers/dma/dma-pvr2.c +++ b/arch/sh/drivers/dma/dma-pvr2.c | |||
@@ -70,7 +70,6 @@ static int pvr2_xfer_dma(struct dma_channel *chan) | |||
70 | static struct irqaction pvr2_dma_irq = { | 70 | static struct irqaction pvr2_dma_irq = { |
71 | .name = "pvr2 DMA handler", | 71 | .name = "pvr2 DMA handler", |
72 | .handler = pvr2_dma_interrupt, | 72 | .handler = pvr2_dma_interrupt, |
73 | .flags = IRQF_DISABLED, | ||
74 | }; | 73 | }; |
75 | 74 | ||
76 | static struct dma_ops pvr2_dma_ops = { | 75 | static struct dma_ops pvr2_dma_ops = { |
diff --git a/arch/sh/drivers/dma/dma-sh.c b/arch/sh/drivers/dma/dma-sh.c index 827208781ed5..a60da6dd4d17 100644 --- a/arch/sh/drivers/dma/dma-sh.c +++ b/arch/sh/drivers/dma/dma-sh.c | |||
@@ -95,7 +95,7 @@ static int sh_dmac_request_dma(struct dma_channel *chan) | |||
95 | #if defined(CONFIG_SH_DMA_IRQ_MULTI) | 95 | #if defined(CONFIG_SH_DMA_IRQ_MULTI) |
96 | IRQF_SHARED, | 96 | IRQF_SHARED, |
97 | #else | 97 | #else |
98 | IRQF_DISABLED, | 98 | 0, |
99 | #endif | 99 | #endif |
100 | chan->dev_id, chan); | 100 | chan->dev_id, chan); |
101 | } | 101 | } |
@@ -305,7 +305,7 @@ static int __init sh_dmac_init(void) | |||
305 | #if defined(CONFIG_SH_DMA_IRQ_MULTI) | 305 | #if defined(CONFIG_SH_DMA_IRQ_MULTI) |
306 | IRQF_SHARED, | 306 | IRQF_SHARED, |
307 | #else | 307 | #else |
308 | IRQF_DISABLED, | 308 | 0, |
309 | #endif | 309 | #endif |
310 | dmae_name[n], (void *)dmae_name[n]); | 310 | dmae_name[n], (void *)dmae_name[n]); |
311 | if (unlikely(i < 0)) { | 311 | if (unlikely(i < 0)) { |
diff --git a/arch/sh/drivers/dma/dmabrg.c b/arch/sh/drivers/dma/dmabrg.c index 6ab9c4a15439..3d66a32ce610 100644 --- a/arch/sh/drivers/dma/dmabrg.c +++ b/arch/sh/drivers/dma/dmabrg.c | |||
@@ -174,17 +174,17 @@ static int __init dmabrg_init(void) | |||
174 | or = __raw_readl(DMAOR); | 174 | or = __raw_readl(DMAOR); |
175 | __raw_writel(or | DMAOR_BRG | DMAOR_DMEN, DMAOR); | 175 | __raw_writel(or | DMAOR_BRG | DMAOR_DMEN, DMAOR); |
176 | 176 | ||
177 | ret = request_irq(DMABRGI0, dmabrg_irq, IRQF_DISABLED, | 177 | ret = request_irq(DMABRGI0, dmabrg_irq, 0, |
178 | "DMABRG USB address error", NULL); | 178 | "DMABRG USB address error", NULL); |
179 | if (ret) | 179 | if (ret) |
180 | goto out0; | 180 | goto out0; |
181 | 181 | ||
182 | ret = request_irq(DMABRGI1, dmabrg_irq, IRQF_DISABLED, | 182 | ret = request_irq(DMABRGI1, dmabrg_irq, 0, |
183 | "DMABRG Transfer End", NULL); | 183 | "DMABRG Transfer End", NULL); |
184 | if (ret) | 184 | if (ret) |
185 | goto out1; | 185 | goto out1; |
186 | 186 | ||
187 | ret = request_irq(DMABRGI2, dmabrg_irq, IRQF_DISABLED, | 187 | ret = request_irq(DMABRGI2, dmabrg_irq, 0, |
188 | "DMABRG Transfer Half", NULL); | 188 | "DMABRG Transfer Half", NULL); |
189 | if (ret == 0) | 189 | if (ret == 0) |
190 | return ret; | 190 | return ret; |
diff --git a/arch/sh/drivers/pci/pci-sh5.c b/arch/sh/drivers/pci/pci-sh5.c index 0bf296c78795..16c1e721bf54 100644 --- a/arch/sh/drivers/pci/pci-sh5.c +++ b/arch/sh/drivers/pci/pci-sh5.c | |||
@@ -107,13 +107,13 @@ static int __init sh5pci_init(void) | |||
107 | u32 uval; | 107 | u32 uval; |
108 | 108 | ||
109 | if (request_irq(IRQ_ERR, pcish5_err_irq, | 109 | if (request_irq(IRQ_ERR, pcish5_err_irq, |
110 | IRQF_DISABLED, "PCI Error",NULL) < 0) { | 110 | 0, "PCI Error",NULL) < 0) { |
111 | printk(KERN_ERR "PCISH5: Cannot hook PCI_PERR interrupt\n"); | 111 | printk(KERN_ERR "PCISH5: Cannot hook PCI_PERR interrupt\n"); |
112 | return -EINVAL; | 112 | return -EINVAL; |
113 | } | 113 | } |
114 | 114 | ||
115 | if (request_irq(IRQ_SERR, pcish5_serr_irq, | 115 | if (request_irq(IRQ_SERR, pcish5_serr_irq, |
116 | IRQF_DISABLED, "PCI SERR interrupt", NULL) < 0) { | 116 | 0, "PCI SERR interrupt", NULL) < 0) { |
117 | printk(KERN_ERR "PCISH5: Cannot hook PCI_SERR interrupt\n"); | 117 | printk(KERN_ERR "PCISH5: Cannot hook PCI_SERR interrupt\n"); |
118 | return -EINVAL; | 118 | return -EINVAL; |
119 | } | 119 | } |
diff --git a/arch/sh/drivers/pci/pci-sh7780.c b/arch/sh/drivers/pci/pci-sh7780.c index edb7cca14882..fa7b978cc727 100644 --- a/arch/sh/drivers/pci/pci-sh7780.c +++ b/arch/sh/drivers/pci/pci-sh7780.c | |||
@@ -172,7 +172,7 @@ static int __init sh7780_pci_setup_irqs(struct pci_channel *hose) | |||
172 | PCI_STATUS_SIG_TARGET_ABORT | \ | 172 | PCI_STATUS_SIG_TARGET_ABORT | \ |
173 | PCI_STATUS_PARITY, hose->reg_base + PCI_STATUS); | 173 | PCI_STATUS_PARITY, hose->reg_base + PCI_STATUS); |
174 | 174 | ||
175 | ret = request_irq(hose->serr_irq, sh7780_pci_serr_irq, IRQF_DISABLED, | 175 | ret = request_irq(hose->serr_irq, sh7780_pci_serr_irq, 0, |
176 | "PCI SERR interrupt", hose); | 176 | "PCI SERR interrupt", hose); |
177 | if (unlikely(ret)) { | 177 | if (unlikely(ret)) { |
178 | printk(KERN_ERR "PCI: Failed hooking SERR IRQ\n"); | 178 | printk(KERN_ERR "PCI: Failed hooking SERR IRQ\n"); |
diff --git a/arch/sh/drivers/push-switch.c b/arch/sh/drivers/push-switch.c index afc24556572b..637b79b09657 100644 --- a/arch/sh/drivers/push-switch.c +++ b/arch/sh/drivers/push-switch.c | |||
@@ -63,7 +63,7 @@ static int switch_drv_probe(struct platform_device *pdev) | |||
63 | BUG_ON(!psw_info); | 63 | BUG_ON(!psw_info); |
64 | 64 | ||
65 | ret = request_irq(irq, psw_info->irq_handler, | 65 | ret = request_irq(irq, psw_info->irq_handler, |
66 | IRQF_DISABLED | psw_info->irq_flags, | 66 | psw_info->irq_flags, |
67 | psw_info->name ? psw_info->name : DRV_NAME, pdev); | 67 | psw_info->name ? psw_info->name : DRV_NAME, pdev); |
68 | if (unlikely(ret < 0)) | 68 | if (unlikely(ret < 0)) |
69 | goto err; | 69 | goto err; |
diff --git a/arch/sh/include/asm/page.h b/arch/sh/include/asm/page.h index 822d6084195b..0dca9a5c6be6 100644 --- a/arch/sh/include/asm/page.h +++ b/arch/sh/include/asm/page.h | |||
@@ -113,6 +113,16 @@ typedef struct page *pgtable_t; | |||
113 | #define __MEMORY_SIZE CONFIG_MEMORY_SIZE | 113 | #define __MEMORY_SIZE CONFIG_MEMORY_SIZE |
114 | 114 | ||
115 | /* | 115 | /* |
116 | * PHYSICAL_OFFSET is the offset in physical memory where the base | ||
117 | * of the kernel is loaded. | ||
118 | */ | ||
119 | #ifdef CONFIG_PHYSICAL_START | ||
120 | #define PHYSICAL_OFFSET (CONFIG_PHYSICAL_START - __MEMORY_START) | ||
121 | #else | ||
122 | #define PHYSICAL_OFFSET 0 | ||
123 | #endif | ||
124 | |||
125 | /* | ||
116 | * PAGE_OFFSET is the virtual address of the start of kernel address | 126 | * PAGE_OFFSET is the virtual address of the start of kernel address |
117 | * space. | 127 | * space. |
118 | */ | 128 | */ |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7757.c b/arch/sh/kernel/cpu/sh4a/clock-sh7757.c index 3b097b09a3ba..19222dae8233 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7757.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7757.c | |||
@@ -113,7 +113,14 @@ static struct clk_lookup lookups[] = { | |||
113 | 113 | ||
114 | /* MSTP32 clocks */ | 114 | /* MSTP32 clocks */ |
115 | CLKDEV_CON_ID("sdhi0", &mstp_clks[MSTP004]), | 115 | CLKDEV_CON_ID("sdhi0", &mstp_clks[MSTP004]), |
116 | CLKDEV_CON_ID("riic", &mstp_clks[MSTP000]), | 116 | CLKDEV_CON_ID("riic0", &mstp_clks[MSTP000]), |
117 | CLKDEV_CON_ID("riic1", &mstp_clks[MSTP000]), | ||
118 | CLKDEV_CON_ID("riic2", &mstp_clks[MSTP000]), | ||
119 | CLKDEV_CON_ID("riic3", &mstp_clks[MSTP000]), | ||
120 | CLKDEV_CON_ID("riic4", &mstp_clks[MSTP000]), | ||
121 | CLKDEV_CON_ID("riic5", &mstp_clks[MSTP000]), | ||
122 | CLKDEV_CON_ID("riic6", &mstp_clks[MSTP000]), | ||
123 | CLKDEV_CON_ID("riic7", &mstp_clks[MSTP000]), | ||
117 | 124 | ||
118 | CLKDEV_ICK_ID("tmu_fck", "sh_tmu.0", &mstp_clks[MSTP113]), | 125 | CLKDEV_ICK_ID("tmu_fck", "sh_tmu.0", &mstp_clks[MSTP113]), |
119 | CLKDEV_ICK_ID("tmu_fck", "sh_tmu.1", &mstp_clks[MSTP114]), | 126 | CLKDEV_ICK_ID("tmu_fck", "sh_tmu.1", &mstp_clks[MSTP114]), |
@@ -121,6 +128,7 @@ static struct clk_lookup lookups[] = { | |||
121 | CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP111]), | 128 | CLKDEV_ICK_ID("sci_fck", "sh-sci.1", &mstp_clks[MSTP111]), |
122 | CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP110]), | 129 | CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP110]), |
123 | 130 | ||
131 | CLKDEV_CON_ID("usb_fck", &mstp_clks[MSTP103]), | ||
124 | CLKDEV_CON_ID("usb0", &mstp_clks[MSTP102]), | 132 | CLKDEV_CON_ID("usb0", &mstp_clks[MSTP102]), |
125 | CLKDEV_CON_ID("mmc0", &mstp_clks[MSTP220]), | 133 | CLKDEV_CON_ID("mmc0", &mstp_clks[MSTP220]), |
126 | }; | 134 | }; |
diff --git a/arch/sh/kernel/cpu/sh4a/smp-shx3.c b/arch/sh/kernel/cpu/sh4a/smp-shx3.c index de865cac02ee..03f2b55757cf 100644 --- a/arch/sh/kernel/cpu/sh4a/smp-shx3.c +++ b/arch/sh/kernel/cpu/sh4a/smp-shx3.c | |||
@@ -79,7 +79,7 @@ static void shx3_prepare_cpus(unsigned int max_cpus) | |||
79 | 79 | ||
80 | for (i = 0; i < SMP_MSG_NR; i++) | 80 | for (i = 0; i < SMP_MSG_NR; i++) |
81 | request_irq(104 + i, ipi_interrupt_handler, | 81 | request_irq(104 + i, ipi_interrupt_handler, |
82 | IRQF_DISABLED | IRQF_PERCPU, "IPI", (void *)(long)i); | 82 | IRQF_PERCPU, "IPI", (void *)(long)i); |
83 | 83 | ||
84 | for (i = 0; i < max_cpus; i++) | 84 | for (i = 0; i < max_cpus; i++) |
85 | set_cpu_present(i, true); | 85 | set_cpu_present(i, true); |
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 58bff45d1156..1a0e946679a4 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c | |||
@@ -211,13 +211,16 @@ void __init __add_active_range(unsigned int nid, unsigned long start_pfn, | |||
211 | } | 211 | } |
212 | 212 | ||
213 | /* | 213 | /* |
214 | * We don't know which RAM region contains kernel data, | 214 | * We don't know which RAM region contains kernel data or |
215 | * so we try it repeatedly and let the resource manager | 215 | * the reserved crashkernel region, so try it repeatedly |
216 | * test it. | 216 | * and let the resource manager test it. |
217 | */ | 217 | */ |
218 | request_resource(res, &code_resource); | 218 | request_resource(res, &code_resource); |
219 | request_resource(res, &data_resource); | 219 | request_resource(res, &data_resource); |
220 | request_resource(res, &bss_resource); | 220 | request_resource(res, &bss_resource); |
221 | #ifdef CONFIG_KEXEC | ||
222 | request_resource(res, &crashk_res); | ||
223 | #endif | ||
221 | 224 | ||
222 | /* | 225 | /* |
223 | * Also make sure that there is a PMB mapping that covers this | 226 | * Also make sure that there is a PMB mapping that covers this |
diff --git a/arch/sh/kernel/topology.c b/arch/sh/kernel/topology.c index 38e862852dd0..ecc2d3d0f54a 100644 --- a/arch/sh/kernel/topology.c +++ b/arch/sh/kernel/topology.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/cpumask.h> | 11 | #include <linux/cpumask.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/percpu.h> | 13 | #include <linux/percpu.h> |
14 | #include <linux/topology.h> | ||
14 | #include <linux/node.h> | 15 | #include <linux/node.h> |
15 | #include <linux/nodemask.h> | 16 | #include <linux/nodemask.h> |
16 | 17 | ||
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index 731c10ce67b5..c98905f71e28 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S | |||
@@ -23,7 +23,7 @@ OUTPUT_ARCH(sh) | |||
23 | ENTRY(_start) | 23 | ENTRY(_start) |
24 | SECTIONS | 24 | SECTIONS |
25 | { | 25 | { |
26 | . = PAGE_OFFSET + MEMORY_OFFSET + CONFIG_ZERO_PAGE_OFFSET; | 26 | . = PAGE_OFFSET + MEMORY_OFFSET + PHYSICAL_OFFSET + CONFIG_ZERO_PAGE_OFFSET; |
27 | 27 | ||
28 | _text = .; /* Text and read-only data */ | 28 | _text = .; /* Text and read-only data */ |
29 | 29 | ||
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 58a93fb3d965..c9dbace35b16 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -287,6 +287,8 @@ static void __init do_init_bootmem(void) | |||
287 | static void __init early_reserve_mem(void) | 287 | static void __init early_reserve_mem(void) |
288 | { | 288 | { |
289 | unsigned long start_pfn; | 289 | unsigned long start_pfn; |
290 | u32 zero_base = (u32)__MEMORY_START + (u32)PHYSICAL_OFFSET; | ||
291 | u32 start = zero_base + (u32)CONFIG_ZERO_PAGE_OFFSET; | ||
290 | 292 | ||
291 | /* | 293 | /* |
292 | * Partially used pages are not usable - thus | 294 | * Partially used pages are not usable - thus |
@@ -300,15 +302,13 @@ static void __init early_reserve_mem(void) | |||
300 | * this catches the (definitely buggy) case of us accidentally | 302 | * this catches the (definitely buggy) case of us accidentally |
301 | * initializing the bootmem allocator with an invalid RAM area. | 303 | * initializing the bootmem allocator with an invalid RAM area. |
302 | */ | 304 | */ |
303 | memblock_reserve(__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET, | 305 | memblock_reserve(start, (PFN_PHYS(start_pfn) + PAGE_SIZE - 1) - start); |
304 | (PFN_PHYS(start_pfn) + PAGE_SIZE - 1) - | ||
305 | (__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET)); | ||
306 | 306 | ||
307 | /* | 307 | /* |
308 | * Reserve physical pages below CONFIG_ZERO_PAGE_OFFSET. | 308 | * Reserve physical pages below CONFIG_ZERO_PAGE_OFFSET. |
309 | */ | 309 | */ |
310 | if (CONFIG_ZERO_PAGE_OFFSET != 0) | 310 | if (CONFIG_ZERO_PAGE_OFFSET != 0) |
311 | memblock_reserve(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET); | 311 | memblock_reserve(zero_base, CONFIG_ZERO_PAGE_OFFSET); |
312 | 312 | ||
313 | /* | 313 | /* |
314 | * Handle additional early reservations | 314 | * Handle additional early reservations |