Re: [Openvortex-dev] Re: [ALSA - driver 0001138]: errors when installing au8820 modules

Igor Kovalenko
2005-06-09T10:17:05Z

Raymond wrote:
> 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.
>>
>>
>
> So these changes are not neccesary(critical) for
> au88x0_64_bits_compatible.patch (AMD64 and X86_64 ) , just normal ALSA
> cleanup.
>

Actually without snd_card_set_dev() you will get oops shortly because device
pointer won't be available to driver.
DMA mask cleanup is to follow general guidelines about consistent mapping.

--
Kind regards,
Igor V. Kovalenko

-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20