Skip to content

Commit c8566db

Browse files
authored
Merge pull request #242 from bkokoszx/fix_dsp_a
Fix DSP_A mode
2 parents dc6014f + 10fcb20 commit c8566db

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

src/drivers/apl-ssp.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ static inline int ssp_set_config(struct dai *dai,
137137
uint32_t i2s_m;
138138
uint32_t i2s_n;
139139
uint32_t data_size;
140-
uint32_t start_delay = 0;
141140
uint32_t frame_end_padding;
142141
uint32_t slot_end_padding;
143142
uint32_t frame_len = 0;
@@ -150,6 +149,7 @@ static inline int ssp_set_config(struct dai *dai,
150149

151150
bool inverted_frame = false;
152151
bool cfs = false;
152+
bool start_delay = false;
153153
int ret = 0;
154154

155155
spin_lock(&ssp->lock);
@@ -437,7 +437,7 @@ static inline int ssp_set_config(struct dai *dai,
437437
switch (config->format & SOF_DAI_FMT_FORMAT_MASK) {
438438
case SOF_DAI_FMT_I2S:
439439

440-
start_delay = 1;
440+
start_delay = true;
441441

442442
sscr0 |= SSCR0_FRDC(config->ssp.tdm_slots);
443443

@@ -457,7 +457,6 @@ static inline int ssp_set_config(struct dai *dai,
457457
* so, we should set SFRMP to inverted_frame.
458458
*/
459459
sspsp |= SSPSP_SFRMP(inverted_frame);
460-
sspsp |= SSPSP_FSRT;
461460

462461
/*
463462
* for I2S/LEFT_J, the padding has to happen at the end
@@ -486,7 +485,7 @@ static inline int ssp_set_config(struct dai *dai,
486485

487486
case SOF_DAI_FMT_LEFT_J:
488487

489-
start_delay = 0;
488+
/* default start_delay value is set to false */
490489

491490
sscr0 |= SSCR0_FRDC(config->ssp.tdm_slots);
492491

@@ -536,14 +535,13 @@ static inline int ssp_set_config(struct dai *dai,
536535
break;
537536
case SOF_DAI_FMT_DSP_A:
538537

539-
start_delay = 1;
540-
sspsp |= SSPSP_FSRT;
538+
start_delay = true;
541539

542540
/* fallthrough */
543541

544542
case SOF_DAI_FMT_DSP_B:
545543

546-
/* default start_delay value is set to 0 */
544+
/* default start_delay value is set to false */
547545

548546
sscr0 |= SSCR0_MOD | SSCR0_FRDC(config->ssp.tdm_slots);
549547

@@ -609,7 +607,9 @@ static inline int ssp_set_config(struct dai *dai,
609607
goto out;
610608
}
611609

612-
sspsp |= SSPSP_STRTDLY(start_delay);
610+
if (start_delay)
611+
sspsp |= SSPSP_FSRT;
612+
613613
sspsp |= SSPSP_SFRMWDTH(frame_len);
614614

615615
data_size = config->ssp.sample_valid_bits;

0 commit comments

Comments
 (0)