Changeset 8442d10 in mainline for uspace/drv/audio/sb16/dsp.c


Ignore:
Timestamp:
2013-09-09T21:48:12Z (11 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c67dbd6
Parents:
2e2c18a1
Message:

improve the API of physmem_map(), dmamem_map() and dmamem_map_anonymous()
the "constraint" argument of dmamem_map_anonymous() should be used to specify bits disallowed in the physical frame address

File:
1 edited

Legend:

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

    r2e2c18a1 r8442d10  
    173173{
    174174        assert(dsp);
    175         if (size > MAX_BUFFER_SIZE || size == 0 || (size % 2) == 1)
     175       
     176        if ((size > MAX_BUFFER_SIZE) || (size == 0) || ((size % 2) == 1))
    176177                size = MAX_BUFFER_SIZE;
    177         void *buffer = NULL, *pa = NULL;
    178         int ret = dmamem_map_anonymous(size, AS_AREA_WRITE | AS_AREA_READ,
    179             0, &pa, &buffer);
     178       
     179        uintptr_t pa = 0;
     180        void *buffer = NULL;
     181       
     182        int ret = dmamem_map_anonymous(size, DMAMEM_16MiB,
     183            AS_AREA_WRITE | AS_AREA_READ, 0, &pa, &buffer);
    180184        if (ret != EOK) {
    181185                ddf_log_error("Failed to allocate DMA buffer.");
    182186                return ENOMEM;
    183187        }
    184 
    185         ddf_log_verbose("Setup dma buffer at %p(%p) %zu.", buffer, pa, size);
    186         assert((uintptr_t)pa < (1 << 25));
    187 
     188       
     189        ddf_log_verbose("Setup DMA buffer at %p (%zu) %zu.", buffer, pa, size);
     190        assert(pa < (1 << 24));
     191       
    188192        /* Setup 16 bit channel */
    189         ret = setup_dma(dsp, (uintptr_t)pa, size);
     193        ret = setup_dma(dsp, pa, size);
    190194        if (ret == EOK) {
    191195                dsp->buffer.data = buffer;
     
    196200                dmamem_unmap_anonymous(buffer);
    197201        }
     202       
    198203        return ret;
    199204}
Note: See TracChangeset for help on using the changeset viewer.