[Sound-open-firmware] [PATCH] CONFIG_DMA_GW is defined for CNL, but host and link DMAs initialization is missing

Liam Girdwood liam.r.girdwood at linux.intel.com
Tue Feb 20 11:59:22 CET 2018


On Tue, 2018-02-20 at 11:24 +0100, Tomasz Lauda wrote:

Subject should be like "cnl: Add host and link DMA init."

And then the commit message can mention the CONFIG setting etc

> Signed-off-by: Tomasz Lauda <tomasz.lauda at linux.intel.com>
> ---
>  src/platform/cannonlake/dma.c      | 13 +++++++++----
>  src/platform/cannonlake/platform.c | 15 +++++++++++++++
>  2 files changed, 24 insertions(+), 4 deletions(-)
> 
> diff --git a/src/platform/cannonlake/dma.c
> b/src/platform/cannonlake/dma.c
> index beac6cf..a47ce9f 100644
> --- a/src/platform/cannonlake/dma.c
> +++ b/src/platform/cannonlake/dma.c
> @@ -32,6 +32,7 @@
>  
>  #include <reef/dma.h>
>  #include <reef/dw-dma.h>
> +#include <reef/hd-dma.h>
>  #include <platform/memory.h>
>  #include <platform/interrupt.h>
>  #include <platform/dma.h>
> @@ -133,33 +134,37 @@ static struct dma dma[] = {
>  	.plat_data = {
>  		.id		= DMA_HOST_IN_DMAC,
>  		.base		= GTW_HOST_IN_STREAM_BASE(0),
> -		.channels	= 7,
> +		.channels	= 9,
>  		.irq = IRQ_EXT_HOST_DMA_IN_LVL3(0, 0),
>  	},
> +	.ops		= &hda_host_dma_ops,
>  },
>  {	/* Host out DMAC */
>  	.plat_data = {
>  		.id		= DMA_HOST_OUT_DMAC,
>  		.base		= GTW_HOST_OUT_STREAM_BASE(0),
> -		.channels	= 6,
> +		.channels	= 7,
>  		.irq = IRQ_EXT_HOST_DMA_OUT_LVL3(0, 0),
>  	},
> +	.ops		= &hda_host_dma_ops,
>  },
>  {	/* Link In DMAC */
>  	.plat_data = {
>  		.id		= DMA_LINK_IN_DMAC,
>  		.base		= GTW_LINK_IN_STREAM_BASE(0),
> -		.channels	= 8,
> +		.channels	= 9,
>  		.irq = IRQ_EXT_LINK_DMA_IN_LVL4(0, 0),
>  	},
> +	.ops		= &hda_link_dma_ops,
>  },
>  {	/* Link out DMAC */
>  	.plat_data = {
>  		.id		= DMA_LINK_OUT_DMAC,
>  		.base		= GTW_LINK_OUT_STREAM_BASE(0),
> -		.channels	= 8,
> +		.channels	= 7,
>  		.irq = IRQ_EXT_LINK_DMA_OUT_LVL4(0, 0),
>  	},
> +	.ops		= &hda_link_dma_ops,
>  },};
>  
>  struct dma *dma_get(int dmac_id)
> diff --git a/src/platform/cannonlake/platform.c
> b/src/platform/cannonlake/platform.c
> index f387109..1a9b88a 100644
> --- a/src/platform/cannonlake/platform.c
> +++ b/src/platform/cannonlake/platform.c
> @@ -253,6 +253,21 @@ int platform_init(struct reef *reef)
>  		return -ENODEV;
>  	dma_probe(dmac);
>  
> +	dmac = dma_get(DMA_GP_LP_DMAC1);
> +	if (!dmac)
> +		return -ENODEV;
> +	dma_probe(dmac);
> +
> +	dmac = dma_get(DMA_HOST_OUT_DMAC);
> +	if (!dmac)
> +		return -ENODEV;
> +	dma_probe(dmac);
> +
> +	dmac = dma_get(DMA_HOST_IN_DMAC);
> +	if (!dmac)
> +		return -ENODEV;
> +	dma_probe(dmac);
> +
>  	/* init SSP ports */
>  	trace_point(TRACE_BOOT_PLATFORM_SSP);
>  	for(i = 0; i < PLATFORM_SSP_COUNT; i++) {


More information about the Sound-open-firmware mailing list