diff options
Diffstat (limited to 'src/sim/voltage_domain.cc')
-rw-r--r-- | src/sim/voltage_domain.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/sim/voltage_domain.cc b/src/sim/voltage_domain.cc index b5673feda..2b16d04b9 100644 --- a/src/sim/voltage_domain.cc +++ b/src/sim/voltage_domain.cc @@ -54,9 +54,9 @@ VoltageDomain::VoltageDomain(const Params *p) // Voltages must be sorted in descending order. fatal_if(!std::is_sorted(voltageOpPoints.begin(), voltageOpPoints.end(), - std::greater_equal<Voltages::value_type>()), "DVFS: Voltage "\ - "operation points not in descending order for voltage domain "\ - "%s\n", name()); + std::greater<Voltages::value_type>()), "DVFS: Voltage operation "\ + "points not in descending order for voltage domain %s\n", + name()); } void @@ -66,6 +66,11 @@ VoltageDomain::perfLevel(PerfLevel perf_level) "DVFS: Requested voltage ID %d is outside the known "\ "range for domain %s.\n", perf_level, name()); + if (perf_level == _perfLevel) { + // Silently ignore identical overwrites + return; + } + _perfLevel = perf_level; DPRINTF(VoltageDomain, "Setting voltage to %.3fV idx: %d for domain %s\n", |