From: Jarkko Nikula <jarkko.nikula@linux.intel.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: linux-spi@vger.kernel.org, broonie@kernel.org,
kbuild test robot <lkp@intel.com>,
Dan Carpenter <dan.carpenter@oracle.com>,
andy.shevchenko@gmail.com, masahisa.kojima@linaro.org,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-acpi@vger.kernel.org, Lukas Wunner <lukas@wunner.de>
Subject: Re: [PATCH] spi/acpi: fix incorrect ACPI parent check
Date: Wed, 19 Jun 2019 14:58:36 +0300 [thread overview]
Message-ID: <54ede1d8-0e6b-e7d9-5e61-a7d057abbd2b@linux.intel.com> (raw)
In-Reply-To: <20190619101604.GR2640@lahna.fi.intel.com>
On 6/19/19 1:16 PM, Mika Westerberg wrote:
> On Wed, Jun 19, 2019 at 11:52:54AM +0200, Ard Biesheuvel wrote:
>> The ACPI device object parsing code for SPI slaves enumerates the
>> entire ACPI namespace to look for devices that refer to the master
>> in question via the 'resource_source' field in the 'SPISerialBus'
>> resource. If that field does not refer to a valid ACPI device or
>> if it refers to the wrong SPI master, we should disregard the
>> device.
>>
>> Current, the valid device check is wrong, since it gets the
>> polarity of 'status' wrong. This could cause issues if the
>> 'resource_source' field is bogus but parent_handle happens to
>> refer to the correct master (which is not entirely imaginary
>> since this code runs in a loop)
>>
>> So test for ACPI_FAILURE() instead, to make the code more
>> self explanatory.
>>
>> Fixes: 4c3c59544f33 ("spi/acpi: enumerate all SPI slaves in the namespace")
>> Reported-by: kbuild test robot <lkp@intel.com>
>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>> Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
>
> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
>
I hit yesterday a regression caused by 4c3c59544f33. I've a custom ACPI
tables defining I2C gpio expanders (gpio-pca953x.c as INT3491) and a
spidev test device (SPT0001).
Both stopped enumerating after 4c3c59544f33. With this fix spidev device
enumerates but still get confused with I2C GPIO expanders (INT3491):
[ 5.629874][ T1] pxa2xx-spi pxa2xx-spi.3: registered master spi3
[ 5.644447][ T1] pxa2xx-spi pxa2xx-spi.5: registered master spi5
[ 5.653930][ T1] spi spi-SPT0001:00: in setup: DMA burst size set to 8
[ 5.661300][ T1] spi spi-SPT0001:00: setup mode 0, 8 bits/w,
1000000 Hz max --> 0
[ 5.671360][ T1] spidev spi-SPT0001:00: do not use this driver in
production systems!
[ 5.682325][ T1] pxa2xx-spi pxa2xx-spi.5: registered child
spi-SPT0001:00
[ 5.690240][ T1] spi spi-PRP0001:00: in setup: DMA burst size set to 8
[ 5.697492][ T1] spi spi-PRP0001:00: setup mode 0, 8 bits/w,
20000000 Hz max --> 0
[ 5.706928][ T1] pxa2xx-spi pxa2xx-spi.5: registered child
spi-PRP0001:00
[ 5.715754][ T1] pxa2xx-spi pxa2xx-spi.5: cs104 >= max 4
[ 5.721688][ T1] spi_master spi5: failed to add SPI device
INT3491:00 from ACPI
[ 5.730648][ T1] pxa2xx-spi pxa2xx-spi.5: cs104 >= max 4
[ 5.736657][ T1] spi_master spi5: failed to add SPI device
INT3491:01 from ACPI
[ 5.745617][ T1] pxa2xx-spi pxa2xx-spi.5: cs104 >= max 4
[ 5.751546][ T1] spi_master spi5: failed to add SPI device
INT3491:02 from ACPI
[ 5.760628][ T1] pxa2xx-spi pxa2xx-spi.5: cs104 >= max 4
[ 5.766549][ T1] spi_master spi5: failed to add SPI device
INT3491:03 from ACPI
[ 5.777160][ T1] pxa2xx-spi pxa2xx-spi.5: cs104 >= max 4
[ 5.783087][ T1] spi_master spi5: failed to add SPI device
BCM2E95:00 from ACPI
[ 5.797008][ T1] pxa2xx-spi pxa2xx-spi.6: registered master spi6
Ok log with commit 4c3c59544f33 reverted:
[ 5.633116][ T1] pxa2xx-spi pxa2xx-spi.3: registered master spi3
[ 5.647701][ T1] pxa2xx-spi pxa2xx-spi.5: registered master spi5
[ 5.655668][ T1] spi spi-SPT0001:00: in setup: DMA burst size set to 8
[ 5.663066][ T1] spi spi-SPT0001:00: setup mode 0, 8 bits/w,
1000000 Hz max --> 0
[ 5.672758][ T1] pxa2xx-spi pxa2xx-spi.5: registered child
spi-SPT0001:00
[ 5.680602][ T1] spi spi-PRP0001:00: in setup: DMA burst size set to 8
[ 5.687820][ T1] spi spi-PRP0001:00: setup mode 0, 8 bits/w,
20000000 Hz max --> 0
[ 5.697366][ T1] pxa2xx-spi pxa2xx-spi.5: registered child
spi-PRP0001:00
[ 5.709064][ T1] pxa2xx-spi pxa2xx-spi.6: registered master spi6
[ 11.021760][ T84] spidev spi-SPT0001:00: do not use this driver in
production systems!
--
Jarkko
next prev parent reply other threads:[~2019-06-19 11:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-19 9:52 [PATCH] spi/acpi: fix incorrect ACPI parent check Ard Biesheuvel
2019-06-19 10:16 ` Mika Westerberg
2019-06-19 11:58 ` Jarkko Nikula [this message]
2019-06-19 11:59 ` Ard Biesheuvel
2019-06-19 13:21 ` Jarkko Nikula
2019-06-19 13:58 ` Ard Biesheuvel
2019-06-19 14:17 ` Jarkko Nikula
2019-06-19 14:42 ` Mika Westerberg
2019-06-20 10:33 ` Ard Biesheuvel
2019-06-20 10:41 ` Mika Westerberg
2019-06-20 11:19 ` Mark Brown
2019-06-20 11:51 ` Ard Biesheuvel
2019-06-20 12:21 ` Jarkko Nikula
2019-06-20 12:25 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54ede1d8-0e6b-e7d9-5e61-a7d057abbd2b@linux.intel.com \
--to=jarkko.nikula@linux.intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=ard.biesheuvel@linaro.org \
--cc=broonie@kernel.org \
--cc=dan.carpenter@oracle.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=lkp@intel.com \
--cc=lukas@wunner.de \
--cc=masahisa.kojima@linaro.org \
--cc=mika.westerberg@linux.intel.com \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.