diff options
-rw-r--r-- | drivers/spi/Kconfig | 1 | ||||
-rw-r--r-- | drivers/spi/spi-armada-3700.c | 11 | ||||
-rw-r--r-- | drivers/spi/spi-davinci.c | 4 | ||||
-rw-r--r-- | drivers/spi/spi-dw-mid.c | 4 | ||||
-rw-r--r-- | drivers/spi/spi-dw.c | 5 | ||||
-rw-r--r-- | drivers/spi/spi-pxa2xx.c | 1 |
6 files changed, 16 insertions, 10 deletions
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index ec4aa252d6e8..2922a9908302 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig | |||
@@ -378,6 +378,7 @@ config SPI_FSL_SPI | |||
378 | config SPI_FSL_DSPI | 378 | config SPI_FSL_DSPI |
379 | tristate "Freescale DSPI controller" | 379 | tristate "Freescale DSPI controller" |
380 | select REGMAP_MMIO | 380 | select REGMAP_MMIO |
381 | depends on HAS_DMA | ||
381 | depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST | 382 | depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST |
382 | help | 383 | help |
383 | This enables support for the Freescale DSPI controller in master | 384 | This enables support for the Freescale DSPI controller in master |
diff --git a/drivers/spi/spi-armada-3700.c b/drivers/spi/spi-armada-3700.c index e89da0af45d2..0314c6b9e044 100644 --- a/drivers/spi/spi-armada-3700.c +++ b/drivers/spi/spi-armada-3700.c | |||
@@ -800,7 +800,7 @@ static int a3700_spi_probe(struct platform_device *pdev) | |||
800 | struct spi_master *master; | 800 | struct spi_master *master; |
801 | struct a3700_spi *spi; | 801 | struct a3700_spi *spi; |
802 | u32 num_cs = 0; | 802 | u32 num_cs = 0; |
803 | int ret = 0; | 803 | int irq, ret = 0; |
804 | 804 | ||
805 | master = spi_alloc_master(dev, sizeof(*spi)); | 805 | master = spi_alloc_master(dev, sizeof(*spi)); |
806 | if (!master) { | 806 | if (!master) { |
@@ -825,7 +825,7 @@ static int a3700_spi_probe(struct platform_device *pdev) | |||
825 | master->unprepare_message = a3700_spi_unprepare_message; | 825 | master->unprepare_message = a3700_spi_unprepare_message; |
826 | master->set_cs = a3700_spi_set_cs; | 826 | master->set_cs = a3700_spi_set_cs; |
827 | master->flags = SPI_MASTER_HALF_DUPLEX; | 827 | master->flags = SPI_MASTER_HALF_DUPLEX; |
828 | master->mode_bits |= (SPI_RX_DUAL | SPI_RX_DUAL | | 828 | master->mode_bits |= (SPI_RX_DUAL | SPI_TX_DUAL | |
829 | SPI_RX_QUAD | SPI_TX_QUAD); | 829 | SPI_RX_QUAD | SPI_TX_QUAD); |
830 | 830 | ||
831 | platform_set_drvdata(pdev, master); | 831 | platform_set_drvdata(pdev, master); |
@@ -846,12 +846,13 @@ static int a3700_spi_probe(struct platform_device *pdev) | |||
846 | goto error; | 846 | goto error; |
847 | } | 847 | } |
848 | 848 | ||
849 | spi->irq = platform_get_irq(pdev, 0); | 849 | irq = platform_get_irq(pdev, 0); |
850 | if (spi->irq < 0) { | 850 | if (irq < 0) { |
851 | dev_err(dev, "could not get irq: %d\n", spi->irq); | 851 | dev_err(dev, "could not get irq: %d\n", irq); |
852 | ret = -ENXIO; | 852 | ret = -ENXIO; |
853 | goto error; | 853 | goto error; |
854 | } | 854 | } |
855 | spi->irq = irq; | ||
855 | 856 | ||
856 | init_completion(&spi->done); | 857 | init_completion(&spi->done); |
857 | 858 | ||
diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c index d36c11b73a35..02fb96797ac8 100644 --- a/drivers/spi/spi-davinci.c +++ b/drivers/spi/spi-davinci.c | |||
@@ -646,7 +646,7 @@ static int davinci_spi_bufs(struct spi_device *spi, struct spi_transfer *t) | |||
646 | buf = t->rx_buf; | 646 | buf = t->rx_buf; |
647 | t->rx_dma = dma_map_single(&spi->dev, buf, | 647 | t->rx_dma = dma_map_single(&spi->dev, buf, |
648 | t->len, DMA_FROM_DEVICE); | 648 | t->len, DMA_FROM_DEVICE); |
649 | if (!t->rx_dma) { | 649 | if (dma_mapping_error(&spi->dev, !t->rx_dma)) { |
650 | ret = -EFAULT; | 650 | ret = -EFAULT; |
651 | goto err_rx_map; | 651 | goto err_rx_map; |
652 | } | 652 | } |
@@ -660,7 +660,7 @@ static int davinci_spi_bufs(struct spi_device *spi, struct spi_transfer *t) | |||
660 | buf = (void *)t->tx_buf; | 660 | buf = (void *)t->tx_buf; |
661 | t->tx_dma = dma_map_single(&spi->dev, buf, | 661 | t->tx_dma = dma_map_single(&spi->dev, buf, |
662 | t->len, DMA_TO_DEVICE); | 662 | t->len, DMA_TO_DEVICE); |
663 | if (!t->tx_dma) { | 663 | if (dma_mapping_error(&spi->dev, t->tx_dma)) { |
664 | ret = -EFAULT; | 664 | ret = -EFAULT; |
665 | goto err_tx_map; | 665 | goto err_tx_map; |
666 | } | 666 | } |
diff --git a/drivers/spi/spi-dw-mid.c b/drivers/spi/spi-dw-mid.c index e31971f91475..837cb8d0bac6 100644 --- a/drivers/spi/spi-dw-mid.c +++ b/drivers/spi/spi-dw-mid.c | |||
@@ -274,11 +274,11 @@ static int mid_spi_dma_transfer(struct dw_spi *dws, struct spi_transfer *xfer) | |||
274 | static void mid_spi_dma_stop(struct dw_spi *dws) | 274 | static void mid_spi_dma_stop(struct dw_spi *dws) |
275 | { | 275 | { |
276 | if (test_bit(TX_BUSY, &dws->dma_chan_busy)) { | 276 | if (test_bit(TX_BUSY, &dws->dma_chan_busy)) { |
277 | dmaengine_terminate_all(dws->txchan); | 277 | dmaengine_terminate_sync(dws->txchan); |
278 | clear_bit(TX_BUSY, &dws->dma_chan_busy); | 278 | clear_bit(TX_BUSY, &dws->dma_chan_busy); |
279 | } | 279 | } |
280 | if (test_bit(RX_BUSY, &dws->dma_chan_busy)) { | 280 | if (test_bit(RX_BUSY, &dws->dma_chan_busy)) { |
281 | dmaengine_terminate_all(dws->rxchan); | 281 | dmaengine_terminate_sync(dws->rxchan); |
282 | clear_bit(RX_BUSY, &dws->dma_chan_busy); | 282 | clear_bit(RX_BUSY, &dws->dma_chan_busy); |
283 | } | 283 | } |
284 | } | 284 | } |
diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c index b715a26a9148..054012f87567 100644 --- a/drivers/spi/spi-dw.c +++ b/drivers/spi/spi-dw.c | |||
@@ -107,7 +107,10 @@ static const struct file_operations dw_spi_regs_ops = { | |||
107 | 107 | ||
108 | static int dw_spi_debugfs_init(struct dw_spi *dws) | 108 | static int dw_spi_debugfs_init(struct dw_spi *dws) |
109 | { | 109 | { |
110 | dws->debugfs = debugfs_create_dir("dw_spi", NULL); | 110 | char name[128]; |
111 | |||
112 | snprintf(name, 128, "dw_spi-%s", dev_name(&dws->master->dev)); | ||
113 | dws->debugfs = debugfs_create_dir(name, NULL); | ||
111 | if (!dws->debugfs) | 114 | if (!dws->debugfs) |
112 | return -ENOMEM; | 115 | return -ENOMEM; |
113 | 116 | ||
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c index dd7b5b47291d..d6239fa718be 100644 --- a/drivers/spi/spi-pxa2xx.c +++ b/drivers/spi/spi-pxa2xx.c | |||
@@ -1690,6 +1690,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) | |||
1690 | pxa2xx_spi_write(drv_data, SSCR1, tmp); | 1690 | pxa2xx_spi_write(drv_data, SSCR1, tmp); |
1691 | tmp = SSCR0_SCR(2) | SSCR0_Motorola | SSCR0_DataSize(8); | 1691 | tmp = SSCR0_SCR(2) | SSCR0_Motorola | SSCR0_DataSize(8); |
1692 | pxa2xx_spi_write(drv_data, SSCR0, tmp); | 1692 | pxa2xx_spi_write(drv_data, SSCR0, tmp); |
1693 | break; | ||
1693 | default: | 1694 | default: |
1694 | tmp = SSCR1_RxTresh(RX_THRESH_DFLT) | | 1695 | tmp = SSCR1_RxTresh(RX_THRESH_DFLT) | |
1695 | SSCR1_TxTresh(TX_THRESH_DFLT); | 1696 | SSCR1_TxTresh(TX_THRESH_DFLT); |