[Patch v2 1/2] dmaengine: Add ADM driver

Pramod Gurav pramod.gurav at smartplayin.com
Fri Jan 30 03:47:51 PST 2015


Hi Andy,
A minor doubt.

On Thursday 08 January 2015 08:56 AM, Andy Gross wrote:
> Signed-off-by: Andy Gross <agross at codeaurora.org>
> ---
>  drivers/dma/Kconfig    |   10 +
>  drivers/dma/Makefile   |    1 +
>  drivers/dma/qcom_adm.c |  899 ++++++++++++++++++++++++++++++++++++++++++++++++

<snip>

> +
> +	return ret;
> +}
> +
> +static struct dma_chan *adm_dma_xlate(struct of_phandle_args *dma_spec,
> +	struct of_dma *of)
> +{
> +	struct adm_device *adev = container_of(of->of_dma_data,
> +			struct adm_device, common);
> +	struct adm_chan *achan;
I don't see achan being used anywhere in this function? apart from below.
> +	struct dma_chan *chan;
> +	unsigned int request;
> +
> +	if (dma_spec->args_count != 1) {
> +		dev_err(adev->dev, "incorrect number of dma arguments\n");
> +		return NULL;
> +	}
> +
> +	request = dma_spec->args[0];
> +	if (request >= adev->num_channels)
> +		return NULL;
> +
> +	chan = dma_get_slave_channel(&(adev->channels[request].vc.chan));
> +
> +	if (!chan)
> +		return NULL;
> +
> +	achan = to_adm_chan(chan);
Could not understand the use of achan here. unused code?

> +
> +	return chan;
> +}
> +
> +/**
> + * adm_issue_pending - starts pending transactions
> + * @chan: dma channel

<snip>

> +module_platform_driver(adm_dma_driver);
> +
> +MODULE_AUTHOR("Andy Gross <agross at codeaurora.org>");
> +MODULE_DESCRIPTION("QCOM ADM DMA engine driver");
> +MODULE_LICENSE("GPL v2");
> 



More information about the linux-arm-kernel mailing list