Ignore:
Timestamp:
Mar 3, 2011, 8:59:04 PM (14 years ago)
Author:
David Azarewicz
Message:

interrupt fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/uniaud32-2.1.x/drv32/irq.cpp

    r519 r546  
    4747
    4848//******************************************************************************
    49 #ifdef ACPI
    50 //PS+++ fix description
    51 // Problem is in open high IRQ (acpi.psd /SMP /APIC) at boot time.
    52 // In my case - this IRQ use SATA and we have flood IRQ. This flood do
    53 // MASK this IRQ from kernel. Next danis506.add has very slow read from
    54 // disk.
    55 // How to fix.
    56 // At boot time (from DevInit to DevInitComplete) we use low IRQ. In
    57 // DevInitComplete we close low IRQ and open high IRQ. All values for
    58 // IRQ we are getting from ACPI call.
    59 
    60 //PS+++ Array with saving IRQ number
    61 #ifdef __cplusplus
    62 extern "C" {
    63 #endif
    64 struct SaveIRQForSlot
    65 {
    66     ULONG  ulSlotNo;
    67     BYTE   LowIRQ;
    68     BYTE   HighIRQ;
    69     BYTE   Pin;
    70 } sISRHigh[8];     //FIX me to MAX_DEVICES or same
    71 
    72 int  SaveIRQCounter = 0;       //PS+++ current position in array
    73 extern ULONG InitCompleteWas;  //PS+++ Indication of InitComplete call
    74 #ifdef __cplusplus
    75 }
    76 #endif
    77 
    78 #endif //ACPI
    79 //******************************************************************************
    8049BOOL ALSA_SetIrq(ULONG ulIrq, ULONG ulSlotNo, BOOL fShared)
    8150{
     
    10675        return FALSE;
    10776    }
    108 
    109 //PS+++ Begin
    110 #ifdef ACPI
    111     if (InitCompleteWas == 0)
    112     {
    113         dprintf(("RMSetIrq saved %d %d %x was %d", (ULONG)ulIrq, ulSlotNo,(ULONG)sISRHigh[SaveIRQCounter].LowIRQ));
    114         sISRHigh[SaveIRQCounter].ulSlotNo = ulSlotNo;
    115         ulIrq = sISRHigh[SaveIRQCounter].LowIRQ;
    116         SaveIRQCounter++;
    117     }
    118 
    119 #endif
    120 //PS End
    12177
    12278    return TRUE;
Note: See TracChangeset for help on using the changeset viewer.