summaryrefslogtreecommitdiff
path: root/mali_kbase/ipa/mali_kbase_ipa_debugfs.c
diff options
context:
space:
mode:
authorSidath Senanayake <sidaths@google.com>2017-11-08 13:23:34 +0100
committerSidath Senanayake <sidaths@google.com>2017-11-08 13:23:34 +0100
commitdbd2655766535ffc24e24503a7279f3abfd40d7e (patch)
tree87f651aaa936267783d365eab5502d24f6be2d14 /mali_kbase/ipa/mali_kbase_ipa_debugfs.c
parentc19c62718d90e8efa4675528aae6ab6fde13a12f (diff)
downloadgpu-dbd2655766535ffc24e24503a7279f3abfd40d7e.tar.gz
Mali Bifrost DDK r9p0 KMD
Provenance: b336f554d (collaborate/EAC/b_r9p0) BX304L01B-BU-00000-r9p0-01rel0 BX304L06A-BU-00000-r9p0-01rel0 BX304X07X-BU-00000-r9p0-01rel0 Signed-off-by: Sidath Senanayake <sidaths@google.com> Change-Id: Iaff4ad1413fa7d768d5d250afadbb24d19e1e2e2
Diffstat (limited to 'mali_kbase/ipa/mali_kbase_ipa_debugfs.c')
-rw-r--r--mali_kbase/ipa/mali_kbase_ipa_debugfs.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/mali_kbase/ipa/mali_kbase_ipa_debugfs.c b/mali_kbase/ipa/mali_kbase_ipa_debugfs.c
index eafc140..d3ac7c3 100644
--- a/mali_kbase/ipa/mali_kbase_ipa_debugfs.c
+++ b/mali_kbase/ipa/mali_kbase_ipa_debugfs.c
@@ -142,6 +142,12 @@ int kbase_ipa_model_param_add(struct kbase_ipa_model *model, const char *name,
/* 'name' is stack-allocated for array elements, so copy it into
* heap-allocated storage */
param->name = kstrdup(name, GFP_KERNEL);
+
+ if (!param->name) {
+ kfree(param);
+ return -ENOMEM;
+ }
+
param->addr.voidp = addr;
param->size = size;
param->type = type;
@@ -207,6 +213,30 @@ static void kbase_ipa_model_debugfs_init(struct kbase_ipa_model *model)
}
}
+void kbase_ipa_model_param_set_s32(struct kbase_ipa_model *model,
+ const char *name, s32 val)
+{
+ struct kbase_ipa_model_param *param;
+
+ mutex_lock(&model->kbdev->ipa.lock);
+
+ list_for_each_entry(param, &model->params, link) {
+ if (!strcmp(param->name, name)) {
+ if (param->type == PARAM_TYPE_S32) {
+ *param->addr.s32p = val;
+ } else {
+ dev_err(model->kbdev->dev,
+ "Wrong type for %s parameter %s\n",
+ model->ops->name, param->name);
+ }
+ break;
+ }
+ }
+
+ mutex_unlock(&model->kbdev->ipa.lock);
+}
+KBASE_EXPORT_TEST_API(kbase_ipa_model_param_set_s32);
+
void kbase_ipa_debugfs_init(struct kbase_device *kbdev)
{
mutex_lock(&kbdev->ipa.lock);