From nobody Wed Oct 8 06:45:28 2025 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 8A0CE242D8B for ; Tue, 1 Jul 2025 11:47:47 +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=1751370469; cv=none; b=rJ3rqKKVQ0MF6Y6H6XTS0YoACK2c85WppxcEEzTUnUhfxNsKvLnMlxnULfOrD0Vm+da8n08TjEfFGUDXhhlCVJxZeXMDK+PlpHpSDhMlFRC//Fdf1ptYSICg5NtheeVfRqcFHa/f3ZOHSgnfigpak7EAVWbw/d0ueFSpkgKcFuQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370469; c=relaxed/simple; bh=pVRpR1S2HDeRvzXbIKzoXt5qvVDcQEyiyD3SHvPQFTM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OUmNET67Cw83ZiZ9+4ybcekYXbWNKxaszQtpMlREqnL5xgzG1EBgbZFlWedagOQ4d1NCX6xYV2KTOhC0E9JezSmCMktX/vHDw8yT/cA7yDv7xJ9AE4fTVYFYjkhfH+jarhL08ewgQ49/aKILuio3HZM0BVeGW89QqpvdO2OvXJU= 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=K7F/pNaq; 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="K7F/pNaq" Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-553d771435fso4712163e87.3 for ; Tue, 01 Jul 2025 04:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370466; x=1751975266; 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=2djU9nLQ8VglyUcEstpnVg4eaMTkukRCnzKizHYIlO4=; b=K7F/pNaqRYDyFQ/EFhymu/ZSYXH/sEhGgIvSutg1yhmCnVcLQLYpRUKodic1AKfch1 FeGGvyfoZ9G8/el3XEXIODLUl0uzlFyHrU7CjdeNpgrDn+dGhoS5fMn8HZSbgg9GOWor +GXECQz4piZ8ZFy9Br8mLwMkvfhoaqFIKTr2OpszLeWNPuodjnoE1X6oNWBFW3e50Ukl aH1oPp/EW73dIsChLheHsU5Xb8CSbE+ebPZC2Owb+3luzPimp2Gp9ICSCFIvPZuF3wFs 07ay+pYT9X4yGgOPIPerRxA/zlc1iPbFtI4g4DFwo93Ing4x6B55CtLXnnXDjQ/cRdTR R3OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370466; x=1751975266; 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=2djU9nLQ8VglyUcEstpnVg4eaMTkukRCnzKizHYIlO4=; b=BP/6uvIU68AwgjwDf9yuoMEQ/RoOZeFmSktan2h1BlzZIASbroGVMKlYiuT+tfoOIL u1qnEvT1wRACwzQO1vdFl8rPQ9cCdV0ivryrFk2CDZlFR2HnNqNflKxi55aVamo4Hsd/ yOdxdQYCkg9nlu7UJ6v257zwrEk5u13v9RqMZpDp8eCIZIG54b4j4I/rst5Hkk/ZcaY6 UvO0sMcmIv14zB77k4QACKACmV5+VAwdxnkJVXNZO03rZzmAHjhgu11cNdfFS5K8wvxY mC5JBr1NlKZ6/TSvF6TCUNe7R/OQ14mGIWi9aoZZkzk5+ug6q9L1G2al+NnoNcMBlKRX 85ew== X-Forwarded-Encrypted: i=1; AJvYcCWDghh7eXYFAudJzgFS+VIOyWMlr56BSzMyetpwvjONm9/43OzMHTbYiljR0GqTYfliZQokNJHuEUHaA9Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzSLzubqH+c0WyBUlPueMXSFXf9slt/2AIkxB91ufDXkrnPTS6x IjYigZFod9hJqva/kccL/z1bPlsaou0WyNVhjrLpepaUfoHtu2eaP8VSgbHVKNM0D00= X-Gm-Gg: ASbGncv79OS78eAIs38X35705CWfp4iETIXwIBiEiDzHVVYrxLBgpWWUqVc11FepG+o kGi6Rta3m7Iwzz3CjpbVdOaVxl9/9qsj1LTdjUPJk65pMQ+XXlEogZ7/1h8DvWn8XfcUCkbvjKs gwLzKmEIFdYvO9SsvmLhN5lc7z4688LLoDizB9GAiytf/mz6lv+9xeicmN4RBf1KrI/w8RlYbyd 3/R6U6vfyVIXQt9pYvNwQ3lzOnEn2kDqx4PxgC/qGTnNZ+i9nVoOFoUlufCRBx8XhEDJ5sX/uhk mY6bLhq/nEruioOycdk8s93mR77wDM0CsyAQCMeQIfcUfabSnwBMbdQ6vCj5BLDxPWj2D160VTg jZbhS8K13yZH1ftUVWndHLRdHO3DkQuJ6aU7H X-Google-Smtp-Source: AGHT+IFk1+sM2wFrURHBujkY60jtzQNdzYc3WqI7dzo+D/13c4kVHtOgYXZqpdwPvp8P1wttj8OecA== X-Received: by 2002:a05:6512:b86:b0:553:2154:7bd0 with SMTP id 2adb3069b0e04-5550b869fedmr5078899e87.5.1751370465534; Tue, 01 Jul 2025 04:47:45 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:45 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 01/24] pmdomain: renesas: rcar-sysc: Add genpd OF provider at postcore_initcall Date: Tue, 1 Jul 2025 13:47:03 +0200 Message-ID: <20250701114733.636510-2-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Subsequent changes to genpd adds a limitation that registering a genpd OF providers must be done after its bus registration, which is at core_initcall. To adopt to this, let's split the initialization into two steps. The first part keep registering the PM domains with genpd at early_initcall, as this is needed to bringup the CPUs for R-Car H1, by calling rcar_sysc_power_up_cpu(). The second and new part, moves the registration of the genpd OF provider to a postcore_initcall(). Suggested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson --- Changes in v3: - New patch. --- drivers/pmdomain/renesas/rcar-sysc.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/pmdomain/renesas/rcar-sysc.c b/drivers/pmdomain/renesa= s/rcar-sysc.c index 047495f54e8a..4b310c1d35fa 100644 --- a/drivers/pmdomain/renesas/rcar-sysc.c +++ b/drivers/pmdomain/renesas/rcar-sysc.c @@ -342,6 +342,7 @@ struct rcar_pm_domains { }; =20 static struct genpd_onecell_data *rcar_sysc_onecell_data; +static struct device_node *rcar_sysc_onecell_np; =20 static int __init rcar_sysc_pd_init(void) { @@ -428,7 +429,8 @@ static int __init rcar_sysc_pd_init(void) } } =20 - error =3D of_genpd_add_provider_onecell(np, &domains->onecell_data); + rcar_sysc_onecell_np =3D np; + return 0; =20 out_put: of_node_put(np); @@ -436,6 +438,21 @@ static int __init rcar_sysc_pd_init(void) } early_initcall(rcar_sysc_pd_init); =20 +static int __init rcar_sysc_pd_init_provider(void) +{ + int error; + + if (!rcar_sysc_onecell_np) + return -ENODEV; + + error =3D of_genpd_add_provider_onecell(rcar_sysc_onecell_np, + rcar_sysc_onecell_data); + + of_node_put(rcar_sysc_onecell_np); + return error; +} +postcore_initcall(rcar_sysc_pd_init_provider); + #ifdef CONFIG_ARCH_R8A7779 static int rcar_sysc_power_cpu(unsigned int idx, bool on) { --=20 2.43.0 From nobody Wed Oct 8 06:45:28 2025 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 25272273803 for ; Tue, 1 Jul 2025 11:47:49 +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=1751370471; cv=none; b=LTgriPbmcjKzEU/rKfSRveXSXx3b+QypBktX/pptVBAN6K0T2wksnqoMx/qQasA/ojikbStdpwpnMUuII7VE073eWPUGg6s2Xjqh0CZgfHs5w39wEohxSJs7WNvFyNxOBnn1RXZMM/6WLUXdG/6wyeuIb3xXCFM8WoQ0xk4eYsc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370471; c=relaxed/simple; bh=OJ7vM9iaMyWGCEbwZfryMptI4hIou2/uDCYlamFnw3E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=seoUpiYc+5fVbiYBL0mSErwa1QdJwj7C0Rilqq4Wh9oomCYKJbsOqNN2/JwWosZmJQYtbITzKbp+1ZFy/37hbw575NL/WN42r8dJldCe8sFJQg1sWNEwJV5HPEr1y6nabvZQYZxi2WRmU9tVta86gQe2ASr7/37NpRgkI8Dfvns= 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=LqPc2VBE; 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="LqPc2VBE" Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-553b16a0e38so6080103e87.1 for ; Tue, 01 Jul 2025 04:47:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370468; x=1751975268; 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=xR/zckWVNzKKFa7LSQ++02YjQJSEEQWqz9MIi6yuZiU=; b=LqPc2VBE9aT5rrPWOCCLizVSwVx6o3yNpiIoDWSEAlr+QzykBQVbc4TiRBj3Bfi4Tr 2xm98cclKutHtOvYZW5xKsjP/XnU2RVKqI++KQNxZMHWvfSI+E/8aQtJGN7nOomv1k2w aGCFBO/5TiNBH8x9qqEsyFMeO8Sgub8uZ8KcLS7rZEKr/COZ5ozORJeZ7I7mrnSTw+rK fEjlHaQ9PtkKr2OJGNRz12yZUl2iPX3CyzKD0E3gm5CM9Qk5CTuQQ1DjOVx22bUi1JTU upD91mCeCaPychQodlT9YtyrwfyoO5oRJJO+vbZyJRUpFm89JguuYwPkREuOnu7MkjUc HOeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370468; x=1751975268; 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=xR/zckWVNzKKFa7LSQ++02YjQJSEEQWqz9MIi6yuZiU=; b=h6zAPjo+HvCh4GFFa9gXwj+ZkkLkgqzxe3dHpCaoNmY2TQPAtiyasv7GBoqwRE/5Ed 5pOmjtskzs3hoa1WtvrSpw0Abu9OVCiu3UcwJ3oN0rZTvbxwZ9J6fdSe1MZqhOKoOMuK p+UbE7hcbAHx1yo9gm6Z69Oi5/+6bT3WiXftbXO1XA8hCjeReDba6nBLzE9Krfc0ZY6M +eTJ7rXQfyFUGOCY8GWjFSP8vTACbu8oDXKARYSndWhr10afr5SwpVNxxx0+dbLJCUKD OQu2dEBKH/vnK61VKFP/2Vfey+EwmPdyHjNe/lxcL/vsUdMA7t76FQE9Oz2bYmpzq4F8 6a1Q== X-Forwarded-Encrypted: i=1; AJvYcCU/BMsQDmQMJLh6KtSGaLG2imVopWkjLKa2+hcmUdjRqA0FHEigtJEhF2UdP7vi8zdCmtWXpJhJfQmS1bc=@vger.kernel.org X-Gm-Message-State: AOJu0YxtpPJcFff7QEdvOS61NpwjmfUWeeDEkdH+NuHNDYT7hUpAuyDd Fww+OrEXPQWISkYYddVUCbHTeE9uSO22mevZ8ILYtpF59s49XOHpIyGa3CipOIQuCkQ= X-Gm-Gg: ASbGncuDMeXOWi/SMYFWV3ipp7xED8cmL7FfRaHZ6PjFDJq6B7i/xqkZaS9THwL78yh rms8pEN6lVndBdO1dZzeSnlYON72ntwbFyFr5HVMc+vOlLvt7/uLmW1Kb3NlP3DeI3OCIhBCyeK Y7pznQizw86zT/qFdRMCq2GpLLcSfFWC9MMObQt1GnEMHOuGicIc5QY6gTSlQQI0j1rnfqEqZ6K lc0amlYMMhKzkoLzWExooliHAdCUlnVOBPcLB0dtMfcdZosHZSzDTq1QXvjfe6qaqa1OGxuqP9g qe/oUYHIthfoA2PgCcpS0L0aItiWpaxyG/g6KJXCGu5V7gGUfswg0bRH85GeHC0qXOVoAvdETyZ swznLDLc4O6gQikYsna2+u3VnKARApIHHxyT0 X-Google-Smtp-Source: AGHT+IGO5gKzZu+VtDDlyhN1DOFOUCU8t35eiES1E+DxBtLsVS3EGtlEnPMXH9LKCJiKW0MjI+Jmzw== X-Received: by 2002:a05:6512:159a:b0:553:ac4c:2177 with SMTP id 2adb3069b0e04-5550b83772amr4796245e87.20.1751370466845; Tue, 01 Jul 2025 04:47:46 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47: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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 02/24] pmdomain: renesas: rmobile-sysc: Move init to postcore_initcall Date: Tue, 1 Jul 2025 13:47:04 +0200 Message-ID: <20250701114733.636510-3-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Subsequent changes to genpd adds a limitation that registering a genpd OF providers must be done after its bus registration, which is at core_initcall. To adopt to this, let's move to a postcore_initcall. Suggested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson --- Changes in v3: - New patch. --- drivers/pmdomain/renesas/rmobile-sysc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/pmdomain/renesas/rmobile-sysc.c b/drivers/pmdomain/ren= esas/rmobile-sysc.c index 5848e79aa438..8eedc9a1d825 100644 --- a/drivers/pmdomain/renesas/rmobile-sysc.c +++ b/drivers/pmdomain/renesas/rmobile-sysc.c @@ -335,5 +335,4 @@ static int __init rmobile_init_pm_domains(void) =20 return ret; } - -core_initcall(rmobile_init_pm_domains); +postcore_initcall(rmobile_init_pm_domains); --=20 2.43.0 From nobody Wed Oct 8 06:45:28 2025 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 156F6273800 for ; Tue, 1 Jul 2025 11:47:49 +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=1751370471; cv=none; b=nA8v0JZAFXgZ6ftZe2xpVgI+ZN3NwFYG8ME9EpA/nZMt7oqtwBPjQw/quU4JYaATFZtZKBhyvs2tJ0Kua68to0nGNrN87d4+CQgfPakK2XiLZY/6B1ZpQwxXr4lMnE0RiPs1TPpvwsSOWLwcplZagTAqzOpKPAxdv4cDRx2EPnY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370471; c=relaxed/simple; bh=X+r0zTkUGtRJCJfRcd/bnGrRbNrkBLcRlu6vBZJ73Wo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iIPSDA8q0jv7AbeQnBh0XfqkuEjMyy2QkYBDUT4ChQ1UI9feFijUrGVMVhdPdW5qqBIZ+6kkJjSQU3IcwSqJApsf6wbFu3vUYr5MYZD5NHZ1S9s9ZVtM+VGRCT6Fn1KriTazyQ3O5WYuhFvmBwNhv4DZVXRZ/lk6IkTFYOKEe0w= 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=SlUW3bPt; 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="SlUW3bPt" Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-5561c20e2d5so1769911e87.0 for ; Tue, 01 Jul 2025 04:47:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370468; x=1751975268; 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=VAJ6J4GjiYlQlRHxgiIta0TvQOYhp5UxqNHtxTsiWvY=; b=SlUW3bPtqMEi9LrnL8dnMaZvtT/OFTsxVYeAYRjt38GOpH1KWUvkb6Sz+e6QHbQQou kh0UAUcKM74p61RbE+jtWGDsLr8POOtC2XXU9XJGu/rJPHbzsmzwM6sLXEF8yiKmPeqO h535b+PrNI423GadTVD8ag9oLzlMRoXY5h9+aZtEh/WujeYIVM1us4Rmr5395mSnIqOr CmaNtf0V4LuQTWWG/Sqm4bCKtwjcYfB+JUMW36msVlhptUw2wcnBmCHMdRD2ReoNxgXK +ExPMdDPJpDyhTWuISmquSuxDL/ZOpZY04Sl6fLBJhPeuFFsoXzDBl7pOAlDETzwb5ZA wWiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370468; x=1751975268; 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=VAJ6J4GjiYlQlRHxgiIta0TvQOYhp5UxqNHtxTsiWvY=; b=W7IV6KtPYfW876F4tssAHkhEfoi6h3W97GblPusPLEYEyMdqxpuIvF/E1puJ8YRI/c /c/4rqB7/UtOHH7u+q5xOlB1R6Gchhg2qRbB80nVTQvpjEirBE+5ea6rcWxFG/oc1u9g O2o39Rj/Q3bRmTZqUj70P3etbT27jWRdkQNbacaEu/MOg1uVFIGze5wdds1aoluEJhA8 XEa03s4Wrws8+y726DdroOWVTEklofYe72RNMh1dd0YmmYEN0Z5KxoQDRZ6agLlhp68X +ssUsC9fXrU+ld+d4lxWn80lTguD8aWwojjeTqmFkJzFIwBzD4Kup1T7aoG/g55RNMrR 1WxQ== X-Forwarded-Encrypted: i=1; AJvYcCUYAuz0gRYa8WInKhZaOw+ZJ+CLq+W0BGcgIyqux6v/QPZVuFnLLX8Ak0WUy4DB3qVIUFCq9lIYduwE9Kw=@vger.kernel.org X-Gm-Message-State: AOJu0YytGKMsV1eyvmprMPQFW2uMBbr7dDotpGbcT7btSH0vfYuXDN5H colytSn3l/vUPDm5twdMelgWCFLAS6AxxVmU9bp48mdJ3pomp/4TEwKSl+D8HcIM54Y= X-Gm-Gg: ASbGncujCqPL4RXfyLFwgu42Eb5rlpJvxtB9p5VCc/FoLCK4qzBnmGZZFbbe28RDrbm u3iywLIkqjPeZUJZp7+jloTZ+S8+CqegtNTWjaXVV1768gpmkqfPRsW6syRr63/MHrPImhCNn9M kVdQKsGRPQlUwZIq2D3yOASzrXkpxtYyu5e0cp0mpaxafrHPu2XzZkNmZI3FjD7vx1yrlTQ3xTr WfGoA0xGk2kCgP4I7VxtkBenMGWjdE6+5uDb4uJQJQBDSdv6Hn46no3IIAON9ERVYW2vJLDOoFb P7vkvPbqQINlnwd9tgL5DMll1RWD/RwoBmIZLEGpA1d413BLCGT7sZzETzLCqtsC6911VMMd+Dt pxGgWoOhRSFF3+FxOHppor4qGz542ZnnGP21a X-Google-Smtp-Source: AGHT+IHA2zFo5pnzsu0lhBpGnceUmjdKPW3bEz4nAMuwGE5OIZ/FIvjbr6dJfXztba7RBDcN4Dq+2Q== X-Received: by 2002:a05:6512:138c:b0:553:2e37:6945 with SMTP id 2adb3069b0e04-5550b89f419mr6638377e87.32.1751370468065; Tue, 01 Jul 2025 04:47:48 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:47 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 03/24] pmdomain: renesas: rcar-gen4-sysc: Move init to postcore_initcall Date: Tue, 1 Jul 2025 13:47:05 +0200 Message-ID: <20250701114733.636510-4-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Subsequent changes to genpd adds a limitation that registering a genpd OF providers must be done after its bus registration, which is at core_initcall. To adopt to this, let's move to a postcore_initcall. Suggested-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson --- Changes in v3: - New patch. --- drivers/pmdomain/renesas/rcar-gen4-sysc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pmdomain/renesas/rcar-gen4-sysc.c b/drivers/pmdomain/r= enesas/rcar-gen4-sysc.c index e001b5c25bed..5aa7fa1df8fe 100644 --- a/drivers/pmdomain/renesas/rcar-gen4-sysc.c +++ b/drivers/pmdomain/renesas/rcar-gen4-sysc.c @@ -374,4 +374,4 @@ static int __init rcar_gen4_sysc_pd_init(void) of_node_put(np); return error; } -early_initcall(rcar_gen4_sysc_pd_init); +postcore_initcall(rcar_gen4_sysc_pd_init); --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (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 93D62273D70 for ; Tue, 1 Jul 2025 11:47:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370473; cv=none; b=Mes8bZBPnEKqvqjd4Op1dLuzUzokJtL9OJmN6stJh+arfxaZbQlv4rovwl7aT7qnMsbSMVa9KCLj8SgUgQyj2JOB2rKx8gCX6lBjmItFDX51hnyaI6By4kc+tNH31svbI6/qdVsQ1ZCMdWMY+5UUtvBD93rcf11KdMLMQSP9JNI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370473; c=relaxed/simple; bh=vaFOqCI5djpScYcqXyC+q/cAcrHuyrRIVEA7y07/NSw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fZdMWG3tPBYLyIr/bdAUDyN9Mu9zydNM4wi6/bxY6cMr/rbXTAD+cTwdKL93E961Ei4tBXBi7KzGpNA93C/KzsySqF6wm+9//y4AdmoCsvZ42phiitHLUaTMdHoIyOrhkgutfY0aZdyFZI5QT0GfYLH6+y7WIPAm4HA6yMVNY64= 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=a7oAM1XB; arc=none smtp.client-ip=209.85.167.42 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="a7oAM1XB" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-553b6a349ccso3580486e87.0 for ; Tue, 01 Jul 2025 04:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370470; x=1751975270; 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=/ZOLfR72PXqOLw5WtFWDE/MmTe35xsn3qkEJhynzf0Q=; b=a7oAM1XBPf06BELVGcVNSDTsHQo3E3VCyA5lvWmm+nXMybgoQc+P/gQKU0Zrn+X+jX KxR6i8mMm5JtOnyN4i+4GVZrItVij64kH5Y7Zff1GPZ6mC+IMr2/VWR2NVEaRhB0dnxk ez4bHE4AyBQLkcYl4DvptRKyolVknpe8YqKlfI4l8dcBSqL7byXwBzUyoM3eAfcyVLX4 1yEYCz0M17T8D+6NjV8yUUghdQdHq9OHBGh2FrT/7Gj2zYbvUcMaSxDlpP5tpjpflGHU uflyTRs2ro0GtDSvt81B9p02pfR279e6f2Xtw+9MNd5xrPlUATEaIWISHNRAa/GBebsb AXXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370470; x=1751975270; 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=/ZOLfR72PXqOLw5WtFWDE/MmTe35xsn3qkEJhynzf0Q=; b=LmZUaGJQzwmQvx1aSu1ukbdzifqANRxDP8IDc2Qn7EN9MihMK5/4XD/xpRW1bp1siC bdr6hdfdUC9iX5Z2vVbU5e/PQbKefwMPwUF0/1JoB84YyU06sK42FsJ/9yH5bmLs8aKP OFyS120sk4jv0thJB0iuwDdFHQMdbGU1O3ly99cjkk8q4TcM9scunLB+lIfJ06ZdP4K8 HlqIT0yLcA2WbJ2fr8YP/x8nKaqxGvzFVWMNjNVxSe6KHWRFbSYUyTbfKFYXQf6J3ZW2 GOGPb4aMoi16A0eZ9XDXXQvE4TXn8Tm5CrLkxGUtvnUEPBnQKX/2Lt4HI9bfJet/GFcB i7IQ== X-Forwarded-Encrypted: i=1; AJvYcCWknc5a3fCBxkSR9IYou98Mfi9wlhHE2990OlQT6opU1y/4UoXlrB6RB2v25bi0yeVYnFXV+5K0smXXdw8=@vger.kernel.org X-Gm-Message-State: AOJu0YzArH54VhVRtd0TVI7cvWUG9r1fem11wy3cvPxcuSlXyz9hnxvy 1JmJ95AYXs7r+wVG8RYDBUAdGTJ4w9U2nTVA7BQL1ZyDUa3ZP3lxc0Pya7jFJPyAD2g= X-Gm-Gg: ASbGncu+PZ7SetQYJs8qBa5zqVjGg3Z0OAQwtlxNa1CP+qbhzJ+15N69IagDEr+s6eu Cw4YVmIYszX/gLM2FPr4R/vLCEwq1OaMmybkCLf7TKh3SKVWzr5r2Y9l9Eth+MTzW4ibye9GrBm y+LMr10U0Rb15nnt5RjFlJbmpSC8ublQHqV32aDXYWytIh+/8ZEM5xwgHgAIaLLTkUuytioDKCl OvU37ADz2f146IJYkQOu3a5iKs1rC9M2IEjKQIUPADakSc15PzIsDh8pshG27fLvp2a3ffI+UkU NrxBQSScm86BUbYLDQDSJ5zlW9/fRj7unqYO0lv8wSNNVq46gUdv/8e9ulLAx9aXEWvomCqRpGk DNPYuv/TIXabJ/u1/1TSgmpIVB//f+KqRMxo/ X-Google-Smtp-Source: AGHT+IEFlqH5aVFiMAtrKQEMVhHjR3b0DQN5zCXSWC23vo3ub27qmEf/97Rk59xwHI3Cjb9MA+KM7g== X-Received: by 2002:a05:6512:3a86:b0:553:a272:4d18 with SMTP id 2adb3069b0e04-5550b82b648mr4551995e87.20.1751370469527; Tue, 01 Jul 2025 04:47:49 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:48 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 04/24] pmdomain: core: Prevent registering devices before the bus Date: Tue, 1 Jul 2025 13:47:06 +0200 Message-ID: <20250701114733.636510-5-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We must not register a consumer device to the genpd bus, before registering the bus itself. Even if this doesn't seem to be an issue, let's add a simple check to make sure we really avoid this from happening. Signed-off-by: Ulf Hansson --- Changes in v3: - New patch. --- drivers/pmdomain/core.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index 9a66b728fbbf..93d71164fc56 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -2491,6 +2491,8 @@ struct of_genpd_provider { static LIST_HEAD(of_genpd_providers); /* Mutex to protect the list above. */ static DEFINE_MUTEX(of_genpd_mutex); +/* Used to prevent registering devices before the bus. */ +static bool genpd_bus_registered; =20 /** * genpd_xlate_simple() - Xlate function for direct node-domain mapping @@ -3179,6 +3181,9 @@ struct device *genpd_dev_pm_attach_by_id(struct devic= e *dev, if (num_domains < 0 || index >=3D num_domains) return NULL; =20 + if (!genpd_bus_registered) + return ERR_PTR(-ENODEV); + /* Allocate and register device on the genpd bus. */ virt_dev =3D kzalloc(sizeof(*virt_dev), GFP_KERNEL); if (!virt_dev) @@ -3357,7 +3362,14 @@ EXPORT_SYMBOL_GPL(of_genpd_parse_idle_states); =20 static int __init genpd_bus_init(void) { - return bus_register(&genpd_bus_type); + int ret; + + ret =3D bus_register(&genpd_bus_type); + if (ret) + return ret; + + genpd_bus_registered =3D true; + return 0; } core_initcall(genpd_bus_init); =20 --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) (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 CBE602741A2 for ; Tue, 1 Jul 2025 11:47:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370474; cv=none; b=qzRLu47nw+7kfQWLkMsiN12HrHmcvaC3B/1GqrXi8imTgnBvdkhz/jGsrssXEK0i1+5YiiNYUuM2NGLRKh+rvvqQ7aKDt1/RBWbzKcuoLuHN5+hNIrj5EMiVJolztY3R3rGBdPk+pi0tYBRksrYhe1qbGf6LW6RCz9Lm/0n7AgY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370474; c=relaxed/simple; bh=MQCAjJcJip6Amsxmt2Lzclp4RD2ddw7DtBpQ6/OAbs0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Q9fubPhdT0G86NomSvoIIg5sKBqj7Y5rnX8enVc8WclsiQAe1nZOUlpufusCMa7dzbttNswkGN2XkNX8VsK6IUsciZwMz9al5JgdZiNR3vAIxfoQXH4KT9vmzKCVictiocqxL2KZVoWoxDDMF7Z7rOziR289M96EVGH/CskvTBY= 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=M/PmXTXR; arc=none smtp.client-ip=209.85.208.170 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="M/PmXTXR" Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-32addf54a01so57412891fa.3 for ; Tue, 01 Jul 2025 04:47:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370471; x=1751975271; 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=CajxEdIrhbFO4ax/v+i8H3+X7djNNFGL84d/W5pIrjo=; b=M/PmXTXRKn3/Bw9FHdFU3Z1l01jiCLltFb7kkH5RnF6zfGQCDjEqI0U8T3QogMRGjP yHhP5lIiPd6Z0YnbsjiuaKIJqtMS/o7Yhjp+tR2Q9A5vpu6Pyp9QAZVES1O8x81Fpqgh d+kyhbztnoVwai3qR+gtoSLCxv2npT7oJiOsMWqjp0Csqt9+ZuRLFhd6w1VHbAyKR5QZ ErMXWRvaIGR0Z+iB18GflhBrZ8Msc8R3wuVv3lEgcBKa2FrKE3GMltjpjz8bBvKC8HLy vcAjNMq/CwiG91CDVcJis5eyFZ+z4MlyUW1mHjL8UY6DY0Dx46dJueBsF/TNGFHN0H78 TzJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370471; x=1751975271; 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=CajxEdIrhbFO4ax/v+i8H3+X7djNNFGL84d/W5pIrjo=; b=tV7npDvArFaRLsrCcKYTHo90UjXuJt3WoqRy92rVzHmVIcKuf8YIYsDy2G6NA88EK1 HCjG1GTSRkxGIKFw/FyGDofN+PCvIszM8gL/DP3cmt9hgnnAwS/oVIM8jmSBiUscmej7 aseuYKsZJxWEtymtx3hk/WqslQcOAx5Nqq+hMWqgrHmIUvNZJ6clqor9VYBTbU0aZJsY eAdy9oK/n89qRICDpfhKW8lrrgOzHcKS00zaXKmLVJh/5WEdzZY0K/2nng7v34ibSiMp Wil8HFhy55RorbJDQr1DXYFNVCZWhWiLUbPGFvD4MnPwqL7u0bU1WtSbyqfDvFnuNcPd 8sEQ== X-Forwarded-Encrypted: i=1; AJvYcCW74CW9p86eI60VPnmoyd1CORk6qqe6UYTKSQI1X3G5YArKlXN14kyssyxPCaFo/iA6fK5FRQfPEeUk2TE=@vger.kernel.org X-Gm-Message-State: AOJu0YxRGl8471m7esUt1K0FVYBncz4NL+B6N7R46C5vYYDBy2qHp6q9 uO38NIem9vLnH9Vec88llrCTM+Xt15SBVXOlb+Sn5/+dsSqO/4Z9vl7vuIn8NLXCTz4= X-Gm-Gg: ASbGnctc2npReg0H0iOuXLE+ba5sfh73Nq/7zIBxq+ZpGTyEVmwryJyt/iuz7l2uPlq F5K6qouJ321pkpmZQ6t00lTAYZky+Tl0pFQ0FogoxvwSEgCx13Tbv4fWrQKkOQNL5G+42u/CFhJ mcUPCFe04Ml7JdILrLPGGRQ3emN4VEJLSmM7W5d7FA3SHErDGTnje8MjZdapwxKjk3Vv6UQxZoH 4VElEXS59VEiENJ6FM6GTEceO0zOa/ppN3HNl9nsMEa3J3LZ/bhMB0Sppc5jX7KtsQQdKGrpUNu 1Sw5ihkNKQ0axYi7sa0dJnrMKJp2p1Kb3fO1fygUODCYeEB0eUU3XHipYm2ghyps9OHYFWlCPjm 5jki6A8pdC4QB4z/29Z2L0jNmEPzKiyE21QUASUjOIj1ftl0= X-Google-Smtp-Source: AGHT+IGMamMYGx3FPuo7ZJUyd1tcu3muckiZRnDf4isS1MMvNhp9nd+F41aF57MMOFDi0e6yJafIcA== X-Received: by 2002:a05:6512:1112:b0:553:543d:d96b with SMTP id 2adb3069b0e04-5550b869e02mr5271751e87.11.1751370470821; Tue, 01 Jul 2025 04:47: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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:50 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 05/24] pmdomain: core: Add a bus and a driver for genpd providers Date: Tue, 1 Jul 2025 13:47:07 +0200 Message-ID: <20250701114733.636510-6-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When we create a genpd via pm_genpd_init() we are initializing a corresponding struct device for it, but we don't add the device to any bus_type. It has not really been needed as the device is used as cookie to help us manage OPP tables. However, to prepare to make better use of the device, let's add a new genpd provider bus_type and a corresponding genpd provider driver. Subsequent changes will make use of this. Suggested-by: Saravana Kannan Reviewed-by: Abel Vesa Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- Changes in v3: - Dropped unnecessary callbacks and convert to use struct device_driver. --- drivers/pmdomain/core.c | 53 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index 93d71164fc56..a41f5f91e87f 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -27,6 +27,16 @@ /* Provides a unique ID for each genpd device */ static DEFINE_IDA(genpd_ida); =20 +/* The bus for genpd_providers. */ +static const struct bus_type genpd_provider_bus_type =3D { + .name =3D "genpd_provider", +}; + +/* The parent for genpd_provider devices. */ +static struct device genpd_provider_bus =3D { + .init_name =3D "genpd_provider", +}; + #define GENPD_RETRY_MAX_MS 250 /* Approximate */ =20 #define GENPD_DEV_CALLBACK(genpd, type, callback, dev) \ @@ -2262,6 +2272,8 @@ static int genpd_alloc_data(struct generic_pm_domain = *genpd) genpd->gd =3D gd; device_initialize(&genpd->dev); genpd->dev.release =3D genpd_provider_release; + genpd->dev.bus =3D &genpd_provider_bus_type; + genpd->dev.parent =3D &genpd_provider_bus; =20 if (!genpd_is_dev_name_fw(genpd)) { dev_set_name(&genpd->dev, "%s", genpd->name); @@ -3360,16 +3372,55 @@ int of_genpd_parse_idle_states(struct device_node *= dn, } EXPORT_SYMBOL_GPL(of_genpd_parse_idle_states); =20 +static int genpd_provider_probe(struct device *dev) +{ + return 0; +} + +static void genpd_provider_sync_state(struct device *dev) +{ +} + +static struct device_driver genpd_provider_drv =3D { + .name =3D "genpd_provider", + .bus =3D &genpd_provider_bus_type, + .probe =3D genpd_provider_probe, + .sync_state =3D genpd_provider_sync_state, + .suppress_bind_attrs =3D true, +}; + static int __init genpd_bus_init(void) { int ret; =20 + ret =3D device_register(&genpd_provider_bus); + if (ret) { + put_device(&genpd_provider_bus); + return ret; + } + + ret =3D bus_register(&genpd_provider_bus_type); + if (ret) + goto err_dev; + ret =3D bus_register(&genpd_bus_type); if (ret) - return ret; + goto err_prov_bus; + + ret =3D driver_register(&genpd_provider_drv); + if (ret) + goto err_bus; =20 genpd_bus_registered =3D true; return 0; + +err_bus: + bus_unregister(&genpd_bus_type); +err_prov_bus: + bus_unregister(&genpd_provider_bus_type); +err_dev: + device_unregister(&genpd_provider_bus); + return ret; } core_initcall(genpd_bus_init); =20 --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 439502741DA for ; Tue, 1 Jul 2025 11:47:54 +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=1751370476; cv=none; b=UXtx+PeqD2j0oqb1UVKylVJP9U88f+gh5LPFellqmjfy1kjDoaK5yPMQrD9YE0KZf7otwN2M878v18rDTLTc+iDG4PH/ozUUMOhkUlUTfrDhRZe6WgmE/1BKXg8YQS31ETLYNGDaiZX8Fv74N7b+wuOg3AaLbuzOtch5T4K0FBw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370476; c=relaxed/simple; bh=nFPOWBdB//Ck6xl2DT/3pkreVq/YJsj3c20cNby2iqo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PxsVfauKMjtDsFxyDjgB9hubVBoxEjPeck5uoEwIzkQGm6P4E+Xvvbk2AEAPUDeFUjJmNU1RhVEALaq5mOgqrDCBOhD0LiaCPoXpIzcz1dXM6g6lMZdnCCH5t2kGwDcDo/SHKiLWoNz9+SsuHIWIt+8+dnQWObYiMVD+O+QdCns= 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=R/nnYi43; 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="R/nnYi43" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-553c31542b1so3663392e87.2 for ; Tue, 01 Jul 2025 04:47:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370472; x=1751975272; 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=0+3aTAl+M+lH6zTTjz5VE7X6/AIzvFAfUkESBddcdw0=; b=R/nnYi43DYcyZn9jeLxu/NtnWdedk1ylXgJcBl9yg4HtwX2pzXyw3uLIIIUDWB+KKK Cb2eSb9BJpWNz9GTu/dyb/uB7cqrAhDdRP2o0d5LKov3f619tRuFCDPOthENsbwADXDa F7oSKGoPX3U7Xhkb4eg1heSI6mbgETnmajvPOgsEjeN4qnaZs8K8p/1PfWyEUuinHijT 5uJGabmd+LQJhhF5JkZZALbF9POkxWyNWzjZI7dIG0QcguT6cW79f46ILHyc/VvyRvF6 bkQCEgxYoxatOp4XCMXoe9g1H/CPvVNzMO65SDx1kjHOAtoSFzmtm90iqRj/6GSSt9Bv UkaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370472; x=1751975272; 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=0+3aTAl+M+lH6zTTjz5VE7X6/AIzvFAfUkESBddcdw0=; b=V8JcHrifmTJ6lOhjOxO44QFeA7aqMshOU8FItfuCdQARn9DaSbUEQYoQQ5fiMFUFif i1YqqpakDuo4PWhUskiU2P18Xg9tPsxxo5xaq6/Sxcqoj3ma99b/2wWShqdZr/bK+wax 7Arh9xUcYgYRycUDN4uKOpdapzv4WggD4FG0KyHjN99OrUarz5R/fco5+R3811RkEjce UViTpiTMt/K+lksR1midFEsxOamh9wb69wjHddKYcTYNXUFZjbWYNExWdja1MpGg5caK ntJZbWOeGIYp2GIAN+atDGNM31XTL73wA9gPesKjAwq5yFDk9zp5+hwSTGSm8DPJLAc1 nAEg== X-Forwarded-Encrypted: i=1; AJvYcCWJwQ1cdY+1SO/a2a24pOBMO89mm/VUo2YBMLkQR+D0xYuOjJpYfpnd+9wlZtJ67nGSIgDlu8rBUhEK2gA=@vger.kernel.org X-Gm-Message-State: AOJu0YxaCIbaQQ+jZ0rABFwfgPBi/z+WShZO8ohhEgPYAq7BvktYO83O E/39LWkRf1MmFugqq9Ogrnbs2pXiTpONHsV0Przkxv9XOJO0MPc4FkAIqAppYESZlxg= X-Gm-Gg: ASbGncufSVVacs705eWYEJF4lbFv5ji+nkpqYamXQaxbAnoTLuZOHPAx1orBjN6SGg2 FCi9lckz9JMLrvknAQaAe6fOEKoyB4sm3PQhiNLGMTguLj2Xdcbid7fGmTrqo67Hf/kKYofSw7C UjWH2pyq53kYX/E3c1sgSxM6Xa4iMLZV9gR9PL/fAi7Th+LxWUhU2ZyYQ2TWLahsGMtNY18zUzp HsCmj/iT9vcGsA326tyVMSjLhom7nxIIveYVX3AzesDa+21SH4zd3WTrnQNtpM1cUu0412Pgl1c a2/DlpJEazH/gHfvlj9UZCj3ftt6K/1dBwI0ONHeFSegrLXi+kvRHqdpwKeMu2xknEiqrJs4/+X lTlpaeuXC6pAZ8XtepcFWtWEWdUunKiLfxOpl X-Google-Smtp-Source: AGHT+IH+YI+owf5uflw/NB8o85eX36NM0PJWNRuH/JFBRyImY1nsQEgV7d/scYEuexIuCW8Xp7EgQg== X-Received: by 2002:a05:6512:3b9d:b0:553:a2c0:da70 with SMTP id 2adb3069b0e04-5550b9e5d1bmr5690955e87.26.1751370472237; Tue, 01 Jul 2025 04:47:52 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:51 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 06/24] pmdomain: core: Add the genpd->dev to the genpd provider bus Date: Tue, 1 Jul 2025 13:47:08 +0200 Message-ID: <20250701114733.636510-7-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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. Also note, to allow us to add devices to the genpd provider bus we need to make sure the bus has been registered first, which is done via a core_initcall. Hence, calls to of_genpd_add_provider_simple|onecell() must be done after the bus has been registered, else they will fail. Suggested-by: Saravana Kannan Reviewed-by: Abel Vesa Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- Changes in v3: - Prevent adding the device until the genpd provider bus is registered. --- drivers/pmdomain/core.c | 44 +++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index a41f5f91e87f..79dc0bf406f0 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -2611,16 +2611,25 @@ int of_genpd_add_provider_simple(struct device_node= *np, if (!np || !genpd) return -EINVAL; =20 + if (!genpd_bus_registered) + return -ENODEV; + if (!genpd_present(genpd)) return -EINVAL; =20 genpd->dev.of_node =3D np; =20 + ret =3D device_add(&genpd->dev); + if (ret) + return ret; + /* Parse genpd OPP table */ if (!genpd_is_opp_table_fw(genpd) && genpd->set_performance_state) { ret =3D 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; + } =20 /* * Save table for faster processing while setting performance @@ -2631,19 +2640,22 @@ int of_genpd_add_provider_simple(struct device_node= *np, } =20 ret =3D 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; =20 genpd->provider =3D &np->fwnode; genpd->has_provider =3D true; =20 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); =20 @@ -2662,6 +2674,9 @@ int of_genpd_add_provider_onecell(struct device_node = *np, if (!np || !data) return -EINVAL; =20 + if (!genpd_bus_registered) + return -ENODEV; + if (!data->xlate) data->xlate =3D genpd_xlate_onecell; =20 @@ -2675,12 +2690,17 @@ int of_genpd_add_provider_onecell(struct device_nod= e *np, =20 genpd->dev.of_node =3D np; =20 + ret =3D device_add(&genpd->dev); + if (ret) + goto error; + /* Parse genpd OPP table */ if (!genpd_is_opp_table_fw(genpd) && genpd->set_performance_state) { ret =3D 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; } =20 @@ -2716,6 +2736,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); } =20 return ret; @@ -2748,6 +2770,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); } } =20 --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 75DC527466D for ; Tue, 1 Jul 2025 11:47:55 +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=1751370477; cv=none; b=an94L2TwCFWK7v8vpf09f+LIizSHLl/2zxWIv8wdedDmOy2inK5A+CCF3rWs3hEiT1+myeNjBEOwdNztdjHDLkdeWA59hMPilhtq0pjXy4ysVacxzM7nbYXzHtSNXKf1c83qilq3fm9SXzk9063bSvNVOeShSQmbNc/kQaoQR2k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370477; c=relaxed/simple; bh=GSQjDAAw/2UFfOSDhN4XP7m6qEVN6g7wVlZceYPRiQE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bp2lIK180XvS5Ti8GeravWVomL9VhBvmkZBuLGAiL6qEjn9bwKe/+/7EeU225AbVCCo81jc3QhnNGsFTs5FcgyQeXy3MpG24FMugq3osqCxYFao0DNSi+exOUWpF0HcYYoSS20tUQgg8wo7y7SiCZN1KCurIhoolz6LcWpNGYcA= 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=l5iOuLpQ; 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="l5iOuLpQ" Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-553dceb342aso2910741e87.1 for ; Tue, 01 Jul 2025 04:47:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370474; x=1751975274; 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=X8snE3wteaj05up9xuc38N+GpWHiyr4TVp4DRKu79Vw=; b=l5iOuLpQMOVzxO/4T1vXdMRsDV9x6YeySVd2w7IqZuVzHDCpI5gqs6OdGo7D6tE6XF MR9CctnrRHOkfXAmAzYP9WG8WYLohxYfKkLw0LygKZmMGdbbjEO24Y8XDlVr9Nrfjqzg 4J1dfYpd6bP7pFY9byI/mogq0My2YKWd+k04ioCyu5i4+q1BP81g9gWbCQLI5QFyANCP cEP0Qwc5w62bbmv2nA36zcsacjyoxF9Oq8qEsBGhNTSYBSeyhnhBWbwjb/Mg+D9DcduM iDoMezsJ6l6w8GjN/PlAfZOn1a0tnLmzKK7DE28xCCRtIExDUbCJ6VHpi4mRS2RQp9PX XYPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370474; x=1751975274; 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=X8snE3wteaj05up9xuc38N+GpWHiyr4TVp4DRKu79Vw=; b=tfimEBVce8xNXii+JvLgq5csOvbS+z8z0n04OTQh4VfJY8d1nlM7JtKw1x+/aFahPk Rzlq12thq/EzJfSbMmL9T+Zn8+objvDqKW7YUJRh/vtqekKIkbPhCyV1Ru/r4dtWKO32 LPjKjJXdBG3sZfZOiI7qjcjW06bwid3ckw16uDEVa4iTW3r08I+H9+hyI2IbvNu9MbtV J6Qp7fFSlaGpAma81J6wbPOeNA4LZViSoUSNM+U9ITTLlu5g4tQD7+FAc5GEZNJlwj2T KXpC8pg0oaYudKQb0e4WkPPQWYdS0Pq+6I4H/WIV7kZWXu3MqpQQZcRVol10TcYdwSjj rojQ== X-Forwarded-Encrypted: i=1; AJvYcCV7Xo5ZcJqBwWN4ZtZikgH9+aJtdzZTHzcndUBnSC6ds59GUXta2OUq5BghMWuO+wsB/2KSLmEenhF1dGI=@vger.kernel.org X-Gm-Message-State: AOJu0YwCmFldpLZ3m0YdcbURT+XCSluxK3RBssaCcJMhc1uXdyIN9RBw GAjY66bubPeOIHvq56mjWutsNc72MPegTlPGBT/O7veCfo6aKK9ZWJ4yeaUvNA25WGc= X-Gm-Gg: ASbGncu4SSWhgsrrRf88TPs/YGUIU4B03wcX0kTGVpwOLzNU/xncbYKn/JpugyaO3Nu ArZV7imeRYsz59TNUoR3G6mzm/4C3yNDRjbTkGKFxInGRCMEDuEnnMf1QCf+UKl7/LKOZUkJ2g6 Kugg2wLyJ4+94Jy7YNayKUKXOBrUkdvGcnNQh12C7aMnizICJPiO7kVcBRwQ4FulIaBwE5k9ZRM MUqTGwGLvWWd0KVNg7RP66tzGXBDl9LOArkwLtRbmIpEfSMxYeo3gTuOkltDeKOB8JbSEd47f+E cIaYxuAWmJVNwL0GpJJ3HRROgxHOvJfTLofJxNucc9iXEzkEuzaRENs8P8eqOny2MELMiGHk8q0 zAt3NMeguqJqX2/FaRvSNdKV7yf3ZSq8D0ue2 X-Google-Smtp-Source: AGHT+IGHOXSS3IfRhKJLvej9F7sNLg96swujqTnE5kCTQPPh6ovfx1jtoUYgG1FeyEuKZgdZjCc4VA== X-Received: by 2002:a05:6512:1590:b0:553:3073:c38b with SMTP id 2adb3069b0e04-5550b8293fbmr5034875e87.1.1751370473628; Tue, 01 Jul 2025 04:47:53 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:53 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 07/24] pmdomain: core: Export a common ->sync_state() helper for genpd providers Date: Tue, 1 Jul 2025 13:47:09 +0200 Message-ID: <20250701114733.636510-8-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In some cases the typical platform driver that act as genpd provider, may need its own ->sync_state() callback to manage various things. In this regards, the provider most likely wants to allow its corresponding genpds to be powered-off. For this reason, let's introduce a new genpd helper function, of_genpd_sync_state() that helps genpd provider drivers to achieve this. Suggested-by: Saravana Kannan Reviewed-by: Abel Vesa Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- drivers/pmdomain/core.c | 27 +++++++++++++++++++++++++++ include/linux/pm_domain.h | 3 +++ 2 files changed, 30 insertions(+) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index 79dc0bf406f0..0a6593a1b1c8 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -3396,6 +3396,33 @@ int of_genpd_parse_idle_states(struct device_node *d= n, } EXPORT_SYMBOL_GPL(of_genpd_parse_idle_states); =20 +/** + * of_genpd_sync_state() - A common sync_state function for genpd providers + * @np: The device node the genpd provider is associated with. + * + * The @np that corresponds to a genpd provider may provide one or multiple + * genpds. This function makes use @np to find the genpds that belongs to = the + * provider. For each genpd we try a power-off. + */ +void of_genpd_sync_state(struct device_node *np) +{ + struct generic_pm_domain *genpd; + + if (!np) + return; + + mutex_lock(&gpd_list_lock); + list_for_each_entry(genpd, &gpd_list, gpd_list_node) { + if (genpd->provider =3D=3D of_fwnode_handle(np)) { + genpd_lock(genpd); + genpd_power_off(genpd, false, 0); + genpd_unlock(genpd); + } + } + mutex_unlock(&gpd_list_lock); +} +EXPORT_SYMBOL_GPL(of_genpd_sync_state); + static int genpd_provider_probe(struct device *dev) { return 0; diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 0b18160901a2..3578196e6626 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -431,6 +431,7 @@ int of_genpd_remove_subdomain(const struct of_phandle_a= rgs *parent_spec, struct generic_pm_domain *of_genpd_remove_last(struct device_node *np); int of_genpd_parse_idle_states(struct device_node *dn, struct genpd_power_state **states, int *n); +void of_genpd_sync_state(struct device_node *np); =20 int genpd_dev_pm_attach(struct device *dev); struct device *genpd_dev_pm_attach_by_id(struct device *dev, @@ -476,6 +477,8 @@ static inline int of_genpd_parse_idle_states(struct dev= ice_node *dn, return -ENODEV; } =20 +static inline void of_genpd_sync_state(struct device_node *np) {} + static inline int genpd_dev_pm_attach(struct device *dev) { return 0; --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (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 EA168273D70 for ; Tue, 1 Jul 2025 11:47:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370478; cv=none; b=mmLS4kjxywOkR7yNHZl9nY5gnSNHI9lEzhkAoZPM2Af1PYqRZpMlABAlZ7oo9jC8TsAFW2ItxufB3S3P6+HPZhMc5wJb5Y0Bty1kuX3WxkSiBKhihhjpLswlCmXp1OvJM8EmZqYbhuiZyURDczaRWHn6K0mkkXygolWu7LAd6IU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370478; c=relaxed/simple; bh=dJ8EsJdalLFjFwUQ3vvaJretZ0FF7C0LZXGbOwfHU6U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=od44JCH1765cyPxfoBAAB0C3rY50gFCsPD8eOKUpRSGOIH/LBUq7dLGfFRzAOMhb/eawb82L5+aER7HC4LwSD1Y6+8GT3y9oKmgnYerrdr8aXctvCoGnmgbIFB00CU0gA6Ypg7eGxS8Zc8EvRkrlmw0GYzuRQ4XG+hItmEL9RXk= 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=HX5ihn36; arc=none smtp.client-ip=209.85.167.47 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="HX5ihn36" Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-553dceb345eso3764739e87.1 for ; Tue, 01 Jul 2025 04:47:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370475; x=1751975275; 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=79lLQOvWjPgr3ms40rqLbg+1wi6d2CJf/NthKCtHiEc=; b=HX5ihn364HYe4waWW194HK5vnXDLyAFYXEdt1VLExN1TGEockwn2tWBJAm4j5sytVY knEl9reJOywq5pp8rlB0aEAeOaPPyM6u/mOro1LYBfpi1oZJptGtJpfmQMu7TqxElSco ExnHtl8lJQV5hYE9uB0hcu7MCLtMfLHT+6hJa520Q9tqbYGHP/F8XkMAt/uYRpZnYYtN CshTgLyuRBuvIkkEay3czqP3bbEFLJF4gNoEHaXxj19N2WoiagbYL8MmnCVj0/s1uYdM eR98afQODJdtrxJLMpj/XM+nIUzPXt9fFzcCONRXuQ1bZ0o/q883Kg8yp4otcz+WrRXB aUiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370475; x=1751975275; 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=79lLQOvWjPgr3ms40rqLbg+1wi6d2CJf/NthKCtHiEc=; b=lE/CPPV2TsTo43iJwXIlRCTfW42u8NkOm5nSwDUJrhVl1mFjn5mBAtij7QOMbAYlvE Bfke4lJqdkHQc9olKlTRUMX3hN9lFc8/JI5Ql7sbRIacHPbczBVus/Okjhtt2+Ydccgf ZiTEFGrRSV6JdOaKnRMmLOKgVAlH4tjfwSeeBYKoy3EhOlowXB3k5zPw3SyDwkdkbtzW c7ouhMcVYrKKg+ilo6Gm3NRwM8toYo8rBIcotm+EUrmVY+yaakvaCQE1Su99Z+iJ+2rX OGHg1tOMXM7HeSGNZXb9ESORzA1i7Sg+Skv3aUc1DvjBdENaZmDsKpCaPEjcFlfrmWk1 gLkQ== X-Forwarded-Encrypted: i=1; AJvYcCUWoBU7ltFn19kbABisxRV/SAmSNnN50DsMmRtKpEj3aEbsLsRusslgvo1nO9/q4vcdU0ZahKaAvFb9Lcs=@vger.kernel.org X-Gm-Message-State: AOJu0Yznx4/sx1jLF0Yz2RhbvBM1F8nxnJ4+kPy1XPxjVvdTDhE2aExs E+t2JTpLj38NkM8Pz58ZH0P533VwuBXAVzykJXcz6PWwFq6SKLVwmnIgEzjgzAzjoZY= X-Gm-Gg: ASbGnctnbaDCSOWjNq0wmzfLvBCsXWIALxIIfz6uPn5vj5ak7DowaUuSawJyhIBuvhZ bVKO8zCPTeipOy6lA8IihPmmA1bFoBDWm+Me7iDn0mFH6X1Soi9yEWd5/HdaD3I4+eWcNTxrMKJ needDxKA6Z8iAxBa/NQniYP2ilMxSSvbyvvKpQJ+k2AV/da1ePTpNP7ss2UyR8W2O3KcM2T6sBM Z2sww4aLIF+r+11tR3cG+Hx2MqXWg6E2lYEdA6s73Ei571UCAnhVxdt+y2KJeTgcDauxIiVp+7r 1fbM0bl+gZBu0FB8a2BkPRVMABapIKlGJfUr/ma3pHN8bKaqmoMPdqw8uCIXZCWGMCkPqQLeyEL 1QZt5t8G18xzCBnxV9lKerLr3oZD7iBwpmtMd X-Google-Smtp-Source: AGHT+IH4G62NAIzkTDdd4Bnq5FbST4e5sFqlJvIjwn56lcRCHhQ1EM+lmASjybjZreaBKv2h5BjCKA== X-Received: by 2002:a05:6512:3501:b0:553:296b:a62 with SMTP id 2adb3069b0e04-5550b7e761dmr5493897e87.12.1751370474952; Tue, 01 Jul 2025 04:47:54 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47: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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 08/24] pmdomain: core: Prepare to add the common ->sync_state() support Date: Tue, 1 Jul 2025 13:47:10 +0200 Message-ID: <20250701114733.636510-9-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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 na= me * 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) =20 enum gpd_status { GENPD_STATE_ON =3D 0, /* PM domain is on */ --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 7232A2741A2 for ; Tue, 1 Jul 2025 11:47:58 +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=1751370480; cv=none; b=bHKmON7tH7EjU9HXeq0cVLNmhDswQ4i7UaZoYbZXcT2M1o/XdPawRyfEAtVsTVk7NKEAWwo0i3MHdCMXZCdBT3AYahaEDo/tyMDbN0uF4FIi8uuzBDcvTVX8dbnUH9W6Awhz5JShexniD3db41GK1SbPkYFMxzuZr7AbnxjbhoU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370480; c=relaxed/simple; bh=LHxZDkyo502rMyxdajeshiUDkvLObery09pkUl63guQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PiGdbslS1sDzFNOcb1nQUyblAed4vj4ZynMwKryuRGX6El39ycw3AL9+Gb6rIwJlQ03Hag/KUZOcCqjEht3svaSKDwAAPR7hyutsc10oO2kJic1HrVVIrGZq5msYfgOZqI03asKfWX9INJ5Lhf0SvoI6xATForinUO/Oj7OAq08= 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=e7PAmCKy; 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="e7PAmCKy" Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-553b584ac96so5173601e87.1 for ; Tue, 01 Jul 2025 04:47:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370476; x=1751975276; 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=sYtOzZmGnMBH7yNv+nKiRPqWoWqO5OBErjnboqxVlX8=; b=e7PAmCKybusLt0X5GvqWNqzAKlDGWNGd4MNPEedzrZIwl2NyhjPtznAi0Ga0YWO8GF pO/i18GNe6QaeatTe17vjrnz0G4tNw3XswRgb+qOLO3P1QF6XPMClMoIoVX8fiW9ESBY U0QcTEWuw0NA8mGQextT9v0j/ogOqsAxN2PapEl27s0nw7P4saNofucRz0ev1B/774PP Pb5CKag1JiIO8+tX8gR2BDEmgX/2RnD2l/ZuB1kUUHToXwnecF3f2MTOAGGk9y/Rmq3I 9VsRXRmC4LCqOYfaNwjPEFSm5Sb3XAc3Kyy/u5fz61Fu7OIBdZX3N3LQnCJmKXVpheYO 21UQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370476; x=1751975276; 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=sYtOzZmGnMBH7yNv+nKiRPqWoWqO5OBErjnboqxVlX8=; b=aEFiO1C5DbITzY3zuU/v8HIZp9QMD909S8L3MIMZ+foQhcHlqbQnnc2ml0oRsOT9A2 MzIu5KW73D3ZqCCN/Scu0n0v0q3FSZBCOh5VT3LDkhRf46keG4ngXNAzbj8pAvTDpdEH f5YJ9I5qedeG30vvO4ylrO3IAKjA424wWly6XeFkRYCfnQ78lKA+Ejb1HOk0hA/dtBQq MbLvE2Jbwf9jknE8I+Ol/RifH8r+dHtt3btMkK09ZvL3sqHx6jBsExdmcHjE5HRyT4OD rzjbOcVEVt/bQ7VlbmDNgRtf1W6SLSos607HVoYA8w0kUcimsbGPjdgfjeldnV3L6yZG dPBQ== X-Forwarded-Encrypted: i=1; AJvYcCWXtoeYUqSZo1UJkcyq3hTSZSfokjFPhDbvt0KLFZxOQEIXaX5w+50rIV0I9d9qBw3wLI1tib4OPBeslKE=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+MK0f0dmbYx6yKocgjNJfKqxrPJ4i1tA8SCeiRi/ZMY0hyqoB CHo7+O9RtclpPWFPZjUgy9dDhAQ+oT6po/6BrrVtKY8r4jJOtivVSiqghLyKOyD8DzY= X-Gm-Gg: ASbGncuHIO8SufJUyjp3DG8gQiOAtFUchrjw1Tzo6Qtm7+V9lNmqqXdkSILkdoJRx60 RZ7ZBLW4Yb2hADFayx1YdeyG0CPp/midpTLsyayVmG0yfo4vkE0DeEqaxlxrSROskuM/qxMKjg1 7lJa1X5ryjEjLhpT1zNgmWoOOUq2cmDUG+p+u8z0hRjAdvuv+SNTnC+mIqKMJW3GA9mxIPTySBg 13XqXs7hNwLVSj6coq1x/lUfSnZaYKz3GQ5jLOTlOtEwFpmd2UJPcI8zlLBIHRySkp9zPTESFaF Txkb2XyicPS8RxBQsddINFEpn7zbtrhqQoGELp2de71O3RguMDYUYmpDzpFTuZyZK18Smr9Wx4I B1AbrbcoTrSXQXW0wrL8ULf8Q8Sk0XxU8iwhy X-Google-Smtp-Source: AGHT+IFSPaZorQ+Qh+OkD3aotM2d9NhdvbOFk3i1QZMiUSjQgU+7klRfn1pjmSzZTdcbR7VQIAkesw== X-Received: by 2002:a05:6512:b1e:b0:553:d910:9344 with SMTP id 2adb3069b0e04-5550ba2b25dmr5366069e87.45.1751370476453; Tue, 01 Jul 2025 04:47:56 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:55 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 09/24] soc/tegra: pmc: Opt-out from genpd's common ->sync_state() support Date: Tue, 1 Jul 2025 13:47:11 +0200 Message-ID: <20250701114733.636510-10-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Tegra implements its own specific ->sync_state() callback for the genpd providers. 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. Cc: Thierry Reding Cc: Jonathan Hunter Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- drivers/soc/tegra/pmc.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c index e0d67bfe955c..d209e3435878 100644 --- a/drivers/soc/tegra/pmc.c +++ b/drivers/soc/tegra/pmc.c @@ -418,7 +418,6 @@ struct tegra_pmc_soc { * @irq: chip implementation for the IRQ domain * @clk_nb: pclk clock changes handler * @core_domain_state_synced: flag marking the core domain's state as sync= ed - * @core_domain_registered: flag marking the core domain as registered * @wake_type_level_map: Bitmap indicating level type for non-dual edge wa= kes * @wake_type_dual_edge_map: Bitmap indicating if a wake is dual-edge or n= ot * @wake_sw_status_map: Bitmap to hold raw status of wakes without mask @@ -462,7 +461,6 @@ struct tegra_pmc { struct notifier_block clk_nb; =20 bool core_domain_state_synced; - bool core_domain_registered; =20 unsigned long *wake_type_level_map; unsigned long *wake_type_dual_edge_map; @@ -1297,6 +1295,7 @@ static int tegra_powergate_add(struct tegra_pmc *pmc,= struct device_node *np) =20 pg->id =3D id; pg->genpd.name =3D np->name; + pg->genpd.flags =3D GENPD_FLAG_NO_SYNC_STATE; pg->genpd.power_off =3D tegra_genpd_power_off; pg->genpd.power_on =3D tegra_genpd_power_on; pg->pmc =3D pmc; @@ -1406,6 +1405,7 @@ static int tegra_pmc_core_pd_add(struct tegra_pmc *pm= c, struct device_node *np) return -ENOMEM; =20 genpd->name =3D "core"; + genpd->flags =3D GENPD_FLAG_NO_SYNC_STATE; genpd->set_performance_state =3D tegra_pmc_core_pd_set_performance_state; =20 err =3D devm_pm_opp_set_regulators(pmc->dev, rname); @@ -1425,8 +1425,6 @@ static int tegra_pmc_core_pd_add(struct tegra_pmc *pm= c, struct device_node *np) goto remove_genpd; } =20 - pmc->core_domain_registered =3D true; - return 0; =20 remove_genpd: @@ -4263,8 +4261,25 @@ static const struct of_device_id tegra_pmc_match[] = =3D { =20 static void tegra_pmc_sync_state(struct device *dev) { + struct device_node *np, *child; int err; =20 + np =3D of_get_child_by_name(dev->of_node, "powergates"); + if (!np) + return; + + for_each_child_of_node(np, child) + of_genpd_sync_state(child); + + of_node_put(np); + + np =3D of_get_child_by_name(dev->of_node, "core-domain"); + if (!np) + return; + + of_genpd_sync_state(np); + of_node_put(np); + /* * Newer device-trees have power domains, but we need to prepare all * device drivers with runtime PM and OPP support first, otherwise @@ -4278,9 +4293,6 @@ static void tegra_pmc_sync_state(struct device *dev) * no dependencies that will block the state syncing. We shouldn't * mark the domain as synced in this case. */ - if (!pmc->core_domain_registered) - return; - pmc->core_domain_state_synced =3D true; =20 /* this is a no-op if core regulator isn't used */ --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) (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 C4BD1274B53 for ; Tue, 1 Jul 2025 11:47:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370481; cv=none; b=qQdJK5wX4kSxf2fmjdTWjDIR1xSPZddMz40pdAEgCo5rLfpH/teo0C4EEAvenlXxxJ9+nPYVGfImhL5eryKtjmSROZ58ko8hTMJxAoPUUcroiRJitlh1IeUrvVP6MzipzgCskYY3C8BsdgUGPxSPoQnB81fqXatjrhaWDrW7SG0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370481; c=relaxed/simple; bh=OJsFSRHDJMTbBK1r1V8gNAI3hYrQDM7YZ37SYXjVX6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LalCrnyna6zwQG95NekFGoaxsmndCsWD+NWuF/xeUkaoPSyU3hIq6e1bPZyqKpuZFhjHkvIbvUyYaxVc//6wGQHhPE7Zx5HoUseREAbesJkXaZi8NXu8d6FNpRRFlNe2gjMjI3PxEr9ZseA3dj+9QfhtI8KpZyvXEt+2bBEYWBM= 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=XmER6uV6; arc=none smtp.client-ip=209.85.167.43 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="XmER6uV6" Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-553c31542b1so3663504e87.2 for ; Tue, 01 Jul 2025 04:47:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370478; x=1751975278; 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=5ok/7cX9BgYxhpHX9QUiDoGepvZnSRp4y0xFThE2KYY=; b=XmER6uV68C4W2UtzWeMf6EU10dF38lcd5djL9QVwGpa99lTcCSn0vnTrtEWtL1NSZY IZ7dr8ajGVx5dyPvtE2riVJMdFxPoBvUhZv7mkt8j1x5t8CmPPG95Lnr0YYyuRqlYU+x +YjDZNUJFm0xYZD+YDXg78n3lXJhnVP9/Oiwz0lPL8xQbk5Jccg5vrDT46BrIzEaS0vR coLvTiPkxMTcj7ZctL0gpvrQo/jG/C0iTfGmytxyE8Fk9G+oa3N+vwFnU4fUchtRJK6S rY2WYXa9GsZWvlUes5eA//ijqy2joByBghDUDmnYKKnqIsxQ/jy87TVqzc6s4GfbrTNL ARvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370478; x=1751975278; 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=5ok/7cX9BgYxhpHX9QUiDoGepvZnSRp4y0xFThE2KYY=; b=nM75krjrH4qQNMjj9B72J4j/K9KpTuHLXFgAHfU7/7a6TrJBzcYL+GCIMKuwOs4/hG AGojm166/hUVaIXa+2Nd2ual8Xzhwp3LHUsAFRrkane4jLkiyPEo8IlEIajDOucJBMlA 5uW4/UaJCd9agV74I7Ry6EcFZEbX8kStQEWItj8HYETh1xFTQC7zR1lA2VeJgAyKK4I3 o0ugECkSCxekI7+KhNETygL9VO95z4Ca+2E1teYS4ZccExuSBlWdsdT4kmxj7xnaxaaw 1ufqJX5DMcjiMHcSEwW1vPiT0DJsIQZP3/m7EItQbUTonMkq1qqXrmNyP3eBrAySMOy/ 3dIw== X-Forwarded-Encrypted: i=1; AJvYcCUrlio1e8No8ec5SX/2QKf7mbSNyRmiFTTKR6EzCTSgn5VfMMk0TzVw46WUXfn5kD3K635oIhOHdL7wK7M=@vger.kernel.org X-Gm-Message-State: AOJu0YygyW+tCrifjx6KDm8tcAg966Jof/wUxb6clOgKiBd+cT37nR8R L82Fad4o8yVti4oll64MaHNSILBdtS6jX/6Z13xV+A3VbTdPzWnO6Z6rB4L2aGdYt5k= X-Gm-Gg: ASbGncsptH4scGSQ38PYqX+XBPCz674WgVzbrbJEQOLBo7Q6Os2OFWEy81odSCHpOtJ 9QIdX9lKUD+mnzQlzZOHgJf66uMAYya5MytwNawZpy4/i1PU6yZn2HBdLapee+iTAfHjfI6VY/w 5aSylkmdj3oIT4aUOlcsga8vJT5A1C2X9sZigtc8X2TRT5PYmwlS9YB/cD/9uYukQuDTcHxI3VF DkEt5QJyWu27qZ2sP5XXCszF1nrL32afyXoBEtjWSmnYoUXPH7UtBbHUl/df1rS7K1B6U6mm4j5 KxW3HkPSmp7G10TToBOyrOsQGoHvS81B51dcxQALUkTh/p4Cl6lSj4XPrE5+5uCKfgmShx9LL+3 VuNIO68VZFk4fMjhsYoOMyoCq56GE8EmeAEEjK5UcygmAYdg= X-Google-Smtp-Source: AGHT+IES0g6TR1bgUHY5vOOeAdnd+P5lreUzwvc4ftLy4qnq0OkpDCoD7RW1WzZ31pUM09XK2xu3aA== X-Received: by 2002:a05:6512:3ba2:b0:553:3407:eee0 with SMTP id 2adb3069b0e04-5550b860e0dmr6025448e87.4.1751370477847; Tue, 01 Jul 2025 04:47:57 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47:57 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 10/24] cpuidle: psci: Opt-out from genpd's common ->sync_state() support Date: Tue, 1 Jul 2025 13:47:12 +0200 Message-ID: <20250701114733.636510-11-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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. Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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/cpuidl= e-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; =20 - pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; + pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN | + GENPD_FLAG_NO_SYNC_STATE; =20 /* * Allow power off when OSI has been successfully enabled. @@ -128,11 +129,16 @@ static void psci_pd_remove(void) =20 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 =3D true; + + list_for_each_entry(pd_provider, &psci_pd_providers, link) + of_genpd_sync_state(pd_provider->node); } =20 static const struct of_device_id psci_of_match[] =3D { --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 12E1B274FD8 for ; Tue, 1 Jul 2025 11:48:00 +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=1751370482; cv=none; b=gErGbu3E1t3FP/frS7RceLiEwLgQZ7lSRH3cyp69vkZ88VtSRi8wRMPfIhk2TthaFxj+rIuUFElsUhmJtTyLvn2LRzk6x4QqqdzyYCAUv4JfrCfL48oRCE/IjOEPOMZOuM6UwWB4EwKYLZHP7Ve6wIRMMtsHn57GuHnp9DOW9D4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370482; c=relaxed/simple; bh=WI4ggVmMvJ2qYROTcAQQ6DFmZPKl6TNhurfC6UWuJzs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bl0E6jQos/SUwSkWrLof6rrcivri1VpDA7t6dU9vTfk429ZpVQPQGctfS+w0vUvq0Lh/QLOx1VfO2CU7CnFOZNXTPPJrl/x6ys3QuNYHG2bIN/+QC0Fn2jbc75ddaWMYUQe+FsXRYaSKBP9B0zr275pybwabTMNoOIGAN/C8WjA= 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=QwG8MWKv; 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="QwG8MWKv" Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-54d98aa5981so4727717e87.0 for ; Tue, 01 Jul 2025 04:48:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370479; x=1751975279; 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=yHynz9mWDead3UZZabeI741cKQ7wi8Dc9CTNMBrKiZk=; b=QwG8MWKvHCX7YYJ8drHyTcvAVkHunW2k2OaSVVbu4n35Q79yhOoUrOgaNv3bJz/iID UmMDIN6MM9rCHU3zPew4JUHQsA6EfYo1Vz1lK4hiReIv6KK9WXk4gLigM2hkT8ynt6FX dEv9YNcpgV2JwzdD0hpsa9LuXEE50sIjP+gnSdFqYuT6RvYQf4+8nlwU3Vui34ABkxCX gVYJ56eXXheQzTM2q49mBREj1GxW2WrpDj1k8z+crgnXk+lf4NIYklm6ZHsPl8AYgRZu /5d6j5PDRZGm7kCJau3mz9763macTVgvteFwEL6h2jhSquL9DPfv4x72adbOBo93dX7L DHXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370479; x=1751975279; 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=yHynz9mWDead3UZZabeI741cKQ7wi8Dc9CTNMBrKiZk=; b=IcWSwlXODRGLT4+8u1+7/xlBJ1rcE1traWtbFU6Xf/dCxKqVvKQAhRHEB2msae2fk9 JIjhVk+oUp9DGr6zM1c3oLGOFquOCA4fcP7oeLKzAWTsLG7p1xk7fpVCMKnF0TmQIzE+ 4LkbUXVfP/pQ383kiHmTTZqrL0AQTqGDDt/V5qzMk06/ij3Yb6KdIl/DtyK8q8aus8zr owoQsKMSfCWv0xaOM4A0bxXUKp4drnbp5fTKAzMcwhCtsyQzAq6BQkOV07sVEdPyH5SZ rsKmu4XCBck1vsVIc5Dx1ahy03TTPO0cQ/b1Qo8qv/+9jAzN3GK0bpFtbu0FTzTZNyeC tVuA== X-Forwarded-Encrypted: i=1; AJvYcCU99KkPbm0zbL+PcgvjE6Tr+8ouDYFacZXzDsE6s86WzExzuV6zCPad9vw+HJcvWzd6BZgAk1j/sOwTHGE=@vger.kernel.org X-Gm-Message-State: AOJu0YzMKz+jaE/M8ZxQvJ0acGSrdU8ger4ImyOvCGRCLY1mAtDC4XZA Y8gmRS6kOXNZUhdse61cV9GZnlA92+I+nGGwaO79detBFdX82bFs5xwBV6mtDGz6gbU= X-Gm-Gg: ASbGncsCzSvxK7igemC3/F1a/u0M4vUkgIstJf/AypvArJQ5e5oB6T8pOtHRh/TjB2z dDtAIjSQ2pMToQIgnP7LmpnMI7yuZaJ6zQiPKmTW016KFWYshTMsoWYE9eaQ/vq72GOfiFoznV/ DI4DUC7RWCMSewj717pvjExaX85RwHK6wPBxP4ou6ULsugTv+CB3WZnhzJ769UkbXzoMeKTTgO5 Qi2DhHetIMrt1fRk07IF51Nya0ksi7zSTpcppYH7lHcEjNpdxpsZ3xMJO0GO23uJ1RBd4X6aGSW P8EdQtMgwr4/e4r4jyQzA3pRtkO5EGlP/Z0Cv6/28iTmPz09X01yQf9tfTu8iLktuzaJkR1q06T KbLS0YnsVk6//gOXQ8k/8ZQ/CqwbAWVMJbOr9 X-Google-Smtp-Source: AGHT+IFqyMXKCb8elAwuQdxdqHT2scTfHnmyox7XhrjqrojZnvfr/F02wddlYBxLw5k9BSZ0P+ueUg== X-Received: by 2002:a05:6512:114a:b0:553:a867:8dd6 with SMTP id 2adb3069b0e04-5550b7ecd57mr5857067e87.9.1751370479219; Tue, 01 Jul 2025 04:47:59 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:47: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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Anup Patel , linux-riscv@lists.infradead.org Subject: [PATCH v3 11/24] cpuidle: riscv-sbi: Opt-out from genpd's common ->sync_state() support Date: Tue, 1 Jul 2025 13:47:13 +0200 Message-ID: <20250701114733.636510-12-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The riscv-sbi-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. Cc: Anup Patel Cc: linux-riscv@lists.infradead.org Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson Reviewed-by: Anup Patel Reviewed-by: Rahul Pathak --- drivers/cpuidle/cpuidle-riscv-sbi.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-= riscv-sbi.c index 0fe1ece9fbdc..83d58d00872f 100644 --- a/drivers/cpuidle/cpuidle-riscv-sbi.c +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c @@ -347,11 +347,16 @@ static int sbi_cpuidle_init_cpu(struct device *dev, i= nt cpu) =20 static void sbi_cpuidle_domain_sync_state(struct device *dev) { + struct sbi_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. */ sbi_cpuidle_pd_allow_domain_state =3D true; + + list_for_each_entry(pd_provider, &sbi_pd_providers, link) + of_genpd_sync_state(pd_provider->node); } =20 #ifdef CONFIG_DT_IDLE_GENPD @@ -396,7 +401,8 @@ static int sbi_pd_init(struct device_node *np) if (!pd_provider) goto free_pd; =20 - pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; + pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN | + GENPD_FLAG_NO_SYNC_STATE; =20 /* Allow power off when OSI is available. */ if (sbi_cpuidle_use_osi) --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 7B53E2750F2 for ; Tue, 1 Jul 2025 11:48:02 +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=1751370484; cv=none; b=Boh3WbQWgXLMi6gOwlR6vwJCsSAOQ2U1y9z1roWxxo2G5Y706BwybGlWMt/1gQWnHfhVpXSYKxPEN0Xq8Y9nzxdg18W044Qn5gsB/ZilfNHGW5E0eL0Ee1xMlu/oHfmN3uf/G6kUDx+2gQ4CQADBodG7u3bAK9luoNh4uBW8eEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370484; c=relaxed/simple; bh=zqunWuTIk0F22Bp+dZdTJTGInTtAtuZHfsLC6vmHBZI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FuBsMZspntnarPzB/4hRhzGkcT2gDsotIljtzLLCsV7t8xjm1i/7ffnuH/gbcM+orn1miAc1ib3NC6QeHQAg/YwubFdXyUgObXxjPxTThEQ551ShalNlO9Xoiw+t2Ehlvea1D/IcjBkPSn3Cq7vtv6bUWFlGg3JiNMMwN/CKA6A= 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=MUXkjb21; 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="MUXkjb21" Received: by mail-lf1-f49.google.com with SMTP id 2adb3069b0e04-553dceb342fso5049641e87.0 for ; Tue, 01 Jul 2025 04:48:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370481; x=1751975281; 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=EjmnP04SfQHk+b63Z9FzMRfEl1AAdadnOvsZgedn7VI=; b=MUXkjb21YoVm1oOrrz7vAXGREDbDg56Y+tqrIxoSjLj/7hFWcQxTytCEbDkcy1L7Iv MyrONgv7J+/dUuuIfLgnMGyN6PfAt8Xt8DND8i3FJZ1xjPPkMkRhmibyOxJ5L1qZr6Py TTx5pZ0DbrozPFNNEIoUIHhlDMQ//zCgSKLtZ54nPskETvvRadplJhAeObiDoR16z1eG 6qFGfkU0O2zyAOwBFGazt62ZciHmSlsYYycGxgaFH5E1NSaxvCPLgkZFh4/h4vsMSeWY 97z7Ybkms3Ulan594dXzX3+SFPWmL3OrX5/B66x+WFWsbGjQnGNj9B8ZXAXXKXqgUTVB gZGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370481; x=1751975281; 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=EjmnP04SfQHk+b63Z9FzMRfEl1AAdadnOvsZgedn7VI=; b=kVbdDkEmUkSo/6USt4MhdmaCuOHGXK7ZcRYJPxJOguKhiUOxDfPSTc3xk2gzN5+9Db LLQQVnr2caXrmgXnmiREZ7p568Q2e9GGroPiZMFliZKPm6L7UqplnylC1+DCvOgjkize 12oofXi8aj0RBams7Dgu8othG9aZRyR8upTFyrr1rX6O+S/LWCzzPCVldkhO5TSR4oxu q9qKmLmtbygh/YN3CWfDhxqSh+w0l9PqE/mZfad42vO3e8evltG9NZW1fz2mr8ejKn+t TK3VPOaLN3e37ZfrckgZu+iNR1V1JDZ3zpWrzqO6mxt5QRT0FoX34JwR6n0LIgcee66E 4B/g== X-Forwarded-Encrypted: i=1; AJvYcCVmKrMBDARde8toPUPOqDPdMLJP+R7WDWqnGnM/xhrcNnWhywER5YH4eCX1ORbM9pBgqIAOGbN7s8cVzAQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/OK7Iy+rhGMgFMJxNGd8Bx3zKfdfdQgeEGpgsVOZhJfx5mnaw oMb4JWtNwWKSFJtBOHkixk+cJQlHDoJaFBN/roO+573vP4VJOx0pRly2Wv7LDDuLjho= X-Gm-Gg: ASbGnctEF/V0XMIPgnFsJGrznNXOYqttdI7WdQZAZGhTxzmhkdkAhYXa9nwOpqP6rm+ oKtsoC+D5G3Jdkr8w1VdGiDmECzjZx15RU+9zpOuC4ja43ToRYLd8L6sxsDl39Ez4R0P1bo3F3S vLJo0xY6JAOwDXKhMwHmVMqF6jXkvkw8fw7gYzs9yNrJbONZUr6HjMz2FXGNp4tLAzKvyLg74K8 vTmpVl2ndMaDeoVeug5KaXb35GZxc0NIS9gDxT+zfnFrn0XQ7tOdEDfg2WJSlQyq5g7pbFJUIsf gM/5xvLUizjCPyU1GsKWDrmLr1awREsFHKsZbE3VcnNb1NnalZiyQjCBUpnON82jwyIG14RFRD3 rqTpVWoNh6MnGYaf3a5F1uJ6iDzQr6gZOBMh+E77OU5h3TaI= X-Google-Smtp-Source: AGHT+IGgBYI5CrDlNYn12cn6Hu+izxnojI0IJ5BqsjI5oNKcH7trnNHO9mFo0wcOyH2jWbqlzkJ5TQ== X-Received: by 2002:a05:6512:68e:b0:553:addb:ef5c with SMTP id 2adb3069b0e04-5550b9e4441mr5040371e87.54.1751370480552; Tue, 01 Jul 2025 04:48:00 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.47.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:00 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 12/24] pmdomain: qcom: rpmpd: Use of_genpd_sync_state() Date: Tue, 1 Jul 2025 13:47:14 +0200 Message-ID: <20250701114733.636510-13-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- Changes in v3: - Fixup the prefix in the commit-message-header. --- drivers/pmdomain/qcom/rpmpd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c index 0be6b3026e3a..833c46944600 100644 --- a/drivers/pmdomain/qcom/rpmpd.c +++ b/drivers/pmdomain/qcom/rpmpd.c @@ -1144,6 +1144,8 @@ static void rpmpd_sync_state(struct device *dev) unsigned int i; int ret; =20 + of_genpd_sync_state(dev->of_node); + mutex_lock(&rpmpd_lock); for (i =3D 0; i < desc->num_pds; i++) { pd =3D rpmpds[i]; --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (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 ABB48275841 for ; Tue, 1 Jul 2025 11:48:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370485; cv=none; b=ofanEko7rwZykT4E9tlQvwEMsRdKjKaFvB1KzhZfZT1JVylG+n8wCP/dBTuH1zFxf7yLQdZOtT5k/cuKd5iQMM/Q/iB6hFXeTMIzo/t85kR/QF8g1J0qp0p/iuRuYctVljWhGbHPUkta+o8IKRvTubiei+5bFrZRzuXwEtfbR9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370485; c=relaxed/simple; bh=7XFOVVB/6P0E/TmGAipE5EVbPBj1K41pMO/cwOHZe6E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H3I8qyJ244I7u8uMwv8//avqZJmFSFzpIgdsvuMaCz3Ev+FwRpGHmwTYIkrrQB5lkZMxMw0iyxtnuSLS/q8oRBMwbP5NSvz1TfzmcYIf27DYqKqZxgZzzCFuTYmnGTsqJAqpKIIPyrsxyoiLl1r9FepQT6SkoZmOipg7qUB2y8U= 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=SV7sjp00; arc=none smtp.client-ip=209.85.167.47 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="SV7sjp00" Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-553b60de463so3701184e87.3 for ; Tue, 01 Jul 2025 04:48:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370482; x=1751975282; 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=nhr1wJzX5x14/nTupeiMBqLBJv2X3ymsgvaInizlCPo=; b=SV7sjp00mKEpaXCBezxr5x0W5/gBh62DWT0wLqIjgjH4lBOBFHbvrj14lxDweDAdjM 9ZAgHm2TCh5M7oFuLaEnLLQkj/qH1lBHtAnEXLC2r6IimLBFY23uIY/fM1oipUzVoSO3 +/zYJp2zP8d1LRlBsSfeGIyG1YlVtycrOFXAeZZGHZx2Z/U7U++l608ZEBgaLi9Bw5n+ fj7W99YkbqKv7Zt6nStK6JIDJHGOaUER1KhhcvRUNWxZBRLB7Fo93N4zrna8yHUuKcDt q8LL7hxoLLncQonCcwOmK6Vj4+uerZfIk2NdfkekWcVJsdf6N9Qd6M43yqp1D06ykz+n 6Sdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370482; x=1751975282; 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=nhr1wJzX5x14/nTupeiMBqLBJv2X3ymsgvaInizlCPo=; b=NTdk9dMVrZcUOqaN6L0UDuw3wekTgn1VvhJLZ7YibRyABrndx+28iBFufAgAdEheKq 4bTb/xC9QVG8m6Eluuil47XqmiyscFKV9r1rDghqFuJ5CWqkrXLVOoaPN7X/vPWW5ymO H3Sxf3Jalz+0q527W2qpfkmYamzp//BffscVYvK3YKL7hGkRaWP/ZaEA8W4rhj5lqoxT FS1TBIN2DDpe3R+FO0iEWCgl1KZZ1VGU6Pt2T7fQRycG+IKhTrdNjSEa+Om/32M2mLFv DkCKvdmHJC4xS5022VYAaic6gxf4cnHE4caUefCw9VtP0syBHDgXKzEsv0p9pzrgMU4J aUmQ== X-Forwarded-Encrypted: i=1; AJvYcCW1Y+WiYPAnbY++Vx0rOR+3NS7EzynsC/dPaY/pB8tIG2NQ5lnG1IV1OPQqLDs2vo+zDpT1d0K3QwXyUGQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwXiM2eXsIZtAOoEMD5/BMSSxrrCCihtnxaz0jcGOq5JlZ7o/rQ 9f8itFyyBQo1v4WsuAD66QSeGaQ+elR0ZE2tyDau3bErW7vogiRbvDQ33qdBCHFjLCI= X-Gm-Gg: ASbGnctRQTN1Ocv7yS0pzFswgeNhWodXWfxDy2TUFigedVdQO3vJRI+ORsE49hiNy9I nvdD/FgLsN3TC78sggG0YVJkhIPebX1gxMFhxjPC2Dxbu0ruriGEiGAAcBd8CCUjz4zuSzOD2Jk bkgAg2ZhB8QIMJ9kn3DaBpP+S6DQzQ0Sa6ALDs6sUw8CtXQaBllWPmJm2huv7j2s088mfntXu13 p2WtXdfseLNWB+ZlTobkT0m5GF/Wa1e6X1R4J9fR3PHG+HptlKpTTpg3GV/+PtcnJvHZaYROWJ0 5z+L3cBBoJcj6Zzc2U/T5HCXv1e/dB9sYtiUVph0W04leKhZ/YB3vUTXECjwKFJvYejB3l4BTLd JlUVdZIQ3OOFVT70Vb+mBww5it+s8xAu4DOjx X-Google-Smtp-Source: AGHT+IF/OcNrgYw3hgtvoO/MekAs2AHo39DQa2rN3+FnsXniz31yfEH69hiNRp80adgJjRiNtdFnTw== X-Received: by 2002:a05:6512:224b:b0:553:2868:6355 with SMTP id 2adb3069b0e04-5550b8669b0mr5326369e87.18.1751370481798; Tue, 01 Jul 2025 04:48:01 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48: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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 13/24] pmdomain: qcom: rpmhpd: Use of_genpd_sync_state() Date: Tue, 1 Jul 2025 13:47:15 +0200 Message-ID: <20250701114733.636510-14-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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; =20 + of_genpd_sync_state(dev->of_node); + mutex_lock(&rpmhpd_lock); for (i =3D 0; i < desc->num_pds; i++) { pd =3D rpmhpds[i]; --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 415FA27587C for ; Tue, 1 Jul 2025 11:48:05 +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=1751370487; cv=none; b=Nq8gJA6tU09kVIHjmhQnVFcBHonFr1cFys11NeEiCBNzYlRdbDkCjC9OtXD+FZlLx5n83JiG/VY3YMXP4gO+ypJrk42u1Yu9gFAn3V9+yPum9F2oSKmtyBxpAKBOCPOyjLaYR56Wl/Ku0W4tBFA326t/ieukl9nabb+gQQuQUXY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370487; c=relaxed/simple; bh=dCfKc8M+VAFcuXjqcI2B+OXim4o2mp+Y/13x31tJu98=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VYbjLQGoPnjq10N+wHy0jEaKrDnoOACZgwJF0xPuHHM9yTMjfU0flMmNETrC7JMCcdVYANZWOcFacjG/U/cdmepX00Mu9ReW5ejJ8lEf89hLy4UXNF6kkVrwJHEraqzLOGNIbIFdblVkybECWoUsLJJNaqNubdLFtIo2aEbTxpU= 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=HG+Svjpq; 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="HG+Svjpq" Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-553b51f5218so5644113e87.0 for ; Tue, 01 Jul 2025 04:48:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370483; x=1751975283; 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=Ou37oVNU8EcrZ39XggNFqJJBkEWIeWX5cH4SBBxr5bU=; b=HG+Svjpqal+PjGwJZ64cvQQhONk84b3kcd9AyORVzmQwILpH75utmbtV+nKmEiyD2i 8ePNEDm+Q41WHywn/yVT2F3spvtYuwhapZCgPQ2r375OOh6qQjalNEAfzdr4qs25vm61 O3UkWhcSOiLpXsQ+Oz+p2JhHk3IitkaxUHgc+plCT1spOd0ol/dI5nOoOFOjlmQjtvoS 8zocYKU7jdOPRxywu89KFSbJDz2m2zBuW/rddpzZepuEg8rCGdPQqR79VVTgTm/OaKk6 mslFjya+R9VVxhAP7+uGEmqXVFUtE7OB5O2jh5cgVeQgPa3rfBjXSOdN9YVwMZ3wYQmi FOsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370483; x=1751975283; 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=Ou37oVNU8EcrZ39XggNFqJJBkEWIeWX5cH4SBBxr5bU=; b=JxfiaZAu2PlTGYzuuWxwAp2OVKh+r/LO1t4l+1vX7C0TPOcWSCUYlBTzEMiJN+gqWl zRSNdLRLVHWzhLOVRDLRapZD3MCkc1rwmSvtIqG0QhqaWvykaG//Vn9mN48PeZ3X1Cl+ 1O9QWau0LDSYaXrY+3Wa9hWfH8d1bbVY+V8plDuPz8o4aix7LPvBJgtda9M8U4jNAVo2 MUkhKh1XVg0vh5qXeKt31M55xbRG80/o/jGfzJkU7U4yn3IW45d8V0NXoa21Vj1SYQdE DE7PX1GjdumKYIOhYmnLZF92gSAC6g8Cfeg+3RUL39emzyO4lUJ+luSvmK1jjQCiqRjE hV9A== X-Forwarded-Encrypted: i=1; AJvYcCXzAvuySWsBMqAAQyGQKlu4oTV6OtR8bgeBDuHX7sPoFHyNkxrjJNGSGJvyVBHAIarJttqFiiq4AQa/6M4=@vger.kernel.org X-Gm-Message-State: AOJu0YwqU7x3VWRqwylKhDIXUAf+JkX+wOy3qXHWCtxTJt7xMBfE5Hkd uz4Yyb0YKLSZc2JLZDkOUdtuDf6wXfYFRkvEfxYvEyFciVsP+MMbyvmVmYYgzW03aqk= X-Gm-Gg: ASbGncsQr+v2FtHNtQq+yyrux+sekPz8lfyfb0aOdPoIJ3aqNBf3YmJTIZGhw9NqaxY 2f0jcDZRFVy1gV93oUl3sGwGJWoS7R1VzbkoOZvimNTLhyccOgO4qhgKbEOz9cOxYa+ad+KZsl/ rDamRpvY82DbwQQwr/gEYLix2RrTDMPrQS/1mKLInxGiuPzBQfxsem/tjePpqDunEwQGZ2BNpcu RcB0ubbTkeo5KmFRxp/UZEe2vLQn5FLMuXf3m92scEDrcANhgIuM8ek5TsPwnl5rOE3NYgJkfsu i6Zobdk8JF6mF9hk0xA8nqVMkzAV5ltxH3FgzXMRpoFL3zUJidXQZupl8H4/B04gGwUC/r54Jgn R0X897OA5FdsRW56Rf5OxnhrGTWaMvf0MlmcX X-Google-Smtp-Source: AGHT+IH0vCvElE8qdxxXL5THgRVp/JjfgP3AQLH5VtPUuqSALJU6t/Q2a/vaudzsxqj21OUKqYtVNg== X-Received: by 2002:a05:6512:31d0:b0:553:abcd:cf51 with SMTP id 2adb3069b0e04-5550ba16ad6mr4341553e87.40.1751370483312; Tue, 01 Jul 2025 04:48:03 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:02 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Michael Tretter Subject: [PATCH v3 14/24] firmware/pmdomain: xilinx: Move ->sync_state() support to firmware driver Date: Tue, 1 Jul 2025 13:47:16 +0200 Message-ID: <20250701114733.636510-15-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than having the genpd provider to add device_links for each device that gets attached, to implement the ->sync_state() support, let's rely on fw_devlink to do this for us. In this way, we can simplify the code by moving the ->sync_state() callback into the firmware driver, so let's do that. Cc: Michael Tretter Cc: Michal Simek Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- drivers/firmware/xilinx/zynqmp.c | 10 ++++++++++ drivers/pmdomain/xilinx/zynqmp-pm-domains.c | 16 ---------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zyn= qmp.c index 7356e860e65c..a91a0191c689 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -2100,6 +2100,15 @@ static void zynqmp_firmware_remove(struct platform_d= evice *pdev) platform_device_unregister(em_dev); } =20 +static void zynqmp_firmware_sync_state(struct device *dev) +{ + if (!of_device_is_compatible(dev->of_node, "xlnx,zynqmp-firmware")) + return; + + if (zynqmp_pm_init_finalize()) + dev_warn(dev, "failed to release power management to firmware\n"); +} + static const struct of_device_id zynqmp_firmware_of_match[] =3D { {.compatible =3D "xlnx,zynqmp-firmware"}, {.compatible =3D "xlnx,versal-firmware"}, @@ -2112,6 +2121,7 @@ static struct platform_driver zynqmp_firmware_driver = =3D { .name =3D "zynqmp_firmware", .of_match_table =3D zynqmp_firmware_of_match, .dev_groups =3D zynqmp_firmware_groups, + .sync_state =3D zynqmp_firmware_sync_state, }, .probe =3D zynqmp_firmware_probe, .remove =3D zynqmp_firmware_remove, diff --git a/drivers/pmdomain/xilinx/zynqmp-pm-domains.c b/drivers/pmdomain= /xilinx/zynqmp-pm-domains.c index d579220a4500..b5aedd6e33ad 100644 --- a/drivers/pmdomain/xilinx/zynqmp-pm-domains.c +++ b/drivers/pmdomain/xilinx/zynqmp-pm-domains.c @@ -153,14 +153,8 @@ static int zynqmp_gpd_attach_dev(struct generic_pm_dom= ain *domain, struct device *dev) { struct zynqmp_pm_domain *pd =3D to_zynqmp_pm_domain(domain); - struct device_link *link; int ret; =20 - link =3D device_link_add(dev, &domain->dev, DL_FLAG_SYNC_STATE_ONLY); - if (!link) - dev_dbg(&domain->dev, "failed to create device link for %s\n", - dev_name(dev)); - /* If this is not the first device to attach there is nothing to do */ if (domain->device_count) return 0; @@ -298,19 +292,9 @@ static void zynqmp_gpd_remove(struct platform_device *= pdev) of_genpd_del_provider(pdev->dev.parent->of_node); } =20 -static void zynqmp_gpd_sync_state(struct device *dev) -{ - int ret; - - ret =3D zynqmp_pm_init_finalize(); - if (ret) - dev_warn(dev, "failed to release power management to firmware\n"); -} - static struct platform_driver zynqmp_power_domain_driver =3D { .driver =3D { .name =3D "zynqmp_power_controller", - .sync_state =3D zynqmp_gpd_sync_state, }, .probe =3D zynqmp_gpd_probe, .remove =3D zynqmp_gpd_remove, --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 CE545275B0F for ; Tue, 1 Jul 2025 11:48:06 +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=1751370488; cv=none; b=PlwCL7nkVBJL8Oef2Hk8h37ubXKyAmXigycnDnI/6TXDqT0jWHehP9qlFNPctyHqu8oygAzgNIRX/g3Vc2dnHi+RuzdH3zko4NZMdzl6R84aH1pCDZnozYC/hf2og+uFCaoYJjVOebABnipI+rlc+NMeeXUPagQQml/ll673RDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370488; c=relaxed/simple; bh=7WjL5PJDN7tc6aoAfPZvK2QXFFS7GTcKuiGQOzvRQEI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AzVuJ1C8IwLsWf9SEeAUi/woEJC1xfut8is4M7oPeczMnO7b+19jUJX+YRR7w2zDxnAegzwIqtscEJf6rhCsIv7WN4FK9Dqoow5miagGeIPOySFQGJM0tvVUPbzLW4yXleibSTPRYA3pUzVBtQ00LD974t33SZmWOMljeo91k/c= 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=nZL2ddbO; 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="nZL2ddbO" Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-5561c20e2d5so1770197e87.0 for ; Tue, 01 Jul 2025 04:48:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370485; x=1751975285; 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=27vCRapRpRoLV9KzfQODt7M6d2jewQo10FyC4pKnCE0=; b=nZL2ddbOBSMlariJaHCazIWBX5FD4mkvhvwxQZOYxbz/qKhBjKqhxCT5ExiWL9cJfl Gj4yRvD+MXqwmkD4ONrLv590qoGs8S63gSNaj5+/Luf4v+yBrlz5NFKRnPwSLGr8wWuG 9uYBS36PboLr6PFQwLTPfjykWMFNrCWQaC2LHzivMpNgfsJ57l/bRUYtZTIVXZt0icIS kFwxKO7dCD4kEEYwiEfCDuRzSe87f27vmfZG1rj8CsIA7F9AKIYRAkkfoJjBdE44gHkT 4vxSlXCBI6MAYE1XS28VTr0nf75rfRZuFMIlp3bIN3AMIWDQfaHK70igCdmMKgipno86 yr8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370485; x=1751975285; 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=27vCRapRpRoLV9KzfQODt7M6d2jewQo10FyC4pKnCE0=; b=dXgc2fqoLRbzL+iSSj0AcSMN946DpkfjCeTr1aglxYllfNmC+C3V3tH/W8mHBqwim+ aDGJbf6USgjZS33un8hqXFEzaTCQKWiYkcfWEBH8azP4CNOyHn/E+EGCOpgFeF5NIj5o brkzSt9bJ0YA0SRSursuIvv6WnTIWAuOXQ/RkmlgSgrIb6tSU14DRdzStdZT1ngWU+W6 r4VFE43H4U3ylGciHdLV9kd31JJRvuO4dNn95ajSpXP+fHsJ746iAS/2TEi+TCCVbCpf SnBx9mJT3Nayv4p8E0ZTh8jpBaIL2OPEp6c1mad/2wfFZzC7taFOcjs4IaoK+hoxBcm6 S/6Q== X-Forwarded-Encrypted: i=1; AJvYcCUn9/XtPowxqToxi5eL8sFK9EjlXrQzFDYIA9P9yOlA2DUe/sjkx3/APxD6isEjuPF3BoTRlJGpOer0EYk=@vger.kernel.org X-Gm-Message-State: AOJu0Ywo/zh69EuvjbqUBkc+jwoM4VALUPkgbyyClF55aIq7LmdMeV3K t0HBGJ3w9A3IubZTD9OTX8VmjBh+23nnrX9VhmYYP2eW08syJL0LJaO3Vw4In6bqr7o= X-Gm-Gg: ASbGncvN3VqFVTCJuSNQ2V5OF/EM6X8Zib2ajM+SY+eMI1C4Q52nj4VOvkqyt/ZTld6 AzaXjRqAFjjNASoH5RJxaIzpDXtTBY9bM3swvNU0FcHFkwngVOYVhtAZ4WyqSmzYQXPZEyGichB dR1PmB+YWGk3vm8NkiDtHw97xGQbmjZv8cbhixUJBWziLdqTCqRdBvALmdkHbvdNcNrihD0lz4M EwlLAfNzsJJE5X25Rz2sb3VWuycE6TftQJ8Hu0s2xDyNR1shXp8e5+IiVR69zlvC6OIoEYtqx1Z EbpD/8MFs6NvYXphu8do+dNVHy/qH1YOS6vL5CzNivPvcogLgzwmEWeqiS3DWUMAgMIIB6EhAfE yJIgRi3UXi8ImuIv5C7MTmpWy09JCS1muwNsHu6YBv1S8Vok= X-Google-Smtp-Source: AGHT+IHua/UEt3b45/LuxxWp2SUanS88KDLpgikwHH5MvPxATRT7Z0U/3UXMo1sRCEzCo4OszKGTSA== X-Received: by 2002:a05:6512:31d0:b0:553:277b:17c8 with SMTP id 2adb3069b0e04-5550b89f65emr5591872e87.35.1751370484839; Tue, 01 Jul 2025 04:48: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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:04 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 15/24] firmware: xilinx: Don't share zynqmp_pm_init_finalize() Date: Tue, 1 Jul 2025 13:47:17 +0200 Message-ID: <20250701114733.636510-16-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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/zyn= qmp.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 control= ler * 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); =20 /** * 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; } =20 -static inline int zynqmp_pm_init_finalize(void) -{ - return -ENODEV; -} - static inline int zynqmp_pm_set_suspend_mode(u32 mode) { return -ENODEV; --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 1A58A276041 for ; Tue, 1 Jul 2025 11:48:07 +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=1751370489; cv=none; b=LPfF3O7D7NjL7tAYONy4h4u4JOIWu57R0HfqV1jsY9IZWorCardEkdqk7CJFm0ncHffQUcM0T9bc1Ngk/DKajzDj2RWSKmnxc1oz3h5gH9C2Q8sGKpvlAg8dySzwDhwOtnNqD1/oWz+Mjv3Fu6hgXhQrkVSSWvI78CwVoQtuDYc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370489; c=relaxed/simple; bh=QuGttwI0OZFvkoIf9v7woAbjYjj7oBHxyYqMn/p2JR4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MdrUcAGJLxMO41gYsZjjTkFGR8EwjNGb8Tfgo5f8AdAQ434xq3Js8XoEYSWUfCygBJJ/Kz6bcttsUAQ9svaqchUK4C1GJIkbTUCyUXPxgHWrwhRliWRGnc1+7F5XTGA1NlqNYpCqRO0tcooob+HB6Rp5eoXgdNM6t5DoOPnVCN0= 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=jDQIm7mo; 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="jDQIm7mo" Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-553b82f3767so3635511e87.3 for ; Tue, 01 Jul 2025 04:48:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370486; x=1751975286; 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=Fe5xgad5AXlWIH4ix+NrVYG0DCMVBlY/Hz/zA/w4CmA=; b=jDQIm7mo30ERWh6u/ffmL5ZepdmzGin+NLRWWTXVTRc6GoelJ8s9spfAChFOh7qFGl pn2M6JejfB1ulFI7W4nzaEIh9NoqP4bpszUDDLgSw5Q6yi4Ay3N3c56lvjibELoRnxuo vYrZK9x6rhM0SBbbYjpspBJSXZPzrbRxBjbvrpVClU2cDFSrQxxnmhR12RFFia5RpFfa o9DCYUKe3/9q9jBv75owEAtSoV8uiP/V8UBnggUpTIa2iklHk7/5kd1mPLTYT0ph1CSv in9eoTzHeXzD7HfjUcHw3OY9LZ9nFy9LvJTqLZ/o4BdDpWYcJY1BXzG/LIcKSktr95UP oNOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370486; x=1751975286; 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=Fe5xgad5AXlWIH4ix+NrVYG0DCMVBlY/Hz/zA/w4CmA=; b=I4asjSy5DaxFH5jNfSp0n0okl9VQSd4Bu20fZIBud6Ks1OSdutKWp5NfEW+0oq6p13 BvZqDl9KQVpJvopV/xQbVuUc9/6iQqqOxyCFt19VAY2KzhJR4b1YhZTTBRs+Ha9gm+Fo 4rudpjw0MLt+jzdGIBevs+9S/piESorVLi918OjyqDvROCyTg9rQYRmqu7Aw+Xtdx9lP RyR8q7fUsG/wFZOcQ+qS3l7dDanEW+JYz7rp5f5JW3WQMyfh88Bjx1sbNnA6Shvn1HRo 7Ml9PDgW24CNhvAEdw6RSXTmlbPGCxyugCYI8PfbeCghuNTUxXl/yPb3uwCoDhiT6/9a FQmw== X-Forwarded-Encrypted: i=1; AJvYcCXGavCKt3HIobbKj1/kWwM5FmvI5FJMFhMZrW/J0y3Tg8YLX420RJHU/B0Eo3qe8x89PWUzTsENXQUlcvE=@vger.kernel.org X-Gm-Message-State: AOJu0YygkV/byH8f2BnRwllUqYtVypxqzE9PXXgRTpJXih1pRaRMDzOT zm7AHig4gifct2VSZj/twJ6jIchY4gKgEkxcESTeMfU27xFpAbE8jjEYzen+p966f2M= X-Gm-Gg: ASbGncuKPcyhZq7woL2CNfjK0IFMRjbSzVQPQ49lHDDVyNwB2Bu4oOopkhWSq268KMN W3wZ8IT1MxaeL1TIu52G4JB5pT+0dUDY9DDS+74T6K485d++j/5DbsG6NmRFlqbjUAAsty6oZTH ht7CNjkn5pqW8UDX2By971ksrHHc3Z5QyNGmVNT2Vsue7uTkCfkOFLF+EISJXIg3SG2EOLIPOsV VhSVRN8bkokPvj5YXHvnMwVCXRW3bnGpzRCj4h/yvTbHggiz6PMi5EwIZnZJG5w6fRf4GIXp/lq a/EdQ7XRrDqQb5WVVFd+kxvNGqFiuZm2i+9veWOcP/Os1YFVy5leQ6Wi3Y+3hSyVnoxpeO/ZbNo j06S+3VSkTT7acV8/HKdzfG8uMjjTvNCv+hn2 X-Google-Smtp-Source: AGHT+IGPH5aM5Z4YbOMg/s4pZiEhmK3ttk/WWSZNeNphwAL/3oCJAKxe81UqHvcdpBdwTW8Yth1UsA== X-Received: by 2002:a05:6512:3ba2:b0:553:3407:eee0 with SMTP id 2adb3069b0e04-5550b860e0dmr6025596e87.4.1751370486189; Tue, 01 Jul 2025 04:48:06 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:05 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 16/24] firmware: xilinx: Use of_genpd_sync_state() Date: Tue, 1 Jul 2025 13:47:18 +0200 Message-ID: <20250701114733.636510-17-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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: Michal Simek Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- drivers/firmware/xilinx/zynqmp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zyn= qmp.c index 87ddbb7d11c2..02da3e48bc8f 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -2101,9 +2102,13 @@ static void zynqmp_firmware_remove(struct platform_d= evice *pdev) =20 static void zynqmp_firmware_sync_state(struct device *dev) { - if (!of_device_is_compatible(dev->of_node, "xlnx,zynqmp-firmware")) + struct device_node *np =3D dev->of_node; + + if (!of_device_is_compatible(np, "xlnx,zynqmp-firmware")) return; =20 + of_genpd_sync_state(np); + if (zynqmp_pm_init_finalize()) dev_warn(dev, "failed to release power management to firmware\n"); } --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 6704D27702F for ; Tue, 1 Jul 2025 11:48:09 +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=1751370491; cv=none; b=oH4xHnZh+vrIzA+4+CUlfNIWbZ8Tjq38YxbWN3/1WduQVpkubcGmIdmrlLQtPkKFECcpk5zDSjhwMjILuZpnB6u/iREBn/25I8D36gCU8Hkdxz1IGv6UeR9zTa26sGhf03xxjXaIm1RJMus7jWEmF/CFvDwt0c4SkYGllMmHySE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370491; c=relaxed/simple; bh=Z7/Ii4peBn6utUvIuofOs8Xdnqo3YZdslRw7QFE6ddo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sW6ujrkwQxfl4iLJ1PXgwlhOB6frxVL2X+oaXgWyhY0+7XFZcWs6H5eSegwg25kGQIG5cyue5v2TSzPcdz4UwfXKeSTx2UGLu3dww0E03N9pD8Lh0qIP0uXYCor0EwRdp9ovHDLpi20LvWdEF0LNNFMnzcsJkz5USZczxn3x+oY= 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=B3m7vxFe; 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="B3m7vxFe" Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-553c31542b1so3663737e87.2 for ; Tue, 01 Jul 2025 04:48:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370487; x=1751975287; 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=2osz+FDlcrsw62TOPCgoVgngpNoshxMUDCHEG4J5fcg=; b=B3m7vxFep2uUvPE2505Hsns3v619IpOzFmKUByMMb4fskPBz2+dN+jjoNPt2CktUMN O5WetQxk/spd1xfHHhuLtt01SUrVAECdFNfAyLoEcxbynaJ7u3N3F0MfEe1A4Z2XB8rA dePCYQ8MEUZhO0d/v1nGccDhib7Y52+3c1AIBpcjRe4TOhedL2ZkFEVGbZ2io7/kLxKH lhsU9EVJYWY6lzfslPuwjQ8dqTLeq+dMNW4hLNqP21lKl7z9EA9W1yVNBeTyn7UMT8o0 xqAueOEjqmSWNY40NaxpSpuoVOlIEeOKbND2cUdetlx8Ty6ZuNrdeG4776S6cAYV6/ri 0b1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370487; x=1751975287; 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=2osz+FDlcrsw62TOPCgoVgngpNoshxMUDCHEG4J5fcg=; b=oIUlDvW+f93hEVwQO690P1gwm16WXalj3KH5KZc7t4bkyaF/hw+2Ty7tJ0zzPgqPzH CF5xJr5/A6Bge8bx7yPoslgkzd91+xSdxmpZCBcn8+FKHNyelH2xvnpdW6pkATvi1Khf sI0tk2K/WGiZHyy/UJf3h1l6rCIZuh/EhcE6fRRyZpnCshYUNYbColOs97OeqZoy2nN6 xSTjcvnEpvHPZmVHcCSG/kBY8n73ghsgdgjRl+WXXjJ+ePkl7aj8mIo31WIKg7YRAlfh yvUPiLwOEtsyj9OvaqzU5hsx84aSGQu+AcaGC6OOp6ntbrCngqPT4N3+MYUBQPc9H5OE XsRw== X-Forwarded-Encrypted: i=1; AJvYcCWC5NKTTWwNG2WFubO3wS7FHtLrfbtoxVLwFgRlU+pDxHgK5miQk134X31ZdEYKPt2KRgt+mweAl8CighY=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1jAgkBnxqoPsBhIsfBtIkujEuW1AfIyWFgDwDVnOqTZ7Fm4dw fFOUq05udDyUt9qnScpkhG6BmTN1/KjDhcikYBLoXYhXCzurtaVyU5iJf+dSvhYF5H0= X-Gm-Gg: ASbGnctaKnCKc+sGr0T1BTxgc4LbmKZCj8wU6RQzBdrK2jDMOqsfmkhlGTGMz2jpceo dA59NM582FLtp0nCvpG15zp3LkM+VqEI7Q+dPCciIuziYaDN+2mFFPdbQwIxMEzGR+4pcKIHUzl pRQmleVU2M1ojtZBJNGbf6TdLR/5jOyIdWRQkwm70lPXdvHHD2/Uv1yBobbJpHy6DhwM5z8LK0Q By1PoU3MjiTwL8vfzoDtqeVMNEjt+RJtmH+3r/R+5BDiaCn38/Ik/LAxd+MuntuTZTofVWoKmWi sN8ILUrYgb54O7tAay+wV1eCzGl6Ym3mXtTI9gIHz1pSHO8P1vzN6QAqYAoc17jgIvNugsZQGbD 9tNt3XdOYBv/Oa7Hje34dssSrFHdZbow4dSWu X-Google-Smtp-Source: AGHT+IGlTarSt6qvH4lmgRN+oUq7xpGteKJYtvJDbrXapQ7Eb/KPRGsvT0Gsl8JnkqI6XMTfQaWnpg== X-Received: by 2002:a05:6512:224b:b0:553:cf38:5ea1 with SMTP id 2adb3069b0e04-5550b87b62cmr5843364e87.15.1751370487436; Tue, 01 Jul 2025 04:48: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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:07 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 17/24] driver core: Export get_dev_from_fwnode() Date: Tue, 1 Jul 2025 13:47:19 +0200 Message-ID: <20250701114733.636510-18-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson Acked-by: Greg Kroah-Hartman --- 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 cbc0099d8ef2..6f91ece7c06a 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -1881,8 +1881,6 @@ static void fw_devlink_unblock_consumers(struct devic= e *dev) device_links_write_unlock(); } =20 -#define get_dev_from_fwnode(fwnode) get_device((fwnode)->dev) - static bool fwnode_init_without_drv(struct fwnode_handle *fwnode) { struct device *dev; @@ -5281,6 +5279,12 @@ void device_set_node(struct device *dev, struct fwno= de_handle *fwnode) } EXPORT_SYMBOL_GPL(device_set_node); =20 +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 4940db137fff..315b00171335 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1048,6 +1048,7 @@ void device_set_node(struct device *dev, struct fwnod= e_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); =20 static inline struct device_node *dev_of_node(struct device *dev) { --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (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 0FEAF27701C for ; Tue, 1 Jul 2025 11:48:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370492; cv=none; b=MHctjpcieKrYCZv79Xfend3DUS0X/58tJ2f8hOU55ldxXy7GcL1d2bwRk/47gvks36OaLMcM4EQe6wVr6Q46RspbMCNaSACqF2mmBpz2cLbGXkGXydciwzfFrhaPaIX7x0sX1qkg5zA2PC8cSw9Y7HUtDXp62RnC5b4fbqkviyU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370492; c=relaxed/simple; bh=16Y/V2ImsdkEIqcooSEob3mLCoXSVDRMKaiDwoewk3k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hx6zMcwUzLx6CVQ59IBKewHiXpzVVqwfCj1tMjs2gzaEd2Ixhlqv0Ku0+UyshbcRhcNyaaCSoBdodNAoI+d3KHXH4Y+ezVSqzPOaQDybtOZsdHzULSB5lFZTqhmcDWm5XMJQVYlAh1r9mRXfgAa1d5y4LPBkXLS3ONNR4JTUuNg= 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=JODSS7a1; arc=none smtp.client-ip=209.85.167.47 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="JODSS7a1" Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-55516abe02cso2754251e87.0 for ; Tue, 01 Jul 2025 04:48:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370489; x=1751975289; 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=aSlhhsNZnMSdNZ9/zrr7APJGkIMzya3OzGGURYO/UKQ=; b=JODSS7a1CKltjlAn7sR7LwJAWvBcMQMlzSERqs7w0dE3MDMppjuiEFnFxD1fyn6DKM 7NBsukO3FJaqsQ7zJgCAcGRHhWRWRTvaTymunTfVeVaGR4mMTgHrE0u4e/WgzPUwJrzw f6gGQRIOGTvYyuUQO3RrFx8ZqFTBzePVaj7eiLPbf3IGaFW++SrzK3CgN13o9r9X3CZo Vs3NXW1C8b1IS09YaREJqncOvw3LMM/QIVcsIkCmvbxOVg3aLh4HqDWS+M7Bgv1kiZV3 NCqaVJz/eY34o0k2hOlLcSiYqB9p1SKbVRVN0pSBJu3aG6+C0T1MpG2ULPoQwD6GAHe8 XO2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370489; x=1751975289; 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=aSlhhsNZnMSdNZ9/zrr7APJGkIMzya3OzGGURYO/UKQ=; b=QvzrtCl0Hyj0EbJbbeNy8hw1QG3iFg+NLeR2KfYnZFSSdzO18M5Afc2EZuVQ3985Dw pSkFujnCBbL16/keGzimyTRKeQo0l3tFwMhLE61vr6xj7paft1k4oDbFShmSF3WRNo0y 8x+ILo2ziYSfx0Y3XwBGXNB9svwuP8sTvlv1dqCkKT5wFkupFxcQfb9ERwqMJopHMsaW b59FT5YNG2zYJlSDicuX2nPfv4csvDO5gjByshHw1S69CmcK9jooci676olYaPLqbfk6 Px+eBa2hpoeLDOc1JGk9sOVraEmPyj1ZMIatqjv9JB1E8zvbVQrR93p98PKFD/RElZxY rj/A== X-Forwarded-Encrypted: i=1; AJvYcCVGjGR5sK455jCO16bZQsPYuQ2NaiPYAXcrNXMIznw6ga1WU40Zn/c1B0Y43dYOCDt4rgxI1IzSMGEHR4Q=@vger.kernel.org X-Gm-Message-State: AOJu0YxVzPzg8ffJnOv4ZjmkxRx67OM4pEXSg+OuZsGm39yoGYUtYewZ +eI9QBEKyJ/yqFArS73dZ1DQhy2wavZHe5jh1dtsWH5bX7x12VOmcP/Yq9osCYXl66s= X-Gm-Gg: ASbGncsj2fv1f8tf8fI2ggSjm5CQi73u0ObNLX39eMY5KS9TuuCKQ3U0TRK5g0aUO84 G+s9NIKXpyFHNCmULzCqOjJL9V9C5aQuxdM+mcFlc+AEze2Wu0cWQZsYj2bmdC1f0dHBCyEGNXn iczxRmp4+pu+L3/tkW2RuTwrsQ9K9Qg61sb14eXQtDVXJflUT6vpcxVYN2osc8u1edYPm4kNS8G JWf4y5XWUqVX3yri96u/tIOYvN4L9f7ueqocpxBQ8ZdxpJ/9TtLXv9E4ELKWD5B8+106P0rYLnX LxTga4VeZGeCoCIi/3SE0GS5yYX/7nlUpAvrHrEk6WFxyf2WFPmvPMj4mhdWad4xaxOfw0NHibO a0CdYITLUez1YU2EMV+kp40pz4QMFK4eNPaDA X-Google-Smtp-Source: AGHT+IGj4keXnnMXOTK8BsmFb9l85E6FUYCQFw927ADYbaXkZQ7jNAqNFb7K6hJHHY0y+lNMS4BVmA== X-Received: by 2002:a05:6512:e96:b0:555:130:1fa8 with SMTP id 2adb3069b0e04-5561f8d30dbmr1028685e87.22.1751370488982; Tue, 01 Jul 2025 04:48: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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48: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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 18/24] pmdomain: core: Add common ->sync_state() support for genpd providers Date: Tue, 1 Jul 2025 13:47:20 +0200 Message-ID: <20250701114733.636510-19-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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 0a6593a1b1c8..ca47f91b9e91 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -186,6 +186,7 @@ static const struct genpd_lock_ops genpd_raw_spin_ops = =3D { #define genpd_is_rpm_always_on(genpd) (genpd->flags & GENPD_FLAG_RPM_ALWAY= S_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_S= TATE) =20 static inline bool irq_safe_dev_in_sleep_domain(struct device *dev, const struct generic_pm_domain *genpd) @@ -2351,6 +2352,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 =3D is_off ? GENPD_STATE_OFF : GENPD_STATE_ON; + genpd->sync_state =3D GENPD_SYNC_STATE_OFF; genpd->device_count =3D 0; genpd->provider =3D NULL; genpd->device_id =3D -ENXIO; @@ -2606,6 +2608,8 @@ static bool genpd_present(const struct generic_pm_dom= ain *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; =20 if (!np || !genpd) @@ -2619,6 +2623,15 @@ int of_genpd_add_provider_simple(struct device_node = *np, =20 genpd->dev.of_node =3D np; =20 + fwnode =3D of_fwnode_handle(np); + dev =3D get_dev_from_fwnode(fwnode); + if (!dev && !genpd_is_no_sync_state(genpd)) { + genpd->sync_state =3D GENPD_SYNC_STATE_SIMPLE; + device_set_node(&genpd->dev, fwnode); + } + + put_device(dev); + ret =3D device_add(&genpd->dev); if (ret) return ret; @@ -2643,7 +2656,7 @@ int of_genpd_add_provider_simple(struct device_node *= np, if (ret) goto err_opp; =20 - genpd->provider =3D &np->fwnode; + genpd->provider =3D fwnode; genpd->has_provider =3D true; =20 return 0; @@ -2668,8 +2681,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 =3D -EINVAL; + bool sync_state =3D false; =20 if (!np || !data) return -EINVAL; @@ -2680,6 +2696,13 @@ int of_genpd_add_provider_onecell(struct device_node= *np, if (!data->xlate) data->xlate =3D genpd_xlate_onecell; =20 + fwnode =3D of_fwnode_handle(np); + dev =3D get_dev_from_fwnode(fwnode); + if (!dev) + sync_state =3D true; + + put_device(dev); + for (i =3D 0; i < data->num_domains; i++) { genpd =3D data->domains[i]; =20 @@ -2690,6 +2713,12 @@ int of_genpd_add_provider_onecell(struct device_node= *np, =20 genpd->dev.of_node =3D np; =20 + if (sync_state && !genpd_is_no_sync_state(genpd)) { + genpd->sync_state =3D GENPD_SYNC_STATE_ONECELL; + device_set_node(&genpd->dev, fwnode); + sync_state =3D false; + } + ret =3D device_add(&genpd->dev); if (ret) goto error; @@ -2712,7 +2741,7 @@ int of_genpd_add_provider_onecell(struct device_node = *np, WARN_ON(IS_ERR(genpd->opp_table)); } =20 - genpd->provider =3D &np->fwnode; + genpd->provider =3D fwnode; genpd->has_provider =3D true; } =20 @@ -3430,6 +3459,25 @@ static int genpd_provider_probe(struct device *dev) =20 static void genpd_provider_sync_state(struct device *dev) { + struct generic_pm_domain *genpd =3D container_of(dev, struct generic_pm_d= omain, 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; + } } =20 static struct device_driver genpd_provider_drv =3D { 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, }; =20 +enum genpd_sync_state { + GENPD_SYNC_STATE_OFF =3D 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 */ --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 1C348277CA2 for ; Tue, 1 Jul 2025 11:48:12 +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=1751370494; cv=none; b=EhD6gAZPM2ryH7euDGiKsdNgDNBrg9VnlPvgSipIy2gkfmNwXZempjpAa/I9ECorYvng66nGwx1jsvQfHhv7H+p/lHQns3SmW/TgSS/NrtVD1e2Vpej89TFrwXgNylco5cAhnyUUGRuuS+yQqfZCHgMRgMkh8YurQrMYwXjjJX0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370494; c=relaxed/simple; bh=KFtySHIiBM9Wkxn85JBFJA+dMnaKsCR/GrT1EW+Df2s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ESSjyG8F9/6fV4ZXH1ObNlKjvkPxZKtbwj6lb7xhCl6d4h5htG8rHp4dU0Fvy8sLsLwg78iI1CN7Xj3/DZyKY7BH52N0ADw8mYv7Yn55rGLFbJfgkgmiahE6Bt3QqDS68iiQ7h87QOTbD2sm8v3tfKhSK7nTA7kkazHslgBrJ2s= 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=Fp3DvpX8; 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="Fp3DvpX8" Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-5561c20e2d5so1770313e87.0 for ; Tue, 01 Jul 2025 04:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370490; x=1751975290; 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=43h2scNQ+uitZ0AV9xVg9Lwr/uWGDBBW7WgZih3doCY=; b=Fp3DvpX8QXTzc5OBeAOA8ZpAvYrUao66hL9kmdLQf1it3czwD2IGCa4hOgug7r6nM/ odAKkmZZXofOb/WstX4XqrZ+TeiaL185t210nP0yX7v1E7LYrWD3ZTU/+ObcCkiDX5mR guFWQ9D4RdX+uT9qQV2fPMu6iOI5Kcx7+tK+UB1JMUrMS3iTdFchvtt7ORWu+t35nPch +OwzeOM3+m/08a/a+2yVXT6YdVVXHXeiW9wcjoyg6IhTjhOWQBZG4095Y/BCQzYNSYLf 2tfJkqkWOe6KKSpr6RGa53BhRVHyzn7hWY5XwTMO0mKGIdD97bsHCzCOiqD1PmzfzISi pdqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370490; x=1751975290; 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=43h2scNQ+uitZ0AV9xVg9Lwr/uWGDBBW7WgZih3doCY=; b=PzZMpOkNV9xy5TEe/d8letrtolBfpQdD1/K3tHz+S2AMvy/Kn/duyRaiEWi745wb1S aTkbKsImoVmKeGF3VoKUQqjy/qhxOggbM31rgVI93VUC/68pFtNj7CPRy3HKf63oc6yq cDfO2hJZ/DgaTaJjDbLaL5QNwQFSLt1UtNff1bAMYiMKXhTZglDMnIdDFLE17BlKwJW9 Qagrk88GN9UNAhR4gWj92B68LK7bl+cRFFuyw149oVtSuzQpeDpkOXwM4w+66toeNc2n UBunhoySZVQ9rk9mkmsoQ4MZi8yKg0ODVOFVqX/8xq4Lr5c32JFQISStl8ICzrUNHLdE f1Tg== X-Forwarded-Encrypted: i=1; AJvYcCVyhlXdXukmovDSzeLauuZGYjfKy0jirDlk+BDYTXZ9ik3MyNPHi937Y9UgM9Yu10B6xElFx1AHpVbF0gg=@vger.kernel.org X-Gm-Message-State: AOJu0YyU/u6rspgleNHXYBH2UYufRU8Ptd3zs7Yfju2BKD6pYGzZfGKH Xa8hJ7HhDxAHlJ6cv95LYr3stX1ZTOpmGCqw3Ngrpbf71AQ11xPyoD9LUmOm4lN7mcE= X-Gm-Gg: ASbGncsyluFbDuOEIuwUcb04yJnBtVFCQCJnaeIbw0ZQ5MQoWqSyyzxUDL4l6twKTRz CKXywY/+btC4X4/VgPWdU4NCuRXbLRyCulhNCoTyQD99jyOSmtJA7SzjICWe4nyZWq94mg21lb8 kaMufMQSw5/8yfBqRi4kZK/Vm+v7qrb/QXyuCiOjjAdDHx9iJJt6T0F8SS83kFiedU69cWZdjK1 hnMRmWFRqFVPN75eAu3Qy/uoMnhiizslhg+lPiXya8JT3BD/pjjD+VgtXeTRVJ8xABE94Ys6ILR WSjxmvbCCreSH+Y90oCwgiU9qu3+REuJvJ03rMFrkfrLiT6ALck0oQz6vNaWzzCF61uV/wcXDgg SPaUxbOEjSdZG7GVDIs7QDbeTkHbZdxANOA83eHAaN82CejY= X-Google-Smtp-Source: AGHT+IGXZRw5n2EKVnLe+2fkx4wCE8kfUrNq7rzEqUs6wo71t2rUuFE+PmpyvT/+t2Fo2UVrlV2cCA== X-Received: by 2002:a05:6512:3c92:b0:553:3770:c91d with SMTP id 2adb3069b0e04-5550b7ea103mr6576048e87.4.1751370490330; Tue, 01 Jul 2025 04:48:10 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:09 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 19/24] driver core: Add dev_set_drv_sync_state() Date: Tue, 1 Jul 2025 13:47:21 +0200 Message-ID: <20250701114733.636510-20-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Saravana Kannan This can be used by frameworks to set the sync_state() helper functions for drivers that don't already have them set. Signed-off-by: Saravana Kannan Acked-by: Greg Kroah-Hartman Reviewed-by: Abel Vesa Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- include/linux/device.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/linux/device.h b/include/linux/device.h index 315b00171335..686f2a578fbd 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -917,6 +917,18 @@ static inline bool dev_has_sync_state(struct device *d= ev) return false; } =20 +static inline int dev_set_drv_sync_state(struct device *dev, + void (*fn)(struct device *dev)) +{ + if (!dev || !dev->driver) + return 0; + if (dev->driver->sync_state && dev->driver->sync_state !=3D fn) + return -EBUSY; + if (!dev->driver->sync_state) + dev->driver->sync_state =3D fn; + return 0; +} + static inline void dev_set_removable(struct device *dev, enum device_removable removable) { --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) (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 BD8FE276041 for ; Tue, 1 Jul 2025 11:48:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370495; cv=none; b=VTyEY2jS4mnaceHH0aZHp2mh1eOkjg4haofboT53tOUkc5hMmrlAixGa7VDDucPmQD4jIbgde0MM7TIYVx2Ku1cGdieMdOICGkppHW21x4xSeXfdjGG3Lqq6+xU5b+c2XNHzJzBZPNfCxsoAdT4IL7I0+0rBM0P3BudEy/Dr8lk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370495; c=relaxed/simple; bh=ZKxP/uIFZrB7DC/unY2AqJMe11Q/d2KHwpw9Mkep4WY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rByIyHYUvigzCm+BM8YW7mER6HuKnfUQyqIB/OPr/5nbZg4HB6QyQHWkYC/g3Z4OcDCWp0fvtmz6wuRDhvq1qT57lmeJOJa2YdWSaQ5AdnpCLLn2/ddbjiM9l3iSpFGb2NO8iM1OldjGxKzwSb2ZSOswz8I4h+pHCxCvAhxdR20= 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=vL6E56xy; arc=none smtp.client-ip=209.85.167.43 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="vL6E56xy" Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-553b3316160so3592895e87.2 for ; Tue, 01 Jul 2025 04:48:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370492; x=1751975292; 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=WLehfsqvOq2rldbx14TVd1s2tM/WPFuPqjQ5HJp7toc=; b=vL6E56xyGGnimmeds6TrOzbOQMxLsd9jZQxyC0V6es/aF2de9a2sddNdEbOHBfX/Xq LDEeW8qS9UYVKgu7eA1NjGDlcg04S7yG39/4MB4GU9m3Hb6ir9uj08y+XZXlFxeHd8GT cu+TNa4E7+1JTjRPBCWIo7jWYMF/18Xfa9yltUbH7MizAbd9mQra+89xuFsuaf+WvEac REqe7R7u9g5Rn7EmVB0MD3+3vGufBhWxLoHP+qsPwTCT0mFel3HN6Cl8D5ALy3qVAUgc C2l98kisFvP2zEg4/39vKjpvnTiTEE2YOwBNgYmaTkvgN2XOwVKKJez20ltJLjvQ5FOC D3BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370492; x=1751975292; 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=WLehfsqvOq2rldbx14TVd1s2tM/WPFuPqjQ5HJp7toc=; b=Cwq8hwlCawhL8NsqB59Z2oBfz5yJT2ZA3vkO5D7jIw/O1BcMl8f2wGxFj/7bU13R1e teZOuqR0xk9EglfwbgSZs27XStoP4SjJ9Ka9+a6FkNCw0w5ph2wvODVIyxQh0y7J/OLY QToQHUZ64zWjPTWFGThpxQqTcwwrhwwrDKSMTWom76mJMoqWRbkHsmbhJ8pTJr630csp m1YZoGLO5yEKBJUqUbd7o7yPh5P7wrIgsctbNZnjfP8fXKsPZ50uHnPozA2kg1OBXx6F paGlHl7m4xZ4nsULvGWeevK1fYnu+otOrIsaao5E/j2BWFCC6KHYkLQ/otHlxfpL0YCs B9NA== X-Forwarded-Encrypted: i=1; AJvYcCV38RWjASapCASTRM/Epz2GCxXJy/T+JIudjDcc08dVTecCXnZ2pUuFie7eTlc6+h346wha5gdEmIGlTWo=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1GoK4bUzR2WA0f0aqNEy7QGIvEQbSvEvoB7fhBS3Xrpluo9RZ yXTrtv6AHP+YI32JezIxeZCiStVf9J4BeH9+C0Ct7CPunCfqoJsjmPbkqZ1WJqTt8Ew= X-Gm-Gg: ASbGncu5msHD75fyUGnzhylXfEJeDnOnA42Exvy+CbJ9Gdl8KTkLQkOtJP+c6aqTjTe xWc4R9Zr7eqyc5iE8cHlStGNNEHZTpKQJ7DeW9JEgl53Bo+vWrdIBZLyWoM8Hiac8Xly4u7hcTG 20VxzA/3tX97HYL6xmOSn6sReXauZRIcLatwfL0fDXeanNB0ZoK4qEh6lDLEVIy+2AygyEttcP5 h4S0bnQBxEagwjVrjgo0vODuVbGG4CET+G2RlGaujG59MZrII2t2eFtCddezYXx/IyAJCMQscYk bdaY4nutG6qHqXbNF+4QI4PWmxhvJAS5u8UVyvhhXgOmaEMZgRXPJ2Y4y6VIDXJSMVvQ3nJPL59 uqTjk+peOGzjdiatVcgYSsgRW1CIv08gIh2eo X-Google-Smtp-Source: AGHT+IEFrJBlVC7VlfyoWKCWgUF1BoulcpmDcaoQJgnAjb01VTeoCZDNnR+9q8S12QM4kbT+CovL2g== X-Received: by 2002:a05:6512:3b9d:b0:553:aadf:b0c4 with SMTP id 2adb3069b0e04-5550b811339mr5665246e87.11.1751370491736; Tue, 01 Jul 2025 04:48: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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:11 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 20/24] pmdomain: core: Default to use of_genpd_sync_state() for genpd providers Date: Tue, 1 Jul 2025 13:47:22 +0200 Message-ID: <20250701114733.636510-21-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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 ca47f91b9e91..5cef6de60c72 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -2600,6 +2600,11 @@ static bool genpd_present(const struct generic_pm_do= main *genpd) return ret; } =20 +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. @@ -2628,6 +2633,8 @@ int of_genpd_add_provider_simple(struct device_node *= np, if (!dev && !genpd_is_no_sync_state(genpd)) { genpd->sync_state =3D GENPD_SYNC_STATE_SIMPLE; device_set_node(&genpd->dev, fwnode); + } else { + dev_set_drv_sync_state(dev, genpd_sync_state); } =20 put_device(dev); @@ -2700,6 +2707,8 @@ int of_genpd_add_provider_onecell(struct device_node = *np, dev =3D get_dev_from_fwnode(fwnode); if (!dev) sync_state =3D true; + else + dev_set_drv_sync_state(dev, genpd_sync_state); =20 put_device(dev); =20 --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 016F2278170 for ; Tue, 1 Jul 2025 11:48:14 +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=1751370496; cv=none; b=JEWrhi2MrSRDwArmPKKzNHRzWArc0w1Zx+WB35w7cnNCUKFfkcChnFkA6vN9NcGYxXF/Sn606Y4TXnqto6cIlVMxkM16TPwf3S0Wer97Io34aBmXlQnR6f6Sh1ImGVJs+XlMOPyIaDnOOPvVhHMrM45xmlh/O4cz0l5UbEO9kBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370496; c=relaxed/simple; bh=NEXU2VLrvcoTgnasw+T34g0Ny2Yk3h7wyLcdVlrWlKY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tenIIG8a5I4x4j4jULeS2SUSjdFmp7rYLTNqXFtzlRTfMCo7gKlbRBwPprDv3Jmwc8pmWTXLT13PzaMNsrlw4VwtbIdsjgcY16raYAZ9BvPQLhFBvZc7dhCub+DePuoFhZ8pKLee+4pCnMlAsEWgAM8ASJJIIpSH62YK4hwpazY= 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=BnALUKAe; 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="BnALUKAe" Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-553b60de463so3701374e87.3 for ; Tue, 01 Jul 2025 04:48:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370493; x=1751975293; 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=LdMf8ETlbb68upZAkXYue9saY3OH8vhTng5lSfTP1Lw=; b=BnALUKAeu+5HgsxdUR/NvkHr9eXtFuLH9G3iOcFCfJgE9ySA7LpuAljC8UO8g4YyDD LLYm5Yn97auuY4m7PHw/6G2DCL4wfXwv3dXgsLy1QPyBAQnjKzG2TH+VBKx3M6xRSHbk 0Am8Y2K7AgjAWsopaL/r23fK/6dDQKaQU7/nJ8kLmlWd51h6J47HWoluqkDEMNkn3LAf 4+1VQtr+OW+txx2M6EnkXJpHakhugwwROjtb9R4kdCCFRu5PlbS6sV2i5rVCOBubyQ1L C/8DfnstQ/QmrHOrLgGWXzqa0lyk3w2eCDWy92qd46SSw73dxs6kN61a5WsjcxjuuicC vfHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370493; x=1751975293; 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=LdMf8ETlbb68upZAkXYue9saY3OH8vhTng5lSfTP1Lw=; b=HWoc+EX54sBMV5Kyamu2xZGkdDvhfVNOAGubDz65IGJmlvIlNARYX43iLQeEdLCKJ3 FApzwBQNJVvVyk5NdJUdr3/DBm7rFzOIqYoi4MHyrk3sFpiyVej+pi06GLAgIXQnMji7 LipPteg5vwS+laiyA9tRdzs5l41n57y73UqOYl0b1EpvXtP/xHr3d6CmZHLufa8XeAVo f7kU2OecfNIkgZE0VmLsDsrUORFHxT5njWCn+Qbhrv/B6PCoLHebBmdlMkumg0uVjbhZ 2ejhbB4xQAgEmg7RkAxbFo5psET5LqgeSHWWVCao+eEfYcODAZJ2EGicYPYDvvGiMeEf ye+A== X-Forwarded-Encrypted: i=1; AJvYcCWLEp9TkaR9TndFay2iNmxaQYdisSBfu2EoyjVXuGmmnWLbhBgdsQ9GVsSdPILyUhUJJHcrn1hEPGOs14U=@vger.kernel.org X-Gm-Message-State: AOJu0YxnxoE4aUVNEGUitgHLASK+Gbo+jBXbQHRrqddM3T2/tJQBogpP 4nYGDzU6cKhVODsKgVOndvWsMCb2ZbeyOYsG7hwYfh6RwX0U9L/1hhsoHL6ukM8a9H8= X-Gm-Gg: ASbGncu5Z5p4uWWZH56Sr2+fWuAu39fRbtqOSKA5XUild5Ma5H4vjQPpInrCEzdIg5a HA1PT/0yMW20AjWlww3r+4adUyW7tpzkHLKw+NoprPNNhyD1lC0GZzdAoxjtAbQOwF4r+XwooE2 mymYT3m0GY7aA/lqc4Cdrvr06OkFW+9XdPX40GAAEBWj/fi5P9kgGG6HwjJrGYZ1sHV4fX+VlHG MGM4ssyIpmk9AIcOXyz1RrugyM4Rs1h1ur2SgYaToqc/WmAZcWcrJ2Rw9uMZxHOSIG0CZF+lwW5 P7J1dX5yaDTliyNs2DJE8AFU0WdEdWVoj6JGHH6vbmj2u7KHwlYJg3waTSIhtVwqty56lKSlmjo xpp71hpibf8U5S4bRhkih1U7LJMpdlI51l1kW X-Google-Smtp-Source: AGHT+IE/SHIuzQ7rWKOlDC+9ofv3pJngxyUh6TGDzTwptTEze5aqXXTe7AIraV6bJA9jSM2HwMhMpw== X-Received: by 2002:a05:6512:3d10:b0:553:d884:7922 with SMTP id 2adb3069b0e04-5550ba1191bmr4622940e87.48.1751370493072; Tue, 01 Jul 2025 04:48:13 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:12 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 21/24] pmdomain: core: Leave powered-on genpds on until late_initcall_sync Date: Tue, 1 Jul 2025 13:47:23 +0200 Message-ID: <20250701114733.636510-22-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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 5cef6de60c72..18951ed6295d 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -931,11 +931,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; =20 /* @@ -1346,8 +1347,12 @@ static int __init genpd_power_off_unused(void) pr_info("genpd: Disabling unused power domains\n"); mutex_lock(&gpd_list_lock); =20 - 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 =3D false; + genpd_unlock(genpd); genpd_queue_power_off_work(genpd); + } =20 mutex_unlock(&gpd_list_lock); =20 @@ -2352,6 +2357,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 =3D is_off ? GENPD_STATE_OFF : GENPD_STATE_ON; + genpd->stay_on =3D !is_off; genpd->sync_state =3D GENPD_SYNC_STATE_OFF; genpd->device_count =3D 0; genpd->provider =3D 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); --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 6475C279334 for ; Tue, 1 Jul 2025 11:48:16 +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=1751370499; cv=none; b=ot5s6BZG+oSgBkLCT1H8ucjVC76ENwMfFnSIXdxluKoI+59O3vTRiGS4L3XlSeU+pLomWKyGxApEUzgML5EV6uBLoVTmCO1cHPRfCv3RwWF23Gsc4VLvDmzLVF5ipJgUdIkF8s4yHNlmF4RKX2jk4lFVyflFRZ4jxz8DZ1DYB+k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370499; c=relaxed/simple; bh=oVGYbB4M2g4Pk0G4mXbQpFb6WBtoi4wL+V0FO2AQVTc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bvqzcU3u0q3yvBQWXLjvn73qaJJr9g6vJ4Gx4Fvhwz9KU8n12ndm0HZtuvevDMuH3sToOZWL5GnD7pilVmzob9bv5t02C3tHhmaXcCM5D5MUzfstmaXBTdOftK/TNeKxvHVFDAKsyrisASlKGfg1GToHcoNWHOBEDDLfBR24YiA= 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=NTA3e+LJ; 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="NTA3e+LJ" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-555024588a8so3328295e87.0 for ; Tue, 01 Jul 2025 04:48:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370494; x=1751975294; 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=6Grr6sl4cEvHS0b8iaih2yeMDMbPzzC5ZGk2V/+UW+I=; b=NTA3e+LJXJaOUZ4kofiWKYg1ga+GnHobxK5kmUV7W1RpJH70MpDR2fZ4nAAVtniqLX ug4gurmVaATq+euvBClsj4YFkQQCa8CvbmpDepy7YgzcqAquUMHHGJhj6hvlbjk97sln n5sP0qqKpZ6VS+gwezbapV3jV9OoQ/KlRw8agN+9XtqRV2mdsgKO69tsXmhkNn6IpvxK 3utrL70iTH5jldgw2NPizGqf6pHDPAbLbzyI2jM4Gi/SBfUIKsStp63gIRVn6rd+3O8O mSLsaahUhx8vhwdxp8yk67urLVEE+5qPkDcEC+h65GQRt9Uls/7vhMHcJBOFxfXlqgCV 8uuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370494; x=1751975294; 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=6Grr6sl4cEvHS0b8iaih2yeMDMbPzzC5ZGk2V/+UW+I=; b=L7CO4kolBUBO5JEnnWiVVhuteSLi/ihTw7bW+YPXgiY5uWvl3f/d0EXBJXNGLwBtk2 sfWhWY+GtdfjKb3+gEZQaiWtbDX2DZ8VRIpTK3YJ94qvruRjuwaKyZvgd02KNNkNn6u7 kfqwF75kaVehP4XnmtMfifHNg31IDC/vue3Awjd/uVINOic2+10TDGh0xAP4IAIt5X3/ akkscoB4nPsT5dNR0a6c8OQ9TvHqtBHGFUUf9cLuZmC9721SpUWFGJbvmSAAjyBaV8A3 gn28EuoYQ5Tt+Vm8haMcSVKKxwBYMxU5dOZ+QvEC25XjZwjtWvXdnfmeItao1Py4vRn+ E/YQ== X-Forwarded-Encrypted: i=1; AJvYcCUNDNkmBRZgnKP1r+ZNiN/mG2vXJoToD7oiLBxGPvKwwTyRVpY+LSQcfrqJ3UvEf1H/a1hzgE6QmULgrtI=@vger.kernel.org X-Gm-Message-State: AOJu0YxeAKCs7UtCOTpqQF4UJR184mr0pKJHuYM7Ytcc0ONqOxR52WW2 /AlUPH88/a/yRxVyUKBB+7y1FGCv1sx8li34w9kU/YZWG34WwTIzhcgHy+1/iozp45g= X-Gm-Gg: ASbGncuQ8h2CniqMwmUqFAUhlq95o90m9DeC1HjM/sw0vg8IV9YtDoZo/PyS1zcox3a mSsIqLg/b/Bs9yiBEvKRfVyTkr14mE6Ljwqnm4r6eJ1RcnTpQGqUB1rsxranX7xhZuR74LJl83V YVulvfykhnjyoIPqzNdZNAjp/VKbOqsBwXo5CS3bkH6jrV1n0ToTF9nDfS+f8ATVwCsVAMzlXDs 9DmR0xfLnKNSonghqiPSudVKYfclwSHGeuAh7lLgAN2vfyW0iuPyUeNDdjMN03Br5/DPHjwBpTt LTJ518y/4rqPwIf5r9Jy+Giv/y2KKTFeBPYlWNHTpooqdcXDHWWFg0gTUIVPGwruvWb/aXewNZJ s7YqpuEhxUif5T3aH2FLi2ssMS6MMQFOPzKKb X-Google-Smtp-Source: AGHT+IEAzEGjWuHMus1XDYl0PiNkmllaOO69M065vbKdwdWl1n37RJb78JR7OOuVsVm98bpKzaxCeA== X-Received: by 2002:a05:6512:3da2:b0:553:26a7:70ec with SMTP id 2adb3069b0e04-5550b79db9cmr5623472e87.0.1751370494435; Tue, 01 Jul 2025 04:48:14 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:13 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 22/24] pmdomain: core: Leave powered-on genpds on until sync_state Date: Tue, 1 Jul 2025 13:47:24 +0200 Message-ID: <20250701114733.636510-23-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Powering-off a genpd that was on during boot, before all of its consumer devices have been probed, is certainly prone to problems. For OF based platforms we can rely on using the sync_state mechanism that the fw_devlink provides, to understand when all consumers for a genpd provider have been probed. Let's therefore prevent these genpds from being powered-off until the ->sync_state() callback gets called. Note that, for non-OF based platform we will keep relying on the late_initcall_sync, which seems to be the best we can do for now. Suggested-by: Saravana Kannan Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson --- drivers/pmdomain/core.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c index 18951ed6295d..a86aeda1c955 100644 --- a/drivers/pmdomain/core.c +++ b/drivers/pmdomain/core.c @@ -1324,6 +1324,7 @@ static int genpd_runtime_resume(struct device *dev) return ret; } =20 +#ifndef CONFIG_PM_GENERIC_DOMAINS_OF static bool pd_ignore_unused; static int __init pd_ignore_unused_setup(char *__unused) { @@ -1359,6 +1360,7 @@ static int __init genpd_power_off_unused(void) return 0; } late_initcall_sync(genpd_power_off_unused); +#endif =20 #ifdef CONFIG_PM_SLEEP =20 @@ -3459,6 +3461,7 @@ void of_genpd_sync_state(struct device_node *np) list_for_each_entry(genpd, &gpd_list, gpd_list_node) { if (genpd->provider =3D=3D of_fwnode_handle(np)) { genpd_lock(genpd); + genpd->stay_on =3D false; genpd_power_off(genpd, false, 0); genpd_unlock(genpd); } @@ -3486,6 +3489,7 @@ static void genpd_provider_sync_state(struct device *= dev) =20 case GENPD_SYNC_STATE_SIMPLE: genpd_lock(genpd); + genpd->stay_on =3D false; genpd_power_off(genpd, false, 0); genpd_unlock(genpd); break; --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (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 B0EB8279346 for ; Tue, 1 Jul 2025 11:48:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370500; cv=none; b=JEgoSsUfoYGIjt0lZSprbcEe2r02V6ZwNqL+yJgsa783IeCKNfOOHN/TJ/pq9uhZZl1Mxjch50Brpml7/4y938tKvn+2QSNQA4tPfbTUlmcmZX13L6Ha4pq2meixgceIAiacod6LoFzvNi7JDQyJ9u96L+jYdXTZkDTdRSXD6mE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370500; c=relaxed/simple; bh=NSYtvyZVf2UzhXwMZ5opV17BEbqx9XvRIjGk3BgINR8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T9L+MRnmqZlYuwR3Fb8E3BToRz8+oGTEEtqMm2voYS+gzfAUNdNOhmE4hxEmnNuDcvyB/gh7DlKKcdIoUpWQhRdRmCrdDRNTzDALdufc1yU3vBwHKVke+IXpsdTaPzdyUbW9UUeUNXa015SSmrtnU1sMthRsYunnIvwamEV6rPM= 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=kMC0AVPl; arc=none smtp.client-ip=209.85.208.180 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="kMC0AVPl" Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-32cdc9544ceso27155501fa.0 for ; Tue, 01 Jul 2025 04:48:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370496; x=1751975296; 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=Xubz5AMnVL9fFI2MEMsk3gmMyUmqJIv+eASrf2W14mE=; b=kMC0AVPlGx96EsR/V1y8Dk+D8ZPSOSEO0DQL3Lxvx9H7PJJZyXaIGl8pe5ZN0DetJS 9dmRavX8eAm9qGxndnI/wjIyUvb/MQDC4b6pKTfLQOUjYO+EfsdgL5uIxlSo6IsJpwtx 4h6h5YO/LkB6xrhCISnOhTbbXgyroiihblNrpSwUyXNNGXLSb+JRFEhyUYJNwW+2PrH4 OEkYl0nbUVUcA6gq2tV5LceUf0VGkPv4m2Qi22QVmSV5C9XtOaIGJdYNosDcJ4TA0vRe ba6ifGpAXjjLCjMMwFPsCkm76zRdLR0MbXyj+5zEgg4tK6EkgNKO5ywp2yPftudN7ReX hlDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370496; x=1751975296; 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=Xubz5AMnVL9fFI2MEMsk3gmMyUmqJIv+eASrf2W14mE=; b=WXtQAbT0n/IhqW3LWyL8E0MyIVAgY+K5FzIGix8VdcTFkaYk17ELLk8NpnUCXAr8RJ CTi7flbszyJDZYRDxIlvJW7Hb+flCgf7o4YkoGWpBdwkoPVKR0Ao3a+npL8Q5vVTSAni giMIypU5FZ6RaTm6bhlKTMyn7uPsLCsIkyQ67h+EwOPgtRi+56Ddfc7XLOBcRUuBXgKw maSBUr605zRO6rW3CXzGUz/50sBMBoFJCDbNTFiWW2CU5B5B6ZOqSa2LCQUB8bNA3brn aHO4k/IbwFFRI2ZSUfL3mHnY6mCvJqtpkXLLzN7IrKS6KeXOKvjjUmNJTKCrxQ0BiqPw IjDQ== X-Forwarded-Encrypted: i=1; AJvYcCVJAJ4Y9NtW5VIGjwNFxpSP5AidGCs2ChPw6s+BV3YnJ9z5l54RUo0CrZ2JUvvRa2mNfj7/EOHYRTqTNNI=@vger.kernel.org X-Gm-Message-State: AOJu0YxgIBq4fxqngjFbKEHljIHCKfXXJMW05JmLbZqoTGHxXwqQgDmS v4xkR0rw/LJd/PXYP3h4oIsxks/uMwUuxVJg+LdVCPdqk8ojJGowyNZD7QL86xyPWA+scRq3R2y +uLdG X-Gm-Gg: ASbGncvsM6GxBE/vCDSlaTODYG+9kFvAgy0KnpdVAYtDh0cKS0F0qdCrx6eKqMw20LA 2hirDupZy0pdS7fUlcPc96B+qj04hSH1VyqwuUFlrtHWBYPfRg/4VJOdd0h3jRujVozMe6ESE9C eHnTtysGMCNglhg74lIKC+SLMeZeofnNiMysZmEttPR9efufU3czw0GPEOqoya7rlFV/70CU1t1 kY08wT1wwh4KVUgRZ90sZntY2/xG9oVtVipH7HhbQu2jKLDSktZR7J6EdO20+4abr3HEDnErHU6 joSrVHwN6VumM6lGhhjDLvTRGFQ/PKNs03e9qK5VZqKbgINt6uXlgD/BVdRuy2c0C6jbJ3fPCcS aXdKchQt3zGmQ/N62c5Z/QyWRRJAS0iSbsDMbe88vtW5Bfvw= X-Google-Smtp-Source: AGHT+IFbAm4sSy6xwNDq/uawFwMXkVuPJBi7CK4J/iQSlQCYGGILLP1j4D4YF3zjMC9RJVOr0YdTnw== X-Received: by 2002:a05:6512:3083:b0:553:ad3f:1597 with SMTP id 2adb3069b0e04-5550ba1de10mr4896071e87.53.1751370495665; Tue, 01 Jul 2025 04:48:15 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:15 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 23/24] cpuidle: psci: Drop redundant sync_state support Date: Tue, 1 Jul 2025 13:47:25 +0200 Message-ID: <20250701114733.636510-24-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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. Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 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/cpuidl= e-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 { }; =20 static LIST_HEAD(psci_pd_providers); -static bool psci_pd_allow_domain_state; =20 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; =20 - if (!psci_pd_allow_domain_state) - return -EBUSY; - /* OSI mode is enabled, set the corresponding domain state. */ pd_state =3D 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; =20 - pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN | - GENPD_FLAG_NO_SYNC_STATE; + pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; =20 /* * Allow power off when OSI has been successfully enabled. @@ -127,20 +122,6 @@ static void psci_pd_remove(void) } } =20 -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 =3D 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[] =3D { { .compatible =3D "arm,psci-1.0" }, {} @@ -201,7 +182,6 @@ static struct platform_driver psci_cpuidle_domain_drive= r =3D { .driver =3D { .name =3D "psci-cpuidle-domain", .of_match_table =3D psci_of_match, - .sync_state =3D psci_cpuidle_domain_sync_state, }, }; =20 --=20 2.43.0 From nobody Wed Oct 8 06:45:29 2025 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 E43D32797AF for ; Tue, 1 Jul 2025 11:48:18 +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=1751370501; cv=none; b=GTGKIC/EreiTpf6YwwzC64NMqjeHjREyvOk9ND2Xk92n9sz2DE0KNMOzcW9cfHBuM9bfgQWJuioSlcOlsYO5WzVYAAMkSgGoZJ0XYiHeLgJdyRyxzp9DujwXOLoAM+o7qzrdN1lAdsA6t2qSAPVtYQu6GdYGMqd4w88vpoYCzZM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751370501; c=relaxed/simple; bh=IcMPWNtWz+Yq437eto4KGz4yBcEZPkVOdOxFSJOvbLk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ULrafCYrDu4pBxD6HJNuD2diBYfs7k9DgfEfF3rfp6j9VQLHw7NNCwthYa8LXE8ITysIz3yA7DptdcjsH+nAGwHNdNLLotjwZpqXsRJf4Jy3E6AcPhZQJ2JuB7qcwucmjEfduvOJtMp8XN5lxpX3wktoXBpxTT4ltL65Q5hKdf8= 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=Phee2/pV; 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="Phee2/pV" Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-553ba7f11cbso6547436e87.1 for ; Tue, 01 Jul 2025 04:48:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751370497; x=1751975297; 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=KSVn2mrG7zN+yugOBdym77+gEsZFQXOddpv10aEY7jo=; b=Phee2/pVjtu8knDXoTq8OmkVIeCVsYjZAnC27+3H1AYhu0wR/2lEGDuuAChsfdLvZE +Bb6jW2s6iPyT7/I0E9tEZ08/om/BSIWgCLXwik7QAoA1ReuZECDnS9MipC4t4MMgKgv 6354MpRjmKG8wklTq8t+pLZWkd3P7yuq2O3o8TK7kpJzfZ6bU3F45ZkEDAs86pkNfJAt wH+OnmYuSQ4lSMtylZYDetL7YZYQ1BArRLXkSrwKJoMbWRzTr5T/yYsZC8Qz81U3Evp2 Oxsu17cZMxYU2GtulFR8wSpcEmi1Rv4JnWIkNVlUhrUJ+LhCfu49Gc6uHC/Q2/AYeeEP iBkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751370497; x=1751975297; 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=KSVn2mrG7zN+yugOBdym77+gEsZFQXOddpv10aEY7jo=; b=B+QJIFHi3jNBcpkKkQk9cZrUWl1Xx7MewTHP2ZSgnwW2xCVprxYxasecxFjo3pYZZ4 xr6aCMbGtW3pvECxaTa8757x6UBhRGjr5zRgiycuL30BhNFBAvBzSBvYWwQWhph6PrxD sU/DJEIEPHNjDuWgBSTtfdl7eQnHdPWDS9snLJxgUh7fCKaIx65W9iC+ITqQx1zXy42I APECoHz0p11JdBPOj9dbEg3KK14d72fKAc4mK2ekyVXlznZJ0Q7q2ECVX2404bWb3uVh qefWekrnZfQD5iT5NtVhyoNy3GOohMwHQH5ILiRjRcjQBwbCk85RKz2Jq22lQ+UOyOAk 13Qg== X-Forwarded-Encrypted: i=1; AJvYcCWFquVhRmce4vC76kVyL4zZyvxjbr0r0QoIxLTRckanZzQuHvkQ7c0GbP6ZbguCyn86bf6NmNV1CVHdWUs=@vger.kernel.org X-Gm-Message-State: AOJu0YycTggPPPr25YPfRjwlA6YCYPL+5vqEp5fq2ppkD3jkrAfP0H8x gREdTrGT3S/3YFW4VEKQQSlS8bCUx2T41ElsmKTfxSzdQ25E6iZRx6MbhqT/O4qjUKc= X-Gm-Gg: ASbGncucxv91b6SD1v6UnIh9pVOstjm1peiQ2RP+oKixAJvmAaskW74J/p2qBNxsMNj wrWYmcheIjMP93/P2uHuyMv0RVwb9ASJLwdsGLEf3vj3msWzfniidsNbxIbwGUr0SbOrKAglDOM I7LDXbKv9TTwOjcZL0JsUGxpIFrHgnYxvMP5NqrLaUVgpvFYbV3z99QdDaeOzJB+AOuxVgtxohZ WnPu7yOrdsaEJjubFPhEbJp7F1LITMKOUFg65x2RP44sB8CkomW2uOeQFCBzBNfIMiIukcDkpSP xn0bTaXuRvSZf9FROrD4Ni2wVi3KIr8FfTJyv9qkJ/66GgurpxP1FQnE9f2cuDFn2ceADAQQTqd E0R1gCmJVy/A77gfQiegOdAlfqWQESyiIHgHGFX7hIDF1H6E= X-Google-Smtp-Source: AGHT+IHDgDRPfHPY98/LHxFMoQy3YVLaarT1QmySpf801TGvHsjckA9nhAnZDzSK8mfVyqtwI0kzDA== X-Received: by 2002:a05:6512:159a:b0:553:522f:61bb with SMTP id 2adb3069b0e04-5550b7e7b62mr4991989e87.12.1751370496991; Tue, 01 Jul 2025 04:48:16 -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-5550b2f162dsm1800592e87.248.2025.07.01.04.48.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 04:48:16 -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 , Hiago De Franco , Geert Uytterhoeven , Ulf Hansson , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Anup Patel , linux-riscv@lists.infradead.org Subject: [PATCH v3 24/24] cpuidle: riscv-sbi: Drop redundant sync_state support Date: Tue, 1 Jul 2025 13:47:26 +0200 Message-ID: <20250701114733.636510-25-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250701114733.636510-1-ulf.hansson@linaro.org> References: <20250701114733.636510-1-ulf.hansson@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The recent updates to the genpd core, can entirely manage the sync_state support for the cpuidle-riscv-sbi-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-riscv-sbi-domain as it has become redundant. Cc: Anup Patel Cc: linux-riscv@lists.infradead.org Tested-by: Hiago De Franco # Colibri iMX8X Tested-by: Tomi Valkeinen # TI AM62A,Xili= nx ZynqMP ZCU106 Signed-off-by: Ulf Hansson Reviewed-by: Anup Patel Reviewed-by: Rahul Pathak --- drivers/cpuidle/cpuidle-riscv-sbi.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-= riscv-sbi.c index 83d58d00872f..a360bc4d20b7 100644 --- a/drivers/cpuidle/cpuidle-riscv-sbi.c +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c @@ -44,7 +44,6 @@ static DEFINE_PER_CPU_READ_MOSTLY(struct sbi_cpuidle_data= , sbi_cpuidle_data); static DEFINE_PER_CPU(struct sbi_domain_state, domain_state); static bool sbi_cpuidle_use_osi; static bool sbi_cpuidle_use_cpuhp; -static bool sbi_cpuidle_pd_allow_domain_state; =20 static inline void sbi_set_domain_state(u32 state) { @@ -345,20 +344,6 @@ static int sbi_cpuidle_init_cpu(struct device *dev, in= t cpu) return ret; } =20 -static void sbi_cpuidle_domain_sync_state(struct device *dev) -{ - struct sbi_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. - */ - sbi_cpuidle_pd_allow_domain_state =3D true; - - list_for_each_entry(pd_provider, &sbi_pd_providers, link) - of_genpd_sync_state(pd_provider->node); -} - #ifdef CONFIG_DT_IDLE_GENPD =20 static int sbi_cpuidle_pd_power_off(struct generic_pm_domain *pd) @@ -369,9 +354,6 @@ static int sbi_cpuidle_pd_power_off(struct generic_pm_d= omain *pd) if (!state->data) return 0; =20 - if (!sbi_cpuidle_pd_allow_domain_state) - return -EBUSY; - /* OSI mode is enabled, set the corresponding domain state. */ pd_state =3D state->data; sbi_set_domain_state(*pd_state); @@ -401,8 +383,7 @@ static int sbi_pd_init(struct device_node *np) if (!pd_provider) goto free_pd; =20 - pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN | - GENPD_FLAG_NO_SYNC_STATE; + pd->flags |=3D GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; =20 /* Allow power off when OSI is available. */ if (sbi_cpuidle_use_osi) @@ -570,7 +551,6 @@ static struct platform_driver sbi_cpuidle_driver =3D { .probe =3D sbi_cpuidle_probe, .driver =3D { .name =3D "sbi-cpuidle", - .sync_state =3D sbi_cpuidle_domain_sync_state, }, }; =20 --=20 2.43.0