Index: uspace/drv/audio/sb16/dsp.c
===================================================================
--- uspace/drv/audio/sb16/dsp.c	(revision d15797de77c0b69b5bef26ccf17a3c40947a75df)
+++ uspace/drv/audio/sb16/dsp.c	(revision 53a309ecb415a7ff296b01590de2f9ff2e5714cd)
@@ -163,10 +163,7 @@
 	async_sess_t *sess = ddf_dev_parent_sess_get(dsp->sb_dev);
 
-	const int ret = hw_res_dma_channel_setup(sess,
+	return hw_res_dma_channel_setup(sess,
 	    dsp->dma16_channel, pa, size,
 	    DMA_MODE_READ | DMA_MODE_AUTO | DMA_MODE_ON_DEMAND);
-
-	async_hangup(sess);
-	return ret;
 }
 
@@ -307,5 +304,4 @@
 	// TODO: Assumes DMA 16
 	const int remain = hw_res_dma_channel_remain(sess, dsp->dma16_channel);
-	async_hangup(sess);
 	if (remain >= 0) {
 		*pos = dsp->buffer.size - remain;
Index: uspace/drv/audio/sb16/main.c
===================================================================
--- uspace/drv/audio/sb16/main.c	(revision d15797de77c0b69b5bef26ccf17a3c40947a75df)
+++ uspace/drv/audio/sb16/main.c	(revision 53a309ecb415a7ff296b01590de2f9ff2e5714cd)
@@ -186,5 +186,4 @@
 	hw_res_list_parsed_init(&hw_res);
 	const int ret = hw_res_get_list_parsed(parent_sess, &hw_res, 0);
-	async_hangup(parent_sess);
 	if (ret != EOK) {
 		return ret;
@@ -250,5 +249,4 @@
 
 	bool enabled = hw_res_enable_interrupt(parent_sess);
-	async_hangup(parent_sess);
 
 	return enabled ? EOK : EIO;
