Changeset 57a2208 in mainline for uspace/drv/audio/hdaudio/hdaudio.c


Ignore:
Timestamp:
2014-09-09T22:10:03Z (10 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c4f67c8
Parents:
b14e9749
Message:

Hound should use the logging framework. Prevent hdaudio from sending frames played event after sending playback termination event. Remove unnecessary delays.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/audio/hdaudio/hdaudio.c

    rb14e9749 r57a2208  
    172172        }
    173173
     174        fibril_mutex_initialize(&hda->lock);
     175
    174176        ddf_msg(LVL_NOTE, "create parent sess");
    175177        hda->parent_sess = ddf_dev_parent_sess_create(dev,
     
    373375        if (0) ddf_msg(LVL_NOTE, "## interrupt ##");
    374376//      ddf_msg(LVL_NOTE, "interrupt arg4=0x%x", (int)IPC_GET_ARG4(*icall));
     377        hda_ctl_interrupt(hda->ctl);
     378
    375379        if (IPC_GET_ARG3(*icall) != 0) {
    376                 hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
    377                 hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
    378                 hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
    379                 hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
    380 /*              hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
    381                 hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
    382                 hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
    383                 hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);*/
    384         }
    385         hda_ctl_interrupt(hda->ctl);
     380                /* Buffer completed */
     381                hda_lock(hda);
     382                if (hda->playing) {
     383                        hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
     384                        hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
     385                        hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
     386                        hda_pcm_event(hda, PCM_EVENT_FRAMES_PLAYED);
     387                }
     388                hda_unlock(hda);
     389        }
     390}
     391
     392void hda_lock(hda_t *hda)
     393{
     394        fibril_mutex_lock(&hda->lock);
     395}
     396
     397void hda_unlock(hda_t *hda)
     398{
     399        fibril_mutex_unlock(&hda->lock);
    386400}
    387401
Note: See TracChangeset for help on using the changeset viewer.