From dbd2655766535ffc24e24503a7279f3abfd40d7e Mon Sep 17 00:00:00 2001 From: Sidath Senanayake Date: Wed, 8 Nov 2017 13:23:34 +0100 Subject: 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 Change-Id: Iaff4ad1413fa7d768d5d250afadbb24d19e1e2e2 --- mali_kbase/ipa/mali_kbase_ipa_debugfs.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'mali_kbase/ipa/mali_kbase_ipa_debugfs.c') 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); -- cgit v1.2.3