[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