[PATCH v3 13/20] ASoC: qdsp6: audioreach: add basic pkt alloc support

Amadeusz Sławiński amadeuszx.slawinski at linux.intel.com
Tue Aug 3 16:19:46 CEST 2021


On 8/3/2021 2:54 PM, Srinivas Kandagatla wrote:
> Add basic helper functions for AudioReach.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>
> ---

...

> +
> +#define APM_PARAM_ID_GAIN			0x08001006
> +struct param_id_gain_cfg {
> +	uint16_t gain;
> +	uint16_t reserved;
> +};
> +
> +#define PARAM_ID_PCM_OUTPUT_FORMAT_CFG		0x08001008
> +struct param_id_pcm_output_format_cfg {
> +	uint32_t data_format;
> +	uint32_t fmt_id;
> +	uint32_t payload_size;
> +} __packed;
> +
> +struct payload_pcm_output_format_cfg {
> +	uint16_t bit_width;
> +	uint16_t alignment;
> +	uint16_t bits_per_sample;
> +	uint16_t q_factor;
> +	uint16_t endianness;
> +	uint16_t interleaved;
> +	uint16_t reserved;
> +	uint16_t num_channels;
> +	uint8_t channel_mapping[0];

Current kernel convention is to use something like:
uint8_t channel_mapping[];
for flexible arrays.
I've pointed out few more later, but it would be best to run some kind 
of search to find them all in all files in patchset.

...

> +
> +struct apm_container_cfg {
> +	uint32_t container_id;
> +	uint32_t num_prop;
> +} __packed;
> +
> +struct apm_cont_capablity  {
> +	uint32_t capability_id;
> +} __packed;
> +
> +#define APM_CONTAINER_PROP_ID_CAPABILITY_LIST	0x08001011
> +#define APM_CONTAINER_PROP_ID_CAPABILITY_SIZE	8
> +
> +#define APM_PROP_ID_INVALID			0x0
> +#define APM_CONTAINER_CAP_ID_PP			0x1
> +#define APM_CONTAINER_CAP_ID_PP			0x1
> +
> +struct apm_cont_prop_id_cap_list  {
> +	uint32_t num_capablity_id;
num_capability_id

...

> +
> +#define CONFIG_I2S_WS_SRC_EXTERNAL                          0x0
> +#define CONFIG_I2S_WS_SRC_INTERNAL                          0x1
> +
> +#define PARAM_ID_I2S_INTF_CFG	0x08001019
> +struct param_id_i2s_intf_cfg {
> +	uint32_t lpaif_type;
> +	uint32_t intf_idx;
> +	uint16_t sd_line_idx;
> +	uint16_t ws_src;
> +} __packed;
> +
> +#define I2S_INTF_TYPE_PRIMARY		0
> +#define I2S_INTF_TYPE_SECOINDARY	1
SECONDARY

> +#define I2S_INTF_TYPE_TERTINARY		2
TERTIARY

> +#define I2S_INTF_TYPE_QUATERNARY	3
> +#define I2S_INTF_TYPE_QUINARY		4
> +#define I2S_SD0				1
> +#define I2S_SD1				2
> +#define I2S_SD2				3
> +#define I2S_SD3				4
> +

...

> +#define DATA_LOGGING_MAX_INPUT_PORTS		0x1
> +#define DATA_LOGGING_MAX_OUTPUT_PORTS		0x1
> +#define DATA_LOGGING_STACK_SIZE			2048
> +#define PARAM_ID_DATA_LOGGING_CONFIG		0x08001031
> +struct data_logging_config {
> +	uint32_t log_code;
> +	uint32_t log_tap_point_id;
> +	uint32_t mode;
> +} __packed;
> +
> +#define PARAM_ID_MFC_OUTPUT_MEDIA_FORMAT	0x08001024
> +struct param_id_mfc_media_format {
> +	uint32_t sample_rate;
> +	uint16_t bit_width;
> +	uint16_t num_channels;
> +	uint16_t channel_mapping[0];
uint16_t channel_mapping[];

...

> +
> +struct payload_media_fmt_pcm {
> +	uint32_t sample_rate;
> +	uint16_t bit_width;
> +	uint16_t alignment;
> +	uint16_t bits_per_sample;
> +	uint16_t q_factor;
> +	uint16_t endianness;
> +	uint16_t num_channels;
> +	uint8_t channel_mapping[0];
uint8_t channel_mapping[];




More information about the Alsa-devel mailing list