diff options
author | Giuseppe Calderaro <giuseppe.calderaro@arm.com> | 2012-05-08 11:42:30 +0100 |
---|---|---|
committer | Dietmar Eggemann <dietmar.eggemann@arm.com> | 2012-05-23 12:44:35 +0100 |
commit | ac8fa6d075505948164798da1e4ec740288404d3 (patch) | |
tree | 925389a97248f13be451a8b08f6ecb9bbd677a1b | |
parent | 1772b54e21038c64850dfe8e33f79e691cec2e14 (diff) |
PMU_CONF_RESET_COUNTER was not enabling PMCR.E bit. Now fixed.
-rw-r--r-- | big-little/virtualisor/pmu_trap_handler.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/big-little/virtualisor/pmu_trap_handler.c b/big-little/virtualisor/pmu_trap_handler.c index 2aa28e3..7ebd8bf 100644 --- a/big-little/virtualisor/pmu_trap_handler.c +++ b/big-little/virtualisor/pmu_trap_handler.c @@ -256,6 +256,11 @@ static void handle_desc(struct descriptor *desc, break; case PMU_REQ_CONF_RESET_COUNTER: if (cluster_id == entry_cluster) { + /* Toggle global enable bit. */ + tmp = read_pmcr(); + tmp |= 1; + write_pmcr(tmp); + switch (selected_counter) { case PMU_CNT_CYCLE_COUNTER: write_pmccntr(reset_value); @@ -278,6 +283,8 @@ static void handle_desc(struct descriptor *desc, break; }; } else { + clusters_ctx[cluster_id][cpu_id][PMCR_IDX] |= 1; + switch (selected_counter) { case PMU_CNT_CYCLE_COUNTER: clusters_ctx |