• Michael Walle's avatar
    serial: earlycon: prefer EARLYCON_DECLARE() variant · f8c3686c
    Michael Walle authored
    If a driver exposes early consoles with EARLYCON_DECLARE() and
    OF_EARLYCON_DECLARE(), pefer the non-OF variant if the user specifies it
    by
      earlycon=<driver>,<options>
    
    The rationale behind this is that some drivers register multiple setup
    functions under the same driver name. Eg.
    
    OF_EARLYCON_DECLARE(lpuart, "fsl,vf610-lpuart", lpuart_early_console_setup);
    OF_EARLYCON_DECLARE(lpuart32, "fsl,ls1021a-lpuart", lpuart32_early_console_setup);
    OF_EARLYCON_DECLARE(lpuart32, "fsl,imx7ulp-lpuart", lpuart32_imx_early_console_setup);
    EARLYCON_DECLARE(lpuart, lpuart_early_console_setup);
    EARLYCON_DECLARE(lpuart32, lpuart32_early_console_setup);
    
    It depends on the order of the entries which console_setup() actually
    gets called. To make things worse, I guess it also depends on the
    compiler how these are ordered. Thus always prefer the EARLYCON_DECLARE()
    ones.
    Signed-off-by: default avatarMichael Walle <michael@walle.cc>
    Link: https://lore.kernel.org/r/20200220174607.24285-1-michael@walle.ccSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f8c3686c
earlycon.c 7.56 KB