diff mbox

[U-Boot,1/2] dm: video: Add a temporary work-around for old stdout var

Message ID 1454794298-20111-1-git-send-email-sjg@chromium.org
State Accepted
Delegated to: Anatolij Gustschin
Headers show

Commit Message

Simon Glass Feb. 6, 2016, 9:31 p.m. UTC
Boards with a saved environment may use 'lcd' in their stdout environment
variable, expecting that this will enable output to the LCD. When the board
moves to use driver model for video, this will no-longer work. Add a
work-around to fix this. A warning messages is printed, and we will remove
the work-around at the end of 2016.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 common/console.c      |  8 ++++++++
 drivers/video/Kconfig | 10 ++++++++++
 2 files changed, 18 insertions(+)

Comments

Anatolij Gustschin Feb. 6, 2016, 10:23 p.m. UTC | #1
Hi Simon,

On Sat,  6 Feb 2016 14:31:37 -0700
Simon Glass sjg@chromium.org wrote:

> Boards with a saved environment may use 'lcd' in their stdout environment
> variable, expecting that this will enable output to the LCD. When the board
> moves to use driver model for video, this will no-longer work. Add a
> work-around to fix this. A warning messages is printed, and we will remove
> the work-around at the end of 2016.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>  common/console.c      |  8 ++++++++
>  drivers/video/Kconfig | 10 ++++++++++
>  2 files changed, 18 insertions(+)

Acked-by: Anatolij Gustschin <agust@denx.de>

--
Anatolij
Stephen Warren Feb. 8, 2016, 9:09 p.m. UTC | #2
On 02/06/2016 02:31 PM, Simon Glass wrote:
> Boards with a saved environment may use 'lcd' in their stdout environment
> variable, expecting that this will enable output to the LCD. When the board
> moves to use driver model for video, this will no-longer work. Add a
> work-around to fix this. A warning messages is printed, and we will remove
> the work-around at the end of 2016.

I tested u-boot-dm/tegra-working which I assume is the same as these 
patches, so the series,

Tested-by: Stephen Warren <swarren@nvidia.com>

But...

> diff --git a/drivers/video/Kconfig b/drivers/video/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.

Removing this option at the end of 2016 is simply going to cause the 
exact same problem then. Is there any harm in simply not deprecating 
this feature? I suppose at least there's a warning that people should 
convert over, so perhaps they will and so the chances of people getting 
bitten by this well be less by then.
Simon Glass Feb. 11, 2016, 8:28 p.m. UTC | #3
Hi Stephen,

On 8 February 2016 at 14:09, Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 02/06/2016 02:31 PM, Simon Glass wrote:
>>
>> Boards with a saved environment may use 'lcd' in their stdout environment
>> variable, expecting that this will enable output to the LCD. When the
>> board
>> moves to use driver model for video, this will no-longer work. Add a
>> work-around to fix this. A warning messages is printed, and we will remove
>> the work-around at the end of 2016.
>
>
> I tested u-boot-dm/tegra-working which I assume is the same as these
> patches, so the series,
>
> Tested-by: Stephen Warren <swarren@nvidia.com>
>
> But...
>
>> diff --git a/drivers/video/Kconfig b/drivers/video/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.
>
>
> Removing this option at the end of 2016 is simply going to cause the exact
> same problem then. Is there any harm in simply not deprecating this feature?
> I suppose at least there's a warning that people should convert over, so
> perhaps they will and so the chances of people getting bitten by this well
> be less by then.

Also we do need people to keep up with things to some extent.
Otherwise we end up with cruft that confuses people. There is a
prominent run-time message that people will see in the meantime.

What's the status of this series now? I'd like to see if it can be applied.

Regards,
Simon
Anatolij Gustschin Feb. 11, 2016, 8:38 p.m. UTC | #4
Hi Simon,

On Sat,  6 Feb 2016 14:31:37 -0700
Simon Glass sjg@chromium.org wrote:

> Boards with a saved environment may use 'lcd' in their stdout environment
> variable, expecting that this will enable output to the LCD. When the board
> moves to use driver model for video, this will no-longer work. Add a
> work-around to fix this. A warning messages is printed, and we will remove
> the work-around at the end of 2016.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>  common/console.c      |  8 ++++++++
>  drivers/video/Kconfig | 10 ++++++++++
>  2 files changed, 18 insertions(+)

applied to u-boot-video/master, thanks!

--
Anatolij
diff mbox

Patch

diff --git a/common/console.c b/common/console.c
index b3f5fdc..6a0d11b 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 981ba8b..ae6c244 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -57,6 +57,16 @@  config VIDEO_ROTATION
 	  struct video_priv: 0=unrotated, 1=90 degrees clockwise, 2=180
 	  degrees, 3=270 degrees.
 
+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