[U-Boot] [PATCH] LCD: Add an option to skip registration as an stdio output

From: Stephane Ayotte sayotte@tycoint.com
This patch adds an option to skip the registration of LCD stdio ouput for boards that want to show different text on LCD than on serial output (or the active stdout selected by the environment variable).
Signed-off-by: Stephane Ayotte sayotte@tycoint.com ---
This implementation is similar to what has been added to cfb_console.c by Stefan Roese sr@denx.de per commit 6cc7ba9e on 05/15/2009
I am sending this patch using sayotte.tyco@gmail.com as our regular smtp server sayotte@tycoint.com causes patch issues.
common/lcd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/common/lcd.c b/common/lcd.c index d29308a..ed68be9 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -143,6 +143,16 @@ __weak int lcd_get_size(int *line_length) return *line_length * panel_info.vl_row; }
+/* + * Implement a weak default function for boards that optionally + * need to skip the lcd console initialization. + */ +__weak int board_lcd_console_skip(void) +{ + /* As default, don't skip cfb init */ + return 0; +} + int drv_lcd_init(void) { struct stdio_dev lcddev; @@ -152,6 +162,9 @@ int drv_lcd_init(void)
lcd_init(lcd_base);
+ if (board_lcd_console_skip()) + return 0; + /* Device initialization */ memset(&lcddev, 0, sizeof(lcddev));

Hello Anatolij,
Does this patch have a chance to get to the release even if it has missed RC1?
Thanks,
Stephane
On Tue, Nov 3, 2015 at 11:14 AM, sayotte.tyco@gmail.com wrote:
From: Stephane Ayotte sayotte@tycoint.com
This patch adds an option to skip the registration of LCD stdio ouput for boards that want to show different text on LCD than on serial output (or the active stdout selected by the environment variable).
Signed-off-by: Stephane Ayotte sayotte@tycoint.com
This implementation is similar to what has been added to cfb_console.c by Stefan Roese sr@denx.de per commit 6cc7ba9e on 05/15/2009
I am sending this patch using sayotte.tyco@gmail.com as our regular smtp server sayotte@tycoint.com causes patch issues.
common/lcd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/common/lcd.c b/common/lcd.c index d29308a..ed68be9 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -143,6 +143,16 @@ __weak int lcd_get_size(int *line_length) return *line_length * panel_info.vl_row; }
+/*
- Implement a weak default function for boards that optionally
- need to skip the lcd console initialization.
- */
+__weak int board_lcd_console_skip(void) +{
/* As default, don't skip cfb init */
return 0;
+}
int drv_lcd_init(void) { struct stdio_dev lcddev; @@ -152,6 +162,9 @@ int drv_lcd_init(void)
lcd_init(lcd_base);
if (board_lcd_console_skip())
return 0;
/* Device initialization */ memset(&lcddev, 0, sizeof(lcddev));
-- 1.8.3.1

Hello Stephane,
On Thu, 19 Nov 2015 08:41:44 -0500 Stephane Ayotte sayotte.tyco@gmail.com wrote: ...
Does this patch have a chance to get to the release even if it has missed RC1?
yes, I've queued it in my tree.
Thanks,
Anatolij

On Tue, 3 Nov 2015 11:14:49 -0500 sayotte.tyco@gmail.com wrote:
From: Stephane Ayotte sayotte@tycoint.com
This patch adds an option to skip the registration of LCD stdio ouput for boards that want to show different text on LCD than on serial output (or the active stdout selected by the environment variable).
Signed-off-by: Stephane Ayotte sayotte@tycoint.com
This implementation is similar to what has been added to cfb_console.c by Stefan Roese sr@denx.de per commit 6cc7ba9e on 05/15/2009
I am sending this patch using sayotte.tyco@gmail.com as our regular smtp server sayotte@tycoint.com causes patch issues.
common/lcd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
applied to u-boot-video/master, thanks!
Anatolij

hi,
sorry i was absent a few days from u-boot (writing vxWorks drivers :-() ...
but, do we really need this ?
i had same problem on my b&r boards, were we printout something on lcd but console should remain on stdout/stdin.
what about:
int overwrite_console(void) { return 1; }
and activate #define CONFIG_SYS_CONSOLE_IS_IN_ENV #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
should do the same i think.
best regards, Hannes
On 2015-11-19 21:54, Anatolij Gustschin wrote:
On Tue, 3 Nov 2015 11:14:49 -0500 sayotte.tyco@gmail.com wrote:
From: Stephane Ayotte sayotte@tycoint.com
This patch adds an option to skip the registration of LCD stdio ouput for boards that want to show different text on LCD than on serial output (or the active stdout selected by the environment variable).
Signed-off-by: Stephane Ayotte sayotte@tycoint.com
This implementation is similar to what has been added to cfb_console.c by Stefan Roese sr@denx.de per commit 6cc7ba9e on 05/15/2009
I am sending this patch using sayotte.tyco@gmail.com as our regular smtp server sayotte@tycoint.com causes patch issues.
common/lcd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
applied to u-boot-video/master, thanks!
Anatolij _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

Thanks for the info, Hannes. I agree with you that I could have met my requirements (of showing "applicative" output to the LCD and "technical/debug" output to the serial port) with CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE. To be totally honest, I had not seen this config and was attracted to how the video device did it.
For the sake of argumentation only, I will raise the question whether CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE breaks NETCONSOLE. If I understand correctly, this config will force the console to use only the serial device. I could imagine use cases for netconsole and LCD.
I'm asking the question, really, as this is just from my reading of the code. I haven't tested with netconsole.
My feeling is that there should be a more generic way of saying whether a device should register to stdio or not. My preference would go to an API over individual configs for each device. Neither of the two solutions are ideal nor completely implemented as this time.
Anatolij, based on Hannes info, if you want to backtrack on this, I'm open both ways.
Thanks, Stephane ________________________________________ From: U-Boot [u-boot-bounces@lists.denx.de] on behalf of Hannes Schmelzer [hannes@schmelzer.or.at] Sent: Tuesday, December 01, 2015 12:41 PM To: Anatolij Gustschin; sayotte.tyco@gmail.com Cc: u-boot@lists.denx.de; trini@konsulko.com Subject: Re: [U-Boot] [PATCH] LCD: Add an option to skip registration as an stdio output
hi,
sorry i was absent a few days from u-boot (writing vxWorks drivers :-() ...
but, do we really need this ?
i had same problem on my b&r boards, were we printout something on lcd but console should remain on stdout/stdin.
what about:
int overwrite_console(void) { return 1; }
and activate #define CONFIG_SYS_CONSOLE_IS_IN_ENV #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
should do the same i think.
best regards, Hannes
On 2015-11-19 21:54, Anatolij Gustschin wrote:
On Tue, 3 Nov 2015 11:14:49 -0500 sayotte.tyco@gmail.com wrote:
From: Stephane Ayotte sayotte@tycoint.com
This patch adds an option to skip the registration of LCD stdio ouput for boards that want to show different text on LCD than on serial output (or the active stdout selected by the environment variable).
Signed-off-by: Stephane Ayotte sayotte@tycoint.com
This implementation is similar to what has been added to cfb_console.c by Stefan Roese sr@denx.de per commit 6cc7ba9e on 05/15/2009
I am sending this patch using sayotte.tyco@gmail.com as our regular smtp server sayotte@tycoint.com causes patch issues.
common/lcd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
applied to u-boot-video/master, thanks!
Anatolij _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.denx.de_mailman_li...
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.denx.de_mailman_li...
________________________________
This e-mail contains privileged and confidential information intended for the use of the addressees named above. If you are not the intended recipient of this e-mail, you are hereby notified that you must not disseminate, copy or take any action in respect of any information contained in it. If you have received this e-mail in error, please notify the sender immediately by e-mail and immediately destroy this e-mail and its attachments.

On 12/01/2015 10:31 PM, Ayotte, Stephane wrote:
Hi Stephane,
Thanks for the info, Hannes. I agree with you that I could have met my requirements (of showing "applicative" output to the LCD and "technical/debug" output to the serial port) with CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE. To be totally honest, I had not seen this config and was attracted to how the video device did it.
For the sake of argumentation only, I will raise the question whether CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE breaks NETCONSOLE. If I understand correctly, this config will force the console to use only the serial device. I could imagine use cases for netconsole and LCD.
I'm asking the question, really, as this is just from my reading of the code. I haven't tested with netconsole.
I also read the code again and my understanding is. First the environment is asked for stdin, stdout, stderr devices - afterwards overwrite_console is asked how about searching for some other devices. If overwrite_console returns != 0 the devs inputdev,outputdev,errdev are left uninitialized / values from environment (see line 802...805 in common/console.c).
A few lines afterwards the fallback takes care about if NULL and assigns "serial" to them.
So there is no indication for me breaking netconsole. Further i'm also using netconsole on my B&R boards, its working fine.
My feeling is that there should be a more generic way of saying whether a device should register to stdio or not. My preference would go to an API over individual configs for each device. Neither of the two solutions are ideal nor completely implemented as this time.
Anatolij, based on Hannes info, if you want to backtrack on this, I'm open both ways.
I would suggest to have not too much ways for one goal. Maybe it would be enough work a bit on documentation how to quiet console on LCD.
Thanks, Stephane
best regards, Hannes
From: U-Boot [u-boot-bounces@lists.denx.de] on behalf of Hannes Schmelzer [hannes@schmelzer.or.at] Sent: Tuesday, December 01, 2015 12:41 PM To: Anatolij Gustschin; sayotte.tyco@gmail.com Cc: u-boot@lists.denx.de; trini@konsulko.com Subject: Re: [U-Boot] [PATCH] LCD: Add an option to skip registration as an stdio output
hi,
sorry i was absent a few days from u-boot (writing vxWorks drivers :-() ...
but, do we really need this ?
i had same problem on my b&r boards, were we printout something on lcd but console should remain on stdout/stdin.
what about:
int overwrite_console(void) { return 1; }
and activate #define CONFIG_SYS_CONSOLE_IS_IN_ENV #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
should do the same i think.
best regards, Hannes

On December-02-15 12:30 AM, Hannes Schmelzer wrote:
On 12/01/2015 10:31 PM, Ayotte, Stephane wrote:
Hi Stephane,
Thanks for the info, Hannes. I agree with you that I could have met my
requirements (of showing "applicative" output to the LCD and "technical/debug" output to the serial port) with CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE. To be totally honest, I had not seen this config and was attracted to how the video device did it.
For the sake of argumentation only, I will raise the question whether
CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE breaks NETCONSOLE. If I understand correctly, this config will force the console to use only the serial device. I could imagine use cases for netconsole and LCD.
I'm asking the question, really, as this is just from my reading of the code. I
haven't tested with netconsole. I also read the code again and my understanding is. First the environment is asked for stdin, stdout, stderr devices - afterwards overwrite_console is asked how about searching for some other devices. If overwrite_console returns != 0 the devs inputdev,outputdev,errdev are left uninitialized / values from environment (see line 802...805 in common/console.c).
A few lines afterwards the fallback takes care about if NULL and assigns "serial" to them.
So there is no indication for me breaking netconsole. Further i'm also using netconsole on my B&R boards, its working fine.
Thanks for the clarification. In that case, you are right that we end up with two different solutions. It's too bad your clarification came just a little after the pull request.
My feeling is that there should be a more generic way of saying whether a
device should register to stdio or not. My preference would go to an API over individual configs for each device. Neither of the two solutions are ideal nor completely implemented as this time.
Anatolij, based on Hannes info, if you want to backtrack on this, I'm open both
ways. I would suggest to have not too much ways for one goal. Maybe it would be enough work a bit on documentation how to quiet console on LCD.
I agree with you 100% on not having multiple ways. What would be the procedure at this point? Submit a reverse patch?
Regards, Stephane
Thanks, Stephane
best regards, Hannes
From: U-Boot [u-boot-bounces@lists.denx.de] on behalf of Hannes Schmelzer [hannes@schmelzer.or.at] Sent: Tuesday, December 01, 2015 12:41 PM To: Anatolij Gustschin; sayotte.tyco@gmail.com Cc: u-boot@lists.denx.de; trini@konsulko.com Subject: Re: [U-Boot] [PATCH] LCD: Add an option to skip registration as an stdio output
hi,
sorry i was absent a few days from u-boot (writing vxWorks drivers :-() ...
but, do we really need this ?
i had same problem on my b&r boards, were we printout something on lcd but console should remain on stdout/stdin.
what about:
int overwrite_console(void) { return 1; }
and activate #define CONFIG_SYS_CONSOLE_IS_IN_ENV #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
should do the same i think.
best regards, Hannes
________________________________
This e-mail contains privileged and confidential information intended for the use of the addressees named above. If you are not the intended recipient of this e-mail, you are hereby notified that you must not disseminate, copy or take any action in respect of any information contained in it. If you have received this e-mail in error, please notify the sender immediately by e-mail and immediately destroy this e-mail and its attachments.

On 12/02/2015 03:08 PM, Ayotte, Stephane wrote:
On December-02-15 12:30 AM, Hannes Schmelzer wrote:
On 12/01/2015 10:31 PM, Ayotte, Stephane wrote:
Hi Stephane,
Thanks for the info, Hannes. I agree with you that I could have met my
requirements (of showing "applicative" output to the LCD and "technical/debug" output to the serial port) with CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE. To be totally honest, I had not seen this config and was attracted to how the video device did it.
For the sake of argumentation only, I will raise the question whether
CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE breaks NETCONSOLE. If I understand correctly, this config will force the console to use only the serial device. I could imagine use cases for netconsole and LCD.
I'm asking the question, really, as this is just from my reading of the code. I
haven't tested with netconsole. I also read the code again and my understanding is. First the environment is asked for stdin, stdout, stderr devices - afterwards overwrite_console is asked how about searching for some other devices. If overwrite_console returns != 0 the devs inputdev,outputdev,errdev are left uninitialized / values from environment (see line 802...805 in common/console.c).
A few lines afterwards the fallback takes care about if NULL and assigns "serial" to them.
So there is no indication for me breaking netconsole. Further i'm also using netconsole on my B&R boards, its working fine.
Thanks for the clarification. In that case, you are right that we end up with two different solutions. It's too bad your clarification came just a little after the pull request.
My feeling is that there should be a more generic way of saying whether a
device should register to stdio or not. My preference would go to an API over individual configs for each device. Neither of the two solutions are ideal nor completely implemented as this time.
Anatolij, based on Hannes info, if you want to backtrack on this, I'm open both
ways. I would suggest to have not too much ways for one goal. Maybe it would be enough work a bit on documentation how to quiet console on LCD.
I agree with you 100% on not having multiple ways. What would be the procedure at this point? Submit a reverse patch?
i would suggest reverting the commit and send some patch with the revert. What do Anatolij or Tom say?
Regards, Stephane
best regards, Hannes

Hi,
On Wed, 2 Dec 2015 14:08:16 +0000 "Ayotte, Stephane" sayotte@tycoint.com wrote: ...
Anatolij, based on Hannes info, if you want to backtrack on this, I'm open both
ways. I would suggest to have not too much ways for one goal. Maybe it would be enough work a bit on documentation how to quiet console on LCD.
I agree with you 100% on not having multiple ways. What would be the procedure at this point? Submit a reverse patch?
I'll just revert this patch and prepare a pull request.
Thanks!
-- Anatolij
participants (5)
-
Anatolij Gustschin
-
Ayotte, Stephane
-
Hannes Schmelzer
-
sayotte.tyco@gmail.com
-
Stephane Ayotte