Diff between 9948168cca15f8a4d68c963d2fb06506b0f6ba6d and 2ebf7ed224d04b44dcf03d64eb1966d526ae8b41

Changed Files

File Additions Deletions Status
profiles/audio/transport.c +8 -1 modified

Full Patch

diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
index c5ae3a7..1535151 100644
--- a/profiles/audio/transport.c
+++ b/profiles/audio/transport.c
@@ -2302,6 +2302,13 @@ static void asha_transport_state_cb(int status, void *user_data)
 	asha_transport_sync_state(transport, asha_dev);
 }
 
+static gboolean asha_transport_suspend_cb(void *user_data)
+{
+	asha_transport_state_cb(-1, user_data);
+
+	return FALSE;
+}
+
 static guint transport_asha_resume(struct media_transport *transport,
 						struct media_owner *owner)
 {
@@ -2323,7 +2330,7 @@ static guint transport_asha_suspend(struct media_transport *transport,
 	if (owner) {
 		ret = bt_asha_device_stop(asha_dev);
 		asha_transport_sync_state(transport, asha_dev);
-		asha_transport_state_cb(-1, owner);
+		g_idle_add(asha_transport_suspend_cb, owner);
 	} else {
 		ret = bt_asha_device_stop(asha_dev);
 		/* We won't have a callback to set the final state */