WIP FPC-III support
[linux/fpc-iii.git] / arch / csky / mm / syscache.c
blobffade2f9a4c87914af5c8322fdfc1b9600a204c1
1 // SPDX-License-Identifier: GPL-2.0
2 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
4 #include <linux/syscalls.h>
5 #include <asm/page.h>
6 #include <asm/cacheflush.h>
7 #include <asm/cachectl.h>
9 SYSCALL_DEFINE3(cacheflush,
10 void __user *, addr,
11 unsigned long, bytes,
12 int, cache)
14 switch (cache) {
15 case ICACHE:
16 case BCACHE:
17 flush_icache_mm_range(current->mm,
18 (unsigned long)addr,
19 (unsigned long)addr + bytes);
20 case DCACHE:
21 dcache_wb_range((unsigned long)addr,
22 (unsigned long)addr + bytes);
23 break;
24 default:
25 return -EINVAL;
28 return 0;