Sound Open Firmware
Loading...
Searching...
No Matches
base_fw_vendor.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2024 Intel Corporation.
4 *
5 * Author: Kai Vehmanen <kai.vehmanen@linux.intel.com>
6 */
7
14#ifndef __SOF_IPC4_BASE_FW_VENDOR_H__
15#define __SOF_IPC4_BASE_FW_VENDOR_H__
16
17#include <errno.h>
18#include <stdbool.h>
19#include <stdint.h>
20
21struct comp_dev;
22
23/*
24 * TODO: Add a more generic BASE_FW_VENDOR Kconfig if/when
25 * more vendor specific implementations are added.
26 */
27#ifdef CONFIG_IPC4_BASE_FW_INTEL
28
37int basefw_vendor_fw_config(uint32_t *data_offset, char *data);
38
47int basefw_vendor_hw_config(uint32_t *data_offset, char *data);
48
55struct sof_man_fw_desc *basefw_vendor_get_manifest(void);
56
65int basefw_vendor_modules_info_get(uint32_t *data_offset, char *data);
66
80 uint32_t param_id,
81 bool first_block,
82 bool last_block,
83 uint32_t *data_offset,
84 char *data);
85
99 uint32_t param_id,
100 bool first_block,
101 bool last_block,
102 uint32_t data_offset,
103 const char *data);
104
113int basefw_vendor_dma_control(uint32_t node_id,
114 const char *config_data,
115 size_t data_size);
116
117#else /* !CONFIG_IPC4_BASE_FW_INTEL */
118
119static inline int basefw_vendor_fw_config(uint32_t *data_offset, char *data)
120{
121 *data_offset = 0;
122
123 return 0;
124}
125
126static inline int basefw_vendor_hw_config(uint32_t *data_offset, char *data)
127{
128 *data_offset = 0;
129
130 return 0;
131}
132
133static inline struct sof_man_fw_desc *basefw_vendor_get_manifest(void)
134{
135 struct sof_man_fw_desc *desc = NULL;
136
137 return desc;
138}
139
140static inline int basefw_vendor_modules_info_get(uint32_t *data_offset, char *data)
141{
142 *data_offset = 0;
143
144 return 0;
145}
146
147static inline int basefw_vendor_get_large_config(struct comp_dev *dev,
148 uint32_t param_id,
149 bool first_block,
150 bool last_block,
151 uint32_t *data_offset,
152 char *data)
153{
154 return -EINVAL;
155}
156
157static inline int basefw_vendor_set_large_config(struct comp_dev *dev,
158 uint32_t param_id,
159 bool first_block,
160 bool last_block,
161 uint32_t data_offset,
162 const char *data)
163{
165}
166
167static inline int basefw_vendor_dma_control(uint32_t node_id,
168 const char *config_data,
169 size_t data_size)
170{
172}
173
174#endif
175
176#endif /* __SOF_IPC4_BASE_FW_VENDOR_H__ */
static int basefw_vendor_modules_info_get(uint32_t *data_offset, char *data)
Definition base_fw_vendor.h:140
static struct sof_man_fw_desc * basefw_vendor_get_manifest(void)
Definition base_fw_vendor.h:133
static int basefw_vendor_hw_config(uint32_t *data_offset, char *data)
Definition base_fw_vendor.h:126
static int basefw_vendor_fw_config(uint32_t *data_offset, char *data)
Definition base_fw_vendor.h:119
static int basefw_vendor_get_large_config(struct comp_dev *dev, uint32_t param_id, bool first_block, bool last_block, uint32_t *data_offset, char *data)
Definition base_fw_vendor.h:147
static int basefw_vendor_dma_control(uint32_t node_id, const char *config_data, size_t data_size)
Definition base_fw_vendor.h:167
static int basefw_vendor_set_large_config(struct comp_dev *dev, uint32_t param_id, bool first_block, bool last_block, uint32_t data_offset, const char *data)
Definition base_fw_vendor.h:157
@ IPC4_UNKNOWN_MESSAGE_TYPE
Unknown message type specified.
Definition error_status.h:42
uint8_t data[0]
Binary byte payload for raw controls.
Definition header.h:5
Audio component base device "class" used by all other component types.
Definition component.h:587