diff options
| -rw-r--r-- | drivers/spi/spi-img-spfi.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c index 3fd7b07c3eef..c37f6e50096e 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c | |||
| @@ -414,8 +414,6 @@ static void img_spfi_handle_err(struct spi_master *master, | |||
| 414 | dmaengine_terminate_all(spfi->rx_ch); | 414 | dmaengine_terminate_all(spfi->rx_ch); |
| 415 | } | 415 | } |
| 416 | spin_unlock_irqrestore(&spfi->lock, flags); | 416 | spin_unlock_irqrestore(&spfi->lock, flags); |
| 417 | |||
| 418 | spfi_reset(spfi); | ||
| 419 | } | 417 | } |
| 420 | 418 | ||
| 421 | static int img_spfi_prepare(struct spi_master *master, struct spi_message *msg) | 419 | static int img_spfi_prepare(struct spi_master *master, struct spi_message *msg) |
| @@ -437,6 +435,16 @@ static int img_spfi_prepare(struct spi_master *master, struct spi_message *msg) | |||
| 437 | return 0; | 435 | return 0; |
| 438 | } | 436 | } |
| 439 | 437 | ||
| 438 | static int img_spfi_unprepare(struct spi_master *master, | ||
| 439 | struct spi_message *msg) | ||
| 440 | { | ||
| 441 | struct img_spfi *spfi = spi_master_get_devdata(master); | ||
| 442 | |||
| 443 | spfi_reset(spfi); | ||
| 444 | |||
| 445 | return 0; | ||
| 446 | } | ||
| 447 | |||
| 440 | static void img_spfi_config(struct spi_master *master, struct spi_device *spi, | 448 | static void img_spfi_config(struct spi_master *master, struct spi_device *spi, |
| 441 | struct spi_transfer *xfer) | 449 | struct spi_transfer *xfer) |
| 442 | { | 450 | { |
| @@ -610,6 +618,7 @@ static int img_spfi_probe(struct platform_device *pdev) | |||
| 610 | master->set_cs = img_spfi_set_cs; | 618 | master->set_cs = img_spfi_set_cs; |
| 611 | master->transfer_one = img_spfi_transfer_one; | 619 | master->transfer_one = img_spfi_transfer_one; |
| 612 | master->prepare_message = img_spfi_prepare; | 620 | master->prepare_message = img_spfi_prepare; |
| 621 | master->unprepare_message = img_spfi_unprepare; | ||
| 613 | master->handle_err = img_spfi_handle_err; | 622 | master->handle_err = img_spfi_handle_err; |
| 614 | 623 | ||
| 615 | spfi->tx_ch = dma_request_slave_channel(spfi->dev, "tx"); | 624 | spfi->tx_ch = dma_request_slave_channel(spfi->dev, "tx"); |
