Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1923802pxk; Sun, 13 Sep 2020 22:50:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyXRFXPdPPP49LfyIrH39jfd9YU/8drZQjmk8kCLyPr6pvkf8z+I+3VTDsJp+qXxJvg/hOr X-Received: by 2002:aa7:c419:: with SMTP id j25mr15748035edq.109.1600062607800; Sun, 13 Sep 2020 22:50:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600062607; cv=none; d=google.com; s=arc-20160816; b=BUarmVZLUA411+DvvRz9ROdm+3qHYgRcvj0wGLyglv1Ny4tSb/ZMuPv2MRkAI8NHbf jefNyN9y/8lqZc08d4jFhLtcifvcUoMaLBBjWmSmPrE0HudI9VtjT+o0IB39XcMPU0eG RHs18k3Jk1K2BVdOjegNDG4OLIm0VzNd/9pniwzijw28fMEbZFLRAkJMhHDCKUfalN6G YRffX+rYLHlODVug5SVf6iPlfGBvRu1wJXN8WHdNOQrK8iRU7LMapyove9EGm2yXMO0Q ZtQMsMxvlAp+Z73G29WaAbhXnd4deIINRSpWcrqV5KAnUUXgVJkKjrlbIuMw5f4az/1K AiNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=sDD9xbXrOHoErjZLRR+/+AtDLaCnVmHRrkVezZM912Y=; b=VBTxx3ZPm5sJNue0CnrhKJHBHQLKQMRNtGudesVIGpz0M/p3bLzyUByAZ5nK+GsQwi v9cMVf8r0VPK9o1C5rBJ39+Aal34kUe/fN464o8Am/GJhjVz+DKDP3VrcQm8N0AzCMJ1 QcjhmGMzSiR/+9NaXisrHNU6YKc4qvLj0NNpf7vHW8v32azN64Hl5NdgD7527WFkTFT6 jTzDJek3qE2CObN+ayTD3dWeSsmJFU3cXDfgxKUdzTq5iylq5954d0ytX77VDqV2gbwh M0d7RqaCDeFR5HxzacEIB6wx0MiB6dQsJbCxb2YxzyhTFmxXnl/LLfGh0ptE64LBaS1l oYnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=eY+okMC8; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u21si6510631eja.78.2020.09.13.22.49.45; Sun, 13 Sep 2020 22:50:07 -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=@linaro.org header.s=google header.b=eY+okMC8; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726056AbgINFql (ORCPT + 99 others); Mon, 14 Sep 2020 01:46:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726035AbgINFqh (ORCPT ); Mon, 14 Sep 2020 01:46:37 -0400 Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83BF9C06174A for ; Sun, 13 Sep 2020 22:46:53 -0700 (PDT) Received: by mail-wm1-x343.google.com with SMTP id q9so9381418wmj.2 for ; Sun, 13 Sep 2020 22:46:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=sDD9xbXrOHoErjZLRR+/+AtDLaCnVmHRrkVezZM912Y=; b=eY+okMC8xfBiRH3cE/90LzCYt3zAjKBnNwVqBIqPfCCKGfS4LiZkI1tz5tVuAKD9Bt gHHBuuvOIghEFOViq4ZTL21bCZXni8/Zlat4xIzctM+SS4EZdWsHZhBzUfXknGocvPSZ mn+q3/tooHeVkXczfc+2yfawVsDQCwVVlOXbeB0gLAozyKoOoX7PO0KpkOk0jzw0OKiz 3VTlXVTjQia8VZeLobuuTUCrBFsjKu2CQdjs7vPq06bmvTkCRG7NOvMKj6xW/SGdOY9S MQSRrUXP4HCb/O+HyjwfRdOpOfcCETks981G/J9Y+KeI7juc5WC4LpooQ2Fz/esbZE+4 Vf8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=sDD9xbXrOHoErjZLRR+/+AtDLaCnVmHRrkVezZM912Y=; b=XsAeFZ+6oazElhSs1MZSLsW8xX5w716ztFrormEMAfrlXjH9K3XuxI7VTmz9dA0cyu 8/C7aak91TMQXkd6wPvL1IE6NAzK1dc4Owz7LxugoJtQt0DL+lIAphEVfsy48by+eT/l MPqWMd1Qi53r1XLJFhSvcPOeJXy+/MrqNAGD1v0FSUhAZdTUJfeB0V6LaiLA3usqA4Od xPcEerE7yJjP9q1p47HYbu3ojVY3FxukGlYF8h386vgGYV199YOfx5bhD3x2qxrAe03f lwh2DajPG4FaE6TEQJma6rMQcTCqXNPEhtqqcyLHhPmsK+0qHaG4+dP4kr1U5FpvTZvq pIjw== X-Gm-Message-State: AOAM530uXzjPG38v7snWR2OOhsXvMyNwgDxEN0g6p5uCM5P5pFcnSJ/O eHLtpGeLV0yHTsKOPT0wTXdxJg== X-Received: by 2002:a05:600c:22c5:: with SMTP id 5mr13272418wmg.34.1600062412115; Sun, 13 Sep 2020 22:46:52 -0700 (PDT) Received: from ?IPv6:2a01:e34:ed2f:f020:a402:e7fb:d494:d130? ([2a01:e34:ed2f:f020:a402:e7fb:d494:d130]) by smtp.googlemail.com with ESMTPSA id h204sm17849917wmf.35.2020.09.13.22.46.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 13 Sep 2020 22:46:51 -0700 (PDT) Subject: Re: [PATCH] cpuidle: add riscv cpuidle driver To: liush , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, rjw@rjwysocki.net, anup.patel@wdc.com, atish.patra@wdc.com, damien.lemoal@wdc.com, wangkefeng.wang@huawei.com, kernel@esmil.dk, zong.li@sifive.com Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org References: <1600048323-2964-1-git-send-email-liush@allwinnertech.com> From: Daniel Lezcano Message-ID: <80bc85f5-fba3-5f08-4d73-372b5f495833@linaro.org> Date: Mon, 14 Sep 2020 07:46:50 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <1600048323-2964-1-git-send-email-liush@allwinnertech.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 14/09/2020 03:52, liush wrote: > This patch adds a cpuidle driver for systems based RISCV architecture. > This patch supports state WFI. Other states will be supported in the > future. > > Signed-off-by: liush > --- [ ... ] > > obj-$(CONFIG_RISCV_M_MODE) += traps_misaligned.o > diff --git a/arch/riscv/kernel/cpuidle.c b/arch/riscv/kernel/cpuidle.c > new file mode 100644 > index 00000000..a3289e7 > --- /dev/null > +++ b/arch/riscv/kernel/cpuidle.c > @@ -0,0 +1,8 @@ > +// SPDX-License-Identifier: GPL-2.0 > +#include > + > +void cpu_do_idle(void) > +{ > + __asm__ __volatile__ ("wfi"); > + extra line > +} As for the next deeper states should end up with the cpu_do_idle function, isn't there an extra operation with the wfi() like flushing the l1 cache? > diff --git a/drivers/cpuidle/Kconfig b/drivers/cpuidle/Kconfig > index c0aeedd..f6be0fd 100644 > --- a/drivers/cpuidle/Kconfig > +++ b/drivers/cpuidle/Kconfig > @@ -62,6 +62,11 @@ depends on PPC > source "drivers/cpuidle/Kconfig.powerpc" > endmenu > > +menu "RISCV CPU Idle Drivers" > +depends on RISCV > +source "drivers/cpuidle/Kconfig.riscv" > +endmenu > + > config HALTPOLL_CPUIDLE > tristate "Halt poll cpuidle driver" > depends on X86 && KVM_GUEST > diff --git a/drivers/cpuidle/Kconfig.riscv b/drivers/cpuidle/Kconfig.riscv > new file mode 100644 > index 00000000..e86d36b > --- /dev/null > +++ b/drivers/cpuidle/Kconfig.riscv > @@ -0,0 +1,11 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +# > +# RISCV CPU Idle drivers > +# > +config RISCV_CPUIDLE > + bool "Generic RISCV CPU idle Driver" > + select DT_IDLE_STATES > + select CPU_IDLE_MULTIPLE_DRIVERS > + help > + Select this option to enable generic cpuidle driver for RISCV. > + Now only support C0 State. Identation Rest looks ok for me. -- Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog