From 850b52c1fe18f8b983f9cdf8b971395717acb237 Mon Sep 17 00:00:00 2001 From: cepetr Date: Wed, 12 Feb 2025 11:34:15 +0100 Subject: [PATCH] fix(core): fix hw jpegdec issue with grayscale images [no changelog] --- core/embed/gfx/jpegdec/stm32u5/jpegdec.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/embed/gfx/jpegdec/stm32u5/jpegdec.c b/core/embed/gfx/jpegdec/stm32u5/jpegdec.c index 6d1cd09735..18f30c4474 100644 --- a/core/embed/gfx/jpegdec/stm32u5/jpegdec.c +++ b/core/embed/gfx/jpegdec/stm32u5/jpegdec.c @@ -439,25 +439,27 @@ bool jpegdec_get_slice_rgba8888(uint32_t *rgba8888, jpegdec_slice_t *slice) { .src_alpha = 255, }; + bool result = false; + #ifdef KERNEL tz_set_dma2d_unpriv(false); #endif switch (dec->image.format) { case JPEGDEC_IMAGE_YCBCR420: - dma2d_rgba8888_copy_ycbcr420(&bb); + result = dma2d_rgba8888_copy_ycbcr420(&bb); break; case JPEGDEC_IMAGE_YCBCR422: - dma2d_rgba8888_copy_ycbcr422(&bb); + result = dma2d_rgba8888_copy_ycbcr422(&bb); break; case JPEGDEC_IMAGE_YCBCR444: - dma2d_rgba8888_copy_ycbcr444(&bb); + result = dma2d_rgba8888_copy_ycbcr444(&bb); break; case JPEGDEC_IMAGE_GRAYSCALE: // Conversion from grayscale to RGBA8888 is not supported - return false; default: - return false; + result = false; + break; } // Wait until the DMA transfer is complete so that the caller can use @@ -468,7 +470,7 @@ bool jpegdec_get_slice_rgba8888(uint32_t *rgba8888, jpegdec_slice_t *slice) { tz_set_dma2d_unpriv(true); #endif - return true; + return result; } #endif // KERNEL_MODE