forked from Minki/linux
spi: Fixes for v6.1
A collection of mostly unremarkable fixes for SPI that have built up since the merge window, all driver specific. The change to the qup adding support for GPIO chip selects is fixing a regression due to the removal of legacy GPIO handling, the driver had previously been silently relying on the legacy GPIO support in a slightly broken way which worked well enough on some systems. Fixing it is simply a case of setting a couple of bits of information in the driver description. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmNZkaEACgkQJNaLcl1U h9DKzAf+KmSNUIZ8rdfTTSvYj1SEuKd5O0YGLtRZsGLO6jhSNJ1EISCjw+9NHnoA U/AKnnTBdexb+T5623prQL9ZU0U+JmMciHn2c34eDkvQcpdbD0ZbbqzcqxkUnPQ/ Ci5W0/9jlv7NupBSR6HXLJxjkuAVWNNUZPdy4Pb89kZIB4m/E/geRU+t/ZZgpvuf v92AnRc0FtKlTFs2jrzScfV/R4+cygnoUoe2tJeDHYiN6ixJDJYZcU1yOcrE9544 +ovu166ZMRR6FuZ4Vd6Gso/befdaswUAwwWGghzg5IoWhIzvCkIHgtp78dk7oL29 xGgoq3lSjfzskvwNnHOWDB4tyQY7wg== =Ni1v -----END PGP SIGNATURE----- Merge tag 'spi-fix-v6.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A collection of mostly unremarkable fixes for SPI that have built up since the merge window, all driver specific. The change to the qup adding support for GPIO chip selects is fixing a regression due to the removal of legacy GPIO handling, the driver had previously been silently relying on the legacy GPIO support in a slightly broken way which worked well enough on some systems. Fixing it is simply a case of setting a couple of bits of information in the driver description" * tag 'spi-fix-v6.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: aspeed: Fix window offset of CE1 spi: qup: support using GPIO as chip select line spi: intel: Fix the offset to get the 64K erase opcode spi: aspeed: Fix typo in mode_bits field for AST2600 platform spi: mpc52xx: Replace NO_IRQ by 0 spi: spi-mem: Fix typo (of -> or) spi: spi-gxp: fix typo in SPDX identifier line spi: tegra210-quad: Fix combined sequence
This commit is contained in:
commit
a2718383ef
@ -398,7 +398,7 @@ static void aspeed_spi_get_windows(struct aspeed_spi *aspi,
|
||||
windows[cs].cs = cs;
|
||||
windows[cs].size = data->segment_end(aspi, reg_val) -
|
||||
data->segment_start(aspi, reg_val);
|
||||
windows[cs].offset = cs ? windows[cs - 1].offset + windows[cs - 1].size : 0;
|
||||
windows[cs].offset = data->segment_start(aspi, reg_val) - aspi->ahb_base_phy;
|
||||
dev_vdbg(aspi->dev, "CE%d offset=0x%.8x size=0x%x\n", cs,
|
||||
windows[cs].offset, windows[cs].size);
|
||||
}
|
||||
@ -1163,7 +1163,7 @@ static const struct aspeed_spi_data ast2500_spi_data = {
|
||||
static const struct aspeed_spi_data ast2600_fmc_data = {
|
||||
.max_cs = 3,
|
||||
.hastype = false,
|
||||
.mode_bits = SPI_RX_QUAD | SPI_RX_QUAD,
|
||||
.mode_bits = SPI_RX_QUAD | SPI_TX_QUAD,
|
||||
.we0 = 16,
|
||||
.ctl0 = CE0_CTRL_REG,
|
||||
.timing = CE0_TIMING_COMPENSATION_REG,
|
||||
@ -1178,7 +1178,7 @@ static const struct aspeed_spi_data ast2600_fmc_data = {
|
||||
static const struct aspeed_spi_data ast2600_spi_data = {
|
||||
.max_cs = 2,
|
||||
.hastype = false,
|
||||
.mode_bits = SPI_RX_QUAD | SPI_RX_QUAD,
|
||||
.mode_bits = SPI_RX_QUAD | SPI_TX_QUAD,
|
||||
.we0 = 16,
|
||||
.ctl0 = CE0_CTRL_REG,
|
||||
.timing = CE0_TIMING_COMPENSATION_REG,
|
||||
|
@ -1,4 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0=or-later
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/* Copyright (C) 2022 Hewlett-Packard Development Company, L.P. */
|
||||
|
||||
#include <linux/iopoll.h>
|
||||
|
@ -114,7 +114,7 @@
|
||||
#define ERASE_OPCODE_SHIFT 8
|
||||
#define ERASE_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT)
|
||||
#define ERASE_64K_OPCODE_SHIFT 16
|
||||
#define ERASE_64K_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT)
|
||||
#define ERASE_64K_OPCODE_MASK (0xff << ERASE_64K_OPCODE_SHIFT)
|
||||
|
||||
/* Flash descriptor fields */
|
||||
#define FLVALSIG_MAGIC 0x0ff0a55a
|
||||
|
@ -151,7 +151,7 @@ mpc52xx_spi_fsmstate_idle(int irq, struct mpc52xx_spi *ms, u8 status, u8 data)
|
||||
int spr, sppr;
|
||||
u8 ctrl1;
|
||||
|
||||
if (status && (irq != NO_IRQ))
|
||||
if (status && irq)
|
||||
dev_err(&ms->master->dev, "spurious irq, status=0x%.2x\n",
|
||||
status);
|
||||
|
||||
|
@ -1057,6 +1057,8 @@ static int spi_qup_probe(struct platform_device *pdev)
|
||||
else
|
||||
master->num_chipselect = num_cs;
|
||||
|
||||
master->use_gpio_descriptors = true;
|
||||
master->max_native_cs = SPI_NUM_CHIPSELECTS;
|
||||
master->bus_num = pdev->id;
|
||||
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP;
|
||||
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32);
|
||||
|
@ -1157,6 +1157,11 @@ static int tegra_qspi_combined_seq_xfer(struct tegra_qspi *tqspi,
|
||||
msg->actual_length += xfer->len;
|
||||
transfer_phase++;
|
||||
}
|
||||
if (!xfer->cs_change) {
|
||||
tegra_qspi_transfer_end(spi);
|
||||
spi_transfer_delay_exec(xfer);
|
||||
}
|
||||
ret = 0;
|
||||
|
||||
exit:
|
||||
msg->status = ret;
|
||||
|
@ -225,7 +225,7 @@ static inline void *spi_mem_get_drvdata(struct spi_mem *mem)
|
||||
/**
|
||||
* struct spi_controller_mem_ops - SPI memory operations
|
||||
* @adjust_op_size: shrink the data xfer of an operation to match controller's
|
||||
* limitations (can be alignment of max RX/TX size
|
||||
* limitations (can be alignment or max RX/TX size
|
||||
* limitations)
|
||||
* @supports_op: check if an operation is supported by the controller
|
||||
* @exec_op: execute a SPI memory operation
|
||||
|
Loading…
Reference in New Issue
Block a user