diff options
author | Sidath Senanayake <sidaths@google.com> | 2017-09-19 18:23:58 +0200 |
---|---|---|
committer | Sidath Senanayake <sidaths@google.com> | 2017-09-19 18:23:58 +0200 |
commit | c19c62718d90e8efa4675528aae6ab6fde13a12f (patch) | |
tree | 4601ada4314a2641b2ebdb7073198a5a406085f8 /mali_kbase/ipa | |
parent | ea23e535ae857c92d45cb11bdd5dba7c27579726 (diff) | |
download | gpu-c19c62718d90e8efa4675528aae6ab6fde13a12f.tar.gz |
Mali Bifrost DDK r8p0 KMD
Provenance:
a0013c522 (collaborate/EAC/b_r8p0)
BX304L01B-BU-00000-r8p0-01rel0
BX304L06A-BU-00000-r8p0-01rel0
BX304X07X-BU-00000-r8p0-01rel0
Signed-off-by: Sidath Senanayake <sidaths@google.com>
Change-Id: Iab1f0fc8f3602409180629b210c624791be774c5
Diffstat (limited to 'mali_kbase/ipa')
-rw-r--r-- | mali_kbase/ipa/mali_kbase_ipa.c | 13 | ||||
-rw-r--r-- | mali_kbase/ipa/mali_kbase_ipa_simple.c | 19 | ||||
-rw-r--r-- | mali_kbase/ipa/mali_kbase_ipa_vinstr_g71.c | 12 |
3 files changed, 24 insertions, 20 deletions
diff --git a/mali_kbase/ipa/mali_kbase_ipa.c b/mali_kbase/ipa/mali_kbase_ipa.c index 4319893..e7e2299 100644 --- a/mali_kbase/ipa/mali_kbase_ipa.c +++ b/mali_kbase/ipa/mali_kbase_ipa.c @@ -242,18 +242,17 @@ struct kbase_ipa_model *kbase_ipa_init_model(struct kbase_device *kbdev, dev_err(kbdev->dev, "init of power model \'%s\' returned error %d\n", ops->name, err); - goto term_model; + kfree(model); + return NULL; } err = kbase_ipa_model_recalculate(model); - if (err) - goto term_model; + if (err) { + kbase_ipa_term_model(model); + return NULL; + } return model; - -term_model: - kbase_ipa_term_model(model); - return NULL; } KBASE_EXPORT_TEST_API(kbase_ipa_init_model); diff --git a/mali_kbase/ipa/mali_kbase_ipa_simple.c b/mali_kbase/ipa/mali_kbase_ipa_simple.c index dd65d33..de6c3e6 100644 --- a/mali_kbase/ipa/mali_kbase_ipa_simple.c +++ b/mali_kbase/ipa/mali_kbase_ipa_simple.c @@ -26,6 +26,7 @@ #include "mali_kbase.h" #include "mali_kbase_defs.h" #include "mali_kbase_ipa_simple.h" +#include "mali_kbase_ipa_debugfs.h" #if MALI_UNIT_TEST @@ -252,10 +253,8 @@ static int kbase_simple_power_model_init(struct kbase_ipa_model *model) model_data = kzalloc(sizeof(struct kbase_ipa_model_simple_data), GFP_KERNEL); - if (!model_data) { - err = -ENOMEM; - goto exit; - } + if (!model_data) + return -ENOMEM; model->model_data = (void *) model_data; @@ -263,17 +262,15 @@ static int kbase_simple_power_model_init(struct kbase_ipa_model *model) model_data->poll_temperature_thread = kthread_run(poll_temperature, (void *) model_data, "mali-simple-power-model-temp-poll"); - if (!model_data->poll_temperature_thread) { - err = -ENOMEM; - goto exit; + if (IS_ERR(model_data->poll_temperature_thread)) { + kfree(model_data); + return PTR_ERR(model_data->poll_temperature_thread); } err = add_params(model); - -exit: if (err) { - if (model_data->poll_temperature_thread) - kthread_stop(model_data->poll_temperature_thread); + kbase_ipa_model_param_free_all(model); + kthread_stop(model_data->poll_temperature_thread); kfree(model_data); } diff --git a/mali_kbase/ipa/mali_kbase_ipa_vinstr_g71.c b/mali_kbase/ipa/mali_kbase_ipa_vinstr_g71.c index 14241a0..81f6fdd 100644 --- a/mali_kbase/ipa/mali_kbase_ipa_vinstr_g71.c +++ b/mali_kbase/ipa/mali_kbase_ipa_vinstr_g71.c @@ -18,6 +18,7 @@ #include "mali_kbase_ipa_vinstr_common.h" #include "mali_kbase.h" +#include "mali_kbase_ipa_debugfs.h" #define JM_BASE (0 * KBASE_IPA_NR_BYTES_PER_BLOCK) @@ -78,7 +79,7 @@ static int kbase_g71_power_model_init(struct kbase_ipa_model *model) model_data = kzalloc(sizeof(*model_data), GFP_KERNEL); if (!model_data) - return -EINVAL; + return -ENOMEM; model_data->kbdev = model->kbdev; model_data->groups_def = ipa_groups_def; @@ -95,16 +96,23 @@ static int kbase_g71_power_model_init(struct kbase_ipa_model *model) &model_data->group_values[i], 1, false); if (err) - break; + goto exit; } model_data->scaling_factor = 15000; err = kbase_ipa_model_add_param_s32(model, "scale", &model_data->scaling_factor, 1, false); + if (err) + goto exit; err = kbase_ipa_attach_vinstr(model_data); +exit: + if (err) { + kbase_ipa_model_param_free_all(model); + kfree(model_data); + } return err; } |