#define ARM_DEBUG_ARCH_V7_MM 4
#define ARM_DEBUG_ARCH_V7_1 5
#define ARM_DEBUG_ARCH_V8 6
+#ifdef CONFIG_AMLOGIC_MODIFY
+/* for cortex-a55 */
+#define ARM_DEBUG_ARCH_V8_1 8
+#endif
/* Breakpoint */
#define ARM_BREAKPOINT_EXECUTE 0
case ARM_DEBUG_ARCH_V7_ECP14:
case ARM_DEBUG_ARCH_V7_1:
case ARM_DEBUG_ARCH_V8:
+#ifdef CONFIG_AMLOGIC_MODIFY
+ case ARM_DEBUG_ARCH_V8_1:
+#endif
ARM_DBG_WRITE(c0, c2, 2, (dscr | ARM_DSCR_MDBGEN));
isb();
break;
static int dbg_cpu_pm_notify(struct notifier_block *self, unsigned long action,
void *v)
{
+#ifdef CONFIG_AMLOGIC_MODIFY
+ struct perf_event *wp, **slots;
+ int i;
+
+ if (action == CPU_PM_EXIT) {
+ reset_ctrl_regs(NULL);
+ /* reinstall already installed wp after exit pm */
+ slots = this_cpu_ptr(wp_on_reg);
+ for (i = 0; i < core_num_wrps; ++i) {
+ wp = slots[i];
+ if (wp) {
+ slots[i] = NULL;
+ arch_install_hw_breakpoint(wp);
+ }
+ }
+ }
+#else
if (action == CPU_PM_EXIT)
reset_ctrl_regs(NULL);
+#endif
return NOTIFY_OK;
}