Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1179756 > unrolled thread
| Started by | Jisheng Zhang <jszhang@marvell.com> |
|---|---|
| First post | 2015-07-08 15:00 +0200 |
| Last post | 2015-07-08 15:00 +0200 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH v2 0/2] arm: kernel: implement cpuidle_ops with psci backend Jisheng Zhang <jszhang@marvell.com> - 2015-07-08 15:00 +0200
[PATCH v2 2/2] arm: kernel: implement cpuidle_ops with psci backend Jisheng Zhang <jszhang@marvell.com> - 2015-07-08 15:00 +0200
| From | Jisheng Zhang <jszhang@marvell.com> |
|---|---|
| Date | 2015-07-08 15:00 +0200 |
| Subject | [PATCH v2 0/2] arm: kernel: implement cpuidle_ops with psci backend |
| Message-ID | <pJX7c-2OK-3@gated-at.bofh.it> |
We'd like to use cpuidle-arm.c for both arm and arm64 with psci as backend. For arm64, it works. But for arm, we miss cpuidle_ops, these patches try to address this issue. Has been tested on Marvell Berlin SoCs. These patches are rebased on the Mark Rutland's latest psci unification work and Lorenzo Pieralisi's psci related work[1]. [PATCH 1/2] move psci's cpu_suspend handling to generic code as suggested by Lorenzo. [PATCH 2/2] implement cpuidle_ops with psci finally. Since v1: - add a new file psci_cpuidle.c to implment cpuidle_ops [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/347352.html Jisheng Zhang (2): firmware: psci: move cpu_suspend handling to generic code arm: kernel: implement cpuidle_ops with psci backend arch/arm/kernel/Makefile | 1 + arch/arm/kernel/psci_cpuidle.c | 29 +++++++++++++ arch/arm64/kernel/psci.c | 95 ------------------------------------------ drivers/firmware/psci.c | 95 ++++++++++++++++++++++++++++++++++++++++++ include/linux/psci.h | 2 + 5 files changed, 127 insertions(+), 95 deletions(-) create mode 100644 arch/arm/kernel/psci_cpuidle.c -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Jisheng Zhang <jszhang@marvell.com> |
|---|---|
| Date | 2015-07-08 15:00 +0200 |
| Subject | [PATCH v2 2/2] arm: kernel: implement cpuidle_ops with psci backend |
| Message-ID | <pJX7d-2OK-39@gated-at.bofh.it> |
| In reply to | #1179756 |
This patch implements cpuidle_ops using psci. After this patch, we can
use cpuidle-arm.c with psci backend for both arm and arm64.
Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
---
arch/arm/kernel/Makefile | 1 +
arch/arm/kernel/psci_cpuidle.c | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+)
create mode 100644 arch/arm/kernel/psci_cpuidle.c
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 3b995f5..96383d8 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -91,6 +91,7 @@ obj-$(CONFIG_ARM_VIRT_EXT) += hyp-stub.o
ifeq ($(CONFIG_ARM_PSCI),y)
obj-y += psci-call.o
obj-$(CONFIG_SMP) += psci_smp.o
+obj-$(CONFIG_CPU_IDLE) += psci_cpuidle.o
endif
extra-y := $(head-y) vmlinux.lds
diff --git a/arch/arm/kernel/psci_cpuidle.c b/arch/arm/kernel/psci_cpuidle.c
new file mode 100644
index 0000000..ae85d97
--- /dev/null
+++ b/arch/arm/kernel/psci_cpuidle.c
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2015 Marvell Technology Group Ltd.
+ * Author: Jisheng Zhang <jszhang@marvell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/cpuidle.h>
+#include <linux/psci.h>
+
+#include <asm/cpuidle.h>
+
+static int psci_cpuidle_suspend(int cpu, unsigned long arg)
+{
+ return cpu_psci_cpu_suspend(arg);
+}
+
+static int psci_cpuidle_init(struct device_node *node, int cpu)
+{
+ return cpu_psci_cpu_init_idle(cpu);
+}
+
+static struct cpuidle_ops psci_cpuidle_ops __initdata = {
+ .suspend = psci_cpuidle_suspend,
+ .init = psci_cpuidle_init,
+};
+CPUIDLE_METHOD_OF_DECLARE(psci_cpuidle, "psci", &psci_cpuidle_ops);
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web