Merge \\\"init: select usb gadget controller at run time\\\" am: 916f5e873e
am: 91272bd435
am: aff2347646
Change-Id: Idbb3ed146b147300d8f472958a5b888c07f5a684
This commit is contained in:
commit
114a00ea03
|
@ -444,6 +444,22 @@ static void selinux_initialize(bool in_kernel_domain) {
|
|||
}
|
||||
}
|
||||
|
||||
// Set the UDC controller for the ConfigFS USB Gadgets.
|
||||
// Read the UDC controller in use from "/sys/class/udc".
|
||||
// In case of multiple UDC controllers select the first one.
|
||||
static void set_usb_controller() {
|
||||
std::unique_ptr<DIR, decltype(&closedir)>dir(opendir("/sys/class/udc"), closedir);
|
||||
if (!dir) return;
|
||||
|
||||
dirent* dp;
|
||||
while ((dp = readdir(dir.get())) != nullptr) {
|
||||
if (dp->d_name[0] == '.') continue;
|
||||
|
||||
property_set("sys.usb.controller", dp->d_name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
if (!strcmp(basename(argv[0]), "ueventd")) {
|
||||
return ueventd_main(argc, argv);
|
||||
|
@ -536,6 +552,7 @@ int main(int argc, char** argv) {
|
|||
property_load_boot_defaults();
|
||||
export_oem_lock_status();
|
||||
start_property_service();
|
||||
set_usb_controller();
|
||||
|
||||
const BuiltinFunctionMap function_map;
|
||||
Action::set_function_map(&function_map);
|
||||
|
|
Loading…
Reference in New Issue