lkml.org 
[lkml]   [2023]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v12 1/1] serial: core: Start managing serial controllers to enable runtime PM
    From
    Hi Tony,

    On 25.05.2023 13:30, Tony Lindgren wrote:
    > We want to enable runtime PM for serial port device drivers in a generic
    > way. To do this, we want to have the serial core layer manage the
    > registered physical serial controller devices.
    >
    > To manage serial controllers, let's set up a struct bus and struct device
    > for the serial core controller as suggested by Greg and Jiri. The serial
    > core controller devices are children of the physical serial port device.
    > The serial core controller device is needed to support multiple different
    > kind of ports connected to single physical serial port device.
    >
    > Let's also set up a struct device for the serial core port. The serial
    > core port instances are children of the serial core controller device.
    >
    > With the serial core port device we can now flush pending TX on the
    > runtime PM resume as suggested by Johan.
    >
    > Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    > Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    > Suggested-by: Jiri Slaby <jirislaby@kernel.org>
    > Suggested-by: Johan Hovold <johan@kernel.org>
    > Signed-off-by: Tony Lindgren <tony@atomide.com>

    This patch landed in today's linux next-20230601 as commit 84a9582fd203
    ("serial: core: Start managing serial controllers to enable runtime
    PM"). Unfortunately it breaks booting some of my test boards. This can
    be easily reproduced with QEMU and ARM64 virt machine. The last message
    I see in the log is:

    [    3.084743] Run /sbin/init as init process

    I've tried a hack posted here by Steven Price, but unfortunately it
    doesn't fix my issue. Reverting $subject on top of next-20230601 fixes
    the boot.

    Here is my qemu test command (nothing really special...):

    qemu-system-aarch64 -kernel Image -append "console=ttyAMA0
    no_console_suspend root=/dev/vda rootwait ip=::::target::off" -M virt
    -cpu cortex-a57 -smp 2 -m 1024 -device
    virtio-blk-device,drive=virtio-blk0 -device
    virtio-blk-device,drive=virtio-blk1 -drive
    file=qemu-virt-rootfs.raw,id=virtio-blk1,if=none,format=raw -drive
    file=initrd,id=virtio-blk0,if=none,format=raw -netdev user,id=user
    -device virtio-net-device,netdev=user -display none


    > ...

    Best regards
    --
    Marek Szyprowski, PhD
    Samsung R&D Institute Poland

    \
     
     \ /
      Last update: 2023-06-01 13:02    [W:5.112 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site