[PATCH v8 14/22] ASoC: qdsp6: audioreach: add basic pkt alloc support
Srinivas Kandagatla
srinivas.kandagatla at linaro.org
Tue Sep 28 12:10:33 CEST 2021
On 27/09/2021 17:08, Pierre-Louis Bossart wrote:
>
>
>> +struct apm_sub_graph_params {
>> + struct apm_module_param_data param_data;
>> + uint32_t num_sub_graphs;
>> + struct apm_sub_graph_data sg_cfg[];
>> +} __packed;
>
> The style you use is num_foobar and later foobar[]
>
>> +/* container config */
>> +struct apm_container_obj {
>> + struct apm_container_cfg container_cfg;
>> + /* Capability ID list */
>> + struct apm_prop_data cap_data;
>> + uint32_t num_capability_id;
>> + uint32_t capability_id;
>
> but here you have both a num_capability_id and capability_id
>
> It's not very clear what they mean, or if there is a dependency?
DSP supports multiple capabilities for a container, however for now this
version of patches only support 1 capability for a container.
I will add multiple capabilities once am in a position to test it.
>
>> + /* Container graph Position */
>> + struct apm_prop_data pos_data;
>> + struct apm_cont_prop_id_graph_pos pos;
>> +
>> + /* Container Stack size */
>> + struct apm_prop_data stack_data;
>> + struct apm_cont_prop_id_stack_size stack;
>> +
>> + /* Container proc domain id */
>> + struct apm_prop_data domain_data;
>> + struct apm_cont_prop_id_domain domain;
>> +} __packed;
>
>> +/* Module IDs */
>> +#define MODULE_ID_WR_SHARED_MEM_EP 0x07001000
>> +#define MODULE_ID_RD_SHARED_MEM_EP 0x07001001
>> +#define MODULE_ID_GAIN 0x07001002
>> +#define MODULE_ID_PCM_CNV 0x07001003
>> +#define MODULE_ID_PCM_ENC 0x07001004
>> +#define MODULE_ID_PCM_DEC 0x07001005
>> +#define MODULE_ID_CODEC_DMA_SINK 0x07001023
>> +#define MODULE_ID_CODEC_DMA_SOURCE 0x07001024
>> +#define MODULE_ID_I2S_SINK 0x0700100A
>> +#define MODULE_ID_I2S_SOURCE 0x0700100b
>> +#define MODULE_ID_DATA_LOGGING 0x0700101A
>> +
>> +#define APM_CMD_GET_SPF_STATE 0x01001021
>> +#define APM_CMD_RSP_GET_SPF_STATE 0x02001007
>> +
>> +#define APM_MODULE_INSTANCE_ID 0x00000001
>> +#define PRM_MODULE_INSTANCE_ID 0x00000002
>> +#define AMDB_MODULE_INSTANCE_ID 0x00000003
>> +#define VCPM_MODULE_INSTANCE_ID 0x00000004
>> +#define AR_MODULE_INSTANCE_ID_START 0x00006000
>> +#define AR_MODULE_INSTANCE_ID_END 0x00007000
>> +#define AR_MODULE_DYNAMIC_INSTANCE_ID_START 0x00007000
>> +#define AR_MODULE_DYNAMIC_INSTANCE_ID_END 0x00008000
>> +#define AR_CONT_INSTANCE_ID_START 0x00005000
>> +#define AR_CONT_INSTANCE_ID_END 0x00006000
>> +#define AR_SG_INSTANCE_ID_START 0x00004000
>> +
>> +#define APM_CMD_GRAPH_OPEN 0x01001000
>> +#define APM_CMD_GRAPH_PREPARE 0x01001001
>> +#define APM_CMD_GRAPH_START 0x01001002
>> +#define APM_CMD_GRAPH_STOP 0x01001003
>> +#define APM_CMD_GRAPH_CLOSE 0x01001004
>> +#define APM_CMD_GRAPH_FLUSH 0x01001005
>> +#define APM_CMD_SET_CFG 0x01001006
>> +#define APM_CMD_GET_CFG 0x01001007
>> +#define APM_CMD_SHARED_MEM_MAP_REGIONS 0x0100100c
>> +#define APM_CMD_SHARED_MEM_UNMAP_REGIONS 0x0100100d
>> +#define APM_CMD_RSP_SHARED_MEM_MAP_REGIONS 0x02001001
>> +#define APM_CMD_RSP_GET_CFG 0x02001000
>> +#define APM_CMD_CLOSE_ALL 0x01001013
>> +#define APM_CMD_REGISTER_SHARED_CFG 0x0100100A
>
>> +/* APM module */
>> +#define APM_PARAM_ID_SUB_GRAPH_LIST 0x08001005
>> +
>> +#define APM_PARAM_ID_MODULE_LIST 0x08001002
>
>> +#define APM_PARAM_ID_MODULE_PROP 0x08001003
>
> It seems like those definition follow a pattern, e.g. bits 28..32 a type
> and bits 0..15 a token?
Yes, it does have a pattern, each Opcode is divided in to 3 fields.
GUID OWNER 31:28
GUID Type 27:24
MAIN GUID 23:0
--srini
>
>
>>
More information about the Alsa-devel
mailing list