VT1724 has seperate DMAs for the analog and the SPDIF streams while ICE1712 has only one for both (mixed up).
Confusingly the analog PCM is named "professional" there because it was called so in ice1712 driver, and vt1724 driver is derived from ice1712 driver. ICE1712 has two analog connections modes, consumer mode (usually via ac97) and professional mode (via i2s).
Uff, that is a lot of background knowledge. Would it be possible to put this explanation into ice1724.c code? It would definitely help newcomers. Thanks a lot.
A patch is welcome ;)
I know, not exactly creative :) :
diff -r 42321871a7dc pci/ice1712/ice1724.c --- a/pci/ice1712/ice1724.c Thu Apr 05 17:08:57 2007 +0200 +++ b/pci/ice1712/ice1724.c Fri Apr 06 22:59:33 2007 +0200 @@ -2345,6 +2345,14 @@ static int __devinit snd_vt1724_probe(st } c = &no_matched; __found: + /* + * VT1724 has separate DMAs for the analog and the SPDIF streams while + * ICE1712 has only one for both (mixed up). + * + * Confusingly the analog PCM is named "professional" here because it + * was called so in ice1712 driver, and vt1724 driver is derived from + * ice1712 driver. + */
if ((err = snd_vt1724_pcm_profi(ice, pcm_dev++)) < 0) { snd_card_free(card);