Ignore:
Timestamp:
Mar 23, 2009, 9:13:00 AM (16 years ago)
Author:
Paul Smedley
Message:

Updates from Pasha to improve IRQ handling and resolve long delays at startup in APIC mode when using ACPI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/uniaud32-2.0/drv32/rmhelp.cpp

    r352 r421  
    149149//******************************************************************************
    150150//******************************************************************************
     151//PS+++ see to irq.cpp
     152#ifdef ACPI
     153#ifdef __cplusplus
     154extern "C" {
     155#endif
     156struct SaveIRQForSlot
     157{
     158    ULONG  ulSlotNo;
     159    BYTE   LowIRQ;
     160    BYTE   HighIRQ;
     161    BYTE   Pin;   
     162};
     163extern struct SaveIRQForSlot sISRHigh[];
     164extern int  SaveIRQCounter;
     165#ifdef __cplusplus
     166}
     167#endif
     168#endif
    151169BOOL RMRequestIRQ(ULONG ulIrq, BOOL fShared)
    152170{
     
    156174
    157175  Resource.ResourceType          = RS_TYPE_IRQ;
     176#ifdef ACPI  //PS+++
     177  Resource.IRQResource.PCIIrqPin = (USHORT)(sISRHigh[SaveIRQCounter].Pin & 0xf);
     178  if (sISRHigh[SaveIRQCounter].HighIRQ)
     179      Resource.IRQResource.IRQLevel  = (USHORT)sISRHigh[SaveIRQCounter].HighIRQ & 0xff;
     180  else
     181      Resource.IRQResource.IRQLevel  = (USHORT)ulIrq & 0xff;
     182#else
    158183  Resource.IRQResource.IRQLevel  = (USHORT)ulIrq & 0xff;
     184  Resource.IRQResource.PCIIrqPin = 0;
     185#endif
    159186  Resource.IRQResource.IRQFlags  = ( fShared ) ? RS_IRQ_SHARED : RS_IRQ_EXCLUSIVE;
    160   Resource.IRQResource.PCIIrqPin = (USHORT)( (ulIrq >> 8) & 0xf);
    161187
    162188  rc = RMAllocResource(DriverHandle,                    // Handle to driver.
Note: See TracChangeset for help on using the changeset viewer.