lkml.org 
[lkml]   [2018]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.15 25/78] tty: goldfish: Enable 'earlycon' only if built-in
    Date
    From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

    [ Upstream commit 6a28fd2bbc94bfca105632e5ef8a9dbe63ba0b39 ]

    Commit 3840ed9548f7 ("tty: goldfish: Implement support for kernel
    'earlycon' parameter") breaks an allmodconfig config on x86:
    | LD vmlinux.o
    | MODPOST vmlinux.o
    |drivers/tty/serial/earlycon.o: In function `parse_options':
    |drivers/tty/serial/earlycon.c:97: undefined reference to `uart_parse_earlycon'
    |Makefile:1005: recipe for target 'vmlinux' failed

    earlycon.c::parse_options() invokes uart_parse_earlycon() from serial_core.c
    which is compiled=m because GOLDFISH_TTY itself (and most others) are =m.
    To avoid that, I'm adding the _CONSOLE config option which is selected if the
    GOLDFISH module itself is =y since it doesn't need the early bits for the =m
    case (other drivers do the same dance).
    The alternative would be to move uart_parse_earlycon() from
    serial_core.c to earlycon.c (we don't have that many users of that
    function).

    Fixes: 3840ed9548f7 ("tty: goldfish: Implement support for kernel
    'earlycon' parameter")
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Reviewed-by: Miodrag Dinic <miodrag.dinic@mips.com>
    Acked-by: Miodrag Dinic <miodrag.dinic@mips.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    drivers/tty/Kconfig | 6 +++++-
    drivers/tty/goldfish.c | 2 ++
    2 files changed, 7 insertions(+), 1 deletion(-)

    diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
    index cc2b4d9433ed..b811442c5ce6 100644
    --- a/drivers/tty/Kconfig
    +++ b/drivers/tty/Kconfig
    @@ -394,10 +394,14 @@ config GOLDFISH_TTY
    depends on GOLDFISH
    select SERIAL_CORE
    select SERIAL_CORE_CONSOLE
    - select SERIAL_EARLYCON
    help
    Console and system TTY driver for the Goldfish virtual platform.

    +config GOLDFISH_TTY_EARLY_CONSOLE
    + bool
    + default y if GOLDFISH_TTY=y
    + select SERIAL_EARLYCON
    +
    config DA_TTY
    bool "DA TTY"
    depends on METAG_DA
    diff --git a/drivers/tty/goldfish.c b/drivers/tty/goldfish.c
    index 7f657bb5113c..1c1bd0afcd48 100644
    --- a/drivers/tty/goldfish.c
    +++ b/drivers/tty/goldfish.c
    @@ -433,6 +433,7 @@ static int goldfish_tty_remove(struct platform_device *pdev)
    return 0;
    }

    +#ifdef CONFIG_GOLDFISH_TTY_EARLY_CONSOLE
    static void gf_early_console_putchar(struct uart_port *port, int ch)
    {
    __raw_writel(ch, port->membase);
    @@ -456,6 +457,7 @@ static int __init gf_earlycon_setup(struct earlycon_device *device,
    }

    OF_EARLYCON_DECLARE(early_gf_tty, "google,goldfish-tty", gf_earlycon_setup);
    +#endif

    static const struct of_device_id goldfish_tty_of_match[] = {
    { .compatible = "google,goldfish-tty", },
    --
    2.14.1
    \
     
     \ /
      Last update: 2018-03-08 08:08    [W:4.396 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site