|
@@ -1524,11 +1524,25 @@ static int acpi_check_serial_bus_slave(struct acpi_resource *ares, void *data)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
+static bool acpi_is_indirect_io_slave(struct acpi_device *device)
|
|
|
+{
|
|
|
+ struct acpi_device *parent = device->parent;
|
|
|
+ const struct acpi_device_id indirect_io_hosts[] = {
|
|
|
+ {"HISI0191", 0},
|
|
|
+ {}
|
|
|
+ };
|
|
|
+
|
|
|
+ return parent && !acpi_match_device_ids(parent, indirect_io_hosts);
|
|
|
+}
|
|
|
+
|
|
|
static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
|
|
|
{
|
|
|
struct list_head resource_list;
|
|
|
bool is_serial_bus_slave = false;
|
|
|
|
|
|
+ if (acpi_is_indirect_io_slave(device))
|
|
|
+ return true;
|
|
|
+
|
|
|
/* Macs use device properties in lieu of _CRS resources */
|
|
|
if (x86_apple_machine &&
|
|
|
(fwnode_property_present(&device->fwnode, "spiSclkPeriod") ||
|