aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Rivas Costa2020-01-07 20:48:13 +0100
committerJiri Kosina2020-01-09 10:57:41 +0100
commit20eee6e5af35d9586774e80b6e0b1850e7cc9899 (patch)
tree97cfd31af36d37f71151e82f2d84c7e6bafeafba
parent1479a82d82df68dfac29c72c774cb8bdc17d4eb1 (diff)
HID: steam: Fix input device disappearing
The `connected` value for wired devices was not properly initialized, it must be set to `true` upon creation, because wired devices do not generate connection events. When a raw client (the Steam Client) uses the device, the input device is destroyed. Then, when the raw client finishes, it must be recreated. But since the `connected` variable was false this never happended. Signed-off-by: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hid-steam.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/hid/hid-steam.c b/drivers/hid/hid-steam.c
index 8dae0f9b819e..6286204d4c56 100644
--- a/drivers/hid/hid-steam.c
+++ b/drivers/hid/hid-steam.c
@@ -768,8 +768,12 @@ static int steam_probe(struct hid_device *hdev,
if (steam->quirks & STEAM_QUIRK_WIRELESS) {
hid_info(hdev, "Steam wireless receiver connected");
+ /* If using a wireless adaptor ask for connection status */
+ steam->connected = false;
steam_request_conn_status(steam);
} else {
+ /* A wired connection is always present */
+ steam->connected = true;
ret = steam_register(steam);
if (ret) {
hid_err(hdev,