~aleteoryx/muditaos

205fedb9a691850bf0bc32ac85b5635ef0205183 — Mateusz Piesta 2 years ago a3b11ef
[BH-1595] USB reset procedure

* Fixed incorrect reset procedure
* Minor refactor
M module-bsp/board/linux/usb_cdc/usb_cdc.cpp => module-bsp/board/linux/usb_cdc/usb_cdc.cpp +0 -10
@@ 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)
    {


M module-services/service-desktop/DesktopMessages.cpp => module-services/service-desktop/DesktopMessages.cpp +0 -13
@@ 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

M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +1 -3
@@ 327,9 327,7 @@ auto ServiceDesktop::handle(sdesktop::usb::USBConfigured *msg) -> std::shared_pt
        bus.sendUnicast(std::make_shared<locks::UnlockPhone>(), service::name::appmgr);
    }
    else {
        auto message = static_cast<sdesktop::usb::USBConfigured *>(msg);
        if (message->getConfigurationType() == sdesktop::usb::USBConfigurationType::firstConfiguration &&
            isPlugEventUnhandled) {
        if (isPlugEventUnhandled) {
            bus.sendUnicast(std::make_shared<sys::TetheringStateRequest>(sys::phone_modes::Tethering::On),
                            service::name::system_manager);
            isPlugEventUnhandled = false;

M module-services/service-desktop/WorkerDesktop.cpp => module-services/service-desktop/WorkerDesktop.cpp +4 -22
@@ 48,10 48,10 @@ bool WorkerDesktop::init(std::list<sys::WorkerQueueInfo> queues)
    auto sentinelRegistrationMsg = std::make_shared<sys::SentinelRegistrationMessage>(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<sys::WorkerQueue> &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::USBConfigured>(sdesktop::usb::USBConfigurationType::firstConfiguration),
                service::name::service_desktop);
        }
        else {
            LOG_DEBUG("USB status: Reconfiguration");
            ownerService->bus.sendUnicast(
                std::make_shared<sdesktop::usb::USBConfigured>(sdesktop::usb::USBConfigurationType::reconfiguration),
                service::name::service_desktop);
        }
        LOG_DEBUG("USB status: Configured");
        ownerService->bus.sendUnicast(std::make_shared<sdesktop::usb::USBConfigured>(), service::name::service_desktop);
        usbStatus = bsp::USBDeviceStatus::Configured;
    }
    else if (notification == bsp::USBDeviceStatus::Disconnected) {


@@ 227,14 217,6 @@ bool WorkerDesktop::handleIrqQueueMessage(std::shared_ptr<sys::WorkerQueue> &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();
}

M module-services/service-desktop/include/service-desktop/DesktopMessages.hpp => module-services/service-desktop/include/service-desktop/DesktopMessages.hpp +2 -12
@@ 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

M third-party/usb_stack => third-party/usb_stack +1 -1
@@ 1,1 1,1 @@
Subproject commit 4344e3eccc83ebee901a029de0e4ed8e793a47ed
Subproject commit 73de0692b672d7bf2ff8fb2423cd461c3e5fa024