diff options
| -rw-r--r-- | drivers/spi/spi-dw.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c index 8edcd1b84562..5a97a62b298a 100644 --- a/drivers/spi/spi-dw.c +++ b/drivers/spi/spi-dw.c | |||
| @@ -608,7 +608,7 @@ static void dw_spi_cleanup(struct spi_device *spi) | |||
| 608 | } | 608 | } |
| 609 | 609 | ||
| 610 | /* Restart the controller, disable all interrupts, clean rx fifo */ | 610 | /* Restart the controller, disable all interrupts, clean rx fifo */ |
| 611 | static void spi_hw_init(struct dw_spi *dws) | 611 | static void spi_hw_init(struct device *dev, struct dw_spi *dws) |
| 612 | { | 612 | { |
| 613 | spi_enable_chip(dws, 0); | 613 | spi_enable_chip(dws, 0); |
| 614 | spi_mask_intr(dws, 0xff); | 614 | spi_mask_intr(dws, 0xff); |
| @@ -626,9 +626,10 @@ static void spi_hw_init(struct dw_spi *dws) | |||
| 626 | if (fifo != dw_readw(dws, DW_SPI_TXFLTR)) | 626 | if (fifo != dw_readw(dws, DW_SPI_TXFLTR)) |
| 627 | break; | 627 | break; |
| 628 | } | 628 | } |
| 629 | dw_writew(dws, DW_SPI_TXFLTR, 0); | ||
| 629 | 630 | ||
| 630 | dws->fifo_len = (fifo == 2) ? 0 : fifo - 1; | 631 | dws->fifo_len = (fifo == 2) ? 0 : fifo - 1; |
| 631 | dw_writew(dws, DW_SPI_TXFLTR, 0); | 632 | dev_dbg(dev, "Detected FIFO size: %u bytes\n", dws->fifo_len); |
| 632 | } | 633 | } |
| 633 | } | 634 | } |
| 634 | 635 | ||
| @@ -668,7 +669,7 @@ int dw_spi_add_host(struct device *dev, struct dw_spi *dws) | |||
| 668 | master->dev.of_node = dev->of_node; | 669 | master->dev.of_node = dev->of_node; |
| 669 | 670 | ||
| 670 | /* Basic HW init */ | 671 | /* Basic HW init */ |
| 671 | spi_hw_init(dws); | 672 | spi_hw_init(dev, dws); |
| 672 | 673 | ||
| 673 | if (dws->dma_ops && dws->dma_ops->dma_init) { | 674 | if (dws->dma_ops && dws->dma_ops->dma_init) { |
| 674 | ret = dws->dma_ops->dma_init(dws); | 675 | ret = dws->dma_ops->dma_init(dws); |
| @@ -731,7 +732,7 @@ int dw_spi_resume_host(struct dw_spi *dws) | |||
| 731 | { | 732 | { |
| 732 | int ret; | 733 | int ret; |
| 733 | 734 | ||
| 734 | spi_hw_init(dws); | 735 | spi_hw_init(&dws->master->dev, dws); |
| 735 | ret = spi_master_resume(dws->master); | 736 | ret = spi_master_resume(dws->master); |
| 736 | if (ret) | 737 | if (ret) |
| 737 | dev_err(&dws->master->dev, "fail to start queue (%d)\n", ret); | 738 | dev_err(&dws->master->dev, "fail to start queue (%d)\n", ret); |
