[alsa-devel] [PATCH V3 2/2] ASoC: fsl_asrc: Add support for imx8qm
Nicolin Chen
nicoleotsuka at gmail.com
Wed Nov 13 22:27:44 CET 2019
On Mon, Nov 11, 2019 at 05:18:23PM +0800, Shengjiu Wang wrote:
> There are two asrc module in imx8qm, each module has different
> clock configuration, and the DMA type is EDMA.
>
> So in this patch, we define the new clocks, refine the clock map,
> and include struct fsl_asrc_soc_data for different soc usage.
>
> The EDMA channel is fixed with each dma request, one dma request
> corresponding to one dma channel. So we need to request dma
> channel with dma request of asrc module.
>
> Signed-off-by: Shengjiu Wang <shengjiu.wang at nxp.com>
Two small comments inline. Once they are addressed,
Acked-by: Nicolin Chen <nicoleotsuka at gmail.com>
> ---
> changes in v2
> - use !use_edma to wrap code in fsl_asrc_dma
> - add Acked-by: Nicolin Chen
>
> changes in v3
> - remove the acked-by for commit is updated
> - read "fsl,asrc-clk-map" property, and update table
> clk_map_imx8qm.
>
> sound/soc/fsl/fsl_asrc.c | 112 ++++++++++++++++++++++++++++-------
> sound/soc/fsl/fsl_asrc.h | 64 +++++++++++++++++++-
> sound/soc/fsl/fsl_asrc_dma.c | 42 +++++++++----
> 3 files changed, 183 insertions(+), 35 deletions(-)
>
> diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
> index a3cfceea7d2f..03de33de8633 100644
> --- a/sound/soc/fsl/fsl_asrc.c
> +++ b/sound/soc/fsl/fsl_asrc.c
> @@ -964,14 +1001,33 @@ static int fsl_asrc_probe(struct platform_device *pdev)
> + } else if (of_device_is_compatible(np, "fsl,imx8qm-asrc")) {
> + ret = of_property_read_u32(np, "fsl,asrc-clk-map",
> + &map_idx);
This seems to fit a single line?
> diff --git a/sound/soc/fsl/fsl_asrc_dma.c b/sound/soc/fsl/fsl_asrc_dma.c
> index d6146de9acd2..f871fdb9d1c6 100644
> --- a/sound/soc/fsl/fsl_asrc_dma.c
> +++ b/sound/soc/fsl/fsl_asrc_dma.c
> @@ -197,21 +197,37 @@ static int fsl_asrc_dma_hw_params(struct snd_soc_component *component,
> + /*
> + * For EDMA DEV_TO_DEV channel, we don't need to configure
> + * dma_request and dma_request2, we can get dma channel through
> + * dma_request_slave_channel directly.
> + * Compare with SDMA channel, EDMA channel is bound with dma
> + * request event of each peripheral, and it is fixed. Not like SDMA,
> + * the channel is allocated dynamically. So when DMA is EDMA, we
> + * can only get EDMA channel through dma-names of Front-End device.
> + */
Just trying to make it concise :)
+ /*
+ * An EDMA DEV_TO_DEV channel is fixed and bound with DMA event of each
+ * peripheral, unlike SDMA channel that is allocated dynamically. So no
+ * need to configure dma_request and dma_request2, but get dma_chan via
+ * dma_request_slave_channel directly with dma name of Front-End device
+ */
More information about the Alsa-devel
mailing list