1 /* 2 * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <arch.h> 8 #include <debug.h> 9 #include <power_tracer.h> 10 11 #define trace_log(...) INFO("psci: " __VA_ARGS__) 12 13 void trace_power_flow(unsigned long mpidr, unsigned char mode) 14 { 15 switch (mode) { 16 case CPU_UP: 17 trace_log("core %ld:%ld ON\n", 18 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS, 19 (mpidr & MPIDR_CPU_MASK)); 20 break; 21 case CPU_DOWN: 22 trace_log("core %ld:%ld OFF\n", 23 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS, 24 (mpidr & MPIDR_CPU_MASK)); 25 break; 26 case CPU_SUSPEND: 27 trace_log("core %ld:%ld SUSPEND\n", 28 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS, 29 (mpidr & MPIDR_CPU_MASK)); 30 break; 31 case CLUSTER_UP: 32 trace_log("cluster %ld ON\n", 33 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS); 34 break; 35 case CLUSTER_DOWN: 36 trace_log("cluster %ld OFF\n", 37 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS); 38 break; 39 case CLUSTER_SUSPEND: 40 trace_log("cluster %ld SUSPEND\n", 41 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS); 42 break; 43 default: 44 trace_log("unknown power mode\n"); 45 break; 46 } 47 } 48