<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/kernel/psci.c, branch linux-4.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-11-24T12:03:00Z</updated>
<entry>
<title>arm64: psci: Avoid printing in cpu_psci_cpu_die()</title>
<updated>2020-11-24T12:03:00Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2020-11-06T09:57:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e2ee9ea98d45fe314f6047bf49896eee1dd51a24'/>
<id>urn:sha1:e2ee9ea98d45fe314f6047bf49896eee1dd51a24</id>
<content type='text'>
[ Upstream commit 891deb87585017d526b67b59c15d38755b900fea ]

cpu_psci_cpu_die() is called in the context of the dying CPU, which
will no longer be online or tracked by RCU. It is therefore not generally
safe to call printk() if the PSCI "cpu off" request fails, so remove the
pr_crit() invocation.

Cc: Qian Cai &lt;cai@redhat.com&gt;
Cc: "Paul E. McKenney" &lt;paulmck@kernel.org&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Link: https://lore.kernel.org/r/20201106103602.9849-2-will@kernel.org
Signed-off-by: Will Deacon &lt;will@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>arm64: psci: Reduce the waiting time for cpu_psci_cpu_kill()</title>
<updated>2020-01-04T12:39:29Z</updated>
<author>
<name>Yunfeng Ye</name>
</author>
<published>2019-10-21T11:31:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ecb8a7272f6725d42e9967f0b96d9f437d77f25'/>
<id>urn:sha1:0ecb8a7272f6725d42e9967f0b96d9f437d77f25</id>
<content type='text'>
[ Upstream commit bfcef4ab1d7ee8921bc322109b1692036cc6cbe0 ]

In cases like suspend-to-disk and suspend-to-ram, a large number of CPU
cores need to be shut down. At present, the CPU hotplug operation is
serialised, and the CPU cores can only be shut down one by one. In this
process, if PSCI affinity_info() does not return LEVEL_OFF quickly,
cpu_psci_cpu_kill() needs to wait for 10ms. If hundreds of CPU cores
need to be shut down, it will take a long time.

Normally, there is no need to wait 10ms in cpu_psci_cpu_kill(). So
change the wait interval from 10 ms to max 1 ms and use usleep_range()
instead of msleep() for more accurate timer.

In addition, reducing the time interval will increase the messages
output, so remove the "Retry ..." message, instead, track time and
output to the the sucessful message.

Signed-off-by: Yunfeng Ye &lt;yeyunfeng@huawei.com&gt;
Reviewed-by: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ARM: 8511/1: ARM64: kernel: PSCI: move PSCI idle management code to drivers/firmware</title>
<updated>2016-02-11T15:33:38Z</updated>
<author>
<name>Lorenzo Pieralisi</name>
</author>
<published>2016-02-01T17:01:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b6f2499ac45d5a0ab2e4b6f9613ab3f60416be1'/>
<id>urn:sha1:8b6f2499ac45d5a0ab2e4b6f9613ab3f60416be1</id>
<content type='text'>
ARM64 PSCI kernel interfaces that initialize idle states and implement
the suspend API to enter them are generic and can be shared with the
ARM architecture.

To achieve that goal, this patch moves ARM64 PSCI idle management
code to drivers/firmware, so that the interface to initialize and
enter idle states can actually be shared by ARM and ARM64 arches
back-ends.

The ARM generic CPUidle implementation also requires the definition of
a cpuidle_ops section entry for the kernel to initialize the CPUidle
operations at boot based on the enable-method (ie ARM64 has the
statically initialized cpu_ops counterparts for that purpose); therefore
this patch also adds the required section entry on CONFIG_ARM for PSCI so
that the kernel can initialize the PSCI CPUidle back-end when PSCI is
the probed enable-method.

On ARM64 this patch provides no functional change.

Signed-off-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Acked-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt; [arch/arm64]
Acked-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Tested-by: Jisheng Zhang &lt;jszhang@marvell.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Cc: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Cc: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Mark Rutland &lt;mark.rutland@arm.com&gt;
Cc: Jisheng Zhang &lt;jszhang@marvell.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>drivers: firmware: psci: move power_state handling to generic code</title>
<updated>2015-10-02T13:35:16Z</updated>
<author>
<name>Lorenzo Pieralisi</name>
</author>
<published>2015-05-26T15:49:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=068654c200cc32966ce7906ca0bd096b9b97e988'/>
<id>urn:sha1:068654c200cc32966ce7906ca0bd096b9b97e988</id>
<content type='text'>
Functions implemented on arm64 to check if a power_state parameter
is valid and if the power_state implies context loss are not
arm64 specific and should be moved to generic code so that they
can be reused on arm systems too.

This patch moves the functions handling the power_state parameter
to generic PSCI firmware layer code.

