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 <common/debug.h> 9 10 #include <power_tracer.h> 11 12 #define trace_log(...) INFO("psci: " __VA_ARGS__) 13 14 void trace_power_flow(unsigned long mpidr, unsigned char mode) 15 { 16 switch (mode) { 17 case CPU_UP: 18 trace_log("core %lld:%lld ON\n", 19 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS, 20 (mpidr & MPIDR_CPU_MASK)); 21 break; 22 case CPU_DOWN: 23 trace_log("core %lld:%lld OFF\n", 24 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS, 25 (mpidr & MPIDR_CPU_MASK)); 26 break; 27 case CPU_SUSPEND: 28 trace_log("core %lld:%lld SUSPEND\n", 29 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS, 30 (mpidr & MPIDR_CPU_MASK)); 31 break; 32 case CLUSTER_UP: 33 trace_log("cluster %lld ON\n", 34 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS); 35 break; 36 case CLUSTER_DOWN: 37 trace_log("cluster %lld OFF\n", 38 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS); 39 break; 40 case CLUSTER_SUSPEND: 41 trace_log("cluster %lld SUSPEND\n", 42 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS); 43 break; 44 default: 45 trace_log("unknown power mode\n"); 46 break; 47 } 48 } 49