At Thu, 24 May 2007 05:47:19 -0500, Ash Willis wrote:
- if (dma8 & 0x20)
dma16 = 5;
- else if (dma8 & 0x40)
dma16 = 6;
- else if (dma8 & 0x80)
dma16 = 7;
- else
- {
printk(KERN_ERR "CS5530: No 16bit DMA enabled\n");
snd_cs5530_free(chip);
return -ENODEV;
- }
Ditto. (BTW, is dma16 really necessary to be zero-initialized at beginning?)
It is, I think. It supresses a compiler warning, due the to fact that the final else path does not set dma16 and so if this path is taken the variable is uninitialied...not that we care, but we certainly don't need a compiler warning.
OK, it sounds like a compiler bug. Then let's keep zero-initialization to make our nerves pieceful.
Is the driver confirmed to work with the recent kernel? If yes, we can put cs5530.c to alsa-kernel so that it'll be merged to the next linux kernel. alsa-driver tree still needs cs5530.c just including alsa-kernel code, though. Also, don't forget to add a description to ALSA-Configuration.txt.
Could you fix these issues and resend the patch?
It was devleoped on 2.6.21.1. OK, I'll make all the necessary changes.
Thanks.
Takashi