Lines Matching refs:dma_obj
490 static esp_err_t i2s_delete_dma_buffer(i2s_port_t i2s_num, i2s_dma_t *dma_obj) in i2s_delete_dma_buffer() argument
492 ESP_RETURN_ON_FALSE(dma_obj, ESP_ERR_INVALID_ARG, TAG, "I2S DMA object can't be NULL"); in i2s_delete_dma_buffer()
496 if (dma_obj->desc && dma_obj->desc[cnt]) { in i2s_delete_dma_buffer()
497 free(dma_obj->desc[cnt]); in i2s_delete_dma_buffer()
498 dma_obj->desc[cnt] = NULL; in i2s_delete_dma_buffer()
500 if (dma_obj->buf && dma_obj->buf[cnt]) { in i2s_delete_dma_buffer()
501 free(dma_obj->buf[cnt]); in i2s_delete_dma_buffer()
502 dma_obj->buf[cnt] = NULL; in i2s_delete_dma_buffer()
508 static esp_err_t i2s_alloc_dma_buffer(i2s_port_t i2s_num, i2s_dma_t *dma_obj) in i2s_alloc_dma_buffer() argument
511 ESP_GOTO_ON_FALSE(dma_obj, ESP_ERR_INVALID_ARG, err, TAG, "I2S DMA object can't be NULL"); in i2s_alloc_dma_buffer()
516 … dma_obj->buf[cnt] = (char *) heap_caps_calloc(dma_obj->buf_size, sizeof(char), MALLOC_CAP_DMA); in i2s_alloc_dma_buffer()
517 ESP_GOTO_ON_FALSE(dma_obj->buf[cnt], ESP_ERR_NO_MEM, err, TAG, "Error malloc dma buffer"); in i2s_alloc_dma_buffer()
519 memset(dma_obj->buf[cnt], 0, dma_obj->buf_size); in i2s_alloc_dma_buffer()
522 dma_obj->desc[cnt] = (lldesc_t *) heap_caps_calloc(1, sizeof(lldesc_t), MALLOC_CAP_DMA); in i2s_alloc_dma_buffer()
523 …ESP_GOTO_ON_FALSE(dma_obj->desc[cnt], ESP_ERR_NO_MEM, err, TAG, "Error malloc dma description ent… in i2s_alloc_dma_buffer()
528 dma_obj->desc[cnt]->owner = 1; in i2s_alloc_dma_buffer()
529 dma_obj->desc[cnt]->eof = 1; in i2s_alloc_dma_buffer()
530 dma_obj->desc[cnt]->sosf = 0; in i2s_alloc_dma_buffer()
531 dma_obj->desc[cnt]->length = dma_obj->buf_size; in i2s_alloc_dma_buffer()
532 dma_obj->desc[cnt]->size = dma_obj->buf_size; in i2s_alloc_dma_buffer()
533 dma_obj->desc[cnt]->buf = (uint8_t *) dma_obj->buf[cnt]; in i2s_alloc_dma_buffer()
534 dma_obj->desc[cnt]->offset = 0; in i2s_alloc_dma_buffer()
536 …dma_obj->desc[cnt]->empty = (uint32_t)((cnt < (buf_cnt - 1)) ? (dma_obj->desc[cnt + 1]) : dma_obj-… in i2s_alloc_dma_buffer()
539 i2s_ll_rx_set_eof_num(p_i2s[i2s_num]->hal.dev, dma_obj->buf_size); in i2s_alloc_dma_buffer()
541 …ESP_LOGD(TAG, "DMA Malloc info, datalen=blocksize=%d, dma_desc_num=%"PRIu32, dma_obj->buf_size, bu… in i2s_alloc_dma_buffer()
545 i2s_delete_dma_buffer(i2s_num, dma_obj); in i2s_alloc_dma_buffer()
549 static esp_err_t i2s_realloc_dma_buffer(i2s_port_t i2s_num, i2s_dma_t *dma_obj) in i2s_realloc_dma_buffer() argument
551 ESP_RETURN_ON_FALSE(dma_obj, ESP_ERR_INVALID_ARG, TAG, "I2S DMA object can't be NULL"); in i2s_realloc_dma_buffer()
554 i2s_delete_dma_buffer(i2s_num, dma_obj); in i2s_realloc_dma_buffer()
556 … ESP_RETURN_ON_ERROR(i2s_alloc_dma_buffer(i2s_num, dma_obj), TAG, "Failed to allocate dma buffer"); in i2s_realloc_dma_buffer()