diff options
author | Michael Trimarchi <trimarchi@gandalf.sssup.it> | 2009-04-03 21:32:33 +0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-04-04 19:48:11 +0400 |
commit | 01ab10393c510342ec4ce85df11ccfa3df06bbb2 (patch) | |
tree | ebf0493fa7b53941f830f8b300037f834eb85e59 /arch/sh/include/asm/processor_32.h | |
parent | a27873cd234b4248dda342721d6262943e5fa235 (diff) | |
download | linux-01ab10393c510342ec4ce85df11ccfa3df06bbb2.tar.xz |
sh: Fix up DSP context save/restore.
There were a number of issues with the DSP context save/restore code,
mostly left-over relics from when it was introduced on SH3-DSP with
little follow-up testing, resulting in things like task_pt_dspregs()
referencing incorrect state on the stack.
This follows the MIPS convention of tracking the DSP state in the
thread_struct and handling the state save/restore in switch_to() and
finish_arch_switch() respectively. The regset interface is also updated,
which allows us to finally be rid of task_pt_dspregs() and the special
cased task_pt_regs().
Signed-off-by: Michael Trimarchi <michael@evidence.eu.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include/asm/processor_32.h')
-rw-r--r-- | arch/sh/include/asm/processor_32.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/sh/include/asm/processor_32.h b/arch/sh/include/asm/processor_32.h index efdd78a53b11..9a8714945dc9 100644 --- a/arch/sh/include/asm/processor_32.h +++ b/arch/sh/include/asm/processor_32.h @@ -58,6 +58,14 @@ asmlinkage void __init sh_cpu_init(void); #define SR_FD 0x00008000 /* + * DSP structure and data + */ +struct sh_dsp_struct { + unsigned long dsp_regs[14]; + long status; +}; + +/* * FPU structure and data */ @@ -96,6 +104,11 @@ struct thread_struct { /* floating point info */ union sh_fpu_union fpu; + +#ifdef CONFIG_SH_DSP + /* Dsp status information */ + struct sh_dsp_struct dsp_status; +#endif }; /* Count of active tasks with UBC settings */ |