Message ID | 20230929-topic-8280_ahbdisp-v1-2-72bdc38309b9@linaro.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:cae8:0:b0:403:3b70:6f57 with SMTP id r8csp4095679vqu; Fri, 29 Sep 2023 07:59:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG9DV7EuX4IQn0W+Owt1fqF7XOYDkY0I/i7z4xYvtncfr86TraZui1f238REvl73+hOrb++ X-Received: by 2002:a05:6870:d60d:b0:1d6:5c83:e6c5 with SMTP id a13-20020a056870d60d00b001d65c83e6c5mr4522529oaq.44.1695999594089; Fri, 29 Sep 2023 07:59:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695999594; cv=none; d=google.com; s=arc-20160816; b=dYtYmgzp8rACqzi2BYE6SokvhpLwdUio2iYqjiphCYQ540YnwZX46UED9XhnNGhv+N U9hNH85AndiKvVYLPvYyXNI9Dx8SFdJ9xnC/30J/0XvQipy6+ewVFN5HrSgXcAVsH+JZ F1dNDWGueltx+vsHcsgFTat2yZoXxI9UeNaW+dCk2Kk596fiaSAkjtF0W5HLp0vr85P/ uE8tUaecnAyhuc/mPHdMkBGBAhqoCTkvFjriAOe5b0DYOdf/OzYEzz0PP9iMZgYbRgXI +6Lj+lxkwcIZ+3CKtKorv9rr8rhzNdztYAmQe5ninscHPFRKUoTBbaVgMyxpoFPGVFeF JzWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=QdNtbM8sg5Uv/4iy/PMTp5TjbGaItzuz9a1/F8ZNl8I=; fh=jTxxrIhheSgunmDiLkbJKGOtxWtojOoMsz2BV8Fqrhs=; b=y66p4L6QfQO3iSuyl592bFnx0giqmDVGFaIkUG1GVCbvre0rijxnwYv9IjG7Cky2GV oQijkxtzTjFIYSs8YUvbSZ8yMOS+ONziQthXGC8mAHDpi23ubP0xNF1gl26Rby6UXF2R 9IqIn3CKtQg/sb4WcoXy0rMPcscJdzR891OOfjIc/RCX8+6/kbwRPe9zJUdaNkW3iUXR WVhcffu2GggupHYNsFs1G7K7evG2o/Ej1FQnbjm3QpXDk/l1MX2elDT4ZW5ROuOijmgM V647wIOmigJbXVYd/mryLqC8Z7fMbFuDzyEzLKPyJbmRmRTwE9fRwTbHRoqG3U68kZOk 7J7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dIwD7hUT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id bg26-20020a056a02011a00b00563e283786esi18582025pgb.104.2023.09.29.07.59.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Sep 2023 07:59:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dIwD7hUT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 2AFFA8363CA1; Fri, 29 Sep 2023 06:40:09 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233500AbjI2Njb (ORCPT <rfc822;pwkd43@gmail.com> + 20 others); Fri, 29 Sep 2023 09:39:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233471AbjI2NjR (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 29 Sep 2023 09:39:17 -0400 Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B57AD1700 for <linux-kernel@vger.kernel.org>; Fri, 29 Sep 2023 06:39:05 -0700 (PDT) Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-533c8f8f91dso14820003a12.0 for <linux-kernel@vger.kernel.org>; Fri, 29 Sep 2023 06:39:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1695994743; x=1696599543; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=QdNtbM8sg5Uv/4iy/PMTp5TjbGaItzuz9a1/F8ZNl8I=; b=dIwD7hUTtN/uX1H3XDBJ0M250A3L6BflRIb94Plhu4s4H1kvLEgcNYhbJcGrtFpw95 q9KuUmdYctmK37DEdeI8BU/8+1xPjo+q1OLE4pQyjnhKiyAHp6ofL9jviO98iljmmbkX ncuz9NTxf1Yr/P0zFq6z00eHNe2fDxvp1WCADnh86GBeTOUD7G7+NgzFNiZX833rxYh4 9ei2hAxT07B4A7rsiMIZvjF9q0m5X1B/BluhPN18BR7L8pozlYyJ2gZkantPvOF3TQi0 1Do0Gy7Tjt4/brjXYLjy0ggsN7tSXfQ5mNFbgY7tjnkDAvIMWATEH67qM9Simq6XNSa+ yHbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695994743; x=1696599543; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QdNtbM8sg5Uv/4iy/PMTp5TjbGaItzuz9a1/F8ZNl8I=; b=VJS6UirwktR+WLI76nGZ65fFvKVCGaUe6fwsjUe0XiqV9iegP/tWh81yM04eGma9Me ynV1vjRo7nHAxlfzbFH1WG+mMf7iN3or9xfYGs/RxJ+wlSpU7G+mpqJknJXFhzPPr4qA yXbbkggrhCTQjBEBcaPijVUsZ7rvg3znyLo7/84tXPe4M35JH3h7Yr29Vewpt7nU2PUN ROMo82tk7fcfFOPzWlF5CQpIDWuMs8bq3MKLgI1XZLvPgX9L5cbf0yyT+N8XPM5TQ49B Fknfqsfg7cMAx3KhgQgr9ovDXqJHpibaV50MO1ehsgshg9eN4VFPA0K1ncOaM5/TAOkX uA2Q== X-Gm-Message-State: AOJu0YyhRSW+fti/dF3PGAZaZ8wqToBCjVnDH9b9lAbCRXAA7UcoPZuS FdbuX/aNIvVvPSq/gQhSmCb39Q== X-Received: by 2002:aa7:c746:0:b0:522:564d:6de with SMTP id c6-20020aa7c746000000b00522564d06demr4285089eds.36.1695994743533; Fri, 29 Sep 2023 06:39:03 -0700 (PDT) Received: from [127.0.1.1] (178235177217.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.217]) by smtp.gmail.com with ESMTPSA id cx14-20020a05640222ae00b005362bcc089csm2215701edb.67.2023.09.29.06.39.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Sep 2023 06:39:03 -0700 (PDT) From: Konrad Dybcio <konrad.dybcio@linaro.org> Date: Fri, 29 Sep 2023 15:38:53 +0200 Subject: [PATCH 2/2] clk: qcom: gcc-sc8280xp: Don't keep display AHB clocks always-on MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230929-topic-8280_ahbdisp-v1-2-72bdc38309b9@linaro.org> References: <20230929-topic-8280_ahbdisp-v1-0-72bdc38309b9@linaro.org> In-Reply-To: <20230929-topic-8280_ahbdisp-v1-0-72bdc38309b9@linaro.org> To: Andy Gross <agross@kernel.org>, Bjorn Andersson <andersson@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Vinod Koul <vkoul@kernel.org> Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Konrad Dybcio <konrad.dybcio@linaro.org> X-Mailer: b4 0.13-dev-0438c X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Fri, 29 Sep 2023 06:40:09 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778384470268302192 X-GMAIL-MSGID: 1778384470268302192 |
Series |
8280 display ahb clk fixes
|
|
Commit Message
Konrad Dybcio
Sept. 29, 2023, 1:38 p.m. UTC
These clocks are consumed by the dispcc[01] clock controllers, so there's
no reason to keep them on from gcc probe. Remove that hack.
Fixes: d65d005f9a6c ("clk: qcom: add sc8280xp GCC driver")
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
drivers/clk/qcom/gcc-sc8280xp.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
Comments
On Fri, Sep 29, 2023 at 03:38:53PM +0200, Konrad Dybcio wrote: > These clocks are consumed by the dispcc[01] clock controllers, so there's > no reason to keep them on from gcc probe. Remove that hack. Eh, how did you test this patch? The GCC_DISP_AHB_CLK clocks are not modelled by the clock driver currently so nothing is guaranteeing them to be enabled if we were to apply this patch. They just happen to be left on by the bootloader on some machines currently (well at least one of them is on one machine). So this series is broken and should not be applied. NAK. Also, please CC me on sc8280xp and X13s related patches. > Fixes: d65d005f9a6c ("clk: qcom: add sc8280xp GCC driver") > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > drivers/clk/qcom/gcc-sc8280xp.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c > index bfb77931e868..bf95f82a3818 100644 > --- a/drivers/clk/qcom/gcc-sc8280xp.c > +++ b/drivers/clk/qcom/gcc-sc8280xp.c > @@ -7545,18 +7545,16 @@ static int gcc_sc8280xp_probe(struct platform_device *pdev) > > /* > * Keep the clocks always-ON > - * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_DISP_AHB_CLK, > + * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, > * GCC_DISP_XO_CLK, GCC_GPU_CFG_AHB_CLK, GCC_VIDEO_AHB_CLK, > - * GCC_VIDEO_XO_CLK, GCC_DISP1_AHB_CLK, GCC_DISP1_XO_CLK > + * GCC_VIDEO_XO_CLK, GCC_DISP1_XO_CLK > */ > regmap_update_bits(regmap, 0x26004, BIT(0), BIT(0)); > regmap_update_bits(regmap, 0x26020, BIT(0), BIT(0)); > - regmap_update_bits(regmap, 0x27004, BIT(0), BIT(0)); > regmap_update_bits(regmap, 0x27028, BIT(0), BIT(0)); > regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0)); > regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0)); > regmap_update_bits(regmap, 0x28028, BIT(0), BIT(0)); > - regmap_update_bits(regmap, 0xbb004, BIT(0), BIT(0)); > regmap_update_bits(regmap, 0xbb028, BIT(0), BIT(0)); Johan
On 9/30/23 11:39, Johan Hovold wrote: > On Fri, Sep 29, 2023 at 03:38:53PM +0200, Konrad Dybcio wrote: >> These clocks are consumed by the dispcc[01] clock controllers, so there's >> no reason to keep them on from gcc probe. Remove that hack. > > Eh, how did you test this patch? Oehh you're right, I didn't notice that I still had clk_ignore_unused :/ > > The GCC_DISP_AHB_CLK clocks are not modelled by the clock driver > currently so nothing is guaranteeing them to be enabled if we were to > apply this patch. They just happen to be left on by the bootloader on > some machines currently (well at least one of them is on one machine). What fooled me is that despite not being modeled by the clock driver, it is defined in bindings and referenced in the device tree. Another thing I'll fix up! > So this series is broken and should not be applied. Agreed, I'll revisit this tonight or next week. > > NAK. > > Also, please CC me on sc8280xp and X13s related patches. Omitting you was not intentional, sorry! Konrad
On Sat, Sep 30, 2023 at 06:44:47PM +0200, Konrad Dybcio wrote: > On 9/30/23 11:39, Johan Hovold wrote: > > On Fri, Sep 29, 2023 at 03:38:53PM +0200, Konrad Dybcio wrote: > >> These clocks are consumed by the dispcc[01] clock controllers, so there's > >> no reason to keep them on from gcc probe. Remove that hack. > > > > Eh, how did you test this patch? > Oehh you're right, I didn't notice that I still had clk_ignore_unused :/ That doesn't matter since these clocks are never even registered with the clock framework. But you'd notice that if you try to verify the clock state by looking at /sys/kernel/debug/clk/clk_summary for example. > > The GCC_DISP_AHB_CLK clocks are not modelled by the clock driver > > currently so nothing is guaranteeing them to be enabled if we were to > > apply this patch. They just happen to be left on by the bootloader on > > some machines currently (well at least one of them is on one machine). > What fooled me is that despite not being modeled by the clock driver, it > is defined in bindings and referenced in the device tree. > > Another thing I'll fix up! Right, a number of Qualcomm SoCs apparently fail to register these clocks. You should start by determining why that is as I assume (hope) it was done for a reason. Then the Qualcomm drivers use sloppy bulk clock look-up and enable so that an integrator would never even notice when clocks are missing. Once the clocks are registered, that could be tightened up as well. Johan
On 10/2/23 10:34, Johan Hovold wrote: > On Sat, Sep 30, 2023 at 06:44:47PM +0200, Konrad Dybcio wrote: >> On 9/30/23 11:39, Johan Hovold wrote: >>> On Fri, Sep 29, 2023 at 03:38:53PM +0200, Konrad Dybcio wrote: >>>> These clocks are consumed by the dispcc[01] clock controllers, so there's >>>> no reason to keep them on from gcc probe. Remove that hack. >>> >>> Eh, how did you test this patch? > >> Oehh you're right, I didn't notice that I still had clk_ignore_unused :/ > > That doesn't matter since these clocks are never even registered with > the clock framework. That's the point, if it was missing and was not enabled I would have noticed display not working (unless the bootloader left it on, which it did for at least the mdss instance with the eDP panel) > > But you'd notice that if you try to verify the clock state by looking at > /sys/kernel/debug/clk/clk_summary for example. > >>> The GCC_DISP_AHB_CLK clocks are not modelled by the clock driver >>> currently so nothing is guaranteeing them to be enabled if we were to >>> apply this patch. They just happen to be left on by the bootloader on >>> some machines currently (well at least one of them is on one machine). > >> What fooled me is that despite not being modeled by the clock driver, it >> is defined in bindings and referenced in the device tree. >> >> Another thing I'll fix up! > > Right, a number of Qualcomm SoCs apparently fail to register these > clocks. You should start by determining why that is as I assume (hope) > it was done for a reason. The reason is, downstream lazily enables clocks because people decided they don't leak much power and are still enabled after a clock controller reset (or something) and we started blindly copying that around 2017 :/ > > Then the Qualcomm drivers use sloppy bulk clock look-up and enable so > that an integrator would never even notice when clocks are missing. Once > the clocks are registered, that could be tightened up as well. Yeah the current state of things is not great. Konrad
diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c index bfb77931e868..bf95f82a3818 100644 --- a/drivers/clk/qcom/gcc-sc8280xp.c +++ b/drivers/clk/qcom/gcc-sc8280xp.c @@ -7545,18 +7545,16 @@ static int gcc_sc8280xp_probe(struct platform_device *pdev) /* * Keep the clocks always-ON - * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_DISP_AHB_CLK, + * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, * GCC_DISP_XO_CLK, GCC_GPU_CFG_AHB_CLK, GCC_VIDEO_AHB_CLK, - * GCC_VIDEO_XO_CLK, GCC_DISP1_AHB_CLK, GCC_DISP1_XO_CLK + * GCC_VIDEO_XO_CLK, GCC_DISP1_XO_CLK */ regmap_update_bits(regmap, 0x26004, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x26020, BIT(0), BIT(0)); - regmap_update_bits(regmap, 0x27004, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x27028, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x28028, BIT(0), BIT(0)); - regmap_update_bits(regmap, 0xbb004, BIT(0), BIT(0)); regmap_update_bits(regmap, 0xbb028, BIT(0), BIT(0)); ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks));