Changeset 84 for GPL/trunk/lib32


Ignore:
Timestamp:
Oct 23, 2006, 11:07:11 PM (19 years ago)
Author:
vladest
Message:

SB code update
HDA code update
Some other updates

Location:
GPL/trunk/lib32
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk/lib32/irq.c

    r76 r84  
    176176
    177177#ifdef DEBUG
    178     dprintf(("enter int proc %d %d",ulSlotNo, *pulIrq));
     178//    dprintf(("enter int proc %d %d",ulSlotNo, *pulIrq));
    179179#endif
    180180
     
    213213                    OSS32_ProcessIRQ();
    214214#ifdef DEBUG
    215                     dprintf(("exit(1) int proc %d %d",ulSlotNo, *pulIrq));
     215//                    dprintf(("exit(1) int proc %d %d",ulSlotNo, *pulIrq));
    216216#endif
    217217                    eoiIrq[pSlot->irqNo] = 0;
     
    222222    }
    223223#ifdef DEBUG
    224                     dprintf(("exit(0) int proc %d %d",ulSlotNo, *pulIrq));
     224//                    dprintf(("exit(0) int proc %d %d",ulSlotNo, *pulIrq));
    225225#endif
    226226
  • GPL/trunk/lib32/ossidc.cpp

    r76 r84  
    283283
    284284    if(nrCardsDetected != 0) {
     285        dprintf(("OSS32_Initialize2"));
    285286        pcm_info();
     287        dprintf(("OSS32_Initialize3"));
    286288        for(int i=0;i<nrCardsDetected;i++) {
     289            dprintf(("OSS32_Initialize4 start: %d",i));
    287290            FillCaps(i);
     291            dprintf(("OSS32_Initialize4 end: %d",i));
    288292        }
     293        dprintf(("OSS32_Initialize: SUCCESS. nr. of cards: %d",nrCardsDetected));
    289294        return OSSERR_SUCCESS;
    290295    }
     296    dprintf(("OSS32_Initialize. FAILED"));
    291297    return OSSERR_INIT_FAILED;
    292298}
  • GPL/trunk/lib32/sound.c

    r82 r84  
    754754    soundhandle        *pHandle = (soundhandle *)streamid;
    755755    snd_pcm_hw_params_t params;
     756    snd_pcm_status_t    status;
    756757    snd_pcm_sw_params_t swparams;
    757758    int                 ret, ret1, nrperiods, minnrperiods, maxnrperiods, samplesize, i;
     
    889890            }
    890891        }
     892
    891893//        ret1 = pHandle->file.f_op->release(&pHandle->inode, &pHandle->file);
    892894        DebugInt3();
     
    10401042    total = 0;
    10411043    per_bytes = periodbytes;
     1044    ret = pHandle->file.f_op->ioctl(&pHandle->inode, &pHandle->file, SNDRV_PCM_IOCTL_STATUS, (ULONG)__Stack32ToFlat(&status));
     1045    if ( ((status.state != SNDRV_PCM_STATE_PREPARED) &&
     1046          (status.state != SNDRV_PCM_STATE_RUNNING) &&
     1047          (status.state != SNDRV_PCM_STATE_DRAINING))) {
     1048        printk("Device is not in proper state: %i. Calling prepare\n", status.state);
     1049        ret = pHandle->file.f_op->ioctl(&pHandle->inode, &pHandle->file, SNDRV_PCM_IOCTL_PREPARE, 0);
     1050    }
    10421051    printk("OSS32_WaveSetHwParams return %d after SNDRV_PCM_IOCTL_SW_PARAMS ioctl, streamid %X", ret,(ULONG)pHandle);
    10431052    return UNIXToOSSError(ret);
     
    11331142                    printk("OSS32_WaveAddBuffer failed on partial transfer %x %i; ret = %i\n", buffer, size, ret);
    11341143                    *pTransferred = transferred;
    1135                     return OSSERR_SUCCESS;
     1144                    if (toret)
     1145                        return OSSERR_SUCCESS; /* avoid infinite loop */
     1146                    toret = 1;
     1147                    goto again;
    11361148                }
    11371149
     
    11431155                    ret1 = pHandle->file.f_op->ioctl(&pHandle->inode, &pHandle->file, SNDRV_PCM_IOCTL_PREPARE, 0);
    11441156                    printk("OSS32_WaveAddBuffer buffer overrun: size %i, ret %i, trans %i, prev sz %i per sz %i total %i\n", size, ret, transferred, prev_size, per_bytes, total);
    1145                     ret = size;
    1146                     transferred = size;
    1147                     break; /* UGLY hack*/
    1148                     //goto again;
     1157                    //ret = size;
     1158                    //transferred = size;
     1159                    if (toret) break; /* avoid infinite loop */
     1160                    toret = 1;
     1161                    goto again;
    11491162                }
    11501163                else {
     
    11621175                break;
    11631176            }
     1177            toret = 0;
    11641178            transferred += ret;
    11651179//            printk("written: now: %i, buffer: %i, total: %i\n", ret, transferred, total);
  • GPL/trunk/lib32/soundmixer.c

    r32 r84  
    7272        /* OSS_MIXER_3DDEPTH  */ { "3D Control - Depth", 0 , -1},
    7373        /* OSS_MIXER_3DCENTER */ { "3D Control - Center", 0 , -1},
     74        /* OSS_MIXER_FRONT    */ { "Front", 0 , -1},
    7475};
    7576char *szRecSources[OSS32_MIX_RECSRC_MAX] = {
     
    201202                int controlnamelen = strlen(pHandle->pids[i].name);
    202203
    203                 if(namelen == controlnamelen) 
     204                if(namelen == controlnamelen)
    204205                {//control names are identical; found exact match
    205206                    pHandle->controls[j].idxVolume = i;
     
    392393        idx = pHandle->controls[OSS_MIXER_VOLUME].idxVolume;
    393394        idxMute = pHandle->controls[OSS_MIXER_VOLUME].idxMute;
     395        if (idx == -1)
     396        {
     397            /* HDA codecs workaround */
     398            idx = pHandle->controls[OSS_MIXER_FRONT].idxVolume;
     399            idxMute = pHandle->controls[OSS_MIXER_FRONT].idxMute;
     400        }
    394401        break;
    395402    case OSS32_MIX_VOLUME_MASTER_REAR: //TODO:
     
    400407        idx = pHandle->controls[OSS_MIXER_PCM].idxVolume;
    401408        idxMute = pHandle->controls[OSS_MIXER_PCM].idxMute;
     409        if (idx == -1)
     410        {
     411            /* HDA codecs workaround */
     412            idx = pHandle->controls[OSS_MIXER_FRONT].idxVolume;
     413            idxMute = pHandle->controls[OSS_MIXER_FRONT].idxMute;
     414        }
    402415        break;
    403416    case OSS32_MIX_VOLUME_MIDI:
  • GPL/trunk/lib32/stack.cpp

    r76 r84  
    3333#endif
    3434
    35 #define MAX_STACK               8
     35#define MAX_STACK               16
    3636#define STACKSIZE               (16*1024)
    3737#define TOTAL_STACKSIZE     MAX_STACK*(16*1024)
Note: See TracChangeset for help on using the changeset viewer.