voltage_domain.cc (10249:6bbb7ae309ac) voltage_domain.cc (10395:77b9f96786c1)
1/*
2 * Copyright (c) 2012-2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 40 unchanged lines hidden (view full) ---

49VoltageDomain::VoltageDomain(const Params *p)
50 : SimObject(p), voltageOpPoints(p->voltage), _perfLevel(0)
51{
52 fatal_if(voltageOpPoints.empty(), "DVFS: Empty set of voltages for "\
53 "voltage domain %s\n", name());
54
55 // Voltages must be sorted in descending order.
56 fatal_if(!std::is_sorted(voltageOpPoints.begin(), voltageOpPoints.end(),
1/*
2 * Copyright (c) 2012-2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 40 unchanged lines hidden (view full) ---

49VoltageDomain::VoltageDomain(const Params *p)
50 : SimObject(p), voltageOpPoints(p->voltage), _perfLevel(0)
51{
52 fatal_if(voltageOpPoints.empty(), "DVFS: Empty set of voltages for "\
53 "voltage domain %s\n", name());
54
55 // Voltages must be sorted in descending order.
56 fatal_if(!std::is_sorted(voltageOpPoints.begin(), voltageOpPoints.end(),
57 std::greater_equal<Voltages::value_type>()), "DVFS: Voltage "\
58 "operation points not in descending order for voltage domain "\
59 "%s\n", name());
57 std::greater<Voltages::value_type>()), "DVFS: Voltage operation "\
58 "points not in descending order for voltage domain %s\n",
59 name());
60}
61
62void
63VoltageDomain::perfLevel(PerfLevel perf_level)
64{
65 chatty_assert(perf_level < voltageOpPoints.size(),
66 "DVFS: Requested voltage ID %d is outside the known "\
67 "range for domain %s.\n", perf_level, name());
68
60}
61
62void
63VoltageDomain::perfLevel(PerfLevel perf_level)
64{
65 chatty_assert(perf_level < voltageOpPoints.size(),
66 "DVFS: Requested voltage ID %d is outside the known "\
67 "range for domain %s.\n", perf_level, name());
68
69 if (perf_level == _perfLevel) {
70 // Silently ignore identical overwrites
71 return;
72 }
73
69 _perfLevel = perf_level;
70
71 DPRINTF(VoltageDomain, "Setting voltage to %.3fV idx: %d for domain %s\n",
72 voltage(), perf_level, name());
73}
74
75bool
76VoltageDomain::sanitiseVoltages()

--- 72 unchanged lines hidden ---
74 _perfLevel = perf_level;
75
76 DPRINTF(VoltageDomain, "Setting voltage to %.3fV idx: %d for domain %s\n",
77 voltage(), perf_level, name());
78}
79
80bool
81VoltageDomain::sanitiseVoltages()

--- 72 unchanged lines hidden ---