From: Krzysztof Kozlowski Date: Thu, 23 Oct 2025 09:02:51 +0000 (+0200) Subject: ASoC: codecs: pm4125: Remove irq_chip on component unbind X-Git-Tag: v6.19-rc1~156^2~3^2~45^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e65b871c9b5af9265aefc5b8cd34993586d93aab;p=thirdparty%2Fkernel%2Flinux.git ASoC: codecs: pm4125: Remove irq_chip on component unbind Component bind uses devm_regmap_add_irq_chip() to add IRQ chip, so it will be removed only during driver unbind, not component unbind. A component unbind-bind cycle for the same Linux device lifetime would result in two chips added. Fix this by manually removing the IRQ chip during component unbind. Fixes: 8ad529484937 ("ASoC: codecs: add new pm4125 audio codec driver") Cc: stable@vger.kernel.org Signed-off-by: Krzysztof Kozlowski Link: https://patch.msgid.link/20251023-asoc-regmap-irq-chip-v1-2-17ad32680913@linaro.org Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/pm4125.c b/sound/soc/codecs/pm4125.c index 0d4223335e67b..6f18523771fe2 100644 --- a/sound/soc/codecs/pm4125.c +++ b/sound/soc/codecs/pm4125.c @@ -1610,6 +1610,8 @@ static void pm4125_unbind(struct device *dev) struct pm4125_priv *pm4125 = dev_get_drvdata(dev); snd_soc_unregister_component(dev); + devm_regmap_del_irq_chip(dev, irq_find_mapping(pm4125->virq, 0), + pm4125->irq_chip); device_link_remove(dev, pm4125->txdev); device_link_remove(dev, pm4125->rxdev); device_link_remove(pm4125->rxdev, pm4125->txdev);