]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
spi: tegra114: Don't fail set_cs_timing when delays are zero
authorAaron Kling <webgeek1234@gmail.com>
Thu, 24 Apr 2025 02:03:03 +0000 (21:03 -0500)
committerMark Brown <broonie@kernel.org>
Thu, 1 May 2025 20:38:27 +0000 (05:38 +0900)
The original code would skip null delay pointers, but when the pointers
were converted to point within the spi_device struct, the check was not
updated to skip delays of zero. Hence all spi devices that didn't set
delays would fail to probe.

Fixes: 04e6bb0d6bb1 ("spi: modify set_cs_timing parameter")
Cc: stable@vger.kernel.org
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Link: https://patch.msgid.link/20250423-spi-tegra114-v1-1-2d608bcc12f9@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-tegra114.c

index 3822d7c8d8edb9730e937df50d1c75e095dd18ec..2a8bb798e95b954fe573f1c50445ed2e7fcbfd78 100644 (file)
@@ -728,9 +728,9 @@ static int tegra_spi_set_hw_cs_timing(struct spi_device *spi)
        u32 inactive_cycles;
        u8 cs_state;
 
-       if (setup->unit != SPI_DELAY_UNIT_SCK ||
-           hold->unit != SPI_DELAY_UNIT_SCK ||
-           inactive->unit != SPI_DELAY_UNIT_SCK) {
+       if ((setup->unit && setup->unit != SPI_DELAY_UNIT_SCK) ||
+           (hold->unit && hold->unit != SPI_DELAY_UNIT_SCK) ||
+           (inactive->unit && inactive->unit != SPI_DELAY_UNIT_SCK)) {
                dev_err(&spi->dev,
                        "Invalid delay unit %d, should be SPI_DELAY_UNIT_SCK\n",
                        SPI_DELAY_UNIT_SCK);