53c700: improve non-coherent DMA handling
authorChristoph Hellwig <hch@lst.de>
Tue, 18 Aug 2020 14:07:21 +0000 (16:07 +0200)
committerChristoph Hellwig <hch@lst.de>
Fri, 25 Sep 2020 04:20:43 +0000 (06:20 +0200)
commit91af2dd255ac9284ee2942a359fa8d2b49849e0b
treeabab6c8c571f41e45f0a5719ee27f4cdcd4028fc
parent48d15814dd0fc429e3205b87f1af6cc472018478
53c700: improve non-coherent DMA handling

Switch the 53c700 driver to only use non-coherent descriptor memory if it
really has to because dma_alloc_coherent fails.  This doesn't matter for
any of the platforms it runs on currently, but that will change soon.

To help with this two new helpers to transfer ownership to and from the
device are added that abstract the syncing of the non-coherent memory.
The two current bidirectional cases are mapped to transfers to the
device, as that appears to what they are used for.  Note that for parisc,
which is the only architecture this driver needs to use non-coherent
memory on, the direction argument of dma_cache_sync is ignored, so this
will not change behavior in any way.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
drivers/scsi/53c700.c
drivers/scsi/53c700.h