Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp7085621rdb; Wed, 3 Jan 2024 04:19:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IH+lXGOlBihQltjlp39eJDvNK49sNoibt4E+da+Xn5D83JXf106eyjUekE92CCfS5/dOsln X-Received: by 2002:a50:cd88:0:b0:553:5b1d:956e with SMTP id p8-20020a50cd88000000b005535b1d956emr9782033edi.82.1704284380478; Wed, 03 Jan 2024 04:19:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704284380; cv=none; d=google.com; s=arc-20160816; b=HfDlVGDv2m1lA6Qh8s65RXHLS2fjUxroNbVXHu0ac3xMicIHXiDs71O+UlsEbu18Jj BknErBoxO4Q2FMxu/W5h/tRh/bxAeVCO1KdQRFHmsfFvRV9est38wImvL8zHdWZssECb n/cd7UJMPJpOCNYZ1Hli/XJLiMCVQfxwu3IeHWue2bRznwCoqlq0/jDf7TRAn82hsJRt TJAQjvzM5qOnbHtoyjxE4uyC2K/q+oOFwAwsfEpEEUefqc+pJsn82lJbVmyAngNYiVss FxzYfbRzeFwwdP5YAxX6wDLIxo2scbLBCnU8+VsdjJzGmOYmoVt/rYQ6UXdBCPkisy10 f5kQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=lQs36gcAEpaGcWdvwnSQ6VOzYegdEqT0+acCi5JjEPE=; fh=/Ly72NoJrzef/l4kd1Ht6FWlfxDPLLPsCUsHgtb+KO4=; b=oM8gYkEwAac3ZhZ11UsbXgJDpRHsgD5Kot0UXMvU6MaJSMLc9YM34JYjacpZpzhtFT gkiE+FvACgeBwNQ9fmraHXxkag8vTX24t7APoN92g9h0JDCx4vjBkZqbfm1L70gg17Dl 4GKA2v84KOBGjp/k+7VofpFQPOnHVsPcJ2HNcMbo6SohF3ll+JCd+6+ZHQZXh4P1Hf2n ewvryZfHoDOvx/KIL0OgftuAU+1yThBY5D8jjI4EItLHgGPzUKCmrK7An4AkPhDr/VTK nrmMg2np95n5SQv8BsWPIM+EdJmymDolGaNz5/LMz0x6ViQ00bkbnRhgtwS7Mw0gJeLD bsVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=JQ2uUbfx; spf=pass (google.com: domain of linux-kernel+bounces-15502-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-15502-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id y9-20020a056402358900b00554b2c32cbasi9198348edc.97.2024.01.03.04.19.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jan 2024 04:19:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-15502-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=JQ2uUbfx; spf=pass (google.com: domain of linux-kernel+bounces-15502-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-15502-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 1381A1F24128 for ; Wed, 3 Jan 2024 12:19:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7ED0C18EC8; Wed, 3 Jan 2024 12:19:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="JQ2uUbfx" X-Original-To: linux-kernel@vger.kernel.org Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2260B199A0; Wed, 3 Jan 2024 12:19:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1704284368; bh=sXvCTJMiMZYRpZ56qv2vfroblI96aeB5QJhYBTGQ51s=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=JQ2uUbfxeiEBF2kzZjHIHn9Tdpp3LgHNaU6HfR0+Ta1mDvIV09iUJyfCqgy3OBVYp YOqMmMCP1NvVqwgSdrUALT2FXZ4PVcObau2maRNTgYKjl8b+aCUjv+7VBLX2KlyMeB KpVAgw+uaCqls572liiibW+OaX3hzfqqn2XGBhfs+zEqNrHos/KSU+RkY4GpBzrHXl cDYMyIrUza28IlH5XPy1XtMX6EUu2L6apf9/Az+zrQEPn1Jewg6oRuSvKq5Pyi6jSy SUqO3O2GjG0l7TgZgCmY96PkGvKZQ1s9hakqYJz5NfC2zybaoMKzwuGA6H8Fb4LXua qLtGS69h25y/A== Received: from [100.113.186.2] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 451A5378104C; Wed, 3 Jan 2024 12:19:27 +0000 (UTC) Message-ID: Date: Wed, 3 Jan 2024 13:19:26 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/2] clk: mediatek: Introduce need_pm_runtime to mtk_clk_desc Content-Language: en-US To: Pin-yen Lin , Michael Turquette , Stephen Boyd , Matthias Brugger Cc: Chen-Yu Tsai , linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Weiyi Lu , linux-mediatek@lists.infradead.org, Eugen Hristev References: <20240102081402.1226795-1-treapking@chromium.org> From: AngeloGioacchino Del Regno In-Reply-To: <20240102081402.1226795-1-treapking@chromium.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Il 02/01/24 09:12, Pin-yen Lin ha scritto: > Introduce a new need_pm_runtime variable to mtk_clk_desc to indicate > this clock needs a runtime PM get on the clock controller during the > probing stage. > > Signed-off-by: Pin-yen Lin Hello Pin-yen, We have experienced something similar, but it was really hard to reproduce after some changes. In an effort to try to solve this issue (but again, reproducing is really hard), Eugen has sent a commit in the hope that someone else found a way to easily reproduce. Please look at [1]. I'm also adding Eugen to the Cc's of this email. Cheers, Angelo [1]: https://patchwork.kernel.org/project/linux-pm/patch/20231225133615.78993-1-eugen.hristev@collabora.com/ > --- > > Changes in v2: > - Fix the order of error handling > - Update the commit message and add a comment before the runtime PM call > > drivers/clk/mediatek/clk-mtk.c | 15 +++++++++++++++ > drivers/clk/mediatek/clk-mtk.h | 2 ++ > 2 files changed, 17 insertions(+) > > diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c > index 2e55368dc4d8..c31e535909c8 100644 > --- a/drivers/clk/mediatek/clk-mtk.c > +++ b/drivers/clk/mediatek/clk-mtk.c > @@ -13,6 +13,7 @@ > #include > #include > #include > +#include > #include > > #include "clk-mtk.h" > @@ -494,6 +495,14 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev, > return IS_ERR(base) ? PTR_ERR(base) : -ENOMEM; > } > > + > + if (mcd->need_runtime_pm) { > + devm_pm_runtime_enable(&pdev->dev); > + r = pm_runtime_resume_and_get(&pdev->dev); > + if (r) > + return r; > + } > + > /* Calculate how many clk_hw_onecell_data entries to allocate */ > num_clks = mcd->num_clks + mcd->num_composite_clks; > num_clks += mcd->num_fixed_clks + mcd->num_factor_clks; > @@ -574,6 +583,9 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev, > goto unregister_clks; > } > > + if (mcd->need_runtime_pm) > + pm_runtime_put(&pdev->dev); > + > return r; > > unregister_clks: > @@ -604,6 +616,9 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev, > free_base: > if (mcd->shared_io && base) > iounmap(base); > + > + if (mcd->need_runtime_pm) > + pm_runtime_put(&pdev->dev); > return r; > } > > diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h > index 22096501a60a..c17fe1c2d732 100644 > --- a/drivers/clk/mediatek/clk-mtk.h > +++ b/drivers/clk/mediatek/clk-mtk.h > @@ -237,6 +237,8 @@ struct mtk_clk_desc { > > int (*clk_notifier_func)(struct device *dev, struct clk *clk); > unsigned int mfg_clk_idx; > + > + bool need_runtime_pm; > }; > > int mtk_clk_pdev_probe(struct platform_device *pdev);