Skip to content
  • Linus Walleij's avatar
    ARM: ux500: resume the second core properly · 3131d970
    Linus Walleij authored
    The pen hold/release scheme was copied over to Ux500 from the ARM
    reference designs like most of these at the time. It is not needed
    at all, and was mostly removed in commit c00def71
    "ARM: ux500: simplify secondary CPU boot".
    
    However on the suspend/resume path and hot plug/unplug of CPUs,
    the .cpu_die() callback was still waiting for the pen to be
    released which made it spin forever and the second core never come
    back online after suspend/resume.
    
    Fix this by simply replacing the strange custom .cpu_die() with
    a oneline wfi() just like e.g. the qcom platform does. This fixes
    the issue and makes the second core come up properly after
    suspend/resume.
    
    As a side effect, this rids us of the completely surplus local
    setup.h and hotplug.c files, and we just compile this into platsmp.c
    with everything else SMP.
    
    Cc: stable@vger.kernel.org
    Fixes: c00def71
    
     ("ARM: ux500: simplify secondary CPU boot")
    Cc: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    3131d970