diff options
author | Harshdeep Dhatt <hdhatt@codeaurora.org> | 2019-09-09 11:05:48 -0600 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-10-29 22:42:58 -0700 |
commit | e3417c9c58c325297f0aa2f61904a726a7be4bff (patch) | |
tree | 43f31957eeb8704dab4eb9e4b7f9fe43c17059b8 | |
parent | fd79b739f38f883c7269691461683e1b938180cc (diff) |
msm: kgsl: Disable deprecated ioctlsLA.UM.7.3.r1-08500-sdm845.0
Disabling sparse ioctls as they are deprecated.
Change-Id: I5a4c78ec96fad4cda29a61d090e8bfb798123e3f
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
-rw-r--r-- | drivers/gpu/msm/kgsl.c | 26 | ||||
-rw-r--r-- | drivers/gpu/msm/kgsl_device.h | 3 |
2 files changed, 28 insertions, 1 deletions
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index 596d17381799..6ffc882ce75a 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -3337,12 +3337,16 @@ long kgsl_ioctl_sparse_phys_alloc(struct kgsl_device_private *dev_priv, unsigned int cmd, void *data) { struct kgsl_process_private *process = dev_priv->process_priv; + struct kgsl_device *device = dev_priv->device; struct kgsl_sparse_phys_alloc *param = data; struct kgsl_mem_entry *entry; uint64_t flags; int ret; int id; + if (!(device->flags & KGSL_FLAG_SPARSE)) + return -ENOTSUPP; + ret = _sparse_alloc_param_sanity_check(param->size, param->pagesize); if (ret) return ret; @@ -3422,9 +3426,13 @@ long kgsl_ioctl_sparse_phys_free(struct kgsl_device_private *dev_priv, unsigned int cmd, void *data) { struct kgsl_process_private *process = dev_priv->process_priv; + struct kgsl_device *device = dev_priv->device; struct kgsl_sparse_phys_free *param = data; struct kgsl_mem_entry *entry; + if (!(device->flags & KGSL_FLAG_SPARSE)) + return -ENOTSUPP; + entry = kgsl_sharedmem_find_id_flags(process, param->id, KGSL_MEMFLAGS_SPARSE_PHYS); if (entry == NULL) @@ -3454,10 +3462,14 @@ long kgsl_ioctl_sparse_virt_alloc(struct kgsl_device_private *dev_priv, unsigned int cmd, void *data) { struct kgsl_process_private *private = dev_priv->process_priv; + struct kgsl_device *device = dev_priv->device; struct kgsl_sparse_virt_alloc *param = data; struct kgsl_mem_entry *entry; int ret; + if (!(device->flags & KGSL_FLAG_SPARSE)) + return -ENOTSUPP; + ret = _sparse_alloc_param_sanity_check(param->size, param->pagesize); if (ret) return ret; @@ -3498,9 +3510,13 @@ long kgsl_ioctl_sparse_virt_free(struct kgsl_device_private *dev_priv, unsigned int cmd, void *data) { struct kgsl_process_private *process = dev_priv->process_priv; + struct kgsl_device *device = dev_priv->device; struct kgsl_sparse_virt_free *param = data; struct kgsl_mem_entry *entry = NULL; + if (!(device->flags & KGSL_FLAG_SPARSE)) + return -ENOTSUPP; + entry = kgsl_sharedmem_find_id_flags(process, param->id, KGSL_MEMFLAGS_SPARSE_VIRT); if (entry == NULL) @@ -3847,6 +3863,7 @@ long kgsl_ioctl_sparse_bind(struct kgsl_device_private *dev_priv, unsigned int cmd, void *data) { struct kgsl_process_private *private = dev_priv->process_priv; + struct kgsl_device *device = dev_priv->device; struct kgsl_sparse_bind *param = data; struct kgsl_sparse_binding_object obj; struct kgsl_mem_entry *virt_entry; @@ -3855,6 +3872,9 @@ long kgsl_ioctl_sparse_bind(struct kgsl_device_private *dev_priv, int ret = 0; int i = 0; + if (!(device->flags & KGSL_FLAG_SPARSE)) + return -ENOTSUPP; + ptr = (void __user *) (uintptr_t) param->list; if (param->size > sizeof(struct kgsl_sparse_binding_object) || @@ -3910,6 +3930,9 @@ long kgsl_ioctl_gpu_sparse_command(struct kgsl_device_private *dev_priv, long result; unsigned int i = 0; + if (!(device->flags & KGSL_FLAG_SPARSE)) + return -ENOTSUPP; + /* Make sure sparse and syncpoint count isn't too big */ if (param->numsparse > KGSL_MAX_SPARSE || param->numsyncs > KGSL_MAX_SYNCPOINTS) @@ -4665,6 +4688,9 @@ int kgsl_device_platform_probe(struct kgsl_device *device) /* Initialize logging first, so that failures below actually print. */ kgsl_device_debugfs_init(device); + /* Disable the sparse ioctl invocation as they are not used */ + device->flags &= ~KGSL_FLAG_SPARSE; + status = kgsl_pwrctrl_init(device); if (status) goto error; diff --git a/drivers/gpu/msm/kgsl_device.h b/drivers/gpu/msm/kgsl_device.h index 4a98a240810a..01c38d0b6b30 100644 --- a/drivers/gpu/msm/kgsl_device.h +++ b/drivers/gpu/msm/kgsl_device.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2002,2007-2018, The Linux Foundation. All rights reserved. +/* Copyright (c) 2002,2007-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -66,6 +66,7 @@ enum kgsl_event_results { }; #define KGSL_FLAG_WAKE_ON_TOUCH BIT(0) +#define KGSL_FLAG_SPARSE BIT(1) /* * "list" of event types for ftrace symbolic magic |