]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-tegra/reset-handler.S
Merge tag 'mfd-3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd...
[karo-tx-linux.git] / arch / arm / mach-tegra / reset-handler.S
index 39dc9e7834f38b161d2cc7ac3e53d140c97383d7..f527b2c2dea779be4f8f26d654e14ba3282369ee 100644 (file)
  *       re-enabling sdram.
  *
  *     r6: SoC ID
+ *     r8: CPU part number
  */
 ENTRY(tegra_resume)
-       bl      v7_invalidate_l1
+       check_cpu_part_num 0xc09, r8, r9
+       bleq    v7_invalidate_l1
+       blne    tegra_init_l2_for_a15
 
        cpu_id  r0
        tegra_get_soc_id TEGRA_APB_MISC_BASE, r6
@@ -70,7 +73,8 @@ no_cpu0_chk:
        str     r1, [r2]
 1:
 
-       check_cpu_part_num 0xc09, r8, r9
+       mov32   r9, 0xc09
+       cmp     r8, r9
        bne     not_ca9
 #ifdef CONFIG_HAVE_ARM_SCU
        /* enable SCU */
@@ -178,6 +182,19 @@ after_errata:
 1:
 #endif
 
+       /* Waking up from LP1? */
+       ldr     r8, [r12, #RESET_DATA(MASK_LP1)]
+       tst     r8, r11                         @ if in_lp1
+       beq     __is_not_lp1
+       cmp     r10, #0
+       bne     __die                           @ only CPU0 can be here
+       ldr     lr, [r12, #RESET_DATA(STARTUP_LP1)]
+       cmp     lr, #0
+       bleq    __die                           @ no LP1 startup handler
+ THUMB(        add     lr, lr, #1 )                    @ switch to Thumb mode
+       bx      lr
+__is_not_lp1:
+
        /* Waking up from LP2? */
        ldr     r9, [r12, #RESET_DATA(MASK_LP2)]
        tst     r9, r11                         @ if in_lp2