]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
soc: bcm: brcmstb: Fix re-entry point with a THUMB2_KERNEL
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 27 Sep 2018 19:27:11 +0000 (12:27 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Dec 2019 08:17:17 +0000 (09:17 +0100)
[ Upstream commit fb14ada11d62fb849fc357a25ef8016ba438ba10 ]

When the kernel is built with CONFIG_THUMB2_KERNEL we would set the
kernel's resume entry point to be a function that is already built as
Thumb-2 code while the boot agent doing the resume is in ARM mode, so
this does not work. There is a header label defined: cpu_resume_arm
which we can use to do the switching for us.

Fixes: 0b741b8234c8 ("soc: bcm: brcmstb: Add support for S2/S3/S5 suspend states (ARM)")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/bcm/brcmstb/pm/pm-arm.c

index a5577dd5eb0870bccff391f38c69f47c8d708fde..8ee06347447c0dfa3dede7d3164ba584631e7866 100644 (file)
@@ -404,7 +404,7 @@ noinline int brcmstb_pm_s3_finish(void)
 {
        struct brcmstb_s3_params *params = ctrl.s3_params;
        dma_addr_t params_pa = ctrl.s3_params_pa;
-       phys_addr_t reentry = virt_to_phys(&cpu_resume);
+       phys_addr_t reentry = virt_to_phys(&cpu_resume_arm);
        enum bsp_initiate_command cmd;
        u32 flags;