summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/Kconfig1
-rw-r--r--common/console.c8
-rw-r--r--drivers/video/Kconfig10
-rw-r--r--drivers/video/bcm2835.c4
4 files changed, 22 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 0b2852c4da..3857243947 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -13,6 +13,7 @@ config TEGRA_COMMON
select DM_SPI
select DM_SPI_FLASH
select OF_CONTROL
+ select VIDCONSOLE_AS_LCD
config TEGRA_ARMV7_COMMON
bool "Tegra 32-bit common options"
diff --git a/common/console.c b/common/console.c
index b3f5fdc03a..6a0d11bb04 100644
--- a/common/console.c
+++ b/common/console.c
@@ -650,6 +650,10 @@ struct stdio_dev *search_device(int flags, const char *name)
struct stdio_dev *dev;
dev = stdio_get_by_name(name);
+#ifdef CONFIG_VIDCONSOLE_AS_LCD
+ if (!dev && !strcmp(name, "lcd"))
+ dev = stdio_get_by_name("vidconsole");
+#endif
if (dev && (dev->flags & flags))
return dev;
@@ -795,6 +799,10 @@ done:
#ifndef CONFIG_SYS_CONSOLE_INFO_QUIET
stdio_print_current_devices();
#endif /* CONFIG_SYS_CONSOLE_INFO_QUIET */
+#ifdef CONFIG_VIDCONSOLE_AS_LCD
+ if (strstr(stdoutname, "lcd"))
+ printf("Warning: Please change 'lcd' to 'vidconsole' in stdout/stderr environment vars\n");
+#endif
#ifdef CONFIG_SYS_CONSOLE_ENV_OVERWRITE
/* set the environment variables (will overwrite previous env settings) */
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index fbc5d7cfe7..19f9429cce 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -91,6 +91,16 @@ config CONSOLE_TRUETYPE_SIZE
source "drivers/video/fonts/Kconfig"
+config VIDCONSOLE_AS_LCD
+ bool "Use 'vidconsole' when 'lcd' is seen in stdout"
+ depends on DM_VIDEO
+ help
+ This is a work-around for boards which have 'lcd' in their stdout
+ environment variable, but have moved to use driver model for video.
+ In this case the console will no-longer work. While it is possible
+ to update the environment, the breakage may be confusing for users.
+ This option will be removed around the end of 2016.
+
config VIDEO_VESA
bool "Enable VESA video driver support"
default n
diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c
index 7867fe3895..bff1fcb9ea 100644
--- a/drivers/video/bcm2835.c
+++ b/drivers/video/bcm2835.c
@@ -7,6 +7,7 @@
#include <common.h>
#include <lcd.h>
#include <memalign.h>
+#include <phys2bus.h>
#include <asm/arch/mbox.h>
#include <asm/global_data.h>
@@ -103,7 +104,8 @@ void lcd_ctrl_init(void *lcdbase)
panel_info.vl_row = h;
panel_info.vl_bpix = LCD_COLOR16;
- gd->fb_base = msg_setup->allocate_buffer.body.resp.fb_address;
+ gd->fb_base = bus_to_phys(
+ msg_setup->allocate_buffer.body.resp.fb_address);
}
void lcd_enable(void)
OpenPOWER on IntegriCloud