mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-09 01:28: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
133
arch/mn10300/mm/cache.inc
Normal file
133
arch/mn10300/mm/cache.inc
Normal file
|
@ -0,0 +1,133 @@
|
|||
/* MN10300 CPU core caching macros -*- asm -*-
|
||||
*
|
||||
* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
|
||||
* Written by David Howells (dhowells@redhat.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public Licence
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the Licence, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Invalidate the instruction cache.
|
||||
# A0: Should hold CHCTR
|
||||
# D0: Should have been read from CHCTR
|
||||
# D1: Will be clobbered
|
||||
#
|
||||
# On some cores it is necessary to disable the icache whilst we do this.
|
||||
#
|
||||
###############################################################################
|
||||
.macro invalidate_icache,disable_irq
|
||||
|
||||
#if defined(CONFIG_AM33_2) || defined(CONFIG_AM33_3)
|
||||
.if \disable_irq
|
||||
# don't want an interrupt routine seeing a disabled cache
|
||||
mov epsw,d1
|
||||
and ~EPSW_IE,epsw
|
||||
or EPSW_NMID,epsw
|
||||
nop
|
||||
nop
|
||||
.endif
|
||||
|
||||
# disable the icache
|
||||
and ~CHCTR_ICEN,d0
|
||||
movhu d0,(a0)
|
||||
|
||||
# and wait for it to calm down
|
||||
setlb
|
||||
movhu (a0),d0
|
||||
btst CHCTR_ICBUSY,d0
|
||||
lne
|
||||
|
||||
# invalidate
|
||||
or CHCTR_ICINV,d0
|
||||
movhu d0,(a0)
|
||||
|
||||
# wait for the cache to finish
|
||||
setlb
|
||||
movhu (a0),d0
|
||||
btst CHCTR_ICBUSY,d0
|
||||
lne
|
||||
|
||||
# and reenable it
|
||||
or CHCTR_ICEN,d0
|
||||
movhu d0,(a0)
|
||||
movhu (a0),d0
|
||||
|
||||
.if \disable_irq
|
||||
LOCAL_IRQ_RESTORE(d1)
|
||||
.endif
|
||||
|
||||
#else /* CONFIG_AM33_2 || CONFIG_AM33_3 */
|
||||
|
||||
# invalidate
|
||||
or CHCTR_ICINV,d0
|
||||
movhu d0,(a0)
|
||||
movhu (a0),d0
|
||||
|
||||
#endif /* CONFIG_AM33_2 || CONFIG_AM33_3 */
|
||||
.endm
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Invalidate the data cache.
|
||||
# A0: Should hold CHCTR
|
||||
# D0: Should have been read from CHCTR
|
||||
# D1: Will be clobbered
|
||||
#
|
||||
# On some cores it is necessary to disable the dcache whilst we do this.
|
||||
#
|
||||
###############################################################################
|
||||
.macro invalidate_dcache,disable_irq
|
||||
|
||||
#if defined(CONFIG_AM33_2) || defined(CONFIG_AM33_3)
|
||||
.if \disable_irq
|
||||
# don't want an interrupt routine seeing a disabled cache
|
||||
mov epsw,d1
|
||||
and ~EPSW_IE,epsw
|
||||
or EPSW_NMID,epsw
|
||||
nop
|
||||
nop
|
||||
.endif
|
||||
|
||||
# disable the dcache
|
||||
and ~CHCTR_DCEN,d0
|
||||
movhu d0,(a0)
|
||||
|
||||
# and wait for it to calm down
|
||||
setlb
|
||||
movhu (a0),d0
|
||||
btst CHCTR_DCBUSY,d0
|
||||
lne
|
||||
|
||||
# invalidate
|
||||
or CHCTR_DCINV,d0
|
||||
movhu d0,(a0)
|
||||
|
||||
# wait for the cache to finish
|
||||
setlb
|
||||
movhu (a0),d0
|
||||
btst CHCTR_DCBUSY,d0
|
||||
lne
|
||||
|
||||
# and reenable it
|
||||
or CHCTR_DCEN,d0
|
||||
movhu d0,(a0)
|
||||
movhu (a0),d0
|
||||
|
||||
.if \disable_irq
|
||||
LOCAL_IRQ_RESTORE(d1)
|
||||
.endif
|
||||
|
||||
#else /* CONFIG_AM33_2 || CONFIG_AM33_3 */
|
||||
|
||||
# invalidate
|
||||
or CHCTR_DCINV,d0
|
||||
movhu d0,(a0)
|
||||
movhu (a0),d0
|
||||
|
||||
#endif /* CONFIG_AM33_2 || CONFIG_AM33_3 */
|
||||
.endm
|
Loading…
Add table
Add a link
Reference in a new issue