M module-bsp/board/rt1051/bsp/lpm/RT1051LPMCommon.cpp => module-bsp/board/rt1051/bsp/lpm/RT1051LPMCommon.cpp +1 -4
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "RT1051LPMCommon.hpp"
@@ 46,9 46,6 @@ namespace bsp
case RebootType::GoToRecoveryRestore:
set_boot_reason(boot_reason_code_restore);
break;
- case RebootType::GoToUsbMscMode:
- set_boot_reason(boot_reason_code_usb_mc_mode);
- break;
case RebootType::NormalRestart:
set_boot_reason(boot_reason_code_os);
break;
M module-bsp/bsp/lpm/bsp_lpm.hpp => module-bsp/bsp/lpm/bsp_lpm.hpp +0 -1
@@ 26,7 26,6 @@ namespace bsp
enum class RebootType
{
NormalRestart,
- GoToUsbMscMode, // Reboot into USB MSC mode
GoToRecoveryUpdate, //! Goto recovery into the update mode
GoToRecoveryFactoryReset, //! GOto recovery into the factory reset mode
GoToRecoveryRecovery, //! Goto to recovery into recovery mode
M module-services/service-desktop/endpoints/include/endpoints/JsonKeyNames.hpp => module-services/service-desktop/endpoints/include/endpoints/JsonKeyNames.hpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 40,7 40,6 @@ namespace sdesktop::endpoints::json
inline constexpr auto state = "state";
inline constexpr auto success = "success";
inline constexpr auto reboot = "reboot";
- inline constexpr auto rebootMode = "rebootMode";
inline constexpr auto request = "request";
inline constexpr auto restore = "restore";
inline constexpr auto finished = "finished";
M module-services/service-desktop/endpoints/include/endpoints/update/UpdateHelper.hpp => module-services/service-desktop/endpoints/include/endpoints/update/UpdateHelper.hpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 15,7 15,6 @@ namespace sdesktop::endpoints
explicit UpdateHelper(sys::Service *p);
auto processPost(Context &context) -> ProcessResult final;
- auto processPut(Context &context) -> ProcessResult final;
void preProcess(http::Method method, Context &context) final;
private:
M module-services/service-desktop/endpoints/update/UpdateHelper.cpp => module-services/service-desktop/endpoints/update/UpdateHelper.cpp +2 -13
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <service-desktop/Constants.hpp>
@@ 165,7 165,7 @@ namespace sdesktop::endpoints
{
const auto &body = context.getBody();
- if (!(body[json::update] == true && body[json::reboot] == true)) {
+ if (body[json::update] != true || body[json::reboot] != true) {
return {sent::no, ResponseContext{.status = http::Code::BadRequest}};
}
@@ 194,17 194,6 @@ namespace sdesktop::endpoints
return {sent::no, ResponseContext{.status = http::Code::InternalServerError}};
}
- auto UpdateHelper::processPut(Context &context) -> ProcessResult
- {
- const auto &body = context.getBody();
- auto code = http::Code::BadRequest;
- if (body[json::rebootMode] == json::usbMscMode) {
- code = sys::SystemManagerCommon::RebootToUsbMscMode(owner) ? http::Code::NoContent
- : http::Code::InternalServerError;
- }
-
- return {sent::no, ResponseContext{.status = code}};
- }
UpdateHelper::UpdateHelper(sys::Service *p)
: BaseHelper(p), updatePackagePath{purefs::dir::getTemporaryPath() / "update"}, binariesPath{get_binary_dir()}
{}
M module-sys/SystemManager/PowerManager.cpp => module-sys/SystemManager/PowerManager.cpp +1 -6
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "SystemManager/cpu/algorithm/FrequencyHold.hpp"
@@ 84,11 84,6 @@ namespace sys
return lowPowerControl->Reboot(bsp::LowPowerMode::RebootType::NormalRestart);
}
- int32_t PowerManager::RebootToUsbMscMode()
- {
- return lowPowerControl->Reboot(bsp::LowPowerMode::RebootType::GoToUsbMscMode);
- }
-
int32_t PowerManager::RebootToRecovery(RecoveryReason reason)
{
switch (reason) {
M module-sys/SystemManager/SystemManagerCommon.cpp => module-sys/SystemManager/SystemManagerCommon.cpp +15 -37
@@ 133,9 133,6 @@ namespace sys
case SystemManagerCommon::State::ShutdownReady:
LOG_INFO(" ---> SHUTDOWN <--- ");
break;
- case SystemManagerCommon::State::RebootToUsbMscMode:
- LOG_INFO(" ---> REBOOT TO USB MSC Mode <--- ");
- break;
case SystemManagerCommon::State::RebootToRecovery:
LOG_INFO(" ---> REBOOT TO RECOVERY <--- ");
break;
@@ 157,9 154,6 @@ namespace sys
case State::ShutdownReady:
powerManager->PowerOff();
break;
- case State::RebootToUsbMscMode:
- powerManager->RebootToUsbMscMode();
- break;
case State::RebootToRecovery:
powerManager->RebootToRecovery(recoveryReason);
break;
@@ 294,13 288,6 @@ namespace sys
return true;
}
- bool SystemManagerCommon::RebootToUsbMscMode(Service *s)
- {
- s->bus.sendUnicast(std::make_shared<SystemManagerCmd>(Code::RebootToUsbMscMode, CloseReason::Reboot),
- service::name::system_manager);
- return true;
- }
-
bool SystemManagerCommon::RebootToRecovery(Service *s, RecoveryReason recoveryReason)
{
s->bus.sendUnicast(
@@ 311,13 298,13 @@ namespace sys
bool SystemManagerCommon::SuspendService(const std::string &name, sys::Service *caller)
{
- auto ret = caller->bus.sendUnicastSync(
+ const auto ret = caller->bus.sendUnicastSync(
std::make_shared<SystemMessage>(SystemMessageType::SwitchPowerMode, ServicePowerMode::SuspendToRAM),
name,
1000);
- auto resp = std::static_pointer_cast<ResponseMessage>(ret.second);
+ const auto resp = std::static_pointer_cast<ResponseMessage>(ret.second);
- if (ret.first != ReturnCodes::Success && (resp->retCode != ReturnCodes::Success)) {
+ if ((ret.first != ReturnCodes::Success) && (resp->retCode != ReturnCodes::Success)) {
LOG_FATAL("Service %s failed to enter low-power mode", name.c_str());
}
return true;
@@ 325,11 312,11 @@ namespace sys
bool SystemManagerCommon::ResumeService(const std::string &name, sys::Service *caller)
{
- auto ret = caller->bus.sendUnicastSync(
+ const auto ret = caller->bus.sendUnicastSync(
std::make_shared<SystemMessage>(SystemMessageType::SwitchPowerMode, ServicePowerMode::Active), name, 1000);
- auto resp = std::static_pointer_cast<ResponseMessage>(ret.second);
+ const auto resp = std::static_pointer_cast<ResponseMessage>(ret.second);
- if (ret.first != ReturnCodes::Success && (resp->retCode != ReturnCodes::Success)) {
+ if ((ret.first != ReturnCodes::Success) && (resp->retCode != ReturnCodes::Success)) {
LOG_FATAL("Service %s failed to exit low-power mode", name.c_str());
}
return true;
@@ 339,14 326,11 @@ namespace sys
{
service->StartService();
- auto msg = std::make_shared<SystemMessage>(SystemMessageType::Start);
- auto ret = caller->bus.sendUnicastSync(msg, service->GetName(), timeout);
- auto resp = std::static_pointer_cast<ResponseMessage>(ret.second);
+ const auto msg = std::make_shared<SystemMessage>(SystemMessageType::Start);
+ const auto ret = caller->bus.sendUnicastSync(msg, service->GetName(), timeout);
+ const auto resp = std::static_pointer_cast<ResponseMessage>(ret.second);
- if (ret.first == ReturnCodes::Success && (resp->retCode == ReturnCodes::Success)) {
- return true;
- }
- return false;
+ return ((ret.first == ReturnCodes::Success) && (resp->retCode == ReturnCodes::Success));
}
bool SystemManagerCommon::RunSystemService(std::shared_ptr<Service> service, Service *caller, TickType_t timeout)
@@ 575,9 559,6 @@ namespace sys
case Code::Reboot:
RebootHandler();
break;
- case Code::RebootToUsbMscMode:
- RebootToUsbMscModeHandler(State::RebootToUsbMscMode);
- break;
case Code::RebootToRecovery:
case Code::FactoryReset:
RebootToRecoveryHandler(data->closeReason, data->recoveryReason);
@@ 597,9 578,13 @@ namespace sys
return MessageNone{};
});
+ /* Workaround for hardware issues with power supply. With USB cable connected the phone cannot
+ * restart, so detect such state and perform reboot when right function button is pressed.
+ * This way for the user the behavior looks as if the phone was normally turned on from shutdown
+ * state. */
connect(sevm::KbdMessage(), [&](Message *) {
- // we are in shutdown mode - we received that there was red key pressed -> we need to reboot
if (state == State::Shutdown) {
+ LOG_INFO("Rebooting phone after shutdown with USB connected...");
set(State::Reboot);
}
return MessageNone{};
@@ 730,7 715,6 @@ namespace sys
case CloseReason::RegularPowerDown:
case CloseReason::SystemBrownout:
case CloseReason::LowBattery:
- case CloseReason::RebootToUsbMscMode:
DestroyServices(sys::state::regularClose::whitelist);
set(State::Shutdown);
break;
@@ 773,12 757,6 @@ namespace sys
this->recoveryReason = recoveryReason;
}
- void SystemManagerCommon::RebootToUsbMscModeHandler(State newState)
- {
- CloseSystemHandler(CloseReason::RebootToUsbMscMode);
- set(newState);
- }
-
void SystemManagerCommon::FreqUpdateTick()
{
if (!cpuStatisticsTimerInit) {
M module-sys/SystemManager/include/SystemManager/PowerManager.hpp => module-sys/SystemManager/include/SystemManager/PowerManager.hpp +2 -7
@@ 1,8 1,7 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-#ifndef PUREPHONE_POWERMANAGER_HPP
-#define PUREPHONE_POWERMANAGER_HPP
+#pragma once
#include <functional>
@@ 50,7 49,6 @@ namespace sys
int32_t PowerOff();
int32_t Reboot();
- int32_t RebootToUsbMscMode();
int32_t RebootToRecovery(RecoveryReason reason);
/// called periodically to calculate the CPU requirement
@@ 74,7 72,6 @@ namespace sys
void LogPowerManagerStatistics();
private:
- void ResetFrequencyShiftCounter();
void SetCpuFrequency(bsp::CpuFrequencyMHz freq);
void UpdateCpuFrequencyMonitor(bsp::CpuFrequencyMHz currentFreq);
@@ 95,5 92,3 @@ namespace sys
};
} // namespace sys
-
-#endif // PUREPHONE_POWERMANAGER_HPP
M module-sys/SystemManager/include/SystemManager/SystemManagerCommon.hpp => module-sys/SystemManager/include/SystemManager/SystemManagerCommon.hpp +2 -10
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 43,7 43,6 @@ namespace sys
Restore,
Reboot,
RebootToRecovery,
- RebootToUsbMscMode,
FactoryReset,
None,
};
@@ 81,8 80,7 @@ namespace sys
Shutdown,
ShutdownReady,
Reboot,
- RebootToRecovery,
- RebootToUsbMscMode
+ RebootToRecovery
} state = State::Running;
explicit SystemManagerCommon(std::vector<std::unique_ptr<BaseServiceCreator>> &&creators);
@@ 100,8 98,6 @@ namespace sys
static bool Reboot(Service *s);
- static bool RebootToUsbMscMode(Service *s);
-
static bool RebootToRecovery(Service *s, RecoveryReason recoveryReason);
static bool SuspendService(const std::string &name, Service *caller);
@@ 186,8 182,6 @@ namespace sys
void RebootToRecoveryHandler(CloseReason closeReason, RecoveryReason recoveryReason);
- void RebootToUsbMscModeHandler(State newState);
-
void FreqUpdateTick();
/// used for power management control for the filesystem
@@ 234,8 228,6 @@ inline const char *c_str(sys::SystemManagerCommon::State state)
return "Reboot";
case sys::SystemManagerCommon::State::RebootToRecovery:
return "RebootToRecovery";
- case sys::SystemManagerCommon::State::RebootToUsbMscMode:
- return "RebootToUsbMscModeUpdate";
case sys::SystemManagerCommon::State::ShutdownReady:
return "ShutdownReady";
}
M module-sys/common/include/system/Common.hpp => module-sys/common/include/system/Common.hpp +1 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 50,7 50,6 @@ namespace sys
RegularPowerDown,
Reboot,
RebootToRecovery,
- RebootToUsbMscMode,
FactoryReset,
SystemBrownout,
LowBattery
M test/harness => test/harness +1 -1
@@ 1,1 1,1 @@
-Subproject commit 8caddc3251a53173d4f470e47fca16d1e6a580c0
+Subproject commit 4da3642f7f1306c5d282f68d037bc7c260874ef1