rockchip: Remove ARCH= references from documentation
[oweals/u-boot.git] / common / lcd.c
index 7e399cee2de6822a56703870302aa4eec987cc59..02f2db3a99e54b0629a539831db31735305513cd 100644 (file)
@@ -1,17 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Common LCD routines
  *
  * (C) Copyright 2001-2002
  * Wolfgang Denk, DENX Software Engineering -- wd@denx.de
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /* #define DEBUG */
 #include <config.h>
 #include <common.h>
 #include <command.h>
+#include <cpu_func.h>
 #include <env_callback.h>
+#include <log.h>
+#include <asm/cache.h>
+#include <init.h>
 #include <linux/types.h>
 #include <stdio_dev.h>
 #include <lcd.h>
@@ -62,7 +65,7 @@ void lcd_sync(void)
         * architectures do not actually implement it. Is there a way to find
         * out whether it exists? For now, ARM is safe.
         */
-#if defined(CONFIG_ARM) && !defined(CONFIG_SYS_DCACHE_OFF)
+#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
        int line_length;
 
        if (lcd_flush_dcache)
@@ -172,8 +175,7 @@ int drv_lcd_init(void)
 void lcd_clear(void)
 {
        int bg_color;
-       char *s;
-       ulong addr;
+       __maybe_unused ulong addr;
        static int do_splash = 1;
 #if LCD_BPP == LCD_COLOR8
        /* Setting the palette */
@@ -223,14 +225,10 @@ void lcd_clear(void)
        /* Paint the logo and retrieve LCD base address */
        debug("[LCD] Drawing the logo...\n");
        if (do_splash) {
-               s = getenv("splashimage");
-               if (s) {
+               if (splash_display() == 0) {
                        do_splash = 0;
-                       addr = simple_strtoul(s, NULL, 16);
-                       if (lcd_splash(addr) == 0) {
-                               lcd_sync();
-                               return;
-                       }
+                       lcd_sync();
+                       return;
                }
        }
 
@@ -243,14 +241,6 @@ void lcd_clear(void)
        lcd_sync();
 }
 
-static int do_lcd_clear(cmd_tbl_t *cmdtp, int flag, int argc,
-                       char *const argv[])
-{
-       lcd_clear();
-       return 0;
-}
-U_BOOT_CMD(cls,        1, 1, do_lcd_clear, "clear screen", "");
-
 static int lcd_init(void *lcdbase)
 {
        debug("[LCD] Initializing LCD frambuffer at %p\n", lcdbase);
@@ -390,7 +380,6 @@ static inline void lcd_logo_plot(int x, int y) {}
 
 #if defined(CONFIG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)
 #ifdef CONFIG_SPLASH_SCREEN_ALIGN
-#define BMP_ALIGN_CENTER       0x7FFF
 
 static void splash_align_axis(int *axis, unsigned long panel_size,
                                        unsigned long picture_size)
@@ -578,7 +567,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
        unsigned long pwidth = panel_info.vl_col;
        unsigned colors, bpix, bmp_bpix;
        int hdr_size;
-       struct bmp_color_table_entry *palette = bmp->color_table;
+       struct bmp_color_table_entry *palette;
 
        if (!bmp || !(bmp->header.signature[0] == 'B' &&
                bmp->header.signature[1] == 'M')) {
@@ -587,6 +576,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
                return 1;
        }
 
+       palette = bmp->color_table;
        width = get_unaligned_le32(&bmp->header.width);
        height = get_unaligned_le32(&bmp->header.height);
        bmp_bpix = get_unaligned_le16(&bmp->header.bit_count);