From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (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 26E9041A905 for ; Thu, 20 Aug 2026 11:13:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787224417; cv=none; b=DkemHInRXf1Q85wPMiRQTC83dbzkV/QHk/RsB3QDgg9EiOf8ae4CMyRQ3LQ1I+KNu+ngFaQ3fL1x3U6qFtRHJssqoM4nGpwL4dr9kQMnu017suRMSs9FzBEHtvVMpXVbMqDfJ20yzr2cuAggylumik3Rk93KLXCVf6ZNO0zi/kQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787224417; c=relaxed/simple; bh=LCT+82lm6KznZfAuCfv9h5ezKD9PrDxKi2dRpeEV5tM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TgERDXuxMQpFdVYd63Y+NgOyZBPqYUcxoLcQs74C4vJSoToqPTWLeSnPHZSAjgIDofjGpmmVgebfqhOS2jfzFo7WjBNxUZikOw6GzvRCgh8vydQAFuIF20yzbrhjcVaGVQzMORSlYEJpPmiuLqCP24MIc5R/uG/x6gVUQ7XYh3I= 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=ClHdnWMH; arc=none smtp.client-ip=209.85.210.171 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="ClHdnWMH" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-84f3ab8750cso1487142b3a.0 for ; Thu, 20 Aug 2026 04:13:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787224415; x=1787829215; 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=KHFmktxqrJswUeFq/LOQ5JbIOjX6aGqDfIzsCeraA7E=; b=ClHdnWMHleK5rccT+OBpCN3YnP69RW7qdA/rZiZ3GpBX9K4g56S4Knvk+Iw3ljWljA 39J2HoAfuMJIrrr3CECCIRyhTgPNCyn+AUMWrdUk+mh4HmKGbKCuHIw8l5oEJiiAn5eV 2e4dqDNNw/L0Ss1oAMHDTb+4F/KskjIdEWmCctm+fvB5tbxjclhUi+4OQ2/IWNVFr9WL 1bjcPVHVKBH16/MOUSAFUavsMqulhsrC7C+BxF7XmQQ5yhVUChXgnUl7tag+iO3uwL9O WDgAUcfCrJpBy8FmIrgmDlpoF8EHR9xdXJT4OEhZAXu6y1x3ztO376RyziFFWrrTz/g8 FMUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787224415; x=1787829215; 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=KHFmktxqrJswUeFq/LOQ5JbIOjX6aGqDfIzsCeraA7E=; b=af3gNqnV8FP/gx+6mVJYFB8r63kUpwVNLHWcQkNAM/irxTEipD9M5pNvbaU3JacLdO B+EV10rlzLIU7V/e0ZLMJdJoQqPYMDXeyNYMAdfzYVpyhhqMZxOjQi/rSxcd6PJ7C3uO 4W8IV/5icYWb52/2yHGbTkah7cDcox8NPtDoZ4AYnw+ivN5mps2husglERzCS6n4+Fmt BVfXb3BJh2Aqrwf1hEttboQCe6KF81carKUoeuYM8dR21HJwEafxbMsBRG/VSgJrhB7f fzRFOH/nYZQo5iIjam4TYS/0fVSaGYYX8yIh4V9Rf/EIwSqBEDhylweP0CZWE2YpFZ++ mjpA== X-Forwarded-Encrypted: i=1; AHgh+Rr+5InwgFxB39yM+/pbCjeVdSEG73lBjKTosxb2CtvRI6GXT3jEZwhCa/eS60YykT8SPwkXrupw7iLvOeY=@vger.kernel.org X-Gm-Message-State: AOJu0YwLRXtBa3YXNgmvt7IcyOYqmjiSIVB/aOt/ydzUuxxchkKEgdiF YRoQ9LyfEkfBMzfE1LrR+nmG91qd+zU5Nj/iKRWi/PeYgL3TSFGoUfv6 X-Gm-Gg: AR+sD10IkGqRncOMJa8HDy/Io8fM6HxmF0VQcTO55N8+VPfW3JH736xK/3jFnEoeKmU FvfugGcF40XArtVt8ZgVWtrsgf93I2aOEy8ibiOljYbMSfKRH1h8jcWrby8WmeMRtIwuQ/6hcrl XR/R6sHc2+eph1lKJLpfe8jvzDceepF3gAApLfmCn0KIQYfpdQKvYKnedhzGeHWbN70MnHy3yO5 fHLp46K6YeosLML+5ia/iKIKi6XK6YVzo3j5ybBq3phgRcrt3B3H+e66RvRx5SF+wtxVLC0sFWb M8dAP6qhNLqPM9Ki3ma0sVowtZFUKAeakJmzHGDVcJ4KicL+eeqnd1hbXnsbHJx/HW6dIRP+KXL WeHpmAx3bLR1UH/k5xi309gnrtyPIyrjutJIPADHvjl2URxm3ysPz4ftERv7xCkviuB5duTbjal d6z0M/CIDrqk75EL7FoW4hmVlXv5CVtc40gzAaF1cmEoSyE0JrY/c93kk+Syepvo2mzYYhmTgmg Lsm41obWhcyxyn3cRT2tGuewb1AoispdjR3mAa2hXEnn2xnc1bw2wKZwSpWdo1ThUBGs9r0cNM3 a5g1 X-Received: by 2002:a05:6a00:a24a:b0:84c:5b65:ef86 with SMTP id d2e1a72fcca58-851d390b52bmr20899072b3a.17.1787224415368; Thu, 20 Aug 2026 04:13:35 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-851d36185c8sm1515460b3a.38.2026.08.20.04.13.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 04:13:35 -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 2/5] ASoC: mediatek: mt8186: Fix AFE clock error handling Date: Thu, 20 Aug 2026 18:12:50 +0700 Message-ID: <20260820111253.97866-3-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820111253.97866-1-phucduc.bui@gmail.com> References: <20260820111253.97866-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. 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