Changeset 516 for GPL/branches


Ignore:
Timestamp:
Jul 14, 2010, 10:34:40 PM (15 years ago)
Author:
David Azarewicz
Message:

OSS32_Initialize changes, code cleanups

Location:
GPL/branches/uniaud32-2.1.x
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/uniaud32-2.1.x/include/unicard.h

    r455 r516  
    5151#define CARD_CS5535     21
    5252
    53 #define CARDS_NUM       21
     53#define CARDS_NUM       22
    5454
    5555#define CARD_STRING_SBLIVE      "SBLIVE"
  • GPL/branches/uniaud32-2.1.x/lib32/ossidc.cpp

    r504 r516  
    2424
    2525#define INCL_NOPMAPI
    26 #define INCL_DOSERRORS          // for ERROR_INVALID_FUNCTION
     26#define INCL_DOSERRORS                  // for ERROR_INVALID_FUNCTION
    2727#include <os2.h>
    2828#include <ossdefos2.h>
     
    4545BOOL CallOSS16(ULONG cmd, ULONG param1, ULONG param2)
    4646{
    47     BOOL        rc;
    48 
    49     if(idc16_PddHandler == 0) {
    50             return FALSE;
    51     }
    52 
    53     rc = CallPDD16(idc16_PddHandler, cmd, param1, param2);
    54     return rc;
     47        BOOL            rc;
     48
     49        if(idc16_PddHandler == 0) {
     50                return FALSE;
     51        }
     52
     53        rc = CallPDD16(idc16_PddHandler, cmd, param1, param2);
     54        return rc;
    5555}
    5656//******************************************************************************
    5757exitcall_t fnCardExitCall[OSS32_MAX_AUDIOCARDS] = {0};
    5858extern "C" {
    59 #if 0
    60 
    61     typedef int  (initcall_tt)(void);
    62     typedef void (exitcall_tt)(void);
     59
     60/* this table should be discarded after init time */
    6361
    6462typedef struct cardcalls_t {
    65     int card_id;
    66     initcall_tt *cinitcall;
    67     exitcall_tt *cexitcall;
     63        int card_id;
     64        initcall_t *cinitcall;
     65        exitcall_t *cexitcall;
    6866}cardcalls_t;
    6967
    70 cardcalls_t cardcalls[1] = {
    71     //    { CARD_SBLIVE,   name_module(alsa_card_emu10k1, _init, _exit) },
    72     { CARD_SBLIVE,   __initcall_alsa_card_emu10k1_init, __exitcall_alsa_card_emu10k1_exit },
    73 /*
    74     { CARD_CMEDIA,   name_module(alsa_card_cmipci, _init, _exit) },
    75     { CARD_ALS4000,  name_module(alsa_card_als4000, _init, _exit) },
    76     { CARD_CS4281,   name_module(alsa_card_cs4281, _init, _exit) },
    77     { CARD_ICH,      name_module(alsa_card_intel8x0, _init, _exit) },
    78     { CARD_CS46XX,   name_module(alsa_card_cs46xx, _init, _exit) },
    79     { CARD_VIA82XX,  name_module(alsa_card_via82xx, _init, _exit) },
    80     { CARD_ESS1938,  name_module(alsa_card_es1938, _init, _exit) },
    81 //    { CARD_VORTEX,   name_module(alsa_card_vortex, _init, _exit) },
    82     { CARD_ENSONIQ,  name_module(alsa_card_ens137x, _init, _exit) },
    83     { CARD_YAMAHA,   name_module(alsa_card_ymfpci, _init, _exit) },
    84     { CARD_MAESTRO,  name_module(alsa_card_es1968, _init, _exit) },
    85     { CARD_MAESTRO3, name_module(alsa_card_m3, _init, _exit) },
    86     { CARD_ALI5451,  name_module(alsa_card_ali, _init, _exit) },
    87     { CARD_TRIDENT,  name_module(alsa_card_trident, _init, _exit) },
    88     { CARD_NEOMAGIC, name_module(alsa_card_nm256, _init, _exit) },
    89     { CARD_ATIIXP,   name_module(alsa_card_atiixp, _init, _exit) },
    90     { CARD_FM801,    name_module(alsa_card_fm801, _init, _exit) },
    91     { CARD_AUDIGYLS, name_module(alsa_card_ca0106, _init, _exit) },
    92     { CARD_BT87X,    name_module(alsa_card_bt87x, _init, _exit) },
    93     { CARD_AZX,      name_module(alsa_card_azx, _init, _exit) }*/
     68cardcalls_t cardcalls[CARDS_NUM] = {
     69        { CARD_ICH,              &name_module_init(alsa_card_intel8x0_init),    &name_module_exit(alsa_card_intel8x0_exit)        },
     70        { CARD_VIA82XX,  &name_module_init(alsa_card_via82xx_init),             &name_module_exit(alsa_card_via82xx_exit)         },
     71        { CARD_SBLIVE,   &name_module_init(alsa_card_emu10k1_init),             &name_module_exit(alsa_card_emu10k1_exit)         },
     72        { CARD_CMEDIA,   &name_module_init(alsa_card_cmipci_init),              &name_module_exit(alsa_card_cmipci_exit)          },
     73        { CARD_ALS4000,  &name_module_init(alsa_card_als4000_init),             &name_module_exit(alsa_card_als4000_exit)         },
     74        { CARD_CS4281,   &name_module_init(alsa_card_cs4281_init),              &name_module_exit(alsa_card_cs4281_exit)          },
     75        { CARD_CS46XX,   &name_module_init(alsa_card_cs46xx_init),              &name_module_exit(alsa_card_cs46xx_exit)          },
     76        { CARD_CS5535,   &name_module_init(alsa_card_cs5535audio_init), &name_module_exit(alsa_card_cs5535audio_exit) },
     77        { CARD_ESS1938,  &name_module_init(alsa_card_es1938_init),              &name_module_exit(alsa_card_es1938_exit)          },
     78        { CARD_ENSONIQ,  &name_module_init(alsa_card_ens137x_init),             &name_module_exit(alsa_card_ens137x_exit)         },
     79        { CARD_YAMAHA,   &name_module_init(alsa_card_ymfpci_init),              &name_module_exit(alsa_card_ymfpci_exit)          },
     80        { CARD_MAESTRO,  &name_module_init(alsa_card_es1968_init),              &name_module_exit(alsa_card_es1968_exit)          },
     81        { CARD_MAESTRO3, &name_module_init(alsa_card_m3_init),                  &name_module_exit(alsa_card_m3_exit)              },
     82        { CARD_ALI5451,  &name_module_init(alsa_card_ali_init),                 &name_module_exit(alsa_card_ali_exit)             },
     83        { CARD_TRIDENT,  &name_module_init(alsa_card_trident_init),             &name_module_exit(alsa_card_trident_exit)         },
     84#ifdef VORTEX
     85        { CARD_VORTEX,   &name_module_init(alsa_card_vortex_init),              &name_module_exit(alsa_card_vortex_exit)          },
     86#else
     87        { CARD_VORTEX,   NULL,          NULL },
     88#endif
     89        { CARD_NEOMAGIC, &name_module_init(alsa_card_nm256_init),               &name_module_exit(alsa_card_nm256_exit)           },
     90        { CARD_FM801,    &name_module_init(alsa_card_fm801_init),               &name_module_exit(alsa_card_fm801_exit)           },
     91        { CARD_ATIIXP,   &name_module_init(alsa_card_atiixp_init),              &name_module_exit(alsa_card_atiixp_exit)          },
     92        { CARD_AUDIGYLS, &name_module_init(alsa_card_ca0106_init),              &name_module_exit(alsa_card_ca0106_exit)          },
     93        { CARD_AZX,              &name_module_init(alsa_card_azx_init),                 &name_module_exit(alsa_card_azx_exit)             },
     94        { CARD_BT87X,    &name_module_init(alsa_card_bt87x_init),               &name_module_exit(alsa_card_bt87x_exit)           },
    9495};
    95 #endif
    96 
    97 int        nrCardsDetected = 0;
    98 int        fStrategyInit = FALSE;
     96
     97int        nrCardsDetected = 0;
     98int        fStrategyInit = FALSE;
    9999void pcm_info(void);
    100100void FillCaps(ULONG deviceid);
    101101};
    102102//******************************************************************************
     103// This routine should be discarded after init time
    103104OSSRET OSS32_Initialize(void)
    104105{
    105     fStrategyInit = TRUE;
    106 
    107     if(DevSetTimer(TimerHandler16) != 0) {
    108         dprintf(("DevSetTimer failed!!"));
    109         DebugInt3();
    110         return OSSERR_INIT_FAILED;
    111     }
    112     rprintf(("\nUniaud version %s\n",UNIAUD_VERSION));
    113     dprintf(("OSS32_Initialize. Start address: %X", OffsetBeginCS32));
    114         //DebugInt3();
    115 
    116     if(call_module_init(alsa_sound_init) != 0)       return OSSERR_INIT_FAILED;
    117     dprintf(("OSS32_Initialize1. Start address: %X", OffsetBeginCS32));
    118     if(call_module_init(alsa_pcm_init) != 0)         return OSSERR_INIT_FAILED;
    119     if(call_module_init(alsa_hwdep_init) != 0)       return OSSERR_INIT_FAILED;
    120     if(call_module_init(alsa_timer_init) != 0)       return OSSERR_INIT_FAILED;
    121 
    122     if(call_module_init(alsa_rawmidi_init) != 0)     return OSSERR_INIT_FAILED;
    123     if(call_module_init(alsa_seq_init) != 0)         return OSSERR_INIT_FAILED;
    124     if(call_module_init(alsa_opl3_init) != 0)        return OSSERR_INIT_FAILED;
    125     if(call_module_init(alsa_opl3_seq_init) != 0)    return OSSERR_INIT_FAILED;
    126 
    127     if(call_module_init(alsa_mpu401_uart_init) != 0) return OSSERR_INIT_FAILED;
    128 
    129     /* Init functions for HDA audio */
    130     call_module_init(patch_analog_init);
    131     call_module_init(patch_atihdmi_init);
    132     call_module_init(patch_cmedia_init);
    133     call_module_init(patch_conexant_init);
    134     call_module_init(patch_realtek_init);
    135     call_module_init(patch_sigmatel_init);
    136     call_module_init(patch_via_init);
    137     dprintf(("OSS32_Initialize: ForceCard=%d", ForceCard));
    138 #if 0
    139     int i;
    140 
    141     if (ForceCard != CARD_NONE)
    142     {
    143         if (cardcalls[ForceCard].cinitcall() == 0)
    144             fnCardExitCall[nrCardsDetected] = cardcalls[ForceCard].cexitcall;
    145         for (i=0; i < CARDS_NUM; i++)
    146         {
    147             if (i==ForceCard) continue;
    148             if (cardcalls[i].cinitcall() == 0)
    149                 fnCardExitCall[nrCardsDetected] = cardcalls[i].cexitcall;
    150             if (nrCardsDetected >= OSS32_MAX_AUDIOCARDS)
    151                 break;
    152         }
    153     } else
    154     {
    155         for (i=0; i < CARDS_NUM; i++)
    156         {
    157             dprintf(("calling: %X at %X", i, cardcalls[i].cinitcall));
    158             if (cardcalls[i].cinitcall() == 0)
    159                 fnCardExitCall[nrCardsDetected] = cardcalls[i].cexitcall;
    160             if (nrCardsDetected >= OSS32_MAX_AUDIOCARDS)
    161                 break;
    162         }
    163     }
    164 #else
    165     //Check for SoundBlaster Live!
    166     if((ForceCard == CARD_NONE || ForceCard == CARD_ICH) &&
    167        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_intel8x0_init) == 0)
    168     {
    169         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_intel8x0_exit);
    170     }
    171     if((ForceCard == CARD_NONE || ForceCard == CARD_VIA82XX) &&
    172        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_via82xx_init) == 0)
    173     {
    174         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_via82xx_exit);
    175     }
    176 
    177     if((ForceCard == CARD_NONE || ForceCard == CARD_SBLIVE) &&
    178        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_emu10k1_init) == 0)
    179     {
    180         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_emu10k1_exit);
    181     }
    182 
    183     if((ForceCard == CARD_NONE || ForceCard == CARD_CMEDIA) &&
    184        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cmipci_init) == 0)
    185     {
    186         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cmipci_exit);
    187     }
    188     if((ForceCard == CARD_NONE || ForceCard == CARD_ALS4000) &&
    189        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_als4000_init) == 0)
    190     {
    191         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_als4000_exit);
    192     }
    193     if((ForceCard == CARD_NONE || ForceCard == CARD_CS4281) &&
    194        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cs4281_init) == 0)
    195     {
    196         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cs4281_exit);
    197     }
    198     if((ForceCard == CARD_NONE || ForceCard == CARD_CS46XX) &&
    199        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cs46xx_init) == 0)
    200     {
    201         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cs46xx_exit);
    202     }
    203     if((ForceCard == CARD_NONE || ForceCard == CARD_CS5535) &&
    204        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_cs5535audio_init) == 0)
    205     {
    206         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_cs5535audio_exit);
    207     }
    208     if((ForceCard == CARD_NONE || ForceCard == CARD_ESS1938) &&
    209        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_es1938_init) == 0)
    210     {
    211         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_es1938_exit);
    212     }
    213     if((ForceCard == CARD_NONE || ForceCard == CARD_ENSONIQ) &&
    214        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ens137x_init) == 0)
    215     {
    216         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ens137x_exit);
    217     }
    218     if((ForceCard == CARD_NONE || ForceCard == CARD_YAMAHA) &&
    219        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ymfpci_init) == 0)
    220     {
    221         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ymfpci_exit);
    222     }
    223     if((ForceCard == CARD_NONE || ForceCard == CARD_MAESTRO) &&
    224        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_es1968_init) == 0)
    225     {
    226         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_es1968_exit);
    227     }
    228     if((ForceCard == CARD_NONE || ForceCard == CARD_MAESTRO3) &&
    229        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_m3_init) == 0)
    230     {
    231         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_m3_exit);
    232     }
    233     if((ForceCard == CARD_NONE || ForceCard == CARD_ALI5451) &&
    234        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ali_init) == 0)
    235     {
    236         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ali_exit);
    237     }
    238     if((ForceCard == CARD_NONE || ForceCard == CARD_TRIDENT) &&
    239        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_trident_init) == 0)
    240     {
    241         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_trident_exit);
    242     }
    243 #ifdef VORTEX
    244     if((ForceCard == CARD_NONE || ForceCard == CARD_VORTEX) &&
    245        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_vortex_init) == 0)
    246     {
    247         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_vortex_exit);
    248    }
    249 #endif
    250     if((ForceCard == CARD_NONE || ForceCard == CARD_NEOMAGIC) &&
    251        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_nm256_init) == 0)
    252     {
    253         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_nm256_exit);
    254     }
    255     if((ForceCard == CARD_NONE || ForceCard == CARD_FM801) &&
    256        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_fm801_init) == 0)
    257     {
    258         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_fm801_exit);
    259     }
    260     if((ForceCard == CARD_NONE || ForceCard == CARD_ATIIXP) &&
    261        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_atiixp_init) == 0)
    262     {
    263         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_atiixp_exit);
    264     }
    265     if((ForceCard == CARD_NONE || ForceCard == CARD_AUDIGYLS) &&
    266        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_ca0106_init) == 0)
    267     {
    268         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_ca0106_exit);
    269     }
    270     if((ForceCard == CARD_NONE || ForceCard == CARD_AZX) &&
    271        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_azx_init) == 0)
    272     {
    273         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_azx_exit);
    274     }
    275     if((ForceCard == CARD_NONE || ForceCard == CARD_BT87X) &&
    276        nrCardsDetected < (OSS32_MAX_AUDIOCARDS-1) && call_module_init(alsa_card_bt87x_init) == 0)
    277     {
    278         fnCardExitCall[nrCardsDetected] = name_module_exit(alsa_card_bt87x_exit);
    279     }
    280 #endif
    281     fStrategyInit = FALSE;
    282 
    283     if(nrCardsDetected != 0) {
    284         pcm_info();
    285         for(int i=0;i<nrCardsDetected;i++) {
    286             FillCaps(i);
    287         }
    288         dprintf(("OSS32_Initialize: SUCCESS. Cards=%d", nrCardsDetected));
    289         return OSSERR_SUCCESS;
    290     }
    291     dprintf(("OSS32_Initialize. FAILED"));
    292     return OSSERR_INIT_FAILED;
     106        short sI;
     107
     108        fStrategyInit = TRUE;
     109
     110        if(DevSetTimer(TimerHandler16) != 0) {
     111                dprintf(("DevSetTimer failed!!"));
     112                DebugInt3();
     113                return OSSERR_INIT_FAILED;
     114        }
     115        rprintf(("\nUniaud version %s\n",UNIAUD_VERSION));
     116        dprintf(("OSS32_Initialize. Start address: %X", OffsetBeginCS32));
     117
     118        if(call_module_init(alsa_sound_init) != 0)               return OSSERR_INIT_FAILED;
     119        dprintf(("OSS32_Initialize1. Start address: %X", OffsetBeginCS32));
     120        if(call_module_init(alsa_pcm_init) != 0)                 return OSSERR_INIT_FAILED;
     121        if(call_module_init(alsa_hwdep_init) != 0)               return OSSERR_INIT_FAILED;
     122        if(call_module_init(alsa_timer_init) != 0)               return OSSERR_INIT_FAILED;
     123
     124        if(call_module_init(alsa_rawmidi_init) != 0)     return OSSERR_INIT_FAILED;
     125        if(call_module_init(alsa_seq_init) != 0)                 return OSSERR_INIT_FAILED;
     126        if(call_module_init(alsa_opl3_init) != 0)                return OSSERR_INIT_FAILED;
     127        if(call_module_init(alsa_opl3_seq_init) != 0)    return OSSERR_INIT_FAILED;
     128
     129        if(call_module_init(alsa_mpu401_uart_init) != 0) return OSSERR_INIT_FAILED;
     130
     131        /* Init functions for HDA audio */
     132        call_module_init(patch_analog_init);
     133        call_module_init(patch_atihdmi_init);
     134        call_module_init(patch_cmedia_init);
     135        call_module_init(patch_conexant_init);
     136        call_module_init(patch_realtek_init);
     137        call_module_init(patch_sigmatel_init);
     138        call_module_init(patch_via_init);
     139
     140        dprintf(("OSS32_Initialize: ForceCard=%d", ForceCard));
     141
     142        for (sI=0; sI<CARDS_NUM; sI++) {
     143                if ((ForceCard != CARD_NONE) && (ForceCard != cardcalls[sI].card_id)) continue;
     144                //dprintf(("calling: %x at %x", cardcalls[sI].card_id, cardcalls[sI].cinitcall));
     145                if (cardcalls[sI].cinitcall == NULL) continue;
     146                if (*cardcalls[sI].cinitcall == NULL) continue;
     147                if ((*cardcalls[sI].cinitcall)() == 0) fnCardExitCall[nrCardsDetected] = *cardcalls[sI].cexitcall;
     148                if (nrCardsDetected >= OSS32_MAX_AUDIOCARDS) break;
     149        }
     150
     151        fStrategyInit = FALSE;
     152
     153        if(nrCardsDetected != 0) {
     154                pcm_info();
     155                for(int i=0;i<nrCardsDetected;i++) {
     156                        FillCaps(i);
     157                }
     158                dprintf(("OSS32_Initialize: SUCCESS. Cards=%d", nrCardsDetected));
     159                return OSSERR_SUCCESS;
     160        }
     161        dprintf(("OSS32_Initialize. FAILED"));
     162        return OSSERR_INIT_FAILED;
    293163}
    294164//******************************************************************************
     
    297167OSSRET OSS32_Shutdown()
    298168{
    299     CallOSS16(IDC16_EXIT, 0, 0);
    300 
    301     for(int i=0;i<nrCardsDetected;i++) {
    302         if(fnCardExitCall[i]) fnCardExitCall[i]();
    303     }
    304 
    305     call_module_exit(alsa_mpu401_uart_exit);
    306     call_module_exit(alsa_opl3_seq_exit);
    307     call_module_exit(alsa_opl3_exit);
    308     call_module_exit(alsa_seq_exit);
    309     call_module_exit(alsa_rawmidi_exit);
    310     call_module_exit(alsa_timer_exit);
    311     call_module_exit(alsa_hwdep_exit);
    312     call_module_exit(alsa_pcm_exit);
    313     call_module_exit(alsa_sound_exit);
    314 
    315     return OSSERR_SUCCESS;
     169        CallOSS16(IDC16_EXIT, 0, 0);
     170
     171        for(int i=0;i<nrCardsDetected;i++) {
     172                if(fnCardExitCall[i]) fnCardExitCall[i]();
     173        }
     174
     175        call_module_exit(alsa_mpu401_uart_exit);
     176        call_module_exit(alsa_opl3_seq_exit);
     177        call_module_exit(alsa_opl3_exit);
     178        call_module_exit(alsa_seq_exit);
     179        call_module_exit(alsa_rawmidi_exit);
     180        call_module_exit(alsa_timer_exit);
     181        call_module_exit(alsa_hwdep_exit);
     182        call_module_exit(alsa_pcm_exit);
     183        call_module_exit(alsa_sound_exit);
     184
     185        return OSSERR_SUCCESS;
    316186}
    317187//******************************************************************************
     
    319189int OSS32_ProcessIRQ()
    320190{
    321     return CallOSS16(IDC16_PROCESS, 0, 0);
     191        return CallOSS16(IDC16_PROCESS, 0, 0);
    322192}
    323193
    324194int OSS32_ProcessMIDIIRQ(int bytes)
    325195{
    326     return CallOSS16(IDC16_MIDI_IRQ, bytes, 0);
     196        return CallOSS16(IDC16_MIDI_IRQ, bytes, 0);
    327197}
    328198
    329199int OSS32_CloseUNI16(void)
    330200{
    331     return CallOSS16(IDC16_CLOSE_UNI16, 0, 0);
     201        return CallOSS16(IDC16_CLOSE_UNI16, 0, 0);
    332202}
    333203//******************************************************************************
     
    335205int MyDevBlock(ULONG id, ULONG tout, char flag)
    336206{
    337     return DevBlock(id,tout, flag);
     207        return DevBlock(id,tout, flag);
    338208}
    339209
    340210int OSS32_DebugString(char *buffer, ULONG size)
    341211{
    342     rprintf(("U16: %s", buffer));
    343     return size;
    344 }
     212        rprintf(("U16: %s", buffer));
     213        return size;
     214}
  • GPL/branches/uniaud32-2.1.x/lib32/pci.c

    r458 r516  
    5555#define PCI_CONFIG_DATA         0xCFC
    5656
    57 #ifdef ACPI 
    58 APIRET APIENTRY ACPIFindPCIDevice(ULONG Bus, ULONG Dev, ULONG Fun, ULONG *PicIRQ, ULONG *ApicIRQ, ULONG *Hdl, char *Component); 
    59 #endif 
     57#ifdef ACPI
     58APIRET APIENTRY ACPIFindPCIDevice(ULONG Bus, ULONG Dev, ULONG Fun, ULONG *PicIRQ, ULONG *ApicIRQ, ULONG *Hdl, char *Component);
     59#endif
    6060
    6161//******************************************************************************
     
    135135//******************************************************************************
    136136//******************************************************************************
    137 #ifdef ACPI 
     137#ifdef ACPI
    138138struct SaveIRQForSlot
    139139{
     
    141141    BYTE   LowIRQ;
    142142    BYTE   HighIRQ;
    143     BYTE   Pin;   
     143    BYTE   Pin;
    144144};
    145145extern struct SaveIRQForSlot sISRHigh[];
     
    150150                            struct pci_dev near *pcidev, int idx)
    151151{
    152 #ifdef ACPI
    153     APIRET           rc;
    154 #endif
    155152    int         resNo, addr, found = 0;
    156153    u32         devNr, busNr, funcNr, detectedId, pciId, cfgaddrreg, temp, temp2;
    157 #ifdef ACPI
    158     ULONG            temp1,temp3; //PS++
    159 #endif
     154#ifdef ACPI
     155    APIRET           rc;
     156    ULONG            temp1,temp3; //PS++
     157#endif
    160158    u8          headerType;
    161159
     
    242240                        // IRQ and PIN
    243241                        pci_read_config_dword(pcidev, PCI_INTERRUPT_LINE, &temp);
    244 #ifdef ACPI 
     242#ifdef ACPI
    245243                        sISRHigh[SaveIRQCounter].Pin  = (temp >> 8) & 0xf;
    246                         temp2 = temp3 = 0; 
    247                         rc = ACPIFindPCIDevice( (ULONG)busNr,                        // Bus 
    248                                                 (ULONG)devNr,                        // Dev 
    249                                                 (ULONG)(pcidev->devfn >> 8) & 7,     // Function 
    250                                                 &temp1,                              // PIC IRQ 
    251                                                 &temp3,                              // APIC IRQ 
    252                                                 NULL,                                // ACPI handle to finding device 
    253                                                 "Uniaud32");                         // Name for acpi log 
    254                         if (!rc) 
    255                         { 
    256                         // Check APIC IRQ, if we have /SMP /APIC, must be set 
    257                         if (temp1) 
    258                            temp = (temp & (~0xff)) | (temp1 & 0xff); 
    259                         // Check PIC IRQ 
    260                         else if (temp3) 
    261                                  temp = (temp & (~0xff)) | (temp3 & 0xff); 
    262                         dprintf(("pci_query_device: IRQs ACPI PIC%d APIC%d", temp1, temp3)); 
     244                        temp2 = temp3 = 0;
     245                        rc = ACPIFindPCIDevice( (ULONG)busNr,                        // Bus
     246                                                (ULONG)devNr,                        // Dev
     247                                                (ULONG)(pcidev->devfn >> 8) & 7,     // Function
     248                                                &temp1,                              // PIC IRQ
     249                                                &temp3,                              // APIC IRQ
     250                                                NULL,                                // ACPI handle to finding device
     251                                                "Uniaud32");                         // Name for acpi log
     252                        if (!rc)
     253                        {
     254                        // Check APIC IRQ, if we have /SMP /APIC, must be set
     255                        if (temp1)
     256                           temp = (temp & (~0xff)) | (temp1 & 0xff);
     257                        // Check PIC IRQ
     258                        else if (temp3)
     259                                 temp = (temp & (~0xff)) | (temp3 & 0xff);
     260                        dprintf(("pci_query_device: IRQs ACPI PIC%d APIC%d", temp1, temp3));
    263261                        sISRHigh[SaveIRQCounter].LowIRQ  = temp1;
    264262                        sISRHigh[SaveIRQCounter].HighIRQ = temp3;
    265                         } 
    266 #endif /* ACPI */ 
     263                        }
     264#endif /* ACPI */
    267265                        if( (u8)temp && (u8)temp != 0xff )
    268266                        {
  • GPL/branches/uniaud32-2.1.x/lib32/sound.c

    r515 r516  
    11241124                }
    11251125
    1126                 iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ulReqSize, &pHandle->file.f_pos);
     1126                iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ulSize, &pHandle->file.f_pos);
    11271127
    11281128                if (iRet < 0 ) break;
     
    11321132                //this is done to make sure we don't block inside ALSA while trying to write
    11331133                //more data than fits in the internal dma buffer.
    1134                 ulSize = ulReqSize;
    1135                 ulReqSize = min(ulReqSize, samples_to_bytes(status.avail));
     1134                ulSize = min(ulReqSize, samples_to_bytes(status.avail));
    11361135
    11371136                //printk("OSS32_WaveAddBuffer N:%d hw=%x app=%x avail=%x req size=%x size=%x\n",
    11381137                //      CountWv, samples_to_bytes(status.hw_ptr), samples_to_bytes(status.appl_ptr), samples_to_bytes(status.avail), ulSize, ulReqSize);
    11391138
    1140                 if (ulReqSize == 0) {
     1139                if (ulSize == 0) {
    11411140                        rprintf(("OSS32_WaveAddBuffer: no room left in hardware buffer!!\n"));
    1142                         rprintf(("state=%x avail=%x SizeReq=%x\n", status.state, status.avail, ulSize));
     1141                        rprintf(("state=%x avail=%x SizeReq=%x\n", status.state, status.avail, ulReqSize));
    11431142                        *pulTransferred = 0;
    11441143                        return OSSERR_BUFFER_FULL;
     
    11481147                ulJ = 10;                        // 10 try if error
    11491148                iRet = -11;
    1150                 while (ulReqSize && ulJ && iRet)
     1149                while (ulSize && ulJ && iRet)
    11511150                {
    11521151                        for (i=0; i < 1000; i++)
     
    11691168                        }
    11701169
    1171                         iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ulReqSize, &pHandle->file.f_pos);
     1170                        iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ulSize, &pHandle->file.f_pos);
    11721171
    11731172                        if (iRet < 0 ) {  // We have any error, don't try more
     
    11821181                        // printk("written: now: %d, trans: %d need %d tot:%d\n", iRet, ulTransferred, ulReqSize,ulSize);
    11831182                        ulBuffer += iRet;
    1184                         if (ulReqSize > iRet)
    1185                                 ulReqSize       -= iRet;
    1186                         else
    1187                                 ulReqSize = 0;
     1183                        if (ulSize > iRet) ulSize       -= iRet;
     1184                        else ulSize = 0;
    11881185                }
    11891186#endif
  • GPL/branches/uniaud32-2.1.x/uniaud.inc

    r506 r516  
    1313# ex RC3  GA  FIXPACK2 beta_47
    1414# Comment out to avoid a fixpack line in bldlevel
    15 FIXPACK = BETA SVN r506
     15FIXPACK = BETA SVNr516
    1616
    1717# ALSA BUILD VERSION
Note: See TracChangeset for help on using the changeset viewer.