Re: 2.6.1-mm4: ALSA es1968 DMA alloc problem

From: Arjan van de Ven
Date: Mon Jan 19 2004 - 12:07:07 EST


On Mon, 2004-01-19 at 17:29, Takashi Iwai wrote:
> --- linux/sound/core/memalloc.c 15 Jan 2004 16:17:36 -0000 1.20
> +++ linux/sound/core/memalloc.c 19 Jan 2004 11:52:21 -0000
> @@ -841,10 +844,11 @@
> continue;
> }
>
> - if (pci_set_consistent_dma_mask(pci, dev->dma_mask) < 0) {
> + if (pci_set_dma_mask(pci, dev->dma_mask) < 0) {
> printk(KERN_ERR "snd-page-alloc: cannot set DMA mask %lx for pci %04x:%04x\n", dev->dma_mask, dev->vendor, dev->device);
> continue;
> }
> + pci_set_consistent_dma_mask(pci, dev->dma_mask);
> for (i = 0; i < dev->buffers; i++) {
> struct snd_mem_list *mem;
> mem = kmalloc(sizeof(*mem), GFP_KERNEL);

unchecked


> --- linux/sound/pci/emu10k1/emu10k1_main.c 2 Jan 2004 13:39:33 -0000 1.27
> +++ linux/sound/pci/emu10k1/emu10k1_main.c 19 Jan 2004 11:47:55 -0000
> @@ -599,11 +599,12 @@
> return -ENOMEM;
> /* set the DMA transfer mask */
> emu->dma_mask = is_audigy ? AUDIGY_DMA_MASK : EMU10K1_DMA_MASK;
> - if (pci_set_consistent_dma_mask(pci, emu->dma_mask) < 0) {
> + if (pci_set_dma_mask(pci, emu->dma_mask)) {
> snd_printk(KERN_ERR "architecture does not support PCI busmaster DMA with mask 0x%lx\n", emu->dma_mask);
> snd_magic_kfree(emu);
> return -ENXIO;
> }
> + pci_set_consistent_dma_mask(pci, emu->dma_mask);
> emu->card = card;
> spin_lock_init(&emu->reg_lock);
> spin_lock_init(&emu->emu_lock);

unchecked
> --- linux/sound/pci/trident/trident_main.c 20 Nov 2003 12:03:01 -0000 1.43
> +++ linux/sound/pci/trident/trident_main.c 19 Jan 2004 11:48:59 -0000
> @@ -3952,6 +3952,7 @@
> return;
>
> pci_enable_device(trident->pci);
> + pci_set_dma_mask(trident->pci, 0x3fffffff); /* FIXME: correct? */
> pci_set_consistent_dma_mask(trident->pci, 0x3fffffff); /* FIXME: correct? */
> pci_set_master(trident->pci); /* to be sure */
>

unchecked

Attachment: signature.asc
Description: This is a digitally signed message part