From 5f528d53f1b16afe16a612f408cb9ced73491e78 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 24 Apr 2020 12:08:33 +0200 Subject: [PATCH] dma2d fixes --- src/lv_draw/lv_draw_img.c | 2 +- src/lv_gpu/lv_gpu_stm32_dma2d.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lv_draw/lv_draw_img.c b/src/lv_draw/lv_draw_img.c index 4fa2196f2..31cdbf786 100644 --- a/src/lv_draw/lv_draw_img.c +++ b/src/lv_draw/lv_draw_img.c @@ -399,7 +399,7 @@ static void lv_draw_map(const lv_area_t * map_area, const lv_area_t * clip_area, if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) { #if LV_USE_GPU_STM32_DMA2D && LV_COLOR_DEPTH == 32 /*Blend ARGB images directly*/ - if(lv_area_get_size(draw_area) > 240) { + if(lv_area_get_size(&draw_area) > 240) { int32_t disp_w = lv_area_get_width(disp_area); lv_color_t * disp_buf = vdb->buf_act; lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area.y1 + draw_area.x1; diff --git a/src/lv_gpu/lv_gpu_stm32_dma2d.c b/src/lv_gpu/lv_gpu_stm32_dma2d.c index 169a24eaa..7791d82b5 100644 --- a/src/lv_gpu/lv_gpu_stm32_dma2d.c +++ b/src/lv_gpu/lv_gpu_stm32_dma2d.c @@ -7,6 +7,7 @@ * INCLUDES *********************/ #include "lv_gpu_stm32_dma2d.h" +#include "../lv_core/lv_refr.h" #if LV_USE_GPU_STM32_DMA2D #include "stm32f7xx_hal.h" @@ -71,8 +72,8 @@ void lv_gpu_stm32_dma2d_fill(lv_color_t * buf, lv_coord_t buf_w, lv_color_t colo hdma2d.LayerCfg[1].InputOffset = 0; /* DMA2D Initialization */ - HAL_DMA2D_Init(&hdma2d) { - HAL_DMA2D_ConfigLayer(&hdma2d, 1) + HAL_DMA2D_Init(&hdma2d); + HAL_DMA2D_ConfigLayer(&hdma2d, 1); HAL_DMA2D_Start(&hdma2d, (uint32_t)lv_color_to32(color), (uint32_t)buf, fill_w, fill_h); dma2d_wait(); } @@ -191,7 +192,7 @@ void lv_gpu_stm32_dma2d_blend(lv_color_t * buf, lv_coord_t buf_w, const lv_color hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA; /* DMA2D Initialization */ - HAL_DMA2D_Init(&hdma2d); { + HAL_DMA2D_Init(&hdma2d); HAL_DMA2D_ConfigLayer(&hdma2d, 0); HAL_DMA2D_ConfigLayer(&hdma2d, 1); HAL_DMA2D_BlendingStart(&hdma2d, (uint32_t)map, (uint32_t)buf, (uint32_t)buf, copy_w, copy_h); @@ -205,7 +206,7 @@ void lv_gpu_stm32_dma2d_blend(lv_color_t * buf, lv_coord_t buf_w, const lv_color static void dma2d_wait(void) { lv_disp_t * disp = lv_refr_get_disp_refreshing(); - while(HAL_DMA2D_PollForTransfer(&hdma2d, 0) == HAL_BUSY) { + while(HAL_DMA2D_PollForTransfer(&hdma2d, 0) == HAL_TIMEOUT) { if(disp->driver.wait_cb) disp->driver.wait_cb(&disp->driver); } }