Diff between 6cfb23dd3adfc0a1dace2f7e33641f2259608337 and 67c269d17185ae531058951dadfad05ef4442faf

Changed Files

File Additions Deletions Status
plugins/sixaxis.c +6 -0 modified

Full Patch

diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c
index c3ca267..b8fe287 100644
--- a/plugins/sixaxis.c
+++ b/plugins/sixaxis.c
@@ -194,6 +194,12 @@ static void setup_device(int fd, int index, struct btd_adapter *adapter)
 	if (get_master_bdaddr(fd, &master_bdaddr) < 0)
 		return;
 
+	/* This can happen if controller was plugged while already connected
+	 * eg. to charge up battery */
+	device = btd_adapter_find_device(adapter, &device_bdaddr);
+	if (device && btd_device_is_connected(device))
+		return;
+
 	adapter_bdaddr = btd_adapter_get_address(adapter);
 
 	if (bacmp(adapter_bdaddr, &master_bdaddr)) {