Takashi Iwai wrote:
At Wed, 08 Jun 2005 17:06:39 +0800, Raymond wrote: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.
It seem that these two patches for Kernel 2.6 were lost when au88x0 migrate from alsa-driver to alsa-kernel.
http://cvs.sourceforge.net/viewcvs.py/alsa/alsa-driver/pci/au88x0/au88x0.c?r1=1.6&r2=1.7 * fixed the DMA allocation. pci_set_dma_mask() is called together with pci_set_consistent_dma_mask(). also clean up the double check of mask. http://cvs.sourceforge.net/viewcvs.py/alsa/alsa-driver/pci/au88x0/au88x0.c?r1=1.8&r2=1.9 * added snd_card_set_dev() macro. * sysfsfied more pci, isapnp and usb drivers. _______________________________________________ Openvortex-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/openvortex-dev
