Changeset 346

Show
Ignore:
Timestamp:
04/18/08 06:32:11 (8 months ago)
Author:
gentux2
Message:

IRQ patch from Pavel

Location:
GPL/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • GPL/trunk/drv32/rmhelp.cpp

    r65 r346  
    156156 
    157157  Resource.ResourceType          = RS_TYPE_IRQ; 
    158   Resource.IRQResource.IRQLevel  = (USHORT)ulIrq; 
     158  Resource.IRQResource.IRQLevel  = (USHORT)ulIrq & 0xff; 
    159159  Resource.IRQResource.IRQFlags  = ( fShared ) ? RS_IRQ_SHARED : RS_IRQ_EXCLUSIVE; 
    160   Resource.IRQResource.PCIIrqPin = RS_PCI_INT_NONE; 
     160  Resource.IRQResource.PCIIrqPin = (USHORT)( (ulIrq >> 8) & 0xf); 
    161161 
    162162  rc = RMAllocResource(DriverHandle,                    // Handle to driver. 
  • GPL/trunk/lib32/irq.c

    r84 r346  
    1 /* $Id: irq.c,v 1.1.1.1 2003/07/02 13:57:02 eleph Exp $ */ 
    21/* 
    32 * OS/2 implementation of Linux irq kernel services 
     
    7069                unsigned long x0, const char *x1, void *x2) 
    7170{ 
    72     IRQ_SLOT    *pSlot = FindSlot(irq); 
     71    IRQ_SLOT    *pSlot = FindSlot(irq & 0xff); 
    7372    unsigned    u, uSlotNo = (unsigned)-1; 
    7473    if( !pSlot ) 
     
    9695            if( pSlot->irqHandlers[u].handler == NULL ) 
    9796            { 
    98                 pSlot->irqNo = irq; 
     97                pSlot->irqNo = irq & 0xff; 
    9998                pSlot->irqHandlers[u].handler = handler; 
    10099                pSlot->irqHandlers[u].x0 = x0; 
     
    103102 
    104103                if( pSlot->flHandlers != 0 || 
    105                    ALSA_SetIrq(irq, uSlotNo, (x0 & SA_SHIRQ) != 0) ) 
     104                   ALSA_SetIrq( irq & 0xff, uSlotNo, (x0 & SA_SHIRQ) != 0) ) 
    106105                { 
    107106                    pSlot->flHandlers |= 1 << u; 
     
    114113    } 
    115114 
    116     dprintf(("request_irq: Unable to register irq handler for irq %d\n", irq)); 
     115    dprintf(("request_irq: Unable to register irq handler for irq %d\n", irq & 0xff )); 
    117116    return 1; 
    118117} 
     
    163162     if( pSlot )        pSlot->fEOI = 1; 
    164163     */ 
    165     eoiIrq[irq]++; 
     164    eoiIrq[irq & 0xff]++; 
    166165} 
    167166