Changeset 0ea8f83 in mainline for uspace/drv/audio/sb16/dsp.c


Ignore:
Timestamp:
2011-11-11T19:44:07Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d98d136
Parents:
751d17a2
Message:

sb16: DMA buffer uses separate memory area.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/audio/sb16/dsp.c

    r751d17a2 r0ea8f83  
    4343#include "dsp.h"
    4444
    45 #define BUFFER_SIZE (PAGE_SIZE / 4)
     45#define BUFFER_SIZE (PAGE_SIZE)
    4646#define PLAY_BLOCK_SIZE (BUFFER_SIZE / 2)
    4747
     
    108108{
    109109        assert(dsp);
    110         uint8_t *buffer = malloc24(BUFFER_SIZE);
     110        uint8_t *buffer = dma_create_buffer24(BUFFER_SIZE);
    111111        if (buffer == NULL) {
    112112                ddf_log_error("Failed to allocate buffer.\n");
     
    118118        /* Set 16 bit channel */
    119119        const int ret = dma_setup_channel(SB_DMA_CHAN_16, pa, BUFFER_SIZE,
    120             DMA_MODE_READ | DMA_MODE_AUTO | DMA_MODE_SINGLE);
     120            DMA_MODE_READ | DMA_MODE_AUTO | DMA_MODE_ON_DEMAND);
    121121        if (ret == EOK) {
    122122                dsp->buffer.data = buffer;
     
    127127                ddf_log_error("Failed to setup DMA16 channel %s.\n",
    128128                    str_error(ret));
    129                 free24(buffer);
     129                dma_destroy_buffer(buffer);
    130130        }
    131131        return ret;
     
    134134static inline void sb_clear_buffer(sb_dsp_t *dsp)
    135135{
    136         free24(dsp->buffer.data);
     136        dma_destroy_buffer(dsp->buffer.data);
    137137        dsp->buffer.data = NULL;
    138138        dsp->buffer.position = NULL;
Note: See TracChangeset for help on using the changeset viewer.