Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp17497431rwd; Tue, 27 Jun 2023 04:02:11 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5sDd6Mz1ulY7j1qelvpq/9JO0ARib3ERU6z6o5n0E00nGIUPn9kjBu4cMVMv03qV2LHsKX X-Received: by 2002:aa7:c610:0:b0:51d:a017:66a6 with SMTP id h16-20020aa7c610000000b0051da01766a6mr3080865edq.16.1687863730956; Tue, 27 Jun 2023 04:02:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687863730; cv=none; d=google.com; s=arc-20160816; b=nwTtl12XFMYkiU3k835gxPkITBlUHcrfef9LIcjq5o2kz+rjRlcECj/Uhq4GmKvqek Alyumz0Xkx7M2blIiGRIxH/zXxZiEngcBNPDQ9T90TYsMtt4ZHTsTRnmkvpiKxalcHGP SrmPwVVT6RYPBgN8CU0VIwDNAFHjRv0630hQfjXJ6YZWWpFlG8wABly5n01TUIDFQdx7 fRYntdxeI3Ljo3KFUrilNTMQiAljHuTY3lmVqXpXCmOLAmlMLVn+l6zCeX7dUsd+qJHt XX8FtkuLVyVsrdUUL6dLLL+IArZBHvQu6yRPFHrjOkarrwqYzqr8j6kmkLpCLmvq3whq LwtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=/UOP/HXwOfjROV0iDHrU1g1p6LD4GcCF3K/FghLtNOU=; fh=yUwTDGrsvlHouV3fEPRrlKTGD+MlkkPh+H7LyYpVu8M=; b=Xy7rBeVLcYwT9WgDHsFakiCtp/G4Nup5ODgyoFPgbsI4hwxFcMz621lajM8yATMSpZ RFZKbkHY1TGkZEkFQsCh7z3U7YFVzx+NVXoY75InLpozILkG6wIv7uQr/TkRMSoF2Q9E jSC8AHrXfFn/lGudR2PdD3SMNNNxIO2aAtRzObmNC/Xrvb6hUYbrVmvtpFR/dnroDLnZ wfghtMDMjl7vzZ1YbHY2uD7drwVroffKR+gyFZfRb+LAWeMiNkS+1JBpd3Y1ZzDAlzmU NsogKDuOvAGfuXdazzokAy972jUqsKDkBpDM+rvLN63WLLPpqd+sEh+GZ2DO+znvxZyr 2idw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=y5+DnJgJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x6-20020aa7d6c6000000b0051da68039edsi1100425edr.290.2023.06.27.04.01.46; Tue, 27 Jun 2023 04:02:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=y5+DnJgJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230328AbjF0Kku (ORCPT + 99 others); Tue, 27 Jun 2023 06:40:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229647AbjF0Kkr (ORCPT ); Tue, 27 Jun 2023 06:40:47 -0400 Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68AE5E71 for ; Tue, 27 Jun 2023 03:40:46 -0700 (PDT) Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-313f59cd193so1724225f8f.2 for ; Tue, 27 Jun 2023 03:40:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687862445; x=1690454445; 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; bh=/UOP/HXwOfjROV0iDHrU1g1p6LD4GcCF3K/FghLtNOU=; b=y5+DnJgJYphY781NuJroMLh1mIZh3+eUMQjDpKMhsyWLF+SMHN4tPapiVgi3uiVbX4 1cUL4yRaDVQDHkrmMUBVplhWuXMbXP+0ZQG73WO5b4lmq+d3M+fh3InkHRBGLtpEpC8E K3l0vVj/mKmznriOrTPlcfUYBiQSVN1hKLJc5Qzp7aiPPw6rW1zXRUGgWGCjQiKhuHCK ofV5FjoVrXUkRnofsmwXXInwtxy0KKDN6i/7llXeIAcygky0QAttWLhABjAOl19KApyT XeJ1rK/ArsbtnW+kqXlmSsiGXZnrYx7x70hdgWNTL5YYA1e6dkSg0Ja4Vrj8oFHezqwU jPMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687862445; x=1690454445; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/UOP/HXwOfjROV0iDHrU1g1p6LD4GcCF3K/FghLtNOU=; b=O+W/TMcMkIrfR8+2CVNXgJw4zwlmprrCUWB1RZpsxYskNXL79jKMJoSYE+MDva9qDw 1VF0yUabVDl97x9YF6BdNd9WFe07uRSakmQoMbZhw3J719WeyqglOITaL6geSxpeEIlk Xfy2jOumPMzCo2tnJqez6DC6A85g+0PC17imfCRavqBICusRbRUKgSTeTfYJXyHPjZEG TN+aM6iCgCLqIwi6n1aWJfZsJTPuT/eQUgkm1omv3xFCpZwlLfuDAt5NWhMQWx09BiYZ sws9uGbrZuDDbX28bNFRdIDQmkehb1eqyNKXV+7+i28zX9OZK1TP5PZx+jMhdkaZa3hV oStA== X-Gm-Message-State: AC+VfDxiBXz3PsQkefe1G2V11Ux5vusZBKSSmXF0BG6RgMS1JgY/4Czw bkdd0BspUUElg8ZEF/uQnqm6YA== X-Received: by 2002:adf:fa83:0:b0:30d:44a1:99a with SMTP id h3-20020adffa83000000b0030d44a1099amr24120038wrr.54.1687862444873; Tue, 27 Jun 2023 03:40:44 -0700 (PDT) Received: from hackbox.lan ([62.231.110.100]) by smtp.gmail.com with ESMTPSA id a10-20020adfdd0a000000b0030af15d7e41sm10203750wrm.4.2023.06.27.03.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jun 2023 03:40:44 -0700 (PDT) From: Abel Vesa To: "Rafael J . Wysocki" , Kevin Hilman , Ulf Hansson , avel Machek , Len Brown , Greg Kroah-Hartman , Bjorn Andersson , Andy Gross , Konrad Dybcio , Mike Turquette , Stephen Boyd , Taniya Das Cc: linux-pm@vger.kernel.org, Linux Kernel Mailing List , linux-arm-msm@vger.kernel.org Subject: [RFC PATCH 2/2] clk: qcom: gdsc: Add support for set_hwmode_dev Date: Tue, 27 Jun 2023 13:40:33 +0300 Message-Id: <20230627104033.3345659-2-abel.vesa@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230627104033.3345659-1-abel.vesa@linaro.org> References: <20230627104033.3345659-1-abel.vesa@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Implement the GDSC specific genpd set_hwmode_dev callback in order to switch the HW control on or off. For any GDSC that supports HW control set this callback in order to allow its consumers to control it. Signed-off-by: Abel Vesa --- drivers/clk/qcom/gdsc.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/clk/qcom/gdsc.c b/drivers/clk/qcom/gdsc.c index 5358e28122ab..9a04bf2e4379 100644 --- a/drivers/clk/qcom/gdsc.c +++ b/drivers/clk/qcom/gdsc.c @@ -314,6 +314,26 @@ static int gdsc_enable(struct generic_pm_domain *domain) return 0; } +static int gdsc_set_hwmode_dev(struct generic_pm_domain *domain, + struct device *dev, bool enable) +{ + int ret = gdsc_hwctrl(domain_to_gdsc(domain), enable); + + if (ret) + goto out; + + /* + * Wait for the GDSC to go through a power down and + * up cycle. In case there is a status polling going on + * before the power cycle is completed it might read an + * wrong status value. + */ + udelay(1); + +out: + return ret; +} + static int gdsc_disable(struct generic_pm_domain *domain) { struct gdsc *sc = domain_to_gdsc(domain); @@ -451,6 +471,8 @@ static int gdsc_init(struct gdsc *sc) sc->pd.power_off = gdsc_disable; if (!sc->pd.power_on) sc->pd.power_on = gdsc_enable; + if (sc->flags & HW_CTRL) + sc->pd.set_hwmode_dev = gdsc_set_hwmode_dev; ret = pm_genpd_init(&sc->pd, NULL, !on); if (ret) -- 2.34.1