blob: 62d6b38022eccc96d9a39e8f997a87c374fcaea4 [file] [log] [blame]
From 35121b191493a62ea69102786bbb8294f1698ec5 Mon Sep 17 00:00:00 2001
From: Robin Murphy <>
Date: Wed, 2 Oct 2019 16:30:37 +0100
Subject: [PATCH] ASoc: rockchip: i2s: Fix RPM imbalance
commit b1e620e7d32f5aad5353cc3cfc13ed99fea65d3a upstream.
If rockchip_pcm_platform_register() fails, e.g. upon deferring to wait
for an absent DMA channel, we return without disabling RPM, which makes
subsequent re-probe attempts scream with errors about the unbalanced
enable. Don't do that.
Fixes: ebb75c0bdba2 ("ASoC: rockchip: i2s: Adjust devm usage")
Signed-off-by: Robin Murphy <>
Signed-off-by: Mark Brown <>
Signed-off-by: Paul Gortmaker <>
diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c
index 88ebaf6e1880..a0506e554c98 100644
--- a/sound/soc/rockchip/rockchip_i2s.c
+++ b/sound/soc/rockchip/rockchip_i2s.c
@@ -674,7 +674,7 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
ret = rockchip_pcm_platform_register(&pdev->dev);
if (ret) {
dev_err(&pdev->dev, "Could not register PCM\n");
- return ret;
+ goto err_suspend;
return 0;