memac_mdio_read_ivar() handed its own device to the parent instead of the
child being asked about. Its children are PHYs it added itself from firmware
nodes, so a request for one of them has to reach our own parent still naming
that PHY; answering with the MDIO bus's own ivars hands out the bus's ACPI
handle rather than the PHY's.
Until the previous commit this was mostly latent. BUS_GET_PROPERTY reached
the child's ivars directly, and memac_mdio(4) synthesises those as a struct
acpi_device, so "phy-channel" and "compatible" were still found and the PHY
attached. What the bug did corrupt is acpi_get_handle() on a PHY, which
memacphy_acpi_attach() uses to read _UID -- it got the MDIO bus's _UID
instead of the PHY's. Now that a property is looked up through the child's
own ACPI handle, the same bug loses "phy-channel" as well and attach fails
with ENXIO, so fix it here.
dpaa2_mc_acpi_read_ivar() forwards the same way for the same reason, and says
so in a comment.
Depends on D60064