If sixaxis device was trusted before first connection over Bluetooth connection might get accepted before device services were discovered. This results in conection to PSM19 not being added to idev. To fix this channel for PSM19 is also added to SDP complete callback so that both channels are added. --- profiles/input/server.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/profiles/input/server.c b/profiles/input/server.c index d85d6a9..3814eaf 100644 --- a/profiles/input/server.c +++ b/profiles/input/server.c @@ -101,9 +101,6 @@ static void sixaxis_browse_sdp(const bdaddr_t *src, const bdaddr_t *dst, struct btd_device *device; struct sixaxis_data *data; - if (psm != L2CAP_PSM_HIDP_CTRL) - return; - device = btd_adapter_find_device(adapter_find(src), dst); if (!device) return; @@ -112,7 +109,9 @@ static void sixaxis_browse_sdp(const bdaddr_t *src, const bdaddr_t *dst, data->chan = g_io_channel_ref(chan); data->psm = psm; - device_discover_services(device); + if (psm == L2CAP_PSM_HIDP_CTRL) + device_discover_services(device); + device_wait_for_svc_complete(device, sixaxis_sdp_cb, data); } -- 1.8.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html