From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Westerberg Subject: Re: [PATCH v2 3/4] ACPI / scan: Recognize Apple SPI and I2C slaves Date: Thu, 29 Jun 2017 10:34:20 +0300 Message-ID: <20170629073420.GZ629@lahna.fi.intel.com> References: <9f06a7ce1cc6dd4cb33004c7d37adc1a5c0f80e2.1498636759.git.lukas@wunner.de> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Return-path: Received: from mga05.intel.com ([192.55.52.43]:43458 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751874AbdF2HlN (ORCPT ); Thu, 29 Jun 2017 03:41:13 -0400 Content-Disposition: inline In-Reply-To: <9f06a7ce1cc6dd4cb33004c7d37adc1a5c0f80e2.1498636759.git.lukas@wunner.de> Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: Lukas Wunner Cc: "Rafael J. Wysocki" , Mark Brown , Ronald Tschalaer , Federico Lorenzi , Andy Shevchenko , Leif Liddy , Daniel Roschka , linux-acpi@vger.kernel.org, linux-spi@vger.kernel.org On Wed, Jun 28, 2017 at 07:20:19PM +0200, Lukas Wunner wrote: > 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. > > Cc: Rafael J. Wysocki > Cc: Mika Westerberg > Cc: Andy Shevchenko > Cc: Federico Lorenzi > Reported-and-tested-by: Ronald Tschalär > Signed-off-by: Lukas Wunner > --- > Changes v1 -> v2: > - Newly inserted patch in v2 to fix an enumeration issue. (Ronald) > > drivers/acpi/scan.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index d4ff2cd1f738..c565e74bd2dd 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1444,6 +1444,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 (IS_ENABLED(CONFIG_X86) && dmi_match(DMI_SYS_VENDOR, "Apple Inc.") && Do we really need these checks? > + (device_property_present(&device->dev, "spiSclkPeriod") || > + device_property_present(&device->dev, "i2cAddress"))) > + return true; > + > INIT_LIST_HEAD(&resource_list); > acpi_dev_get_resources(device, &resource_list, acpi_check_spi_i2c_slave, > &is_spi_i2c_slave); > -- > 2.11.0