summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-01-14 18:10:48 -0700
committerAnatolij Gustschin <agust@denx.de>2016-01-30 10:57:20 +0100
commit826f35f9b57c4581ff69d55c3bade9c3814e29bb (patch)
tree8f6d5105e09e133b5e4c3195921900f274c356d5 /drivers
parent0f4d2f8e79f128de006c9b116be84f3e4dbba210 (diff)
downloadtalos-obmc-uboot-826f35f9b57c4581ff69d55c3bade9c3814e29bb.tar.gz
talos-obmc-uboot-826f35f9b57c4581ff69d55c3bade9c3814e29bb.zip
video: Allow selection of the driver and font size
Provide a way for the video console driver to be selected. This is controlled by the video driver's private data. This can be set up when the driver is probed so that it is ready for the video_post_probe() method. The font size is provided as well. The console driver may or may not support this depending on its capability. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/video-uclass.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 2189fce369..b6dd0f5a58 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -180,6 +180,7 @@ static int video_post_probe(struct udevice *dev)
struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
struct video_priv *priv = dev_get_uclass_priv(dev);
char name[30], drv[15], *str;
+ const char *drv_name = drv;
struct udevice *cons;
int ret;
@@ -197,11 +198,19 @@ static int video_post_probe(struct udevice *dev)
video_clear(dev);
/*
- * Create a text console devices. For now we always do this, although
+ * Create a text console device. For now we always do this, although
* it might be useful to support only bitmap drawing on the device
- * for boards that don't need to display text.
+ * for boards that don't need to display text. We create a TrueType
+ * console if enabled, a rotated console if the video driver requests
+ * it, otherwise a normal console.
+ *
+ * The console can be override by setting vidconsole_drv_name before
+ * probing this video driver, or in the probe() method.
+ *
+ * TrueType does not support rotation at present so fall back to the
+ * rotated console in that case.
*/
- if (IS_ENABLED(CONFIG_CONSOLE_TRUETYPE)) {
+ if (!priv->rot && IS_ENABLED(CONFIG_CONSOLE_TRUETYPE)) {
snprintf(name, sizeof(name), "%s.vidconsole_tt", dev->name);
strcpy(drv, "vidconsole_tt");
} else {
@@ -213,11 +222,14 @@ static int video_post_probe(struct udevice *dev)
str = strdup(name);
if (!str)
return -ENOMEM;
- ret = device_bind_driver(dev, drv, str, &cons);
+ if (priv->vidconsole_drv_name)
+ drv_name = priv->vidconsole_drv_name;
+ ret = device_bind_driver(dev, drv_name, str, &cons);
if (ret) {
debug("%s: Cannot bind console driver\n", __func__);
return ret;
}
+
ret = device_probe(cons);
if (ret) {
debug("%s: Cannot probe console driver\n", __func__);
OpenPOWER on IntegriCloud