APPLIED: [PATCH 0/7 v2] [Disco SRU] Use gpiolib for chipselect in DW SPI driver
kleber.souza at canonical.com
Wed Jun 5 15:39:42 UTC 2019
On 5/24/19 8:46 AM, Ike Panhc wrote:
> BugLink: https://bugs.launchpad.net/bugs/1826142
> [v2] Cherry-pick upstream 1723fdec too for error handling
> Ref: https://lists.ubuntu.com/archives/kernel-team/2019-May/100602.html
> We have a TPM module but disco kernel can not initial it. The root cause is
> DW SPI driver in disco only support chipselect from device-tree and for 5.1
> mainline kernel it can be used with deivce-tree or ACPI. Most of ARM machines
> support for ACPI only.
> $ dmesg | grep tpm
> [ 20.820930] tpm tpm0: tpm_try_transmit: send(): error -5
> [ 21.577912] tpm tpm0: tpm_relinquish_locality: : error -1
> [ 21.582313] tpm_tis_spi spi_SMO0768:00: 1.2 TPM (device-id 0xFFFF, rev-id 255)
> [ 21.583438] tpm tpm0: tpm_try_transmit: send(): error -5
> [ 22.339157] tpm tpm0: tpm_relinquish_locality: : error -1
> [ 22.343419] tpm tpm0: A TPM error (-5) occurred attempting to determine the timeouts
> [ 22.348215] tpm_tis_spi: probe of spi-SMO0768:00 failed with error -5
> With these patches tpm driver initial successfully.
> $ dmesg | grep tpm
> [ 28.277541] tpm_tis_spi spi-SMO0768:00: 2.0 TPM (device-id 0x1B, rev-id 16)
> [ 28.288602] tpm tpm0: A TPM error (256) occurred attempting the selftest
> [ 28.295440] tpm tpm0: starting up the TPM manually
> [ 28.319036] tpm tpm0: A TPM error (2314) occurred attempting the self test
> Reading first 2 patches for determining regression risk and find out only machines
> with Designware MMIO SPI and device-tree have risk. Fortunately on mainline kernel
> we have Jan Kotas tested and report several regressions e.g. default polarity.
> Therefore, another 5 patches is needed to fix the regression on device-tree
> machines with DW SPI and that's the only regression risk. Most of all patches in
> 5.1 kernel for DW SPI are cherry-picked.
> Anders Roxell (1):
> spi: dw: fix warning unused variable 'ret'
> Geert Uytterhoeven (1):
> spi: Add missing error handling for CS GPIOs
> Linus Walleij (5):
> spi: Optionally use GPIO descriptors for CS GPIOs
> spi: dw: Convert to use CS GPIO descriptors
> spi: Support high CS when using descriptors
> spi: dw: Fix default polarity of native chipselect
> gpio: of: Fix logic inversion
> drivers/gpio/gpiolib-of.c | 2 +-
> drivers/spi/spi-dw-mmio.c | 22 --------
> drivers/spi/spi-dw.c | 15 ++----
> drivers/spi/spi.c | 111 ++++++++++++++++++++++++++++++++++----
> include/linux/spi/spi.h | 23 ++++++--
> 5 files changed, 124 insertions(+), 49 deletions(-)
Applied to disco/master-next branch.
More information about the kernel-team