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<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 |
69 if (perf_level == _perfLevel) { 70 // Silently ignore identical overwrites 71 return; 72 } 73 |
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 --- |