mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-08 17:18:05 -04:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
51
arch/sparc/kernel/ivec.S
Normal file
51
arch/sparc/kernel/ivec.S
Normal file
|
@ -0,0 +1,51 @@
|
|||
/* The registers for cross calls will be:
|
||||
*
|
||||
* DATA 0: [low 32-bits] Address of function to call, jmp to this
|
||||
* [high 32-bits] MMU Context Argument 0, place in %g5
|
||||
* DATA 1: Address Argument 1, place in %g1
|
||||
* DATA 2: Address Argument 2, place in %g7
|
||||
*
|
||||
* With this method we can do most of the cross-call tlb/cache
|
||||
* flushing very quickly.
|
||||
*/
|
||||
.align 32
|
||||
.globl do_ivec
|
||||
.type do_ivec,#function
|
||||
do_ivec:
|
||||
mov 0x40, %g3
|
||||
ldxa [%g3 + %g0] ASI_INTR_R, %g3
|
||||
sethi %hi(KERNBASE), %g4
|
||||
cmp %g3, %g4
|
||||
bgeu,pn %xcc, do_ivec_xcall
|
||||
srlx %g3, 32, %g5
|
||||
stxa %g0, [%g0] ASI_INTR_RECEIVE
|
||||
membar #Sync
|
||||
|
||||
sethi %hi(ivector_table_pa), %g2
|
||||
ldx [%g2 + %lo(ivector_table_pa)], %g2
|
||||
sllx %g3, 4, %g3
|
||||
add %g2, %g3, %g3
|
||||
|
||||
TRAP_LOAD_IRQ_WORK_PA(%g6, %g1)
|
||||
|
||||
ldx [%g6], %g5
|
||||
stxa %g5, [%g3] ASI_PHYS_USE_EC
|
||||
stx %g3, [%g6]
|
||||
wr %g0, 1 << PIL_DEVICE_IRQ, %set_softint
|
||||
retry
|
||||
do_ivec_xcall:
|
||||
mov 0x50, %g1
|
||||
ldxa [%g1 + %g0] ASI_INTR_R, %g1
|
||||
srl %g3, 0, %g3
|
||||
|
||||
mov 0x60, %g7
|
||||
ldxa [%g7 + %g0] ASI_INTR_R, %g7
|
||||
stxa %g0, [%g0] ASI_INTR_RECEIVE
|
||||
membar #Sync
|
||||
ba,pt %xcc, 1f
|
||||
nop
|
||||
|
||||
.align 32
|
||||
1: jmpl %g3, %g0
|
||||
nop
|
||||
.size do_ivec,.-do_ivec
|
Loading…
Add table
Add a link
Reference in a new issue