From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4AEF1CC6B34 for ; Thu, 15 Oct 2026 09:52:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:References:Cc:To:From:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=q6NX91n8sg0b4V5XyUBL6pTMXOsCEZRCIKDjR1HCVko=; b=bzfhbEJkAN0gPEj6UpGH9Xon0G lMH628BRV0t82s69PcnQkaACPSIvL6bgZsXVN0eiA1SwLJp2VKS+1p/Vi1CW80oSoewVd0401a501 yMrezudgoCtyA7CKy8CcUz2e8z+NEkt9Gm5DVmzwCB69mVn2fyyg8JzhHJ9HXtDgJ5wu1shCt5fE5 T/Mc81zvz0x2cmEOjOs6zsFzNpgnnh6tCas0hYaP0ZINPO3Sqq4FoE/rTiWmsrRmaSBy9Ti6Ejdv2 BISOSVKXU2xUVoS9SgSrf9rzVeKPEYDbAS05hBT3OKUaOEVWl6kcA00c+wcrvZPMyCUpHEBaaIGjr p1JLWL6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHI7r-0000000HLSg-3Jrn; Thu, 15 Oct 2026 09:51:51 +0000 Received: from linux.microsoft.com ([13.77.154.182]) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHI7p-0000000HLSG-1i1m for linux-arm-kernel@lists.infradead.org; Thu, 15 Oct 2026 09:51:50 +0000 Received: from [10.94.176.134] (unknown [4.194.122.162]) by linux.microsoft.com (Postfix) with ESMTPSA id D205E20B7167; Thu, 15 Oct 2026 02:51:40 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D205E20B7167 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1792057904; bh=q6NX91n8sg0b4V5XyUBL6pTMXOsCEZRCIKDjR1HCVko=; h=Date:Subject:From:To:Cc:References:In-Reply-To:From; b=R0LCZU8Bm4A7wctc9j6aHEiOhMnlKfeMxoDNSSPJRlcLlgmBiviXbSymwpu6KDHw9 KMSVMGaQm+1ITiFkMVxzW96Sr032KoY3DyGmcWCNjEcDp3i+LAHvT5BQznwAnRlf5y n1zf89Ms4AaJ7d+9AkocphWw2rMy2ICCrQOBRcKY= Message-ID: <4f9398a0-d303-4b7f-9967-9a5f3077cc1a@linux.microsoft.com> Date: Thu, 15 Oct 2026 15:21:43 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] arm64: dts: xilinx: versal-net: Remove CPU idle states From: Prasanna Kumar T S M To: Jay Buddhabhatti , git@amd.com, ptsm@microsoft.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, michal.simek@amd.com, sven@kernel.org Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20260727121842.3410495-1-jay.buddhabhatti@amd.com> <20175a31-2ef8-4c12-b329-616cb07d3d0b@linux.microsoft.com> Content-Language: en-US In-Reply-To: <20175a31-2ef8-4c12-b329-616cb07d3d0b@linux.microsoft.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261015_025149_473847_4B5C87B3 X-CRM114-Status: GOOD ( 13.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 15-10-2026 15:01, Prasanna Kumar T S M wrote: > > > On 07-10-2026 17:49, Jay Buddhabhatti wrote: >> The sleep state powers down the CPU core, and the wake-up time cannot be >> guaranteed because the firmware may be busy handling other tasks at the >> time of the wake-up request. This leads to unpredictable and potentially >> high wake-up latency during CPU idle. >> >> Remove the sleep state to avoid this dependency on firmware. The default >> backend CPU idle state simply puts core in WFI and retains its context >> without being powered off. Since wake-up from WFI is handled entirely in >> hardware, it is effectively immediate (a few cycles) and does not depend >> on firmware availability. >> >> Signed-off-by: Jay Buddhabhatti >> --- >> Changes in v2: >> - Remove the idle state instead of replacing it with a retention state. >> - Update the subject and commit description. >> >> Link to v1: https://lore.kernel.org/all/20260727121842.3410495-1- >> jay.buddhabhatti@amd.com/ >> --- >>   arch/arm64/boot/dts/xilinx/versal-net.dtsi | 29 ---------------------- >>   1 file changed, 29 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/xilinx/versal-net.dtsi b/arch/arm64/ >> boot/dts/xilinx/versal-net.dtsi >> index 21bb917bcba1..9b74e59fd64a 100644 >> --- a/arch/arm64/boot/dts/xilinx/versal-net.dtsi >> +++ b/arch/arm64/boot/dts/xilinx/versal-net.dtsi >> @@ -103,7 +103,6 @@ cpu0: cpu@0 { >>               enable-method = "psci"; >>               reg = <0>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -133,7 +132,6 @@ cpu100: cpu@100 { >>               enable-method = "psci"; >>               reg = <0x100>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -163,7 +161,6 @@ cpu200: cpu@200 { >>               enable-method = "psci"; >>               reg = <0x200>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -193,7 +190,6 @@ cpu300: cpu@300 { >>               enable-method = "psci"; >>               reg = <0x300>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -223,7 +219,6 @@ cpu10000: cpu@10000 { >>               enable-method = "psci"; >>               reg = <0x10000>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -253,7 +248,6 @@ cpu10100: cpu@10100 { >>               enable-method = "psci"; >>               reg = <0x10100>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -283,7 +277,6 @@ cpu10200: cpu@10200 { >>               enable-method = "psci"; >>               reg = <0x10200>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -313,7 +306,6 @@ cpu10300: cpu@10300 { >>               enable-method = "psci"; >>               reg = <0x10300>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -343,7 +335,6 @@ cpu20000: cpu@20000 { >>               enable-method = "psci"; >>               reg = <0x20000>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -373,7 +364,6 @@ cpu20100: cpu@20100 { >>               enable-method = "psci"; >>               reg = <0x20100>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -403,7 +393,6 @@ cpu20200: cpu@20200 { >>               enable-method = "psci"; >>               reg = <0x20200>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -433,7 +422,6 @@ cpu20300: cpu@20300 { >>               enable-method = "psci"; >>               reg = <0x20300>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -463,7 +451,6 @@ cpu30000: cpu@30000 { >>               enable-method = "psci"; >>               reg = <0x30000>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -493,7 +480,6 @@ cpu30100: cpu@30100 { >>               enable-method = "psci"; >>               reg = <0x30100>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -523,7 +509,6 @@ cpu30200: cpu@30200 { >>               enable-method = "psci"; >>               reg = <0x30200>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -553,7 +538,6 @@ cpu30300: cpu@30300 { >>               enable-method = "psci"; >>               reg = <0x30300>; >>               operating-points-v2 = <&cpu_opp_table>; >> -            cpu-idle-states = <&CPU_SLEEP_0>; >>               d-cache-size = <0x10000>; /* 64kB */ >>               d-cache-line-size = <64>; >>               /* 4 ways set associativity */ >> @@ -632,19 +616,6 @@ llc: l4-cache { /* LLC inside CMN */ >>               cache-size = <0x1000000>; /* 16MB */ >>               cache-unified; >>           }; >> - >> -        idle-states { >> -            entry-method = "psci"; >> - >> -            CPU_SLEEP_0: cpu-sleep-0 { >> -                compatible = "arm,idle-state"; >> -                arm,psci-suspend-param = <0x40000000>; >> -                local-timer-stop; >> -                entry-latency-us = <300>; >> -                exit-latency-us = <600>; >> -                min-residency-us = <10000>; >> -            }; >> -        }; >>       }; >>       cpu_opp_table: opp-table { > > This change works fine. > > Tested-by: Prasanna Kumar T S M > Change looks good to me. Feel free to add: Reviewed-by: Prasanna Kumar T S M Regards, Prasanna Kumar