From: Lukas Wunner Date: Tue, 1 Aug 2017 12:10:41 +0000 (+0200) Subject: ACPI / scan: Recognize Apple SPI and I2C slaves X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=ca9ef3ab68d3530ac93d4254f9e47724ea51758d;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git ACPI / scan: Recognize Apple SPI and I2C slaves SPI and I2C slaves are enumerated by their respective parents rather than the ACPI core. They are recognized by presence of _CRS resources, which however are missing on Macs. Check for presence of device properties instead. Reported-and-tested-by: Ronald Tschalär Signed-off-by: Lukas Wunner Acked-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 33897298f03e..55fd248833cd 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -13,6 +13,7 @@ #include #include #include +#include #include @@ -1452,6 +1453,12 @@ static bool acpi_is_spi_i2c_slave(struct acpi_device *device) struct list_head resource_list; bool is_spi_i2c_slave = false; + /* Macs use device properties in lieu of _CRS resources */ + if (x86_apple_machine && + (fwnode_property_present(&device->fwnode, "spiSclkPeriod") || + fwnode_property_present(&device->fwnode, "i2cAddress"))) + return true; + INIT_LIST_HEAD(&resource_list); acpi_dev_get_resources(device, &resource_list, acpi_check_spi_i2c_slave, &is_spi_i2c_slave);