From patchwork Wed Mar 15 13:23:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Vesa X-Patchwork-Id: 70218 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp2330733wrd; Wed, 15 Mar 2023 06:30:53 -0700 (PDT) X-Google-Smtp-Source: AK7set8bbwgBbWqLFmmxuegSF19lFnp97FXboToLL8qy5DMrLdmgU1YEnh2tEnuHgIi4YDKRtHI6 X-Received: by 2002:a17:902:c78b:b0:19e:8267:9590 with SMTP id w11-20020a170902c78b00b0019e82679590mr2263335pla.41.1678887053639; Wed, 15 Mar 2023 06:30:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678887053; cv=none; d=google.com; s=arc-20160816; b=M9sI91D9GYhk5wFSMvQMGm81qMHCTkWHLr5gqWD6E/XHHXG2gi6vAFa1GvoMxrBGWI KxmfBf2n7Cun4qJfKEoPZF92qej+FMZJVf5qNk2EhA+OdmExTnpQeJ8VLonwit5FimFh 4xr0ac901iTGO0xce9rkxTTrPaCzxfpRbrRNu9klW1ReCRE7u915novc+/3dBshQodV9 t2+GKo3cysFiljMJfD7BPQW2ivcBLLH3Klwsnb6Ff9FvHv4T7m3B/D9urpl1AZwsePzY RRiUyVK2M6Jh0pnv7lEAmmFuR+wAmmkZDaIBKtGthQ4xaY9yg2y16lUjoATZUzj1oees P9Dw== 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=HLRj53L/DjbMBhi79PBbCLq4uHXoSyceNvFogThLTB0=; b=i9bWb0/8RGWVzHjtZlC+2zyMQyXbG879xzwcXN0dVf3KZh1CV/sBj400KLSTwBPTHm I+PTaeFfzSE6sogxPhtwXE1b1uOYBmcE1b6LOkpf/IDLRQ7x9MLzV90oimo+t8Ary3VS 0LORqp72p8BeyI/C8+fYUxp5vzGPuuTR65eGRTK+CqKtIMyPL6bZE8dY37o39qU0Tiy4 xiW4F9Nt9B2tVy29QJFak7DyCRML90SZoZFWink/h47YEUmf7jg/Gq0xeKnU/7bsxeGV RFkKqLqVSpT54/SQq3IB9/iyrteMrp116laUlgjOT66fZEu9D/w7Ny03sm1UtLAFCvXS 9EQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="O83NQyj/"; 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 t15-20020a17090340cf00b0019a8fe30321si5279867pld.208.2023.03.15.06.30.35; Wed, 15 Mar 2023 06:30:53 -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="O83NQyj/"; 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 S232115AbjCONXn (ORCPT + 99 others); Wed, 15 Mar 2023 09:23:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232011AbjCONXk (ORCPT ); Wed, 15 Mar 2023 09:23:40 -0400 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77E43658E for ; Wed, 15 Mar 2023 06:23:37 -0700 (PDT) Received: by mail-ed1-x534.google.com with SMTP id w9so4703774edc.3 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=1678886616; 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=HLRj53L/DjbMBhi79PBbCLq4uHXoSyceNvFogThLTB0=; b=O83NQyj//J7bmfedXnmbIqeW8+JZ+xkH6PdT0B1LHXQwigwDA4kKO9qois1oqflooO 2qN3SbCw7sMLxHiCBH7UUzaSlQI4tGkIPl7tWzRhqwe4cPeQHepWNoSWdv1JkeiUSAqn 6SzVrAsKaY8+/+6upW+K0/kX1dagOxqA+52IjhgReVcifbfVHPco3q1/sknGmtHVlrny zCmslTLInyjOgsClAVV/udywSh2Gcem+dLJEEkkoouFM6o1cNve15fCMg3e293FtrHTG hgnBZQ8zlkCCYlgZaw+6j17I9qlldEHXyzFQlTMNuVVtaAODnnJm+KQvCRdBVtEzX7Il 8rzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678886616; 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=HLRj53L/DjbMBhi79PBbCLq4uHXoSyceNvFogThLTB0=; b=Uh3er56HEWPEbNwdtvXtDnziBIXVbPDzZkoCvwKV+vtgTcr+Bnfru4gj3K4EjpHjhh cj33gxXlul3QmYqwEMaq8PGtfWbquwddIkraoqaVK+MMyPHnjzwBnJA4t40VsNfW7kS7 PHSEGhiGndY6dk8i10l24j2jvQCJK6znBQGlpv2QhrVHWuPK0bEtSRD+QyWmuUGZDMAe zMmIp6oM+hIndrEHMUAEnbYlJIEHgi/ZJzmB020ZudsI+2RKAF5UHOgx90CenSblIP+b 4XwtUAdHEr/nsOQ/PR1xBNKxvOWWvLPARsKaiUQGDHodxd89XlvN603u1a3p+TwLldUj ibuw== X-Gm-Message-State: AO0yUKXymtdbF1f+R8BgIdoQZXPdBcdTr3oK2XFzK7tsDZ/thtcGVs1L +2d/+6Ru5sJbVBGZEe0RX9ovvA== X-Received: by 2002:a17:906:c2c3:b0:870:b950:18d4 with SMTP id ch3-20020a170906c2c300b00870b95018d4mr5975836ejb.5.1678886615800; Wed, 15 Mar 2023 06:23:35 -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.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 06:23:35 -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 1/5] PM: domains: Allow power off queuing from providers Date: Wed, 15 Mar 2023 15:23:26 +0200 Message-Id: <20230315132330.450877-2-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=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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760440670884281457?= X-GMAIL-MSGID: =?utf-8?q?1760440670884281457?= In some cases, the providers might choose to refuse powering off some domains until all of the consumer have had a chance to probe, that is, until sync state callback has been called. Such providers might choose to disable such domains on their on, from the sync state callback. So, in order to do that, they need a way to queue up a power off request. Since the generic genpd already has such API, make that available to those providers. Signed-off-by: Abel Vesa --- drivers/base/power/domain.c | 3 ++- include/linux/pm_domain.h | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 32084e38b73d..97d4e2f2da91 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -649,10 +649,11 @@ static int _genpd_power_off(struct generic_pm_domain *genpd, bool timed) * Queue up the execution of genpd_power_off() unless it's already been done * before. */ -static void genpd_queue_power_off_work(struct generic_pm_domain *genpd) +void genpd_queue_power_off_work(struct generic_pm_domain *genpd) { queue_work(pm_wq, &genpd->power_off_work); } +EXPORT_SYMBOL_GPL(genpd_queue_power_off_work); /** * genpd_power_off - Remove power from a given PM domain. diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index f776fb93eaa0..c9c0b4916e25 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -231,6 +231,7 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd, int pm_genpd_init(struct generic_pm_domain *genpd, struct dev_power_governor *gov, bool is_off); int pm_genpd_remove(struct generic_pm_domain *genpd); +void genpd_queue_power_off_work(struct generic_pm_domain *genpd); int dev_pm_genpd_set_performance_state(struct device *dev, unsigned int state); int dev_pm_genpd_add_notifier(struct device *dev, struct notifier_block *nb); int dev_pm_genpd_remove_notifier(struct device *dev); @@ -278,6 +279,11 @@ static inline int pm_genpd_remove(struct generic_pm_domain *genpd) return -EOPNOTSUPP; } +void genpd_queue_power_off_work(struct generic_pm_domain *genpd); +{ + return -EOPNOTSUPP; +} + static inline int dev_pm_genpd_set_performance_state(struct device *dev, unsigned int state) { 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); } From patchwork Wed Mar 15 13:23:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Vesa X-Patchwork-Id: 70222 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp2334573wrd; Wed, 15 Mar 2023 06:38:10 -0700 (PDT) X-Google-Smtp-Source: AK7set/7aVDqQhmHmDyTchflsuRtTcp3geyyw26zNmQINCDgImn4EsnhmkvqcP+N/aGhkKT3MSL5 X-Received: by 2002:a05:6a00:1a0a:b0:5a8:d38a:c6c4 with SMTP id g10-20020a056a001a0a00b005a8d38ac6c4mr17208921pfv.14.1678887489838; Wed, 15 Mar 2023 06:38:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678887489; cv=none; d=google.com; s=arc-20160816; b=XIdMMMAWcVyADeMJpSYoFEMskon7HN0nJO/Leqbcr9NEHJ2bsZxu0AIHAs1WVYj5EX dKpmlG+XrhBEQq6ducXrfv5KrQ4agD76Tuw39SeCXKRO8k03EACoi1ZMiEFdVq62hGEy +MC1S3Omeg5JYY95feRRwJjP0Qo6m9+V4e0zvoW7fp9rcHZs5YmShQeOA6gIBgb1zZrp UzVNW/FqA7i2XzGCaw5v/bc2fVo3cqZUmzYEo51bI7xquTfQaycoHz8oJsPaBLU1SPZs qJ5dapo9/CfgTpTHhg4SLSIQzkZ0qNu0eJ9bPagwMbMWza7JsHVw7J3BBq5aWTLgkIRm Si0A== 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=aqhvuVHwpVGYPj1wx2nfChRpVpIaSQgTHV9PFa+xcU4=; b=Ub16AoGuarTGXFTouNalpSlkI1YvW39qr1N/7OTwmgdmb9q0aKVdpKpsd80mzXNHSl IWuFwZsXbIJeV2MrIr+Ds6YJ46xnYyr9xAwh3VAlpCV5w7bdIKPvc6ldGEiXTA3bOpXG twLZFy3S4IZlvZGd0bNqxlu1mxKUyZ1rYud9MM9pHRC/eLG1COi54PEdHwKnmYc+tUk9 2s4Z+lwS5vG12I3l+Y0B8ee8eIGuByahem8eKlA1ieIFnZiZhZmJL1A/TY6sYQuZIigQ ILij1SY4JBA4jIvVYPBI9O4PeoZ6JRohWECu+RHE6ddnHyNUSEWf2iSfSHScufLLuxW+ pPUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UsAAKnqy; 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 j70-20020a638049000000b0050be80662a0si217940pgd.683.2023.03.15.06.37.57; Wed, 15 Mar 2023 06:38:09 -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=UsAAKnqy; 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 S232165AbjCONXu (ORCPT + 99 others); Wed, 15 Mar 2023 09:23:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232097AbjCONXm (ORCPT ); Wed, 15 Mar 2023 09:23:42 -0400 Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9D0B525B for ; Wed, 15 Mar 2023 06:23:39 -0700 (PDT) Received: by mail-ed1-x52e.google.com with SMTP id ek18so44347762edb.6 for ; Wed, 15 Mar 2023 06:23:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678886619; 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=aqhvuVHwpVGYPj1wx2nfChRpVpIaSQgTHV9PFa+xcU4=; b=UsAAKnqynOf+CGYjQ+eAfuXtM4OZkXDj+dNmcyHjBiZ8gH+LUv1IEFkcR1KNv3mAbg 2vCP3Lmn95yeoXEWlzjV8f3RbAtJ0hE0P4SmjtspJKfhJO2Upi+bMtyefb/QFelag0C3 1/5q7H92YbC4PM8Fgkfm1dGQGWBNVK40elIPH56ubtH1nkf++N5EHIfAV+jdnMdeT0hO WvdKXsW9aDx/5gXtJi4Oady7nf04mxv1cdhBW9xg2+2AtfyKbPzf+crEkufH6GMSE9yV Eu7J24eEAGSOr1DC0yZw4BV9lRDDGZH26NPaAtJ5MTzDXH3Yr8uUTBL7XoQ7f2myaYUW zOGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678886619; 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=aqhvuVHwpVGYPj1wx2nfChRpVpIaSQgTHV9PFa+xcU4=; b=Ay0kpWyAZ8/aKndJBHE/9QA9PdmJ71sR0YL7ij52FllgN5v+TFZu2HTHMoHhxwgG3U 51P65AqdkbHEhCBba+WjzD2KuO6w2mjOWBnH6yf3RfTnnQpZozr/lGw7KQFNzM4akzWY WcaRopi3b2ezvLDlC3D0D9feiDJwr5V8kBWxCWly9nrbfex82ymgdTyo7mhn3XxiI9bx 6xvI+6letJ5GTYX3cXarpjSk3nSnb7fwWUj6XKcuUmWZK+93ze7LwLl1GnFsQctPSqbI 2VFNTOlWKbr6qlcxNNQC8izWZdUHHqSiTzMKgUuOY/fc9ZCKbmHdNK/a9e0UR9VZmlcV F2ig== X-Gm-Message-State: AO0yUKUOTwXGhSYjcFzPMNf1iViGO0VCVnPUqERGpsgP4Afe87yHqsEq gDP+CU0z5wnX5eonYOw6YEVwlQ== X-Received: by 2002:a17:907:2076:b0:878:625c:c8ff with SMTP id qp22-20020a170907207600b00878625cc8ffmr6136496ejb.54.1678886619280; Wed, 15 Mar 2023 06:23:39 -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.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 06:23:38 -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 3/5] clk: qcom: gdsc: Avoid actual power off until sync state Date: Wed, 15 Mar 2023 15:23:28 +0200 Message-Id: <20230315132330.450877-4-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?1760441128570462578?= X-GMAIL-MSGID: =?utf-8?q?1760441128570462578?= In case there is a sync state callback registered for a provider, do not actually power off any gdsc for that provider until sync state has been reached and return busy instead. Since the qcom_cc is private, add a helper that returns the gdsc_desc based on the device of the provider. Finally, add the generic gdsc sync state callback to be used by the platform specific providers. Signed-off-by: Abel Vesa --- drivers/clk/qcom/common.c | 13 +++++++++++++ drivers/clk/qcom/common.h | 1 + drivers/clk/qcom/gdsc.c | 26 ++++++++++++++++++++++++++ drivers/clk/qcom/gdsc.h | 6 ++++++ 4 files changed, 46 insertions(+) diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c index 75f09e6e057e..9bcda6952c20 100644 --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c @@ -20,6 +20,7 @@ struct qcom_cc { struct qcom_reset_controller reset; struct clk_regmap **rclks; + struct gdsc_desc *scd; size_t num_rclks; }; @@ -234,6 +235,13 @@ static struct clk_hw *qcom_cc_clk_hw_get(struct of_phandle_args *clkspec, return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL; } +struct gdsc_desc *qcom_cc_get_gdsc_desc(struct device *dev) +{ + struct qcom_cc *cc = dev_get_drvdata(dev); + + return cc->scd; +} + int qcom_cc_really_probe(struct platform_device *pdev, const struct qcom_cc_desc *desc, struct regmap *regmap) { @@ -251,6 +259,8 @@ int qcom_cc_really_probe(struct platform_device *pdev, if (!cc) return -ENOMEM; + dev_set_drvdata(dev, cc); + reset = &cc->reset; reset->rcdev.of_node = dev->of_node; reset->rcdev.ops = &qcom_reset_ops; @@ -267,6 +277,9 @@ int qcom_cc_really_probe(struct platform_device *pdev, scd = devm_kzalloc(dev, sizeof(*scd), GFP_KERNEL); if (!scd) return -ENOMEM; + + cc->scd = scd; + scd->dev = dev; scd->scs = desc->gdscs; scd->num = desc->num_gdscs; diff --git a/drivers/clk/qcom/common.h b/drivers/clk/qcom/common.h index 9c8f7b798d9f..170266b4e9e8 100644 --- a/drivers/clk/qcom/common.h +++ b/drivers/clk/qcom/common.h @@ -61,6 +61,7 @@ extern struct regmap *qcom_cc_map(struct platform_device *pdev, extern int qcom_cc_really_probe(struct platform_device *pdev, const struct qcom_cc_desc *desc, struct regmap *regmap); +extern struct gdsc_desc *qcom_cc_get_gdsc_desc(struct device *dev); extern int qcom_cc_probe(struct platform_device *pdev, const struct qcom_cc_desc *desc); extern int qcom_cc_probe_by_index(struct platform_device *pdev, int index, diff --git a/drivers/clk/qcom/gdsc.c b/drivers/clk/qcom/gdsc.c index 5358e28122ab..af745907dc49 100644 --- a/drivers/clk/qcom/gdsc.c +++ b/drivers/clk/qcom/gdsc.c @@ -15,6 +15,8 @@ #include #include #include + +#include "common.h" #include "gdsc.h" #define PWR_ON_MASK BIT(31) @@ -319,6 +321,9 @@ static int gdsc_disable(struct generic_pm_domain *domain) struct gdsc *sc = domain_to_gdsc(domain); int ret; + if (!sc->state_synced) + return -EBUSY; + if (sc->pwrsts == PWRSTS_ON) return gdsc_assert_reset(sc); @@ -365,6 +370,7 @@ static int gdsc_disable(struct generic_pm_domain *domain) static int gdsc_init(struct gdsc *sc) { + struct device *dev = sc->dev; u32 mask, val; int on, ret; @@ -452,6 +458,9 @@ static int gdsc_init(struct gdsc *sc) if (!sc->pd.power_on) sc->pd.power_on = gdsc_enable; + if (!dev_has_sync_state(dev)) + sc->state_synced = true; + ret = pm_genpd_init(&sc->pd, NULL, !on); if (ret) goto err_disable_supply; @@ -496,6 +505,7 @@ int gdsc_register(struct gdsc_desc *desc, for (i = 0; i < num; i++) { if (!scs[i]) continue; + scs[i]->dev = dev; scs[i]->regmap = regmap; scs[i]->rcdev = rcdev; ret = gdsc_init(scs[i]); @@ -536,6 +546,22 @@ void gdsc_unregister(struct gdsc_desc *desc) of_genpd_del_provider(dev->of_node); } +void gdsc_sync_state(struct device *dev) +{ + struct gdsc_desc *scd = qcom_cc_get_gdsc_desc(dev); + struct gdsc **scs = scd->scs; + size_t num = scd->num; + int i; + + for (i = 0; i < num; i++) { + if (!scs[i]) + continue; + + scs[i]->state_synced = true; + genpd_queue_power_off_work(&scs[i]->pd); + } +} + /* * On SDM845+ the GPU GX domain is *almost* entirely controlled by the GMU * running in the CX domain so the CPU doesn't need to know anything about the diff --git a/drivers/clk/qcom/gdsc.h b/drivers/clk/qcom/gdsc.h index 803512688336..e1c902caecde 100644 --- a/drivers/clk/qcom/gdsc.h +++ b/drivers/clk/qcom/gdsc.h @@ -35,6 +35,7 @@ struct gdsc { struct generic_pm_domain pd; struct generic_pm_domain *parent; struct regmap *regmap; + struct device *dev; unsigned int gdscr; unsigned int collapse_ctrl; unsigned int collapse_mask; @@ -73,6 +74,8 @@ struct gdsc { const char *supply; struct regulator *rsupply; + + bool state_synced; }; struct gdsc_desc { @@ -86,6 +89,7 @@ int gdsc_register(struct gdsc_desc *desc, struct reset_controller_dev *, struct regmap *); void gdsc_unregister(struct gdsc_desc *desc); int gdsc_gx_do_nothing_enable(struct generic_pm_domain *domain); +void gdsc_sync_state(struct device *dev); #else static inline int gdsc_register(struct gdsc_desc *desc, struct reset_controller_dev *rcdev, @@ -94,6 +98,8 @@ static inline int gdsc_register(struct gdsc_desc *desc, return -ENOSYS; } +static inline void gdsc_sync_state(struct device *dev) { } + static inline void gdsc_unregister(struct gdsc_desc *desc) {}; #endif /* CONFIG_QCOM_GDSC */ #endif /* __QCOM_GDSC_H__ */ From patchwork Wed Mar 15 13:23:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Vesa X-Patchwork-Id: 70219 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp2330975wrd; Wed, 15 Mar 2023 06:31:19 -0700 (PDT) X-Google-Smtp-Source: AK7set8Zw35lIoKDS+Jf2NmEKuvJeifKF6UMj3ty+VpOgoeSw5jrK7FyU50mUMKmglTyXC3fW/aA X-Received: by 2002:a05:6808:19a9:b0:386:954b:61c8 with SMTP id bj41-20020a05680819a900b00386954b61c8mr1389993oib.7.1678887079014; Wed, 15 Mar 2023 06:31:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678887078; cv=none; d=google.com; s=arc-20160816; b=bi4/KN2NytNTap/KAPHbRugx9mli9eltwcuBMoTywFXvfKfY64kKyuU+xO45K8eRVw D8lg0PH+WOnYD5os73hQB8SwQcrFBL5Cnz3O/Q8VlS87L/2vZqsA1EcHy5ctbfzba/yy O072VZRHecMHoPosAPrXdzycLiBR9VeyG1GW8j2a2fDwWpYk70MasNyHcXpHUFCc+DDs w063JtlirmyjCDuH3cV8dkY0MHdC2HdFaTgLD6bNKOjMBDmfTgL34TqUH3m81eM7PPgY vh490+t/021khrTt93rMzSgKHT4u4Dj26ruru0CNhSKR0kkqMuJ5CBjQXG9roQWNm6HB o+Xg== 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=z6Q5mnwZerUqt0rPDmFb5WgXIlQQvBuhlqFXmv7x/E8=; b=XVlOS0yJmmmIvGJ8KcmDIWkd7dlX23LT3huz7nDlkZZuBKghlvBg2CJC5E6uOGBgft h6NIrFfKcxX6WN8Z6MW59z1uXWzPH7ZALjOkTbxiw2zlF5Ec1xMuHbdUCGS4cH3NnTjC vZ576Q5AvjFAZVM0MWBLDi0om8l+OtUUOKqL6L4kjbeBPkyTs46oNfV7kDCOWAG8wAod cbEDozaFAAclZ1K0lHYeF3DuY2pJ8KP/Lh66Xy9XgqKqLOZ/V+FwUWybIjkkzq8d8N4r Irygs5aePil0O7IRBzea8HNtWXuOJKD+hgj5wc8z8yCrsKKIdh4YPqvxuwp7Gl40IuBM NOsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=v8CeUBfc; 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 x25-20020a05680801d900b003841e1c3701si4236729oic.265.2023.03.15.06.31.01; Wed, 15 Mar 2023 06:31:18 -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=v8CeUBfc; 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 S232181AbjCONYE (ORCPT + 99 others); Wed, 15 Mar 2023 09:24:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232131AbjCONXp (ORCPT ); Wed, 15 Mar 2023 09:23:45 -0400 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8EACF18B09 for ; Wed, 15 Mar 2023 06:23:42 -0700 (PDT) Received: by mail-ed1-x52d.google.com with SMTP id eg48so16255095edb.13 for ; Wed, 15 Mar 2023 06:23:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678886621; 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=z6Q5mnwZerUqt0rPDmFb5WgXIlQQvBuhlqFXmv7x/E8=; b=v8CeUBfci+2vyzQEs4Rv2vSs3xgOflEwBGX290bxPufp8u8LNIOMlkwcnVzAd/JHTS fKtlg1yp861KIf8/L1MJwZILV+rQXo66j3Yxt9GK2ezkucnxv+S+0i/EnOuoYDUhJOV3 B6JpC0fqm3lrN2erdD+046lrlomd/a16+nW2JchX0Jb24U9w1cd/ZJNtpLSUYRhQsIlu j0VP1QxVb20iygWUI9vh2kc1KeznBSrLdSCryvv3cS+hgbtWk5/gbaQj/AD3vNkuqYPU A/IWUl2UBUfC+Ob8tJcCN4OaDEuUsJbZqVAv+jnL6QKj1HEuwp2mjGfX7wCJLSZMrfzW EfjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678886621; 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=z6Q5mnwZerUqt0rPDmFb5WgXIlQQvBuhlqFXmv7x/E8=; b=PNVnBet/b9y6oG5lMVXDZVkeBen/SOCK19pDSsHAsXEp+2jrwnhmGdJFf6lW8K8dxx rPhl/3k03nZntPTrFJNY9nl8oTDc0trxjMSkI4yqjqEhqG2p211CDht/6fQwaZsQmuIQ YJwkUYu4K72slUpfZO2+j0q2lzASTjL3RRDC5IOzvOA8MV1a/uAt6BtfxNWKb95Z6/hJ Us7SUscbjsR7K+50qk7bfQX9TGkSusz+GNJKaJ4UOg8jUk4Z3v1cYIrOw3O4CVyDaKOl FMOfapeuZ4mLIn+ap8gjXNd0YBghIVaLuKQdVXHZM5bSVGPO/mBbx2Jr8cJAqn/qRm2R jljQ== X-Gm-Message-State: AO0yUKU9ETsh7/Ph9gOqiG8Dv6tj3MGCRpFd/Yk7C/EvBH8YLw5k5uuD dtBFw2fr1fHOmTQUHM6xJTabqA== X-Received: by 2002:a17:907:7f8e:b0:92f:1418:27f0 with SMTP id qk14-20020a1709077f8e00b0092f141827f0mr2127459ejc.34.1678886620990; Wed, 15 Mar 2023 06:23:40 -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.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 06:23:40 -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 4/5] clk: qcom: Add sync state callback to all SC8280XP providers Date: Wed, 15 Mar 2023 15:23:29 +0200 Message-Id: <20230315132330.450877-5-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=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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760440698159530324?= X-GMAIL-MSGID: =?utf-8?q?1760440698159530324?= Now that we have support for sync state delayed disabling of unused power domains and a provided generic gdsc sync state callback, add it to all the providers related to the SC8280XP platform. Signed-off-by: Abel Vesa --- drivers/clk/qcom/dispcc-sc8280xp.c | 1 + drivers/clk/qcom/gcc-sc8280xp.c | 1 + drivers/clk/qcom/gpucc-sc8280xp.c | 1 + 3 files changed, 3 insertions(+) diff --git a/drivers/clk/qcom/dispcc-sc8280xp.c b/drivers/clk/qcom/dispcc-sc8280xp.c index 167470beb369..f97bda6c7e3a 100644 --- a/drivers/clk/qcom/dispcc-sc8280xp.c +++ b/drivers/clk/qcom/dispcc-sc8280xp.c @@ -3199,6 +3199,7 @@ static struct platform_driver disp_cc_sc8280xp_driver = { .driver = { .name = "disp_cc-sc8280xp", .of_match_table = disp_cc_sc8280xp_match_table, + .sync_state = gdsc_sync_state, }, }; diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c index b3198784e1c3..222bca0f8093 100644 --- a/drivers/clk/qcom/gcc-sc8280xp.c +++ b/drivers/clk/qcom/gcc-sc8280xp.c @@ -7441,6 +7441,7 @@ static struct platform_driver gcc_sc8280xp_driver = { .driver = { .name = "gcc-sc8280xp", .of_match_table = gcc_sc8280xp_match_table, + .sync_state = gdsc_sync_state, }, }; diff --git a/drivers/clk/qcom/gpucc-sc8280xp.c b/drivers/clk/qcom/gpucc-sc8280xp.c index ea1e9505c335..a9f0e7bbacce 100644 --- a/drivers/clk/qcom/gpucc-sc8280xp.c +++ b/drivers/clk/qcom/gpucc-sc8280xp.c @@ -453,6 +453,7 @@ static struct platform_driver gpu_cc_sc8280xp_driver = { .driver = { .name = "gpu_cc-sc8280xp", .of_match_table = gpu_cc_sc8280xp_match_table, + .sync_state = gdsc_sync_state, }, }; module_platform_driver(gpu_cc_sc8280xp_driver); From patchwork Wed Mar 15 13:23:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Vesa X-Patchwork-Id: 70220 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp2331902wrd; Wed, 15 Mar 2023 06:32:52 -0700 (PDT) X-Google-Smtp-Source: AK7set+lGu0jfZxys+DvfhxcJAXuSOOScIR3dO/Upa48GmsR5PtNXxz5DF9h+3djV0bP+YyrRla6 X-Received: by 2002:a17:90b:4a83:b0:234:a9df:db96 with SMTP id lp3-20020a17090b4a8300b00234a9dfdb96mr42007519pjb.33.1678887172179; Wed, 15 Mar 2023 06:32:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678887172; cv=none; d=google.com; s=arc-20160816; b=NjfzkLMnqgkYXQGextZWhPlEIBhV7BeU3szbE2Zmd33DYsmK0zQLeZ6qh/EQtZU0iM vPahBmeOUAwfhhs71L/+KWXoZahIwOpazO4iwIoh50gLTmukBOkGYoKgMCWBkK8vEk03 FrRfuqtklxDSUwa9a9Vx5QMAIz2PFqmVp/EdJL+wY/BxsWvBVj7MSuJA2rwNVlDYkyK4 KbwUCxIYS5HmoKu5WV98tkssUW5lFcGfHgat+sRMnzytUl8IvySfdIec8ET68mMeg8JM kPb3ylJGnyMTF32gFNdEbP3xTTOxQeKdH/d22QXCfTeCeVLs42+J8RP+glb2vD8tAkyC lpXQ== 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=UnW0CMrrRD3o9YvTtj/2PZfd1w3APSitkBSkSzkAq3A=; b=sIOIB8O0CVNY7Q5tdlJ/4etRXbmcOyUGxjjy1wP5dTdev9C+7t5ThukvDo+d6l0WJJ WnIyAg7btCFJItqWUkqId0ilJhinxpUFjAUzMvKI1qnlhbMcJqp9StzR7hIB+jhKs5jc 0kdC+02VKORTYKb5608bzRMo3ZS7zFgMdzI+nCPdlGprG88t6DGYeJDlD1GoL9urLDk3 q3WNINCfCrn/jO7vi5ztAscd5I9vWwQExYa3NEgg/Qf1eFkAIbvY+JdzDwTs6l4Pccv3 /CD6EFZuSVQXxKoxPUI2oizpAofhtjYoAknRmiKqFkFWAJS2DiSwjIZDG6RNmSkuV2Yg y0FQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cIoenhYm; 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 t142-20020a635f94000000b00502e28a848esi5070341pgb.353.2023.03.15.06.32.33; Wed, 15 Mar 2023 06:32:52 -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=cIoenhYm; 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 S232257AbjCONYB (ORCPT + 99 others); Wed, 15 Mar 2023 09:24:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50758 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232135AbjCONXr (ORCPT ); Wed, 15 Mar 2023 09:23:47 -0400 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A36876078 for ; Wed, 15 Mar 2023 06:23:44 -0700 (PDT) Received: by mail-ed1-x536.google.com with SMTP id eg48so16255425edb.13 for ; Wed, 15 Mar 2023 06:23:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678886622; 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=UnW0CMrrRD3o9YvTtj/2PZfd1w3APSitkBSkSzkAq3A=; b=cIoenhYmTDDKZ0euB2ODKr3LotX4ppL2RTmY7rx4LHYybPdccQrPSTr+zjPffclIwD k+6Q4fDW3EAwNRRuFsbyhhImD8R3omHYItX05zQqnwsqlABoIOICjL/Cf/X9pC4J8Wjv HZj1lO/Nsh2knHgaHr7f2V67UlTJVZWVAoynksoC9l8EeKEowzrk0pY+o+vQHm3IeQnm PvdZtWTxW3F3JCNkpG+rgvq0x8m1XaGQ7HaEivuI/+dOvcEeU3nYVP0i9mtPnqsRSVM6 X1N4cWtUjSaXy2FJCd1/duAtLA7rV8DmP43e1rCd0jFSF52WSdUK/eikCZgXZ0TRFum3 eCdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678886622; 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=UnW0CMrrRD3o9YvTtj/2PZfd1w3APSitkBSkSzkAq3A=; b=NlZOEt1rLgxVR1LCQDv0fU78EjpchIegKV43FCMaL98ZYuGqGHvSS56K7/zM34pZE/ YPELBt1xL+3s1N8T7uYE3wOa3VIonpwynhd0XtIUCSxVI4q7X6wZrlC8ReThyT2Smh0X IU6am7EIGWHx1R1KVJpxdydMrK/IsM8ax3UdstNEzV6UHTltuyNaDSBdqLsIuxZXJiP9 JG19NJYyBMegrh54aaTFGekKSMkNQ1SahbBOxycyh5fVNOYQTcx3ffhnq8MxNnD1AdQj B9WT9ciCnlEiDoxqAqdtusqJ3fgP3EfNMIDafR3TkkvW+wL2DUYevBv4HhoP2/39iMA4 dJiw== X-Gm-Message-State: AO0yUKWZJMyFuC/zQZd/78lG1S/KRcXqu4sltO8qijF0ngMmbyQROX1c 1Potf9iBRD4T9VmJDzEa5Ei2Dg== X-Received: by 2002:a17:906:dff5:b0:8b1:3193:4874 with SMTP id lc21-20020a170906dff500b008b131934874mr5703584ejc.46.1678886622632; Wed, 15 Mar 2023 06:23:42 -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.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 06:23:42 -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 5/5] clk: qcom: Add sync state callback to all SM8450 providers Date: Wed, 15 Mar 2023 15:23:30 +0200 Message-Id: <20230315132330.450877-6-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=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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760440795782447925?= X-GMAIL-MSGID: =?utf-8?q?1760440795782447925?= Now that we have support for sync state delayed disabling of unused power domains and a provided generic gdsc sync state callback, add it to all the providers related to the SM8450 platform. Signed-off-by: Abel Vesa --- drivers/clk/qcom/camcc-sm8450.c | 1 + drivers/clk/qcom/dispcc-sm8450.c | 1 + drivers/clk/qcom/gcc-sm8450.c | 1 + 3 files changed, 3 insertions(+) diff --git a/drivers/clk/qcom/camcc-sm8450.c b/drivers/clk/qcom/camcc-sm8450.c index 51338a2884d2..6ae360898aee 100644 --- a/drivers/clk/qcom/camcc-sm8450.c +++ b/drivers/clk/qcom/camcc-sm8450.c @@ -2847,6 +2847,7 @@ static struct platform_driver cam_cc_sm8450_driver = { .driver = { .name = "camcc-sm8450", .of_match_table = cam_cc_sm8450_match_table, + .sync_state = gdsc_sync_state, }, }; diff --git a/drivers/clk/qcom/dispcc-sm8450.c b/drivers/clk/qcom/dispcc-sm8450.c index adbfd30bfc96..45f4ea3d26bc 100644 --- a/drivers/clk/qcom/dispcc-sm8450.c +++ b/drivers/clk/qcom/dispcc-sm8450.c @@ -1803,6 +1803,7 @@ static struct platform_driver disp_cc_sm8450_driver = { .driver = { .name = "disp_cc-sm8450", .of_match_table = disp_cc_sm8450_match_table, + .sync_state = gdsc_sync_state, }, }; diff --git a/drivers/clk/qcom/gcc-sm8450.c b/drivers/clk/qcom/gcc-sm8450.c index 84764cc3db4f..f2b542753553 100644 --- a/drivers/clk/qcom/gcc-sm8450.c +++ b/drivers/clk/qcom/gcc-sm8450.c @@ -3262,6 +3262,7 @@ static struct platform_driver gcc_sm8450_driver = { .driver = { .name = "gcc-sm8450", .of_match_table = gcc_sm8450_match_table, + .sync_state = gdsc_sync_state, }, };