Re: [RFC PATCH 1/2] serial: core: Move tty and serdev to be children of serial core port device

From: Andy Shevchenko
Date: Tue Oct 24 2023 - 08:17:38 EST


On Tue, Oct 24, 2023 at 02:36:18PM +0300, Tony Lindgren wrote:
> 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.
> The serdev device init needs some changes to separate the serial hardware
> controller device from the parent device.

...

> - ctrl->dev.of_node = parent->of_node;
> + ctrl->dev.of_node = host->of_node;

Even above should have been using device_set_node(&ctrl->dev, dev_fwnode(host)).

...

> /* Make sure controller and ResourceSource handle match */
> - if (ACPI_HANDLE(ctrl->dev.parent) != lookup.controller_handle)
> + if (ACPI_HANDLE(ctrl->host) != lookup.controller_handle)

This can be changed to use device_match_acpi_handle().

> return -ENODEV;

...

> - if (!has_acpi_companion(ctrl->dev.parent))
> + if (!has_acpi_companion(ctrl->host))

I prefer is_acpi_device_node(dev_fwnode(...)) check, but here seems no other
use for fwnode (haven't checked the full context, though).

> return -ENODEV;

--
With Best Regards,
Andy Shevchenko