From 744f214f4070b0b2ad312049e37a6994f2081a05 Mon Sep 17 00:00:00 2001 From: Ricky Niu Date: Tue, 31 Jan 2023 18:01:06 +0800 Subject: [PATCH] Add resetCb Add the resetCb to complete asynchronous Bug: 267252826 Test: Boot to home and function work Change-Id: I9d6624cbe15c86c63e28f8f176d7c560aed8446f --- usb/gadget/UsbGadget.cpp | 9 ++++++++- usb/gadget/UsbGadget.h | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/usb/gadget/UsbGadget.cpp b/usb/gadget/UsbGadget.cpp index d0e16ee5..7ee70460 100644 --- a/usb/gadget/UsbGadget.cpp +++ b/usb/gadget/UsbGadget.cpp @@ -336,11 +336,14 @@ static Status validateAndSetVidPid(int64_t functions) { return ret; } -ScopedAStatus UsbGadget::reset() { +ScopedAStatus UsbGadget::reset(const shared_ptr &callback, + int64_t in_transactionId) { ALOGI("USB Gadget reset"); if (!WriteStringToFile("none", PULLUP_PATH)) { ALOGI("Gadget cannot be pulled down"); + if (callback) + callback->resetCb(Status::ERROR, in_transactionId); return ScopedAStatus::fromServiceSpecificErrorWithMessage( -1, "Gadget cannot be pulled down"); } @@ -349,9 +352,13 @@ ScopedAStatus UsbGadget::reset() { if (!WriteStringToFile(kGadgetName, PULLUP_PATH)) { ALOGI("Gadget cannot be pulled up"); + if (callback) + callback->resetCb(Status::ERROR, in_transactionId); return ScopedAStatus::fromServiceSpecificErrorWithMessage( -1, "Gadget cannot be pulled up"); } + if (callback) + callback->resetCb(Status::SUCCESS, in_transactionId); return ScopedAStatus::ok(); } diff --git a/usb/gadget/UsbGadget.h b/usb/gadget/UsbGadget.h index d7e20a6c..59759308 100644 --- a/usb/gadget/UsbGadget.h +++ b/usb/gadget/UsbGadget.h @@ -107,7 +107,8 @@ struct UsbGadget : public BnUsbGadget { ScopedAStatus getCurrentUsbFunctions(const shared_ptr &callback, int64_t in_transactionId) override; - ScopedAStatus reset() override; + ScopedAStatus reset(const shared_ptr &callback, + int64_t in_transactionId) override; ScopedAStatus getUsbSpeed(const shared_ptr &callback, int64_t in_transactionId) override;