| 133 | } |
| 134 | |
| 135 | HalPowerManager::Lock::Lock() { |
| 136 | xSemaphoreTake(powerManager.modeMutex, portMAX_DELAY); |
| 137 | // Current limitation: only one lock at a time |
| 138 | if (powerManager.currentLockMode != None) { |
| 139 | LOG_ERR("PWR", "Lock already held, ignore"); |
| 140 | valid = false; |
| 141 | } else { |
| 142 | powerManager.currentLockMode = NormalSpeed; |
| 143 | valid = true; |
| 144 | } |
| 145 | xSemaphoreGive(powerManager.modeMutex); |
| 146 | if (valid) { |
| 147 | // Immediately restore normal CPU frequency if currently in low-power mode |
| 148 | powerManager.setPowerSaving(false); |
| 149 | } |
| 150 | } |
| 151 | |
| 152 | HalPowerManager::Lock::~Lock() { |
| 153 | xSemaphoreTake(powerManager.modeMutex, portMAX_DELAY); |
no test coverage detected