From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D19B3AE6FA for ; Fri, 21 Aug 2026 12:30:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787315449; cv=none; b=key9BOj4ok2o5M64zb7DBBFtgl/HEOCoCa61492ZUjdWYpongxJVGTAkNeI3eiqe2iGr7uXg7mu1Wczwqm1pOOQMpPKOwA9hykcKH8tjVYggeCEcpNTa8DYLEg0ozoyKrqeG3C3Gg+djTd+3f4FaVKyzxMVpv3oL+ERi1tJRz7E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787315449; c=relaxed/simple; bh=iXxLVjwMkWoyJknyoROrRBROEAewERLInffB9+kF+Aw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DvuEth40ToCWipKbmER75R7mYLXRAAEeY2FHBkICVt/zQsBzZkpSecBEwJtkPj+Okv68IYLhlQMTUxmCYgJtAacB4zEDaoLlsmaw3Pb6VCfFBSMES8XJBwI8+49c/CimH1DdpwcEr8jETR1Tfpi/A3f1mZ6ecTqtz7N3bjq+6WY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=pjuEzdpt; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pjuEzdpt" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2d5655cc850so11467135ad.3 for ; Fri, 21 Aug 2026 05:30:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787315447; x=1787920247; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=aYYHob6Ydur3f5fIO7z1CwtF7crP/M+VG3L/vmLd3WI=; b=pjuEzdptT0HJrEBgV8HAO0l6lg3UDvGXzLK5dS3uGSp41NlGjfryRSzV6DnAoMsAMz j7T8/EFqjfx3cu9NaNUBLkA8MIqEAVzQnkrjUJ90NKEGBLsVMmXG+6a4AhEBBJ3u6iQT 4fedV8kWQIoOCSlLHXXeU0w3YA24xB09qyEV0tzGfdNViA4qBU2IdaRZaNGHeiNigG15 RXC9dMRLl9hGo4XH3zKUfc+NosWoANNYy45cHJOv6jxBr/Q0eksWUl6lU31hPxHA9qIY 6nRfYALzrm00SvyS2j/TnTPrDNfuE9zs1aqE/hwgFRV/EprqxRKMnm1U0kad0ZW2hJ4o N9SA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787315447; x=1787920247; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=aYYHob6Ydur3f5fIO7z1CwtF7crP/M+VG3L/vmLd3WI=; b=JoKA/MbVoBhOoPEBOkDkzv0VhKC4BsWrilst0DJ3Nj9sOBqFnKs/9nXuJ9tVhP0nCB t7VaIgDOw414WA8pAsC6iJI3VJ5nvJYC1tG5HdeV6j9aBomyFsj0v8GPrWIEkw3HFstj cjO/uXhZq3wW0I1x8L+6YByzQl6Uc1FDtg8J7G2Ag8cfVyGUz/ILY1jkkNmGkpNokPaE Gu1OrmO3TUB5aT3GCMBRiR5BS9qgS1zvVnZw+zqaBK/L9Z1VXgCo7Dx6uEZxVHncxpOe 0CKCdNnr6yN9cS4VXS6iPcaP4VsUwAGV/V/B+7QCvoW0LGNLpWBfIZKpuKj04Q43UmuI VYkQ== X-Forwarded-Encrypted: i=1; AHgh+RqhZlu+Tlwl6LSa2HYH2L2B8bsDfb/zPtLk4KWjewbN/pQNTxw5twXx6WaB1Qo6nxqPSI8H3ppeLnaW9G0=@vger.kernel.org X-Gm-Message-State: AFuF++k+SlMpUipdCQ51pkFgOpJ/CEU2ucx+/mCtX4x9qEEqnijpJyRO ky543kolPto9ZjGrnKkm2Imo8NoGOI3O/vG8LAdojwB9PhirR1nJQmVh X-Gm-Gg: AR+sD128KLzBrO84xqq1DW21fEV059aGdmsKbxrxINOsI+mX7dNagUZhmNVDdjwZHuR eQS4mep8IeyVObifN4ljSFuar8svFnI2WuV8RMXGqkQZ44Fpr5ZMF6iwr+oE2A+oyqdzlsLU6AI BbvgHG2nY7nbpN3bCjL2nQCpGyhX197jRhYzGzWfxb00XNGadqjXtgUVy4qTdTDvPQk42DVbJOv 6yahttx2RMd7i1eBJM9lF3MHH0ZE/V2lliE1SGcsQTSrmjnR0kzGEzjrmTgUx/8WcTaV7klGZJ7 YyGk4u35gKCGkXDvAizHqjRd9EsG1ZeK8I2IbI511Sh6hlZsUzi82CA4tZWuSMYw1G+iUPFcka5 ahEYadlzt5qTukY4/lAbwzTUXylXxbVu/+JQeG8MRs4c+xQ1p0/zsUoYZhsfQnlkiaYYZzcQl9N xdGP0YOlR/AZswJICrOKVkvuxcj+rmHpU8aJnb+ZtTpG0rvxAP5Kw0Qgd9wweri7JjITQimWrXE A0ViIg/ObpzP49PXiozSp43vYEXwwUeGAj5LYC7cNPyAOzKgfrcIoIFnBX792YvyTHLeX+cfUUb Wkz+D2gCzpTeJy8= X-Received: by 2002:a17:903:390d:b0:2c9:fb11:1bf4 with SMTP id d9443c01a7336-2d64af4eea9mr121346745ad.7.1787315446434; Fri, 21 Aug 2026 05:30:46 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d62e36e1besm18302235ad.53.2026.08.21.05.30.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Aug 2026 05:30:46 -0700 (PDT) From: phucduc.bui@gmail.com To: Mark Brown , Matthias Brugger Cc: Liam Girdwood , AngeloGioacchino Del Regno , Jaroslav Kysela , Takashi Iwai , Cezary Rojewski , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v2 2/4] ASoC: mediatek: mt8186: Fix AFE clock error handling Date: Fri, 21 Aug 2026 19:30:19 +0700 Message-ID: <20260821123021.41390-3-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260821123021.41390-1-phucduc.bui@gmail.com> References: <20260821123021.41390-1-phucduc.bui@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: bui duc phuc The error paths in mt8186_afe_enable_clock() do not consistently undo the clock operations performed before an error. Fix the goto targets and cleanup order so that the audio internal bus parent is restored to CLK26M and all previously enabled clocks are disabled before returning the error. Fixes: 55b423d5623c ("ASoC: mediatek: mt8186: support audio clock control in platform driver") Signed-off-by: bui duc phuc --- sound/soc/mediatek/mt8186/mt8186-afe-clk.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/sound/soc/mediatek/mt8186/mt8186-afe-clk.c b/sound/soc/mediatek/mt8186/mt8186-afe-clk.c index aa8b2eaf7b95..94bcaf92e396 100644 --- a/sound/soc/mediatek/mt8186/mt8186-afe-clk.c +++ b/sound/soc/mediatek/mt8186/mt8186-afe-clk.c @@ -294,7 +294,7 @@ int mt8186_afe_enable_clock(struct mtk_base_afe *afe) dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n", __func__, aud_clks[CLK_MUX_AUDIO], aud_clks[CLK_CLK26M], ret); - goto clk_mux_audio_err; + goto clk_mux_audio_intbus_err; } ret = clk_prepare_enable(afe_priv->clk[CLK_MUX_AUDIOINTBUS]); @@ -321,24 +321,22 @@ int mt8186_afe_enable_clock(struct mtk_base_afe *afe) if (ret) { dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n", __func__, aud_clks[CLK_AFE], ret); - goto clk_afe_err; + goto clk_mux_audio_h_parent_err; } return 0; -clk_afe_err: - clk_disable_unprepare(afe_priv->clk[CLK_AFE]); clk_mux_audio_h_parent_err: + mt8186_set_audio_int_bus_parent(afe, CLK_CLK26M); clk_mux_audio_intbus_parent_err: - mt8186_set_audio_int_bus_parent(afe, CLK_CLK26M); + clk_disable_unprepare(afe_priv->clk[CLK_MUX_AUDIOINTBUS]); clk_mux_audio_intbus_err: - clk_disable_unprepare(afe_priv->clk[CLK_MUX_AUDIOINTBUS]); + clk_disable_unprepare(afe_priv->clk[CLK_MUX_AUDIO]); clk_mux_audio_err: - clk_disable_unprepare(afe_priv->clk[CLK_MUX_AUDIO]); -clk_infra_sys_audio_err: - clk_disable_unprepare(afe_priv->clk[CLK_INFRA_SYS_AUDIO]); + clk_disable_unprepare(afe_priv->clk[CLK_INFRA_AUDIO_26M]); clk_infra_audio_26m_err: - clk_disable_unprepare(afe_priv->clk[CLK_INFRA_AUDIO_26M]); + clk_disable_unprepare(afe_priv->clk[CLK_INFRA_SYS_AUDIO]); +clk_infra_sys_audio_err: return ret; } -- 2.43.0