]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: tegra: Do not fully reinitialize L2 on resume
authorDmitry Osipenko <digetx@gmail.com>
Tue, 24 Mar 2020 22:43:34 +0000 (01:43 +0300)
committerThierry Reding <treding@nvidia.com>
Wed, 6 May 2020 16:29:05 +0000 (18:29 +0200)
ASUS TF300T device may not work properly if firmware is asked to fully
re-initialize L2 cache after resume from LP2 suspend. The downstream
kernel of TF300T uses different opcode to enable cache after resuming
from LP2, this opcode also works fine on Nexus 7 and Ouya devices.
Supposedly, this may be needed by an older firmware versions.

Reported-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
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>
Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm/mach-tegra/pm.c

index d1e1a61b12cf8d16b2beffa1176491f07845ca04..6452ebf68d40efc20ac42952aade79a4805404c0 100644 (file)
@@ -216,6 +216,8 @@ int tegra_pm_enter_lp2(void)
        restore_cpu_complex();
        cpu_cluster_pm_exit();
 
+       call_firmware_op(prepare_idle, TF_PM_MODE_NONE);
+
        return err;
 }
 
@@ -391,6 +393,8 @@ static int tegra_suspend_enter(suspend_state_t state)
 
        local_fiq_enable();
 
+       call_firmware_op(prepare_idle, TF_PM_MODE_NONE);
+
        return 0;
 }