Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * This file is provided under a dual BSD/GPLv2 license.  When using or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * redistributing this file, you may do so under either license.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * Copyright(c) 2019-2020 Intel Corporation. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  * Author: Cezary Rojewski <cezary.rojewski@intel.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #ifndef __SOF_PROBE_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define __SOF_PROBE_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <sound/sof/header.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) struct snd_sof_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define SOF_PROBE_INVALID_NODE_ID UINT_MAX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct sof_probe_dma {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	unsigned int stream_tag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	unsigned int dma_buffer_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) enum sof_connection_purpose {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	SOF_CONNECTION_PURPOSE_EXTRACT = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	SOF_CONNECTION_PURPOSE_INJECT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) struct sof_probe_point_desc {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	unsigned int buffer_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	unsigned int purpose;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	unsigned int stream_tag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) struct sof_ipc_probe_dma_add_params {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	struct sof_ipc_cmd_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	unsigned int num_elems;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	struct sof_probe_dma dma[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) struct sof_ipc_probe_info_params {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	struct sof_ipc_reply rhdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	unsigned int num_elems;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	union {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 		struct sof_probe_dma dma[0];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 		struct sof_probe_point_desc desc[0];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) struct sof_ipc_probe_dma_remove_params {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	struct sof_ipc_cmd_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	unsigned int num_elems;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	unsigned int stream_tag[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) struct sof_ipc_probe_point_add_params {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	struct sof_ipc_cmd_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	unsigned int num_elems;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 	struct sof_probe_point_desc desc[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) struct sof_ipc_probe_point_remove_params {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 	struct sof_ipc_cmd_hdr hdr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 	unsigned int num_elems;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 	unsigned int buffer_id[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) int sof_ipc_probe_init(struct snd_sof_dev *sdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 		u32 stream_tag, size_t buffer_size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) int sof_ipc_probe_deinit(struct snd_sof_dev *sdev);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) int sof_ipc_probe_dma_info(struct snd_sof_dev *sdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 		struct sof_probe_dma **dma, size_t *num_dma);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) int sof_ipc_probe_dma_add(struct snd_sof_dev *sdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) 		struct sof_probe_dma *dma, size_t num_dma);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) int sof_ipc_probe_dma_remove(struct snd_sof_dev *sdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 		unsigned int *stream_tag, size_t num_stream_tag);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) int sof_ipc_probe_points_info(struct snd_sof_dev *sdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 		struct sof_probe_point_desc **desc, size_t *num_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) int sof_ipc_probe_points_add(struct snd_sof_dev *sdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 		struct sof_probe_point_desc *desc, size_t num_desc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) int sof_ipc_probe_points_remove(struct snd_sof_dev *sdev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) 		unsigned int *buffer_id, size_t num_buffer_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) #endif