From 8d2bdf4eef3940a5a732bb5c70b4ebaed707e993 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 8 Jan 2014 01:02:25 +0100 Subject: [PATCH] input: Fix connecting new trusted sixaxis device 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 d85d6a91f..3814eaf53 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); } -- 2.47.3