• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
trace_power_flow(unsigned long mpidr,unsigned char mode)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