ok, applying. In the new year, Takashi Iwai wrote: > At Wed, 3 Dec 2003 11:41:23 -0500 (EST), > Jeremy Hall wrote: > > > > there also appears to be a delay of upwards of 2 seconds before it starts > > playing > > > > but I don't have anything more in my logs. > > you're using the cvs version, right? > then apply the patch below. > > > Takashi
> Index: alsa-kernel/pci/ac97/ac97_pcm.c > =================================================================== > RCS file: /suse/tiwai/cvs/alsa/alsa-kernel/pci/ac97/ac97_pcm.c,v > retrieving revision 1.8 > diff -u -r1.8 ac97_pcm.c > --- alsa-kernel/pci/ac97/ac97_pcm.c 3 Dec 2003 13:37:25 -0000 1.8 > +++ alsa-kernel/pci/ac97/ac97_pcm.c 3 Dec 2003 15:58:24 -0000 > @@ -418,16 +418,19 @@ > continue; > avail_slots[0][i] = get_pslots(codec, &rate_table[0][i]); > avail_slots[1][i] = get_cslots(codec); > + printk(KERN_DEBUG "checking codec %d, slots = 0x%x / 0x%x\n", i, > avail_slots[0][i], avail_slots[1][i]); > if (!(codec->scaps & AC97_SCAP_INDEP_SDIN)) { > for (j = 0; j < i; j++) { > if (bus->codec[j]) > avail_slots[1][i] &= ~avail_slots[1][j]; > } > + printk(KERN_DEBUG "-> capture slots = 0x%x\n", > avail_slots[1][i]); > } > } > /* FIXME: add double rate allocation */ > /* first step - exclusive devices */ > for (i = 0; i < pcms_count; i++) { > + printk(KERN_DEBUG "probing pcm %d\n", i); > pcm = &pcms[i]; > rpcm = &rpcms[i]; > /* low-level driver thinks that it's more clever */ > @@ -445,19 +448,23 @@ > for (j = 0; j < 4 && slots; j++) { > if (!bus->codec[j]) > continue; > + printk(KERN_DEBUG ".. probing codec %d, slots = 0x%x\n", j, > slots); > rates = ~0; > if (pcm->exclusive) { > /* exclusive access */ > tmp = avail_slots[pcm->stream][j] & slots; > + printk(KERN_DEBUG ".. tmp = 0x%x\n", tmp); > for (k = 0; k < i; k++) { > if (rpcm->stream == rpcms[k].stream) > tmp &= ~rpcms[k].r[0].rslots[j]; > } > + printk(KERN_DEBUG ".. tmp = 0x%x\n", tmp); > if (tmp) { > rpcm->r[0].rslots[j] = tmp; > rpcm->r[0].codec[j] = bus->codec[j]; > rpcm->r[0].rate_table[j] = > rate_table[pcm->stream][j]; > rates = get_rates(rpcm, j, tmp, 0); > + printk(KERN_DEBUG ".. rslots = 0x%x, > rate_table = %d, rates = 0x%x\n", tmp, rpcm->r[0].rate_table[j], rates); > avail_slots[pcm->stream][j] &= ~tmp; > } > } else { > @@ -476,6 +483,7 @@ > } > if (rpcm->rates == ~0) > rpcm->rates = 0; /* not used */ > + printk(KERN_DEBUG "--> slots = 0x%x, rates = 0x%x\n", > rpcm->r[0].slots, rpcm->rates); > } > bus->pcms_count = pcms_count; > bus->pcms = rpcms; > @@ -500,6 +508,7 @@ > unsigned char reg; > int err = 0; > > + printk(KERN_DEBUG "ac97_pcm_open: rate = %d, cfg = %d, slots = 0x%x\n", rate, > cfg, slots); > if (rate > 48000) /* FIXME: add support for double rate */ > return -EINVAL; > bus = pcm->bus; > @@ -548,9 +557,10 @@ > } > if (reg_ok & (1 << (reg - AC97_PCM_FRONT_DAC_RATE))) > continue; > + printk(KERN_DEBUG "setting ac97 reg 0x%x to rate > %d\n", reg, rate); > err = snd_ac97_set_rate(pcm->r[r].codec[cidx], reg, > rate); > if (err < 0) > - snd_printk(KERN_ERR "error in > snd_ac97_set_rate: cidx=%d, reg=0x%x, rate=%d\n, err=%d", cidx, reg, rate, err); > + snd_printk(KERN_ERR "error in > snd_ac97_set_rate: cidx=%d, reg=0x%x, rate=%d, err=%d\n", cidx, reg, rate, err); > else > reg_ok |= (1 << (reg - > AC97_PCM_FRONT_DAC_RATE)); > } ------------------------------------------------------- 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-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel