lkml.org 
[lkml]   [2022]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 5.10 044/390] serial: 8250: Let drivers request full 16550A feature probing
    Hi!

    > From: Maciej W. Rozycki <macro@orcam.me.uk>
    >
    > commit 9906890c89e4dbd900ed87ad3040080339a7f411 upstream.
    >
    > A SERIAL_8250_16550A_VARIANTS configuration option has been recently
    > defined that lets one request the 8250 driver not to probe for 16550A
    > device features so as to reduce the driver's device startup time in
    > virtual machines.
    >
    > Some actual hardware devices require these features to have been fully
    > determined however for their driver to work correctly, so define a flag
    > to let drivers request full 16550A feature probing on a device-by-device
    > basis if required regardless of the SERIAL_8250_16550A_VARIANTS option
    > setting chosen.

    As far as I can see, the UPF_FULL_PROBE is never set in 5.10.150 tree,
    so we should not need it there.

    Best regards,
    Pavel

    > +++ b/drivers/tty/serial/8250/8250_port.c
    > @@ -1021,7 +1021,8 @@ static void autoconfig_16550a(struct uar
    > up->port.type = PORT_16550A;
    > up->capabilities |= UART_CAP_FIFO;
    >
    > - if (!IS_ENABLED(CONFIG_SERIAL_8250_16550A_VARIANTS))
    > + if (!IS_ENABLED(CONFIG_SERIAL_8250_16550A_VARIANTS) &&
    > + !(up->port.flags & UPF_FULL_PROBE))
    > return;
    >
    > /*
    > --- a/include/linux/serial_core.h
    > +++ b/include/linux/serial_core.h
    > @@ -100,7 +100,7 @@ struct uart_icount {
    > __u32 buf_overrun;
    > };
    >
    > -typedef unsigned int __bitwise upf_t;
    > +typedef u64 __bitwise upf_t;
    > typedef unsigned int __bitwise upstat_t;
    >
    > struct uart_port {
    > @@ -207,6 +207,7 @@ struct uart_port {
    > #define UPF_FIXED_PORT ((__force upf_t) (1 << 29))
    > #define UPF_DEAD ((__force upf_t) (1 << 30))
    > #define UPF_IOREMAP ((__force upf_t) (1 << 31))
    > +#define UPF_FULL_PROBE ((__force upf_t) (1ULL << 32))
    >
    > #define __UPF_CHANGE_MASK 0x17fff
    > #define UPF_CHANGE_MASK ((__force upf_t) __UPF_CHANGE_MASK)
    >

    --
    People of Russia, stop Putin before his war on Ukraine escalates.
    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2022-10-24 22:19    [W:7.341 / U:0.812 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site