• 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 <debug.h>
9 #include <power_tracer.h>
10 
11 #define trace_log(...)  INFO("psci: " __VA_ARGS__)
12 
trace_power_flow(unsigned long mpidr,unsigned char mode)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