153bfb94eSDimitris Papastamos /* 2*4c700c15SGovindraj Raja * Copyright (c) 2017-2018, Arm Limited and Contributors. All rights reserved. 353bfb94eSDimitris Papastamos * 453bfb94eSDimitris Papastamos * SPDX-License-Identifier: BSD-3-Clause 553bfb94eSDimitris Papastamos */ 653bfb94eSDimitris Papastamos 753bfb94eSDimitris Papastamos #include <cortex_a75.h> 8f06890eaSDimitris Papastamos #include <cpuamu.h> 909d40e0eSAntonio Nino Diaz #include <lib/el3_runtime/pubsub_events.h> 1053bfb94eSDimitris Papastamos cortex_a75_context_save(const void * arg)1153bfb94eSDimitris Papastamosstatic void *cortex_a75_context_save(const void *arg) 1253bfb94eSDimitris Papastamos { 13714b21ffSDimitris Papastamos if (midr_match(CORTEX_A75_MIDR) != 0) 14f06890eaSDimitris Papastamos cpuamu_context_save(CORTEX_A75_AMU_NR_COUNTERS); 1543534997SAntonio Nino Diaz 1643534997SAntonio Nino Diaz return (void *)0; 1753bfb94eSDimitris Papastamos } 1853bfb94eSDimitris Papastamos cortex_a75_context_restore(const void * arg)1953bfb94eSDimitris Papastamosstatic void *cortex_a75_context_restore(const void *arg) 2053bfb94eSDimitris Papastamos { 21714b21ffSDimitris Papastamos if (midr_match(CORTEX_A75_MIDR) != 0) 22f06890eaSDimitris Papastamos cpuamu_context_restore(CORTEX_A75_AMU_NR_COUNTERS); 2343534997SAntonio Nino Diaz 2443534997SAntonio Nino Diaz return (void *)0; 2553bfb94eSDimitris Papastamos } 2653bfb94eSDimitris Papastamos 2753bfb94eSDimitris Papastamos SUBSCRIBE_TO_EVENT(psci_suspend_pwrdown_start, cortex_a75_context_save); 2853bfb94eSDimitris Papastamos SUBSCRIBE_TO_EVENT(psci_suspend_pwrdown_finish, cortex_a75_context_restore); 29