diff options
Diffstat (limited to 'arch/sh/kernel')
| -rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 1 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7723.c | 1 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7786.c | 14 | ||||
| -rw-r--r-- | arch/sh/kernel/cpu/sh5/entry.S | 5 | ||||
| -rw-r--r-- | arch/sh/kernel/head_32.S | 3 | ||||
| -rw-r--r-- | arch/sh/kernel/head_64.S | 5 | ||||
| -rw-r--r-- | arch/sh/kernel/sys_sh.c | 9 | ||||
| -rw-r--r-- | arch/sh/kernel/syscalls_32.S | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/syscalls_64.S | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/time_32.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/timers/timer-tmu.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/vmlinux_32.lds.S | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/vmlinux_64.lds.S | 2 | 
13 files changed, 33 insertions, 17 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c index 0e5d204bc79..406747f07dc 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c @@ -256,7 +256,6 @@ static int __init sh7722_devices_setup(void)  {  	clk_always_enable("uram0"); /* URAM */  	clk_always_enable("xymem0"); /* XYMEM */ -	clk_always_enable("rtc0"); /* RTC */  	clk_always_enable("veu0"); /* VEU */  	clk_always_enable("vpu0"); /* VPU */  	clk_always_enable("jpu0"); /* JPU */ diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c index 5338dacbcfb..a800466b938 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c @@ -267,7 +267,6 @@ static struct platform_device *sh7723_devices[] __initdata = {  static int __init sh7723_devices_setup(void)  {  	clk_always_enable("meram0"); /* MERAM */ -	clk_always_enable("rtc0"); /* RTC */  	clk_always_enable("veu1"); /* VEU2H1 */  	clk_always_enable("veu0"); /* VEU2H0 */  	clk_always_enable("vpu0"); /* VPU */ diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c index 5a47e1cf442..90e8cfff55f 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c @@ -143,14 +143,14 @@ static void __init sh7786_usb_setup(void)  	 * Set the PHY and PLL enable bit  	 */  	__raw_writel(PHY_ENB | PLL_ENB, USBPCTL1); -	while (i-- && -	       ((__raw_readl(USBST) & ACT_PLL_STATUS) != ACT_PLL_STATUS)) +	while (i--) { +		if (ACT_PLL_STATUS == (__raw_readl(USBST) & ACT_PLL_STATUS)) { +			/* Set the PHY RST bit */ +			__raw_writel(PHY_ENB | PLL_ENB | PHY_RST, USBPCTL1); +			printk(KERN_INFO "sh7786 usb setup done\n"); +			break; +		}  		cpu_relax(); - -	if (i) { -		/* Set the PHY RST bit */ -		__raw_writel(PHY_ENB | PLL_ENB | PHY_RST, USBPCTL1); -		printk(KERN_INFO "sh7786 usb setup done\n");  	}  } diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S index e640c63d581..7e49cb812f8 100644 --- a/arch/sh/kernel/cpu/sh5/entry.S +++ b/arch/sh/kernel/cpu/sh5/entry.S @@ -10,6 +10,7 @@   * for more details.   */  #include <linux/errno.h> +#include <linux/init.h>  #include <linux/sys.h>  #include <cpu/registers.h>  #include <asm/processor.h> @@ -2058,10 +2059,10 @@ asm_uaccess_end:  /* - * --- .text.init Section + * --- .init.text Section   */ -	.section	.text.init, "ax" +	__INIT  /*   * void trap_init (void) diff --git a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S index 788605ff708..a78be74b8d3 100644 --- a/arch/sh/kernel/head_32.S +++ b/arch/sh/kernel/head_32.S @@ -10,6 +10,7 @@   *   * Head.S contains the SH exception handlers and startup code.   */ +#include <linux/init.h>  #include <linux/linkage.h>  #include <asm/thread_info.h> @@ -40,7 +41,7 @@ ENTRY(empty_zero_page)  1:  	.skip	PAGE_SIZE - empty_zero_page - 1b -	.section	.text.head, "ax" +	__HEAD  /*   * Condition at the entry of _stext: diff --git a/arch/sh/kernel/head_64.S b/arch/sh/kernel/head_64.S index 7ccfb995a39..3ea765844c7 100644 --- a/arch/sh/kernel/head_64.S +++ b/arch/sh/kernel/head_64.S @@ -8,6 +8,9 @@   * License.  See the file "COPYING" in the main directory of this archive   * for more details.   */ + +#include <linux/init.h> +  #include <asm/page.h>  #include <asm/cache.h>  #include <asm/tlb.h> @@ -110,7 +113,7 @@ empty_bad_pte_table:  fpu_in_use:	.quad	0 -	.section	.text.head, "ax" +	__HEAD  	.balign L1_CACHE_BYTES  /*   * Condition at the entry of __stext: diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c index 58dfc02c7af..e3a7e36639e 100644 --- a/arch/sh/kernel/sys_sh.c +++ b/arch/sh/kernel/sys_sh.c @@ -63,6 +63,15 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,  	unsigned long prot, unsigned long flags,  	unsigned long fd, unsigned long pgoff)  { +	/* +	 * The shift for mmap2 is constant, regardless of PAGE_SIZE +	 * setting. +	 */ +	if (pgoff & ((1 << (PAGE_SHIFT - 12)) - 1)) +		return -EINVAL; + +	pgoff >>= PAGE_SHIFT - 12; +  	return do_mmap2(addr, len, prot, flags, fd, pgoff);  } diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S index e67c1733e1b..05202edd8e2 100644 --- a/arch/sh/kernel/syscalls_32.S +++ b/arch/sh/kernel/syscalls_32.S @@ -349,3 +349,5 @@ ENTRY(sys_call_table)  	.long sys_dup3			/* 330 */  	.long sys_pipe2  	.long sys_inotify_init1 +	.long sys_preadv +	.long sys_writev diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S index 557cb91f5ca..a083609f928 100644 --- a/arch/sh/kernel/syscalls_64.S +++ b/arch/sh/kernel/syscalls_64.S @@ -387,3 +387,5 @@ sys_call_table:  	.long sys_dup3  	.long sys_pipe2  	.long sys_inotify_init1		/* 360 */ +	.long sys_preadv +	.long sys_pwritev diff --git a/arch/sh/kernel/time_32.c b/arch/sh/kernel/time_32.c index c34e1e0f9b0..1700d2465f6 100644 --- a/arch/sh/kernel/time_32.c +++ b/arch/sh/kernel/time_32.c @@ -208,7 +208,7 @@ unsigned long long sched_clock(void)  	if (!clocksource_sh.rating)  		return (unsigned long long)jiffies * (NSEC_PER_SEC / HZ); -	cycles = clocksource_sh.read(); +	cycles = clocksource_sh.read(&clocksource_sh);  	return cyc2ns(&clocksource_sh, cycles);  }  #endif diff --git a/arch/sh/kernel/timers/timer-tmu.c b/arch/sh/kernel/timers/timer-tmu.c index c5d3396f596..fe8d8930ccb 100644 --- a/arch/sh/kernel/timers/timer-tmu.c +++ b/arch/sh/kernel/timers/timer-tmu.c @@ -81,7 +81,7 @@ static int tmu_timer_stop(void)   */  static int tmus_are_scaled; -static cycle_t tmu_timer_read(void) +static cycle_t tmu_timer_read(struct clocksource *cs)  {  	return ((cycle_t)(~_tmu_read(TMU1)))<<tmus_are_scaled;  } diff --git a/arch/sh/kernel/vmlinux_32.lds.S b/arch/sh/kernel/vmlinux_32.lds.S index d0b2a715cd1..dd9b2ee1312 100644 --- a/arch/sh/kernel/vmlinux_32.lds.S +++ b/arch/sh/kernel/vmlinux_32.lds.S @@ -31,7 +31,7 @@ SECTIONS  	} = 0  	.text : { -		*(.text.head) +		HEAD_TEXT  		TEXT_TEXT  		SCHED_TEXT  		LOCK_TEXT diff --git a/arch/sh/kernel/vmlinux_64.lds.S b/arch/sh/kernel/vmlinux_64.lds.S index 33fa4645140..69664460c68 100644 --- a/arch/sh/kernel/vmlinux_64.lds.S +++ b/arch/sh/kernel/vmlinux_64.lds.S @@ -42,7 +42,7 @@ SECTIONS  	} = 0  	.text : C_PHYS(.text) { -		*(.text.head) +		HEAD_TEXT  		TEXT_TEXT  		*(.text64)  		*(.text..SHmedia32)  |