diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0155-vcsm-Add-no-op-cache-operation-constant.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.14/950-0155-vcsm-Add-no-op-cache-operation-constant.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0155-vcsm-Add-no-op-cache-operation-constant.patch b/target/linux/brcm2708/patches-4.14/950-0155-vcsm-Add-no-op-cache-operation-constant.patch new file mode 100644 index 0000000000..138a42abb9 --- /dev/null +++ b/target/linux/brcm2708/patches-4.14/950-0155-vcsm-Add-no-op-cache-operation-constant.patch @@ -0,0 +1,61 @@ +From 068cfca9e8c54902c45b8c35b49191c766d346c9 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa <i.can.speak.c.and.basic@gmail.com> +Date: Wed, 10 Jan 2018 04:32:20 +0900 +Subject: [PATCH 155/454] vcsm: Add no-op cache operation constant + +Signed-off-by: Sugizaki Yukimasa <i.can.speak.c.and.basic@gmail.com> +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 10 ++++++++++ + include/linux/broadcom/vmcs_sm_ioctl.h | 1 + + 2 files changed, 11 insertions(+) + +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -1269,6 +1269,8 @@ static int clean_invalid_mem_2d(const vo + } + + switch (cache_op) { ++ case VCSM_CACHE_OP_NOP: ++ return 0; + case VCSM_CACHE_OP_INV: + op_fn = dmac_inv_range; + break; +@@ -1312,6 +1314,8 @@ static int clean_invalid_resource(const + return 0; + + switch (cache_op) { ++ case VCSM_CACHE_OP_NOP: ++ return 0; + case VCSM_CACHE_OP_INV: + stat_attempt = INVALID; + stat_failure = INVALID_FAIL; +@@ -2936,6 +2940,9 @@ static long vc_sm_ioctl(struct file *fil + goto out; + } + for (i = 0; i < sizeof(ioparam.s) / sizeof(*ioparam.s); i++) { ++ if (ioparam.s[i].cmd == VCSM_CACHE_OP_NOP) ++ break; ++ + /* Locate resource from GUID. */ + resource = + vmcs_sm_acquire_resource(file_data, ioparam.s[i].handle); +@@ -2989,6 +2996,9 @@ static long vc_sm_ioctl(struct file *fil + ret = clean_invalid_mem_2d((void __user*) op->start_address, + op->block_count, op->block_size, + op->inter_block_stride, op->invalidate_mode); ++ if (op->invalidate_mode == VCSM_CACHE_OP_NOP) ++ continue; ++ + if (ret) + break; + } +--- a/include/linux/broadcom/vmcs_sm_ioctl.h ++++ b/include/linux/broadcom/vmcs_sm_ioctl.h +@@ -172,6 +172,7 @@ struct vmcs_sm_ioctl_cache { + * Cache functions to be set to struct vmcs_sm_ioctl_clean_invalid cmd and + * vmcs_sm_ioctl_clean_invalid2 invalidate_mode. + */ ++#define VCSM_CACHE_OP_NOP 0x00 + #define VCSM_CACHE_OP_INV 0x01 + #define VCSM_CACHE_OP_CLEAN 0x02 + #define VCSM_CACHE_OP_FLUSH 0x03 |