lkml.org 
[lkml]   [2019]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 04/12] riscv: cleanup the default power off implementation
    On Mon, 28 Oct 2019, Christoph Hellwig wrote:

    > Move the sbi poweroff to a separate function and file that is only
    > compiled if CONFIG_SBI is set. Provide a new default fallback
    > power off that just sits in a wfi loop to save some power.
    >
    > Signed-off-by: Christoph Hellwig <hch@lst.de>
    > Reviewed-by: Anup Patel <anup@brainfault.org>
    > Reviewed-by: Atish Patra <atish.patra@wdc.com>

    And here's the other part of this patch, queued for v5.5-rc1.


    - Paul


    From: Christoph Hellwig <hch@lst.de>
    Date: Mon, 28 Oct 2019 13:10:35 +0100
    Subject: [PATCH] riscv: cleanup the default power off implementation

    Move the sbi poweroff to a separate function and file that is only
    compiled if CONFIG_SBI is set.

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Anup Patel <anup@brainfault.org>
    Reviewed-by: Atish Patra <atish.patra@wdc.com>
    [paul.walmsley@sifive.com: split the WFI fix into a separate patch]
    Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
    ---
    arch/riscv/kernel/Makefile | 1 +
    arch/riscv/kernel/reset.c | 2 --
    arch/riscv/kernel/sbi.c | 17 +++++++++++++++++
    3 files changed, 18 insertions(+), 2 deletions(-)
    create mode 100644 arch/riscv/kernel/sbi.c

    diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile
    index 696020ff72db..d8c35fa93cc6 100644
    --- a/arch/riscv/kernel/Makefile
    +++ b/arch/riscv/kernel/Makefile
    @@ -41,5 +41,6 @@ obj-$(CONFIG_DYNAMIC_FTRACE) += mcount-dyn.o
    obj-$(CONFIG_PERF_EVENTS) += perf_event.o
    obj-$(CONFIG_PERF_EVENTS) += perf_callchain.o
    obj-$(CONFIG_HAVE_PERF_REGS) += perf_regs.o
    +obj-$(CONFIG_RISCV_SBI) += sbi.o

    clean:
    diff --git a/arch/riscv/kernel/reset.c b/arch/riscv/kernel/reset.c
    index 485be426d9b1..ee5878d968cc 100644
    --- a/arch/riscv/kernel/reset.c
    +++ b/arch/riscv/kernel/reset.c
    @@ -5,11 +5,9 @@

    #include <linux/reboot.h>
    #include <linux/pm.h>
    -#include <asm/sbi.h>

    static void default_power_off(void)
    {
    - sbi_shutdown();
    while (1)
    wait_for_interrupt();
    }
    diff --git a/arch/riscv/kernel/sbi.c b/arch/riscv/kernel/sbi.c
    new file mode 100644
    index 000000000000..f6c7c3e82d28
    --- /dev/null
    +++ b/arch/riscv/kernel/sbi.c
    @@ -0,0 +1,17 @@
    +// SPDX-License-Identifier: GPL-2.0-only
    +
    +#include <linux/init.h>
    +#include <linux/pm.h>
    +#include <asm/sbi.h>
    +
    +static void sbi_power_off(void)
    +{
    + sbi_shutdown();
    +}
    +
    +static int __init sbi_init(void)
    +{
    + pm_power_off = sbi_power_off;
    + return 0;
    +}
    +early_initcall(sbi_init);
    --
    2.24.0.rc0
    \
     
     \ /
      Last update: 2019-11-01 00:56    [W:3.406 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site