]> 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 08:57:57 +0000 (10:57 +0200)
commitedadaf4239c14dc8a19ea7f60b97d5524d93c29b
tree52e5328b1aab33c690d68e9d8f6d4a33f7fb742e
parent017ad3a6e513c3fff308010a247e1c508d1bc504
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