[Sound-open-firmware] [RFC PATCH 6/6] apl-ssp: fix SSCR1_SFRMDIR

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Wed Jul 18 04:24:31 CEST 2018


This bitfield indicates the codec is frame master (CFM), set it as
needed. The existing code could only deal with the SoC frame master
(CFS)

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
---
 src/drivers/apl-ssp.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/drivers/apl-ssp.c b/src/drivers/apl-ssp.c
index fdd40bd..c9f8a7c 100644
--- a/src/drivers/apl-ssp.c
+++ b/src/drivers/apl-ssp.c
@@ -206,13 +206,11 @@ static inline int ssp_set_config(struct dai *dai,
 	/* ssrsa dynamic setting is RTSA, default 2 slots */
 	ssrsa = config->ssp.rx_slots;
 
-	/* clock masters */
-	sscr1 &= ~SSCR1_SFRMDIR;
-
 	trace_value(config->format);
 	switch (config->format & SOF_DAI_FMT_MASTER_MASK) {
 	case SOF_DAI_FMT_CBM_CFM:
 		sscr1 |= SSCR1_SCLKDIR;
+		sscr1 |= SSCR1_SFRMDIR;
 		/*
 		 * FIXME: does SSRC1.SCFR need to be set
 		 * when codec is master ?
@@ -231,6 +229,7 @@ static inline int ssp_set_config(struct dai *dai,
 		break;
 	case SOF_DAI_FMT_CBS_CFM:
 		ssioc |= SSIOC_SCOE;
+		sscr1 |= SSCR1_SFRMDIR;
 		/* FIXME: this mode has not been tested */
 		break;
 	default:
-- 
2.14.1



More information about the Sound-open-firmware mailing list