Commit 7a8735c1 authored by Shuming Fan's avatar Shuming Fan Committed by Mark Brown

ASoC: rt712-sdca: fix for JD event handling in ClockStop Mode0

When the system suspends, peripheral SDCA interrupts are disabled.
When system level resume is invoked, the peripheral SDCA interrupts
should be enabled to handle JD events.
Enable SDCA interrupts in resume sequence when ClockStop Mode0 is applied.
Signed-off-by: default avatarShuming Fan <shumingf@realtek.com>
Reported-by: default avatarVijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://lore.kernel.org/r/20230721090721.128264-1-shumingf@realtek.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent d20d35d1
...@@ -438,8 +438,16 @@ static int __maybe_unused rt712_sdca_dev_resume(struct device *dev) ...@@ -438,8 +438,16 @@ static int __maybe_unused rt712_sdca_dev_resume(struct device *dev)
if (!rt712->first_hw_init) if (!rt712->first_hw_init)
return 0; return 0;
if (!slave->unattach_request) if (!slave->unattach_request) {
if (rt712->disable_irq == true) {
mutex_lock(&rt712->disable_irq_lock);
sdw_write_no_pm(slave, SDW_SCP_SDCA_INTMASK1, SDW_SCP_SDCA_INTMASK_SDCA_0);
sdw_write_no_pm(slave, SDW_SCP_SDCA_INTMASK2, SDW_SCP_SDCA_INTMASK_SDCA_8);
rt712->disable_irq = false;
mutex_unlock(&rt712->disable_irq_lock);
}
goto regmap_sync; goto regmap_sync;
}
time = wait_for_completion_timeout(&slave->initialization_complete, time = wait_for_completion_timeout(&slave->initialization_complete,
msecs_to_jiffies(RT712_PROBE_TIMEOUT)); msecs_to_jiffies(RT712_PROBE_TIMEOUT));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment