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.