Signed-off-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Acked-by: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Tested-by: Jisheng Zhang &lt;jszhang@marvell.com&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Mark Rutland &lt;mark.rutland@arm.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'aarch64/psci/drivers' into aarch64/for-next/core</title>
<updated>2015-08-05T13:14:06Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2015-08-05T13:14:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d422e62562e0dcef0ace4cd4fc4b4519d0a55ab4'/>
<id>urn:sha1:d422e62562e0dcef0ace4cd4fc4b4519d0a55ab4</id>
<content type='text'>
Move our PSCI implementation out into drivers/firmware/ where it can be
shared with arch/arm/.

Conflicts:
	arch/arm64/kernel/psci.c
</content>
</entry>
<entry>
<title>arm64: psci: factor invocation code to drivers</title>
<updated>2015-08-03T11:33:39Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-07-31T14:46:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bff60792f994a87324ab57e89e945b4572b1ef77'/>
<id>urn:sha1:bff60792f994a87324ab57e89e945b4572b1ef77</id>
<content type='text'>
To enable sharing with arm, move the core PSCI framework code to
drivers/firmware. This results in a minor gain in lines of code, but
this will quickly be amortised by the removal of code currently
duplicated in arch/arm.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Reviewed-by: Hanjun Guo &lt;hanjun.guo@linaro.org&gt;
Tested-by: Hanjun Guo &lt;hanjun.guo@linaro.org&gt;
Cc: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: force CONFIG_SMP=y and remove redundant #ifdefs</title>
<updated>2015-07-27T10:08:40Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2015-05-29T17:28:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b3dc9679cf779339d9049800803dfc3c83433d1'/>
<id>urn:sha1:4b3dc9679cf779339d9049800803dfc3c83433d1</id>
<content type='text'>
Nobody seems to be producing !SMP systems anymore, so this is just
becoming a source of kernel bugs, particularly if people want to use
coherent DMA with non-shared pages.

This patch forces CONFIG_SMP=y for arm64, removing a modest amount of
code in the process.

Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: kernel: rename __cpu_suspend to keep it aligned with arm</title>
<updated>2015-06-19T13:46:39Z</updated>
<author>
<name>Sudeep Holla</name>
</author>
<published>2015-06-18T14:41:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=af391b15f7b56ce19f52862d36595637dd42b575'/>
<id>urn:sha1:af391b15f7b56ce19f52862d36595637dd42b575</id>
<content type='text'>
This patch renames __cpu_suspend to cpu_suspend so that it's aligned
with ARM32. It also removes the redundant wrapper created.

This is in preparation to implement generic PSCI system suspend using
the cpu_{suspend,resume} which now has the same interface on both ARM
and ARM64.

Cc: Mark Rutland &lt;mark.rutland@arm.com&gt;
Reviewed-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Reviewed-by: Ashwin Chaugule &lt;ashwin.chaugule@linaro.org&gt;
Signed-off-by: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: psci: fix !CONFIG_HOTPLUG_CPU build warning</title>
<updated>2015-06-11T17:20:27Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2015-06-11T17:16:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73bf8412e4f24b114c853012663fff4d3cde06a2'/>
<id>urn:sha1:73bf8412e4f24b114c853012663fff4d3cde06a2</id>
<content type='text'>
When building without CONFIG_HOTPLUG_CPU, GCC complains (rightly) that
psci_tos_resident_on is unused:

  arch/arm64/kernel/psci.c:61:13: warning: ‘psci_tos_resident_on’ defined but not used [-Wunused-function]
   static bool psci_tos_resident_on(int cpu)

As it's only ever used when CONFIG_HOTPLUG_CPU is selected, let's move
it into the existing ifdef.

Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
[Mark: write commit message]
Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: psci: remove ACPI coupling</title>
<updated>2015-05-27T12:22:24Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-04-30T13:22:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c5a1330573c1748179898f4799f130e416ce4738'/>
<id>urn:sha1:c5a1330573c1748179898f4799f130e416ce4738</id>
<content type='text'>
The 32-bit ARM port doesn't have ACPI headers, and conditionally
including them is going to look horrendous. In preparation for sharing
the PSCI invocation code with 32-bit, move the acpi_psci_* function
declarations and definitions such that the PSCI client code need not
include ACPI headers.

While it would seem like we could simply hide the ACPI includes in
psci.h, the ACPI headers have hilarious circular dependencies which make
this infeasible without reorganising most of ACPICA. So rather than
doing that, move the acpi_psci_* prototypes into psci.h.

The psci_acpi_init function is made dependent on CONFIG_ACPI (with a
stub implementation in asm/psci.h) such that it need not be built for
32-bit ARM or kernels without ACPI support. The currently missing __init
annotations are added to the prototypes in the header.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Acked-by: Hanjun Guo &lt;hanjun.guo@linaro.org&gt;
Reviewed-by: Al Stone &lt;al.stone@linaro.org&gt;
Reviewed-by: Ashwin Chaugule &lt;ashwin.chaugule@linaro.org&gt;
Tested-by: Hanjun Guo &lt;hanjun.guo@linaro.org&gt;
Cc: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
</feed>
