mirror of
https://github.com/espressif/esp-idf.git
synced 2026-06-04 20:26:38 +03:00
fix(drivers): enlarge the default DMA burst size in peripheral drivers
This commit is contained in:
@@ -101,7 +101,7 @@ esp_err_t esp_cam_ctlr_dvp_dma_init(esp_cam_ctlr_dvp_dma_t *dma, uint32_t burst_
|
||||
ESP_GOTO_ON_ERROR(gdma_apply_strategy(dma->dma_chan, &strategy_config), fail1, TAG, "apply strategy failed");
|
||||
// set DMA transfer ability
|
||||
gdma_transfer_config_t transfer_config = {
|
||||
.max_data_burst_size = burst_size,
|
||||
.max_data_burst_size = burst_size ? burst_size : 32, // Enable DMA burst transfer for better performance
|
||||
.access_ext_mem = true,
|
||||
};
|
||||
ESP_GOTO_ON_ERROR(gdma_config_transfer(dma->dma_chan, &transfer_config), fail1, TAG, "set trans ability failed");
|
||||
|
||||
@@ -460,7 +460,7 @@ static esp_err_t parlio_rx_unit_init_dma(parlio_rx_unit_handle_t rx_unit, size_t
|
||||
gdma_apply_strategy(rx_unit->dma_chan, &gdma_strategy_conf);
|
||||
|
||||
// configure DMA transfer parameters
|
||||
rx_unit->dma_burst_size = dma_burst_size ? dma_burst_size : 16;
|
||||
rx_unit->dma_burst_size = dma_burst_size ? dma_burst_size : 32;
|
||||
gdma_transfer_config_t trans_cfg = {
|
||||
.max_data_burst_size = rx_unit->dma_burst_size, // Enable DMA burst transfer for better performance,
|
||||
.access_ext_mem = true,
|
||||
|
||||
@@ -154,7 +154,7 @@ static esp_err_t parlio_tx_unit_init_dma(parlio_tx_unit_t *tx_unit, const parlio
|
||||
|
||||
// configure DMA transfer parameters
|
||||
gdma_transfer_config_t trans_cfg = {
|
||||
.max_data_burst_size = config->dma_burst_size ? config->dma_burst_size : 16, // Enable DMA burst transfer for better performance,
|
||||
.max_data_burst_size = config->dma_burst_size ? config->dma_burst_size : 32, // Enable DMA burst transfer for better performance,
|
||||
.access_ext_mem = true, // support transmit PSRAM buffer
|
||||
};
|
||||
ESP_RETURN_ON_ERROR(gdma_config_transfer(tx_unit->dma_chan, &trans_cfg), TAG, "config DMA transfer failed");
|
||||
|
||||
@@ -294,7 +294,7 @@ static esp_err_t alloc_dma_chan(spi_host_device_t host_id, spi_dma_chan_t dma_ch
|
||||
}
|
||||
#endif
|
||||
gdma_transfer_config_t trans_cfg = {
|
||||
.max_data_burst_size = 16,
|
||||
.max_data_burst_size = 32,
|
||||
.access_ext_mem = true, // allow to transfer data from/to external memory directly by DMA
|
||||
};
|
||||
ESP_RETURN_ON_ERROR(gdma_config_transfer(dma_ctx->tx_dma_chan, &trans_cfg), SPI_TAG, "config gdma tx transfer failed");
|
||||
|
||||
@@ -592,7 +592,7 @@ static esp_err_t lcd_i80_init_dma_link(esp_lcd_i80_bus_handle_t bus, const esp_l
|
||||
gdma_apply_strategy(bus->dma_chan, &strategy_config);
|
||||
// config DMA transfer parameters
|
||||
gdma_transfer_config_t trans_cfg = {
|
||||
.max_data_burst_size = bus_config->dma_burst_size ? bus_config->dma_burst_size : 16, // Enable DMA burst transfer for better performance
|
||||
.max_data_burst_size = bus_config->dma_burst_size ? bus_config->dma_burst_size : 32, // Enable DMA burst transfer for better performance
|
||||
.access_ext_mem = true, // the LCD can carry pixel buffer from the external memory
|
||||
};
|
||||
ESP_RETURN_ON_ERROR(gdma_config_transfer(bus->dma_chan, &trans_cfg), TAG, "config DMA transfer failed");
|
||||
|
||||
Reference in New Issue
Block a user