mirror of
https://github.com/Evolution-X-Devices/device_google_wahoo
synced 2026-01-27 17:09:46 +00:00
Update USB Gadget HAL to V1.1 implementation
Bug: 138702846 Test: build pass, function works Change-Id: I80c295a73aa982b09c81b7cbc3f3a1003c273101
This commit is contained in:
18
manifest.xml
18
manifest.xml
@@ -292,24 +292,6 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.usb</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.1</version>
|
||||
<interface>
|
||||
<name>IUsb</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.usb.gadget</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IUsbGadget</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.weaver</name>
|
||||
<transport>hwbinder</transport>
|
||||
|
||||
@@ -16,6 +16,10 @@ cc_binary {
|
||||
name: "android.hardware.usb@1.1-service.wahoo",
|
||||
relative_install_path: "hw",
|
||||
init_rc: ["android.hardware.usb@1.1-service.wahoo.rc"],
|
||||
vintf_fragments: [
|
||||
"android.hardware.usb@1.1-service.wahoo.xml",
|
||||
"android.hardware.usb.gadget@1.1-service.wahoo.xml",
|
||||
],
|
||||
srcs: ["service.cpp", "Usb.cpp", "UsbGadget.cpp"],
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
@@ -26,6 +30,7 @@ cc_binary {
|
||||
"android.hardware.usb@1.0",
|
||||
"android.hardware.usb@1.1",
|
||||
"android.hardware.usb.gadget@1.0",
|
||||
"android.hardware.usb.gadget@1.1",
|
||||
"libcutils",
|
||||
],
|
||||
proprietary: true,
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#define LOG_TAG "android.hardware.usb.gadget@1.0-service.wahoo"
|
||||
#define LOG_TAG "android.hardware.usb.gadget@1.1-service.wahoo"
|
||||
|
||||
#include "UsbGadget.h"
|
||||
#include <dirent.h>
|
||||
@@ -57,7 +57,7 @@ namespace android {
|
||||
namespace hardware {
|
||||
namespace usb {
|
||||
namespace gadget {
|
||||
namespace V1_0 {
|
||||
namespace V1_1 {
|
||||
namespace implementation {
|
||||
|
||||
volatile bool gadgetPullup;
|
||||
@@ -258,6 +258,15 @@ V1_0::Status UsbGadget::tearDownGadget() {
|
||||
return Status::SUCCESS;
|
||||
}
|
||||
|
||||
Return<Status> UsbGadget::reset() {
|
||||
if (!WriteStringToFile("none", PULLUP_PATH)) {
|
||||
ALOGI("Gadget cannot be pulled down");
|
||||
return Status::ERROR;
|
||||
}
|
||||
|
||||
return Status::SUCCESS;
|
||||
}
|
||||
|
||||
static int linkFunction(const char *function, int index) {
|
||||
char functionPath[MAX_FILE_PATH_LENGTH];
|
||||
char link[MAX_FILE_PATH_LENGTH];
|
||||
@@ -645,7 +654,7 @@ error:
|
||||
return Void();
|
||||
}
|
||||
} // namespace implementation
|
||||
} // namespace V1_0
|
||||
} // namespace V1_1
|
||||
} // namespace gadget
|
||||
} // namespace usb
|
||||
} // namespace hardware
|
||||
|
||||
@@ -14,29 +14,28 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_HARDWARE_USB_GADGET_V1_0_USBGADGET_H
|
||||
#define ANDROID_HARDWARE_USB_GADGET_V1_0_USBGADGET_H
|
||||
#pragma once
|
||||
|
||||
#include <android-base/file.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android-base/unique_fd.h>
|
||||
#include <android/hardware/usb/gadget/1.0/IUsbGadget.h>
|
||||
#include <android/hardware/usb/gadget/1.1/IUsbGadget.h>
|
||||
#include <hidl/MQDescriptor.h>
|
||||
#include <hidl/Status.h>
|
||||
#include <string>
|
||||
#include <sys/epoll.h>
|
||||
#include <sys/eventfd.h>
|
||||
#include <thread>
|
||||
#include <utils/Log.h>
|
||||
#include <chrono>
|
||||
#include <condition_variable>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
#include <thread>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace usb {
|
||||
namespace gadget {
|
||||
namespace V1_0 {
|
||||
namespace V1_1 {
|
||||
namespace implementation {
|
||||
|
||||
using ::android::sp;
|
||||
@@ -50,6 +49,9 @@ using ::android::hardware::hidl_string;
|
||||
using ::android::hardware::hidl_vec;
|
||||
using ::android::hardware::Return;
|
||||
using ::android::hardware::Void;
|
||||
using ::android::hardware::usb::gadget::V1_0::GadgetFunction;
|
||||
using ::android::hardware::usb::gadget::V1_0::Status;
|
||||
using ::android::hardware::usb::gadget::V1_1::IUsbGadget;
|
||||
using ::std::lock_guard;
|
||||
using ::std::move;
|
||||
using ::std::mutex;
|
||||
@@ -78,24 +80,22 @@ struct UsbGadget : public IUsbGadget {
|
||||
bool mCurrentUsbFunctionsApplied;
|
||||
|
||||
Return<void> setCurrentUsbFunctions(uint64_t functions,
|
||||
const sp<IUsbGadgetCallback>& callback,
|
||||
const sp<V1_0::IUsbGadgetCallback> &callback,
|
||||
uint64_t timeout) override;
|
||||
|
||||
Return<void> getCurrentUsbFunctions(
|
||||
const sp<IUsbGadgetCallback>& callback) override;
|
||||
Return<void> getCurrentUsbFunctions(const sp<V1_0::IUsbGadgetCallback> &callback) override;
|
||||
|
||||
private:
|
||||
Return<Status> reset() override;
|
||||
|
||||
private:
|
||||
Status tearDownGadget();
|
||||
Status setupFunctions(uint64_t functions,
|
||||
const sp<IUsbGadgetCallback>& callback,
|
||||
Status setupFunctions(uint64_t functions, const sp<V1_0::IUsbGadgetCallback> &callback,
|
||||
uint64_t timeout);
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_0
|
||||
} // namespace V1_1
|
||||
} // namespace gadget
|
||||
} // namespace usb
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
|
||||
#endif // ANDROID_HARDWARE_USB_V1_2_USBGADGET_H
|
||||
|
||||
11
usb/android.hardware.usb.gadget@1.1-service.wahoo.xml
Normal file
11
usb/android.hardware.usb.gadget@1.1-service.wahoo.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.usb.gadget</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.1</version>
|
||||
<interface>
|
||||
<name>IUsbGadget</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
12
usb/android.hardware.usb@1.1-service.wahoo.xml
Normal file
12
usb/android.hardware.usb@1.1-service.wahoo.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.usb</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.1</version>
|
||||
<interface>
|
||||
<name>IUsb</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
|
||||
@@ -27,10 +27,10 @@ using android::hardware::configureRpcThreadpool;
|
||||
using android::hardware::joinRpcThreadpool;
|
||||
|
||||
// Generated HIDL files
|
||||
using android::hardware::usb::gadget::V1_1::IUsbGadget;
|
||||
using android::hardware::usb::gadget::V1_1::implementation::UsbGadget;
|
||||
using android::hardware::usb::V1_1::IUsb;
|
||||
using android::hardware::usb::gadget::V1_0::IUsbGadget;
|
||||
using android::hardware::usb::V1_1::implementation::Usb;
|
||||
using android::hardware::usb::gadget::V1_0::implementation::UsbGadget;
|
||||
|
||||
using android::OK;
|
||||
using android::status_t;
|
||||
|
||||
Reference in New Issue
Block a user