Changeset 159c722d in mainline for uspace/drv/audio/hdaudio/stream.c


Ignore:
Timestamp:
2014-08-26T10:10:50Z (10 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6747b929
Parents:
99cb9bf
Message:

Garbled playback via hound.

File:
1 edited

Legend:

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

    r99cb9bf r159c722d  
    5454        uintptr_t buffer_phys;
    5555        size_t i;
    56         size_t j, k;
     56//      size_t j, k;
    5757        int rc;
    5858
    59         stream->nbuffers = 2;
     59        stream->nbuffers = 4;
    6060        stream->bufsize = 16384;
    6161
     
    8484
    8585        /* Allocate buffers */
    86 
     86/*
    8787        for (i = 0; i < stream->nbuffers; i++) {
    8888                buffer = AS_AREA_ANY;
     
    108108                }
    109109        }
     110*/
     111//      async_usleep(1000*1000);
     112        /* audio_pcm_iface requires a single contiguous buffer */
     113        buffer = AS_AREA_ANY;
     114        rc = dmamem_map_anonymous(stream->bufsize * stream->nbuffers,
     115            stream->hda->ctl->ok64bit ? 0 : DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE,
     116            0, &buffer_phys, &buffer);
     117        if (rc != EOK) {
     118                ddf_msg(LVL_NOTE, "dmamem_map_anon -> %d", rc);
     119                goto error;
     120        }
     121
     122        for (i = 0; i < stream->nbuffers; i++) {
     123                stream->buf[i] = buffer + i * stream->bufsize;
     124                stream->buf_phys[i] = buffer_phys + i * stream->bufsize;
     125
     126                ddf_msg(LVL_NOTE, "Stream buf phys=0x%llx virt=%p",
     127                    (long long unsigned)(uintptr_t)stream->buf[i],
     128                    (void *)stream->buf_phys[i]);
     129/*              k = 0;
     130                for (j = 0; j < stream->bufsize / 2; j++) {
     131                        int16_t *bp = stream->buf[i];
     132                        bp[j] = (k > 128) ? -10000 : 10000;
     133                        ++k;
     134                        if (k >= 256)
     135                                k = 0;
     136                }
     137*/
     138        }
    110139
    111140        /* Fill in BDL */
Note: See TracChangeset for help on using the changeset viewer.