Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1888e8f2 authored by Nicolas Ferre's avatar Nicolas Ferre Committed by Mark Brown
Browse files

spi/spi-atmel: call unmapping on transfers buffers

parent 97ed465b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1047,6 +1047,7 @@ static int atmel_spi_remove(struct platform_device *pdev)
	struct spi_master	*master = platform_get_drvdata(pdev);
	struct atmel_spi	*as = spi_master_get_devdata(master);
	struct spi_message	*msg;
	struct spi_transfer	*xfer;

	/* reset the hardware and block queue progress */
	spin_lock_irq(&as->lock);
@@ -1058,9 +1059,10 @@ static int atmel_spi_remove(struct platform_device *pdev)

	/* Terminate remaining queued transfers */
	list_for_each_entry(msg, &as->queue, queue) {
		/* REVISIT unmapping the dma is a NOP on ARM and AVR32
		 * but we shouldn't depend on that...
		 */
		list_for_each_entry(xfer, &msg->transfers, transfer_list) {
			if (!msg->is_dma_mapped)
				atmel_spi_dma_unmap_xfer(master, xfer);
		}
		msg->status = -ESHUTDOWN;
		msg->complete(msg->context);
	}