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