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

Commit e22afbed authored by Jeff Brown's avatar Jeff Brown
Browse files

Add basic support for new suspend-block ioctls.

The new ioctls will enable the system to be more selective about
which evdev devices should hold wake-locks when their queue is
non-empty.

For now, we enable this behavior for all configured input devices,
which is more or less the status quo.  This change is mainly about
ensuring that the system still works correctly when combined with
a newer kernel that supports the suspend-block ioctls.  We can
tweak this behavior later.

Change-Id: I8ff69aa5198903f7e2998772a339313df17c0f24
parent 214f459b
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1063,14 +1063,20 @@ status_t EventHub::openDeviceLocked(const char *devicePath) {
        return -1;
    }

    // Enable wake-lock behavior on kernels that support it.
    // TODO: Only need this for devices that can really wake the system.
    bool usingSuspendBlock = ioctl(fd, EVIOCSSUSPENDBLOCK, 1) == 0;

    ALOGI("New device: id=%d, fd=%d, path='%s', name='%s', classes=0x%x, "
            "configuration='%s', keyLayout='%s', keyCharacterMap='%s', builtinKeyboard=%s",
            "configuration='%s', keyLayout='%s', keyCharacterMap='%s', builtinKeyboard=%s, "
            "usingSuspendBlock=%s",
         deviceId, fd, devicePath, device->identifier.name.string(),
         device->classes,
         device->configurationFile.string(),
         device->keyMap.keyLayoutFile.string(),
         device->keyMap.keyCharacterMapFile.string(),
         toString(mBuiltInKeyboardId == deviceId));
         toString(mBuiltInKeyboardId == deviceId),
         toString(usingSuspendBlock));

    mDevices.add(deviceId, device);