diff mbox series

[v1,1/3] ARM: tegra: Initialize r0 register for firmware wake-up

Message ID 20200324224335.5825-2-digetx@gmail.com
State Accepted
Headers show
Series Enable LP2 CPUIDLE state on NVIDIA Tegra30 | expand

Commit Message

Dmitry Osipenko March 24, 2020, 10:43 p.m. UTC
Downstream kernel of ASUS TF300T sets r0 to #3. There is no explanation in
downstream code whether this is really needed and some of T30 downstream
kernels have and explicit comment telling that all arguments are ignored
by firmware. Let's take a safe side by replicating behavior of the TF300T
downstream kernel. This change works fine on Ouya and Nexus 7 devices.

Tested-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Tested-by: Jasper Korten <jja2000@gmail.com>
Tested-by: David Heidelberg <david@ixit.cz>
Tested-by: Peter Geis <pgwipeout@gmail.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 arch/arm/mach-tegra/reset-handler.S | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Thierry Reding May 6, 2020, 4:34 p.m. UTC | #1
On Wed, Mar 25, 2020 at 01:43:33AM +0300, Dmitry Osipenko wrote:
> Downstream kernel of ASUS TF300T sets r0 to #3. There is no explanation in
> downstream code whether this is really needed and some of T30 downstream
> kernels have and explicit comment telling that all arguments are ignored
> by firmware. Let's take a safe side by replicating behavior of the TF300T
> downstream kernel. This change works fine on Ouya and Nexus 7 devices.
> 
> Tested-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
> Tested-by: Jasper Korten <jja2000@gmail.com>
> Tested-by: David Heidelberg <david@ixit.cz>
> Tested-by: Peter Geis <pgwipeout@gmail.com>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  arch/arm/mach-tegra/reset-handler.S | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)

Applied to for-5.8/arm/core, thanks.

Thierry
diff mbox series

Patch

diff --git a/arch/arm/mach-tegra/reset-handler.S b/arch/arm/mach-tegra/reset-handler.S
index 53123ae4ac3b..06ca44b09381 100644
--- a/arch/arm/mach-tegra/reset-handler.S
+++ b/arch/arm/mach-tegra/reset-handler.S
@@ -98,7 +98,12 @@  ENTRY(tegra_resume_trusted_foundations)
 	reteq	lr
 
  .arch_extension sec
-	/* First call after suspend wakes firmware. No arguments required. */
+	/*
+	 * First call after suspend wakes firmware. No arguments required
+	 * for some firmware versions. Downstream kernel of ASUS TF300T uses
+	 * r0=3 for the wake-up notification.
+	 */
+	mov	r0, #3
 	smc	#0
 
 	b	cpu_resume