diff options
author | Christian Gromm <christian.gromm@microchip.com> | 2018-05-08 11:45:13 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-05-08 13:41:51 +0200 |
commit | d060bff70ec3060e864b96af4b27a21870a22e39 (patch) | |
tree | 1582c7e845cf32663f8526540e0c27ca6a0f9789 /drivers/staging/most/dim2 | |
parent | 1fb6089acb6315d9f3ca78da67bd5b017b067a4f (diff) | |
download | linux-d060bff70ec3060e864b96af4b27a21870a22e39.tar.bz2 |
staging: most: dim2: use device to allocate coherent memory
On several architectures the allocation of coherent memory needs a device
that has the dma_ops structure properly initialized. This patch enables
the DIM2 platform to be used to allocate this type of memory.
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/most/dim2')
-rw-r--r-- | drivers/staging/most/dim2/dim2.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c index 25e6e7e305ad..fe90a7cb56f7 100644 --- a/drivers/staging/most/dim2/dim2.c +++ b/drivers/staging/most/dim2/dim2.c @@ -683,12 +683,16 @@ static int poison_channel(struct most_interface *most_iface, int ch_idx) static void *dma_alloc(struct mbo *mbo, u32 size) { - return dma_alloc_coherent(NULL, size, &mbo->bus_address, GFP_KERNEL); + struct device *dev = mbo->ifp->driver_dev; + + return dma_alloc_coherent(dev, size, &mbo->bus_address, GFP_KERNEL); } static void dma_free(struct mbo *mbo, u32 size) { - dma_free_coherent(NULL, size, mbo->virt_address, mbo->bus_address); + struct device *dev = mbo->ifp->driver_dev; + + dma_free_coherent(dev, size, mbo->virt_address, mbo->bus_address); } static const struct of_device_id dim2_of_match[]; @@ -870,6 +874,7 @@ static int dim2_probe(struct platform_device *pdev) dev->most_iface.dma_free = dma_free; dev->most_iface.poison_channel = poison_channel; dev->most_iface.request_netinfo = request_netinfo; + dev->most_iface.driver_dev = &pdev->dev; dev->dev.init_name = "dim2_state"; dev->dev.parent = &dev->most_iface.dev; |