From nobody Mon Feb 9 09:08:49 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46FE8EB64DB for ; Mon, 19 Jun 2023 12:32:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230096AbjFSMci (ORCPT ); Mon, 19 Jun 2023 08:32:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229688AbjFSMcf (ORCPT ); Mon, 19 Jun 2023 08:32:35 -0400 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08DED91 for ; Mon, 19 Jun 2023 05:32:34 -0700 (PDT) Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-4f8775126d3so27817e87.1 for ; Mon, 19 Jun 2023 05:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687177952; x=1689769952; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=6kQXXt7p+guLFHPeMdd87LrI9K2HMO9Lr8NPYCPaiaU=; b=aUrEmIOqBaZuBpXpLhfXNUlXBrksflmXT1QYahTBgtXnKKN3h2wgQfAEtJ2B/2f1up nxsws/gt5wzQ4SlhfAxOSS5bPL3xEWHUruRzq7RO5qcBTgOUH3xWoTP3FwZEMXGtxNgZ ciAdYnJwF0L+odYzmRK4hvjDg095odpNHJQoW9sE/Z296NpLCaksgVZjlqGSyLwl8Yaf eJp6SLJ1i/7z99XpYkyaGMlsqG/TzOCCGit8f5zy5S76XSMSSt7b0vuET+AOYv/Hoowg 7/X+4qE5gMohu/byY1ITg0stnrgnjj0meB6gvkWX4jzP3xki1DqEmK3DPmZAVkC6oaBD 93iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687177952; x=1689769952; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6kQXXt7p+guLFHPeMdd87LrI9K2HMO9Lr8NPYCPaiaU=; b=ah7tT28kFl3VixVx1rhYqgaZ5EMDZCOb/MPEmxlB+9uC4ZtmvMo8i1y1BVYBRo7TQB 2HiQlilfwsc/7aXFhyMlaGMSxlT3mP8w4hbmhwtRij/tzRq+zqtYC8r4hIIifCJewZSv PFiFfzvEEFBKy7V5yNZnIDKeZRID77c0vjEvNzkK2mzSPXR3RzNagiHPw8ShjT7UUyvd zjVjet8YVo/TuFXlqFrGOEtg+lZ+RxHNiHsWceWBuSmGALLg+IvG0QLhJmyOntTpHsTW sSTFCa4L5HOQnrL4slt/NIogYBz5acsoEVZszRwAdeZxGWF3jWtgNB2qe6IbuKP9jxNI VxGQ== X-Gm-Message-State: AC+VfDx6k62e86EtBD83iytV9+jutdJ1OtqJ5pis/uDE4aHC8qDSlMOy ip3bSMuYtC9C9BNDMPQVWxJc/w== X-Google-Smtp-Source: ACHHUZ52egGatzVJmcc8tV1/fH13uuqeyMtxMUK+2ORfAoCImdlFMJInTDDxmEGpv640/Hxi7LXvWA== X-Received: by 2002:ac2:504f:0:b0:4f5:1ac9:ab1b with SMTP id a15-20020ac2504f000000b004f51ac9ab1bmr6076236lfm.23.1687177952284; Mon, 19 Jun 2023 05:32:32 -0700 (PDT) Received: from [192.168.1.101] (abyl242.neoplus.adsl.tpnet.pl. [83.9.31.242]) by smtp.gmail.com with ESMTPSA id y27-20020ac2447b000000b004f4c3feb9fbsm4240238lfl.61.2023.06.19.05.32.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jun 2023 05:32:31 -0700 (PDT) From: Konrad Dybcio Date: Mon, 19 Jun 2023 14:32:26 +0200 Subject: [PATCH] soc: qcom: rpmpd: Add sync_state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230619-topic-rpmpd_syncstate-v1-1-54f986cf9444@linaro.org> X-B4-Tracking: v=1; b=H4sIANlKkGQC/x2N0QrCMAwAf2Xk2cBadW7+yhDpuswFZlaaKsrYv xt8vIPjNlDKTArXaoNMb1ZexcAdKohzkAchj8bga3+sG9dhWRNHzOmZxrt+JWoJhXBq/KU9dyf nWwfWDkEJhxwkzlbLa1lMpkwTf/6z/rbvP9iqYpl8AAAA To: Andy Gross , Bjorn Andersson Cc: Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1687177951; l=2369; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=4R5E7B3l629um2WTAAe7o796GIVLmPC9TwVvJNOq4pA=; b=u6dNKI9qG7a4/XqA4lcu+SuPwfg6a4CxyLNj4pIXhVfr4Gq0owPzf0Fe164la24Pkuhn8y0Lu KF4iXn4AzonBZzBv9kGV6v3A7p7S8XBw13ca1GF6MVLoeg2ZLAOvCfq X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a sync_state implementation, very similar to the one already present in the RPMhPD driver. Signed-off-by: Konrad Dybcio --- drivers/soc/qcom/rpmpd.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/drivers/soc/qcom/rpmpd.c b/drivers/soc/qcom/rpmpd.c index 99b017fd76b7..fa58c04214ee 100644 --- a/drivers/soc/qcom/rpmpd.c +++ b/drivers/soc/qcom/rpmpd.c @@ -58,6 +58,7 @@ struct rpmpd { struct qcom_smd_rpm *rpm; unsigned int max_state; __le32 key; + bool state_synced; }; =20 struct rpmpd_desc { @@ -823,7 +824,11 @@ static int rpmpd_aggregate_corner(struct rpmpd *pd) unsigned int this_active_corner =3D 0, this_sleep_corner =3D 0; unsigned int peer_active_corner =3D 0, peer_sleep_corner =3D 0; =20 - to_active_sleep(pd, pd->corner, &this_active_corner, &this_sleep_corner); + /* Clamp to the highest corner/level if sync_state isn't done yet */ + if (!pd->state_synced) + this_active_corner =3D this_sleep_corner =3D pd->max_state - 1; + else + to_active_sleep(pd, pd->corner, &this_active_corner, &this_sleep_corner); =20 if (peer && peer->enabled) to_active_sleep(peer, peer->corner, &peer_active_corner, @@ -973,11 +978,38 @@ static int rpmpd_probe(struct platform_device *pdev) return of_genpd_add_provider_onecell(pdev->dev.of_node, data); } =20 +static void rpmpd_sync_state(struct device *dev) +{ + const struct rpmpd_desc *desc =3D of_device_get_match_data(dev); + struct rpmpd **rpmpds =3D desc->rpmpds; + struct rpmpd *pd; + unsigned int i; + int ret; + + mutex_lock(&rpmpd_lock); + for (i =3D 0; i < desc->num_pds; i++) { + pd =3D rpmpds[i]; + if (!pd) + continue; + + pd->state_synced =3D true; + + if (!pd->enabled) + pd->corner =3D 0; + + ret =3D rpmpd_aggregate_corner(pd); + if (ret) + dev_err(dev, "failed to sync %s: %d\n", pd->pd.name, ret); + } + mutex_unlock(&rpmpd_lock); +} + static struct platform_driver rpmpd_driver =3D { .driver =3D { .name =3D "qcom-rpmpd", .of_match_table =3D rpmpd_match_table, .suppress_bind_attrs =3D true, + .sync_state =3D rpmpd_sync_state, }, .probe =3D rpmpd_probe, }; --- base-commit: 47045630bc409ce6606d97b790895210dd1d517d change-id: 20230619-topic-rpmpd_syncstate-f62785941281 Best regards, --=20 Konrad Dybcio