Changeset 346


Ignore:
Timestamp:
Apr 18, 2008, 6:32:11 AM (17 years ago)
Author:
Brendan Oakley
Message:

IRQ patch from Pavel

Location:
GPL/trunk
Files:
2 edited

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
Note: See TracChangeset for help on using the changeset viewer.