diff options
-rw-r--r-- | audio/unix.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/audio/unix.c b/audio/unix.c index ea5e3b8a..a82d10ff 100644 --- a/audio/unix.c +++ b/audio/unix.c @@ -244,7 +244,6 @@ static void headset_discovery_complete(struct audio_device *dev, void *user_data failed: error("discovery failed"); unix_ipc_error(client, BT_SETCONFIGURATION_RSP, EIO); - client->dev = NULL; } static void headset_setup_complete(struct audio_device *dev, void *user_data) @@ -280,7 +279,6 @@ static void headset_setup_complete(struct audio_device *dev, void *user_data) failed: error("config failed"); unix_ipc_error(client, BT_SETCONFIGURATION_RSP, EIO); - client->dev = NULL; } static void headset_resume_complete(struct audio_device *dev, void *user_data) @@ -289,6 +287,7 @@ static void headset_resume_complete(struct audio_device *dev, void *user_data) char buf[BT_AUDIO_IPC_PACKET_SIZE]; struct bt_streamstart_rsp *rsp = (void *) buf; struct bt_streamfd_ind *ind = (void *) buf; + struct headset_data *hs = &client->d.hs; client->req_id = 0; @@ -309,6 +308,7 @@ static void headset_resume_complete(struct audio_device *dev, void *user_data) if (unix_sendmsg_fd(client->sock, client->data_fd) < 0) { error("unix_sendmsg_fd: %s(%d)", strerror(errno), errno); + headset_unlock(client->dev, hs->lock); goto failed; } @@ -317,7 +317,6 @@ static void headset_resume_complete(struct audio_device *dev, void *user_data) failed: error("resume failed"); unix_ipc_error(client, BT_STREAMSTART_RSP, EIO); - client->dev = NULL; } static void headset_suspend_complete(struct audio_device *dev, void *user_data) |