Re: [PATCH PoC 1/3] ACPI / PNP: Don't add enumeration_by_parent devices

From: John Garry
Date: Fri Aug 19 2022 - 04:05:42 EST


On 18/08/2022 20:31, Andy Shevchenko wrote:
For the hisi_lpc driver, for the UART ACPI node we have a binding like:

Device (LPC0.CON0) {
Name (_HID, "HISI1031")
Name (_CID, "PNP0501")
Name (LORS, ResourceTemplate() {
QWordIO (

We have the compat and hid string. The ACPI/PNP code matches the compat
string first, and creates the PNP device. In doing so, the acpi_device
created has physical_node_count member set in acpi_bind_one().

The hisi_lpc driver also creates a platform device serial device for uart,
which is the actual uart which we want to use - see
hisi_lpc_acpi_add_child(). That function does not check
physical_node_count value, but acpi_create_platform_device() does check it.
So if we were to move hisi_lpc_acpi_add_child() across to use
acpi_create_platform_device(), then the change in this patch is required to
not create the PNP binding (so that physical_node_count is not set from
PNP probe).
Hmm... The flag, as I interpret it, is equal to "the device in
question is a peripheral device to the non-discoverable bus, such as
SPI, I2C or UART". I.o.w. I do not see how PNP suits here. So, from my
point of view it seems like an abuse of the flag. Not sure the current
state of affairs in ACPI glue layer regarding this, though.

Hi Andy,

Sorry, but I'm not following you here. Which flag are you talking about?

thanks,
John