Snap for 8267098 from c3c15e25b3
to udc-release
Change-Id: I66697e28be3c2ed9f630c10719f4f9cdf30673b3
This commit is contained in:
commit
dcccdb7b39
7 changed files with 147 additions and 83 deletions
|
@ -7,7 +7,7 @@
|
|||
system /system erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
|
||||
# During compliance testing, the previous line would fail (because GSI is ext4), and the next line would be used to mount GSI.
|
||||
system /system ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
|
||||
system_dlkm /system_dlkm erofs ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
|
||||
system_dlkm /system_dlkm erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
|
||||
system_ext /system_ext erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
|
||||
product /product erofs ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128
|
||||
vendor /vendor erofs ro wait,slotselect,avb=vbmeta_vendor,logical,first_stage_mount,readahead_size_kb=128
|
||||
|
|
|
@ -71,6 +71,83 @@ on early-boot
|
|||
# acm function for uwb
|
||||
mkdir /config/usb_gadget/g1/functions/acm.uwb0
|
||||
|
||||
# chown file/folder permission
|
||||
chown system system /config/usb_gadget/
|
||||
chown system system /config/usb_gadget/g1
|
||||
chown system system /config/usb_gadget/g1/UDC
|
||||
chown system system /config/usb_gadget/g1/bDeviceClass
|
||||
chown system system /config/usb_gadget/g1/bDeviceProtocol
|
||||
chown system system /config/usb_gadget/g1/bDeviceSubClass
|
||||
chown system system /config/usb_gadget/g1/bMaxPacketSize0
|
||||
chown system system /config/usb_gadget/g1/bcdDevice
|
||||
chown system system /config/usb_gadget/g1/bcdUSB
|
||||
chown system system /config/usb_gadget/g1/configs
|
||||
chown system system /config/usb_gadget/g1/configs/b.1
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/MaxPower
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/strings
|
||||
chown system system /config/usb_gadget/g1/functions
|
||||
chown system system /config/usb_gadget/g1/functions/accessory.gs2
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/audio_source.gs3
|
||||
chown system system /config/usb_gadget/g1/functions/dm.gs7
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.adb
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.mtp
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.ptp
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/id
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/index
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/class
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
||||
chown system system /config/usb_gadget/g1/idProduct
|
||||
chown system system /config/usb_gadget/g1/idVendor
|
||||
chown system system /config/usb_gadget/g1/max_speed
|
||||
chown system system /config/usb_gadget/g1/os_desc
|
||||
chown system system /config/usb_gadget/g1/os_desc/b.1
|
||||
chown system system /config/usb_gadget/g1/os_desc/b_vendor_code
|
||||
chown system system /config/usb_gadget/g1/os_desc/qw_sign
|
||||
chown system system /config/usb_gadget/g1/os_desc/use
|
||||
chown system system /config/usb_gadget/g1/strings
|
||||
chown system system /config/usb_gadget/g1/strings/0x409
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/manufacturer
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/product
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/serialnumber
|
||||
setprop vendor.usb.functions.ready 1
|
||||
|
||||
on boot
|
||||
|
|
|
@ -171,6 +171,9 @@
|
|||
# Storage: for factory reset protection feature
|
||||
/dev/block/by-name/frp 0660 system system
|
||||
|
||||
# Storage: for UDFPS calibration data sideload feature
|
||||
/dev/block/by-name/mfg_data 0660 system system
|
||||
|
||||
# TPU
|
||||
/dev/janeiro 0660 system system
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
modem_logging_control START -o /data/vendor/radio/logs/always-on -n 10 -s 20 -m /vendor/etc/modem/default.cfg --enable_exmetric --enable_exmetric_internal
|
||||
modem_logging_control START -o /data/vendor/radio/logs/always-on -n 20 -s 50 -m /vendor/etc/modem/default.cfg --enable_exmetric --enable_exmetric_internal
|
||||
|
|
|
@ -33,13 +33,55 @@ namespace gadget {
|
|||
namespace V1_2 {
|
||||
namespace implementation {
|
||||
|
||||
UsbGadget::UsbGadget() {
|
||||
UsbGadget::UsbGadget() : mGadgetIrqPath("") {
|
||||
if (access(OS_DESC_PATH, R_OK) != 0) {
|
||||
ALOGE("configfs setup not done yet");
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
V1_0::Status UsbGadget::getUsbGadgetIrqPath() {
|
||||
std::string irqs;
|
||||
size_t read_pos = 0;
|
||||
size_t found_pos = 0;
|
||||
|
||||
if (!ReadFileToString(kProcInterruptsPath, &irqs)) {
|
||||
ALOGE("cannot read all interrupts");
|
||||
return Status::ERROR;
|
||||
}
|
||||
|
||||
while (true) {
|
||||
found_pos = irqs.find_first_of("\n", read_pos);
|
||||
if (found_pos == std::string::npos) {
|
||||
ALOGI("the string of all interrupts is unexpected");
|
||||
return Status::ERROR;
|
||||
}
|
||||
|
||||
std::string single_irq = irqs.substr(read_pos, found_pos - read_pos);
|
||||
|
||||
if (single_irq.find("dwc3", 0) != std::string::npos) {
|
||||
unsigned int dwc3_irq_number;
|
||||
size_t dwc3_pos = single_irq.find_first_of(":");
|
||||
if (!ParseUint(single_irq.substr(0, dwc3_pos), &dwc3_irq_number)) {
|
||||
ALOGI("unknown IRQ strings");
|
||||
return Status::ERROR;
|
||||
}
|
||||
|
||||
mGadgetIrqPath = kProcIrqPath + single_irq.substr(0, dwc3_pos) + kSmpAffinityList;
|
||||
break;
|
||||
}
|
||||
|
||||
if (found_pos == irqs.npos) {
|
||||
ALOGI("USB gadget doesn't start");
|
||||
return Status::ERROR;
|
||||
}
|
||||
|
||||
read_pos = found_pos + 1;
|
||||
}
|
||||
|
||||
return Status::SUCCESS;
|
||||
}
|
||||
|
||||
void currentFunctionsAppliedCallback(bool functionsApplied, void *payload) {
|
||||
UsbGadget *gadget = (UsbGadget *)payload;
|
||||
gadget->mCurrentUsbFunctionsApplied = functionsApplied;
|
||||
|
@ -359,6 +401,10 @@ Return<void> UsbGadget::setCurrentUsbFunctions(uint64_t functions,
|
|||
mCurrentUsbFunctions = functions;
|
||||
mCurrentUsbFunctionsApplied = false;
|
||||
|
||||
// Get the gadget IRQ number before tearDownGadget()
|
||||
if (mGadgetIrqPath.empty())
|
||||
getUsbGadgetIrqPath();
|
||||
|
||||
// Unlink the gadget and stop the monitor if running.
|
||||
V1_0::Status status = tearDownGadget();
|
||||
if (status != Status::SUCCESS) {
|
||||
|
@ -391,9 +437,15 @@ Return<void> UsbGadget::setCurrentUsbFunctions(uint64_t functions,
|
|||
}
|
||||
|
||||
if (functions & GadgetFunction::NCM) {
|
||||
SetProperty("vendor.usb.dwc3_irq", "big");
|
||||
if (!mGadgetIrqPath.empty()) {
|
||||
if (!WriteStringToFile(BIG_CORE, mGadgetIrqPath))
|
||||
ALOGI("Cannot move gadget IRQ to big core, path:%s", mGadgetIrqPath.c_str());
|
||||
}
|
||||
} else {
|
||||
SetProperty("vendor.usb.dwc3_irq", "medium");
|
||||
if (!mGadgetIrqPath.empty()) {
|
||||
if (!WriteStringToFile(MEDIUM_CORE, mGadgetIrqPath))
|
||||
ALOGI("Cannot move gadget IRQ to medium core, path:%s", mGadgetIrqPath.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
ALOGI("Usb Gadget setcurrent functions called successfully");
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <android-base/file.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android-base/unique_fd.h>
|
||||
#include <android-base/parseint.h>
|
||||
#include <android-base/strings.h>
|
||||
#include <android/hardware/usb/gadget/1.2/IUsbGadget.h>
|
||||
#include <android/hardware/usb/gadget/1.2/types.h>
|
||||
|
@ -44,6 +45,7 @@ namespace implementation {
|
|||
using ::android::sp;
|
||||
using ::android::base::GetProperty;
|
||||
using ::android::base::SetProperty;
|
||||
using ::android::base::ParseUint;
|
||||
using ::android::base::unique_fd;
|
||||
using ::android::base::ReadFileToString;
|
||||
using ::android::base::Trim;
|
||||
|
@ -71,6 +73,9 @@ using ::android::hardware::usb::gadget::V1_2::GadgetFunction;
|
|||
using ::std::string;
|
||||
|
||||
constexpr char kGadgetName[] = "11210000.dwc3";
|
||||
constexpr char kProcInterruptsPath[] = "/proc/interrupts";
|
||||
constexpr char kProcIrqPath[] = "/proc/irq/";
|
||||
constexpr char kSmpAffinityList[] = "/smp_affinity_list";
|
||||
#ifndef UDC_PATH
|
||||
#define UDC_PATH "/sys/class/udc/11210000.dwc3/"
|
||||
#endif
|
||||
|
@ -78,11 +83,15 @@ static MonitorFfs monitorFfs(kGadgetName);
|
|||
|
||||
#define SPEED_PATH UDC_PATH "current_speed"
|
||||
|
||||
#define BIG_CORE "6"
|
||||
#define MEDIUM_CORE "4"
|
||||
|
||||
struct UsbGadget : public IUsbGadget {
|
||||
UsbGadget();
|
||||
|
||||
// Makes sure that only one request is processed at a time.
|
||||
std::mutex mLockSetCurrentFunction;
|
||||
std::string mGadgetIrqPath;
|
||||
uint64_t mCurrentUsbFunctions;
|
||||
bool mCurrentUsbFunctionsApplied;
|
||||
UsbSpeed mUsbSpeed;
|
||||
|
@ -99,6 +108,7 @@ struct UsbGadget : public IUsbGadget {
|
|||
|
||||
private:
|
||||
Status tearDownGadget();
|
||||
Status getUsbGadgetIrqPath();
|
||||
Status setupFunctions(uint64_t functions, const sp<V1_0::IUsbGadgetCallback> &callback,
|
||||
uint64_t timeout);
|
||||
};
|
||||
|
|
|
@ -17,81 +17,3 @@ on post-fs
|
|||
chmod 664 /sys/devices/platform/11210000.usb/dwc3_exynos_otg_b_sess
|
||||
chmod 664 /sys/devices/platform/11210000.usb/dwc3_exynos_otg_id
|
||||
chmod 664 /sys/devices/platform/11210000.usb/usb_data_enabled
|
||||
|
||||
on property:vendor.usb.functions.ready=1
|
||||
chown system system /config/usb_gadget/
|
||||
chown system system /config/usb_gadget/g1
|
||||
chown system system /config/usb_gadget/g1/UDC
|
||||
chown system system /config/usb_gadget/g1/bDeviceClass
|
||||
chown system system /config/usb_gadget/g1/bDeviceProtocol
|
||||
chown system system /config/usb_gadget/g1/bDeviceSubClass
|
||||
chown system system /config/usb_gadget/g1/bMaxPacketSize0
|
||||
chown system system /config/usb_gadget/g1/bcdDevice
|
||||
chown system system /config/usb_gadget/g1/bcdUSB
|
||||
chown system system /config/usb_gadget/g1/configs
|
||||
chown system system /config/usb_gadget/g1/configs/b.1
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/MaxPower
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/strings
|
||||
chown system system /config/usb_gadget/g1/functions
|
||||
chown system system /config/usb_gadget/g1/functions/accessory.gs2
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/audio_source.gs3
|
||||
chown system system /config/usb_gadget/g1/functions/dm.gs7
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.adb
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.mtp
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.ptp
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/id
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/index
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/class
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
||||
chown system system /config/usb_gadget/g1/idProduct
|
||||
chown system system /config/usb_gadget/g1/idVendor
|
||||
chown system system /config/usb_gadget/g1/max_speed
|
||||
chown system system /config/usb_gadget/g1/os_desc
|
||||
chown system system /config/usb_gadget/g1/os_desc/b.1
|
||||
chown system system /config/usb_gadget/g1/os_desc/b_vendor_code
|
||||
chown system system /config/usb_gadget/g1/os_desc/qw_sign
|
||||
chown system system /config/usb_gadget/g1/os_desc/use
|
||||
chown system system /config/usb_gadget/g1/strings
|
||||
chown system system /config/usb_gadget/g1/strings/0x409
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/manufacturer
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/product
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/serialnumber
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue