On Tue, Dec 15, 2015 at 08:11:33AM +0100, Christophe Ricard wrote:
> spi->irq was ignoring GpioInt property setting it to -1.
> acpi_dev_gpio_irq_get returns and configure the slave irq according to
> the acpi slave node description.
> It is now inline with devicetree behavior.
>
> Signed-off-by: Christophe Ricard <[email protected]>
> ---
> drivers/spi/spi.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 2b0a8ec..6e5d1f7 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -1583,6 +1583,8 @@ static int acpi_spi_add_resource(struct acpi_resource
> *ares, void *data)
>
> if (acpi_dev_resource_interrupt(ares, 0, &r))
> spi->irq = r.start;
> + else
> + spi->irq =
> acpi_dev_gpio_irq_get(ACPI_COMPANION(&spi->dev), 0);
This still does not work as expected if the device has other resources
in _CRS.
Instead of this, you should do something like below which only uses GPIO
when we are sure no Interrupt() resource was found.
acpi_spi_add_device()
{
...
acpi_dev_get_resources()
...
if (spi->irq < 0)
spi->irq = acpi_dev_gpio_irq_get(adev, 0);
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html