This commit makes the video subsystem code cache aware.
Memory allocated for decompressed BMP memory is now cache line aligned.

Flushing of the dcache is also performed after copying BMP data to fb
address.

Signed-off-by: Lukasz Majewski <l.majew...@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
Cc: Anatolij Gustschin <ag...@denx.de>
---
 common/cmd_bmp.c |    2 +-
 common/lcd.c     |    3 +++
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/common/cmd_bmp.c b/common/cmd_bmp.c
index b8809e3..7d3f45a 100644
--- a/common/cmd_bmp.c
+++ b/common/cmd_bmp.c
@@ -54,7 +54,7 @@ bmp_image_t *gunzip_bmp(unsigned long addr, unsigned long 
*lenp)
         * Decompress bmp image
         */
        len = CONFIG_SYS_VIDEO_LOGO_MAX_SIZE;
-       dst = malloc(CONFIG_SYS_VIDEO_LOGO_MAX_SIZE);
+       dst = memalign(CONFIG_SYS_CACHELINE_SIZE, len);
        if (dst == NULL) {
                puts("Error: malloc in gunzip failed!\n");
                return NULL;
diff --git a/common/lcd.c b/common/lcd.c
index 506a138..b092a11 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -802,6 +802,9 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
                        }
                        fb  -= (lcd_line_length + width * (bpix / 8));
                }
+               flush_dcache_range((unsigned long) fb,
+                                  (unsigned long) fb +
+                                  (lcd_line_length * height));
                break;
 #endif /* CONFIG_BMP_32BPP */
        default:
-- 
1.7.2.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to