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
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;
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);
}