diff options
Diffstat (limited to 'sound/pci/au88x0/au88x0.c')
-rw-r--r-- | sound/pci/au88x0/au88x0.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c index 7d9184f7367a..126870ec063a 100644 --- a/sound/pci/au88x0/au88x0.c +++ b/sound/pci/au88x0/au88x0.c | |||
@@ -151,14 +151,18 @@ snd_vortex_create(struct snd_card *card, struct pci_dev *pci, vortex_t ** rchip) | |||
151 | // check PCI availability (DMA). | 151 | // check PCI availability (DMA). |
152 | if ((err = pci_enable_device(pci)) < 0) | 152 | if ((err = pci_enable_device(pci)) < 0) |
153 | return err; | 153 | return err; |
154 | if (pci_set_dma_mask(pci, DMA_32BIT_MASK)) { | 154 | if (pci_set_dma_mask(pci, DMA_32BIT_MASK) < 0 || |
155 | pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK) < 0) { | ||
155 | printk(KERN_ERR "error to set DMA mask\n"); | 156 | printk(KERN_ERR "error to set DMA mask\n"); |
157 | pci_disable_device(pci); | ||
156 | return -ENXIO; | 158 | return -ENXIO; |
157 | } | 159 | } |
158 | 160 | ||
159 | chip = kzalloc(sizeof(*chip), GFP_KERNEL); | 161 | chip = kzalloc(sizeof(*chip), GFP_KERNEL); |
160 | if (chip == NULL) | 162 | if (chip == NULL) { |
163 | pci_disable_device(pci); | ||
161 | return -ENOMEM; | 164 | return -ENOMEM; |
165 | } | ||
162 | 166 | ||
163 | chip->card = card; | 167 | chip->card = card; |
164 | 168 | ||
@@ -208,6 +212,8 @@ snd_vortex_create(struct snd_card *card, struct pci_dev *pci, vortex_t ** rchip) | |||
208 | goto alloc_out; | 212 | goto alloc_out; |
209 | } | 213 | } |
210 | 214 | ||
215 | snd_card_set_dev(card, &pci->dev); | ||
216 | |||
211 | *rchip = chip; | 217 | *rchip = chip; |
212 | 218 | ||
213 | return 0; | 219 | return 0; |