Index: uspace/drv/audio/sb16/dma_controller.c
===================================================================
--- uspace/drv/audio/sb16/dma_controller.c	(revision 25f8e5d78670d77f378d334631543ec6b637a985)
+++ uspace/drv/audio/sb16/dma_controller.c	(revision b130d0e44b290b928eb916abc93c61c8ecf15583)
@@ -168,5 +168,5 @@
 static dma_controller_t controller_8237 = {
 	.channels = {
-	    /* The first chip */
+	    /* The first chip 8-bit */
 	    { (uint8_t*)0x00, (uint8_t*)0x01, (uint8_t*)0x87,
 	      (uint8_t*)0x0a, (uint8_t*)0x0b, (uint8_t*)0x0c, },
@@ -178,5 +178,5 @@
 	      (uint8_t*)0x0a, (uint8_t*)0x0b, (uint8_t*)0x0c, },
 
-	    /* The second chip */
+	    /* The second chip 16-bit */
 	    { (uint8_t*)0xc0, (uint8_t*)0xc2, (uint8_t*)0x8f,
 	      (uint8_t*)0xd4, (uint8_t*)0xd6, (uint8_t*)0xd8, },
@@ -298,5 +298,5 @@
 		return EIO;
 
-	dma_channel_t dma_channel = controller_8237.channels[channel];
+	const dma_channel_t dma_channel = controller_8237.channels[channel];
 
 	/* Mask DMA request */
@@ -311,5 +311,5 @@
 	    | (auto_mode ? DMA_MODE_CHAN_AUTO_FLAG : 0)
 	    | (mode << DMA_MODE_CHAN_MODE_SHIFT);
-	ddf_log_verbose("Setting mode: %hhx.\n", value);
+	ddf_log_verbose("Setting DMA mode: %hhx.\n", value);
 	pio_write_8(dma_channel.mode_address, value);
 
Index: uspace/drv/audio/sb16/mixer.c
===================================================================
--- uspace/drv/audio/sb16/mixer.c	(revision 25f8e5d78670d77f378d334631543ec6b637a985)
+++ uspace/drv/audio/sb16/mixer.c	(revision b130d0e44b290b928eb916abc93c61c8ecf15583)
@@ -34,6 +34,4 @@
 #include "mixer.h"
 
-#define CT_MIXER_RESET_ADDRESS 0x00
-
 typedef struct channel {
 	uint8_t address;
@@ -186,8 +184,13 @@
 
 	if (type != SB_MIXER_NONE) {
-		pio_write_8(&regs->mixer_address, CT_MIXER_RESET_ADDRESS);
+		pio_write_8(&regs->mixer_address, MIXER_RESET_ADDRESS);
 		pio_write_8(&regs->mixer_data, 1);
 		sb_mixer_max_master_levels(mixer);
 	}
+	pio_write_8(&regs->mixer_address, MIXER_PNP_IRQ_ADDRESS);
+	const uint8_t irq = pio_read_8(&regs->mixer_data);
+	pio_write_8(&regs->mixer_address, MIXER_PNP_DMA_ADDRESS);
+	const uint8_t dma = pio_read_8(&regs->mixer_data);
+	ddf_log_debug("SB16 setup with IRQ 0x%hhx and DMA 0x%hhx.\n", irq, dma);
 	return EOK;
 }
Index: uspace/drv/audio/sb16/registers.h
===================================================================
--- uspace/drv/audio/sb16/registers.h	(revision 25f8e5d78670d77f378d334631543ec6b637a985)
+++ uspace/drv/audio/sb16/registers.h	(revision b130d0e44b290b928eb916abc93c61c8ecf15583)
@@ -44,6 +44,10 @@
 	ioport8_t afm_data;
 	ioport8_t mixer_address;
-#define MIXER_IRQ_ADDRESS 0x82 /* The Interrupt Status register, addressed as
-                                * register 82h on the Mixer register map p.27 */
+#define MIXER_RESET_ADDRESS 0x00
+#define MIXER_PNP_IRQ_ADDRESS 0x80
+#define MIXER_PNP_DMA_ADDRESS 0x81
+#define MIXER_IRQ_STATUS_ADDRESS 0x82 /* The Interrupt Status register,
+                                       * addressed as register 82h on the
+                                       * Mixer register map p.27 */
 	ioport8_t mixer_data;
 	ioport8_t dsp_reset;
Index: uspace/drv/audio/sb16/sb16.c
===================================================================
--- uspace/drv/audio/sb16/sb16.c	(revision 25f8e5d78670d77f378d334631543ec6b637a985)
+++ uspace/drv/audio/sb16/sb16.c	(revision b130d0e44b290b928eb916abc93c61c8ecf15583)
@@ -107,5 +107,5 @@
 	 * differently */
 	if (drv->dsp.version.major >= 4) {
-		pio_write_8(&drv->regs->mixer_address, MIXER_IRQ_ADDRESS);
+		pio_write_8(&drv->regs->mixer_address, MIXER_IRQ_STATUS_ADDRESS);
 		const uint8_t irq_mask = pio_read_8(&drv->regs->mixer_data);
 		ddf_log_debug("SB16 IRQ mask %hhx.\n", irq_mask);
