Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91272bd4 authored by Amit Pundir's avatar Amit Pundir Committed by android-build-merger
Browse files

Merge \"init: select usb gadget controller at run time\"

am: 916f5e87

Change-Id: Ifc4ec86c56df0de1ca498f3de392405490690809
parents 11b2dbca 916f5e87
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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);