summaryrefslogtreecommitdiff
path: root/mali_kbase/ipa
diff options
context:
space:
mode:
authorSidath Senanayake <sidaths@google.com>2019-08-23 15:40:27 +0200
committerSidath Senanayake <sidaths@google.com>2019-08-23 15:40:27 +0200
commit869660680efaed77cec0414161640a6f1a85d5b2 (patch)
treed36678f523da5f9148c465c3b5d5ef058401a409 /mali_kbase/ipa
parent228451ed83f4840e863beff27b33ca9a460f820b (diff)
downloadgpu-869660680efaed77cec0414161640a6f1a85d5b2.tar.gz
Mali Valhall DDK r20p0 KMD
Provenance: f3deff212 (collaborate/EAC/v_r20p0) VX504X08X-BU-00000-r20p0-01rel0 - Android DDK Signed-off-by: Sidath Senanayake <sidaths@google.com> Change-Id: If3c1611d83966bcb25a85ad27638612c121cb545
Diffstat (limited to 'mali_kbase/ipa')
-rw-r--r--mali_kbase/ipa/mali_kbase_ipa.c52
-rw-r--r--mali_kbase/ipa/mali_kbase_ipa.h2
-rw-r--r--mali_kbase/ipa/mali_kbase_ipa_vinstr_g7x.c36
3 files changed, 65 insertions, 25 deletions
diff --git a/mali_kbase/ipa/mali_kbase_ipa.c b/mali_kbase/ipa/mali_kbase_ipa.c
index 65b4edf..9b75f0d 100644
--- a/mali_kbase/ipa/mali_kbase_ipa.c
+++ b/mali_kbase/ipa/mali_kbase_ipa.c
@@ -47,7 +47,9 @@ static const struct kbase_ipa_model_ops *kbase_ipa_all_model_ops[] = {
&kbase_g52_ipa_model_ops,
&kbase_g52_r1_ipa_model_ops,
&kbase_g51_ipa_model_ops,
- &kbase_g77_ipa_model_ops
+ &kbase_g77_ipa_model_ops,
+ &kbase_tnax_ipa_model_ops,
+ &kbase_tbex_ipa_model_ops
};
int kbase_ipa_model_recalculate(struct kbase_ipa_model *model)
@@ -91,31 +93,31 @@ const char *kbase_ipa_model_name_from_id(u32 gpu_id)
const u32 prod_id = (gpu_id & GPU_ID_VERSION_PRODUCT_ID) >>
GPU_ID_VERSION_PRODUCT_ID_SHIFT;
- if (GPU_ID_IS_NEW_FORMAT(prod_id)) {
- switch (GPU_ID2_MODEL_MATCH_VALUE(prod_id)) {
- case GPU_ID2_PRODUCT_TMIX:
- return "mali-g71-power-model";
- case GPU_ID2_PRODUCT_THEX:
- return "mali-g72-power-model";
- case GPU_ID2_PRODUCT_TNOX:
- return "mali-g76-power-model";
- case GPU_ID2_PRODUCT_TSIX:
- return "mali-g51-power-model";
- case GPU_ID2_PRODUCT_TGOX:
- if ((gpu_id & GPU_ID2_VERSION_MAJOR) ==
- (0 << GPU_ID2_VERSION_MAJOR_SHIFT))
- /* g52 aliased to g76 power-model's ops */
- return "mali-g52-power-model";
- else
- return "mali-g52_r1-power-model";
- case GPU_ID2_PRODUCT_TTRX:
- return "mali-g77-power-model";
- default:
- return KBASE_IPA_FALLBACK_MODEL_NAME;
- }
+ switch (GPU_ID2_MODEL_MATCH_VALUE(prod_id)) {
+ case GPU_ID2_PRODUCT_TMIX:
+ return "mali-g71-power-model";
+ case GPU_ID2_PRODUCT_THEX:
+ return "mali-g72-power-model";
+ case GPU_ID2_PRODUCT_TNOX:
+ return "mali-g76-power-model";
+ case GPU_ID2_PRODUCT_TSIX:
+ return "mali-g51-power-model";
+ case GPU_ID2_PRODUCT_TGOX:
+ if ((gpu_id & GPU_ID2_VERSION_MAJOR) ==
+ (0 << GPU_ID2_VERSION_MAJOR_SHIFT))
+ /* g52 aliased to g76 power-model's ops */
+ return "mali-g52-power-model";
+ else
+ return "mali-g52_r1-power-model";
+ case GPU_ID2_PRODUCT_TNAX:
+ return "mali-tnax-power-model";
+ case GPU_ID2_PRODUCT_TTRX:
+ return "mali-g77-power-model";
+ case GPU_ID2_PRODUCT_TBEX:
+ return "mali-tbex-power-model";
+ default:
+ return KBASE_IPA_FALLBACK_MODEL_NAME;
}
-
- return KBASE_IPA_FALLBACK_MODEL_NAME;
}
KBASE_EXPORT_TEST_API(kbase_ipa_model_name_from_id);
diff --git a/mali_kbase/ipa/mali_kbase_ipa.h b/mali_kbase/ipa/mali_kbase_ipa.h
index 81cafc8..92aace9 100644
--- a/mali_kbase/ipa/mali_kbase_ipa.h
+++ b/mali_kbase/ipa/mali_kbase_ipa.h
@@ -209,6 +209,8 @@ extern const struct kbase_ipa_model_ops kbase_g52_ipa_model_ops;
extern const struct kbase_ipa_model_ops kbase_g52_r1_ipa_model_ops;
extern const struct kbase_ipa_model_ops kbase_g51_ipa_model_ops;
extern const struct kbase_ipa_model_ops kbase_g77_ipa_model_ops;
+extern const struct kbase_ipa_model_ops kbase_tnax_ipa_model_ops;
+extern const struct kbase_ipa_model_ops kbase_tbex_ipa_model_ops;
/**
* kbase_get_real_power() - get the real power consumption of the GPU
diff --git a/mali_kbase/ipa/mali_kbase_ipa_vinstr_g7x.c b/mali_kbase/ipa/mali_kbase_ipa_vinstr_g7x.c
index a3d1fae..270b75e 100644
--- a/mali_kbase/ipa/mali_kbase_ipa_vinstr_g7x.c
+++ b/mali_kbase/ipa/mali_kbase_ipa_vinstr_g7x.c
@@ -382,6 +382,39 @@ static const struct kbase_ipa_group ipa_groups_def_g77[] = {
},
};
+static const struct kbase_ipa_group ipa_groups_def_tbex[] = {
+ {
+ .name = "l2_access",
+ .default_value = 599800,
+ .op = kbase_g7x_sum_all_memsys_blocks,
+ .counter_block_offset = MEMSYS_L2_ANY_LOOKUP,
+ },
+ {
+ .name = "exec_instr_msg",
+ .default_value = 1830200,
+ .op = kbase_g7x_sum_all_shader_cores,
+ .counter_block_offset = SC_EXEC_INSTR_MSG,
+ },
+ {
+ .name = "exec_instr_fma",
+ .default_value = 407300,
+ .op = kbase_g7x_sum_all_shader_cores,
+ .counter_block_offset = SC_EXEC_INSTR_FMA,
+ },
+ {
+ .name = "tex_filt_num_operations",
+ .default_value = 224500,
+ .op = kbase_g7x_sum_all_shader_cores,
+ .counter_block_offset = SC_TEX_FILT_NUM_OPERATIONS,
+ },
+ {
+ .name = "gpu_active",
+ .default_value = 153800,
+ .op = kbase_g7x_jm_single_counter,
+ .counter_block_offset = JM_GPU_ACTIVE,
+ },
+};
+
#define IPA_POWER_MODEL_OPS(gpu, init_token) \
const struct kbase_ipa_model_ops kbase_ ## gpu ## _ipa_model_ops = { \
@@ -415,6 +448,9 @@ STANDARD_POWER_MODEL(g76, 800);
STANDARD_POWER_MODEL(g52_r1, 1000);
STANDARD_POWER_MODEL(g51, 1000);
STANDARD_POWER_MODEL(g77, 1000);
+STANDARD_POWER_MODEL(tbex, 1000);
/* g52 is an alias of g76 (TNOX) for IPA */
ALIAS_POWER_MODEL(g52, g76);
+/* tnax is an alias of g77 (TTRX) for IPA */
+ALIAS_POWER_MODEL(tnax, g77);