diff options
| author | Takashi Iwai <tiwai@suse.de> | 2012-10-25 15:20:36 -0400 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2012-10-25 15:20:36 -0400 |
| commit | c64064ce9376a404e0888ca4a2985c8a4c16cec3 (patch) | |
| tree | f34d3b84ca970fdb381dad9a195c1367ce5d10f4 /arch/arm64/include/asm/processor.h | |
| parent | 21b3de881b38a84002c07b1b4bfb91892644e83f (diff) | |
| parent | 456ba5a7802e58eccb5aa9751b3ab515ef99b9ca (diff) | |
Merge tag 'asoc-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.7
A couple of driver fixes, one that improves the interoperability of
WM8994 with controllers that are sensitive to extra BCLK cycles and some
build break fixes for ux500.
Diffstat (limited to 'arch/arm64/include/asm/processor.h')
| -rw-r--r-- | arch/arm64/include/asm/processor.h | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index 39a208a392f7..5d810044feda 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h | |||
| @@ -92,30 +92,20 @@ static inline void start_thread_common(struct pt_regs *regs, unsigned long pc) | |||
| 92 | static inline void start_thread(struct pt_regs *regs, unsigned long pc, | 92 | static inline void start_thread(struct pt_regs *regs, unsigned long pc, |
| 93 | unsigned long sp) | 93 | unsigned long sp) |
| 94 | { | 94 | { |
| 95 | unsigned long *stack = (unsigned long *)sp; | ||
| 96 | |||
| 97 | start_thread_common(regs, pc); | 95 | start_thread_common(regs, pc); |
| 98 | regs->pstate = PSR_MODE_EL0t; | 96 | regs->pstate = PSR_MODE_EL0t; |
| 99 | regs->sp = sp; | 97 | regs->sp = sp; |
| 100 | regs->regs[2] = stack[2]; /* x2 (envp) */ | ||
| 101 | regs->regs[1] = stack[1]; /* x1 (argv) */ | ||
| 102 | regs->regs[0] = stack[0]; /* x0 (argc) */ | ||
| 103 | } | 98 | } |
| 104 | 99 | ||
| 105 | #ifdef CONFIG_COMPAT | 100 | #ifdef CONFIG_COMPAT |
| 106 | static inline void compat_start_thread(struct pt_regs *regs, unsigned long pc, | 101 | static inline void compat_start_thread(struct pt_regs *regs, unsigned long pc, |
| 107 | unsigned long sp) | 102 | unsigned long sp) |
| 108 | { | 103 | { |
| 109 | unsigned int *stack = (unsigned int *)sp; | ||
| 110 | |||
| 111 | start_thread_common(regs, pc); | 104 | start_thread_common(regs, pc); |
| 112 | regs->pstate = COMPAT_PSR_MODE_USR; | 105 | regs->pstate = COMPAT_PSR_MODE_USR; |
| 113 | if (pc & 1) | 106 | if (pc & 1) |
| 114 | regs->pstate |= COMPAT_PSR_T_BIT; | 107 | regs->pstate |= COMPAT_PSR_T_BIT; |
| 115 | regs->compat_sp = sp; | 108 | regs->compat_sp = sp; |
| 116 | regs->regs[2] = stack[2]; /* x2 (envp) */ | ||
| 117 | regs->regs[1] = stack[1]; /* x1 (argv) */ | ||
| 118 | regs->regs[0] = stack[0]; /* x0 (argc) */ | ||
| 119 | } | 109 | } |
| 120 | #endif | 110 | #endif |
| 121 | 111 | ||
