From patchwork Wed Mar 15 13:23:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Vesa X-Patchwork-Id: 70228 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp2339629wrd; Wed, 15 Mar 2023 06:48:31 -0700 (PDT) X-Google-Smtp-Source: AK7set9QcThuD7ap86OwYugyUFrsQaLZzwRBpEf2mb345yOyGoFH3lPYlPluXjl3GA1Y+uBcxpBa X-Received: by 2002:a05:6a20:8b90:b0:d6:2664:e3f9 with SMTP id m16-20020a056a208b9000b000d62664e3f9mr2156233pzh.51.1678888110796; Wed, 15 Mar 2023 06:48:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678888110; cv=none; d=google.com; s=arc-20160816; b=WkO9m/20ciEMiIsS+OmvWhUosFDhZtqtIDlM1uDzuNNybWzqyw7Rh2U5IG/EMFOVlC LSHIGHu8E7KM2LdaEYHdX77Zai1laiZJ6SW+4frajBIeJ06AiafHrX0zFHokLrxlZcMr vmEMi00Ip3IkrTaHLMEE8Nm9FPLG/pTcr92l0/TQ7M01e7OQgDd+vawSstyGNkif4V1F SXXMYGO1CWgUAVJOtJh+1YjCWgK2uqV8u2+RXBIyP6cQbFHt/DbM/TiqnEitzgGKc38f bVz8LQvwIDbw2Wh4/X7i5qQmDQOWVzP/7M/WeJEhN/HPvqX+bXv2t9zmeZPZ01s31ISn x4qg== 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=xQtrWDCM+22cQpzRRbVDJZjtR/eFtKTL53q6CUnjVrA=; b=pCqmEe59EBPTWpRKr0241Z42t8OTb9hdFj3mw45Ts2ph3nGFbSWb42giw6iQCzr3tZ CGFR0hZwQn050oxA0UKZFr9bObTyS1driD7KdWloXi3Zoa4ecetlcMy6KuYpSflv+S7w ZmRiJvCkAs6/fa+iqWOa6kXKcj8wtq9M1Bsy3nhUlvlxg1opcfDKVQagSVnvRF3802yn EK1xnc3tDlv6iE+E6OMPNiRi3Ihzap0lJZSEc+V+x+941j4EL62fzyihEg6bKi4hNI+r 9PB9UZWfp65fJLiGBaW1QPc/5c68TASEtFYZiHLRpFRAnhxrqhSTalBxAZA64d/Q57n1 tCYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kcCmlMd9; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z17-20020aa79491000000b005907558613bsi4913892pfk.17.2023.03.15.06.48.12; Wed, 15 Mar 2023 06:48:30 -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=kcCmlMd9; 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 S232049AbjCONXr (ORCPT + 99 others); Wed, 15 Mar 2023 09:23:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50436 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231416AbjCONXk (ORCPT ); Wed, 15 Mar 2023 09:23:40 -0400 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5228810E2 for ; Wed, 15 Mar 2023 06:23:38 -0700 (PDT) Received: by mail-ed1-x52c.google.com with SMTP id cn21so45312259edb.0 for ; Wed, 15 Mar 2023 06:23:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678886617; 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=xQtrWDCM+22cQpzRRbVDJZjtR/eFtKTL53q6CUnjVrA=; b=kcCmlMd948KTeFaT82iddBgwWZPmI85qhyHyJAJKzspk0SsOyGqNByNvBE+bAMsClo fiFyE57RAgHFWGTtx0x6MMBEZbVVWGTbmc5kIMsBNu60iCBvcRghGHAaJ7BFtc87EdA4 gQIsAiC51MpVQSrv61X7jG93H+kGWQ3fc9BenKW5Kzi2S870BrFMviIX0b1INPVah++M 3WTlJCeJcP5wH/B62iolL3NhCGoDdPmtecKFbZ5qkFujaQJxgLzaNpCR+mLxefhwaoy0 m8E24qya4KdhgUG3MeW999hZMIAzUmzBGnlWzix4N893xlvhnGBj61IcTG8H96l9XN+v C7lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678886617; 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=xQtrWDCM+22cQpzRRbVDJZjtR/eFtKTL53q6CUnjVrA=; b=ZVFbmXWzd5yKyJhSCI/KSkoeIJv1DMtZOutEiF+tCHm7daJ8QIf72y0IS+Mn+Qytgn ikXk7lzeDeEorR9GVTaJ6M+dxuBQHD2gzKuy0rUpbScO2vk8CvOq+XieYKbZXrL/bo/y J3W1l7W54zCc4d3b5PnDbjsa3AsLXZdsntRNBYHRkEfYyxz6xO8mbdv2Ds/kEG0e4NQ7 T6HktZQHNdDJMiLyRUOwhRl1GTLCJFkP9VDw2sEDN3yJ4RBk9fXmxOSnV/mbNyyLAOP8 GewUpkQvW7A1S8Wbeoi8Pnvzpj2jwjPzbQ7EsRrqKpf6grqyaB2IgSOv2TTC49E9bv5r rNQg== X-Gm-Message-State: AO0yUKW1qF3wAKjhrDbX62T8zyy2BJuZ8f11h4ylVzXJRRDNCfyj+TAo VJXxbJlYl8Sm+jonKZiiWL9B/A== X-Received: by 2002:a17:907:9708:b0:878:711d:9310 with SMTP id jg8-20020a170907970800b00878711d9310mr7626418ejc.1.1678886617534; Wed, 15 Mar 2023 06:23:37 -0700 (PDT) Received: from localhost.localdomain ([94.52.112.99]) by smtp.gmail.com with ESMTPSA id pj18-20020a170906d79200b008b133f9b33dsm2497365ejb.169.2023.03.15.06.23.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 06:23:36 -0700 (PDT) From: Abel Vesa To: "Rafael J. Wysocki" , Kevin Hilman , Ulf Hansson , Pavel Machek , Len Brown , Greg Kroah-Hartman , Bjorn Andersson , Andy Gross , Konrad Dybcio , Mike Turquette , Stephen Boyd , Saravana Kannan Cc: linux-pm@vger.kernel.org, Linux Kernel Mailing List , linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, Doug Anderson , Matthias Kaehlcke Subject: [RFC PATCH 2/5] soc: qcom: rpmhpd: Do proper power off when state synced Date: Wed, 15 Mar 2023 15:23:27 +0200 Message-Id: <20230315132330.450877-3-abel.vesa@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230315132330.450877-1-abel.vesa@linaro.org> References: <20230315132330.450877-1-abel.vesa@linaro.org> MIME-Version: 1.0 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,URIBL_BLOCKED autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760441779930878638?= X-GMAIL-MSGID: =?utf-8?q?1760441779930878638?= Instead of aggregating different corner values on sync state callback, call the genpd API for queuing up the power off. This will also mark the domain as powered off in the debugfs genpd summary. Also, until sync state has been reached, return busy on power off request, in order to allow genpd core to know that the actual domain hasn't been powered of from the "disable unused" late initcall. Signed-off-by: Abel Vesa --- drivers/soc/qcom/rpmhpd.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c index f20e2a49a669..abd999c74783 100644 --- a/drivers/soc/qcom/rpmhpd.c +++ b/drivers/soc/qcom/rpmhpd.c @@ -649,8 +649,12 @@ static int rpmhpd_power_off(struct generic_pm_domain *domain) mutex_lock(&rpmhpd_lock); ret = rpmhpd_aggregate_corner(pd, 0); - if (!ret) - pd->enabled = false; + if (!ret) { + if (!pd->state_synced) + ret = -EBUSY; + else + pd->enabled = false; + } mutex_unlock(&rpmhpd_lock); @@ -810,10 +814,8 @@ static void rpmhpd_sync_state(struct device *dev) { const struct rpmhpd_desc *desc = of_device_get_match_data(dev); struct rpmhpd **rpmhpds = desc->rpmhpds; - unsigned int corner; struct rpmhpd *pd; unsigned int i; - int ret; mutex_lock(&rpmhpd_lock); for (i = 0; i < desc->num_pds; i++) { @@ -822,14 +824,7 @@ static void rpmhpd_sync_state(struct device *dev) continue; pd->state_synced = true; - if (pd->enabled) - corner = max(pd->corner, pd->enable_corner); - else - corner = 0; - - ret = rpmhpd_aggregate_corner(pd, corner); - if (ret) - dev_err(dev, "failed to sync %s\n", pd->res_name); + genpd_queue_power_off_work(&pd->pd); } mutex_unlock(&rpmhpd_lock); }