[PATCH v9 5/7] ACPI: Translate the I/O range of non-MMIO devices before scanning
From: Lorenzo Pieralisi <hidden>
Date: 2017-06-06 08:54:45
Also in:
linux-acpi, linux-pci, lkml
Hi Gab, Rafael, On Wed, May 31, 2017 at 10:24:47AM +0000, Gabriele Paoloni wrote: [...]
quoted
quoted
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index e39ec7b..37dd23c 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c@@ -2035,6 +2035,7 @@ int __init acpi_scan_init(void) acpi_int340x_thermal_init(); acpi_amba_init(); acpi_watchdog_init(); + acpi_indirectio_scan_init();
Unfortunately this is becoming a pattern and we are ending up with a static ordering of "subsystems" init (even though for this LPC series it is just the Hisilicon driver that requires this call) and I am not sure I see any way of avoiding it. I think that's always been the case in x86, with fewer subsystems/kernel paths to care about, I wanted to flag this up though to check your opinion since I am not sure this is the right direction we are taking. I also think that relying on _DEP to build any dependency is not entirely a) usable (owing to legacy bindings and previous _DEP misuse) and b) compliant with ACPI bindings given that _DEP has to be used for operation regions only. Thoughts ? Thanks, Lorenzo
quoted
quoted
acpi_scan_add_handler(&generic_device_handler);diff --git a/include/acpi/acpi_indirect_pio.hb/include/acpi/acpi_indirect_pio.hquoted
new file mode 100644 index 0000000..efc5c43--- /dev/null +++ b/include/acpi/acpi_indirect_pio.h@@ -0,0 +1,24 @@ +/* + * ACPI support for indirect-PIO bus. + * + * Copyright (C) 2017 Hisilicon Limited, All Rights Reserved. + * Author: Gabriele Paoloni <gabriele.paoloni@huawei.com> + * Author: Zhichang Yuan <yuanzhichang@hisilicon.com> + * + * This program is free software; you can redistribute it and/ormodifyquoted
+ * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef _ACPI_INDIRECT_PIO_H +#define _ACPI_INDIRECT_PIO_H + +struct indirect_pio_device_desc { + void *pdata; /* device relevant info data */ + int (*pre_setup)(struct acpi_device *adev, void *pdata); +}; + +int acpi_set_logic_pio_resource(struct device *child, + struct device *hostdev); + +#endif -- 2.7.4