Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp79482pxv; Wed, 7 Jul 2021 20:56:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwiSUmO8/oCdAVHUXav7wBox4/bGtfFEPF9C+cSu6jVm+zAnhUljqfrR87Y53TxgBruQOKJ X-Received: by 2002:a92:d08f:: with SMTP id h15mr21850607ilh.297.1625716603217; Wed, 07 Jul 2021 20:56:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625716603; cv=none; d=google.com; s=arc-20160816; b=FFUvAQ15dl8szwdsH+kQXnkY2BjamyM3cXdMhz6IyY9qtTjLOmVBBEYgBkdXGmjXuD fGPUtjybV20Q6T4HrX77xV5lCJ5RS6YuE367YHsdwWppARq+B7BkeiFnQQ2juG6z7fVN aHlsuNln48b1mEV7PTDFrtgUqW+6kcVjEuZqTfUWidFukjYayvxP7GBy2bqBp1dn0pOk IecXpwuChQctUMx9fHX0L5t3tQcy1W0WAJ3kr0nDAEyuUOk+5wJh5zNdChGbyr4+dPXE XQI+Avp01EU3iSYeyp6mcpo3FRbCDF3yJvEIwx9oLUFCb9R3niVq0gh3hpv2riQaWP6n wWyQ== 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=ZWa3MSZDHv15RjZ0z5EeC98vQiHtGeO/uXKzI8GzBFw=; b=ZdWvZcAQ3p5zTn9cMkYrLFKVrdMKSG+I2y8+gXahg2lzWw746Pvnggv3GSUjhvA3g2 CSs3Jae+Yz7/7UHU9oWfDe1/HpUGAThckmLCr8CDwZUen9kAK6M4cQRqdsThaYkRRfWk p1ar5HqvYifM8X7gl5f+G7z3iqtBr4aug7YcGE84PwkdA0pjZ7XQjHL62zScQaO5bygK Q3TWKWQQom0rFsB2PX6ylpFQ7GKgIK/TI1OUebPnvj/o7zI4ZxfoisKC68yky+XEE/6P pwAsmp+twZPBL43SzoWEC2lRx3x94e6d2ZLcDIAVkmT+pbagHxgCIooSAD0WXpuYRHB8 w5AA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@brainfault-org.20150623.gappssmtp.com header.s=20150623 header.b=XTCFr717; 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 g9si997312ilb.126.2021.07.07.20.56.31; Wed, 07 Jul 2021 20:56:43 -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=XTCFr717; 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 S230416AbhGHD4o (ORCPT + 99 others); Wed, 7 Jul 2021 23:56:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230417AbhGHD4o (ORCPT ); Wed, 7 Jul 2021 23:56:44 -0400 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D2FFC06175F for ; Wed, 7 Jul 2021 20:54:02 -0700 (PDT) Received: by mail-wm1-x330.google.com with SMTP id u8-20020a7bcb080000b02901e44e9caa2aso3032568wmj.4 for ; Wed, 07 Jul 2021 20:54:02 -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=ZWa3MSZDHv15RjZ0z5EeC98vQiHtGeO/uXKzI8GzBFw=; b=XTCFr7170JgT/QHOQKK4OIXt9x5YcaLpXvKfdNAjUQNxxHB4+We8I/BYK5sweWKUdx Khde29SVANgVGQ07/jlLHi3Ly55pBIp8Ua3RStYF8B1eijhyS191g1LYWDJQ/q36y1CM Wes7FduTI10HEzdpBC2LDQpPCXfEcdbbUquQiuQ/8ElzBvkZP/4kiAXg2NAowGpEU46V eWawf+2L92tBhiinHxhQDUhPvQyGpuA/OR2mlD1+GBPqpY9lI9GParrCwTjfEnN1A50h r/bIRHfzvU9DpzKoEw0USBUyKhBe3k1N3As3CrGHEGCIiEqjXJJjf2MwSyx0mDfwRFZ4 QGGw== 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=ZWa3MSZDHv15RjZ0z5EeC98vQiHtGeO/uXKzI8GzBFw=; b=gZcCRyF5z9MJM6WKUlAlzWRy9Z31xuviOnTuCyR30NAXR0wLU0IX0RsmScsCFcSs+/ VQOGB6IOjj53pa5sjoOJZXQZmqiWUPVa9UhWXEUYXm1/Ined9//KpaRwEA2t7fbPHT3g PgEHLKFa7akCA/z53YOX91J4MCgzat4X/AiLwAwhJTdz5P46Lej7JpPADT2JbNLzuke6 e/Bx3FxFbSYYEkNY6KK3Zjjdoy/hNTm8z4kDTEAHX/TfwdMi5lgKq+gXuttiY/fyMqdt +Ipg3qjGs7at/Z9A4pEmc216fZrGAw1mKqnPAvH9jsYgBZNa/1arTLBjJ5v8QOtxq9X8 nzOQ== X-Gm-Message-State: AOAM531kihzDMIiK05QZLm6ExrWeQ+QLULBzlSwypRSL0qcpeMJkHMLj e5fdqVe1q2kwHoX3au3a0zYqMwjo5eSui24BLzBwJQ== X-Received: by 2002:a05:600c:3399:: with SMTP id o25mr30069191wmp.3.1625716440637; Wed, 07 Jul 2021 20:54:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Anup Patel Date: Wed, 7 Jul 2021 21:21:47 +0530 Message-ID: Subject: Re: [PATCH v7 0/8] RISC-V CPU Idle Support To: Palmer Dabbelt Cc: Anup Patel , 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 On Wed, Jul 7, 2021 at 2:29 AM Palmer Dabbelt wrote: > > On Mon, 21 Jun 2021 21:49:11 PDT (-0700), anup@brainfault.org wrote: > > 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. > > I'd assumed this one was part of the 0.3.0 freeze. Yes, SBI HSM suspend call is part of SBI v0.3.0 release. (Refer, https://github.com/riscv/riscv-sbi-doc/releases/tag/v0.3.0) Regards, Anup > > > > > 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 > >>