From 9adf098740f4096f5bcab49b9e0e1eb10cff3a29 Mon Sep 17 00:00:00 2001 From: Pan Xiuli Date: Mon, 23 Jul 2018 17:52:18 +0800 Subject: [PATCH 1/2] apl: dmic: add dmic probe for 2 dmic dai Signed-off-by: Pan Xiuli --- src/platform/apollolake/include/platform/platform.h | 3 +++ src/platform/apollolake/platform.c | 13 +++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/platform/apollolake/include/platform/platform.h b/src/platform/apollolake/include/platform/platform.h index aa78732eb2e0..145821390618 100644 --- a/src/platform/apollolake/include/platform/platform.h +++ b/src/platform/apollolake/include/platform/platform.h @@ -115,6 +115,9 @@ struct sof; /* number of SSP ports in platform */ #define PLATFORM_NUM_SSP 6 +/* number of SSP ports in platform */ +#define PLATFORM_NUM_DMIC 2 + /* DSP default delay in cycles */ #define PLATFORM_DEFAULT_DELAY 12 diff --git a/src/platform/apollolake/platform.c b/src/platform/apollolake/platform.c index 684cc74ec3a4..e2d3e18cf3d8 100644 --- a/src/platform/apollolake/platform.c +++ b/src/platform/apollolake/platform.c @@ -197,7 +197,7 @@ static void platform_memory_windows_init(void) int platform_init(struct sof *sof) { struct dai *ssp; - struct dai *dmic0; + struct dai *dmic; int i, ret; platform_interrupt_init(); @@ -271,11 +271,12 @@ int platform_init(struct sof *sof) * supported max. those are available in platform are handled by dmic0. */ trace_point(TRACE_BOOT_PLATFORM_DMIC); - dmic0 = dai_get(SOF_DAI_INTEL_DMIC, 0); - if (!dmic0) - return -ENODEV; - - dai_probe(dmic0); + for (i = 0; i < PLATFORM_NUM_DMIC; i++) { + dmic = dai_get(SOF_DAI_INTEL_DMIC, i); + if (!dmic) + return -ENODEV; + dai_probe(dmic); + } /* Initialize DMA for Trace*/ dma_trace_init_complete(sof->dmat); From 1d2e5ee03649e042299e39feb02a7c118ebe2e50 Mon Sep 17 00:00:00 2001 From: Pan Xiuli Date: Mon, 23 Jul 2018 17:53:49 +0800 Subject: [PATCH 2/2] cnl: dmic : add dmic probe for all dmic dais Signed-off-by: Pan Xiuli --- .../cannonlake/include/platform/platform.h | 7 ++++++- src/platform/cannonlake/platform.c | 15 ++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/platform/cannonlake/include/platform/platform.h b/src/platform/cannonlake/include/platform/platform.h index 67566b26593e..d53d2d595339 100644 --- a/src/platform/cannonlake/include/platform/platform.h +++ b/src/platform/cannonlake/include/platform/platform.h @@ -44,7 +44,12 @@ struct sof; #define PLATFORM_WAITI_DELAY 1 -#define PLATFORM_SSP_COUNT 3 +/* number of SSP ports in platform */ +#define PLATFORM_NUM_SSP 3 + +/* number of SSP ports in platform */ +#define PLATFORM_NUM_DMIC 2 + #define MAX_GPDMA_COUNT 2 /* Host page size */ diff --git a/src/platform/cannonlake/platform.c b/src/platform/cannonlake/platform.c index 6e5a020e4f70..83019fe7ae0a 100644 --- a/src/platform/cannonlake/platform.c +++ b/src/platform/cannonlake/platform.c @@ -219,7 +219,7 @@ static struct timer platform_ext_timer = { int platform_init(struct sof *sof) { struct dai *ssp; - struct dai *dmic0; + struct dai *dmic; int i, ret; trace_point(TRACE_BOOT_PLATFORM_ENTRY); @@ -276,7 +276,7 @@ int platform_init(struct sof *sof) /* init SSP ports */ trace_point(TRACE_BOOT_PLATFORM_SSP); - for(i = 0; i < PLATFORM_SSP_COUNT; i++) { + for (i = 0; i < PLATFORM_NUM_SSP; i++) { ssp = dai_get(SOF_DAI_INTEL_SSP, i); if (ssp == NULL) return -ENODEV; @@ -287,11 +287,12 @@ int platform_init(struct sof *sof) * supported max. those are available in platform are handled by dmic0. */ trace_point(TRACE_BOOT_PLATFORM_DMIC); - dmic0 = dai_get(SOF_DAI_INTEL_DMIC, 0); - if (!dmic0) - return -ENODEV; - - dai_probe(dmic0); + for (i = 0; i < PLATFORM_NUM_DMIC; i++) { + dmic = dai_get(SOF_DAI_INTEL_DMIC, i); + if (!dmic) + return -ENODEV; + dai_probe(dmic); + } /* Initialize DMA for Trace*/ dma_trace_init_complete(sof->dmat);