enable CONFIG_INPUT_JOYDEV on all Qualcomm devices#2792
Merged
Conversation
The Linux Gamepad API gamepad detection via navigator.getGamepads()) requires /dev/input/js* device nodes, which are provided by the joydev kernel driver. Without CONFIG_INPUT_JOYDEV, the evdev events from gamepads (including those exposed as virtual controllers by InputPlumber) are not accessible through the HTML5 Gamepad API. This breaks gamepad input in Electron-based applications such as OpenNOW, cloud-gaming launchers, and any web-based emulator frontend. All other ROCKNIX platforms (Rockchip RK3326/RK3399/RK3566/RK3576/RK3588, Amlogic S922X, Allwinner) already enable JOYDEV. This change aligns the Qualcomm SoCs (SM6115, SM8250, SM8550, SM8650, SM8750) and H700 with the rest of the tree. Diagnosed and tested on AYN Odin 3 (SM8750) with OpenNOW v0.3.9: with CONFIG_INPUT_JOYDEV=y, /dev/input/js* nodes appear correctly and the Gamepad API exposes the InputPlumber-emulated DualSense controller as a standard mapped gamepad to Chromium.
Contributor
|
Just hopping in to say good change! Now controller input works in Heroic Games Launcher. (I was wondering why it wasn't working before) |
loki666
approved these changes
May 26, 2026
loki666
left a comment
Contributor
There was a problem hiding this comment.
LGTM.
This will be queued for next week, se we'll have a full month to check for any unwanted sides effet. (I don't expect any)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Linux Gamepad API gamepad detection via navigator.getGamepads()) requires /dev/input/js* device nodes, which are provided by the joydev kernel driver.
Without CONFIG_INPUT_JOYDEV, the evdev events from gamepads (including those exposed as virtual controllers by InputPlumber) are not accessible through the HTML5 Gamepad API. This breaks gamepad input in Electron-based applications such as OpenNOW, cloud-gaming launchers, and any web-based emulator frontend.
All other ROCKNIX platforms (Rockchip RK3326/RK3399/RK3566/RK3576/RK3588, Amlogic S922X, Allwinner) already enable JOYDEV. This change aligns the Qualcomm SoCs (SM6115, SM8250, SM8550, SM8650, SM8750) and H700 with the rest of the tree.
Diagnosed and tested on AYN Odin 3 (SM8750) with OpenNOW v0.3.9: with CONFIG_INPUT_JOYDEV=y, /dev/input/js* nodes appear correctly and the Gamepad API exposes the InputPlumber-emulated DualSense controller as a standard mapped gamepad to Chromium.
Summary
Enables
CONFIG_INPUT_JOYDEVon all Qualcomm devices and H700, aligning them with the rest of the supported platforms.Problem
The Linux Gamepad API (used by Electron/Chromium apps for HTML5 gamepad detection via
navigator.getGamepads()) requires/dev/input/js*device nodes, which are provided by thejoydevkernel driver.Without
CONFIG_INPUT_JOYDEV, evdev events from gamepads (including the virtual controllers emulated by InputPlumber) are not accessible through the HTML5 Gamepad API. This breaks gamepad input in Electron-based applications such as:Current state in the tree
=y=m=y=y=y=y)This PR sets
CONFIG_INPUT_JOYDEV=yon the 6 affected configs to match the majority.Testing
Tested on AYN Odin 3 (SM8750) with OpenNOW v0.3.9 (Electron-based GeForce NOW client):
navigator.getGamepads()returns[null, null, null, null]regardless of input activity;/dev/input/contains onlyevent*nodes, nojs*.joydev.kocompiled from the same kernel sources):/dev/input/js*nodes appear, and Chromium exposes the InputPlumber-emulated DualSense as a standard mapped gamepad. OpenNOW responds correctly to gamepad input.I have not been able to test the other Qualcomm SoCs and H700, but the change is mechanical and identical to what already works on Rockchip/Amlogic/Allwinner.
AI Usage
While ROCKNIX doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.
Did you use AI tools to help write this code? PARTIALLY
AI was used to identify the cause of the gamepad not being detected in OpenNow application.