12 Nov
2013
12 Nov
'13
6:02 a.m.
On Mon, Oct 28, 2013 at 05:58:42AM +0000, Xiubo Li-B47053 wrote:
Hi Dan, Vinod,
+static int fsl_sai_probe(struct platform_device *pdev) {
[...]
- sai->dma_params_rx.addr = res->start + SAI_RDR;
- sai->dma_params_rx.maxburst = 6;
- index = of_property_match_string(np, "dma-names", "rx");
- ret = of_parse_phandle_with_args(np, "dmas", "#dma-cells", index,
&dma_args);
- if (ret)
return ret;
- sai->dma_params_rx.slave_id = dma_args.args[1];
- sai->dma_params_tx.addr = res->start + SAI_TDR;
- sai->dma_params_tx.maxburst = 6;
- index = of_property_match_string(np, "dma-names", "tx");
- ret = of_parse_phandle_with_args(np, "dmas", "#dma-cells", index,
&dma_args);
- if (ret)
return ret;
- sai->dma_params_tx.slave_id = dma_args.args[1];
The driver should not have to manually parse the dma devicetree properties, this is something that should be handled by the dma engine driver.
What do you think about the DMA slave_id ? I have been noticed by one colleague that this should be parsed here, which is from your opinions ?
Sure slave_id can be parsed here, but IMO it should be programmed via the dma_slave_confog into the respective channel
-- ~Vinod
- ret = snd_soc_register_component(&pdev->dev, &fsl_component,
&fsl_sai_dai, 1);
- if (ret)
return ret;
- ret = fsl_pcm_dma_init(pdev);
- if (ret)
goto out;
--