Skip to content

Commit 149aa21

Browse files
brentlujohnylin76
authored andcommitted
intel: ssp: check mclk always-on quirk in ssp_remove
Dynamic pipeline breaks mclk always-on feature by freeing dai component in HW_FREE stage; the ssp_remove() will be called and disables mclk unconditionally. Signed-off-by: Brent Lu <brent.lu@intel.com> (cherry picked from commit 6dc474c) (cherry picked from commit d5e3c70)
1 parent d2d85c2 commit 149aa21

File tree

1 file changed

+10
-1
lines changed
  • src/drivers/intel/ssp

1 file changed

+10
-1
lines changed

src/drivers/intel/ssp/ssp.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1108,9 +1108,18 @@ static int ssp_probe(struct dai *dai)
11081108

11091109
static int ssp_remove(struct dai *dai)
11101110
{
1111+
struct ssp_pdata *ssp = dai_get_drvdata(dai);
1112+
11111113
pm_runtime_put_sync(SSP_CLK, dai->index);
11121114

1113-
ssp_mclk_disable_unprepare(dai);
1115+
/*
1116+
* dai comp will be freed during HW_FREE stage if dynamic pipeline is
1117+
* enabled; need to check the MCLK_AON quirk to see if we need to keep
1118+
* MCLK on even when dai comp is going to be freed
1119+
*/
1120+
if (!(ssp->params.clks_control & SOF_DAI_INTEL_SSP_CLKCTRL_MCLK_AON))
1121+
ssp_mclk_disable_unprepare(dai);
1122+
11141123
ssp_bclk_disable_unprepare(dai);
11151124

11161125
/* Disable SSP power */

0 commit comments

Comments
 (0)