Skip to content

Commit

Permalink
Revert "console: don't prefer first registered if DT specifies stdout…
Browse files Browse the repository at this point in the history
…-path"

This reverts commit 05fd007 ("console: don't prefer first
registered if DT specifies stdout-path").

The reverted commit changes existing behavior on which many ARM boards
rely.  Many ARM small-board-computers, like e.g.  the Raspberry Pi have
both a video output and a serial console.  Depending on whether the user
is using the device as a more regular computer; or as a headless device
we need to have the console on either one or the other.

Many users rely on the kernel behavior of the console being present on
both outputs, before the reverted commit the console setup with no
console= kernel arguments on an ARM board which sets stdout-path in dt
would look like this:

  [root@localhost ~]# cat /proc/consoles
  ttyS0                -W- (EC p a)    4:64
  tty0                 -WU (E  p  )    4:1

Where as after the reverted commit, it looks like this:

  [root@localhost ~]# cat /proc/consoles
  ttyS0                -W- (EC p a)    4:64

This commit reverts commit 05fd007 ("console: don't prefer first
registered if DT specifies stdout-path") restoring the original
behavior.

Fixes: 05fd007 ("console: don't prefer first registered if DT specifies stdout-path")
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Hans de Goede <[email protected]>
Cc: Paul Burton <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Frank Rowand <[email protected]>
Cc: Thorsten Leemhuis <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Tejun Heo <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
jwrdegoede authored and torvalds committed Nov 11, 2016
1 parent c3901e7 commit c6c7d83
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 20 deletions.
2 changes: 0 additions & 2 deletions drivers/of/base.c
Original file line number Diff line number Diff line change
Expand Up @@ -2077,8 +2077,6 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align))
name = of_get_property(of_aliases, "stdout", NULL);
if (name)
of_stdout = of_find_node_opts_by_path(name, &of_stdout_options);
if (of_stdout)
console_set_by_of();
}

if (!of_aliases)
Expand Down
6 changes: 0 additions & 6 deletions include/linux/console.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,12 +173,6 @@ static inline void console_sysfs_notify(void)
#endif
extern bool console_suspend_enabled;

#ifdef CONFIG_OF
extern void console_set_by_of(void);
#else
static inline void console_set_by_of(void) {}
#endif

/* Suspend and resume console messages over PM events */
extern void suspend_console(void);
extern void resume_console(void);
Expand Down
13 changes: 1 addition & 12 deletions kernel/printk/printk.c
Original file line number Diff line number Diff line change
Expand Up @@ -253,17 +253,6 @@ static int preferred_console = -1;
int console_set_on_cmdline;
EXPORT_SYMBOL(console_set_on_cmdline);

#ifdef CONFIG_OF
static bool of_specified_console;

void console_set_by_of(void)
{
of_specified_console = true;
}
#else
# define of_specified_console false
#endif

/* Flag: console code may call schedule() */
static int console_may_schedule;

Expand Down Expand Up @@ -2657,7 +2646,7 @@ void register_console(struct console *newcon)
* didn't select a console we take the first one
* that registers here.
*/
if (preferred_console < 0 && !of_specified_console) {
if (preferred_console < 0) {
if (newcon->index < 0)
newcon->index = 0;
if (newcon->setup == NULL ||
Expand Down

0 comments on commit c6c7d83

Please sign in to comment.