Re: [net-next: PATCH 08/12] ACPI: scan: prevent double enumeration of MDIO bus children

From: Rafael J. Wysocki
Date: Wed Jun 22 2022 - 08:09:39 EST


On Tue, Jun 21, 2022 at 1:05 AM Marcin Wojtas <mw@xxxxxxxxxxxx> wrote:
>
> pon., 20 cze 2022 o 19:53 Andy Shevchenko
> <andriy.shevchenko@xxxxxxxxxxxxxxx> napisał(a):
> >
> > On Mon, Jun 20, 2022 at 05:02:21PM +0200, Marcin Wojtas wrote:
> > > The MDIO bus is responsible for probing and registering its respective
> > > children, such as PHYs or other kind of devices.
> > >
> > > It is required that ACPI scan code should not enumerate such
> > > devices, leaving this task for the generic MDIO bus routines,
> > > which are initiated by the controller driver.
> > >
> > > This patch prevents unwanted enumeration of the devices by setting
> > > 'enumeration_by_parent' flag, depending on whether their parent
> > > device is a member of a known list of MDIO controllers. For now,
> > > the Marvell MDIO controllers' IDs are added.
> >
> > This flag is used for serial buses that are not self-discoverable. Not sure
> > about MDIO, but the current usage has a relation to the _CRS. Have you
> > considered to propose the MdioSerialBus() resource type to ACPI specification?
> >
>
> Indeed, one of the cases checked in the
> acpi_device_enumeration_by_parent() is checking _CRS (of the bus child
> device) for being of the serial bus type. Currently I see
> I2C/SPI/UARTSerialBus resource descriptors in the specification. Since
> MDIO doesn't seem to require any special description macros like the
> mentioned ones (for instance see I2CSerialBusV2 [1]), Based on
> example: dfda4492322ed ("ACPI / scan: Do not enumerate Indirect IO
> host children"), I thought of similar one perhaps being applicable.
>
> Maybe there is some different, more proper solution, I'd be happy to
> hear from the ACPI Maintainers.
>
> [1] https://uefi.org/specs/ACPI/6.4/19_ASL_Reference/ACPI_Source_Language_Reference.html?highlight=i2cserialbus#i2cserialbusterm

Well, the approach based on lists of device IDs is not scalable and
generally used as the last resort one.

It would be a lot better to have a way of representing connections to
the MDIO bus as resources in _CRS.