Update of /cvsroot/alsa/alsa-kernel/pci/ac97
In directory sc8-pr-cvs1:/tmp/cvs-serv3222
Modified Files:
ac97_pcm.c
Log Message:
Fixed AC97 slot allocation for 2nd+ PCM in assign function
Index: ac97_pcm.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_pcm.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ac97_pcm.c 28 Nov 2003 14:45:24 -0000 1.6
+++ ac97_pcm.c 30 Nov 2003 18:35:33 -0000 1.7
@@ -408,13 +408,15 @@
memset(rate_table, 0, sizeof(rate_table));
for (i = 0; i < 4; i++) {
codec = bus->codec[i];
- if (! codec)
+ if (!codec)
continue;
avail_slots[0][i] = get_pslots(codec, &rate_table[0][i]);
avail_slots[1][i] = get_cslots(codec);
if (!(codec->scaps & AC97_SCAP_INDEP_SDIN)) {
- for (j = 0; j < i; j++)
- avail_slots[1][i] &= ~avail_slots[1][j];
+ for (j = 0; j < i; j++) {
+ if (bus->codec[j])
+ avail_slots[1][i] &= ~avail_slots[1][j];
+ }
}
}
/* FIXME: add double rate allocation */
@@ -434,12 +436,16 @@
rpcm->rates = ~0;
slots = pcm->r[0].slots;
for (j = 0; j < 4 && slots; j++) {
+ if (!bus->codec[j])
+ continue;
rates = ~0;
if (pcm->exclusive) {
/* exclusive access */
tmp = avail_slots[pcm->stream][j] & slots;
- for (k = 0; k < i; k++)
- tmp &= ~rpcms[k].r[0].rslots[j];
+ for (k = 0; k < i; k++) {
+ if (rpcm->stream == rpcms[k].stream)
+ tmp &= ~rpcms[k].r[0].rslots[j];
+ }
if (tmp) {
rpcm->r[0].rslots[j] = tmp;
rpcm->r[0].codec[j] = bus->codec[j];
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog