openvortex-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Openvortex-dev] Re: [Alsa-devel] Re: [ALSA - driver 0001138]: errors wh


From: Takashi Iwai
Subject: [Openvortex-dev] Re: [Alsa-devel] Re: [ALSA - driver 0001138]: errors when installing au8820 modules
Date: Wed, 08 Jun 2005 12:22:23 +0200
User-agent: Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 MULE XEmacs/21.4 (patch 15) (Security Through Obscurity) (i386-suse-linux)

At Wed, 08 Jun 2005 17:06:39 +0800,
Raymond wrote:
> 
> au8830 can be loaded after I change "unsigned long __iomem *mmio" to
> "void __iomem *mmio" on my 32 bits machine.
> 
> How can I obtain the disassembly of snd-au8830.o to prove that it run 
> faster than before ( without bitshift ) ?

Faster?  Not measurable at all :)

> Is there any reason to make this change ?
> 
> alsa-kernel/pci/au88x0/au88x0.c
> @@ -144,15 +144,18 @@
>          // check PCI availability (DMA).
>          if ((err = pci_enable_device(pci)) < 0)
>                  return err;
> -       if (!pci_dma_supported(pci, VORTEX_DMA_MASK)) {
> +        if (pci_set_dma_mask(pci, VORTEX_DMA_MASK) < 0 ||
> +               pci_set_consistent_dma_mask(pci, VORTEX_DMA_MASK) < 0) {
>                  printk(KERN_ERR "error to set DMA mask\n");
> +               pci_disable_device(pci);
>                  return -ENXIO;
>          }
> -       pci_set_dma_mask(pci, VORTEX_DMA_MASK);

This is clean up.

>          chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
> -       if (chip == NULL)
> +       if (chip == NULL) {
> +               pci_disable_device(pci);
>                  return -ENOMEM;
> +       }

This fixes the PCI state in the error path.

> 
>          chip->card = card;
> 
> @@ -202,6 +205,8 @@
>                  goto alloc_out;
>          }
> 
> +       snd_card_set_dev(card, &pci->dev);
> +
>          *rchip = chip;

And this sets up the missing sysfs stuff.


Takashi




reply via email to

[Prev in Thread] Current Thread [Next in Thread]