]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 May 2025 07:43:51 +0000 (09:43 +0200)
commit 4426e6b4ecf632bb75d973051e1179b8bfac2320 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/spi/spi-tegra114.c

index 460f232dad508be4139c34ed04cd516d1063c070..147d7052794f77a047fcd0c59073d33cabc94a94 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);