Diff between 72dddc80def4f6de4c7d30687b0c0b379b79c162 and ab6ce0c8f3e066299bd22bea6d03625edb1fbbe8

Changed Files

File Additions Deletions Status
profiles/input/device.c +6 -1 modified

Full Patch

diff --git a/profiles/input/device.c b/profiles/input/device.c
index 3642cc3..f21a69f 100644
--- a/profiles/input/device.c
+++ b/profiles/input/device.c
@@ -1154,8 +1154,13 @@ static int connection_disconnect(struct input_device *idev, uint32_t flags)
 		shutdown(sock, SHUT_WR);
 	}
 
-	if (flags & (1 << HIDP_VIRTUAL_CABLE_UNPLUG))
+	if (flags & (1 << HIDP_VIRTUAL_CABLE_UNPLUG)) {
 		idev->virtual_cable_unplug = true;
+		if (idev->uhid)
+			hidp_send_ctrl_message(idev, HIDP_TRANS_HID_CONTROL |
+						HIDP_CTRL_VIRTUAL_CABLE_UNPLUG,
+						NULL, 0);
+	}
 
 	if (idev->uhid)
 		return uhid_disconnect(idev, false);