• Tony Lindgren's avatar
    serial: core: Move tty and serdev to be children of serial core port device · b286f4e8
    Tony Lindgren authored
    Let's move tty and serdev controller to be children of the serial core port
    device. This way the runtime PM usage count of a child device propagates
    to the serial hardware device.
    
    The tty and serdev devices are associated with a specific serial port of
    a serial hardware controller device, and we now have serial core hierarchy
    of controllers and ports.
    
    The tty device moves happily with just a change of the parent device and
    update of device_find_child() handling. The serdev device init needs some
    changes to separate the serial hardware controller device from the parent
    device.
    
    With this change the tty devices move under sysfs similar to this x86_64
    qemu example of a diff of "find /sys -name ttyS*":
    
     /sys/class/tty/ttyS0
     /sys/class/tty/ttyS3
     /sys/class/tty/ttyS1
    -/sys/devices/pnp0/00:04/tty/ttyS0
    -/sys/devices/platform/serial8250/tty/ttyS2
    -/sys/devices/platform/serial8250/tty/ttyS3
    -/sys/devices/platform/serial8250/tty/ttyS1
    +/sys/devices/pnp0/00:04/00:04:0/00:04:0.0/tty/ttyS0
    +/sys/devices/platform/serial8250/serial8250:0/serial8250:0.3/tty/ttyS3
    +/sys/devices/platform/serial8250/serial8250:0/serial8250:0.1/tty/ttyS1
    +/sys/devices/platform/serial8250/serial8250:0/serial8250:0.2/tty/ttyS2
    
    If a serdev device is used instead of a tty, it moves in a similar way.
    Suggested-by: default avatarJohan Hovold <johan@kernel.org>
    Cc: Maximilian Luz <luzmaximilian@gmail.com>
    Cc: Rob Herring <robh@kernel.org>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20231113080758.30346-1-tony@atomide.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    b286f4e8
serial_core.c 91.3 KB