• Tony Lindgren's avatar
    serial: 8250_omap: Fix idling for unloaded serdev drivers · 627a545c
    Tony Lindgren authored
    For many years omap variants have been setting the runtime PM
    autosuspend delay to -1 to prevent unsafe policy with lossy first
    character on wake-up. The user must specifically enable the timeout
    for UARTs if desired.
    
    We must not enable the workaround for serdev devices though. It leads
    into UARTs not idling if no serdev devices are loaded and there is no
    sysfs entry to configure the UART in that case. And this means that
    my PM may not work unless the serdev modules are loaded.
    
    We can detect a serdev device being configured based on a dts child
    node, and we can simply skip the workround in that case. And the
    serdev driver can idle the port during runtime when suitable if an
    out-of-band wake-up GPIO line exists for example.
    
    Let's also add some comments to the workaround while at it.
    
    Cc: Johan Hovold <johan@kernel.org>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20190723115400.46432-1-tony@atomide.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    627a545c
8250_omap.c 39.5 KB