[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 11 Nov 2019 11:03:01 +0530
From: Vinod Koul <vkoul@...nel.org>
To: Peter Ujfalusi <peter.ujfalusi@...com>
Cc: robh+dt@...nel.org, nm@...com, ssantosh@...nel.org,
dan.j.williams@...el.com, dmaengine@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, grygorii.strashko@...com,
lokeshvutla@...com, t-kristo@...com, tony@...mide.com,
j-keerthy@...com
Subject: Re: [PATCH v4 10/15] dmaengine: ti: New driver for K3 UDMA -
split#2: probe/remove, xlate and filter_fn
On 01-11-19, 10:41, Peter Ujfalusi wrote:
> +static bool udma_dma_filter_fn(struct dma_chan *chan, void *param)
> +{
> + struct psil_endpoint_config *ep_config;
> + struct udma_chan *uc;
> + struct udma_dev *ud;
> + u32 *args;
> +
> + if (chan->device->dev->driver != &udma_driver.driver)
> + return false;
> +
> + uc = to_udma_chan(chan);
> + ud = uc->ud;
> + args = param;
> + uc->remote_thread_id = args[0];
> +
> + if (uc->remote_thread_id & K3_PSIL_DST_THREAD_ID_OFFSET)
> + uc->dir = DMA_MEM_TO_DEV;
> + else
> + uc->dir = DMA_DEV_TO_MEM;
Can you explain this a bit?
> +static int udma_remove(struct platform_device *pdev)
> +{
> + struct udma_dev *ud = platform_get_drvdata(pdev);
> +
> + of_dma_controller_free(pdev->dev.of_node);
> + dma_async_device_unregister(&ud->ddev);
> +
> + /* Make sure that we did proper cleanup */
> + cancel_work_sync(&ud->purge_work);
> + udma_purge_desc_work(&ud->purge_work);
kill the vchan tasklets at it too please
--
~Vinod
Powered by blists - more mailing lists