staging: comedi: comedi_isadma: Use a non-NULL device for DMA API
authorIan Abbott <abbotti@mev.co.uk>
Fri, 26 Apr 2019 13:54:13 +0000 (14:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 27 Apr 2019 13:00:35 +0000 (15:00 +0200)
commita4965d98b4d1ffa5b22f2039bc9e87898aff4976
tree7b32dcae872200090020519a48c75eb9e36c0c45
parent575d927c426b83f5f8d5809f46de177cceffe40c
staging: comedi: comedi_isadma: Use a non-NULL device for DMA API

The "comedi_isadma" module calls `dma_alloc_coherent()` and
`dma_free_coherent()` with a NULL device pointer which is no longer
allowed.  If the `hw_dev` member of the `struct comedi_device` has been
set to a valid device, that can be used instead.  Unfortunately, all the
current users of the "comedi_isadma" module leave the `hw_dev` member
set to NULL.  In that case, fall back to using the comedi "class" device
pointed to by the `class_dev` member if that is non-NULL.  In that case,
make it "DMA-capable" with a coherent DMA mask set to the ISA bus limit
of 16MB (24 bits).

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/comedi_isadma.c
drivers/staging/comedi/drivers/comedi_isadma.h