forked from espressif/esp-idf
lcd: delay 1us between DMA start and LCD start
Closes https://github.com/espressif/esp-idf/issues/8212
This commit is contained in:
@@ -565,6 +565,9 @@ static void lcd_start_transaction(esp_lcd_i80_bus_t *bus, lcd_i80_trans_descript
|
||||
lcd_ll_set_command(bus->hal.dev, bus->bus_width, trans_desc->cmd_value);
|
||||
if (trans_desc->data) { // some specific LCD commands can have no parameters
|
||||
gdma_start(bus->dma_chan, (intptr_t)(bus->dma_nodes));
|
||||
// delay 1us is sufficient for DMA to pass data to LCD FIFO
|
||||
// in fact, this is only needed when LCD pixel clock is set too high
|
||||
esp_rom_delay_us(1);
|
||||
}
|
||||
lcd_ll_start(bus->hal.dev);
|
||||
}
|
||||
|
@@ -190,6 +190,8 @@ static inline uint32_t gdma_ll_rx_get_fifo_bytes(gdma_dev_t *dev, uint32_t chann
|
||||
return dev->channel[channel].in.infifo_status.infifo_cnt_l2;
|
||||
case 3:
|
||||
return dev->channel[channel].in.infifo_status.infifo_cnt_l3;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,6 +436,8 @@ static inline uint32_t gdma_ll_tx_get_fifo_bytes(gdma_dev_t *dev, uint32_t chann
|
||||
return dev->channel[channel].out.outfifo_status.outfifo_cnt_l2;
|
||||
case 3:
|
||||
return dev->channel[channel].out.outfifo_status.outfifo_cnt_l3;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user