ASoC: cs35l56: Don't leave parent IRQ disabled if system_suspend fails

In cs35l56_system_suspend() re-enable the parent IRQ if the call to
pm_runtime_force_suspend() returns an error.

Fixes: f9dc6b875e ("ASoC: cs35l56: Add basic system suspend handling")
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20260610105556.612830-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Richard Fitzgerald 2026-06-10 11:55:56 +01:00 committed by Mark Brown
parent cc51ca3eff
commit 53cebeb017
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -1524,6 +1524,7 @@ static int __maybe_unused cs35l56_runtime_resume_i2c_spi(struct device *dev)
int cs35l56_system_suspend(struct device *dev)
{
struct cs35l56_private *cs35l56 = dev_get_drvdata(dev);
int ret;
dev_dbg(dev, "system_suspend\n");
@ -1539,7 +1540,11 @@ int cs35l56_system_suspend(struct device *dev)
if (cs35l56->base.irq)
disable_irq(cs35l56->base.irq);
return pm_runtime_force_suspend(dev);
ret = pm_runtime_force_suspend(dev);
if ((ret < 0) && cs35l56->base.irq)
enable_irq(cs35l56->base.irq);
return ret;
}
EXPORT_SYMBOL_GPL(cs35l56_system_suspend);