Commit f71d49e0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull spi fixes from Mark Brown:
 "There's some device specific fixes here but also an unusually large
  number of fixes for the core, including both fixes for breakage
  introduced on ACPI systems while fixing the long standing confusion
  about the polarity of GPIO chip selects specified through DT, and
  fixes for ordering issues on unregistration which have been exposed
  through the wider usage of devm_."

* tag 'spi-fix-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
  spi: sc18is602: implement .max_{transfer,message}_size() for the controller
  spi: sc18is602: don't consider the chip select byte in sc18is602_check_transfer
  MAINTAINERS: Add Alain Volmat as STM32 SPI maintainer
  dt-bindings: spi: spi-mux: rename flash node
  spi: Don't have controller clean up spi device before driver unbind
  spi: Assume GPIO CS active high in ACPI case
  spi: sprd: Add missing MODULE_DEVICE_TABLE
  spi: Switch to signed types for *_native_cs SPI controller fields
  spi: take the SPI IO-mutex in the spi_set_cs_timing method
  spi: spi-fsl-dspi: Fix a resource leak in an error handling path
  spi: spi-zynq-qspi: Fix stack violation bug
  spi: spi-zynq-qspi: Fix kernel-doc warning
  spi: altera: Make SPI_ALTERA_CORE invisible
  spi: Fix spi device unregister flow
parents c4681547 b4e46c99
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ examples:

            mux-controls = <&mux>;

            spi-flash@0 {
            flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <40000000>;
+6 −0
Original line number Diff line number Diff line
@@ -17304,6 +17304,12 @@ L: linux-i2c@vger.kernel.org
S:	Maintained
F:	drivers/i2c/busses/i2c-stm32*
ST STM32 SPI DRIVER
M:	Alain Volmat <alain.volmat@foss.st.com>
L:	linux-spi@vger.kernel.org
S:	Maintained
F:	drivers/spi/spi-stm32.c
ST STPDDC60 DRIVER
M:	Daniel Nilsson <daniel.nilsson@flex.com>
L:	linux-hwmon@vger.kernel.org
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ config SPI_ALTERA
	  This is the driver for the Altera SPI Controller.

config SPI_ALTERA_CORE
	tristate "Altera SPI Controller core code"
	tristate "Altera SPI Controller core code" if COMPILE_TEST
	select REGMAP
	help
	  "The core code for the Altera SPI Controller"
+3 −1
Original line number Diff line number Diff line
@@ -1375,11 +1375,13 @@ static int dspi_probe(struct platform_device *pdev)
	ret = spi_register_controller(ctlr);
	if (ret != 0) {
		dev_err(&pdev->dev, "Problem registering DSPI ctlr\n");
		goto out_free_irq;
		goto out_release_dma;
	}

	return ret;

out_release_dma:
	dspi_release_dma(dspi);
out_free_irq:
	if (dspi->irq)
		free_irq(dspi->irq, dspi);
+8 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ static int sc18is602_setup_transfer(struct sc18is602 *hw, u32 hz, u8 mode)
static int sc18is602_check_transfer(struct spi_device *spi,
				    struct spi_transfer *t, int tlen)
{
	if (t && t->len + tlen > SC18IS602_BUFSIZ)
	if (t && t->len + tlen > SC18IS602_BUFSIZ + 1)
		return -EINVAL;

	return 0;
@@ -219,6 +219,11 @@ static int sc18is602_transfer_one(struct spi_master *master,
	return status;
}

static size_t sc18is602_max_transfer_size(struct spi_device *spi)
{
	return SC18IS602_BUFSIZ;
}

static int sc18is602_setup(struct spi_device *spi)
{
	struct sc18is602 *hw = spi_master_get_devdata(spi->master);
@@ -293,6 +298,8 @@ static int sc18is602_probe(struct i2c_client *client,
	master->bits_per_word_mask = SPI_BPW_MASK(8);
	master->setup = sc18is602_setup;
	master->transfer_one_message = sc18is602_transfer_one;
	master->max_transfer_size = sc18is602_max_transfer_size;
	master->max_message_size = sc18is602_max_transfer_size;
	master->dev.of_node = np;
	master->min_speed_hz = hw->freq / 128;
	master->max_speed_hz = hw->freq / 4;
Loading