mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-12 10:17:02 +02:00
- fix sunxi LCD clock divider
- fix splash logo with DM_VIDEO and CONFIG_VIDEO_LOGO - fix splash banner output with DM_VIDEO -----BEGIN PGP SIGNATURE----- iGwEABECACwWIQSC4hxrSoIUVfFO0kRM6ATMmsalXAUCXYfOAg4cYWd1c3RAZGVu eC5kZQAKCRBM6ATMmsalXNuvAJ9VzrhgsuLwc10A64B/UEdnVEhXSwCeM8fTzWDt JkN2FTYt5mImZtm52jI= =U0N4 -----END PGP SIGNATURE----- Merge tag 'fixes-for-2019.10' of https://gitlab.denx.de/u-boot/custodians/u-boot-video.git - fix sunxi LCD clock divider - fix splash logo with DM_VIDEO and CONFIG_VIDEO_LOGO - fix splash banner output with DM_VIDEO
This commit is contained in:
commit
780a17e814
@ -52,10 +52,41 @@ static struct splash_location default_splash_locations[] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(CONFIG_DM_VIDEO) && defined(CONFIG_VIDEO_LOGO)
|
||||||
|
|
||||||
|
#include <bmp_logo_data.h>
|
||||||
|
|
||||||
|
static int splash_video_logo_load(void)
|
||||||
|
{
|
||||||
|
char *splashimage;
|
||||||
|
u32 bmp_load_addr;
|
||||||
|
|
||||||
|
splashimage = env_get("splashimage");
|
||||||
|
if (!splashimage)
|
||||||
|
return -ENOENT;
|
||||||
|
|
||||||
|
bmp_load_addr = simple_strtoul(splashimage, 0, 16);
|
||||||
|
if (!bmp_load_addr) {
|
||||||
|
printf("Error: bad 'splashimage' address\n");
|
||||||
|
return -EFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy((void *)bmp_load_addr, bmp_logo_bitmap,
|
||||||
|
ARRAY_SIZE(bmp_logo_bitmap));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline int splash_video_logo_load(void) { return -ENOSYS; }
|
||||||
|
#endif
|
||||||
|
|
||||||
__weak int splash_screen_prepare(void)
|
__weak int splash_screen_prepare(void)
|
||||||
{
|
{
|
||||||
|
if (CONFIG_IS_ENABLED(SPLASH_SOURCE))
|
||||||
return splash_source_load(default_splash_locations,
|
return splash_source_load(default_splash_locations,
|
||||||
ARRAY_SIZE(default_splash_locations));
|
ARRAY_SIZE(default_splash_locations));
|
||||||
|
|
||||||
|
return splash_video_logo_load();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||||
@ -81,6 +112,42 @@ void splash_get_pos(int *x, int *y)
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
|
#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
|
||||||
|
|
||||||
|
#if defined(CONFIG_DM_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
|
||||||
|
|
||||||
|
#ifdef CONFIG_VIDEO_LOGO
|
||||||
|
#include <bmp_logo.h>
|
||||||
|
#endif
|
||||||
|
#include <dm.h>
|
||||||
|
#include <video_console.h>
|
||||||
|
#include <video_font.h>
|
||||||
|
|
||||||
|
void splash_display_banner(void)
|
||||||
|
{
|
||||||
|
struct udevice *dev;
|
||||||
|
char buf[DISPLAY_OPTIONS_BANNER_LENGTH];
|
||||||
|
int col, row, ret;
|
||||||
|
|
||||||
|
ret = uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &dev);
|
||||||
|
if (ret)
|
||||||
|
return;
|
||||||
|
|
||||||
|
#ifdef CONFIG_VIDEO_LOGO
|
||||||
|
col = BMP_LOGO_WIDTH / VIDEO_FONT_WIDTH + 1;
|
||||||
|
row = BMP_LOGO_HEIGHT / VIDEO_FONT_HEIGHT + 1;
|
||||||
|
#else
|
||||||
|
col = 0;
|
||||||
|
row = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
display_options_get_banner(false, buf, sizeof(buf));
|
||||||
|
vidconsole_position_cursor(dev, col, 1);
|
||||||
|
vidconsole_put_string(dev, buf);
|
||||||
|
vidconsole_position_cursor(dev, 0, row);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void splash_display_banner(void) { }
|
||||||
|
#endif /* CONFIG_DM_VIDEO && !CONFIG_HIDE_LOGO_VERSION */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Common function to show a splash image if env("splashimage") is set.
|
* Common function to show a splash image if env("splashimage") is set.
|
||||||
* Is used for both dm_video and lcd video stacks. For additional
|
* Is used for both dm_video and lcd video stacks. For additional
|
||||||
@ -104,6 +171,14 @@ int splash_display(void)
|
|||||||
|
|
||||||
splash_get_pos(&x, &y);
|
splash_get_pos(&x, &y);
|
||||||
|
|
||||||
return bmp_display(addr, x, y);
|
ret = bmp_display(addr, x, y);
|
||||||
|
|
||||||
|
/* Skip banner output on video console if the logo is not at 0,0 */
|
||||||
|
if (x || y)
|
||||||
|
goto end;
|
||||||
|
|
||||||
|
splash_display_banner();
|
||||||
|
end:
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -27,6 +27,7 @@ CONFIG_CMD_I2C=y
|
|||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
CONFIG_CMD_MII=y
|
CONFIG_CMD_MII=y
|
||||||
CONFIG_CMD_PING=y
|
CONFIG_CMD_PING=y
|
||||||
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_EXT4=y
|
CONFIG_CMD_EXT4=y
|
||||||
CONFIG_CMD_EXT4_WRITE=y
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
@ -51,4 +52,5 @@ CONFIG_PINCTRL_IMX6=y
|
|||||||
CONFIG_MXC_UART=y
|
CONFIG_MXC_UART=y
|
||||||
CONFIG_IMX_THERMAL=y
|
CONFIG_IMX_THERMAL=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
CONFIG_VIDEO_IPUV3=y
|
CONFIG_VIDEO_IPUV3=y
|
||||||
|
@ -28,6 +28,7 @@ CONFIG_CMD_I2C=y
|
|||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
CONFIG_CMD_MII=y
|
CONFIG_CMD_MII=y
|
||||||
CONFIG_CMD_PING=y
|
CONFIG_CMD_PING=y
|
||||||
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_EXT4=y
|
CONFIG_CMD_EXT4=y
|
||||||
CONFIG_CMD_EXT4_WRITE=y
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
@ -52,4 +53,5 @@ CONFIG_PINCTRL_IMX6=y
|
|||||||
CONFIG_MXC_UART=y
|
CONFIG_MXC_UART=y
|
||||||
CONFIG_IMX_THERMAL=y
|
CONFIG_IMX_THERMAL=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
CONFIG_VIDEO_IPUV3=y
|
CONFIG_VIDEO_IPUV3=y
|
||||||
|
@ -37,6 +37,7 @@ CONFIG_CMD_MMC=y
|
|||||||
CONFIG_CMD_MII=y
|
CONFIG_CMD_MII=y
|
||||||
CONFIG_CMD_PING=y
|
CONFIG_CMD_PING=y
|
||||||
CONFIG_CMD_BOOTCOUNT=y
|
CONFIG_CMD_BOOTCOUNT=y
|
||||||
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_EXT2=y
|
CONFIG_CMD_EXT2=y
|
||||||
CONFIG_CMD_EXT4=y
|
CONFIG_CMD_EXT4=y
|
||||||
@ -67,5 +68,6 @@ CONFIG_DEBUG_UART_MXC=y
|
|||||||
CONFIG_MXC_UART=y
|
CONFIG_MXC_UART=y
|
||||||
CONFIG_IMX_THERMAL=y
|
CONFIG_IMX_THERMAL=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
CONFIG_VIDEO_IPUV3=y
|
CONFIG_VIDEO_IPUV3=y
|
||||||
CONFIG_IMX_WATCHDOG=y
|
CONFIG_IMX_WATCHDOG=y
|
||||||
|
@ -28,6 +28,7 @@ CONFIG_CMD_I2C=y
|
|||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
CONFIG_CMD_MII=y
|
CONFIG_CMD_MII=y
|
||||||
CONFIG_CMD_PING=y
|
CONFIG_CMD_PING=y
|
||||||
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_EXT4=y
|
CONFIG_CMD_EXT4=y
|
||||||
CONFIG_CMD_EXT4_WRITE=y
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
@ -52,4 +53,5 @@ CONFIG_PINCTRL_IMX6=y
|
|||||||
CONFIG_MXC_UART=y
|
CONFIG_MXC_UART=y
|
||||||
CONFIG_IMX_THERMAL=y
|
CONFIG_IMX_THERMAL=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
CONFIG_VIDEO_IPUV3=y
|
CONFIG_VIDEO_IPUV3=y
|
||||||
|
@ -44,6 +44,7 @@ CONFIG_CMD_USB=y
|
|||||||
CONFIG_CMD_DHCP=y
|
CONFIG_CMD_DHCP=y
|
||||||
CONFIG_CMD_MII=y
|
CONFIG_CMD_MII=y
|
||||||
CONFIG_CMD_PING=y
|
CONFIG_CMD_PING=y
|
||||||
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_EXT2=y
|
CONFIG_CMD_EXT2=y
|
||||||
CONFIG_CMD_EXT4=y
|
CONFIG_CMD_EXT4=y
|
||||||
@ -90,4 +91,5 @@ CONFIG_USB_GADGET_DOWNLOAD=y
|
|||||||
CONFIG_USB_HOST_ETHER=y
|
CONFIG_USB_HOST_ETHER=y
|
||||||
CONFIG_USB_ETHER_ASIX=y
|
CONFIG_USB_ETHER_ASIX=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
CONFIG_VIDEO_IPUV3=y
|
CONFIG_VIDEO_IPUV3=y
|
||||||
|
@ -47,6 +47,7 @@ CONFIG_CMD_USB_MASS_STORAGE=y
|
|||||||
CONFIG_CMD_DHCP=y
|
CONFIG_CMD_DHCP=y
|
||||||
CONFIG_CMD_MII=y
|
CONFIG_CMD_MII=y
|
||||||
CONFIG_CMD_PING=y
|
CONFIG_CMD_PING=y
|
||||||
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_EXT2=y
|
CONFIG_CMD_EXT2=y
|
||||||
CONFIG_CMD_EXT4=y
|
CONFIG_CMD_EXT4=y
|
||||||
@ -99,4 +100,5 @@ CONFIG_CI_UDC=y
|
|||||||
CONFIG_USB_HOST_ETHER=y
|
CONFIG_USB_HOST_ETHER=y
|
||||||
CONFIG_USB_ETHER_ASIX=y
|
CONFIG_USB_ETHER_ASIX=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
CONFIG_VIDEO_IPUV3=y
|
CONFIG_VIDEO_IPUV3=y
|
||||||
|
@ -37,6 +37,7 @@ CONFIG_CMD_I2C=y
|
|||||||
CONFIG_CMD_MMC=y
|
CONFIG_CMD_MMC=y
|
||||||
CONFIG_CMD_SATA=y
|
CONFIG_CMD_SATA=y
|
||||||
CONFIG_CMD_USB=y
|
CONFIG_CMD_USB=y
|
||||||
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_CACHE=y
|
CONFIG_CMD_CACHE=y
|
||||||
CONFIG_CMD_EXT4_WRITE=y
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
CONFIG_OF_CONTROL=y
|
CONFIG_OF_CONTROL=y
|
||||||
@ -66,4 +67,5 @@ CONFIG_DM_THERMAL=y
|
|||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
CONFIG_DM_USB=y
|
CONFIG_DM_USB=y
|
||||||
CONFIG_DM_VIDEO=y
|
CONFIG_DM_VIDEO=y
|
||||||
|
CONFIG_SYS_WHITE_ON_BLACK=y
|
||||||
CONFIG_VIDEO_IPUV3=y
|
CONFIG_VIDEO_IPUV3=y
|
||||||
|
@ -254,7 +254,7 @@ static void sunxi_dw_hdmi_lcdc_init(int mux, const struct display_timing *edid,
|
|||||||
{
|
{
|
||||||
struct sunxi_ccm_reg * const ccm =
|
struct sunxi_ccm_reg * const ccm =
|
||||||
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
|
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
|
||||||
int div = clock_get_pll3() / edid->pixelclock.typ;
|
int div = DIV_ROUND_UP(clock_get_pll3(), edid->pixelclock.typ);
|
||||||
struct sunxi_lcdc_reg *lcdc;
|
struct sunxi_lcdc_reg *lcdc;
|
||||||
|
|
||||||
if (mux == 0) {
|
if (mux == 0) {
|
||||||
|
@ -213,6 +213,7 @@
|
|||||||
"load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \
|
"load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \
|
||||||
"source ${loadaddr}\0" \
|
"source ${loadaddr}\0" \
|
||||||
"splashpos=m,m\0" \
|
"splashpos=m,m\0" \
|
||||||
|
"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
|
||||||
"vidargs=mxc_hdmi.only_cea=1 " \
|
"vidargs=mxc_hdmi.only_cea=1 " \
|
||||||
"video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 " \
|
"video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 " \
|
||||||
"video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off " \
|
"video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off " \
|
||||||
|
@ -195,6 +195,7 @@
|
|||||||
"load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \
|
"load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \
|
||||||
"source ${loadaddr}\0" \
|
"source ${loadaddr}\0" \
|
||||||
"splashpos=m,m\0" \
|
"splashpos=m,m\0" \
|
||||||
|
"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
|
||||||
"vidargs=video=mxcfb0:dev=lcd,640x480M@60,if=RGB666 " \
|
"vidargs=video=mxcfb0:dev=lcd,640x480M@60,if=RGB666 " \
|
||||||
"video=mxcfb1:off fbmem=8M\0 "
|
"video=mxcfb1:off fbmem=8M\0 "
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||||
"script=boot.scr\0" \
|
"script=boot.scr\0" \
|
||||||
"splashpos=m,m\0" \
|
"splashpos=m,m\0" \
|
||||||
|
"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
|
||||||
"image=uImage\0" \
|
"image=uImage\0" \
|
||||||
"fit_image=fit.itb\0" \
|
"fit_image=fit.itb\0" \
|
||||||
"fdt_high=0xffffffff\0" \
|
"fdt_high=0xffffffff\0" \
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
"dfu_alt_info=spl raw 0x400\0" \
|
"dfu_alt_info=spl raw 0x400\0" \
|
||||||
"fdt_high=0xffffffff\0" \
|
"fdt_high=0xffffffff\0" \
|
||||||
"initrd_high=0xffffffff\0" \
|
"initrd_high=0xffffffff\0" \
|
||||||
|
"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
|
||||||
"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
|
"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
|
||||||
"mmcpart=1\0" \
|
"mmcpart=1\0" \
|
||||||
"finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
|
"finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||||
"console=ttymxc0\0" \
|
"console=ttymxc0\0" \
|
||||||
"splashpos=m,m\0" \
|
"splashpos=m,m\0" \
|
||||||
|
"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
|
||||||
"fdtfile=undefined\0" \
|
"fdtfile=undefined\0" \
|
||||||
"fdt_high=0xffffffff\0" \
|
"fdt_high=0xffffffff\0" \
|
||||||
"initrd_high=0xffffffff\0" \
|
"initrd_high=0xffffffff\0" \
|
||||||
|
Loading…
Reference in New Issue
Block a user