1 /*
2  * Copyright (c) 2022 Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_LOG_BACKEND_ADSP_HDA_H_
8 #define ZEPHYR_LOG_BACKEND_ADSP_HDA_H_
9 
10 #include <stdint.h>
11 
12 /**
13  *@brief HDA logger requires a hook for IPC messages
14  *
15  * When the log is flushed and written with DMA an IPC message should
16  * be sent to inform the host. This hook function pointer allows for that
17  */
18 typedef void(*adsp_hda_log_hook_t)(uint32_t written);
19 
20 /**
21  * @brief Initialize the Intel ADSP HDA logger
22  *
23  * @param hook Function is called after each HDA flush in order to
24  *             inform the Host of DMA log data. This hook may be called
25  *             from multiple CPUs and multiple calling contexts concurrently.
26  *             It is up to the author of the hook to serialize if needed.
27  *             It is guaranteed to be called once for every flush.
28  * @param channel HDA stream (DMA Channel) to use for logging
29  */
30 void adsp_hda_log_init(adsp_hda_log_hook_t hook, uint32_t channel);
31 
32 #endif /* ZEPHYR_LOG_BACKEND_ADSP_HDA_H_ */
33