diff --git a/hw/marvell_88w8618_audio.c b/hw/marvell_88w8618_audio.c
index 57c3d5a..307b584 100644
--- a/hw/marvell_88w8618_audio.c
+++ b/hw/marvell_88w8618_audio.c
@@ -34,7 +34,6 @@
 #define MP_AUDIO_CLOCK_24MHZ    (1 << 9)
 #define MP_AUDIO_MONO           (1 << 14)
 
-#ifdef HAS_AUDIO
 typedef struct mv88w8618_audio_state {
     SysBusDevice busdev;
     qemu_irq irq;
@@ -290,13 +289,10 @@
         {/* end of list */}
     }
 };
-#endif
 
 static void mv88w8618_register_devices(void)
 {
-#ifdef HAS_AUDIO
     sysbus_register_withprop(&mv88w8618_audio_info);
-#endif
 }
 
 device_init(mv88w8618_register_devices)
diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c
index 22db7a2..606cd23 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -89,7 +89,6 @@
     dma_dummy_writeb,
 };
 
-#ifdef HAS_AUDIO
 static void audio_init(qemu_irq *pic)
 {
     struct soundhw *c;
@@ -109,7 +108,6 @@
         }
     }
 }
-#endif
 
 #define MAGNUM_BIOS_SIZE_MAX 0x7e000
 #define MAGNUM_BIOS_SIZE (BIOS_SIZE < MAGNUM_BIOS_SIZE_MAX ? BIOS_SIZE : MAGNUM_BIOS_SIZE_MAX)
@@ -288,9 +286,7 @@
 
     /* Sound card */
     /* FIXME: missing Jazz sound at 0x8000c000, rc4030[2] */
-#ifdef HAS_AUDIO
     audio_init(i8259);
-#endif
 
     /* NVRAM: Unprotected at 0x9000, Protected at 0xa000, Read only at 0xb000 */
     ds1225y_init(0x80009000, "nvram");
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index 23de7f0..9042b57 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -456,7 +456,6 @@
 }
 
 /* Audio support */
-#ifdef HAS_AUDIO
 static void audio_init (PCIBus *pci_bus)
 {
     struct soundhw *c;
@@ -474,7 +473,6 @@
         }
     }
 }
-#endif
 
 /* Network support */
 static void network_init(void)
@@ -970,9 +968,7 @@
     floppy_controller = fdctrl_init_isa(fd);
 
     /* Sound card */
-#ifdef HAS_AUDIO
     audio_init(pci_bus);
-#endif
 
     /* Network card */
     network_init();
diff --git a/hw/musicpal.c b/hw/musicpal.c
index d44c5a0..95ef2c6 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -1486,10 +1486,8 @@
     DeviceState *i2c_dev;
     DeviceState *lcd_dev;
     DeviceState *key_dev;
-#ifdef HAS_AUDIO
     DeviceState *wm8750_dev;
     SysBusDevice *s;
-#endif
     i2c_bus *i2c;
     int i;
     unsigned long flash_size;
@@ -1611,7 +1609,6 @@
         qdev_connect_gpio_out(key_dev, i, qdev_get_gpio_in(dev, i + 15));
     }
 
-#ifdef HAS_AUDIO
     wm8750_dev = i2c_create_slave(i2c, "wm8750", MP_WM_ADDR);
     dev = qdev_create(NULL, "mv88w8618_audio");
     s = sysbus_from_qdev(dev);
@@ -1619,7 +1616,6 @@
     qdev_init_nofail(dev);
     sysbus_mmio_map(s, 0, MP_AUDIO_BASE);
     sysbus_connect_irq(s, 0, pic[MP_AUDIO_IRQ]);
-#endif
 
     musicpal_binfo.ram_size = MP_RAM_DEFAULT_SIZE;
     musicpal_binfo.kernel_filename = kernel_filename;
diff --git a/hw/omap2.c b/hw/omap2.c
index 666c15a..f2c47fe 100644
--- a/hw/omap2.c
+++ b/hw/omap2.c
@@ -1973,13 +1973,11 @@
     s->codec.txdrq = *drq;
     omap_eac_reset(s);
 
-#ifdef HAS_AUDIO
     AUD_register_card("OMAP EAC", &s->codec.card);
 
     iomemtype = cpu_register_io_memory(omap_eac_readfn,
                     omap_eac_writefn, s);
     omap_l4_attach(ta, 0, iomemtype);
-#endif
 
     return s;
 }
diff --git a/hw/pc.c b/hw/pc.c
index 1848151..e67eeb4 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -721,7 +721,6 @@
 static const int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
 static const int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };
 
-#ifdef HAS_AUDIO
 void pc_audio_init (PCIBus *pci_bus, qemu_irq *pic)
 {
     struct soundhw *c;
@@ -738,7 +737,6 @@
         }
     }
 }
-#endif
 
 void pc_init_ne2k_isa(NICInfo *nd)
 {
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 68040b7..f670fd7 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -140,9 +140,7 @@
         }
     }
 
-#ifdef HAS_AUDIO
     pc_audio_init(pci_enabled ? pci_bus : NULL, isa_irq);
-#endif
 
     pc_cmos_init(below_4g_mem_size, above_4g_mem_size, boot_device, hd,
                  floppy_controller, rtc_state);
diff --git a/hw/spitz.c b/hw/spitz.c
index 4f82e24..b3e5318 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -768,7 +768,6 @@
 
 #define SPITZ_GPIO_WM	5
 
-#ifdef HAS_AUDIO
 static void spitz_wm8750_addr(void *opaque, int line, int level)
 {
     i2c_slave *wm = (i2c_slave *) opaque;
@@ -777,14 +776,12 @@
     else
         i2c_set_slave_address(wm, SPITZ_WM_ADDRL);
 }
-#endif
 
 static void spitz_i2c_setup(PXA2xxState *cpu)
 {
     /* Attach the CPU on one end of our I2C bus.  */
     i2c_bus *bus = pxa2xx_i2c_bus(cpu->i2c[0]);
 
-#ifdef HAS_AUDIO
     DeviceState *wm;
 
     /* Attach a WM8750 to the bus */
@@ -798,7 +795,6 @@
     cpu->i2s->codec_out = wm8750_dac_dat;
     cpu->i2s->codec_in = wm8750_adc_dat;
     wm8750_data_req_set(wm, cpu->i2s->data_req, cpu->i2s);
-#endif
 }
 
 static void spitz_akita_i2c_setup(PXA2xxState *cpu)
