Re: Show stoppers

Sean Connor (sec@konatsu.ml.org)
Thu, 15 Oct 1998 16:56:38 -0600


On Wed, Oct 14, 1998 at 06:56:11PM -0400, Ion Badulescu wrote:
> On Tue, 13 Oct 1998 17:54:43 EDT, Gregory Maxwell wrote:
> >
> > Speaking of sound...
> >
> > Sound still hard-locks my computer:
> >
> > Dual 166MMX
> > Buslogic SCSI
> > Awe 32 *OR* Plain SB16
> >
> > Most recently tested kernel: 2.1.125+ac2.
>
> Same here, but on a VIA VP3 motherboard, UP. 2.1.125 locks up hard when using
> either a SB16 or a CS4236 at 44.1kHz. So not even "voodoo programming" helps..
>
> + /* I hate voodoo programming but .. */
> + udelay(20);
>
> I can try it with larger udelay() values if the author (Alan?) thinks it could
> make a difference.

Don't bother. I've tried it, and it doesn't work. The only thing that seems
to help is the following patch, originally by Andrea Arcangeli.

Note that this is against stock 2.1.125 -- I don't know if it will cleanly
apply against the ac series.

--- linux/drivers/sound/dmabuf.c~ Wed Sep 2 14:23:22 1998
+++ linux/drivers/sound/dmabuf.c Sun Oct 11 13:10:12 1998
@@ -614,7 +614,6 @@
else {
int chan = dmap->dma;
clear_dma_ff(chan);
- disable_dma(dmap->dma);
pos = get_dma_residue(chan);
pos = dmap->bytes_in_use - pos;

@@ -633,7 +632,6 @@
pos = 0;
if (pos >= dmap->bytes_in_use)
pos = 0;
- enable_dma(dmap->dma);
}
restore_flags(flags);
/* printk( "%04x ", pos); */
@@ -989,9 +987,7 @@
if (!(dmap->flags & DMA_NODMA)) {
int chan = dmap->dma, pos, n;
clear_dma_ff(chan);
- disable_dma(dmap->dma);
pos = dmap->bytes_in_use - get_dma_residue(chan);
- enable_dma(dmap->dma);
pos = pos / dmap->fragment_size; /* Actual qhead */
if (pos < 0 || pos >= dmap->nbufs)
pos = 0;
@@ -1079,9 +1075,7 @@
if (!(dmap->flags & DMA_NODMA)) {
int chan = dmap->dma, pos, n;
clear_dma_ff(chan);
- disable_dma(dmap->dma);
pos = dmap->bytes_in_use - get_dma_residue(chan);
- enable_dma(dmap->dma);

pos = pos / dmap->fragment_size; /* Actual qhead */
if (pos < 0 || pos >= dmap->nbufs)

-- 
  -Sean Connor  (sec@konatsu.ml.org)
                (sec@cableregina.com)
                (sec@softhome.net)

The day Microsoft produces something that doesn't suck is the day they start making vacuum cleaners.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/