diff mbox

ACPI / LPSS: Don't abort acpi scan on missing mem resource.

Message ID 1501890376-2662-1-git-send-email-ronald@innovation.ch (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Life is hard, and then you die Aug. 4, 2017, 11:46 p.m. UTC
On MacBook8's (2015) there appears to be no memory resource for the
SPI master device. Returning an error here in this case then leads to
the acpi device being ignored completely instead of just the handler
being skipped.

This isn't an issue on later MacBook(Pro)'s because their ACPI SPI
devices don't have any CID and therefore no attempt is made to install
this handler.

Returning an error was introduced in commit d3e13ff3c1aa - this restores
the original behaviour.

Signed-off-by: Ronald Tschalär <ronald@innovation.ch>
---
 drivers/acpi/acpi_lpss.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Mika Westerberg Aug. 7, 2017, 10:47 a.m. UTC | #1
On Fri, Aug 04, 2017 at 04:46:16PM -0700, Ronald Tschalär wrote:
> On MacBook8's (2015) there appears to be no memory resource for the
> SPI master device. Returning an error here in this case then leads to
> the acpi device being ignored completely instead of just the handler
> being skipped.

What's the problem if we prevent creation of the SPI master device? How
does user see the issue? It is not like the SPI driver could use the
device anyway.

Just trying to understand why we would want to change the behaviour.
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Life is hard, and then you die Aug. 8, 2017, 3:14 a.m. UTC | #2
On Mon, Aug 07, 2017 at 01:47:09PM +0300, Mika Westerberg wrote:
> On Fri, Aug 04, 2017 at 04:46:16PM -0700, Ronald Tschalär wrote:
> > On MacBook8's (2015) there appears to be no memory resource for the
> > SPI master device. Returning an error here in this case then leads to
> > the acpi device being ignored completely instead of just the handler
> > being skipped.
> 
> What's the problem if we prevent creation of the SPI master device? How
> does user see the issue?

Their keyboard and touchpad don't work :-)

> It is not like the SPI driver could use the
> device anyway.

The spi master device works just fine (once recognized). Nothing the
acpi-lpss handler provides appears to be necessary for this device
(though admittedly the PM stuff hasn't been explored much).

> Just trying to understand why we would want to change the behaviour.

Apologies for the lack of context. This is related to the work on
the SPI keyboard and touchpad driver for MacBook(Pro)'s
(https://github.com/cb22/macbook12-spi-driver/) (and as such is
tangentally related to the recent apple SPI properties work by Lukas
Wunner that just got accepted). We obviously need the spi master
device in order to set up the keyboard/touchpad SPI slave device.

Btw., in case it matters, this SPI controller shows up in lscpi as

  00:15.4 Serial bus controller [0c80]: Intel Corporation Wildcat Point-LP Serial IO GSPI Controller #1 [8086:9ce6] (rev 03)

Hope this helps.


  Cheers,

  Ronald

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mika Westerberg Aug. 8, 2017, 10:13 a.m. UTC | #3
On Mon, Aug 07, 2017 at 08:14:16PM -0700, Life is hard, and then you die wrote:
> 
> On Mon, Aug 07, 2017 at 01:47:09PM +0300, Mika Westerberg wrote:
> > On Fri, Aug 04, 2017 at 04:46:16PM -0700, Ronald Tschalär wrote:
> > > On MacBook8's (2015) there appears to be no memory resource for the
> > > SPI master device. Returning an error here in this case then leads to
> > > the acpi device being ignored completely instead of just the handler
> > > being skipped.
> > 
> > What's the problem if we prevent creation of the SPI master device? How
> > does user see the issue?
> 
> Their keyboard and touchpad don't work :-)
> 
> > It is not like the SPI driver could use the
> > device anyway.
> 
> The spi master device works just fine (once recognized). Nothing the
> acpi-lpss handler provides appears to be necessary for this device
> (though admittedly the PM stuff hasn't been explored much).
> 
> > Just trying to understand why we would want to change the behaviour.
> 
> Apologies for the lack of context. This is related to the work on
> the SPI keyboard and touchpad driver for MacBook(Pro)'s
> (https://github.com/cb22/macbook12-spi-driver/) (and as such is
> tangentally related to the recent apple SPI properties work by Lukas
> Wunner that just got accepted). We obviously need the spi master
> device in order to set up the keyboard/touchpad SPI slave device.

OK, thanks for the clarification. I think it may be good idea to add
these details to the changelog as well.

The patch itself is fine by me :)
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index e51a1e98e62f..558fbdec5b38 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -452,7 +452,8 @@  static int acpi_lpss_create_device(struct acpi_device *adev,
 	acpi_dev_free_resource_list(&resource_list);
 
 	if (!pdata->mmio_base) {
-		ret = -ENOMEM;
+		/* Skip the device, but continue the namespace scan. */
+		ret = 0;
 		goto err_out;
 	}