summaryrefslogtreecommitdiff
path: root/src/drivers/display.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/display.cpp')
-rw-r--r--src/drivers/display.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/drivers/display.cpp b/src/drivers/display.cpp
index b0a97b30..e28b6b47 100644
--- a/src/drivers/display.cpp
+++ b/src/drivers/display.cpp
@@ -296,6 +296,8 @@ void Display::SendTransaction(TransactionType type,
void Display::OnLvglFlush(lv_disp_drv_t* disp_drv,
const lv_area_t* area,
lv_color_t* color_map) {
+ spi_device_acquire_bus(handle_, portMAX_DELAY);
+
// First we need to specify the rectangle of the display we're writing into.
uint16_t data[2] = {0, 0};
@@ -314,6 +316,8 @@ void Display::OnLvglFlush(lv_disp_drv_t* disp_drv,
SendCommandWithData(displays::ST77XX_RAMWR,
reinterpret_cast<uint8_t*>(color_map), size * 2);
+ spi_device_release_bus(handle_);
+
if (!first_flush_finished_ && lv_disp_flush_is_last(disp_drv)) {
first_flush_finished_ = true;
SetDisplayOn(display_on_);