Re: Linux-2.4.20-pre4-ac1: i810_audio broken

Doug Ledford
2002-08-28T16:08:01Z

On Wed, Aug 28, 2002 at 06:59:38PM +0300, Andris Pavenis wrote:
>
> Tried, it helps for i810_audio.c both from 2.4.20-pre1-ac2 and
> 2.4.20-pre4-ac1. (Patch simply to be sure we're talking about the
> same thing). In both cases I put i810_audio.c in 2.4.20-pre4-ac1 source
> tree.

[ Alan, you should be perking your ears up about now I think... ]

OK, let's be more precise on this ;-) If you put this patch into the
2.4.20-pre4-ac1 kernel, does it actually solve the DMA overrun problem
(as in they don't happen anymore) or does it only reduce the frequency
of the problem but it does still exist? Same question for the drain_dac()
DMA timeout messages?

>
> Andris
>
> --- i810_audio.c-2.4.20-pre1-ac2 2002-08-28 09:50:44.000000000 +0300
> +++ i810_audio.c 2002-08-28 18:51:34.000000000 +0300
> @@ -732,8 +732,6 @@
> outb(0, card->iobase + PI_CR);
> // wait for the card to acknowledge shutdown
> while( inb(card->iobase + PI_CR) != 0 ) ;
> - // reset the dma engine now
> - outb(0x02, card->iobase + PI_CR);
> // now clear any latent interrupt bits (like the halt bit)
> if(card->pci_id == PCI_DEVICE_ID_SI_7012)
> outb( inb(card->iobase + PI_PICB), card->iobase + PI_PICB );
> @@ -784,8 +782,6 @@
> outb(0, card->iobase + PO_CR);
> // wait for the card to acknowledge shutdown
> while( inb(card->iobase + PO_CR) != 0 ) ;
> - // reset the dma engine now
> - outb(0x02, card->iobase + PO_CR);
> // now clear any latent interrupt bits (like the halt bit)
> if(card->pci_id == PCI_DEVICE_ID_SI_7012)
> outb( inb(card->iobase + PO_PICB), card->iobase + PO_PICB );

--
Doug Ledford <dledford@redhat.com> 919-754-3700 x44233
Red Hat, Inc.
1801 Varsity Dr.
Raleigh, NC 27606