Subject: Re: TC bba audio problem on DEC3000/300
To: Gregory McGarry <g.mcgarry@ieee.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: port-alpha
Date: 07/17/2000 23:02:41
On Tue, Jul 18, 2000 at 07:42:35AM +1000, Gregory McGarry wrote:

 > The correct fix goes something like the patch below (untested).
 > This is consistent with other ioasic handlers
 > (cf sys/arch/pmax/pmax/dec_maxine.c).  Particularly important
 > is the handling of DMA overruns.

Yah, I'll buy that.  I have a slightly cleaner patch, tho (which
inlines it into the CHECKINTR macro).  BTW, the driver interrupt
handler is not called to signal error on the transfer in the OVRN
case, so I suppose we should call into the driver for that, and
then just modify the driver as appropriate later.

 > 
 > Index: ioasic.c
 > ===================================================================
 > RCS file: /cvsroot/syssrc/sys/arch/alpha/tc/ioasic.c,v
 > retrieving revision 1.32
 > diff -c -r1.32 ioasic.c
 > *** ioasic.c    2000/06/05 21:47:30     1.32
 > --- ioasic.c    2000/07/17 21:34:36
 > ***************
 > *** 307,312 ****
 > --- 307,313 ----
 >         register int ifound;
 >         int gifound;
 >         u_int32_t sir;
 > +       u_int32_t xxintr;
 >   
 >         gifound = 0;
 >         do {
 > ***************
 > *** 329,334 ****
 > --- 330,345 ----
 >                 CHECKINTR(IOASIC_DEV_SCC1, IOASIC_INTR_SCC_1);
 >                 CHECKINTR(IOASIC_DEV_LANCE, IOASIC_INTR_LANCE);
 >                 CHECKINTR(IOASIC_DEV_ISDN, IOASIC_INTR_ISDN_TXLOAD | IOASIC_INTR_ISDN_RXLOAD);
 > + 
 > + #define PTRLOAD       (IOASIC_INTR_ISDN_TXLOAD | IOASIC_INTR_ISDN_RXLOAD)
 > + #define ERRORS        (IOASIC_INTR_ISDN_OVRUN)
 > + 
 > +                 xxxintr = sir & (ERRORS | PTRLOAD);
 > +                 if (xxxintr) {
 > +                         ifound = 1;
 > +                         *(u_int32_t *)(ioasic_base + IOASIC_INTR)
 > +                                 = sir &~ xxxintr;
 > +                 }
 >   
 >                 gifound |= ifound;
 >         } while (ifound);
 > 
 > 
 > 	-- Gregory McGarry <g.mcgarry@ieee.org>
 > 

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>