diff mbox series

[U-Boot,v1,09/12] dm: video: Fix cache flushes

Message ID 20170910132236.14318-10-robdclark@gmail.com
State Superseded, archived
Delegated to: Alexander Graf
Headers show
Series efi_loader+video: support for Shell.efi | expand

Commit Message

Rob Clark Sept. 10, 2017, 1:22 p.m. UTC
Content can come to screen via putc() and we cannot always rely on
updates ending with a puts().  This is the case with efi_console output
to vidconsole.  Fixes corruption with Shell.efi.

Signed-off-by: Rob Clark <robdclark@gmail.com>
---
 drivers/video/vidconsole-uclass.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Heinrich Schuchardt Oct. 4, 2017, 7:29 p.m. UTC | #1
On 09/10/2017 03:22 PM, Rob Clark wrote:
> Content can come to screen via putc() and we cannot always rely on
> updates ending with a puts().

The commit message does not explain why you are modifying videconsole_puts.

Probably you wanted to refer to a newline character '\n' which leads to
calling video_sync without your patch. Please, update the commit message.

The code change looks correct to me.

Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> This is the case with efi_console output
> to vidconsole.  Fixes corruption with Shell.efi.
> 
> Signed-off-by: Rob Clark <robdclark@gmail.com>
> ---
>  drivers/video/vidconsole-uclass.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
> index b5afd72227..e081d5a0ee 100644
> --- a/drivers/video/vidconsole-uclass.c
> +++ b/drivers/video/vidconsole-uclass.c
> @@ -163,6 +163,7 @@ static void vidconsole_putc(struct stdio_dev *sdev, const char ch)
>  	struct udevice *dev = sdev->priv;
>  
>  	vidconsole_put_char(dev, ch);
> +	video_sync(dev->parent);
>  }
>  
>  static void vidconsole_puts(struct stdio_dev *sdev, const char *s)
> @@ -260,6 +261,8 @@ static int do_video_puts(cmd_tbl_t *cmdtp, int flag, int argc,
>  	for (s = argv[1]; *s; s++)
>  		vidconsole_put_char(dev, *s);
>  
> +	video_sync(dev->parent);
> +
>  	return 0;
>  }
>  
>
diff mbox series

Patch

diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index b5afd72227..e081d5a0ee 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -163,6 +163,7 @@  static void vidconsole_putc(struct stdio_dev *sdev, const char ch)
 	struct udevice *dev = sdev->priv;
 
 	vidconsole_put_char(dev, ch);
+	video_sync(dev->parent);
 }
 
 static void vidconsole_puts(struct stdio_dev *sdev, const char *s)
@@ -260,6 +261,8 @@  static int do_video_puts(cmd_tbl_t *cmdtp, int flag, int argc,
 	for (s = argv[1]; *s; s++)
 		vidconsole_put_char(dev, *s);
 
+	video_sync(dev->parent);
+
 	return 0;
 }