From ec6bfe447815dde1c03c3811745185b00bd98a24 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Thu, 20 Jun 2019 13:25:28 +0200 Subject: [PATCH 1/2] Sue Creek: fix a regression: restore original SSP clock frequencies Commit f5e78430ff3d ("cavs: ssp: generic ssp mclk configuration for cavs" made Sue Creek unstable, IPC communication with it would often fail. The reason for this is, that the Sue Creek uses the SSP clock as its platform clock. This patch restores the original values. Signed-off-by: Guennadi Liakhovetski --- src/platform/suecreek/include/platform/clk-map.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/platform/suecreek/include/platform/clk-map.h b/src/platform/suecreek/include/platform/clk-map.h index 68fe9c368e37..20c68861d5a4 100644 --- a/src/platform/suecreek/include/platform/clk-map.h +++ b/src/platform/suecreek/include/platform/clk-map.h @@ -19,8 +19,8 @@ static const struct freq_table cpu_freq[] = { * (regarding to .freq field) */ static const struct freq_table ssp_freq[] = { - { 38400000, 38400, CLOCK_SSP_XTAL_OSCILLATOR }, - { 96000000, 96000, CLOCK_SSP_PLL_FIXED }, + { 19200000, 19200, CLOCK_SSP_XTAL_OSCILLATOR }, + { 24000000, 24000, CLOCK_SSP_PLL_FIXED }, }; #endif From f30bcc225c640b2daf2dc88c170fcce2e822eaaf Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Thu, 20 Jun 2019 13:29:44 +0200 Subject: [PATCH 2/2] SSP: (cosmetic) remove "inline" Firstly, it is better to rely on the compiler to decide which functions to inline, except in some special cases. Secondly, functions called by reference, cannot be inlined. This patch removes "inline" from functions used as .set_config() methods. Signed-off-by: Guennadi Liakhovetski --- src/drivers/intel/baytrail/ssp.c | 4 ++-- src/drivers/intel/cavs/ssp.c | 4 ++-- src/drivers/intel/haswell/ssp.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/drivers/intel/baytrail/ssp.c b/src/drivers/intel/baytrail/ssp.c index bad5e8479968..1beca9153b92 100644 --- a/src/drivers/intel/baytrail/ssp.c +++ b/src/drivers/intel/baytrail/ssp.c @@ -86,8 +86,8 @@ static int ssp_context_restore(struct dai *dai) } /* Digital Audio interface formatting */ -static inline int ssp_set_config(struct dai *dai, - struct sof_ipc_dai_config *config) +static int ssp_set_config(struct dai *dai, + struct sof_ipc_dai_config *config) { struct ssp_pdata *ssp = dai_get_drvdata(dai); uint32_t sscr0; diff --git a/src/drivers/intel/cavs/ssp.c b/src/drivers/intel/cavs/ssp.c index 5fb0b82448f4..f199cbda94f5 100644 --- a/src/drivers/intel/cavs/ssp.c +++ b/src/drivers/intel/cavs/ssp.c @@ -106,8 +106,8 @@ static int ssp_context_restore(struct dai *dai) } /* Digital Audio interface formatting */ -static inline int ssp_set_config(struct dai *dai, - struct sof_ipc_dai_config *config) +static int ssp_set_config(struct dai *dai, + struct sof_ipc_dai_config *config) { struct ssp_pdata *ssp = dai_get_drvdata(dai); uint32_t sscr0; diff --git a/src/drivers/intel/haswell/ssp.c b/src/drivers/intel/haswell/ssp.c index 9b335e1807cf..cc0b4006f18f 100644 --- a/src/drivers/intel/haswell/ssp.c +++ b/src/drivers/intel/haswell/ssp.c @@ -48,8 +48,8 @@ static int ssp_context_restore(struct dai *dai) } /* Digital Audio interface formatting */ -static inline int ssp_set_config(struct dai *dai, - struct sof_ipc_dai_config *config) +static int ssp_set_config(struct dai *dai, + struct sof_ipc_dai_config *config) { struct ssp_pdata *ssp = dai_get_drvdata(dai); uint32_t sscr0;