- Timestamp:
- Jul 14, 2010, 10:34:40 PM (15 years ago)
- 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 51 51 #define CARD_CS5535 21 52 52 53 #define CARDS_NUM 2 153 #define CARDS_NUM 22 54 54 55 55 #define CARD_STRING_SBLIVE "SBLIVE" -
GPL/branches/uniaud32-2.1.x/lib32/ossidc.cpp
r504 r516 24 24 25 25 #define INCL_NOPMAPI 26 #define INCL_DOSERRORS 26 #define INCL_DOSERRORS // for ERROR_INVALID_FUNCTION 27 27 #include <os2.h> 28 28 #include <ossdefos2.h> … … 45 45 BOOL CallOSS16(ULONG cmd, ULONG param1, ULONG param2) 46 46 { 47 BOOLrc;48 49 50 51 52 53 54 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; 55 55 } 56 56 //****************************************************************************** 57 57 exitcall_t fnCardExitCall[OSS32_MAX_AUDIOCARDS] = {0}; 58 58 extern "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 */ 63 61 64 62 typedef struct cardcalls_t { 65 66 initcall_tt *cinitcall;67 exitcall_tt *cexitcall;63 int card_id; 64 initcall_t *cinitcall; 65 exitcall_t *cexitcall; 68 66 }cardcalls_t; 69 67 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) }*/ 68 cardcalls_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) }, 94 95 }; 95 #endif 96 97 int nrCardsDetected = 0; 98 int fStrategyInit = FALSE; 96 97 int nrCardsDetected = 0; 98 int fStrategyInit = FALSE; 99 99 void pcm_info(void); 100 100 void FillCaps(ULONG deviceid); 101 101 }; 102 102 //****************************************************************************** 103 // This routine should be discarded after init time 103 104 OSSRET OSS32_Initialize(void) 104 105 { 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; 293 163 } 294 164 //****************************************************************************** … … 297 167 OSSRET OSS32_Shutdown() 298 168 { 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 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; 316 186 } 317 187 //****************************************************************************** … … 319 189 int OSS32_ProcessIRQ() 320 190 { 321 191 return CallOSS16(IDC16_PROCESS, 0, 0); 322 192 } 323 193 324 194 int OSS32_ProcessMIDIIRQ(int bytes) 325 195 { 326 196 return CallOSS16(IDC16_MIDI_IRQ, bytes, 0); 327 197 } 328 198 329 199 int OSS32_CloseUNI16(void) 330 200 { 331 201 return CallOSS16(IDC16_CLOSE_UNI16, 0, 0); 332 202 } 333 203 //****************************************************************************** … … 335 205 int MyDevBlock(ULONG id, ULONG tout, char flag) 336 206 { 337 207 return DevBlock(id,tout, flag); 338 208 } 339 209 340 210 int OSS32_DebugString(char *buffer, ULONG size) 341 211 { 342 343 344 } 212 rprintf(("U16: %s", buffer)); 213 return size; 214 } -
GPL/branches/uniaud32-2.1.x/lib32/pci.c
r458 r516 55 55 #define PCI_CONFIG_DATA 0xCFC 56 56 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 58 APIRET APIENTRY ACPIFindPCIDevice(ULONG Bus, ULONG Dev, ULONG Fun, ULONG *PicIRQ, ULONG *ApicIRQ, ULONG *Hdl, char *Component); 59 #endif 60 60 61 61 //****************************************************************************** … … 135 135 //****************************************************************************** 136 136 //****************************************************************************** 137 #ifdef ACPI 137 #ifdef ACPI 138 138 struct SaveIRQForSlot 139 139 { … … 141 141 BYTE LowIRQ; 142 142 BYTE HighIRQ; 143 BYTE Pin; 143 BYTE Pin; 144 144 }; 145 145 extern struct SaveIRQForSlot sISRHigh[]; … … 150 150 struct pci_dev near *pcidev, int idx) 151 151 { 152 #ifdef ACPI153 APIRET rc;154 #endif155 152 int resNo, addr, found = 0; 156 153 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 160 158 u8 headerType; 161 159 … … 242 240 // IRQ and PIN 243 241 pci_read_config_dword(pcidev, PCI_INTERRUPT_LINE, &temp); 244 #ifdef ACPI 242 #ifdef ACPI 245 243 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)); 263 261 sISRHigh[SaveIRQCounter].LowIRQ = temp1; 264 262 sISRHigh[SaveIRQCounter].HighIRQ = temp3; 265 } 266 #endif /* ACPI */ 263 } 264 #endif /* ACPI */ 267 265 if( (u8)temp && (u8)temp != 0xff ) 268 266 { -
GPL/branches/uniaud32-2.1.x/lib32/sound.c
r515 r516 1124 1124 } 1125 1125 1126 iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ul ReqSize, &pHandle->file.f_pos);1126 iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ulSize, &pHandle->file.f_pos); 1127 1127 1128 1128 if (iRet < 0 ) break; … … 1132 1132 //this is done to make sure we don't block inside ALSA while trying to write 1133 1133 //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)); 1136 1135 1137 1136 //printk("OSS32_WaveAddBuffer N:%d hw=%x app=%x avail=%x req size=%x size=%x\n", 1138 1137 // CountWv, samples_to_bytes(status.hw_ptr), samples_to_bytes(status.appl_ptr), samples_to_bytes(status.avail), ulSize, ulReqSize); 1139 1138 1140 if (ul ReqSize == 0) {1139 if (ulSize == 0) { 1141 1140 rprintf(("OSS32_WaveAddBuffer: no room left in hardware buffer!!\n")); 1142 rprintf(("state=%x avail=%x SizeReq=%x\n", status.state, status.avail, ul Size));1141 rprintf(("state=%x avail=%x SizeReq=%x\n", status.state, status.avail, ulReqSize)); 1143 1142 *pulTransferred = 0; 1144 1143 return OSSERR_BUFFER_FULL; … … 1148 1147 ulJ = 10; // 10 try if error 1149 1148 iRet = -11; 1150 while (ul ReqSize && ulJ && iRet)1149 while (ulSize && ulJ && iRet) 1151 1150 { 1152 1151 for (i=0; i < 1000; i++) … … 1169 1168 } 1170 1169 1171 iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ul ReqSize, &pHandle->file.f_pos);1170 iRet = pHandle->file.f_op->write(&pHandle->file, (char *)ulBuffer, ulSize, &pHandle->file.f_pos); 1172 1171 1173 1172 if (iRet < 0 ) { // We have any error, don't try more … … 1182 1181 // printk("written: now: %d, trans: %d need %d tot:%d\n", iRet, ulTransferred, ulReqSize,ulSize); 1183 1182 ulBuffer += iRet; 1184 if (ulReqSize > iRet) 1185 ulReqSize -= iRet; 1186 else 1187 ulReqSize = 0; 1183 if (ulSize > iRet) ulSize -= iRet; 1184 else ulSize = 0; 1188 1185 } 1189 1186 #endif -
GPL/branches/uniaud32-2.1.x/uniaud.inc
r506 r516 13 13 # ex RC3 GA FIXPACK2 beta_47 14 14 # Comment out to avoid a fixpack line in bldlevel 15 FIXPACK = BETA SVN r50615 FIXPACK = BETA SVNr516 16 16 17 17 # ALSA BUILD VERSION
Note:
See TracChangeset
for help on using the changeset viewer.