lkml.org 
[lkml]   [2021]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 23/25] tty: serial: samsung_tty: Add earlycon support for Apple UARTs
    On Mon, Feb 15, 2021 at 09:17:11PM +0900, Hector Martin wrote:
    > Earlycon support is identical to S3C2410, but Apple SoCs also need
    > MMIO mapped as nGnRnE. This is handled generically for normal drivers
    > including the normal UART path here, but earlycon uses fixmap and
    > runs before that scaffolding is ready.
    >
    > Since this is the only case where we need this fix, it makes more
    > sense to do it here in the UART driver instead of introducing a
    > whole fdt nonposted-mmio resolver just for earlycon/fixmap.
    >
    > Suggested-by: Arnd Bergmann <arnd@arndb.de>
    > Signed-off-by: Hector Martin <marcan@marcan.st>
    > ---
    > drivers/tty/serial/samsung_tty.c | 17 +++++++++++++++++
    > 1 file changed, 17 insertions(+)
    >
    > diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
    > index e7ab0b9d89a7..00262f0e704b 100644
    > --- a/drivers/tty/serial/samsung_tty.c
    > +++ b/drivers/tty/serial/samsung_tty.c
    > @@ -2988,6 +2988,23 @@ OF_EARLYCON_DECLARE(s5pv210, "samsung,s5pv210-uart",
    > s5pv210_early_console_setup);
    > OF_EARLYCON_DECLARE(exynos4210, "samsung,exynos4210-uart",
    > s5pv210_early_console_setup);
    > +
    > +/* Apple S5L */
    > +static int __init apple_s5l_early_console_setup(struct earlycon_device *device,
    > + const char *opt)
    > +{
    > + /* Close enough to S3C2410 for earlycon... */
    > + device->port.private_data = &s3c2410_early_console_data;
    > +
    > +#ifdef CONFIG_ARM64

    if IS_ENABLED()
    (unless it cannot be used due to missing symbol?)

    > + /* ... but we need to override the existing fixmap entry as nGnRnE */
    > + __set_fixmap(FIX_EARLYCON_MEM_BASE, device->port.mapbase,
    > + __pgprot(PROT_DEVICE_nGnRnE));
    > +#endif
    > + return samsung_early_console_setup(device, opt);

    Don't you need to handle the error code - set PROT_DEFAULT() or whatever
    was there before?

    Best regards,
    Krzysztof

    \
     
     \ /
      Last update: 2021-02-15 20:20    [W:4.030 / U:0.408 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site