mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
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()
This commit is contained in:
@@ -121,7 +121,7 @@ properties:
|
||||
num-cs:
|
||||
default: 4
|
||||
minimum: 1
|
||||
maximum: 4
|
||||
maximum: 16
|
||||
|
||||
dmas:
|
||||
items:
|
||||
@@ -153,14 +153,14 @@ properties:
|
||||
provides an interface to override the native DWC SSI CS control.
|
||||
|
||||
patternProperties:
|
||||
"@[0-9a-f]+$":
|
||||
"@[0-9a-f]$":
|
||||
type: object
|
||||
additionalProperties: true
|
||||
|
||||
properties:
|
||||
reg:
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
maximum: 0xf
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
|
||||
@@ -2001,8 +2001,10 @@ static int cqspi_probe(struct platform_device *pdev)
|
||||
|
||||
if (cqspi->use_direct_mode) {
|
||||
ret = cqspi_request_mmap_dma(cqspi);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
if (ret == -EPROBE_DEFER) {
|
||||
dev_err_probe(&pdev->dev, ret, "Failed to request mmap DMA\n");
|
||||
goto probe_setup_failed;
|
||||
}
|
||||
}
|
||||
|
||||
ret = spi_register_controller(host);
|
||||
@@ -2024,7 +2026,9 @@ probe_setup_failed:
|
||||
probe_reset_failed:
|
||||
if (cqspi->is_jh7110)
|
||||
cqspi_jh7110_disable_clk(pdev, cqspi);
|
||||
clk_disable_unprepare(cqspi->clk);
|
||||
|
||||
if (pm_runtime_get_sync(&pdev->dev) >= 0)
|
||||
clk_disable_unprepare(cqspi->clk);
|
||||
probe_clk_failed:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -335,7 +335,7 @@ static int fsl_spi_prepare_message(struct spi_controller *ctlr,
|
||||
if (t->bits_per_word == 16 || t->bits_per_word == 32)
|
||||
t->bits_per_word = 8; /* pretend its 8 bits */
|
||||
if (t->bits_per_word == 8 && t->len >= 256 &&
|
||||
(mpc8xxx_spi->flags & SPI_CPM1))
|
||||
!(t->len & 1) && (mpc8xxx_spi->flags & SPI_CPM1))
|
||||
t->bits_per_word = 16;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -577,6 +577,7 @@ static int mpfs_spi_probe(struct platform_device *pdev)
|
||||
|
||||
ret = devm_spi_register_controller(&pdev->dev, host);
|
||||
if (ret) {
|
||||
mpfs_spi_disable_ints(spi);
|
||||
mpfs_spi_disable(spi);
|
||||
return dev_err_probe(&pdev->dev, ret,
|
||||
"unable to register host for SPI controller\n");
|
||||
|
||||
@@ -1320,7 +1320,7 @@ static int mtk_spi_probe(struct platform_device *pdev)
|
||||
|
||||
ret = devm_request_threaded_irq(dev, irq, mtk_spi_interrupt,
|
||||
mtk_spi_interrupt_thread,
|
||||
IRQF_TRIGGER_NONE, dev_name(dev), host);
|
||||
IRQF_ONESHOT, dev_name(dev), host);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "failed to register irq\n");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user