diff options
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/boards/mach-ap325rxa/setup.c | 3 | ||||
-rw-r--r-- | arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | 6 | ||||
-rw-r--r-- | arch/sh/boards/mach-kfr2r09/setup.c | 1 | ||||
-rw-r--r-- | arch/sh/configs/ecovec24-romimage_defconfig | 2 | ||||
-rw-r--r-- | arch/sh/configs/ecovec24_defconfig | 2 | ||||
-rw-r--r-- | arch/sh/include/mach-kfr2r09/mach/kfr2r09.h | 6 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/irq/ipr.c | 7 | ||||
-rw-r--r-- | arch/sh/mm/cache-sh4.c | 3 | ||||
-rw-r--r-- | arch/sh/mm/numa.c | 15 |
9 files changed, 34 insertions, 11 deletions
diff --git a/arch/sh/boards/mach-ap325rxa/setup.c b/arch/sh/boards/mach-ap325rxa/setup.c index cf9dc12dfeb1..4b4320b0b481 100644 --- a/arch/sh/boards/mach-ap325rxa/setup.c +++ b/arch/sh/boards/mach-ap325rxa/setup.c | |||
@@ -322,7 +322,8 @@ static struct soc_camera_platform_info camera_info = { | |||
322 | .height = 480, | 322 | .height = 480, |
323 | }, | 323 | }, |
324 | .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH | | 324 | .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH | |
325 | SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8, | 325 | SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8 | |
326 | SOCAM_DATA_ACTIVE_HIGH, | ||
326 | .set_capture = camera_set_capture, | 327 | .set_capture = camera_set_capture, |
327 | .link = { | 328 | .link = { |
328 | .bus_id = 0, | 329 | .bus_id = 0, |
diff --git a/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c b/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c index 8ccb1cc8b589..e9b970846c41 100644 --- a/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c +++ b/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | |||
@@ -273,6 +273,12 @@ int kfr2r09_lcd_setup(void *board_data, void *sohandle, | |||
273 | return 0; | 273 | return 0; |
274 | } | 274 | } |
275 | 275 | ||
276 | void kfr2r09_lcd_start(void *board_data, void *sohandle, | ||
277 | struct sh_mobile_lcdc_sys_bus_ops *so) | ||
278 | { | ||
279 | write_memory_start(sohandle, so); | ||
280 | } | ||
281 | |||
276 | #define CTRL_CKSW 0x10 | 282 | #define CTRL_CKSW 0x10 |
277 | #define CTRL_C10 0x20 | 283 | #define CTRL_C10 0x20 |
278 | #define CTRL_CPSW 0x80 | 284 | #define CTRL_CPSW 0x80 |
diff --git a/arch/sh/boards/mach-kfr2r09/setup.c b/arch/sh/boards/mach-kfr2r09/setup.c index 87438d6603d6..5cf7a6e8aeaa 100644 --- a/arch/sh/boards/mach-kfr2r09/setup.c +++ b/arch/sh/boards/mach-kfr2r09/setup.c | |||
@@ -149,6 +149,7 @@ static struct sh_mobile_lcdc_info kfr2r09_sh_lcdc_info = { | |||
149 | }, | 149 | }, |
150 | .board_cfg = { | 150 | .board_cfg = { |
151 | .setup_sys = kfr2r09_lcd_setup, | 151 | .setup_sys = kfr2r09_lcd_setup, |
152 | .start_transfer = kfr2r09_lcd_start, | ||
152 | .display_on = kfr2r09_lcd_on, | 153 | .display_on = kfr2r09_lcd_on, |
153 | .display_off = kfr2r09_lcd_off, | 154 | .display_off = kfr2r09_lcd_off, |
154 | }, | 155 | }, |
diff --git a/arch/sh/configs/ecovec24-romimage_defconfig b/arch/sh/configs/ecovec24-romimage_defconfig index 0774924623cc..46874704e4e7 100644 --- a/arch/sh/configs/ecovec24-romimage_defconfig +++ b/arch/sh/configs/ecovec24-romimage_defconfig | |||
@@ -203,7 +203,7 @@ CONFIG_MMU=y | |||
203 | CONFIG_PAGE_OFFSET=0x80000000 | 203 | CONFIG_PAGE_OFFSET=0x80000000 |
204 | CONFIG_FORCE_MAX_ZONEORDER=11 | 204 | CONFIG_FORCE_MAX_ZONEORDER=11 |
205 | CONFIG_MEMORY_START=0x08000000 | 205 | CONFIG_MEMORY_START=0x08000000 |
206 | CONFIG_MEMORY_SIZE=0x08000000 | 206 | CONFIG_MEMORY_SIZE=0x10000000 |
207 | CONFIG_29BIT=y | 207 | CONFIG_29BIT=y |
208 | # CONFIG_X2TLB is not set | 208 | # CONFIG_X2TLB is not set |
209 | CONFIG_VSYSCALL=y | 209 | CONFIG_VSYSCALL=y |
diff --git a/arch/sh/configs/ecovec24_defconfig b/arch/sh/configs/ecovec24_defconfig index ac6469718a2c..cad918437ca7 100644 --- a/arch/sh/configs/ecovec24_defconfig +++ b/arch/sh/configs/ecovec24_defconfig | |||
@@ -204,7 +204,7 @@ CONFIG_MMU=y | |||
204 | CONFIG_PAGE_OFFSET=0x80000000 | 204 | CONFIG_PAGE_OFFSET=0x80000000 |
205 | CONFIG_FORCE_MAX_ZONEORDER=11 | 205 | CONFIG_FORCE_MAX_ZONEORDER=11 |
206 | CONFIG_MEMORY_START=0x08000000 | 206 | CONFIG_MEMORY_START=0x08000000 |
207 | CONFIG_MEMORY_SIZE=0x08000000 | 207 | CONFIG_MEMORY_SIZE=0x10000000 |
208 | CONFIG_29BIT=y | 208 | CONFIG_29BIT=y |
209 | # CONFIG_X2TLB is not set | 209 | # CONFIG_X2TLB is not set |
210 | CONFIG_VSYSCALL=y | 210 | CONFIG_VSYSCALL=y |
diff --git a/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h b/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h index 174374e19547..484ef42c2fb5 100644 --- a/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h +++ b/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h | |||
@@ -8,6 +8,8 @@ void kfr2r09_lcd_on(void *board_data); | |||
8 | void kfr2r09_lcd_off(void *board_data); | 8 | void kfr2r09_lcd_off(void *board_data); |
9 | int kfr2r09_lcd_setup(void *board_data, void *sys_ops_handle, | 9 | int kfr2r09_lcd_setup(void *board_data, void *sys_ops_handle, |
10 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops); | 10 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops); |
11 | void kfr2r09_lcd_start(void *board_data, void *sys_ops_handle, | ||
12 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops); | ||
11 | #else | 13 | #else |
12 | static inline void kfr2r09_lcd_on(void *board_data) {} | 14 | static inline void kfr2r09_lcd_on(void *board_data) {} |
13 | static inline void kfr2r09_lcd_off(void *board_data) {} | 15 | static inline void kfr2r09_lcd_off(void *board_data) {} |
@@ -16,6 +18,10 @@ static inline int kfr2r09_lcd_setup(void *board_data, void *sys_ops_handle, | |||
16 | { | 18 | { |
17 | return -ENODEV; | 19 | return -ENODEV; |
18 | } | 20 | } |
21 | static inline void kfr2r09_lcd_start(void *board_data, void *sys_ops_handle, | ||
22 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops) | ||
23 | { | ||
24 | } | ||
19 | #endif | 25 | #endif |
20 | 26 | ||
21 | #endif /* __ASM_SH_KFR2R09_H */ | 27 | #endif /* __ASM_SH_KFR2R09_H */ |
diff --git a/arch/sh/kernel/cpu/irq/ipr.c b/arch/sh/kernel/cpu/irq/ipr.c index c1508a90fc6a..9282d965a1b6 100644 --- a/arch/sh/kernel/cpu/irq/ipr.c +++ b/arch/sh/kernel/cpu/irq/ipr.c | |||
@@ -17,16 +17,17 @@ | |||
17 | * for more details. | 17 | * for more details. |
18 | */ | 18 | */ |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/interrupt.h> | ||
21 | #include <linux/io.h> | ||
20 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
23 | #include <linux/kernel.h> | ||
21 | #include <linux/module.h> | 24 | #include <linux/module.h> |
22 | #include <linux/io.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | #include <linux/topology.h> | 25 | #include <linux/topology.h> |
25 | 26 | ||
26 | static inline struct ipr_desc *get_ipr_desc(unsigned int irq) | 27 | static inline struct ipr_desc *get_ipr_desc(unsigned int irq) |
27 | { | 28 | { |
28 | struct irq_chip *chip = get_irq_chip(irq); | 29 | struct irq_chip *chip = get_irq_chip(irq); |
29 | return (void *)((char *)chip - offsetof(struct ipr_desc, chip)); | 30 | return container_of(chip, struct ipr_desc, chip); |
30 | } | 31 | } |
31 | 32 | ||
32 | static void disable_ipr_irq(unsigned int irq) | 33 | static void disable_ipr_irq(unsigned int irq) |
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index f36a08bf3d5c..560ddb6bc8a7 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c | |||
@@ -256,8 +256,7 @@ static void sh4_flush_cache_page(void *args) | |||
256 | address = (unsigned long)vaddr; | 256 | address = (unsigned long)vaddr; |
257 | } | 257 | } |
258 | 258 | ||
259 | if (pages_do_alias(address, phys)) | 259 | flush_cache_one(CACHE_OC_ADDRESS_ARRAY | |
260 | flush_cache_one(CACHE_OC_ADDRESS_ARRAY | | ||
261 | (address & shm_align_mask), phys); | 260 | (address & shm_align_mask), phys); |
262 | 261 | ||
263 | if (vma->vm_flags & VM_EXEC) | 262 | if (vma->vm_flags & VM_EXEC) |
diff --git a/arch/sh/mm/numa.c b/arch/sh/mm/numa.c index 6c524446c0f6..422e92721878 100644 --- a/arch/sh/mm/numa.c +++ b/arch/sh/mm/numa.c | |||
@@ -28,7 +28,7 @@ void __init setup_memory(void) | |||
28 | { | 28 | { |
29 | unsigned long free_pfn = PFN_UP(__pa(_end)); | 29 | unsigned long free_pfn = PFN_UP(__pa(_end)); |
30 | u64 base = min_low_pfn << PAGE_SHIFT; | 30 | u64 base = min_low_pfn << PAGE_SHIFT; |
31 | u64 size = (max_low_pfn << PAGE_SHIFT) - min_low_pfn; | 31 | u64 size = (max_low_pfn << PAGE_SHIFT) - base; |
32 | 32 | ||
33 | lmb_add(base, size); | 33 | lmb_add(base, size); |
34 | 34 | ||
@@ -38,6 +38,15 @@ void __init setup_memory(void) | |||
38 | (__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET)); | 38 | (__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET)); |
39 | 39 | ||
40 | /* | 40 | /* |
41 | * Reserve physical pages below CONFIG_ZERO_PAGE_OFFSET. | ||
42 | */ | ||
43 | if (CONFIG_ZERO_PAGE_OFFSET != 0) | ||
44 | lmb_reserve(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET); | ||
45 | |||
46 | lmb_analyze(); | ||
47 | lmb_dump_all(); | ||
48 | |||
49 | /* | ||
41 | * Node 0 sets up its pgdat at the first available pfn, | 50 | * Node 0 sets up its pgdat at the first available pfn, |
42 | * and bumps it up before setting up the bootmem allocator. | 51 | * and bumps it up before setting up the bootmem allocator. |
43 | */ | 52 | */ |
@@ -71,7 +80,7 @@ void __init setup_bootmem_node(int nid, unsigned long start, unsigned long end) | |||
71 | 80 | ||
72 | /* Node-local pgdat */ | 81 | /* Node-local pgdat */ |
73 | NODE_DATA(nid) = __va(lmb_alloc_base(sizeof(struct pglist_data), | 82 | NODE_DATA(nid) = __va(lmb_alloc_base(sizeof(struct pglist_data), |
74 | SMP_CACHE_BYTES, end_pfn)); | 83 | SMP_CACHE_BYTES, end)); |
75 | memset(NODE_DATA(nid), 0, sizeof(struct pglist_data)); | 84 | memset(NODE_DATA(nid), 0, sizeof(struct pglist_data)); |
76 | 85 | ||
77 | NODE_DATA(nid)->bdata = &bootmem_node_data[nid]; | 86 | NODE_DATA(nid)->bdata = &bootmem_node_data[nid]; |
@@ -81,7 +90,7 @@ void __init setup_bootmem_node(int nid, unsigned long start, unsigned long end) | |||
81 | /* Node-local bootmap */ | 90 | /* Node-local bootmap */ |
82 | bootmap_pages = bootmem_bootmap_pages(end_pfn - start_pfn); | 91 | bootmap_pages = bootmem_bootmap_pages(end_pfn - start_pfn); |
83 | bootmem_paddr = lmb_alloc_base(bootmap_pages << PAGE_SHIFT, | 92 | bootmem_paddr = lmb_alloc_base(bootmap_pages << PAGE_SHIFT, |
84 | PAGE_SIZE, end_pfn); | 93 | PAGE_SIZE, end); |
85 | init_bootmem_node(NODE_DATA(nid), bootmem_paddr >> PAGE_SHIFT, | 94 | init_bootmem_node(NODE_DATA(nid), bootmem_paddr >> PAGE_SHIFT, |
86 | start_pfn, end_pfn); | 95 | start_pfn, end_pfn); |
87 | 96 | ||