Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'spi-fix-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi

Pull spi fixes from Mark Brown:
"A small collection of fixes for various SPI drivers, plus a relaxation
of constraints in the DT for the DesignWare controller to reflect
hardware that's been seen.

There's several fixes for the Cadence QuadSPI driver since a fix
during the last release made some existing issues with error handling
during probe more readily visible"

* tag 'spi-fix-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
spi: mt65xx: Use IRQF_ONESHOT with threaded IRQ
spi: dt-bindings: snps,dw-abp-ssi: Allow up to 16 chip-selects
spi: cadence-quadspi: Fix clock disable on probe failure path
spi: cadence-quadspi: Add error logging for DMA request failure
spi: fsl-cpm: Check length parity before switching to 16 bit mode
spi: mpfs: Fix an error handling path in mpfs_spi_probe()

+12 -7
+3 -3
Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
··· 121 121 num-cs: 122 122 default: 4 123 123 minimum: 1 124 - maximum: 4 124 + maximum: 16 125 125 126 126 dmas: 127 127 items: ··· 153 153 provides an interface to override the native DWC SSI CS control. 154 154 155 155 patternProperties: 156 - "@[0-9a-f]+$": 156 + "@[0-9a-f]$": 157 157 type: object 158 158 additionalProperties: true 159 159 160 160 properties: 161 161 reg: 162 162 minimum: 0 163 - maximum: 3 163 + maximum: 0xf 164 164 165 165 unevaluatedProperties: false 166 166
+6 -2
drivers/spi/spi-cadence-quadspi.c
··· 2001 2001 2002 2002 if (cqspi->use_direct_mode) { 2003 2003 ret = cqspi_request_mmap_dma(cqspi); 2004 - if (ret == -EPROBE_DEFER) 2004 + if (ret == -EPROBE_DEFER) { 2005 + dev_err_probe(&pdev->dev, ret, "Failed to request mmap DMA\n"); 2005 2006 goto probe_setup_failed; 2007 + } 2006 2008 } 2007 2009 2008 2010 ret = spi_register_controller(host); ··· 2026 2024 probe_reset_failed: 2027 2025 if (cqspi->is_jh7110) 2028 2026 cqspi_jh7110_disable_clk(pdev, cqspi); 2029 - clk_disable_unprepare(cqspi->clk); 2027 + 2028 + if (pm_runtime_get_sync(&pdev->dev) >= 0) 2029 + clk_disable_unprepare(cqspi->clk); 2030 2030 probe_clk_failed: 2031 2031 return ret; 2032 2032 }
+1 -1
drivers/spi/spi-fsl-spi.c
··· 335 335 if (t->bits_per_word == 16 || t->bits_per_word == 32) 336 336 t->bits_per_word = 8; /* pretend its 8 bits */ 337 337 if (t->bits_per_word == 8 && t->len >= 256 && 338 - (mpc8xxx_spi->flags & SPI_CPM1)) 338 + !(t->len & 1) && (mpc8xxx_spi->flags & SPI_CPM1)) 339 339 t->bits_per_word = 16; 340 340 } 341 341 }
+1
drivers/spi/spi-mpfs.c
··· 577 577 578 578 ret = devm_spi_register_controller(&pdev->dev, host); 579 579 if (ret) { 580 + mpfs_spi_disable_ints(spi); 580 581 mpfs_spi_disable(spi); 581 582 return dev_err_probe(&pdev->dev, ret, 582 583 "unable to register host for SPI controller\n");
+1 -1
drivers/spi/spi-mt65xx.c
··· 1320 1320 1321 1321 ret = devm_request_threaded_irq(dev, irq, mtk_spi_interrupt, 1322 1322 mtk_spi_interrupt_thread, 1323 - IRQF_TRIGGER_NONE, dev_name(dev), host); 1323 + IRQF_ONESHOT, dev_name(dev), host); 1324 1324 if (ret) 1325 1325 return dev_err_probe(dev, ret, "failed to register irq\n"); 1326 1326