is_audigy = emu->audigy = c->emu10k2_chip;
  
+       /* set addressing mode */
+       emu->address_mode = is_audigy ? 0 : 1;
        /* set the DMA transfer mask */
-       emu->dma_mask = is_audigy ? AUDIGY_DMA_MASK : EMU10K1_DMA_MASK;
+       emu->dma_mask = emu->address_mode ? EMU10K1_DMA_MASK : AUDIGY_DMA_MASK;
 -      if (pci_set_dma_mask(pci, emu->dma_mask) < 0 ||
 -          pci_set_consistent_dma_mask(pci, emu->dma_mask) < 0) {
 +      if (dma_set_mask(&pci->dev, emu->dma_mask) < 0 ||
 +          dma_set_coherent_mask(&pci->dev, emu->dma_mask) < 0) {
                dev_err(card->dev,
                        "architecture does not support PCI busmaster DMA with mask 0x%lx\n",
                        emu->dma_mask);