lkml.org 
[lkml]   [2018]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 11/13] remoteproc: create vdev subdevice with specific dma memory pool
On Thu 01 Mar 08:23 PST 2018, Loic Pallardy wrote:
> @@ -479,6 +481,41 @@ static int rproc_handle_vdev(struct rproc *rproc, struct fw_rsc_vdev *rsc,
> goto unwind_vring_allocations;
> }
>
> + /* Initialise vdev subdevice */
> + snprintf(name, sizeof(name), "vdev%dbuffer", rvdev->index);
> + rvdev->dev.parent = rproc->dev.parent;
> + dev_set_name(&rvdev->dev, "%s#%s", dev_name(rvdev->dev.parent), name);
> + dev_set_drvdata(&rvdev->dev, rvdev);
> + dma_set_coherent_mask(&rvdev->dev, DMA_BIT_MASK(32));
> +
> + ret = device_register(&rvdev->dev);
> + if (ret)
> + goto unwind_vring_allocations;
> +
> + /* Try to find dedicated vdev buffer carveout */
> + carveout = rproc_find_carveout_by_name(rproc, name);
> +
> + if (carveout) {
> + phys_addr_t pa;
> +
> + if (carveout->va) {
> + dev_warn(dev, "vdev %d buffer carveout already mapped\n",
> + rvdev->index);
> + pa = rproc_va_to_pa(carveout->va);
> + } else {
> + /* Use dma address as carveout no memmapped yet */
> + pa = (phys_addr_t)carveout->dma;
> + }
> +
> + /* Associate vdev buffer memory pool to vdev subdevice */
> + ret = dmam_declare_coherent_memory(&rvdev->dev, pa,
> + carveout->da,
> + carveout->len,
> + DMA_MEMORY_EXCLUSIVE);
> + if (ret < 0)
> + goto unregister_device;
> + }
> +

So with this there will be one more device between rproc->dev and the
virtio dev, for the sake of memory management. So e.g. a rpmsg device
will still need to allocate memory from dev->parent->parent; which now
possibly has a specific dma_mem.

Is it not possible to assign the memory to the vdev->dev and allow the
virtio devices can allocate memory from their parent device?

Regards,
Bjorn

\
 
 \ /
  Last update: 2018-05-10 03:06    [W:0.185 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site