From patchwork Fri May 23 13:39:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892205 Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 829DA29375B for ; Fri, 23 May 2025 13:40:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007644; cv=none; b=ULdzVYJOzsJlsDoevIJPZwqoEe2SVYQV91oGj4lprP/Smxgb9KdF/rqOEhFgoYK8kJMf0cGa2P5SYtIE0pjs17QQQolD5euAydIy1mr9CH2gKdG9qY41z1LiC3jFAD58vSpc6Wo8pXd6GMr8q8oZ3vju+kOnptTepL44HsdkP7w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007644; c=relaxed/simple; bh=ZWuXoHRykjcQLvugNPxk6lMikozG+4QpwkTnChGz2TI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hE24sYJprzA/UG5pNf1G5Il5lrYAmAab8NrKKG/LA5cKKO5gy2tZReOOq3TqOAiIx7MCL/DVKztvw6Pwr/JAPUx29zTvSObM6h9T4XSMX2iZZ8WsFQdsdJid9/QnU57z0wZsJvV/oMp6mL2Ezmv7n94z2pN0+HrAresJ++aTtK8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=s5SO9le5; arc=none smtp.client-ip=209.85.167.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="s5SO9le5" Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-551ed563740so8326583e87.2 for ; Fri, 23 May 2025 06:40:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007641; x=1748612441; darn=vger.kernel.org; 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=pVuyQaWXDo32LSLemr1Wiyb/FTBR994cD4zXDWOXk7w=; b=s5SO9le58+lcREccGO3MaZ3Nx2+KdSXzrVQbArBo4z61JHHrAOBhqqSYXX6up24zAJ +YcOiTuf6q4mTwzO4Xj+j1H0WZSL+YBaXmpTIiJYDw4X7PdcOpIDCbp48Vn92MKXpTR6 Xzh5kUB1zNtEa1WzfWZQfPOlQt6Qd23OgwXIy39LqJMax2+Fcz+8OXft8e594mheGooa pcj3++Cjh/+IbvacuYQg2l+CeYdLndpCI088jbEPjgUt78RRTR7t41H7Tbc5v5MdZNmk vK5Kaum5Vyl6a82bL7Mkt2foMr7B6Mj1L/7DMcoU8RFxo/m9wI1/WYgLuen7bfJ1HkP7 SmVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007641; x=1748612441; 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=pVuyQaWXDo32LSLemr1Wiyb/FTBR994cD4zXDWOXk7w=; b=dv8W6b3El7DXrk1Oneh44ai/56U9vt2lcg3drGJTrXv59+8r2PFXWIBey4Qh4dKFvt CYrO6E60zSzJxyvVEx1mbUhd/zea0/3xIy9mWXP7dgHI8WPTVduySgK63ca4v5CqwD27 xWtaKcXBZK+Drk/ljgjeiOK1m3NJd25Yw2/9l5UhMlVm5CafuRqJQA6iQN57adBP7xAv vynuGMveUTbA6OAD6ks5pFXzls0n2DHOKkbgDSu+6LtLfng9vdXGtCZ9CTBTB6ztmUgd NcRmLGu/4KPUZzUnjlkLKXDhi5Su3co/+VUgfwJSafrITQh07KGhfC0qWPVIbbRjPcUt vZNQ== X-Forwarded-Encrypted: i=1; AJvYcCW+8c3v2ZWfEMmqUM5iPqpsu9n5WPWKCNmIyZRxC7vuFhgvlphYc9smdhDIzDjw4aNHmHBaR/4pJw==@vger.kernel.org X-Gm-Message-State: AOJu0YzIy/HOB9RvBpkaF7xcIGAQnzeTgL2HmV/ZkUk3rs452T+307vF CKfyDGJQA7jQd8tXNtdaSWpQM8BfgdrHyEoTlWyDYSEazjNEkwhQp+hAhuVyqthDG6c= X-Gm-Gg: ASbGnctQv6IUy8/J+q7OhJaxjJTPJxhRFmi5lQFgnIMbEJx80aga0SVfJyFMpSuq6p5 UcVABIwHCKPNCaW7q7GwfpsJLi8xVL81ez60/sANcjRAK5Is2RM7wtPlr6RC/HDZm3VugMHa96x 20TQU1Nrl0iYubzVP2xchag0z7NHumcgAVXB2QSgM70dImFyq9+Cy3HIyLOx1fWoQxD2q49ty0f TaGKRzVvzNFvVp9OgbXMMk0aZiO4a+2bZszNYRqKIX07avQmHyV5uoBumNWx6rsic045GGfiLEF RgzbO8mRpcW1VroVl5xax3FzCb4Z9AP/50WQZZe/ZAgV8uSgj8sG42Or2HQUxMpT1Z5EPR1MkqI mP/0A4sXxSFyMNzyMFu2t+mL+iQ== X-Google-Smtp-Source: AGHT+IEVIbZ36oRuBgtUIV/gY2wrVcuoRcXYW2ew4UfjOMiCZ3z4VNYKumXWYXyWKY98xtuLk0dWog== X-Received: by 2002:a05:6512:22c9:b0:551:eb71:4aa8 with SMTP id 2adb3069b0e04-551eb714cbdmr4668192e87.25.1748007640612; Fri, 23 May 2025 06:40:40 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.40.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:40:40 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 01/21] pmdomain: core: Use of_fwnode_handle() Date: Fri, 23 May 2025 15:39:58 +0200 Message-ID: <20250523134025.75130-2-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Let's avoid accessing the np->fwnode directly and use the common helper of_fwnode_handle() instead. Suggested-by: Saravana Kannan Signed-off-by: Ulf Hansson --- drivers/pmdomain/core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index ff5c7f2b69ce..9a66b728fbbf 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -2557,7 +2557,7 @@ static int genpd_add_provider(struct device_node *np, genpd_xlate_t xlate, cp->node = of_node_get(np); cp->data = data; cp->xlate = xlate; - fwnode_dev_initialized(&np->fwnode, true); + fwnode_dev_initialized(of_fwnode_handle(np), true); mutex_lock(&of_genpd_mutex); list_add(&cp->link, &of_genpd_providers); @@ -2727,7 +2727,7 @@ void of_genpd_del_provider(struct device_node *np) * so that the PM domain can be safely removed. */ list_for_each_entry(gpd, &gpd_list, gpd_list_node) { - if (gpd->provider == &np->fwnode) { + if (gpd->provider == of_fwnode_handle(np)) { gpd->has_provider = false; if (gpd->opp_table) { @@ -2737,7 +2737,7 @@ void of_genpd_del_provider(struct device_node *np) } } - fwnode_dev_initialized(&cp->node->fwnode, false); + fwnode_dev_initialized(of_fwnode_handle(cp->node), false); list_del(&cp->link); of_node_put(cp->node); kfree(cp); @@ -2916,7 +2916,7 @@ struct generic_pm_domain *of_genpd_remove_last(struct device_node *np) mutex_lock(&gpd_list_lock); list_for_each_entry_safe(gpd, tmp, &gpd_list, gpd_list_node) { - if (gpd->provider == &np->fwnode) { + if (gpd->provider == of_fwnode_handle(np)) { ret = genpd_remove(gpd); genpd = ret ? ERR_PTR(ret) : gpd; break; @@ -3269,7 +3269,7 @@ static int genpd_parse_state(struct genpd_power_state *genpd_state, genpd_state->power_on_latency_ns = 1000LL * exit_latency; genpd_state->power_off_latency_ns = 1000LL * entry_latency; - genpd_state->fwnode = &state_node->fwnode; + genpd_state->fwnode = of_fwnode_handle(state_node); return 0; } From patchwork Fri May 23 13:40:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892204 Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DCA2D293B7A for ; Fri, 23 May 2025 13:40:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007647; cv=none; b=nnHgCVYEtE61/YVnDtRRKMn/nnLT/5nWxMNBRw6TxuErI0KQMvBMVW8JV9JyMcq5VaBirggZnIX8GVPeNeJpWMWtFvalTf8cJ5FAaKgGuurOvpfFIbSU4SA4YtIPCAXs1jvDlHdkP7HtOV75BHChf+s0DA1gk26phgak/kOyVl8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007647; c=relaxed/simple; bh=rvDBm88S7HVgvVUDiuw3q7zPuLExbVy9UL4/VZLr+SY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=amGEehpKNC/k5vEr0XllCRGvE1vZftcOhKMEExiVHXwMbouwAl13erJxxUlFc1c8WIXJtVdsepxxUmhgO5qdwHrf4JsRa8zYz3KsoigUQe97Hlnd/2IQsn0jjnO+Q60YNlTemnwWu4EptE+yAjaz7IfCNmCY8heZxy7TS4S8pqA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=hZRBJL0P; arc=none smtp.client-ip=209.85.167.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="hZRBJL0P" Received: by mail-lf1-f49.google.com with SMTP id 2adb3069b0e04-551efd86048so7532782e87.3 for ; Fri, 23 May 2025 06:40:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007644; x=1748612444; darn=vger.kernel.org; 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=3dwV7gI+Nsvg70NFtF53M46En6xO9EIKkeyF4GjRazs=; b=hZRBJL0PCmBos6X357czaEbqtH3FAhvv4JD2xiorvpaPCBFcz3kFCgkv7AJHwe2XGJ 8Td/VvgUoeQEabpMiuHQpufyVu42slGfXiL/phdgxeo2Kc9ga7L+nR0oCPZB5Prdg6LO l5nmjfsv03aDFPun43w7KJb0zp+op92zT5mMXhSC+GE/i0SlWHiz5nvVenMCJHeL7t3N CeAb1Sw0kAR5ZRLHeSqQBvsAa2wWClyyQ6s4vQsaVt4nfnz7sdhqIurPV+g4/CdNTTfg 0wDuZz+QZMuSG/Kv2BEvVsb9SdL38r4YUfjAgJJOHBV22o66sdi4NuHwQHp2RB4ja+QB WtAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007644; x=1748612444; 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=3dwV7gI+Nsvg70NFtF53M46En6xO9EIKkeyF4GjRazs=; b=YBaTHsj7o2x8MqkRaZUO8jt2P3H2D8l7RCHirPcXPjgiF/ZtafANZeJz2GYJUUDv5d fUGSQlAPRTTq9r1y3rsZKyjHYC6qlBWncIncDajyBz/C2YR1fNHgawfUTxnO1XbjUAe5 VWau2zdsM6V/Koy6GCSzYbokSUuQKoE9daE99sAm9CNVURzSIc6znF8m2syLPlO1fza5 5DUrzoqHouowgYDzX26YA5Qc3/mht8sMJzRyu7wiJSOsIwP6FuCmI9E/SeO8ekz+umyv Z4Q7afSzth3GIUZ5Ah5ufwZ7zkXEhHmb6ayWQaHCwZJM5St5mQ1Q6uv/CsFHvnBUuPBL FRTQ== X-Forwarded-Encrypted: i=1; AJvYcCVeA/GBkFOR73XXV5EKvWbWLdtKiWSvKiGbjiY5gz29lUYET3+ISGBkNYJ7s+Bksyhhug4Ne+yeMA==@vger.kernel.org X-Gm-Message-State: AOJu0YzRyBukIRKSVsDj9PK1I2LE7obUBQJVVBxHr/PY6h0KHDuuwA3B AuOi7g4G7c8AejJQzzC0qVzSLvOhaFZA3+6+blfnbufLtcaBCMnKayIL/k0LumNH758= X-Gm-Gg: ASbGncsBdxF9qzGp7TxEJuoDxnUWmLe0gB1E0BEEI0HIz9FAAG4U+IQ+U2gQcUAGRYy ciMQDL1xiROiqIBkYURO0AnEkczKEp125xjTvwbuYpsA+lCU75WK7Dr282sY25WZ/gV7twEjsxV UsErLSAUIHxiT91b7E3AHmaTCuBVeTHbSiSgvIbjSZLWdyiQjLDXaIlb9GHt6pg9WWg5IaY2dBT 7+vynFu9AubnRhIQzxysWXZONB5wzW/VA1FOfG3fKSTIdVJkQ3ixZTgGzgFW3dVR/Vx7+Cs3T2Y hGpbYg0TLn4blcwoqSg6bPJ1rL7tS0N3MAYM9PVZ/UhWqa++ZpJfZgDm1CQqRabYEU45JfGGKk0 YD+g4n8ey0YlWWrh6TTmMpWH1Yg== X-Google-Smtp-Source: AGHT+IGBn6n6EgDrMlkJDyd0jqLFfex9/E7P3NJi4ff8Az72HWi1omtWGQrPu5v8XW0RIf89Dfo3KQ== X-Received: by 2002:a05:6512:6618:b0:549:c1e6:cbc9 with SMTP id 2adb3069b0e04-550e97a1835mr7651160e87.18.1748007643820; Fri, 23 May 2025 06:40:43 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:40:43 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 03/21] pmdomain: core: Add the genpd->dev to the genpd provider bus Date: Fri, 23 May 2025 15:40:00 +0200 Message-ID: <20250523134025.75130-4-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To take the next step for a more common handling of the genpd providers, let's add the genpd->dev to the genpd provider bus when registering a genpd OF provider. Beyond this, the corresponding genpd provider driver's ->probe(), ->remove() and ->sync_state() callbacks starts to be invoked. However, let's leave those callbacks as empty functions for now. Instead, subsequent changes will implement them. Suggested-by: Saravana Kannan Reviewed-by: Abel Vesa Signed-off-by: Ulf Hansson --- drivers/pmdomain/core.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index da515350c65b..8d5dca22e35e 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -2637,11 +2637,17 @@ int of_genpd_add_provider_simple(struct device_node *np, genpd->dev.of_node = np; + ret = device_add(&genpd->dev); + if (ret) + return ret; + /* Parse genpd OPP table */ if (!genpd_is_opp_table_fw(genpd) && genpd->set_performance_state) { ret = dev_pm_opp_of_add_table(&genpd->dev); - if (ret) - return dev_err_probe(&genpd->dev, ret, "Failed to add OPP table\n"); + if (ret) { + dev_err_probe(&genpd->dev, ret, "Failed to add OPP table\n"); + goto err_del; + } /* * Save table for faster processing while setting performance @@ -2652,19 +2658,22 @@ int of_genpd_add_provider_simple(struct device_node *np, } ret = genpd_add_provider(np, genpd_xlate_simple, genpd); - if (ret) { - if (genpd->opp_table) { - dev_pm_opp_put_opp_table(genpd->opp_table); - dev_pm_opp_of_remove_table(&genpd->dev); - } - - return ret; - } + if (ret) + goto err_opp; genpd->provider = &np->fwnode; genpd->has_provider = true; return 0; + +err_opp: + if (genpd->opp_table) { + dev_pm_opp_put_opp_table(genpd->opp_table); + dev_pm_opp_of_remove_table(&genpd->dev); + } +err_del: + device_del(&genpd->dev); + return ret; } EXPORT_SYMBOL_GPL(of_genpd_add_provider_simple); @@ -2696,12 +2705,17 @@ int of_genpd_add_provider_onecell(struct device_node *np, genpd->dev.of_node = np; + ret = device_add(&genpd->dev); + if (ret) + goto error; + /* Parse genpd OPP table */ if (!genpd_is_opp_table_fw(genpd) && genpd->set_performance_state) { ret = dev_pm_opp_of_add_table_indexed(&genpd->dev, i); if (ret) { dev_err_probe(&genpd->dev, ret, "Failed to add OPP table for index %d\n", i); + device_del(&genpd->dev); goto error; } @@ -2737,6 +2751,8 @@ int of_genpd_add_provider_onecell(struct device_node *np, dev_pm_opp_put_opp_table(genpd->opp_table); dev_pm_opp_of_remove_table(&genpd->dev); } + + device_del(&genpd->dev); } return ret; @@ -2769,6 +2785,8 @@ void of_genpd_del_provider(struct device_node *np) dev_pm_opp_put_opp_table(gpd->opp_table); dev_pm_opp_of_remove_table(&gpd->dev); } + + device_del(&gpd->dev); } } From patchwork Fri May 23 13:40:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892203 Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C92C5294A0B for ; Fri, 23 May 2025 13:40:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007650; cv=none; b=iSmWwlLw815kYMU6m3XtDw8G7hHjME4pNUjapvz3ZrLIw4hQB8Elw7MqAQeK0ZoeIBEgakBNgwzDhEgsTLSB7upF7jrZNhgDO0seEL9MMrxu0nlI93BngyBizK6TOTiitejW9mnrLPnVk9CKzpuRkJ46f5osYVMLW+XICpE3Ht8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007650; c=relaxed/simple; bh=nIpXaKo7UoYnucf3GuIfuZxsHV/DZVUWbfnVOjaAP7s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YhOgHnTtFk7DXZ2rYfmw2hSvtOxwOrzwHmqC7f3bbLJYvVqKUhc9/5Gs4w/1ZQ0P/0PRZPH7VGIdovREvfhyN8P3U0BzEKiFfde12/rqmmXBmzzLoioZ/a4Dib74oFqnOofIfxfiaxmrEmlWyIH+qwH6BD4hSzSR0xz7Eu8xb3M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=pbzUhY/k; arc=none smtp.client-ip=209.85.167.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="pbzUhY/k" Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-551f00720deso5800985e87.0 for ; Fri, 23 May 2025 06:40:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007647; x=1748612447; darn=vger.kernel.org; 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=bRfyxZvH5+TpkOAftwgj9mo3UBVnLXBhqh8LLeaEC0o=; b=pbzUhY/kYRwEbbmAU2uxDtfT3SxQlZ8CYpJ0LU2P4+6dV+AUAjCVBOlWb2ONZoBopf TEhUQtkm0QixzG/L73rwY7sWHnb2tiUY9SUCXiw54ek6A2ZzfD1vAK6kae0nVZnAZXFR kCJZfTDR5bdQHNBtt08HsDIESR4nHeAE37VKZ/WDvljFp3O1hCDWgxYSOzComsBakjhN vFOmXvRX7UQO2TCfnxyPIhIsTrjAUin+IzBVt1kBXGXknVqzD9xq/FBcyOQ3CV0rXec4 KkO0GQsV8jSLCj8xZOJMXFWTUP9HvdasV4tM2PdVdeQPKaja4LLKOw0wfFethws15q1d 7TYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007647; x=1748612447; 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=bRfyxZvH5+TpkOAftwgj9mo3UBVnLXBhqh8LLeaEC0o=; b=E+lR0WIAcyK5Ssknp61gTjaXiEeJwKnp0itB6wIZwrRFfRK5m4SiLyxxYbmPY7W6ie sJhPNDJFZ5bsDSuAMiT7y2mG/Kaho7VPgLyGak/85YYJNQF5a6xOubUXedflTQTctWS5 OJ1V7f1d4/QZAV1qSeruc2Z4NuKKS/br1XvkQJEwMkC62XksEzgMB3fSROfrDFyE+HvX +eDGMhuZfXIhObmf2+0SozSL5F5QT0hw5sHFyXD7qA9t3TPFxzNHc7vLV5nq1Jg95ls8 cax9bVyH5yjLT2c3mJ6fHpiBQbf3ciyZaaswD5MIownkdD7IP3LtKgvJlTWbXYU8v4sV 21yQ== X-Forwarded-Encrypted: i=1; AJvYcCWq4Ms11yQqW4w1dMQHvMdh6Sfb21l2wWVax/HGnfpOEXyZhz76xs8ZVeSJVD4un2/txDz2jQ1iOw==@vger.kernel.org X-Gm-Message-State: AOJu0YzrQIUmX4gdlLxy44ZxumxE7dzifx81unFhcA8tVGjeli/63ngy xo7bLErsOjmZSxCMXqrhA86Ie4+76xEpPci/9x5roCnd93Gi0n3H/FebhTTYV+Su2Fw= X-Gm-Gg: ASbGncvZt+Ip+Kbc7v/2oWcJq0lM4uxp/CfcYw1KTYqHQjLRR93ND5EGDU02lXywfkC yB55tPv7mkEzBS2wQe+RSBCBvKyHSMfX7JN1lSW3lhyIK3oqHrnzBvcPwD8bQHETaQ58wM/YurG PkmUAHzq/PZDPOZJidkpqSkg6PYSWjK+We8FdB+8Gvp7epamBRirn1RvQr3RCB1x8oZGbzR6hYL 6MVwYE+oY+7Tfnutbu6bSpCy9S7/EaCDor7+QtKeHr04SWdAwCA1LYAbenWJ9JvNYF34NsG87cg XLabqsBto6CSlKjmfdf7HZ+pY3N1lN2jBEsojiVlpKNU/AX+N5YM8ZWTMoGbvfoY0BkVYuxuwuu 7U1SzBzlAuPxQusdDhyAtUtJhXQ== X-Google-Smtp-Source: AGHT+IEQ3+x5BM2uDN34zUdzxKW6ya4/VolG4ReWBxvxjZOXbRaDh6MY+jvSlnL1g35O0Meqr3/ZCA== X-Received: by 2002:a05:6512:22c4:b0:551:fd90:e4a9 with SMTP id 2adb3069b0e04-551fd90e544mr4364920e87.44.1748007647110; Fri, 23 May 2025 06:40:47 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:40:46 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 05/21] pmdomain: core: Prepare to add the common ->sync_state() support Date: Fri, 23 May 2025 15:40:02 +0200 Message-ID: <20250523134025.75130-6-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Before we can implement the common ->sync_state() support in genpd, we need to allow a few specific genpd providers to opt out from the new behaviour. Let's introduce GENPD_FLAG_NO_SYNC_STATE as a new genpd config option, to allow providers to opt out. Suggested-by: Saravana Kannan Signed-off-by: Ulf Hansson --- include/linux/pm_domain.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 3578196e6626..9329554b9c4a 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -104,6 +104,11 @@ struct dev_pm_domain_list { * GENPD_FLAG_DEV_NAME_FW: Instructs genpd to generate an unique device name * using ida. It is used by genpd providers which * get their genpd-names directly from FW. + * + * GENPD_FLAG_NO_SYNC_STATE: The ->sync_state() support is implemented in a + * genpd provider specific way, likely through a + * parent device node. This flag makes genpd to + * skip its internal support for this. */ #define GENPD_FLAG_PM_CLK (1U << 0) #define GENPD_FLAG_IRQ_SAFE (1U << 1) @@ -114,6 +119,7 @@ struct dev_pm_domain_list { #define GENPD_FLAG_MIN_RESIDENCY (1U << 6) #define GENPD_FLAG_OPP_TABLE_FW (1U << 7) #define GENPD_FLAG_DEV_NAME_FW (1U << 8) +#define GENPD_FLAG_NO_SYNC_STATE (1U << 9) enum gpd_status { GENPD_STATE_ON = 0, /* PM domain is on */ From patchwork Fri May 23 13:40:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892202 Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7D7B29550D for ; Fri, 23 May 2025 13:40:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007654; cv=none; b=E4X0rJ7J6wgYUOKucKR15aU4x5csPr2LkU1xYfpikdTlhOQ/J+T5/nAvFGdrgptbQolpiFLAOZalltoOo42Zh4h6KaH5I8prbze04vJSBUlqmQXV4Qv2qnsTnRSMBKc/7nWDMybvisPY37wD3BairqVrdoCU+C+iov2ycxQmQNM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007654; c=relaxed/simple; bh=KKNT1JhbaPmauJ6i6M1lbqlI91jHIa2Cm6I3t2dDms0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JJsdG0rmsriupVnOJGDktoZE0uu6DEfE7NzqpqDW66q8jxq2X2J8FOx/mStLJK2D46ewm1h99cFeY/FQnbVR+N0KfC4G7V/bYEpcC2k1JuVzbEvCCXzkGqHOCUGcQbvcw3OU5olGWcjHY/xnkoO8SRg2/lh7eGtVo0ao6X8OVoQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=whCClBMY; arc=none smtp.client-ip=209.85.167.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="whCClBMY" Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-551fe46934eso1062818e87.1 for ; Fri, 23 May 2025 06:40:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007651; x=1748612451; darn=vger.kernel.org; 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=JhgdoK3MpeYw+rOuxZhcYLfRQHzQPd8VTaoRAeP4HH8=; b=whCClBMYkRzNHXcdd4O0EvWWXePnsFuJMk2+j3lxEPIm7wFpzwh11hZiYn/xK6Rq+H u4EEDdMrOOAaj4Ygz9/C2Bp39pBOKM1IDpKOeHmthGxmntiYVNo9gbdm6WviVwjy3CSS Un57mbalkvh+VNocTjtlgt6Ft1nzSq2GG6pj1jytqDXQ5Tpc2VF08ZzKh/bWhx5qamd0 XABfgCQcYQ6M1hGh5lXOysNE3dhdRasPX5vFiTzlKD3Bg+cGDtN2FNruSPADkcFJm9kS 7/aEMBd5mP1HRe1OBW6zRH0WE66eeMCDadapmXwIlg769o4AH7MUFV/SoVtpnPll1Hzo zJXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007651; x=1748612451; 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=JhgdoK3MpeYw+rOuxZhcYLfRQHzQPd8VTaoRAeP4HH8=; b=jUuGkG4bVuAqaAYPGn85OQNn5RUs9dbZVpz4nmc3xC+Tqh8hV3Fu9SUS/mwEXtYjQA /QG54ZZS5DFbwIzyME1JAiG6qAb6ZcJwvnV6rl5fiF9ncbFP+sYzRuVL8163iDoWqvxj 2qHXGf2c63uQyiO8g76GqHE3gQQFZr0UYh8eLy3pqQ/kgbN3MQsQ3xnpaRxVCfJ19NNx 0QFRT3T+JtMt0n7yyKlscurkw9nTh7C8V805EPAenteGp2zFLqFHOUGpp7JPyuRKrAg1 59aOfYhrmKi6GHBhcY2W+XI5cthy1pZzrc9taeSaf7SbRLyRS78B1O1wawEQUU2Cr4X3 E7uw== X-Forwarded-Encrypted: i=1; AJvYcCX4vrswBRfbXnm8cdfVwQuWCXiZxlnJogd0lhe55LjoGZ0K7qwRs/liewMbRYLYFFzTOGbBk4JaEg==@vger.kernel.org X-Gm-Message-State: AOJu0Yx3CCdolzUPY42NYkByiQjsrHgf6r/wQtLi0Fug5iM1CgPvwBf6 OguRO74b4idp/0gucpJ+TNTqDNZGe2AYzcVSGSylqU91iMmnpCjY5q/PUIxL5QbBadE= X-Gm-Gg: ASbGncs1oHf/YVJg8aNc1MQKFpOKccsFU4dAeDQhoFUdFi5fMsG/FMpp15jleVH/gmw BfvtSKb0ReKPMroxkn9Ap+U29dqV89O596w8O9lNPZiIpdIQpFi7iSnFn1fEb9uU6LILISdoHwt IlFDDFW7Mpydd1P7rJRv8OEZ74JXYh7V9ABUJhY5iswsVlLT8FkCUutDulw17zJOPIZNqwUaz9B pwnDzeXKDwbRBRTzNnGQv5COtjLZjfktDmdygxi5L/4CiPQP0sQWK5FURwwjMo/ZU/04LAwIXwt hA92HwjLS4Izdb2QyeqAWvBUhFK3bl/Pp9Ob8sAlvo3yCLDPkNID2TMPnKddCQHloxATgjRFr4M 4ni1g8uWyxoUwq1Iw8tmgbu3/Lg== X-Google-Smtp-Source: AGHT+IGxKZRIYcmGHvMkuMsGKvsKXAq1cHpyxb57jcrvbj7O4xdTx/mj+TIt0JjLrEZhlxZqFEhQ/g== X-Received: by 2002:a05:6512:3b8c:b0:545:a70:74c5 with SMTP id 2adb3069b0e04-552156b0fa0mr1317620e87.13.1748007650658; Fri, 23 May 2025 06:40:50 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:40:49 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 07/21] cpuidle: psci: Opt-out from genpd's common ->sync_state() support Date: Fri, 23 May 2025 15:40:04 +0200 Message-ID: <20250523134025.75130-8-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The cpuidle-psci-domain implements its own specific ->sync_state() callback. Let's set the GENPD_FLAG_NO_SYNC_STATE to inform genpd about it. Moreover, let's call of_genpd_sync_state() to make sure genpd tries to power off unused PM domains. Signed-off-by: Ulf Hansson --- drivers/cpuidle/cpuidle-psci-domain.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/cpuidle/cpuidle-psci-domain.c b/drivers/cpuidle/cpuidle-psci-domain.c index 2041f59116ce..b880ce2df8b5 100644 --- a/drivers/cpuidle/cpuidle-psci-domain.c +++ b/drivers/cpuidle/cpuidle-psci-domain.c @@ -63,7 +63,8 @@ static int psci_pd_init(struct device_node *np, bool use_osi) if (!pd_provider) goto free_pd; - pd->flags |= GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; + pd->flags |= GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN | + GENPD_FLAG_NO_SYNC_STATE; /* * Allow power off when OSI has been successfully enabled. @@ -128,11 +129,16 @@ static void psci_pd_remove(void) static void psci_cpuidle_domain_sync_state(struct device *dev) { + struct psci_pd_provider *pd_provider; + /* * All devices have now been attached/probed to the PM domain topology, * hence it's fine to allow domain states to be picked. */ psci_pd_allow_domain_state = true; + + list_for_each_entry(pd_provider, &psci_pd_providers, link) + of_genpd_sync_state(pd_provider->node); } static const struct of_device_id psci_of_match[] = { From patchwork Fri May 23 13:40:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892201 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92F3F2957DE for ; Fri, 23 May 2025 13:40:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007659; cv=none; b=VC3qzHUhJ/6b3N6hx89ZUe/wLdq/8Uopa0cHOouqYbI6QGDgRQFjujViaFd5BsDDL7HnBah57qn3IcBCi0l/76yDB/phrjKsigHzk0DEuILtHvHukaodrpIbH9XWtXZ/g42YPJYPwZdOUh0/3T7oY4e7Vw2NYYbCxsLPXg5d0x4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007659; c=relaxed/simple; bh=T1xgNZltAjtmifp4jfz/spATibuE2uO7MlAk8LyXjGQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nzOLhbg54dEfK12euCH7gEOYEWqA7djUci/fGxy/5HAMrUTlQDBlj7ecF6w+Yj3CO67KXpVV6W9l8lROhOtj24x/8HWsQTsHuKsyyCeNVMDMqYwQ5Pwe9yl1lISObBIyH1sgWwFy82VvDsyBUAmhki8aJRXGgVprSVjxvBn8jyA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=VAdVPC02; arc=none smtp.client-ip=209.85.167.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="VAdVPC02" Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-551eb17123cso9062456e87.1 for ; Fri, 23 May 2025 06:40:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007656; x=1748612456; darn=vger.kernel.org; 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=3dLO5FUnZLNVebsG8JkJQYms3itDlHs2qdSFPmZ+ETY=; b=VAdVPC020GdSrjcE+qXPZG+A9jWKcqn+AQMO5uiC6J6suxmRFaz4yw4sCnXZy2PWbo K67MM4GuQSKFXDAAw9aYssCOQxb7rBHe12DOxvZuIPlbOcm/br+Kq79pFIGRk9+7QD/C 3f4T8m1TRE5KkjXJP+lDQAoECjgMb59Q978sNqCxIZ/cs/L2l74JFyaO3ICkU7dWKJYj aJG2IHAOeIb6Ee2CDY/k1pjnfSIuLJIr00q4Aik1UIXn8CrStMWqeYA8pyNedrOGS7cU Hq1nCodUf2IYTBg6ubGxW0b3dKJGRKJOfhCEfLJaGchmxyoxNz4cMERHkSObl6R/0MUK gx5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007656; x=1748612456; 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=3dLO5FUnZLNVebsG8JkJQYms3itDlHs2qdSFPmZ+ETY=; b=es1hK8PnxjKLn8OxSk6ihnZH+OVs/sPs3DQ6TI1/rRRN5m/jRbW1XbPuBJ3CeYRTRi 3GLre0c3jTj91Xek/bjb1xlOvZMTspjs/M6GuUsi5vPTTx7gQkJpHTVTdlbredP9o5sb E3WiHzEPOvSCxWnDVnp/5oQeNODX/6M+vEX3m+MeS1AWK8z38W2CKLloksRLklZceNg0 kqkYzxPNE/r2ovJeh/jKsIvCTAm9SFuSoGFbsAUbwh8rdRYTKKLCV+eDVXkl1BezkZ3c wMVAnC2Wwc1FE2rk5ZbO7+jpYm0iYOu7ANFJoPa9isLUTfZ1LMTxXfnEK64UmMyy8oKa o0qg== X-Forwarded-Encrypted: i=1; AJvYcCWP+vjb+pnkNDnBff1KrrHNNv71rNPHNLswWey+UqmNE7NJ2RH1IUum5SFNf2ZLM5f/Hd6dzek9DQ==@vger.kernel.org X-Gm-Message-State: AOJu0YwIlPpm+nPg4759YIr/COgIDaJYODvUfo8GtA/NiSJJgKUUQ1Pz kMuo2QKKE3sy2DsP2wfvdJAhbXhloqv+v8p/3fpbknVfIgLSKA6nRGeqUbfhJ9GqXiA= X-Gm-Gg: ASbGnctwziHIe1QDl1b8Y9ks0AULtp0GSTgIDIYyke7p/i8G1OWpiOV+xSVNHDvqfev cr4S+XzdmJPfTWA5xcoT8nfWwDpOqzGFn0OQFCNXpYNRWjQuOouw34y9vMsUj1+GFe6R5B9hdxb +N1lyKVVFDEI1EoNk6Miaa3FvxBmK8aH53aNbw2U6mWv0ayEY29pBcnUIAj1bp4yOA5yi8OtEN7 FaKG/UxYdf8YVHvNm6T4CMYv3q3w5nAR5W2pg9nsj4Ns+aAZ3zF7rSY3lphWYWm2x4xNoIvdanv Cu1Qm9RJKDhuJE8jXku4Jv6HGxQbZ5jXvFFywwnQLF49xpeK8NZy++WC5tey2vLBKGgGq1Rtu09 e/nXeotpzHpOE05/swZEYapFlOA== X-Google-Smtp-Source: AGHT+IFf5shMU44TNKwf2RFfAZvM/E6/6pPkbDTOgxsF8Wrk3SQBud7p3rswM2Pdzq/U1CzVLKmBdw== X-Received: by 2002:a05:6512:31d2:b0:545:3dd:aa69 with SMTP id 2adb3069b0e04-550e7245310mr10207937e87.36.1748007655625; Fri, 23 May 2025 06:40:55 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.40.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:40:54 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 10/21] pmdomain: qcom: rpmhpd: Use of_genpd_sync_state() Date: Fri, 23 May 2025 15:40:07 +0200 Message-ID: <20250523134025.75130-11-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To make sure genpd tries to power off unused PM domains, let's call of_genpd_sync_state() from our own ->sync_state() callback. Cc: Bjorn Andersson Cc: Konrad Dybcio Signed-off-by: Ulf Hansson --- drivers/pmdomain/qcom/rpmhpd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/pmdomain/qcom/rpmhpd.c b/drivers/pmdomain/qcom/rpmhpd.c index 078323b85b56..d9ad6a94b3ab 100644 --- a/drivers/pmdomain/qcom/rpmhpd.c +++ b/drivers/pmdomain/qcom/rpmhpd.c @@ -1027,6 +1027,8 @@ static void rpmhpd_sync_state(struct device *dev) unsigned int i; int ret; + of_genpd_sync_state(dev->of_node); + mutex_lock(&rpmhpd_lock); for (i = 0; i < desc->num_pds; i++) { pd = rpmhpds[i]; From patchwork Fri May 23 13:40:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892200 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3A49296149 for ; Fri, 23 May 2025 13:41:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007662; cv=none; b=puXUguKWiU4x8svz/Geh+/NHONMHEgxWWfMNK9CEL2XA5EYWDl98ZK0PqddP3QshXm+cjQ2wPHYThgka14xoTmqYk2EGeLrWnh4Z/B4Fmxv0r6d6A6xYlTktcxHHLBSuCzX82aDKrZeCQo+d91+5coKf+R454fjdtmUssJBFCME= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007662; c=relaxed/simple; bh=IbI4P7dKS7WQ0XrlPSF2t8HlO3jco/Xh1Hv9yYR/Iy4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eBfp6/686TU250lk//SzbIBxaLG2jOUxjIqjRkb+Es5LYnfkbNNsYyIP0L2G83UWhnKZMDzqIq3gXGteS29oEYdy2dwQN8A8NOi+sJ0A3dPgslRssDMxCZoAEEXLoPPvrbmXbQLfnhezB3YLm33Nm8RoflIwDanyqtYGUT6j1w4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=tA6Wkz71; arc=none smtp.client-ip=209.85.167.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="tA6Wkz71" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-54d6f93316dso11146838e87.2 for ; Fri, 23 May 2025 06:41:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007659; x=1748612459; darn=vger.kernel.org; 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=z5aEp/8JtU93ixaErAVWqgNJDOtLrawJ3jNzY/478Oc=; b=tA6Wkz71avfc9s5Q6WJ4IBmdOP3IlHKiAO9Lx4A+485OsgaL7fAMHfnT3OzDk7R5Mx XBmpc6H9loiev3lw6X/ZVj8hKXsVEBt9WJpATlBTwk2Yo2spWZt/Os2qPq0tb8MSt349 0br6dXKpO0EOyT3j2TT3OI4UKew3tq+sxJo7nOLaaScTr4Mytl3BFhmk0UyKOCoUYvS8 npIEGHSHKDhxiD//W2gT7k0ffNWV6DmTcCFY++/7UqHog49PU7sfwdVt2pr9fq86afV8 yd8uKHYWb23sl75lNqXRV8Q9+YPDwW3D0OdQcZ1KAIC25xtvugiZVlaOhi3M5WIooJHG p0DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007659; x=1748612459; 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=z5aEp/8JtU93ixaErAVWqgNJDOtLrawJ3jNzY/478Oc=; b=kXhlwvRoTTzX4odKDxF9lZo0pY3RmVXmNiy0OOcbyIWnc9wJ5C2mTkw5hGCYihCpOu H84XynZ0pgMOiw9dgO86uuW7e1EzgFUnJ7wYg1Wf5DuZtjy882Z1XYPxxc5p6/wcXZqp EGZKC6MtJXf4x+6ixXdWnNFt8iP4KvYL04mgNnx6525p5/JQJZO4qCzENHi5oXo8MJ4G 6E5fMO2Yn9PGmIO9Icici1QhA2n5Tf4KmbJjZ9HpwZBHJwpLRQMe+RZ+L8OklBhhW4wj 2HaN19ewQA9KImtwxICZE2Cb+h5eXieocML9oTuAicsMh3MQ6o0uMyA1mG3gTSAhDXrt 03Kw== X-Forwarded-Encrypted: i=1; AJvYcCV6a2CkE9MPtP/Pwwzh22IaZZOOYknAkj68TIf8IO17yR2LFpFoCkjhA9+fiP04GeXWeUrXwi/+RA==@vger.kernel.org X-Gm-Message-State: AOJu0YyPXZdbzdAMA64nPjZxfWwX3lVjECuf0GMDZevReSEZPNy8w9Ou /S8x6ELuXVWPr9KrutE+gCt0sywkWsI6D72ycxNqrEsTFvfcfm9nqPr9E3+NPnzAP6a7jbsU+/F vSPK5EUQ= X-Gm-Gg: ASbGncvB+bHqR4+boqnIqqbQnS9tk2lWohEI6IUK+dE/xctl6adK2cgbPsLShkQRcq9 4S4+5+8MkSWlO5A+zCXponWwY3MIxnvyf65kVOE4vKsNiXK59iS/0nLUnR+5lmywsyacZkMkC1L D7byBIqPrWhANVKtUlM5EH6ZQAIsbjkCYlOfLMXvkD0kbNhYDIlzvoT2L4EXaqr1MPDdEfkWLzS 3QE54F0A4mdC9bm0YHqtDsSXsqG54oIceISSRJphMU53VOcr2pfN2z48vMx76dReR+p/CdYkleK K0sya8otCekSiXlXwFbTJ5NE8tD2UlfVEu5jVncS+e7AtnrfA9ckHvfWnbM0pybn7muZrHhlvEw avyhQuoOewdeyPQt14ofhhXWzyz5M1w+wSOmX X-Google-Smtp-Source: AGHT+IHew3rJAA3EL1rPz5CTB3uwQqlEQeWho80HyKc1TwZE2NDcF2OqAfkY0OELPgTm0zJ+F3OM6w== X-Received: by 2002:a05:6512:1196:b0:550:e3de:63bc with SMTP id 2adb3069b0e04-55216e456acmr896941e87.25.1748007658748; Fri, 23 May 2025 06:40:58 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.40.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:40:58 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 12/21] firmware: xilinx: Don't share zynqmp_pm_init_finalize() Date: Fri, 23 May 2025 15:40:09 +0200 Message-ID: <20250523134025.75130-13-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 As there no longer any users outside the zynqmp firmware driver of zynqmp_pm_init_finalize(), let's turn into a local static function. Cc: Michal Simek Signed-off-by: Ulf Hansson --- drivers/firmware/xilinx/zynqmp.c | 3 +-- include/linux/firmware/xlnx-zynqmp.h | 6 ------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c index a91a0191c689..87ddbb7d11c2 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -1299,11 +1299,10 @@ EXPORT_SYMBOL_GPL(zynqmp_pm_bootmode_write); * This API function is to be used for notify the power management controller * about the completed power management initialization. */ -int zynqmp_pm_init_finalize(void) +static int zynqmp_pm_init_finalize(void) { return zynqmp_pm_invoke_fn(PM_PM_INIT_FINALIZE, NULL, 0); } -EXPORT_SYMBOL_GPL(zynqmp_pm_init_finalize); /** * zynqmp_pm_set_suspend_mode() - Set system suspend mode diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h index 6d4dbc196b93..ae48d619c4e0 100644 --- a/include/linux/firmware/xlnx-zynqmp.h +++ b/include/linux/firmware/xlnx-zynqmp.h @@ -585,7 +585,6 @@ int zynqmp_pm_reset_assert(const u32 reset, int zynqmp_pm_reset_get_status(const u32 reset, u32 *status); unsigned int zynqmp_pm_bootmode_read(u32 *ps_mode); int zynqmp_pm_bootmode_write(u32 ps_mode); -int zynqmp_pm_init_finalize(void); int zynqmp_pm_set_suspend_mode(u32 mode); int zynqmp_pm_request_node(const u32 node, const u32 capabilities, const u32 qos, const enum zynqmp_pm_request_ack ack); @@ -746,11 +745,6 @@ static inline int zynqmp_pm_bootmode_write(u32 ps_mode) return -ENODEV; } -static inline int zynqmp_pm_init_finalize(void) -{ - return -ENODEV; -} - static inline int zynqmp_pm_set_suspend_mode(u32 mode) { return -ENODEV; From patchwork Fri May 23 13:40:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892199 Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B847296715 for ; Fri, 23 May 2025 13:41:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007666; cv=none; b=J30kgdErndj8F6Yhh6Pp/uZEl9IhgaAgdZ0CsVhKPBFdalUuqaPesm4LcwKPqMMKNRHa+GwIoBkkr5NXOzxKtWUo+R6wT0c0iKuuDAE/JAAmvBAmV5pxnF9Xv6DiUIZ4kNJ/Es+oGt5bvsss6bMRCYuzCMQ/SwJSbvPdt1PCNXA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007666; c=relaxed/simple; bh=rKpQ93wGB3N2jcBrTcwJvgpog+JGf2BH59ObvzlpVTQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D5H+/ZIlkW/MfXzy/EaYFDhIOoEcgeJvDuXuDe4R+/NeV8BGzPAyI581nW5WO0VUfy48MPDta9CYfyITSvRDKfNPbphlGorCc/Mhlj4rjGMbJWorweMn6KCXcdPkZdFwdErab8FLPC9mEAAUDhgf0aIpf1n6/D72qmHIYCMlrpw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=riRxBLj9; arc=none smtp.client-ip=209.85.167.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="riRxBLj9" Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-551eb17123cso9062609e87.1 for ; Fri, 23 May 2025 06:41:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007663; x=1748612463; darn=vger.kernel.org; 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=7ptipst+jgUVMZThwfnH2tLuY1vSwuKeNOIIYU0B7Lc=; b=riRxBLj93NWR2TUktrAfB7OMoau5ESJTZTigxcB8cvLQDGqIQNlkM1ju9LK3w1v/82 N7Q8ExKba1LQnfsgyw1MEg4GjmnsFBoSBd3dMGAQvn1E1W2JsBJyskAEaatUqFamjzXA oc7ZWcW7bec+a50NZRfQzUE1LgpNWQm/KWITJw6yArJ0Ecz/4Tv//qtdc+SQ0pmjNUvp +DzGInq5GRXlPXFsC0imkNiohSTbIsKMGTH9zURo9SvA5rTU0/rhAxqsuKqq8yVPjt5F KEp/5O1szwI7JZiuC5Vfaty6bONyH0UwB/0Ug59m/dNRZo98a8TkRiatHwdvH8ezSAoB h7Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007663; x=1748612463; 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=7ptipst+jgUVMZThwfnH2tLuY1vSwuKeNOIIYU0B7Lc=; b=ZjFcORDr9sElQlVLoOPaZFt5QsPtdOJ8mBedyUF8VRBWXujfGeyJXvMlZMTlSUpYyS wv30+zA2rfrvKkERs9sKw0/s4kRqeIFGYxYhP/TOn2rJadDRgb4tKJy+eUi3jI98E2z/ 9wOuImao0R0PbKAAXfPTPKts7o/ozgjVvkcUuPsMtM7odVc19S+ndoW+RLOZihIjUCCT lataJxujxEYAZ5q+zF2OWtqFUmJH9H+achx+BJJM0YJkE6PieND+1g4W0oyn25C1zPjX LxjgKt8lFpITJZQrUiH8TvJxbcq0mZsW1BFUfjfrPVZnu5PCOGW3u7VHHRloHgZEoRWd Id/g== X-Forwarded-Encrypted: i=1; AJvYcCV4xP7vShlyUZcYpHfptgJWkOPwfiGSSA94zyWf8Mbs3kPQ96HWNgW3lIVEztdAoKRasQSeq+A9JA==@vger.kernel.org X-Gm-Message-State: AOJu0YweGtNCpVjLNlpeHYHrUvN9ZH12Y19SDx+URspqKkW613lBmf3L s1JzxQ5BdLyUd0Rs/x0++dzsVEOGurk17M41lr5ZptL50FqSL9wZiq5YOGX9ybLkfBA= X-Gm-Gg: ASbGnctD+FLcGKGz5kW4HpTzTGQhxYH8ofjlxrBYbKeryzPdC6TiGEvMFxxXiWh63lg nsiOqEHWVgedZkFo+JD+hnr4DnjRGtew2PYJWP8tXqyD7VlSVaf/SaelDQqQc0MzSlAPoZAuCt/ 01sg8m4w3uQAaNZADjBk7ELHglqDWlUys1Z2CAj4p1T7uXHdwaucHCaGv3ldlzfb1t/aHD/GdkT p0ZKekEvaoiWpRRIy6nbGlPTx95dJYloYKgi+Z23E70aTamrvlZiLLhnDRydfOZC/gAAe8AaCVZ LQBJWzK9V/NBBtXPUxtfyykfzXDkVy1LyKc3FqQH4QMkUTFlQT0bZ9N7xPmkIRqQt47ZboaLuMh SkzUdX2DTVsUxof0ZQnU49Np+cQ== X-Google-Smtp-Source: AGHT+IGfBRDW1UMlFuEvFbwkjGLGnQiQkt71IPhxmMxhJWvlHH9jDUn6RGcLspRvscDDVp9YdgMBPw== X-Received: by 2002:a05:6512:39c9:b0:549:9143:4e8d with SMTP id 2adb3069b0e04-550e719835cmr10282215e87.8.1748007662658; Fri, 23 May 2025 06:41:02 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.41.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:41:01 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 14/21] driver core: Export get_dev_from_fwnode() Date: Fri, 23 May 2025 15:40:11 +0200 Message-ID: <20250523134025.75130-15-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 It has turned out get_dev_from_fwnode() is useful at a few other places outside of the driver core, as in gpiolib.c for example. Therefore let's make it available as a common helper function. Suggested-by: Saravana Kannan Cc: Greg Kroah-Hartman Signed-off-by: Ulf Hansson --- drivers/base/core.c | 8 ++++++-- include/linux/device.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index d2f9d3a59d6b..51512ab8a6e9 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -1881,8 +1881,6 @@ static void fw_devlink_unblock_consumers(struct device *dev) device_links_write_unlock(); } -#define get_dev_from_fwnode(fwnode) get_device((fwnode)->dev) - static bool fwnode_init_without_drv(struct fwnode_handle *fwnode) { struct device *dev; @@ -5255,6 +5253,12 @@ void device_set_node(struct device *dev, struct fwnode_handle *fwnode) } EXPORT_SYMBOL_GPL(device_set_node); +struct device *get_dev_from_fwnode(struct fwnode_handle *fwnode) +{ + return get_device((fwnode)->dev); +} +EXPORT_SYMBOL_GPL(get_dev_from_fwnode); + int device_match_name(struct device *dev, const void *name) { return sysfs_streq(dev_name(dev), name); diff --git a/include/linux/device.h b/include/linux/device.h index 79e49fe494b7..f6ca813eebbe 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1086,6 +1086,7 @@ void device_set_node(struct device *dev, struct fwnode_handle *fwnode); int device_add_of_node(struct device *dev, struct device_node *of_node); void device_remove_of_node(struct device *dev); void device_set_of_node_from_dev(struct device *dev, const struct device *dev2); +struct device *get_dev_from_fwnode(struct fwnode_handle *fwnode); static inline struct device_node *dev_of_node(struct device *dev) { From patchwork Fri May 23 13:40:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892198 Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C991296715 for ; Fri, 23 May 2025 13:41:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007669; cv=none; b=gSaUfFl/1orX8QEU9TpU4LmWoerUGOUVtDMLUvV1CuwrL/ttOhB3mYIDpkOJaYsPoIlP1El9/fE4UrCmnSEjM+In/xkNy/E76ic2jidVlkySxI3WrcfGgYTATq6dZQ4xWdCrLootcC91QIf3BufQeFU0WyZe3V1EfMkEp7ZjDdQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007669; c=relaxed/simple; bh=BNU9PuywstX6I+IaQZdoVQWmlolUJAYeaZv61hYLkg8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Vt6c7Q86Ayir7R+cq5ktS56KARSGfEveBCj9JWuXiqV0gQWJBcS4iTmIiVWI1DOB5DatHA3GFxLzOB1M6MplLaKeoTVJfSZfkR1sdQob2eB+B9N3ns9CYu4yFQ1pfNiII+yEFLa9qoKVERv8UyEruzK9OVzQ6gROXDYV2JbW4L4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Na+Ihge0; arc=none smtp.client-ip=209.85.167.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Na+Ihge0" Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-550e2b9084dso10684657e87.1 for ; Fri, 23 May 2025 06:41:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007664; x=1748612464; darn=vger.kernel.org; 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=KC7YC2/v/hospjziwcUkovuFHlTjTAcy5Zz+vdo8lIo=; b=Na+Ihge0zpyigW7TNffIf+MostbKgczA/7bnqO6OV12TVeDFQvjG6GoFjDQ6lPAL1Y 3cLG4u6GSLBBbOQl0nEaXR2xVyaqsWDCzV6L/1o1YOSuagzB9FC1gD5cvuraOfYaHCzy hIjtN2vibL8XG2Ev0KAuqZ5wkflgKp5yZvpb7624AbVXfWE/PpJh4z/Jz52pA5et8fMN G/5X5EEOI/9yUEQNjiGPaVvzGPuzHSOOK3ZY0A7wAt7GTBgOtYKsSdIukGNJKTOGgYWG NvKKSStfgLirB4ej7QxTGZjYY0/Xy/UNHg+oYYSq9F8if8xuY+1sk6Ybsro9MyxrZtDh KoTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007664; x=1748612464; 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=KC7YC2/v/hospjziwcUkovuFHlTjTAcy5Zz+vdo8lIo=; b=OE+w5XIzH+gxDryXYOTt2BojiCMnQaTJWH77q44/nosu7xSRlpmoeTW4jR7DVXFCZF dIsA0LM81lFN0Q8qVU3asklCWQfLcQcK/gM/dBnDmQulXL7a8h6eZmWPUwaC1Llft/BR RAPcCiA0ZKIDEklkgdJy16m2Hz0F68nrR0B/WOUr9ilWIErRAhSWZkprXwRG6VR1JIRl q8F6HBFwQ2+5ZFvJTJ4do7upPsn7YlZDommQ3+5HWX9WzrPrUeNfwywqvej5G2MA8GuF dZdY+yL2ALAqsMAzKN7mBi8VPHIcknYEXsTKvYHjsRi4aUcUQcTWNgNKb7Ef9DVXNnGD uXsw== X-Forwarded-Encrypted: i=1; AJvYcCXKnPZmgaLAZ7axNdB7u5obk6FsUOKN33DPPnR2ukxEJaOBdG5TebDgI7f2Yc4KgQA46CPKIeINQg==@vger.kernel.org X-Gm-Message-State: AOJu0YwfBu3ZaxLlEEK9tA34qEc1DTOXjk3fid5fO0y1mDs0M4UILXVf oilcW0hadfxR2T3zDePIHx/4PhSvbhOaZReImO0S1iNpV0+yroZ0l0x6U6wW6wQB9CA= X-Gm-Gg: ASbGncuC4Cjbd/G6fryJRvrkWDzPLvpR02rf5mUe7SO8jejz+XqAvcpaVZOrNYl0O8x Tq5+fAx1VHLvUBzYpgDiUeVU23IbjPRoiX9oqhZXqeH36KJ1WFNRYUoENOXuP6zyQCoECg6GhAg XlHN2ZuDpetvlUXSM/a0cGreNpiwOPC4wyNbPwrgciXepcK1f6OsZSYBtPIWb5EJezxklAT8QRK tE2B4q4QJDJjS8JRytJzOl6Pk3t2JtogkRIU3InwEXWP/NZ5C18eYRSgBBy91ap30PkZZdz5W7g zBZSvusP3aG6LgKuF0PWigYVtCW3wt7q1phizmS81oSB02klNx9f04f8foD1XgCDn2DXrn09C2/ FnqCwY9EvRqrM82nkchqX6JyPKw== X-Google-Smtp-Source: AGHT+IEZ0JF0eQFf2usDsMtCl0D2zCseCjmw2y7+b0hDzAnm98HasW9P5zPUEvp49AX37vCRxzZGZQ== X-Received: by 2002:a05:6512:630e:b0:54f:c1ae:f1b6 with SMTP id 2adb3069b0e04-550e99648bemr7875417e87.56.1748007664022; Fri, 23 May 2025 06:41:04 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:41:03 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 15/21] pmdomain: core: Add common ->sync_state() support for genpd providers Date: Fri, 23 May 2025 15:40:12 +0200 Message-ID: <20250523134025.75130-16-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 If the genpd provider's fwnode doesn't have an associated struct device with it, we can make use of the generic genpd->dev and it corresponding driver internally in genpd to manage ->sync_state(). More precisely, while adding a genpd OF provider let's check if the fwnode has a device and if not, make the preparation to handle ->sync_state() internally through the genpd_provider_driver and the genpd_provider_bus. Note that, genpd providers may opt out from this behaviour by setting the GENPD_FLAG_NO_SYNC_STATE config options for the genpds in question. Suggested-by: Saravana Kannan Signed-off-by: Ulf Hansson --- drivers/pmdomain/core.c | 52 +++++++++++++++++++++++++++++++++++++-- include/linux/pm_domain.h | 7 ++++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index 4047af5a275d..c094ccbba151 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -189,6 +189,7 @@ static const struct genpd_lock_ops genpd_raw_spin_ops = { #define genpd_is_rpm_always_on(genpd) (genpd->flags & GENPD_FLAG_RPM_ALWAYS_ON) #define genpd_is_opp_table_fw(genpd) (genpd->flags & GENPD_FLAG_OPP_TABLE_FW) #define genpd_is_dev_name_fw(genpd) (genpd->flags & GENPD_FLAG_DEV_NAME_FW) +#define genpd_is_no_sync_state(genpd) (genpd->flags & GENPD_FLAG_NO_SYNC_STATE) static inline bool irq_safe_dev_in_sleep_domain(struct device *dev, const struct generic_pm_domain *genpd) @@ -2374,6 +2375,7 @@ int pm_genpd_init(struct generic_pm_domain *genpd, INIT_WORK(&genpd->power_off_work, genpd_power_off_work_fn); atomic_set(&genpd->sd_count, 0); genpd->status = is_off ? GENPD_STATE_OFF : GENPD_STATE_ON; + genpd->sync_state = GENPD_SYNC_STATE_OFF; genpd->device_count = 0; genpd->provider = NULL; genpd->device_id = -ENXIO; @@ -2627,6 +2629,8 @@ static bool genpd_present(const struct generic_pm_domain *genpd) int of_genpd_add_provider_simple(struct device_node *np, struct generic_pm_domain *genpd) { + struct fwnode_handle *fwnode; + struct device *dev; int ret; if (!np || !genpd) @@ -2637,6 +2641,15 @@ int of_genpd_add_provider_simple(struct device_node *np, genpd->dev.of_node = np; + fwnode = of_fwnode_handle(np); + dev = get_dev_from_fwnode(fwnode); + if (!dev && !genpd_is_no_sync_state(genpd)) { + genpd->sync_state = GENPD_SYNC_STATE_SIMPLE; + device_set_node(&genpd->dev, fwnode); + } + + put_device(dev); + ret = device_add(&genpd->dev); if (ret) return ret; @@ -2661,7 +2674,7 @@ int of_genpd_add_provider_simple(struct device_node *np, if (ret) goto err_opp; - genpd->provider = &np->fwnode; + genpd->provider = fwnode; genpd->has_provider = true; return 0; @@ -2686,8 +2699,11 @@ int of_genpd_add_provider_onecell(struct device_node *np, struct genpd_onecell_data *data) { struct generic_pm_domain *genpd; + struct fwnode_handle *fwnode; + struct device *dev; unsigned int i; int ret = -EINVAL; + bool sync_state = false; if (!np || !data) return -EINVAL; @@ -2695,6 +2711,13 @@ int of_genpd_add_provider_onecell(struct device_node *np, if (!data->xlate) data->xlate = genpd_xlate_onecell; + fwnode = of_fwnode_handle(np); + dev = get_dev_from_fwnode(fwnode); + if (!dev) + sync_state = true; + + put_device(dev); + for (i = 0; i < data->num_domains; i++) { genpd = data->domains[i]; @@ -2705,6 +2728,12 @@ int of_genpd_add_provider_onecell(struct device_node *np, genpd->dev.of_node = np; + if (sync_state && !genpd_is_no_sync_state(genpd)) { + genpd->sync_state = GENPD_SYNC_STATE_ONECELL; + device_set_node(&genpd->dev, fwnode); + sync_state = false; + } + ret = device_add(&genpd->dev); if (ret) goto error; @@ -2727,7 +2756,7 @@ int of_genpd_add_provider_onecell(struct device_node *np, WARN_ON(IS_ERR(genpd->opp_table)); } - genpd->provider = &np->fwnode; + genpd->provider = fwnode; genpd->has_provider = true; } @@ -3446,6 +3475,25 @@ static void genpd_provider_remove(struct device *dev) static void genpd_provider_sync_state(struct device *dev) { + struct generic_pm_domain *genpd = container_of(dev, struct generic_pm_domain, dev); + + switch (genpd->sync_state) { + case GENPD_SYNC_STATE_OFF: + break; + + case GENPD_SYNC_STATE_ONECELL: + of_genpd_sync_state(dev->of_node); + break; + + case GENPD_SYNC_STATE_SIMPLE: + genpd_lock(genpd); + genpd_power_off(genpd, false, 0); + genpd_unlock(genpd); + break; + + default: + break; + } } static struct genpd_provider_drv genpd_provider_drv = { diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 9329554b9c4a..d68e07dadc99 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -133,6 +133,12 @@ enum genpd_notication { GENPD_NOTIFY_ON, }; +enum genpd_sync_state { + GENPD_SYNC_STATE_OFF = 0, + GENPD_SYNC_STATE_SIMPLE, + GENPD_SYNC_STATE_ONECELL, +}; + struct dev_power_governor { bool (*power_down_ok)(struct dev_pm_domain *domain); bool (*suspend_ok)(struct device *dev); @@ -193,6 +199,7 @@ struct generic_pm_domain { unsigned int performance_state; /* Aggregated max performance state */ cpumask_var_t cpus; /* A cpumask of the attached CPUs */ bool synced_poweroff; /* A consumer needs a synced poweroff */ + enum genpd_sync_state sync_state; /* How sync_state is managed. */ int (*power_off)(struct generic_pm_domain *domain); int (*power_on)(struct generic_pm_domain *domain); struct raw_notifier_head power_notifiers; /* Power on/off notifiers */ From patchwork Fri May 23 13:40:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892195 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 186E4294A07 for ; Fri, 23 May 2025 13:41:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007680; cv=none; b=lVPkWQ9zB34BhAoI33sle2MViWqp6Whu6dxXOJx66r937Dx9gKonFL2k0X1cGXWx8AHgUYUu7AP7YrYl2iqjuc6nOFt9UJk9GgNcmRWuTbRQd87T8gDnqNH5HHmpujJtZ7cOhYJK4zkkQm1vSBWRc1UFrcGbFCLhnfxcsMhJnCs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007680; c=relaxed/simple; bh=NN3Crtgicr2RANdkx4XpcfEgrbjiC/nyTFX0TvsgmcU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Hq+mdkZwUjF6JPYeQm11ylIjl6ONh3VP02ncAQ4b0Uvprx4/GRaCKlZfF8rmEYlPQ2b15v8xiLXIrbC+2gxGnjFVjkgFCOdPYvgE5NuKyizb0zVqaAUe/1fHWBICvqV0x/y5iKhyNS7yBBaNJJdUAYHSrQ7LAy9cIKin+T5Q2s4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=QmOOZ6Hs; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="QmOOZ6Hs" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-43cfe63c592so105666625e9.2 for ; Fri, 23 May 2025 06:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007677; x=1748612477; darn=vger.kernel.org; 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=71f6dv8Oj3Q5ky21qEIlnyYawuoQhOrGkPFVRB1RoRk=; b=QmOOZ6HsCKyJLrz1mLizI/tgjEbdw5BkTVRL+G8Z/34FC0PYAaU+lvVx9ui/xVMlse 4Gz22ERx5TDlx/8kutNUMOTdE+95JEkncjaQCzzcwqRcUIgXaSE+cKflFJKeCiQ7f4X8 LBFBG9w9gRsnM61XVCOt+4CHca8Zwwp2ossjh7gd5dIeuaH4pJZPeN0li0yVmKCjQnfL vsroWu0lbOAzFELcxdqUzVBGKDnOUDJYV562A8AFIUA2jDgGWm1smi5FRhXi1heVk5PR eOJgG9EO1+dLY2tiiIr+kQYZByLCQfSSVXOUxM/bsFrHyLP/tvTkIqK8iKED9z/L6Nen ZS+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007677; x=1748612477; 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=71f6dv8Oj3Q5ky21qEIlnyYawuoQhOrGkPFVRB1RoRk=; b=mq5PDvuO5JrytTHqm7OKU0QftGb8C4ZQ0Ssz+F00hk04yTI1rZsjixf42ER8iSEz6G j5xi58wOO3XWp8wHog6eqOvBTmwwPVhMmxwQZ6QEUig0txa84rYZAzZfEgojhntpmyaY umH/7EcEHijlyq6RHIgZo7zM5oBv7x0ISFAwsfTkHo0+uR70WaRn/7IbXZOLGJrLNeYF /aiLM0NE4yW/jxHYKvBXNrjHai3lT6fr/JPRbsEcZi+owa1DRedCW1tank9MD4RKAmyD 7SYjREnDgnHpHcyEV9kmWobrDAUA4Z9XoYhzWFSxpOVYGopFSkgR0lW075iQ2WrYKBoN 0Y5A== X-Forwarded-Encrypted: i=1; AJvYcCWgEkO1kZJ4GJ/osHF56gyn3VUTwwaCKk5kclI5BTKBRzDL1ZhWubWXstCbJYcD/Qy5UfTqIUYiHQ==@vger.kernel.org X-Gm-Message-State: AOJu0YzqE73TQpnjA5kMzlGZZ0f9G481vd0UCS8xijoFek6/74Z8MPTi NWvPwoghmM0qv7f4jzz7DOTLWyltLsTw2dgJ0Gibi4CmzzXFIRepkiQz61Y58UAdog6ACqI9smH GvZvnaBk= X-Gm-Gg: ASbGncu8Jahpu5gj3HUn/RG9yZZp5Ja/lOHMWhv21aGgfqLTGP18cL3bmKMNWo3oBTq YTWD6tSn/9qctSOnMA7sASRtZ+sTm8sHvNZxI0Kh2CtOCPzu9WbEGdaYXa4dwvUAh3v053DOk/i p/fiZ15ROQG+kC3RioUqzJLgqK9f9YSEiUE0Ym/OLN7e5Sx82yAmgiaGiG5szSQgJfGGBfPihZj UrfAW2T2RUy+edAsLWl75GSEhXL5t/IqObFCYZ3vODlVRS4+AR/Cfi+NsdBSa2QzYEk8mXXq4yy quV7piENxNtZn/PEp4XL2PFA0W0YVAvfD8ZOTSR42IaAW1c/dRa3RSKaZY7EJuaU8tYugmSxsen 7EhSl41fRv6vA+TVBKsRPpJywLw== X-Google-Smtp-Source: AGHT+IGFndHOIFZSsgQfYdZw+/8HGCKSecirkmKfEr0kpQ5LrWHxETwwaD5/Fwd9r/MLkzRBHLqG+Q== X-Received: by 2002:a05:6512:b9d:b0:54a:d68f:6ecc with SMTP id 2adb3069b0e04-55216df94b9mr843157e87.2.1748007667241; Fri, 23 May 2025 06:41:07 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.41.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:41:06 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 17/21] pmdomain: core: Default to use of_genpd_sync_state() for genpd providers Date: Fri, 23 May 2025 15:40:14 +0200 Message-ID: <20250523134025.75130-18-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Unless the typical platform driver that act as genpd provider, has its own ->sync_state() callback implemented let's default to use of_genpd_sync_state(). More precisely, while adding a genpd OF provider let's assign the ->sync_state() callback, in case the fwnode has a device and its driver doesn't have the ->sync_state() set already. In this way the typical platform driver doesn't need to assign ->sync_state(), unless it has some additional things to manage beyond genpds. Suggested-by: Saravana Kannan Signed-off-by: Ulf Hansson --- drivers/pmdomain/core.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index c094ccbba151..b39d06d3ad26 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -2621,6 +2621,11 @@ static bool genpd_present(const struct generic_pm_domain *genpd) return ret; } +static void genpd_sync_state(struct device *dev) +{ + return of_genpd_sync_state(dev->of_node); +} + /** * of_genpd_add_provider_simple() - Register a simple PM domain provider * @np: Device node pointer associated with the PM domain provider. @@ -2646,6 +2651,8 @@ int of_genpd_add_provider_simple(struct device_node *np, if (!dev && !genpd_is_no_sync_state(genpd)) { genpd->sync_state = GENPD_SYNC_STATE_SIMPLE; device_set_node(&genpd->dev, fwnode); + } else { + dev_set_drv_sync_state(dev, genpd_sync_state); } put_device(dev); @@ -2715,6 +2722,8 @@ int of_genpd_add_provider_onecell(struct device_node *np, dev = get_dev_from_fwnode(fwnode); if (!dev) sync_state = true; + else + dev_set_drv_sync_state(dev, genpd_sync_state); put_device(dev); From patchwork Fri May 23 13:40:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892197 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 739D7296FD5 for ; Fri, 23 May 2025 13:41:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007673; cv=none; b=jgxkLsln8Ui9o/W88MLTkDj1Cj4VEuGNdmZp/thgS2g6O8KpCU6zwjqwjHzOXfMTJ6BFMcjjwgDwVC8MBiP8vXCwiGUjjslshqvdVIV4pbv1IkckNrnmC65+0T5QqLby4sHxmNSs4lGrWI4anY1y6yvRy86MW765C/3j+t+cm9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007673; c=relaxed/simple; bh=rJ1WF3jh53M3IFOFtyOo1l9fXgUPc2OdamLreAdGPrA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kTV0HQj71E835YvQq0Kw4CC2w44e8P2c63mBovcW4hR2wngSn1hO8D29Pb0LtzRKQqMnwM8S8x4DsafYvPWGCV8kCWpUKH2fQ6c897RnnDYY3MpgkuVJKc1MeZEFBPVmRAQqugDzBsx0tzJTBtWd/d6vuLj5VFGSO0JbJ9PDC94= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=VC1r5AUx; arc=none smtp.client-ip=209.85.167.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="VC1r5AUx" Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-551fb4d153dso5527959e87.3 for ; Fri, 23 May 2025 06:41:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007669; x=1748612469; darn=vger.kernel.org; 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=zTfJ/GeY/lTwR1D9VlQQIY/dt3W579Yxd9kJ3BXM+Hk=; b=VC1r5AUxPoDTsmH7yaDktjkCwQVJRgujT4RqqYiIfmycom5w2eToacpu7MevG+pDac M4JGRTFc/u3R4UzsymV+PTV4GMvTJTNHQRdyuKle0w/7QmHlSFYTRETrNUJu0nTV6fqw fxp6dXKs185yTlubedEleNlv6mmimn08Qq3++VHEtxvwnpXKR8ThXS+o+uQXs9shTBTf glux+tHh0ydLPHSI22Bnp7tJBLhl7t9jDZX4DZaJW019/VUywZrghUuiisNkH75l5Vxl dvk3UGYDzTL1WzVWJuKT6kYP29gMLEvpduSD1/VLABtjPshwC6Bs1CqC2V8vQOw8ctog v/Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007669; x=1748612469; 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=zTfJ/GeY/lTwR1D9VlQQIY/dt3W579Yxd9kJ3BXM+Hk=; b=CIxIaE4sXGABa3+JJ+zxonCGd89AXRXKsNj29ZbFvLHaqD/NlHj1MVmeuF2AObLPw1 bhH/U7IsjGk+kLDJ1cqujnOPiWBR7TAgAcrzsjvaoa/km62ixSb9P/YPmkZOL/oXpGP7 8ypjFEDN6Scige+BgzlvZj5GWXVXIfwj2/ZnKaqurLwpH7jGGZpRZ8Jv5slOXYj5Ml3c qKDwzNMfEmZeRGV63el4NPXGMfOjCo5mCncBv9sPEz0fhHTlQNeeb2aO13lYsVOAv98K ItuORIkrc08CdEoNZ2e386mXrdzTL4GposxqNXEf8y/BX2jnFkQVb9ABcmccATEJMvzK KLRQ== X-Forwarded-Encrypted: i=1; AJvYcCVzZq98P6t0s2wy7zueXbSX0IBbk86MnYDhECxo24k80UDeH3KVSt0uZP7cWohDKzypTVQ18qzTQw==@vger.kernel.org X-Gm-Message-State: AOJu0YybH6umEJlCTtZK2FU7NvwGvewKux12uiy87q6SgpM3bG1Q39Z8 sJscIoHCeGpgwxmYSBksy+BP3RBkoOdrBikPEh53JLwg8c2z07wd0xQ8BS3QEiPtBDA= X-Gm-Gg: ASbGncuzWdNGPI7d18eleexV2yPgqS2JHr+cw3OY6axK35Azl5r9PRUrsCNPjs0V6Qz 0HopcTUd28WaJN3qcN4wzY7BnXLY+dfmQz8MEjk2Vz73WJ3C/jWQa2oGilSm1K6Gjjxwa6ZcLbr qnvPUFZ6lhnYfckYth73yWS/hyc0y1SdV9M7RQPtCnPlFFiZL54yn927ZAp42By/9NJ1ykptson 6MCyxzekYHS9oF3iA7A35S3RP1Pn6qQDtllNjzZ0N8hacsB4BrpQwbWbRzElyuYtx3WvUOoDhpr IWfrUFgxMnxtcM14fNnI9RuF8sNIEDrtJffpnrgjmC0reM8Rr+MNIgrOvMJqMU7dV74exSbNqa5 vH52z2eQmdn1Qzd5utNeGRz10MMNb6xdoaqe5 X-Google-Smtp-Source: AGHT+IFDLfxM01YaBSflhZJhg763sDEi77sCbELPLz/NKFACM48uG4bkUP+LayfK8+cXACHnwwnbIg== X-Received: by 2002:a05:6512:4508:b0:54f:c049:4a54 with SMTP id 2adb3069b0e04-550e971afa4mr8711955e87.12.1748007668631; Fri, 23 May 2025 06:41:08 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.41.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:41:08 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 18/21] pmdomain: core: Leave powered-on genpds on until late_initcall_sync Date: Fri, 23 May 2025 15:40:15 +0200 Message-ID: <20250523134025.75130-19-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Powering-off a genpd that was on during boot, before all of its consumer devices have been probed, is certainly prone to problems. As a step to improve this situation, let's prevent these genpds from being powered-off until genpd_power_off_unused() gets called, which is a late_initcall_sync(). Note that, this still doesn't guarantee that all the consumer devices has been probed before we allow to power-off the genpds. Yet, this should be a step in the right direction. Suggested-by: Saravana Kannan Signed-off-by: Ulf Hansson --- drivers/pmdomain/core.c | 10 ++++++++-- include/linux/pm_domain.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index b39d06d3ad26..5d2ed4edffd7 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -934,11 +934,12 @@ static void genpd_power_off(struct generic_pm_domain *genpd, bool one_dev_on, * The domain is already in the "power off" state. * System suspend is in progress. * The domain is configured as always on. + * The domain was on at boot and still need to stay on. * The domain has a subdomain being powered on. */ if (!genpd_status_on(genpd) || genpd->prepared_count > 0 || genpd_is_always_on(genpd) || genpd_is_rpm_always_on(genpd) || - atomic_read(&genpd->sd_count) > 0) + genpd->stay_on || atomic_read(&genpd->sd_count) > 0) return; /* @@ -1349,8 +1350,12 @@ static int __init genpd_power_off_unused(void) pr_info("genpd: Disabling unused power domains\n"); mutex_lock(&gpd_list_lock); - list_for_each_entry(genpd, &gpd_list, gpd_list_node) + list_for_each_entry(genpd, &gpd_list, gpd_list_node) { + genpd_lock(genpd); + genpd->stay_on = false; + genpd_unlock(genpd); genpd_queue_power_off_work(genpd); + } mutex_unlock(&gpd_list_lock); @@ -2375,6 +2380,7 @@ int pm_genpd_init(struct generic_pm_domain *genpd, INIT_WORK(&genpd->power_off_work, genpd_power_off_work_fn); atomic_set(&genpd->sd_count, 0); genpd->status = is_off ? GENPD_STATE_OFF : GENPD_STATE_ON; + genpd->stay_on = !is_off; genpd->sync_state = GENPD_SYNC_STATE_OFF; genpd->device_count = 0; genpd->provider = NULL; diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index d68e07dadc99..99556589f45e 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -199,6 +199,7 @@ struct generic_pm_domain { unsigned int performance_state; /* Aggregated max performance state */ cpumask_var_t cpus; /* A cpumask of the attached CPUs */ bool synced_poweroff; /* A consumer needs a synced poweroff */ + bool stay_on; /* Stay powered-on during boot. */ enum genpd_sync_state sync_state; /* How sync_state is managed. */ int (*power_off)(struct generic_pm_domain *domain); int (*power_on)(struct generic_pm_domain *domain); From patchwork Fri May 23 13:40:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 892196 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55A0B297136 for ; Fri, 23 May 2025 13:41:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007675; cv=none; b=SFWb2pMQ2W20pIrMf422uW/oZ9bhP11lnAlYd7V9m37YrWSuFjsmzBtlRknk7wCrfURjBVqfiksSEScRrMBmuZT+7ABESbAXZ4dj0xvbQvQwNHTIM663lcXH9nNBdsql8rz1MUwGAWQ74nxDKAggg6jqq4hfJD1iXFZKBq9dZ/8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748007675; c=relaxed/simple; bh=eMWGIDGG2xlLJR/Z5iDFdeDcOa6riWNWL1MAhPqMtR0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SsrTCPPVgbahm6Lf0HjVXKVhW+3HS0ynGGI/rHTW5xv1mKBvm3MkLDV5Mm/M/GM5Duk2aMr5G53hMTt4tD04zffMTapJHJACSH5n7psLXKwJz4E23iuOoPgOOAHeW9KvnceCKkzNbNUZzxGhGSQMjDiuc6MS6tSpDzAcrwfnOf4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=k0WKNeD2; arc=none smtp.client-ip=209.85.167.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="k0WKNeD2" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-551f00720cfso7706383e87.0 for ; Fri, 23 May 2025 06:41:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1748007671; x=1748612471; darn=vger.kernel.org; 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=hOoCE0j0+Nf7/A2FNrnJbBGarUG82qfn+WjoD3EiQd8=; b=k0WKNeD21YN74k0exTzTpTbMPhRc10L7moFPRP50QQsYfOYFQ77tOAzP7HbGCXGVBC kwnPCp7iYG6sDIghCtdPQD1ZrtFsj1BQboLgvP8U/hStz1NmfL9EkoWGg5vhgQAjC3da uOn6aCOpytU1y0SyPGocTk/RDLBlw/daMpMeiWKd+c/TMR4llZM+LF/+p7U+FbvCn7OI lnnq171366JCIbW3BSy+JQl5P9g8ig0T4g0ah6o2ebKks1++uCq4a/ev3uns/OAHmuxl DeC4kNqpZRTvzCRt2PyACkL8TPK8A1/r+rr0Kl0G/vyYiqoGnvSfCsRzxW8vgvfnzsfk 3rLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748007671; x=1748612471; 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=hOoCE0j0+Nf7/A2FNrnJbBGarUG82qfn+WjoD3EiQd8=; b=DqjcZivniE1vyrd/kAOJYUPCte8v4e7QGnqL/MYjdrMSEprzDIiW21qRvocmEjn93B xalx/Fd7s1wc3nv/i+Q5pAOjKySi9RLYJJZIhwkGE5mbfGAfA/bBGSpZFgxZ7DRXPmuS zpiXKWptWKsEb0hqlCrCioTo2LauJD5Hy8x5+Dui+LAYOK0b8+QbBa0U7FvMt/62tdku FJQ8Lvw4jxeJZcOesFnnGLEbhyr1RXHoGYIybkB0F1lvxlL50ncLYRz4KK0s80Yz3OVc tDINjHdZDcQE+WklQwe9AKfWNMXwFxQUJ9ktagB/s1RKTZ7VBgz6MWPcBK251TLEAar9 8S6g== X-Forwarded-Encrypted: i=1; AJvYcCVUjjlId57XFpAI9g8pG8JCjnlnCZGn6iAIp7kVpg9hY/Yn7jpqhvap2Z8ARNvkb0GyJjVZ4LLJzQ==@vger.kernel.org X-Gm-Message-State: AOJu0YySDiiw+D4uF2RkvElu90JXqV8A6u/weKWruP4tJjklIidYz9f0 POEPRUB8Lz54AoS/0kq2rGXWTtKGfIuTsnFKAoqhnCaUYpU/MmbSIp3UeGzVJI76E3M= X-Gm-Gg: ASbGncvbxuLdlqOpolp0TuWvEnL5KnG5v/Uk7gadCMHv6TS/NrGeOxT1sWuULfySEPa rBnWAjLFKmL3Kf8fzl3S0EwwfELz35fzEF0sXb4p+R836WmE6czciPjWrfGGkyx8PCR42IPWIP4 7dvbm7vySZvLd7QcjWWcPtbmUui5xmpY+1Z9b3uIuRP//Fs7el1WD1/5i72sabR5Sg/LCIafGyS p2uJKXW8de6ozjoBsEWuJ4iq6WB7//OVUC3nJd+hQ1TcqmYIrRy0qQgM9zYVQTo95J1qeCO8CCD lJuqxqDOIVXP1WLy5aJAJ7diguD2B20ejWUl+o8KjfIdGMkwHePi9tFEe/zSAT6iTk5RBA+jrDt tRgkzjAvxeFWtBVxZUZ8kOF7gGw== X-Google-Smtp-Source: AGHT+IEVVVIanD+SM8PaeTS5BPNrUZEt3qImxQaWobI9SebxfHyiMxLEusYRHx51DE+mAPmIootadg== X-Received: by 2002:a05:6512:438c:b0:54e:a23f:82d9 with SMTP id 2adb3069b0e04-550e71d1472mr7232899e87.25.1748007671215; Fri, 23 May 2025 06:41:11 -0700 (PDT) Received: from uffe-tuxpro14.. (h-178-174-189-39.A498.priv.bahnhof.se. [178.174.189.39]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-551fc0d473bsm1950609e87.244.2025.05.23.06.41.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 May 2025 06:41:10 -0700 (PDT) From: Ulf Hansson To: Saravana Kannan , Stephen Boyd , linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Greg Kroah-Hartman , Michael Grzeschik , Bjorn Andersson , Abel Vesa , Peng Fan , Tomi Valkeinen , Johan Hovold , Maulik Shah , Michal Simek , Konrad Dybcio , Thierry Reding , Jonathan Hunter , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 20/21] cpuidle: psci: Drop redundant sync_state support Date: Fri, 23 May 2025 15:40:17 +0200 Message-ID: <20250523134025.75130-21-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250523134025.75130-1-ulf.hansson@linaro.org> References: <20250523134025.75130-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The recent updates to the genpd core, can entirely manage the sync_state support for the cpuidle-psci-domain. More precisely, genpd prevents our ->power_off() callback from being invoked, until all of our consumers are ready for it. Let's therefore drop the sync_state support for the cpuidle-psci-domain as it has become redundant. Signed-off-by: Ulf Hansson --- drivers/cpuidle/cpuidle-psci-domain.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/drivers/cpuidle/cpuidle-psci-domain.c b/drivers/cpuidle/cpuidle-psci-domain.c index b880ce2df8b5..37c41209eaf9 100644 --- a/drivers/cpuidle/cpuidle-psci-domain.c +++ b/drivers/cpuidle/cpuidle-psci-domain.c @@ -28,7 +28,6 @@ struct psci_pd_provider { }; static LIST_HEAD(psci_pd_providers); -static bool psci_pd_allow_domain_state; static int psci_pd_power_off(struct generic_pm_domain *pd) { @@ -38,9 +37,6 @@ static int psci_pd_power_off(struct generic_pm_domain *pd) if (!state->data) return 0; - if (!psci_pd_allow_domain_state) - return -EBUSY; - /* OSI mode is enabled, set the corresponding domain state. */ pd_state = state->data; psci_set_domain_state(pd, pd->state_idx, *pd_state); @@ -63,8 +59,7 @@ static int psci_pd_init(struct device_node *np, bool use_osi) if (!pd_provider) goto free_pd; - pd->flags |= GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN | - GENPD_FLAG_NO_SYNC_STATE; + pd->flags |= GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; /* * Allow power off when OSI has been successfully enabled. @@ -127,20 +122,6 @@ static void psci_pd_remove(void) } } -static void psci_cpuidle_domain_sync_state(struct device *dev) -{ - struct psci_pd_provider *pd_provider; - - /* - * All devices have now been attached/probed to the PM domain topology, - * hence it's fine to allow domain states to be picked. - */ - psci_pd_allow_domain_state = true; - - list_for_each_entry(pd_provider, &psci_pd_providers, link) - of_genpd_sync_state(pd_provider->node); -} - static const struct of_device_id psci_of_match[] = { { .compatible = "arm,psci-1.0" }, {} @@ -201,7 +182,6 @@ static struct platform_driver psci_cpuidle_domain_driver = { .driver = { .name = "psci-cpuidle-domain", .of_match_table = psci_of_match, - .sync_state = psci_cpuidle_domain_sync_state, }, };