Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4381884pxj; Mon, 21 Jun 2021 21:50:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy1pLZ5lyZkFPH+T92flDU3QhHSWMRLqrJNhvG1HnJ1QbDBP49qDFydwf+RWMyX6tCg2Pg8 X-Received: by 2002:a17:907:628a:: with SMTP id nd10mr1867980ejc.326.1624337437666; Mon, 21 Jun 2021 21:50:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624337437; cv=none; d=google.com; s=arc-20160816; b=VnKVfrBHhD9jwEW03dWgo3IjBraTW0krOOy4rPBEakOtjtGZvFDIy/l+7EFrpkfrII N87DpSkDVQ152cOm32VdGUQYnsfyyS6hR1hYqHlxgzLkiZ11nV1R9Z85Aaj1aZW6Xqbt /4Z0mrTCFNPLUsBCrap1T2f+7QvHKqS4RAqSM8cZjU5plM45AuQuKmJrdAyM0cuQ/1qs 1iyNhyQKBX0/N8YovTaBZO0e0b7YqiJuqPC4T9vrMMvVWRxcWTcn4b98FppZz23Zjs8z n9cGAEI+ae/d/UCz8RVejvW9EnlTk05h6lxdlCMD5b4Dq6aU3EamBgfQvrc67puIcLOz m76g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=LZDUAnqEXjRVZWh1a1xJ1KodfKynosGX+MGHfcnE+kU=; b=FhAT5epvdBo98eNEGZc25vmNtED0NLzSByv/GN6A/90iCgcUGIB3JyRJwkNJzv9Gzc zfvnNJuxOfhtlAVK6um4C6imMnXYxZvDOFzJg/9iuIeBhfvPGMy4focSqhjKw1VOd7Ky 7VBl2CuO4W/r9cdJlKIcH8grhHqOOx1Q9kv9viavYRCJDOixR0SEwn4vkMJRcuiQnLEV cX/jC15IrwQ6IWyvQVbvliGts9Z40MIBRn1W8kd7nis57Cc6ClTPzCcQ4QJqk0nM46qi hiWDzFVQ0I92GQ1lRkSb1YQJQmfCz7QqoOEcS6Nhe7pp0KhtDVJXq4czDSiF3/OmGp1Y 2kOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@brainfault-org.20150623.gappssmtp.com header.s=20150623 header.b=bH4f1th7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dp16si11281638ejc.434.2021.06.21.21.50.15; Mon, 21 Jun 2021 21:50:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@brainfault-org.20150623.gappssmtp.com header.s=20150623 header.b=bH4f1th7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229752AbhFVEvl (ORCPT + 99 others); Tue, 22 Jun 2021 00:51:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229574AbhFVEvk (ORCPT ); Tue, 22 Jun 2021 00:51:40 -0400 Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D044BC061574 for ; Mon, 21 Jun 2021 21:49:23 -0700 (PDT) Received: by mail-wr1-x434.google.com with SMTP id a13so205908wrf.10 for ; Mon, 21 Jun 2021 21:49:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brainfault-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LZDUAnqEXjRVZWh1a1xJ1KodfKynosGX+MGHfcnE+kU=; b=bH4f1th7fB3/XSYd6w/iVmgPpxVgsJ3aJmbLqWedYwp9i75zoJ/imdZCICERT9g3fF YULFqKNz6F/epgqr5mdJIh8/upyxVLtWGUfYbRCK/VCu95PPVKJPY4c6VsKfGmpqKBSt fln5qvXh9p+ilYo7R3rYscL4zn+fiFxs6ol9N82k4JbR0NeYyqMJ573O18CNCM+YGeoN xADdUH/x4BzN63KiLgP5XXLurHCsRxXwOPZEwIUXZeyVOQUewlaS2srVZxhuWXsz/28o ENV3xIu69pdHqngak3AEYJSHE07V/kUTq+c8mhLcDhI25noNGdNYh/sJLGE9WQeawOhQ WU7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LZDUAnqEXjRVZWh1a1xJ1KodfKynosGX+MGHfcnE+kU=; b=WBmwXf/RC9xNqrf9k4acC7LlMzzpTW7NXNKAmnMhm3DelYL+RVsJ0quJ+lGP7PKnjz 8rvgkxD/NTVDzasMftfCmwU38I73eLrygMnkCcURp6tICvTsKSFO8jO3t2oZz/vp1NHG PhJ82N7atedsKsdU0LAOzPbpdpqLFgQ38fUcXq6NfCFxZoZl+eHOhxekrS1EBEn29bcJ 8yDC5gjDyzdyox7G7BfX6pPI+iWCo5vAEi3kkuuV97brFDUaE7bs3R4mFoHhiDO2TfoJ bXdCI0ETfQi0gUn4LGLl6eMnc3Q5SBEqpyZqzHm36nr/oMvXjt9GCiW77w4QKprckPta Y6uQ== X-Gm-Message-State: AOAM533//6x/Q07evgTfSOi30LiyQgKivTN5cs3A+iqGFWrWZsMqrgqR kzOve/BJ2umrD1c5EvxatY14XWjCIN6+dpYoP+nheA== X-Received: by 2002:a5d:6e81:: with SMTP id k1mr2226740wrz.144.1624337362425; Mon, 21 Jun 2021 21:49:22 -0700 (PDT) MIME-Version: 1.0 References: <20210610052221.39958-1-anup.patel@wdc.com> In-Reply-To: <20210610052221.39958-1-anup.patel@wdc.com> From: Anup Patel Date: Tue, 22 Jun 2021 10:19:11 +0530 Message-ID: Subject: Re: [PATCH v7 0/8] RISC-V CPU Idle Support To: Anup Patel , Palmer Dabbelt , Palmer Dabbelt Cc: Paul Walmsley , Albert Ou , Daniel Lezcano , Ulf Hansson , "Rafael J . Wysocki" , Pavel Machek , Rob Herring , Sandeep Tripathy , Atish Patra , Alistair Francis , Liush , DTML , linux-riscv , "linux-kernel@vger.kernel.org List" , "open list:THERMAL" , linux-arm-kernel Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Palmer, On Thu, Jun 10, 2021 at 10:52 AM Anup Patel wrote: > > This series adds RISC-V CPU Idle support using SBI HSM suspend function. > The RISC-V SBI CPU idle driver added by this series is highly inspired > from the ARM PSCI CPU idle driver. > > At high-level, this series includes the following changes: > 1) Preparatory arch/riscv patches (Patches 1 to 3) > 2) Defines for RISC-V SBI HSM suspend (Patch 4) > 3) Preparatory patch to share code between RISC-V SBI CPU idle driver > and ARM PSCI CPU idle driver (Patch 5) > 4) RISC-V SBI CPU idle driver and related DT bindings (Patches 6 to 7) > > These patches can be found in riscv_sbi_hsm_suspend_v7 branch at > https://github.com/avpatel/linux > > Special thanks Sandeep Tripathy for providing early feeback on SBI HSM > support in all above projects (RISC-V SBI specification, OpenSBI, and > Linux RISC-V). > > Changes since v6: > - Fixed error reported by "make DT_CHECKER_FLAGS=-m dt_binding_check" > > Changes since v5: > - Rebased on Linux-5.13-rc5 > - Removed unnecessary exports from PATCH5 > - Removed stray ";" from PATCH5 > - Moved sbi_cpuidle_pd_power_off() under "#ifdef CONFIG_DT_IDLE_GENPD" > in PATCH6 > > Changes since v4: > - Rebased on Linux-5.13-rc2 > - Renamed all dt_idle_genpd functions to have "dt_idle_" prefix > - Added MAINTAINERS file entry for dt_idle_genpd > > Changes since v3: > - Rebased on Linux-5.13-rc2 > - Fixed __cpu_resume_enter() which was broken due to XIP kernel support > - Removed "struct dt_idle_genpd_ops" abstraction which simplifies code > sharing between ARM PSCI and RISC-V SBI drivers in PATCH5 > > Changes since v2: > - Rebased on Linux-5.12-rc3 > - Updated PATCH7 to add common DT bindings for both ARM and RISC-V > idle states > - Added "additionalProperties = false" for both idle-states node and > child nodes in PATCH7 > > Changes since v1: > - Fixex minor typo in PATCH1 > - Use just "idle-states" as DT node name for CPU idle states > - Added documentation for "cpu-idle-states" DT property in > devicetree/bindings/riscv/cpus.yaml > - Added documentation for "riscv,sbi-suspend-param" DT property in > devicetree/bindings/riscv/idle-states.yaml > > Anup Patel (8): > RISC-V: Enable CPU_IDLE drivers > RISC-V: Rename relocate() and make it global > RISC-V: Add arch functions for non-retentive suspend entry/exit > RISC-V: Add SBI HSM suspend related defines > cpuidle: Factor-out power domain related code from PSCI domain driver > cpuidle: Add RISC-V SBI CPU idle driver > dt-bindings: Add common bindings for ARM and RISC-V idle states > RISC-V: Enable RISC-V SBI CPU Idle driver for QEMU virt machine Can you please review this series ? It would be nice to consider this series for Linux-5.14. Regards, Anup > > .../bindings/arm/msm/qcom,idle-state.txt | 2 +- > .../devicetree/bindings/arm/psci.yaml | 2 +- > .../bindings/{arm => cpu}/idle-states.yaml | 228 ++++++- > .../devicetree/bindings/riscv/cpus.yaml | 6 + > MAINTAINERS | 14 + > arch/riscv/Kconfig | 7 + > arch/riscv/Kconfig.socs | 3 + > arch/riscv/configs/defconfig | 13 +- > arch/riscv/configs/rv32_defconfig | 6 +- > arch/riscv/include/asm/asm.h | 17 + > arch/riscv/include/asm/cpuidle.h | 24 + > arch/riscv/include/asm/sbi.h | 27 +- > arch/riscv/include/asm/suspend.h | 35 + > arch/riscv/kernel/Makefile | 2 + > arch/riscv/kernel/asm-offsets.c | 3 + > arch/riscv/kernel/cpu_ops_sbi.c | 2 +- > arch/riscv/kernel/head.S | 18 +- > arch/riscv/kernel/process.c | 3 +- > arch/riscv/kernel/suspend.c | 86 +++ > arch/riscv/kernel/suspend_entry.S | 123 ++++ > drivers/cpuidle/Kconfig | 9 + > drivers/cpuidle/Kconfig.arm | 1 + > drivers/cpuidle/Kconfig.riscv | 15 + > drivers/cpuidle/Makefile | 5 + > drivers/cpuidle/cpuidle-psci-domain.c | 138 +--- > drivers/cpuidle/cpuidle-psci.h | 15 +- > drivers/cpuidle/cpuidle-sbi.c | 626 ++++++++++++++++++ > drivers/cpuidle/dt_idle_genpd.c | 177 +++++ > drivers/cpuidle/dt_idle_genpd.h | 50 ++ > 29 files changed, 1472 insertions(+), 185 deletions(-) > rename Documentation/devicetree/bindings/{arm => cpu}/idle-states.yaml (74%) > create mode 100644 arch/riscv/include/asm/cpuidle.h > create mode 100644 arch/riscv/include/asm/suspend.h > create mode 100644 arch/riscv/kernel/suspend.c > create mode 100644 arch/riscv/kernel/suspend_entry.S > create mode 100644 drivers/cpuidle/Kconfig.riscv > create mode 100644 drivers/cpuidle/cpuidle-sbi.c > create mode 100644 drivers/cpuidle/dt_idle_genpd.c > create mode 100644 drivers/cpuidle/dt_idle_genpd.h > > -- > 2.25.1 >