mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-05-24 08:35:35 -04:00
[EGD-7922] Added Permanent Frequency Setting
Added Permanent Frequency setting in Advanced Developer Mode with simple set window.
This commit is contained in:
committed by
Przemysław Brudny
parent
d8fc8f9f90
commit
7f9bc6bf6f
@@ -570,6 +570,13 @@ namespace sys
|
||||
return sys::MessageNone{};
|
||||
});
|
||||
|
||||
connect(typeid(sys::SentinelRemovalMessage), [this](sys::Message *message) -> sys::MessagePointer {
|
||||
auto msg = static_cast<sys::SentinelRemovalMessage *>(message);
|
||||
powerManager->RemoveSentinel(msg->getSentinelName());
|
||||
|
||||
return sys::MessageNone{};
|
||||
});
|
||||
|
||||
connect(typeid(sys::HoldCpuFrequencyMessage), [this](sys::Message *message) -> sys::MessagePointer {
|
||||
auto msg = static_cast<sys::HoldCpuFrequencyMessage *>(message);
|
||||
powerManager->SetCpuFrequencyRequest(msg->getName(), msg->getRequest());
|
||||
@@ -584,6 +591,19 @@ namespace sys
|
||||
return sys::MessageNone{};
|
||||
});
|
||||
|
||||
connect(typeid(sys::HoldCpuFrequencyPermanentlyMessage), [this](sys::Message *message) -> sys::MessagePointer {
|
||||
auto msg = static_cast<sys::HoldCpuFrequencyPermanentlyMessage *>(message);
|
||||
powerManager->SetCpuFrequencyRequest(msg->getName(), msg->getRequest(), true);
|
||||
|
||||
return sys::MessageNone{};
|
||||
});
|
||||
|
||||
connect(typeid(sys::ReleaseCpuPermanentFrequencyMessage), [this](sys::Message *message) -> sys::MessagePointer {
|
||||
auto msg = static_cast<sys::ReleaseCpuPermanentFrequencyMessage *>(message);
|
||||
powerManager->ResetCpuFrequencyRequest(msg->getName(), true);
|
||||
return sys::MessageNone{};
|
||||
});
|
||||
|
||||
connect(typeid(app::manager::CheckIfStartAllowedMessage), [this](sys::Message *) -> sys::MessagePointer {
|
||||
switch (Store::Battery::get().levelState) {
|
||||
case Store::Battery::LevelState::Normal:
|
||||
@@ -612,7 +632,7 @@ namespace sys
|
||||
deviceManager->RegisterNewDevice(powerManager->getExternalRamDevice());
|
||||
|
||||
cpuSentinel = std::make_shared<sys::CpuSentinel>(
|
||||
service::name::system_manager, this, [this](bsp::CpuFrequencyHz newFrequency) {
|
||||
service::name::system_manager, this, [this](bsp::CpuFrequencyMHz newFrequency) {
|
||||
UpdateResourcesAfterCpuFrequencyChange(newFrequency);
|
||||
});
|
||||
powerManager->RegisterNewSentinel(cpuSentinel);
|
||||
@@ -699,9 +719,9 @@ namespace sys
|
||||
powerManager->UpdateCpuFrequency(cpuStatistics->GetPercentageCpuLoad());
|
||||
}
|
||||
|
||||
void SystemManagerCommon::UpdateResourcesAfterCpuFrequencyChange(bsp::CpuFrequencyHz newFrequency)
|
||||
void SystemManagerCommon::UpdateResourcesAfterCpuFrequencyChange(bsp::CpuFrequencyMHz newFrequency)
|
||||
{
|
||||
if (newFrequency <= bsp::CpuFrequencyHz::Level_1) {
|
||||
if (newFrequency <= bsp::CpuFrequencyMHz::Level_1) {
|
||||
purefs::subsystem::disk_mgr()->pm_control(purefs::blkdev::pm_state::suspend);
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user