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/strategy.c

    r84 r421  
    7777//******************************************************************************
    7878// External initialization complete entry-point
     79#ifdef ACPI
     80// See desription in irq.cpp
     81#include "irqos2.h"                 //PS+++
     82#ifdef __cplusplus
     83extern "C" {
     84#endif
     85ULONG InitCompleteWas = 0;          //PS+++ Indication of InitComplete call
     86struct SaveIRQForSlot
     87{
     88    ULONG  ulSlotNo;
     89    BYTE   LowIRQ;
     90    BYTE   HighIRQ;
     91    BYTE   Pin;   
     92};
     93extern struct SaveIRQForSlot sISRHigh[];
     94extern int  SaveIRQCounter;
     95#ifdef __cplusplus
     96}
     97#endif
     98#endif //ACPI
    7999//******************************************************************************
    80100#pragma off (unreferenced)
     
    82102#pragma on (unreferenced)
    83103{
     104#ifdef ACPI
     105//PS+++ Begin
     106    ULONG  i, rc = 0;
     107
     108    InitCompleteWas = 1;
     109
     110    for (i = 0; i < SaveIRQCounter; i++)
     111    {
     112         dprintf(("Close IRQ%d - Open IRQ%d",(ULONG)sISRHigh[i].LowIRQ,(ULONG)sISRHigh[i].HighIRQ));
     113         if (sISRHigh[i].HighIRQ)
     114         {
     115             ALSA_FreeIrq(sISRHigh[i].LowIRQ);
     116             if (!ALSA_SetIrq(sISRHigh[i].HighIRQ, sISRHigh[i].ulSlotNo, 1))
     117             {
     118                 return (RPERR_COMMAND | RPDONE);
     119             }
     120         }
     121    }
     122#endif
     123//PS++ End
    84124#ifdef DEBUG
    85125    dprintf(("StratInitComplete"));
Note: See TracChangeset for help on using the changeset viewer.