blob: 4a4f33386b9e96cb49ee391792bd646501f5a65d [file] [log] [blame]
Dimitris Papastamos89736dd2018-02-13 11:28:02 +00001/*
2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <cortex_ares.h>
8#include <cpuamu.h>
Antonio Nino Diaze0f90632018-12-14 00:18:21 +00009#include <lib/el3_runtime/pubsub_events.h>
Dimitris Papastamos89736dd2018-02-13 11:28:02 +000010
11static void *cortex_ares_context_save(const void *arg)
12{
13 if (midr_match(CORTEX_ARES_MIDR) != 0)
14 cpuamu_context_save(CORTEX_ARES_AMU_NR_COUNTERS);
Antonio Nino Diaz9fe40fd2018-10-25 17:11:02 +010015
16 return (void *)0;
Dimitris Papastamos89736dd2018-02-13 11:28:02 +000017}
18
19static void *cortex_ares_context_restore(const void *arg)
20{
21 if (midr_match(CORTEX_ARES_MIDR) != 0)
22 cpuamu_context_restore(CORTEX_ARES_AMU_NR_COUNTERS);
Antonio Nino Diaz9fe40fd2018-10-25 17:11:02 +010023
24 return (void *)0;
Dimitris Papastamos89736dd2018-02-13 11:28:02 +000025}
26
27SUBSCRIBE_TO_EVENT(psci_suspend_pwrdown_start, cortex_ares_context_save);
28SUBSCRIBE_TO_EVENT(psci_suspend_pwrdown_finish, cortex_ares_context_restore);