diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-03-26 20:36:30 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-03-26 20:36:30 +0000 |
commit | a304f3d2b6605e237d4ad080feb51d53bbb82b19 (patch) | |
tree | 9b9b0ddcc821be5e39df31276f1757133276d919 /target/linux/gemini/patches-3.18/060-cache-fa.diff | |
parent | 8ef68a20051f33d238e5cbcce95753b05bf79780 (diff) | |
download | upstream-a304f3d2b6605e237d4ad080feb51d53bbb82b19.tar.gz upstream-a304f3d2b6605e237d4ad080feb51d53bbb82b19.tar.bz2 upstream-a304f3d2b6605e237d4ad080feb51d53bbb82b19.zip |
gemini: add 3.18 support
Signed-off-by: Roman Yeryomin <roman@advem.lv>
SVN-Revision: 45033
Diffstat (limited to 'target/linux/gemini/patches-3.18/060-cache-fa.diff')
-rw-r--r-- | target/linux/gemini/patches-3.18/060-cache-fa.diff | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/target/linux/gemini/patches-3.18/060-cache-fa.diff b/target/linux/gemini/patches-3.18/060-cache-fa.diff new file mode 100644 index 0000000000..d337607e97 --- /dev/null +++ b/target/linux/gemini/patches-3.18/060-cache-fa.diff @@ -0,0 +1,41 @@ +--- a/arch/arm/mm/cache-fa.S 2011-01-05 01:50:19.000000000 +0100 ++++ b/arch/arm/mm/cache-fa.S 2012-07-25 14:30:40.883639094 +0200 +@@ -24,7 +24,8 @@ + /* + * The size of one data cache line. + */ +-#define CACHE_DLINESIZE 16 ++#define CACHE_DLINESIZE 16 ++#define CACHE_DLINESHIFT 4 + + /* + * The total size of the data cache. +@@ -169,7 +170,17 @@ + * - start - virtual start address + * - end - virtual end address + */ ++__flush_whole_dcache: ++ mcr p15, 0, r0, c7, c14, 0 @ clean/invalidate D cache ++ mov r0, #0 ++ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer ++ mov pc, lr ++ + fa_dma_inv_range: ++ sub r3, r1, r0 @ calculate total size ++ cmp r3, #CACHE_DLIMIT @ total size >= limit? ++ bhs __flush_whole_dcache @ flush whole D cache ++ + tst r0, #CACHE_DLINESIZE - 1 + bic r0, r0, #CACHE_DLINESIZE - 1 + mcrne p15, 0, r0, c7, c14, 1 @ clean & invalidate D entry +@@ -193,6 +204,10 @@ + * - end - virtual end address + */ + fa_dma_clean_range: ++ sub r3, r1, r0 @ calculate total size ++ cmp r3, #CACHE_DLIMIT @ total size >= limit? ++ bhs __flush_whole_dcache @ flush whole D cache ++ + bic r0, r0, #CACHE_DLINESIZE - 1 + 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry + add r0, r0, #CACHE_DLINESIZE |