From 205fedb9a691850bf0bc32ac85b5635ef0205183 Mon Sep 17 00:00:00 2001 From: Mateusz Piesta Date: Wed, 10 May 2023 07:15:57 +0200 Subject: [PATCH] [BH-1595] USB reset procedure * Fixed incorrect reset procedure * Minor refactor --- module-bsp/board/linux/usb_cdc/usb_cdc.cpp | 10 ------- .../service-desktop/DesktopMessages.cpp | 13 ---------- .../service-desktop/ServiceDesktop.cpp | 4 +-- .../service-desktop/WorkerDesktop.cpp | 26 +++---------------- .../service-desktop/DesktopMessages.hpp | 14 ++-------- third-party/usb_stack | 2 +- 6 files changed, 8 insertions(+), 61 deletions(-) diff --git a/module-bsp/board/linux/usb_cdc/usb_cdc.cpp b/module-bsp/board/linux/usb_cdc/usb_cdc.cpp index 007fb4ac964945170b6e8dae87a7092dc726f2fc..76d3c7e81bb8eea7aa375243d6881c780deea948 100644 --- a/module-bsp/board/linux/usb_cdc/usb_cdc.cpp +++ b/module-bsp/board/linux/usb_cdc/usb_cdc.cpp @@ -156,16 +156,6 @@ namespace bsp vTaskDelete(taskHandleReceive); } - void usbReinit(const std::string &) - { - LOG_INFO("usbReinit"); - } - - void usbSuspend() - { - LOG_INFO("usbSuspend"); - } - int usbInit(const bsp::usbInitParams &initParams) { diff --git a/module-services/service-desktop/DesktopMessages.cpp b/module-services/service-desktop/DesktopMessages.cpp index 329741b993e3f78fdfbe505916165dcb7f976212..900b56128c9cd34625e50b261e97e65226454792 100644 --- a/module-services/service-desktop/DesktopMessages.cpp +++ b/module-services/service-desktop/DesktopMessages.cpp @@ -41,17 +41,4 @@ namespace sdesktop context.setResponseBody(json11::Json::object{{json::developerMode::cellularSleepModeInfo, isInSleepMode}}); } } // namespace developerMode - - namespace usb - { - USBConfigured::USBConfigured(USBConfigurationType configurationType) - : sys::DataMessage(MessageType::USBConfigured), configurationType(configurationType) - {} - - USBConfigurationType USBConfigured::getConfigurationType() const noexcept - { - return configurationType; - } - } // namespace usb - } // namespace sdesktop diff --git a/module-services/service-desktop/ServiceDesktop.cpp b/module-services/service-desktop/ServiceDesktop.cpp index 0de81c0e5ba531304cdf24ae464dd3e3a82b13f5..a42b2c4b26bc75f8cbc21205881bce6f81f8eb28 100644 --- a/module-services/service-desktop/ServiceDesktop.cpp +++ b/module-services/service-desktop/ServiceDesktop.cpp @@ -327,9 +327,7 @@ auto ServiceDesktop::handle(sdesktop::usb::USBConfigured *msg) -> std::shared_pt bus.sendUnicast(std::make_shared(), service::name::appmgr); } else { - auto message = static_cast(msg); - if (message->getConfigurationType() == sdesktop::usb::USBConfigurationType::firstConfiguration && - isPlugEventUnhandled) { + if (isPlugEventUnhandled) { bus.sendUnicast(std::make_shared(sys::phone_modes::Tethering::On), service::name::system_manager); isPlugEventUnhandled = false; diff --git a/module-services/service-desktop/WorkerDesktop.cpp b/module-services/service-desktop/WorkerDesktop.cpp index d726fdfd8a8926e5a47a29fffca3d359b0596ea2..ba268340ca2ec407e973adb1aaaa77099ed1c8a2 100644 --- a/module-services/service-desktop/WorkerDesktop.cpp +++ b/module-services/service-desktop/WorkerDesktop.cpp @@ -48,10 +48,10 @@ bool WorkerDesktop::init(std::list queues) auto sentinelRegistrationMsg = std::make_shared(cpuSentinel); ownerService->bus.sendUnicast(sentinelRegistrationMsg, service::name::system_manager); - bsp::usbInitParams initParams = { + const bsp::usbInitParams initParams = { receiveQueue, irqQueue, serialNumber, device_colour::getColourVersion(caseColour), rootPath}; - initialized = bsp::usbInit(initParams) >= 0; + initialized = bsp::usbInit(initParams) == 0; cpuSentinel->HoldMinimumFrequency(bsp::CpuFrequencyMHz::Level_4); @@ -202,18 +202,8 @@ bool WorkerDesktop::handleIrqQueueMessage(std::shared_ptr &que usbStatus = bsp::USBDeviceStatus::Connected; } else if (notification == bsp::USBDeviceStatus::Configured) { - if (usbStatus == bsp::USBDeviceStatus::Connected) { - LOG_DEBUG("USB status: First configuration"); - ownerService->bus.sendUnicast( - std::make_shared(sdesktop::usb::USBConfigurationType::firstConfiguration), - service::name::service_desktop); - } - else { - LOG_DEBUG("USB status: Reconfiguration"); - ownerService->bus.sendUnicast( - std::make_shared(sdesktop::usb::USBConfigurationType::reconfiguration), - service::name::service_desktop); - } + LOG_DEBUG("USB status: Configured"); + ownerService->bus.sendUnicast(std::make_shared(), service::name::service_desktop); usbStatus = bsp::USBDeviceStatus::Configured; } else if (notification == bsp::USBDeviceStatus::Disconnected) { @@ -227,14 +217,6 @@ bool WorkerDesktop::handleIrqQueueMessage(std::shared_ptr &que } else if (notification == bsp::USBDeviceStatus::Reset) { LOG_DEBUG("USB status: Reset"); - if (usbStatus == bsp::USBDeviceStatus::Configured) { - reset(); - } } return true; } - -void WorkerDesktop::suspendUsb() -{ - bsp::usbSuspend(); -} diff --git a/module-services/service-desktop/include/service-desktop/DesktopMessages.hpp b/module-services/service-desktop/include/service-desktop/DesktopMessages.hpp index d64408bcedbce3d434ab559e5d22815799209206..cffaccada98b349b9928a1e09f854899cd3a2c5a 100644 --- a/module-services/service-desktop/include/service-desktop/DesktopMessages.hpp +++ b/module-services/service-desktop/include/service-desktop/DesktopMessages.hpp @@ -46,12 +46,6 @@ namespace sdesktop namespace usb { - enum class USBConfigurationType - { - firstConfiguration, - reconfiguration - }; - class USBConnected : public sys::DataMessage { public: @@ -63,13 +57,9 @@ namespace sdesktop class USBConfigured : public sys::DataMessage { public: - explicit USBConfigured( - USBConfigurationType configurationType = sdesktop::usb::USBConfigurationType::firstConfiguration); + USBConfigured() : sys::DataMessage(MessageType::USBConfigured) + {} ~USBConfigured() override = default; - USBConfigurationType getConfigurationType() const noexcept; - - private: - USBConfigurationType configurationType; }; class USBDisconnected : public sys::DataMessage diff --git a/third-party/usb_stack b/third-party/usb_stack index 4344e3eccc83ebee901a029de0e4ed8e793a47ed..73de0692b672d7bf2ff8fb2423cd461c3e5fa024 160000 --- a/third-party/usb_stack +++ b/third-party/usb_stack @@ -1 +1 @@ -Subproject commit 4344e3eccc83ebee901a029de0e4ed8e793a47ed +Subproject commit 73de0692b672d7bf2ff8fb2423cd461c3e5fa024