From 7b9f7e445e13de4f3169d9e5ba5e3b28c4d79ce4 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 14 Jan 2016 18:10:41 -0700 Subject: video: Provide a backspace method With proportional fonts the vidconsole uclass cannot itself erase the previous character. Provide an optional method so that the driver can handle this operation. Signed-off-by: Simon Glass --- drivers/video/vidconsole-uclass.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c index bea563a6c5b..f6326b6e072 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c @@ -57,9 +57,17 @@ static int vidconsole_entry_start(struct udevice *dev) } /* Move backwards one space */ -static void vidconsole_back(struct udevice *dev) +static int vidconsole_back(struct udevice *dev) { struct vidconsole_priv *priv = dev_get_uclass_priv(dev); + struct vidconsole_ops *ops = vidconsole_get_ops(dev); + int ret; + + if (ops->backspace) { + ret = ops->backspace(dev); + if (ret != -ENOSYS) + return ret; + } priv->xcur_frac -= VID_TO_POS(priv->x_charsize); if (priv->xcur_frac < priv->xstart_frac) { @@ -69,6 +77,8 @@ static void vidconsole_back(struct udevice *dev) if (priv->ycur < 0) priv->ycur = 0; } + + return 0; } /* Move to a newline, scrolling the display if necessary */ -- cgit v1.2.3