Revert "console: don't prefer first registered if DT specifies stdout-path"
This reverts commit05fd007e46
("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 commit05fd007e46
("console: don't prefer first registered if DT specifies stdout-path") restoring the original behavior. Fixes:05fd007e46
("console: don't prefer first registered if DT specifies stdout-path") Link: http://lkml.kernel.org/r/20161104121135.4780-2-hdegoede@redhat.com Signed-off-by: Hans de Goede <hdegoede@redhat.com> Cc: Paul Burton <paul.burton@imgtec.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Frank Rowand <frowand.list@gmail.com> Cc: Thorsten Leemhuis <regressions@leemhuis.info> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Tejun Heo <tj@kernel.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
c3901e722b
Коммит
c6c7d83b9c
|
@ -2077,8 +2077,6 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align))
|
||||||
name = of_get_property(of_aliases, "stdout", NULL);
|
name = of_get_property(of_aliases, "stdout", NULL);
|
||||||
if (name)
|
if (name)
|
||||||
of_stdout = of_find_node_opts_by_path(name, &of_stdout_options);
|
of_stdout = of_find_node_opts_by_path(name, &of_stdout_options);
|
||||||
if (of_stdout)
|
|
||||||
console_set_by_of();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!of_aliases)
|
if (!of_aliases)
|
||||||
|
|
|
@ -173,12 +173,6 @@ static inline void console_sysfs_notify(void)
|
||||||
#endif
|
#endif
|
||||||
extern bool console_suspend_enabled;
|
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 */
|
/* Suspend and resume console messages over PM events */
|
||||||
extern void suspend_console(void);
|
extern void suspend_console(void);
|
||||||
extern void resume_console(void);
|
extern void resume_console(void);
|
||||||
|
|
|
@ -253,17 +253,6 @@ static int preferred_console = -1;
|
||||||
int console_set_on_cmdline;
|
int console_set_on_cmdline;
|
||||||
EXPORT_SYMBOL(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() */
|
/* Flag: console code may call schedule() */
|
||||||
static int console_may_schedule;
|
static int console_may_schedule;
|
||||||
|
|
||||||
|
@ -2657,7 +2646,7 @@ void register_console(struct console *newcon)
|
||||||
* didn't select a console we take the first one
|
* didn't select a console we take the first one
|
||||||
* that registers here.
|
* that registers here.
|
||||||
*/
|
*/
|
||||||
if (preferred_console < 0 && !of_specified_console) {
|
if (preferred_console < 0) {
|
||||||
if (newcon->index < 0)
|
if (newcon->index < 0)
|
||||||
newcon->index = 0;
|
newcon->index = 0;
|
||||||
if (newcon->setup == NULL ||
|
if (newcon->setup == NULL ||
|
||||||
|
|
Загрузка…
Ссылка в новой задаче