diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-07-24 13:13:28 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-07-24 13:13:28 -0700 | 
| commit | 365c83c3f56e5c7b161c041a487170f9a4840523 (patch) | |
| tree | 234b12840732de29806b349c1d13e2813ae7f829 | |
| parent | 5b7f00a5967a3fdd8654ba6926930e672710ef63 (diff) | |
| parent | 0c38ec716cdc0397f5225047c33a3144da93f5d8 (diff) | |
Merge tag 'spi-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi fixes from Mark Brown:
 "A small collection of pretty much unremarkable driver specific fixes
  here plus the addition of a new device ID to spidev which requires no
  other code changes"
* tag 'spi-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
  spi: imx: Fix small DMA transfers
  spi: zynq: missing break statement
  spi: SPI_ZYNQMP_GQSPI should depend on HAS_DMA
  spi: spidev: add compatible value for LTC2488
  spi: img-spfi: fix support for speeds up to 1/4th input clock
| -rw-r--r-- | drivers/spi/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/spi/spi-img-spfi.c | 2 | ||||
| -rw-r--r-- | drivers/spi/spi-imx.c | 5 | ||||
| -rw-r--r-- | drivers/spi/spi-zynqmp-gqspi.c | 1 | ||||
| -rw-r--r-- | drivers/spi/spidev.c | 1 | 
5 files changed, 8 insertions, 3 deletions
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 0cae1694014d..b0f30fb68914 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -612,7 +612,7 @@ config SPI_XTENSA_XTFPGA  config SPI_ZYNQMP_GQSPI  	tristate "Xilinx ZynqMP GQSPI controller" -	depends on SPI_MASTER +	depends on SPI_MASTER && HAS_DMA  	help  	  Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC. diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c index 788e2b176a4f..acce90ac7371 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c @@ -40,6 +40,7 @@  #define SPFI_CONTROL_SOFT_RESET			BIT(11)  #define SPFI_CONTROL_SEND_DMA			BIT(10)  #define SPFI_CONTROL_GET_DMA			BIT(9) +#define SPFI_CONTROL_SE			BIT(8)  #define SPFI_CONTROL_TMODE_SHIFT		5  #define SPFI_CONTROL_TMODE_MASK			0x7  #define SPFI_CONTROL_TMODE_SINGLE		0 @@ -491,6 +492,7 @@ static void img_spfi_config(struct spi_master *master, struct spi_device *spi,  	else if (xfer->tx_nbits == SPI_NBITS_QUAD &&  		 xfer->rx_nbits == SPI_NBITS_QUAD)  		val |= SPFI_CONTROL_TMODE_QUAD << SPFI_CONTROL_TMODE_SHIFT; +	val |= SPFI_CONTROL_SE;  	spfi_writel(spfi, val, SPFI_CONTROL);  } diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index eb7d3a6fb14c..f9deb84e4e55 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c @@ -201,8 +201,9 @@ static bool spi_imx_can_dma(struct spi_master *master, struct spi_device *spi,  {  	struct spi_imx_data *spi_imx = spi_master_get_devdata(master); -	if (spi_imx->dma_is_inited && (transfer->len > spi_imx->rx_wml) -	    && (transfer->len > spi_imx->tx_wml)) +	if (spi_imx->dma_is_inited +	    && transfer->len > spi_imx->rx_wml * sizeof(u32) +	    && transfer->len > spi_imx->tx_wml * sizeof(u32))  		return true;  	return false;  } diff --git a/drivers/spi/spi-zynqmp-gqspi.c b/drivers/spi/spi-zynqmp-gqspi.c index 87b20a511a6b..f23f36ebaf3d 100644 --- a/drivers/spi/spi-zynqmp-gqspi.c +++ b/drivers/spi/spi-zynqmp-gqspi.c @@ -214,6 +214,7 @@ static void zynqmp_gqspi_selectslave(struct zynqmp_qspi *instanceptr,  	case GQSPI_SELECT_FLASH_CS_BOTH:  		instanceptr->genfifocs = GQSPI_GENFIFO_CS_LOWER |  			GQSPI_GENFIFO_CS_UPPER; +		break;  	case GQSPI_SELECT_FLASH_CS_UPPER:  		instanceptr->genfifocs = GQSPI_GENFIFO_CS_UPPER;  		break; diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index dd616ff0ffc5..c7de64171c45 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -693,6 +693,7 @@ static struct class *spidev_class;  #ifdef CONFIG_OF  static const struct of_device_id spidev_dt_ids[] = {  	{ .compatible = "rohm,dh2228fv" }, +	{ .compatible = "lineartechnology,ltc2488" },  	{},  };  MODULE_DEVICE_TABLE(of, spidev_dt_ids);  | 
