Changeset 389 for GPL/trunk/lib32/irq.c


Ignore:
Timestamp:
Oct 8, 2008, 4:42:59 PM (17 years ago)
Author:
rjerant
Message:

Port interrupt fixes to 1.1.4 code base

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk/lib32/irq.c

    r346 r389  
    200200                rc = pSlot->irqHandlers[u].handler(pSlot->irqNo,
    201201                                                   pSlot->irqHandlers[u].x2, 0);
     202
     203                // HDA Hardware generates controller interrupts and stream interrupts
     204                // the uniaud16 driver only cares about stream interrupts.
     205                // azx_process_interrupt will return rc 2 if the interttupt is from the
     206                // controller. There is no need to call uniaud16 for these interrupts
     207                if ( rc == 2 ) {
     208                    fInInterrupt = FALSE;
     209                    *pulIrq = pSlot->irqNo;
     210                    eoiIrq[pSlot->irqNo] = 0;
     211                    return TRUE;
     212                }
     213
    202214                if (rc == 1) eoi_irq(pSlot->irqNo);
    203215                rc = (eoiIrq[pSlot->irqNo] > 0);
Note: See TracChangeset for help on using the changeset viewer.