mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-11-02 17:15:37 +01:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
71
arch/sh/include/asm/fpu.h
Normal file
71
arch/sh/include/asm/fpu.h
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
#ifndef __ASM_SH_FPU_H
|
||||
#define __ASM_SH_FPU_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
struct task_struct;
|
||||
|
||||
#ifdef CONFIG_SH_FPU
|
||||
static inline void release_fpu(struct pt_regs *regs)
|
||||
{
|
||||
regs->sr |= SR_FD;
|
||||
}
|
||||
|
||||
static inline void grab_fpu(struct pt_regs *regs)
|
||||
{
|
||||
regs->sr &= ~SR_FD;
|
||||
}
|
||||
|
||||
extern void save_fpu(struct task_struct *__tsk);
|
||||
extern void restore_fpu(struct task_struct *__tsk);
|
||||
extern void fpu_state_restore(struct pt_regs *regs);
|
||||
extern void __fpu_state_restore(void);
|
||||
#else
|
||||
#define save_fpu(tsk) do { } while (0)
|
||||
#define restore_fpu(tsk) do { } while (0)
|
||||
#define release_fpu(regs) do { } while (0)
|
||||
#define grab_fpu(regs) do { } while (0)
|
||||
#define fpu_state_restore(regs) do { } while (0)
|
||||
#define __fpu_state_restore(regs) do { } while (0)
|
||||
#endif
|
||||
|
||||
struct user_regset;
|
||||
|
||||
extern int do_fpu_inst(unsigned short, struct pt_regs *);
|
||||
extern int init_fpu(struct task_struct *);
|
||||
|
||||
extern int fpregs_get(struct task_struct *target,
|
||||
const struct user_regset *regset,
|
||||
unsigned int pos, unsigned int count,
|
||||
void *kbuf, void __user *ubuf);
|
||||
|
||||
static inline void __unlazy_fpu(struct task_struct *tsk, struct pt_regs *regs)
|
||||
{
|
||||
if (task_thread_info(tsk)->status & TS_USEDFPU) {
|
||||
task_thread_info(tsk)->status &= ~TS_USEDFPU;
|
||||
save_fpu(tsk);
|
||||
release_fpu(regs);
|
||||
} else
|
||||
tsk->thread.fpu_counter = 0;
|
||||
}
|
||||
|
||||
static inline void unlazy_fpu(struct task_struct *tsk, struct pt_regs *regs)
|
||||
{
|
||||
preempt_disable();
|
||||
__unlazy_fpu(tsk, regs);
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
static inline void clear_fpu(struct task_struct *tsk, struct pt_regs *regs)
|
||||
{
|
||||
preempt_disable();
|
||||
if (task_thread_info(tsk)->status & TS_USEDFPU) {
|
||||
task_thread_info(tsk)->status &= ~TS_USEDFPU;
|
||||
release_fpu(regs);
|
||||
}
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_SH_FPU_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue