]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ASoC: codecs: wcd9335: Fix missing free of regulator supplies
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 26 May 2025 09:47:01 +0000 (11:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 6 Jul 2025 09:00:09 +0000 (11:00 +0200)
commit9830ef1803a5bc50b4a984a06cf23142cd46229d
tree0f4d00cb7aaded5afe7a2979768bfe52e76dce25
parent28b6ef1ab65da4f585ff370a0c24d3603c4761a7
ASoC: codecs: wcd9335: Fix missing free of regulator supplies

[ Upstream commit 9079db287fc3e38e040b0edeb0a25770bb679c8e ]

Driver gets and enables all regulator supplies in probe path
(wcd9335_parse_dt() and wcd9335_power_on_reset()), but does not cleanup
in final error paths and in unbind (missing remove() callback).  This
leads to leaked memory and unbalanced regulator enable count during
probe errors or unbind.

Fix this by converting entire code into devm_regulator_bulk_get_enable()
which also greatly simplifies the code.

Fixes: 20aedafdf492 ("ASoC: wcd9335: add support to wcd9335 codec")
Cc: stable@vger.kernel.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20250526-b4-b4-asoc-wcd9395-vdd-px-fixes-v1-1-0b8a2993b7d3@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/wcd9335.c