浏览代码

Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32

* 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32:
  AVR32: Add missing return instruction in __raw_writesb
  AVR32: Wire up sys_epoll_pwait
  AVR32: Fix thinko in generic_find_next_zero_le_bit()
  AVR32: Get rid of board_early_init
Linus Torvalds 18 年之前
父节点
当前提交
b7651030a5

+ 0 - 9
arch/avr32/boards/atstk1000/setup.c

@@ -21,15 +21,6 @@ struct tag *bootloader_tags __initdata;
 
 
 struct lcdc_platform_data __initdata atstk1000_fb0_data;
 struct lcdc_platform_data __initdata atstk1000_fb0_data;
 
 
-asmlinkage void __init board_early_init(void)
-{
-	extern void sdram_init(void);
-
-#ifdef CONFIG_LOADER_STANDALONE
-	sdram_init();
-#endif
-}
-
 void __init board_setup_fbmem(unsigned long fbmem_start,
 void __init board_setup_fbmem(unsigned long fbmem_start,
 			      unsigned long fbmem_size)
 			      unsigned long fbmem_size)
 {
 {

+ 0 - 3
arch/avr32/kernel/head.S

@@ -30,9 +30,6 @@ kernel_entry:
 	mov	r7, 0
 	mov	r7, 0
 #endif
 #endif
 
 
-	/* Set up the PIO, SDRAM controller, early printk, etc. */
-	rcall	board_early_init
-
 	/* Start the show */
 	/* Start the show */
 	lddpc   pc, kernel_start_addr
 	lddpc   pc, kernel_start_addr
 
 

+ 9 - 0
arch/avr32/kernel/syscall-stubs.S

@@ -100,3 +100,12 @@ __sys_splice:
 	rcall	sys_splice
 	rcall	sys_splice
 	sub	sp, -4
 	sub	sp, -4
 	popm	pc
 	popm	pc
+
+	.global	__sys_epoll_pwait
+	.type	__sys_epoll_pwait,@function
+__sys_epoll_pwait:
+	pushm	lr
+	st.w	--sp, ARG6
+	rcall	sys_epoll_pwait
+	sub	sp, -4
+	popm	pc

+ 1 - 0
arch/avr32/kernel/syscall_table.S

@@ -286,4 +286,5 @@ sys_call_table:
 	.long	sys_sync_file_range
 	.long	sys_sync_file_range
 	.long	sys_tee
 	.long	sys_tee
 	.long	sys_vmsplice
 	.long	sys_vmsplice
+	.long	__sys_epoll_pwait	/* 265 */
 	.long	sys_ni_syscall		/* r8 is saturated at nr_syscalls */
 	.long	sys_ni_syscall		/* r8 is saturated at nr_syscalls */

+ 2 - 1
arch/avr32/lib/findbit.S

@@ -136,6 +136,7 @@ ENTRY(generic_find_next_zero_le_bit)
 	/* offset is not word-aligned. Handle the first (32 - r10) bits */
 	/* offset is not word-aligned. Handle the first (32 - r10) bits */
 	ldswp.w	r8, r12[0]
 	ldswp.w	r8, r12[0]
 	sub	r12, -4
 	sub	r12, -4
+	com	r8
 	lsr	r8, r8, r10
 	lsr	r8, r8, r10
 	brne	.L_found
 	brne	.L_found
 
 
@@ -146,7 +147,7 @@ ENTRY(generic_find_next_zero_le_bit)
 
 
 	/* Main loop. offset must be word-aligned */
 	/* Main loop. offset must be word-aligned */
 1:	ldswp.w	r8, r12[0]
 1:	ldswp.w	r8, r12[0]
-	cp.w	r8, 0
+	com	r8
 	brne	.L_found
 	brne	.L_found
 	sub	r12, -4
 	sub	r12, -4
 	sub	r9, 32
 	sub	r9, 32

+ 2 - 0
arch/avr32/lib/io-readsb.S

@@ -45,3 +45,5 @@ __raw_readsb:
 	sub	r10, 1
 	sub	r10, 1
 	st.b	r11++, r8
 	st.b	r11++, r8
 	brne	3b
 	brne	3b
+
+	retal	r12

+ 2 - 1
include/asm-avr32/unistd.h

@@ -280,9 +280,10 @@
 #define __NR_sync_file_range	262
 #define __NR_sync_file_range	262
 #define __NR_tee		263
 #define __NR_tee		263
 #define __NR_vmsplice		264
 #define __NR_vmsplice		264
+#define __NR_epoll_pwait	265
 
 
 #ifdef __KERNEL__
 #ifdef __KERNEL__
-#define NR_syscalls		265
+#define NR_syscalls		266
 
 
 
 
 #define __ARCH_WANT_IPC_PARSE_VERSION
 #define __ARCH_WANT_IPC_PARSE_VERSION