To use acpi_cpufreq in both x86 and arm64, change the CONFIG_'s name
and location.
Signed-off-by: Jonghwan Choi <jhbird.choi(a)samsung.com>
---
drivers/cpufreq/Kconfig | 16 ++++++++++++++++
drivers/cpufreq/Kconfig.x86 | 26 +++++---------------------
drivers/cpufreq/Makefile | 2 +-
3 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig
index cb5b936..cbc7925 100644
--- a/drivers/cpufreq/Kconfig
+++ b/drivers/cpufreq/Kconfig
@@ -232,6 +232,22 @@ depends on ARM || ARM64
source "drivers/cpufreq/Kconfig.arm"
endmenu
+config ACPI_CPUFREQ
+ tristate "ACPI Processor P-States driver"
+ depends on ACPI_PROCESSOR
+ help
+ This driver adds a CPUFreq driver which utilizes the ACPI
+ Processor Performance States.
+ This driver also supports Intel Enhanced Speedstep and newer
+ AMD CPUs.
+
+ To compile this driver as a module, choose M here: the
+ module will be called acpi-cpufreq.
+
+ For details, take a look at <file:Documentation/cpu-freq/>.
+
+ If in doubt, say N.
+
menu "AVR32 CPU frequency scaling drivers"
depends on AVR32
diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
index d369349..fc3a3d7 100644
--- a/drivers/cpufreq/Kconfig.x86
+++ b/drivers/cpufreq/Kconfig.x86
@@ -29,26 +29,10 @@ config X86_PCC_CPUFREQ
If in doubt, say N.
-config X86_ACPI_CPUFREQ
- tristate "ACPI Processor P-States driver"
- depends on ACPI_PROCESSOR
- help
- This driver adds a CPUFreq driver which utilizes the ACPI
- Processor Performance States.
- This driver also supports Intel Enhanced Speedstep and newer
- AMD CPUs.
-
- To compile this driver as a module, choose M here: the
- module will be called acpi-cpufreq.
-
- For details, take a look at <file:Documentation/cpu-freq/>.
-
- If in doubt, say N.
-
config X86_ACPI_CPUFREQ_CPB
default y
bool "Legacy cpb sysfs knob support for AMD CPUs"
- depends on X86_ACPI_CPUFREQ && CPU_SUP_AMD
+ depends on ACPI_CPUFREQ && CPU_SUP_AMD
help
The powernow-k8 driver used to provide a sysfs knob called "cpb"
to disable the Core Performance Boosting feature of AMD CPUs. This
@@ -113,7 +97,7 @@ config X86_POWERNOW_K7_ACPI
config X86_POWERNOW_K8
tristate "AMD Opteron/Athlon64 PowerNow!"
- depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
+ depends on ACPI && ACPI_PROCESSOR && ACPI_CPUFREQ
help
This adds the CPUFreq driver for K8/early Opteron/Athlon64
processors.
Support for K10 and newer processors is now in acpi-cpufreq.
@@ -125,7 +109,7 @@ config X86_POWERNOW_K8
config X86_AMD_FREQ_SENSITIVITY
tristate "AMD frequency sensitivity feedback powersave bias"
- depends on CPU_FREQ_GOV_ONDEMAND && X86_ACPI_CPUFREQ && CPU_SUP_AMD
+ depends on CPU_FREQ_GOV_ONDEMAND && ACPI_CPUFREQ && CPU_SUP_AMD
help
This adds AMD-specific powersave bias function to the ondemand
governor, which allows it to make more power-conscious frequency
@@ -157,7 +141,7 @@ config X86_SPEEDSTEP_CENTRINO
depends on X86_32 || (X86_64 && ACPI_PROCESSOR)
help
This is deprecated and this functionality is now merged into
- acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
+ acpi_cpufreq (ACPI_CPUFREQ). Use that driver instead of
speedstep_centrino.
This adds the CPUFreq driver for Enhanced SpeedStep enabled
mobile CPUs. This means Intel Pentium M (Centrino) CPUs
@@ -265,7 +249,7 @@ config X86_E_POWERSAVER
This adds the CPUFreq driver for VIA C7 processors. However, this
driver
does not have any safeguards to prevent operating the CPU out of
spec
and is thus considered dangerous. Please use the regular ACPI
cpufreq
- driver, enabled by CONFIG_X86_ACPI_CPUFREQ.
+ driver, enabled by CONFIG_ACPI_CPUFREQ.
If in doubt, say N.
diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
index 54a05c9..bfeb0fb 100644
--- a/drivers/cpufreq/Makefile
+++ b/drivers/cpufreq/Makefile
@@ -13,6 +13,7 @@ obj-$(CONFIG_CPU_FREQ_GOV_INTERACTIVE) +=
cpufreq_interactive.o
obj-$(CONFIG_CPU_FREQ_GOV_COMMON) += cpufreq_governor.o
obj-$(CONFIG_GENERIC_CPUFREQ_CPU0) += cpufreq-cpu0.o
+obj-$(CONFIG_ACPI_CPUFREQ) += acpi-cpufreq.o
############################################################################
######
# x86 drivers.
@@ -21,7 +22,6 @@ obj-$(CONFIG_GENERIC_CPUFREQ_CPU0) += cpufreq-cpu0.o
# powernow-k8 can load then. ACPI is preferred to all other
hardware-specific drivers.
# speedstep-* is preferred over p4-clockmod.
-obj-$(CONFIG_X86_ACPI_CPUFREQ) += acpi-cpufreq.o
obj-$(CONFIG_X86_POWERNOW_K8) += powernow-k8.o
obj-$(CONFIG_X86_PCC_CPUFREQ) += pcc-cpufreq.o
obj-$(CONFIG_X86_POWERNOW_K6) += powernow-k6.o
--
1.7.10.4
Hi all,
I would like to support acpi cpufreq & cpuidle for ARM.
For supporting that, I tried to implement acpi cpufreq & cpuidle for ARM
with ACPI.
This patch is based on http://git.linaro.org/leg/acpi/leg-kernel.git.
[CPUFREQ]
I tried to separate this code into 3 parts which are common, x86-specific
and arm-specific code.
But as you know, there are too much x86-specific code in acpi-cpufreq.c
When I tried to implement acpi-cpufreq-arm, there were a lot of compile
error(due to x86-specific code).
So I used #ifdef CONFIG_X86 to solve those errors.(and some hack codes)
Later I will remove "#ifdef CONFIG_X86".
And, if "ARM64 / ACPI: Introduce arch_register/unregister_cpu() for arm64"
is merged,
Then I can remove #ifdef for arch_un/register_cpu.
[CPUIDLE]
As Sudeep mentioned, I tried to use FFH.
So I made cstate.c file in arm/arm64/kernel.(based on
arch/x86/kernel/acpi/cstate.c)
But I am not sure whether I implemented it properly.
Jonghwan Choi (7):
ACPI-Fix-compile-error-in-arch-x86-kernel-setup.c.patch
cpufreq-Change-CONFIG_-name-from-X86_ACPI_CPUFREQ-to.patch
acpi-Use-Hacks-to-allow-compilation-on-arm-environme.patch
arm64-Change-struct-cpuinfo_arm.patch
cpufreq-Add-ACPI-cpufreq-support-for-ARM.patch
acpi-Add-ACPI-cpuidle-support-for-ARM.patch
acpi-Allow-ACPI_PROCESSOR-for-ARM64.patch
Thanks
Best Regards
This patchset introduces some functions as defined in the PSCI v0.2 spec
and a corresponding DT binding to differentiate it from previous PSCI versions.
Since PSCIv0.2 has standard function IDs, it is possible to statically assign them
rather than depend on values from DT.
This patchset depends on the PSCI header (/uapi/linux/psci.h) introduced by
http://www.spinics.net/lists/arm-kernel/msg319712.html
Changes in v8:
- Replace msleep(100) with 10 x msleep(10)
Changes in v7:
- Add two new functions: SYSTEM_OFF and SYSTEM_RESET as defined in PSCIv0.2.
- Added a delay before calling cpu_kill to avoid race with cpu_die.
Changes in v6:
- rebase on top of uapi/linux/psci.h introduced by Anups patch
http://www.spinics.net/lists/arm-kernel/msg319712.html
- rebase on top of Catalins tree tip.
Changes in v5:
- Add uapi/linux/psci.h to kbuild
- ret with err if PSCI_ID_VERSION is not implemented.
Changes in v4:
- Correct copyright banner format.
- Check if PSCI Version ID is supported.
- Add all PSCI RET codes in uapi header.
- Explicitely ret 1 from psci_cpu_kill()
Changes in v3:
- Roll up common functionality for getting conduit method.
- Remove #defines for ARM32 and ARM64 in uapi/linux/psci.h
- Remove functions not supported by PSCI v0.1
- Misc cleanups.
- Add PSCI_AFFINITY_INFO return types in uapi header.
- Changed function names for PSCI v0.1 and PSCI v0.2
- Added copyright info to uapi header.
- Fixed args to affinity_info call.
- Fix typo in psci_init definition when PSCI is not defined.
Changes in v2:
- Add AFFINITY_INFO and MIGRATE_INFO_TYPE functions.
- Add binding Documentation.
- Add function to get PSCI version.
- Add common #defines in uapi/linux/psci.h
- Implement cpu_kill and check if CPU is dead via AFFINITY_INFO.
- Misc cleanups.
Changes in v1:
- Add new binding "arm, psci-0.2"
- Separate conduit and PSCI function assignment methods.
Ashwin Chaugule (3):
PSCI: Add initial support for PSCIv0.2 functions
Documentation: devicetree: Add new binding for PSCIv0.2
ARM: Check if a CPU has gone offline
Documentation/devicetree/bindings/arm/psci.txt | 35 ++++-
arch/arm/include/asm/psci.h | 7 +-
arch/arm/kernel/psci.c | 196 +++++++++++++++++++-----
arch/arm/kernel/psci_smp.c | 32 ++++
arch/arm64/include/asm/psci.h | 2 +-
arch/arm64/kernel/psci.c | 200 ++++++++++++++++++++-----
include/uapi/linux/psci.h | 5 +
7 files changed, 399 insertions(+), 78 deletions(-)
--
1.8.3.2
This patchset introduces some functions as defined in the PSCI v0.2 spec
and a corresponding DT binding to differentiate it from previous PSCI versions.
Since PSCIv0.2 has standard function IDs, it is possible to statically assign them
rather than depend on values from DT.
This patchset depends on the PSCI header (/uapi/linux/psci.h) introduced by
http://www.spinics.net/lists/arm-kernel/msg319712.html
Changes in v7:
- Add two new functions: SYSTEM_OFF and SYSTEM_RESET as defined in PSCIv0.2.
- Added a delay before calling cpu_kill to avoid race with cpu_die.
Changes in v6:
- rebase on top of uapi/linux/psci.h introduced by Anups patch
http://www.spinics.net/lists/arm-kernel/msg319712.html
- rebase on top of Catalins tree tip.
Changes in v5:
- Add uapi/linux/psci.h to kbuild
- ret with err if PSCI_ID_VERSION is not implemented.
Changes in v4:
- Correct copyright banner format.
- Check if PSCI Version ID is supported.
- Add all PSCI RET codes in uapi header.
- Explicitely ret 1 from psci_cpu_kill()
Changes in v3:
- Roll up common functionality for getting conduit method.
- Remove #defines for ARM32 and ARM64 in uapi/linux/psci.h
- Remove functions not supported by PSCI v0.1
- Misc cleanups.
- Add PSCI_AFFINITY_INFO return types in uapi header.
- Changed function names for PSCI v0.1 and PSCI v0.2
- Added copyright info to uapi header.
- Fixed args to affinity_info call.
- Fix typo in psci_init definition when PSCI is not defined.
Changes in v2:
- Add AFFINITY_INFO and MIGRATE_INFO_TYPE functions.
- Add binding Documentation.
- Add function to get PSCI version.
- Add common #defines in uapi/linux/psci.h
- Implement cpu_kill and check if CPU is dead via AFFINITY_INFO.
- Misc cleanups.
Changes in v1:
- Add new binding "arm, psci-0.2"
- Separate conduit and PSCI function assignment methods.
*** BLURB HERE ***
Ashwin Chaugule (3):
PSCI: Add initial support for PSCIv0.2 functions
Documentation: devicetree: Add new binding for PSCIv0.2
ARM: Check if a CPU has gone offline
Documentation/devicetree/bindings/arm/psci.txt | 35 ++++-
arch/arm/include/asm/psci.h | 7 +-
arch/arm/kernel/psci.c | 196 +++++++++++++++++++-----
arch/arm/kernel/psci_smp.c | 32 ++++
arch/arm64/include/asm/psci.h | 2 +-
arch/arm64/kernel/psci.c | 200 ++++++++++++++++++++-----
include/uapi/linux/psci.h | 5 +
7 files changed, 399 insertions(+), 78 deletions(-)
--
1.8.3.2
This patchset introduces some functions as defined in the PSCI v0.2 spec
and a corresponding DT binding to differentiate it from previous PSCI versions.
Since PSCIv0.2 has standard function IDs, it is possible to statically assign them
rather than depend on values from DT.
This patchset depends on the PSCI header (/uapi/linux/psci.h) introduced by
http://www.spinics.net/lists/arm-kernel/msg319712.html
Changes in v6:
- rebase on top of uapi/linux/psci.h introduced by Anups patch
http://www.spinics.net/lists/arm-kernel/msg319712.html
- rebase on top of Catalins tree tip.
Changes in v5:
- Add uapi/linux/psci.h to kbuild
- ret with err if PSCI_ID_VERSION is not implemented.
Changes in v4:
- Correct copyright banner format.
- Check if PSCI Version ID is supported.
- Add all PSCI RET codes in uapi header.
- Explicitely ret 1 from psci_cpu_kill()
Changes in v3:
- Roll up common functionality for getting conduit method.
- Remove #defines for ARM32 and ARM64 in uapi/linux/psci.h
- Remove functions not supported by PSCI v0.1
- Misc cleanups.
- Add PSCI_AFFINITY_INFO return types in uapi header.
- Changed function names for PSCI v0.1 and PSCI v0.2
- Added copyright info to uapi header.
- Fixed args to affinity_info call.
- Fix typo in psci_init definition when PSCI is not defined.
Changes in v2:
- Add AFFINITY_INFO and MIGRATE_INFO_TYPE functions.
- Add binding Documentation.
- Add function to get PSCI version.
- Add common #defines in uapi/linux/psci.h
- Implement cpu_kill and check if CPU is dead via AFFINITY_INFO.
- Misc cleanups.
Changes in v1:
- Add new binding "arm, psci-0.2"
- Separate conduit and PSCI function assignment methods.
Ashwin Chaugule (3):
PSCI: Add initial support for PSCIv0.2 functions
Documentation: devicetree: Add new binding for PSCIv0.2
ARM: Check if a CPU has gone offline
Documentation/devicetree/bindings/arm/psci.txt | 35 ++++-
arch/arm/include/asm/psci.h | 7 +-
arch/arm/kernel/psci.c | 179 +++++++++++++++++++-----
arch/arm/kernel/psci_smp.c | 21 +++
arch/arm64/include/asm/psci.h | 2 +-
arch/arm64/kernel/psci.c | 183 ++++++++++++++++++++-----
include/uapi/linux/psci.h | 5 +
7 files changed, 354 insertions(+), 78 deletions(-)
--
1.8.3.2
The UEFI Forum included the ACPI spec in its portfolio in October 2013
and will host future spec iterations, following the ACPI v5.0a release.
A UEFI Forum working group named ACPI Specification Working Group (ASWG)
has been established to handle future ACPI developments, any UEFI member
can join the group and contribute to ACPI specification.
So update the ownership and developers for ACPI in Kconfig accordingly,
and add another website link to ACPI specification too.
Signed-off-by: Hanjun Guo <hanjun.guo(a)linaro.org>
---
drivers/acpi/Kconfig | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index c205653..ab686b3 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -31,10 +31,14 @@ menuconfig ACPI
ACPI CA, see:
<http://acpica.org/>
- ACPI is an open industry specification co-developed by
- Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba.
+ ACPI is an open industry specification originally co-developed by
+ Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
+ it is developed by the ACPI Specification Working Group (ASWG) under
+ the UEFI Forum and any UEFI member can join the ASWG and contribute
+ to the ACPI specification.
The specification is available at:
<http://www.acpi.info>
+ <http://www.uefi.org/acpi/specs>
if ACPI
--
1.7.9.5
The UEFI Forum included the ACPI spec in its portfolio in October 2013
and will host future spec iterations, following the ACPI v5.0a release.
A UEFI Forum working group named ACPI Specification Working Group (ASWG)
has been established to handle future ACPI developments, any UEFI member
can join the group and contribute to ACPI specification.
So update the ownership and developers for ACPI in Kconfig accordingly,
and add another website link to ACPI specification too.
Signed-off-by: Hanjun Guo <hanjun.guo(a)linaro.org>
---
drivers/acpi/Kconfig | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index c205653..6bbf36e 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -32,9 +32,11 @@ menuconfig ACPI
<http://acpica.org/>
ACPI is an open industry specification co-developed by
- Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba.
+ ACPI Specification Working Group (ASWG) under UEFI Forum, any
+ UEFI member can join ASWG and contribute to ACPI specification.
The specification is available at:
<http://www.acpi.info>
+ <http://www.uefi.org/acpi/specs>
if ACPI
--
1.7.9.5
The UEFI Forum included the ACPI spec in its portfolio in October 2013
and will host future spec iterations, following the ACPI v5.0a release.
A UEFI Forum working group named ACPI Specification Working Group (ASWG)
has been established to handle future ACPI developments, any UEFI member
can join the group and contribute to ACPI specification.
So update the ownership and developers for ACPI in Kconfig accordingly,
and update the website link to ACPI specification too.
Signed-off-by: Hanjun Guo <hanjun.guo(a)linaro.org>
---
drivers/acpi/Kconfig | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index c205653..831e541 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -32,9 +32,10 @@ menuconfig ACPI
<http://acpica.org/>
ACPI is an open industry specification co-developed by
- Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba.
+ ACPI Specification Working Group (ASWG) under UEFI Forum, any
+ UEFI member can join ASWG and contribute to ACPI specification.
The specification is available at:
- <http://www.acpi.info>
+ <http://www.uefi.org/acpi/specs>
if ACPI
--
1.7.9.5
There is a duplicated Kconfig entry for "kernel/power/Kconfig"
in menu "Power management options" and "CPU Power Management",
remove the one from menu "CPU Power Management" suggested by
Viresh.
Signed-off-by: Hanjun Guo <hanjun.guo(a)linaro.org>
---
arch/arm64/Kconfig | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index e6e4d37..e759af5 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -323,8 +323,6 @@ menu "CPU Power Management"
source "drivers/cpuidle/Kconfig"
-source "kernel/power/Kconfig"
-
source "drivers/cpufreq/Kconfig"
endmenu
--
1.7.9.5
Hi All,
I am trying to enable a i2c client driver under ACPI. The device is being enumerated behind adapter device and I am getting IRQ resource as well.
The problem I have now is, how do I pass the platform data to driver?
struct i2c_board_info {
char type[I2C_NAME_SIZE];
unsigned short flags;
unsigned short addr;
void *platform_data; ===========> how can I initialize this filed.
struct dev_archdata *archdata;
struct device_node *of_node;
struct acpi_dev_node acpi_node;
int irq;
};
In non ACPI environment I used to initialize the platform_data under board or platforms files. Under ACPI how do I do that?
Thanks,
Ram
After commit 74397174989e5 (arm64: Fix duplicated Kconfig entries),
I still get a duplicate Power management options section in linux-next
git repo, may be due to some merge conflicts, anyway, fix that in this
patch.
Signed-off-by: Hanjun Guo <hanjun.guo(a)linaro.org>
---
Based on linux-next repo, weird, did I miss something?
---
arch/arm64/Kconfig | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index d9f23ad..6085dca 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -317,24 +317,12 @@ config ARCH_SUSPEND_POSSIBLE
config ARM64_CPU_SUSPEND
def_bool PM_SLEEP
-endmenu
-
-menu "CPU Power Management"
-
source "drivers/cpuidle/Kconfig"
source "drivers/cpufreq/Kconfig"
endmenu
-menu "Power management options"
-
-source "kernel/power/Kconfig"
-
-source "drivers/cpufreq/Kconfig"
-
-endmenu
-
source "net/Kconfig"
source "drivers/Kconfig"
--
1.7.9.5
Hi All,
I am trying to enable a i2c client driver under ACPI. The device is being enumerated behind adapter device and I am getting IRQ resource as well.
The problem I have now is, how do I pass the platform data to driver?
struct i2c_board_info {
char type[I2C_NAME_SIZE];
unsigned short flags;
unsigned short addr;
void *platform_data; ===========> how can I initialize this filed.
struct dev_archdata *archdata;
struct device_node *of_node;
struct acpi_dev_node acpi_node;
int irq;
};
In non ACPI environment I used to initialize the platform_data under board or platforms files. Under ACPI how do I do that?
Thanks,
Ram
The leg-kernel release has been made and tagged as leg-20140401.0
This is based on mainline kernel v3.14
Repository : http://git.linaro.org/leg/acpi/leg-kernel.git
Direct Link: https://git.linaro.org/leg/acpi/leg-kernel.git/commit/a493444ce7f1792b44897…
Notes :-
1) starting from this release, a FDT is not used to describe the platform. The
kernel uses ACPI tables only. This release contains prototype code to boot
the CPUs from information held in the MADT. It is hard coded to PSCI control
method for the FVP base model
Changes in v5:
- Add uapi/linux/psci.h to kbuild
- ret with err if PSCI_ID_VERSION is not implemented.
Changes in v4:
- Correct copyright banner format.
- Check if PSCI Version ID is supported.
- Add all PSCI RET codes in uapi header.
- Explicitely ret 1 from psci_cpu_kill()
Changes in v3:
- Roll up common functionality for getting conduit method.
- Remove #defines for ARM32 and ARM64 in uapi/linux/psci.h
- Remove functions not supported by PSCI v0.1
- Misc cleanups.
- Add PSCI_AFFINITY_INFO return types in uapi header.
- Changed function names for PSCI v0.1 and PSCI v0.2
- Added copyright info to uapi header.
- Fixed args to affinity_info call.
- Fix typo in psci_init definition when PSCI is not defined.
Changes in v2:
- Add AFFINITY_INFO and MIGRATE_INFO_TYPE functions.
- Add binding Documentation.
- Add function to get PSCI version.
- Add common #defines in uapi/linux/psci.h
- Implement cpu_kill and check if CPU is dead via AFFINITY_INFO.
- Misc cleanups.
Changes in v1:
- Add new binding "arm, psci-0.2"
- Separate conduit and PSCI function assignment methods.
Ashwin Chaugule (3):
PSCI: Add initial support for PSCIv0.2 functions
Documentation: devicetree: Add new binding for PSCIv0.2
ARM: Check if a CPU has gone offline
Documentation/devicetree/bindings/arm/psci.txt | 35 +++++-
arch/arm/include/asm/psci.h | 7 +-
arch/arm/kernel/psci.c | 158 +++++++++++++++++++-----
arch/arm/kernel/psci_smp.c | 21 ++++
arch/arm64/kernel/psci.c | 163 ++++++++++++++++++++-----
include/uapi/linux/Kbuild | 1 +
include/uapi/linux/psci.h | 66 ++++++++++
7 files changed, 390 insertions(+), 61 deletions(-)
create mode 100644 include/uapi/linux/psci.h
--
1.8.3.2
Changes in v4:
- Correct copyright banner format.
- Check if PSCI Version ID is supported.
- Add all PSCI RET codes in uapi header.
- Explicitely ret 1 from psci_cpu_kill()
Changes in v3:
- Roll up common functionality for getting conduit method.
- Remove #defines for ARM32 and ARM64 in uapi/linux/psci.h
- Remove functions not supported by PSCI v0.1
- Misc cleanups.
- Add PSCI_AFFINITY_INFO return types in uapi header.
- Changed function names for PSCI v0.1 and PSCI v0.2
- Added copyright info to uapi header.
- Fixed args to affinity_info call.
- Fix typo in psci_init definition when PSCI is not defined.
Changes in v2:
- Add AFFINITY_INFO and MIGRATE_INFO_TYPE functions.
- Add binding Documentation.
- Add function to get PSCI version.
- Add common #defines in uapi/linux/psci.h
- Implement cpu_kill and check if CPU is dead via AFFINITY_INFO.
- Misc cleanups.
Changes in v1:
- Add new binding "arm, psci-0.2"
- Separate conduit and PSCI function assignment methods.
Ashwin Chaugule (3):
PSCI: Add initial support for PSCIv0.2 functions
Documentation: devicetree: Add new binding for PSCIv0.2
ARM: Check if a CPU has gone offline
Documentation/devicetree/bindings/arm/psci.txt | 35 +++++-
arch/arm/include/asm/psci.h | 7 +-
arch/arm/kernel/psci.c | 155 +++++++++++++++++++-----
arch/arm/kernel/psci_smp.c | 21 ++++
arch/arm64/kernel/psci.c | 160 ++++++++++++++++++++-----
include/uapi/linux/psci.h | 66 ++++++++++
6 files changed, 383 insertions(+), 61 deletions(-)
create mode 100644 include/uapi/linux/psci.h
--
1.8.3.2
Hi Guys,
I pulled Aschwin's updated PSCI cleanup for upstream into acpi-mainline-core
this morning.
This invalidated the previous patch from Tomasz to hardcard PSCI booting method
so I replaced it with this simpler patch until we have ASWG compliant method.
We can of course improve this within acpi-core until that time.
Graeme
From: Al Stone <al.stone(a)linaro.org>
These patches are purely experimental; they just barely compile and they
do not run just yet. The reason for posting them is really just to stir
some discussion and see if this is a truly crazy idea or if it has some
potential for easing the ACPI transition.
These patches introduce GUFI: the Grand Unified Firmware Interface. Okay,
yes, it is a silly name. I didn't spend a lot of time on it. What I'm
most interested in is the idea and whether it is worth pursuing further,
and whether or not there are better ways to do this if it does make sense.
The idea is very simple: introduce a shim layer that looks like a merge of
some sort between ACPI and FDT functionality in the kernel. In that shim
layer, make it possible for a driver to make a single call to a function,
and with that call, retrieve configuration information stored in either
ACPI tables or a DT. Further, allow the kernel to specify which has
priority -- i.e., search through ACPI tables, and then through FDT if
data is not found, or vice versa -- or which is exclusive, either ACPI
or FDT only.
Why would I do this? As a kernel developer, this allows me to make changes
in the direction of either FDT or ACPI as quickly or as slowly as I want to.
Most of my config can be in FDT and I can then piecemeal convert to ACPI
as I figure out ASL and/or any driver changes that may be needed. Secondly,
if I do this well, the changes to convert from FDT to ACPI *should* be very
small; from ACPI to FDT may be much more difficult but over time that can
likely be improved as well. Third, in the really, really long term, maybe
someone comes up with yet another hardware configuration description format
that is so cool it provides sharks with laser beams on their heads and
*everyone* wants to convert to it. With this layer in place, perhaps we
can smooth even that transition by abstracting out the config info that's
needed and the API to retrieve it.
So, what do you think?
Al Stone (5):
ACPI: GUFI: add kernel config options for GUFI
ACPI: GUFI: add build commands for drivers/gufi
ACPI: GUFI: add in early prototype code for some GUFI functions
ACPI: GUFI: add in simple test driver placeholders
ACPI: GUFI: start modifying the vexpress-sysreg driver to use the GUFI
arch/arm64/Kconfig | 6 -
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/acpi/acpi_platform.c | 1 +
drivers/gufi/Kconfig | 54 ++++++++
drivers/gufi/Makefile | 11 ++
drivers/gufi/gufi.c | 309 ++++++++++++++++++++++++++++++++++++++++++
drivers/gufi/gufi_acpi_test.c | 84 ++++++++++++
drivers/gufi/gufi_of_test.c | 83 ++++++++++++
drivers/mfd/vexpress-sysreg.c | 14 +-
include/linux/gufi.h | 83 ++++++++++++
11 files changed, 636 insertions(+), 12 deletions(-)
create mode 100644 drivers/gufi/Kconfig
create mode 100644 drivers/gufi/Makefile
create mode 100644 drivers/gufi/gufi.c
create mode 100644 drivers/gufi/gufi_acpi_test.c
create mode 100644 drivers/gufi/gufi_of_test.c
create mode 100644 include/linux/gufi.h
--
1.8.3.1
This patchset adds some new functions introduced by the PSCI v0.2 spec.
It also adds DT bindings to differentiate between PSCI v0.1 and v0.2 and
appropriately selects the Function IDs. The third patch makes use of a
new function, AFFINITY_INFO, added by PSCI v0.2 to ensure that CPU's
killed after CPU_OFF are actually offlined.
Changes in v3:
- Roll up common functionality for getting conduit method.
- Remove #defines for ARM32 and ARM64 in uapi/linux/psci.h
- Remove functions not supported by PSCI v0.1
- Misc cleanups.
- Add PSCI_AFFINITY_INFO return types in uapi header.
- Changed function names for PSCI v0.1 and PSCI v0.2
- Added copyright info to uapi header.
- Fixed args to affinity_info call.
- Fix typo in psci_init definition when PSCI is not defined.
Changes in v2:
- Add AFFINITY_INFO and MIGRATE_INFO_TYPE functions.
- Add binding Documentation.
- Add function to get PSCI version.
- Add common #defines in uapi/linux/psci.h
- Implement cpu_kill and check if CPU is dead via AFFINITY_INFO.
- Misc cleanups.
Changes in v1:
- Add new binding "arm, psci-0.2"
- Separate conduit and PSCI function assignment methods.
Ashwin Chaugule (3):
PSCI: Add initial support for PSCIv0.2 functions
Documentation: devicetree: Add new binding for PSCIv0.2
ARM: Check if a CPU has gone offline
Documentation/devicetree/bindings/arm/psci.txt | 35 +++++-
arch/arm/include/asm/psci.h | 7 +-
arch/arm/kernel/psci.c | 151 ++++++++++++++++++++----
arch/arm/kernel/psci_smp.c | 21 ++++
arch/arm64/kernel/psci.c | 154 +++++++++++++++++++++----
include/uapi/linux/psci.h | 45 ++++++++
6 files changed, 367 insertions(+), 46 deletions(-)
create mode 100644 include/uapi/linux/psci.h
--
1.8.3.2