]> 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>
Sat, 6 Sep 2025 03:37:10 +0000 (23:37 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Sep 2025 16:54:20 +0000 (18:54 +0200)
[ Upstream commit 4426e6b4ecf632bb75d973051e1179b8bfac2320 ]

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

index 6b56108308fc5b5adc7c4e34b6a67f970688474e..60799ab60eb4591ba91852a858ca86e3331f9bb0 100644 (file)
@@ -729,9 +729,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);