Commit ba714046 authored by Maxime Ripard's avatar Maxime Ripard Committed by Vinod Koul

dmaengine: xilinx: Split device_control

Split the device_control callback of the Xilinx VDMA driver to make use of the
newly introduced callbacks, that will eventually be used to retrieve slave
capabilities.
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 662f1ac3
...@@ -1001,13 +1001,17 @@ xilinx_vdma_dma_prep_interleaved(struct dma_chan *dchan, ...@@ -1001,13 +1001,17 @@ xilinx_vdma_dma_prep_interleaved(struct dma_chan *dchan,
* xilinx_vdma_terminate_all - Halt the channel and free descriptors * xilinx_vdma_terminate_all - Halt the channel and free descriptors
* @chan: Driver specific VDMA Channel pointer * @chan: Driver specific VDMA Channel pointer
*/ */
static void xilinx_vdma_terminate_all(struct xilinx_vdma_chan *chan) static int xilinx_vdma_terminate_all(struct dma_chan *dchan)
{ {
struct xilinx_vdma_chan *chan = to_xilinx_chan(dchan);
/* Halt the DMA engine */ /* Halt the DMA engine */
xilinx_vdma_halt(chan); xilinx_vdma_halt(chan);
/* Remove and free all of the descriptors in the lists */ /* Remove and free all of the descriptors in the lists */
xilinx_vdma_free_descriptors(chan); xilinx_vdma_free_descriptors(chan);
return 0;
} }
/** /**
...@@ -1075,27 +1079,6 @@ int xilinx_vdma_channel_set_config(struct dma_chan *dchan, ...@@ -1075,27 +1079,6 @@ int xilinx_vdma_channel_set_config(struct dma_chan *dchan,
} }
EXPORT_SYMBOL(xilinx_vdma_channel_set_config); EXPORT_SYMBOL(xilinx_vdma_channel_set_config);
/**
* xilinx_vdma_device_control - Configure DMA channel of the device
* @dchan: DMA Channel pointer
* @cmd: DMA control command
* @arg: Channel configuration
*
* Return: '0' on success and failure value on error
*/
static int xilinx_vdma_device_control(struct dma_chan *dchan,
enum dma_ctrl_cmd cmd, unsigned long arg)
{
struct xilinx_vdma_chan *chan = to_xilinx_chan(dchan);
if (cmd != DMA_TERMINATE_ALL)
return -ENXIO;
xilinx_vdma_terminate_all(chan);
return 0;
}
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* Probe and remove * Probe and remove
*/ */
...@@ -1300,7 +1283,7 @@ static int xilinx_vdma_probe(struct platform_device *pdev) ...@@ -1300,7 +1283,7 @@ static int xilinx_vdma_probe(struct platform_device *pdev)
xilinx_vdma_free_chan_resources; xilinx_vdma_free_chan_resources;
xdev->common.device_prep_interleaved_dma = xdev->common.device_prep_interleaved_dma =
xilinx_vdma_dma_prep_interleaved; xilinx_vdma_dma_prep_interleaved;
xdev->common.device_control = xilinx_vdma_device_control; xdev->common.device_terminate_all = xilinx_vdma_terminate_all;
xdev->common.device_tx_status = xilinx_vdma_tx_status; xdev->common.device_tx_status = xilinx_vdma_tx_status;
xdev->common.device_issue_pending = xilinx_vdma_issue_pending; xdev->common.device_issue_pending = xilinx_vdma_issue_pending;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment