Index: uspace/drv/audio/sb16/main.c
===================================================================
--- uspace/drv/audio/sb16/main.c	(revision 722912e9709680de3a927e9ab97bdc5360b0ca9c)
+++ uspace/drv/audio/sb16/main.c	(revision ea150dc62f927b4893ff8fb811942edfb89b9d6b)
@@ -116,6 +116,13 @@
 	const size_t irq_cmd_count = sb16_irq_code_size();
 	irq_cmd_t irq_cmds[irq_cmd_count];
-	sb16_irq_code((void*)sb_regs, dma8, dma16, irq_cmds);
-	irq_code_t irq_code = { .cmdcount = irq_cmd_count, .cmds = irq_cmds };
+	irq_pio_range_t irq_ranges[1];
+	sb16_irq_code((void*)sb_regs, dma8, dma16, irq_cmds, irq_ranges);
+
+	irq_code_t irq_code = {
+		.cmdcount = irq_cmd_count,
+		.cmds = irq_cmds,
+		.rangecount = 1,
+		.ranges = irq_ranges
+	};
 
 	ret = register_interrupt_handler(device, irq, irq_handler, &irq_code);
Index: uspace/drv/audio/sb16/sb16.c
===================================================================
--- uspace/drv/audio/sb16/sb16.c	(revision 722912e9709680de3a927e9ab97bdc5360b0ca9c)
+++ uspace/drv/audio/sb16/sb16.c	(revision ea150dc62f927b4893ff8fb811942edfb89b9d6b)
@@ -74,5 +74,5 @@
 }
 /*----------------------------------------------------------------------------*/
-void sb16_irq_code(void *regs, int dma8, int dma16, irq_cmd_t cmds[])
+void sb16_irq_code(void *regs, int dma8, int dma16, irq_cmd_t cmds[], irq_pio_range_t ranges[])
 {
 	assert(regs);
@@ -81,4 +81,6 @@
 	memcpy(cmds, irq_cmds, sizeof(irq_cmds));
 	cmds[0].addr = (void*)&registers->dsp_read_status;
+	ranges[0].base = (uintptr_t)registers;
+	ranges[0].size = sizeof(*registers);
 	if (dma16 > 4 && dma16 < 8) {
 		/* Valid dma16 */
Index: uspace/drv/audio/sb16/sb16.h
===================================================================
--- uspace/drv/audio/sb16/sb16.h	(revision 722912e9709680de3a927e9ab97bdc5360b0ca9c)
+++ uspace/drv/audio/sb16/sb16.h	(revision ea150dc62f927b4893ff8fb811942edfb89b9d6b)
@@ -51,5 +51,5 @@
 
 size_t sb16_irq_code_size(void);
-void sb16_irq_code(void *regs, int dma8, int dma16, irq_cmd_t cmds[]);
+void sb16_irq_code(void *regs, int dma8, int dma16, irq_cmd_t cmds[], irq_pio_range_t ranges[]);
 int sb16_init_sb16(sb16_t *sb, void *regs, size_t size,
     ddf_dev_t *dev, int dma8, int dma16);
