[Sound-open-firmware] [PATCH] SSP: refine ssp config function
(1)Remove unused code (2)Refine comments (3)Refine master & slave mode setting (4)Refine Frame polarity setting
Signed-off-by: Rander Wang rander.wang@linux.intel.com
--- test it on Broadwell, no need to test other platforms
SOF: master 131a1887631621 kernel: v4.14 d09db67c5a9d6d SOF-tools: master 13b56fa6047c566a --- src/drivers/hsw-ssp.c | 45 +++++++++++++-------------------------------- 1 file changed, 13 insertions(+), 32 deletions(-)
diff --git a/src/drivers/hsw-ssp.c b/src/drivers/hsw-ssp.c index a68898e..8e30900 100644 --- a/src/drivers/hsw-ssp.c +++ b/src/drivers/hsw-ssp.c @@ -111,26 +111,16 @@ static inline int ssp_set_config(struct dai *dai,
/* reset SSP settings */ /* sscr0 dynamic settings are DSS, EDSS, SCR, FRDC, ECS */ - sscr0 = SSCR0_MOD | SSCR0_PSP;
- /* - * FIXME: PINTE and RWOT are not set in sscr1 - * sscr1 = SSCR1_PINTE | SSCR1_RWOT; - */ - /* sscr1 dynamic settings are TFT, RFT, SFRMDIR, SCLKDIR, SCFR */ sscr1 = SSCR1_TTE | SSCR1_TTELP;
-#ifdef ENABLE_TIE_RIE /* FIXME: not enabled, difference with SST driver */ - //sscr1 |= SSCR1_TIE | SSCR1_RIE; -#endif - - // FIXME COE does this ? + /* enable Transmit underrun mode 1 */ sscr2 = SSCR2_TURM1;
/* sspsp dynamic settings are SCMODE, SFRMP, DMYSTRT, SFRMWDTH */ - sspsp = SSPSP_ETDS; /* make sure SDO line is tri-stated when inactive */ + sspsp = 0x0;
/* sspsp2 no dynamic setting */ sspsp2 = 0x0; @@ -138,33 +128,24 @@ static inline int ssp_set_config(struct dai *dai, ssp->config = *config; ssp->params = config->ssp;
- /* clock masters */ - /* - * On TNG/BYT/CHT, the SSP wrapper generates the fs even in master mode, - * the master/slave choice depends on the clock type - */ - sscr1 |= SSCR1_SFRMDIR; - switch (config->format & SOF_DAI_FMT_MASTER_MASK) { case SOF_DAI_FMT_CBM_CFM: - //sscr0 |= SSCR0_ECS; /* external clock used */ - sscr1 |= SSCR1_SCLKDIR; - - break; - case SOF_DAI_FMT_CBS_CFS: -#ifdef ENABLE_SSRCR1_SCFR /* FIXME: is this needed ? */ + sscr1 |= SSCR1_SCLKDIR | SSCR1_SFRMDIR; +#ifdef ENABLE_SSRCR1_SCFR sscr1 |= SSCR1_SCFR; #endif break; + case SOF_DAI_FMT_CBS_CFS: + break; case SOF_DAI_FMT_CBM_CFS: - sscr0 |= SSCR0_ECS; /* external clock used */ sscr1 |= SSCR1_SCLKDIR; - break; - case SOF_DAI_FMT_CBS_CFM: -#ifdef ENABLE_SSRCR1_SCFR /* FIXME: is this needed ? */ +#ifdef ENABLE_SSRCR1_SCFR sscr1 |= SSCR1_SCFR; #endif break; + case SOF_DAI_FMT_CBS_CFM: + sscr1 |= SSCR1_SFRMDIR; + break; default: trace_ssp_error("ec2"); ret = -EINVAL; @@ -346,7 +327,7 @@ static inline int ssp_set_config(struct dai *dai, frame_len = 1;
/* handle frame polarity, DSP_A default is rising/active high */ - sspsp |= SSPSP_SFRMP(inverted_frame); + sspsp |= SSPSP_SFRMP(!inverted_frame); sspsp2 |= (frame_end_padding & SSPSP2_FEP_MASK);
break; @@ -359,8 +340,8 @@ static inline int ssp_set_config(struct dai *dai, /* set asserted frame length */ frame_len = 1;
- /* handle frame polarity, DSP_A default is rising/active high */ - sspsp |= SSPSP_SFRMP(inverted_frame); + /* handle frame polarity, DSP_B default is rising/active high */ + sspsp |= SSPSP_SFRMP(!inverted_frame); sspsp2 |= (frame_end_padding & SSPSP2_FEP_MASK);
break;
On Tue, 2018-06-05 at 13:31 +0800, Rander Wang wrote:
(1)Remove unused code (2)Refine comments (3)Refine master & slave mode setting (4)Refine Frame polarity setting
Signed-off-by: Rander Wang rander.wang@linux.intel.com
Both applied.
Thanks
Liam
On 6/5/18 4:40 AM, Liam Girdwood wrote:
On Tue, 2018-06-05 at 13:31 +0800, Rander Wang wrote:
(1)Remove unused code (2)Refine comments (3)Refine master & slave mode setting (4)Refine Frame polarity setting
Signed-off-by: Rander Wang rander.wang@linux.intel.com
Both applied.
was the code pushed? I don't see it in git and I had some concerns on slave mode i wanted to check with the full file.
On Tue, 2018-06-05 at 07:23 -0500, Pierre-Louis Bossart wrote:
On 6/5/18 4:40 AM, Liam Girdwood wrote:
On Tue, 2018-06-05 at 13:31 +0800, Rander Wang wrote:
(1)Remove unused code (2)Refine comments (3)Refine master & slave mode setting (4)Refine Frame polarity setting
Signed-off-by: Rander Wang rander.wang@linux.intel.com
Both applied.
was the code pushed? I don't see it in git and I had some concerns on slave mode i wanted to check with the full file. _______________________________________________
Pushed about 5 mins ago, can you try and see if it's visible now ?
Liam
On 6/5/18 7:27 AM, Liam Girdwood wrote:
On Tue, 2018-06-05 at 07:23 -0500, Pierre-Louis Bossart wrote:
On 6/5/18 4:40 AM, Liam Girdwood wrote:
On Tue, 2018-06-05 at 13:31 +0800, Rander Wang wrote:
(1)Remove unused code (2)Refine comments (3)Refine master & slave mode setting (4)Refine Frame polarity setting
Signed-off-by: Rander Wang rander.wang@linux.intel.com
Both applied.
was the code pushed? I don't see it in git and I had some concerns on slave mode i wanted to check with the full file. _______________________________________________
Pushed about 5 mins ago, can you try and see if it's visible now ?
yep, thanks!
participants (3)
-
Liam Girdwood
-
Pierre-Louis Bossart
-
Rander Wang