Skip to content

Commit 1198c7e

Browse files
singalsuaescolar
authored andcommitted
Drivers: DAI: Intel: Move ACE DMIC start reset clear to earlier
The unreset of ACE PDM controllers is moved to beginning of void dai_dmic_start() and done side-by-side. This change is done for adhering to recommended hardware initialization flow to avoid intermittent failures on ARL-S. Signed-off-by: Seppo Ingalsuo <[email protected]>
1 parent 78920e8 commit 1198c7e

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

drivers/dai/intel/dmic/dmic.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,12 @@ static void dai_dmic_start(struct dai_intel_dmic *dmic)
553553

554554
/* enable port */
555555
key = k_spin_lock(&dmic->lock);
556+
557+
#ifdef CONFIG_SOC_SERIES_INTEL_ADSP_ACE
558+
for (i = 0; i < CONFIG_DAI_DMIC_HW_CONTROLLERS; i++)
559+
dai_dmic_update_bits(dmic, dmic_base[i] + CIC_CONTROL, CIC_CONTROL_SOFT_RESET, 0);
560+
#endif
561+
556562
dmic->startcount = 0;
557563

558564
/* Compute unmute ramp gain update coefficient. */
@@ -566,11 +572,6 @@ static void dai_dmic_start(struct dai_intel_dmic *dmic)
566572
dai_dmic_start_fifo_packers(dmic, dmic->dai_config_params.dai_index);
567573

568574
for (i = 0; i < CONFIG_DAI_DMIC_HW_CONTROLLERS; i++) {
569-
#ifdef CONFIG_SOC_SERIES_INTEL_ADSP_ACE
570-
dai_dmic_update_bits(dmic, dmic_base[i] + CIC_CONTROL,
571-
CIC_CONTROL_SOFT_RESET, 0);
572-
#endif
573-
574575
mic_a = dmic->enable[i] & 1;
575576
mic_b = (dmic->enable[i] & 2) >> 1;
576577
start_fir = dmic->enable[i] > 0;

0 commit comments

Comments
 (0)