summaryrefslogtreecommitdiff
path: root/mali_kbase/ipa
diff options
context:
space:
mode:
authorSiddharth Kapoor <ksiddharth@google.com>2022-01-07 19:09:01 +0800
committerSiddharth Kapoor <ksiddharth@google.com>2022-01-07 19:09:01 +0800
commit0207d6c3b7a2002f15c60d08617e956faf5ba90c (patch)
treeeae0afe608a70b25f64e959db2b782fb33f89160 /mali_kbase/ipa
parent0c596dc70431fa2c70021fa1685e3efc969a852d (diff)
downloadgpu-0207d6c3b7a2002f15c60d08617e956faf5ba90c.tar.gz
Mali Valhall Android DDK r35p0 KMD
Provenance: 3e260085ac (collaborate/EAC/v_r35p0) VX504X08X-BU-00000-r35p0-01eac0 - Valhall Android DDK VX504X08X-BU-60000-r35p0-01eac0 - Valhall Android Document Bundle VX504X08X-DC-11001-r35p0-01eac0 - Valhall Android DDK Software Errata VX504X08X-SW-99006-r35p0-01eac0 - Valhall Android Renderscript AOSP parts Signed-off-by: Siddharth Kapoor <ksiddharth@google.com> Change-Id: Id9ef73da49680e2935a827c40d54169545f7162e
Diffstat (limited to 'mali_kbase/ipa')
-rw-r--r--mali_kbase/ipa/backend/mali_kbase_ipa_counter_jm.c9
-rw-r--r--mali_kbase/ipa/mali_kbase_ipa.c16
2 files changed, 25 insertions, 0 deletions
diff --git a/mali_kbase/ipa/backend/mali_kbase_ipa_counter_jm.c b/mali_kbase/ipa/backend/mali_kbase_ipa_counter_jm.c
index 2f4c9d9..e095986 100644
--- a/mali_kbase/ipa/backend/mali_kbase_ipa_counter_jm.c
+++ b/mali_kbase/ipa/backend/mali_kbase_ipa_counter_jm.c
@@ -24,6 +24,9 @@
#include "mali_kbase_ipa_counter_common_jm.h"
#include "mali_kbase.h"
+#if IS_ENABLED(CONFIG_MALI_NO_MALI)
+#include <backend/gpu/mali_kbase_model_dummy.h>
+#endif /* CONFIG_MALI_NO_MALI */
/* Performance counter blocks base offsets */
#define JM_BASE (0 * KBASE_IPA_NR_BYTES_PER_BLOCK)
@@ -94,9 +97,15 @@ static u32 kbase_g7x_power_model_get_memsys_counter(struct kbase_ipa_model_vinst
static u32 kbase_g7x_power_model_get_sc_counter(struct kbase_ipa_model_vinstr_data *model_data,
u32 counter_block_offset)
{
+#if IS_ENABLED(CONFIG_MALI_NO_MALI)
+ const u32 sc_base = MEMSYS_BASE +
+ (KBASE_DUMMY_MODEL_MAX_MEMSYS_BLOCKS *
+ KBASE_IPA_NR_BYTES_PER_BLOCK);
+#else
const u32 sc_base = MEMSYS_BASE +
(model_data->kbdev->gpu_props.props.l2_props.num_l2_slices *
KBASE_IPA_NR_BYTES_PER_BLOCK);
+#endif
return sc_base + counter_block_offset;
}
diff --git a/mali_kbase/ipa/mali_kbase_ipa.c b/mali_kbase/ipa/mali_kbase_ipa.c
index 8b05e68..c0c0cbb 100644
--- a/mali_kbase/ipa/mali_kbase_ipa.c
+++ b/mali_kbase/ipa/mali_kbase_ipa.c
@@ -537,18 +537,34 @@ static void opp_translate_freq_voltage(struct kbase_device *kbdev,
unsigned long *freqs,
unsigned long *volts)
{
+#if IS_ENABLED(CONFIG_MALI_NO_MALI)
+ /* An arbitrary voltage and frequency value can be chosen for testing
+ * in no mali configuration which may not match with any OPP level.
+ */
+ freqs[KBASE_IPA_BLOCK_TYPE_TOP_LEVEL] = nominal_freq;
+ volts[KBASE_IPA_BLOCK_TYPE_TOP_LEVEL] = nominal_voltage;
+
+ freqs[KBASE_IPA_BLOCK_TYPE_SHADER_CORES] = nominal_freq;
+ volts[KBASE_IPA_BLOCK_TYPE_SHADER_CORES] = nominal_voltage;
+#else
u64 core_mask;
+ unsigned int i;
kbase_devfreq_opp_translate(kbdev, nominal_freq, &core_mask,
freqs, volts);
CSTD_UNUSED(core_mask);
+ /* Convert micro volts to milli volts */
+ for (i = 0; i < kbdev->nr_clocks; i++)
+ volts[i] /= 1000;
+
if (kbdev->nr_clocks == 1) {
freqs[KBASE_IPA_BLOCK_TYPE_SHADER_CORES] =
freqs[KBASE_IPA_BLOCK_TYPE_TOP_LEVEL];
volts[KBASE_IPA_BLOCK_TYPE_SHADER_CORES] =
volts[KBASE_IPA_BLOCK_TYPE_TOP_LEVEL];
}
+#endif
}
#if KERNEL_VERSION(5, 10, 0) > LINUX_VERSION_CODE