Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dcabe456 authored by Maxime Ripard's avatar Maxime Ripard Committed by Vinod Koul
Browse files

dmaengine: pl330: Declare slave capabilities for the generic code



Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 7d15b87d
Loading
Loading
Loading
Loading
+4 −14
Original line number Original line Diff line number Diff line
@@ -2608,19 +2608,6 @@ static irqreturn_t pl330_irq_handler(int irq, void *data)
	BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) | \
	BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) | \
	BIT(DMA_SLAVE_BUSWIDTH_8_BYTES)
	BIT(DMA_SLAVE_BUSWIDTH_8_BYTES)


static int pl330_dma_device_slave_caps(struct dma_chan *dchan,
	struct dma_slave_caps *caps)
{
	caps->src_addr_widths = PL330_DMA_BUSWIDTHS;
	caps->dst_addr_widths = PL330_DMA_BUSWIDTHS;
	caps->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
	caps->cmd_pause = false;
	caps->cmd_terminate = true;
	caps->residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;

	return 0;
}

/*
/*
 * Runtime PM callbacks are provided by amba/bus.c driver.
 * Runtime PM callbacks are provided by amba/bus.c driver.
 *
 *
@@ -2781,7 +2768,10 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
	pd->device_config = pl330_config;
	pd->device_config = pl330_config;
	pd->device_terminate_all = pl330_terminate_all;
	pd->device_terminate_all = pl330_terminate_all;
	pd->device_issue_pending = pl330_issue_pending;
	pd->device_issue_pending = pl330_issue_pending;
	pd->device_slave_caps = pl330_dma_device_slave_caps;
	pd->src_addr_widths = PL330_DMA_BUSWIDTHS;
	pd->dst_addr_widths = PL330_DMA_BUSWIDTHS;
	pd->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
	pd->residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;


	ret = dma_async_device_register(pd);
	ret = dma_async_device_register(pd);
	if (ret) {
	if (ret) {