Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 976eea56 authored by Kuirong Wang's avatar Kuirong Wang Committed by Gerrit - the friendly Code Review server
Browse files

ASoC: msm: qdsp6v2: Update the topology if there is no ACDB



The topology for ASM and ADM is passed down from ACDB to adsp.
If there is no ACDB, then the topology ID is zero. In the current
implementation, whenever the topolpgy ID is zero, then the default
topology is used for asm and adm. The problem arises for msm8x10
because it support only null/none topolgy. It causes audio playback
failure in factory test mode when ACDB loader is disabled by factory
test application. Update the topology to null/none from default to
cover all the platforms.

CRs-fixed: 538213
Change-Id: I8cc694d731284294fb2f8341b370e0dfeb2a7d9b
Signed-off-by: default avatarKuirong Wang <kuirongw@codeaurora.org>
parent 66d0b021
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2511,6 +2511,8 @@ struct asm_softvolume_params {

#define ASM_STREAM_POSTPROC_TOPO_ID_DEFAULT 0x00010BE4

#define ASM_STREAM_POSTPROC_TOPO_ID_NONE 0x00010C68

#define ASM_MEDIA_FMT_EVRCB_FS 0x00010BEF

#define ASM_MEDIA_FMT_EVRCWB_FS 0x00010BF0
+1 −1
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@ int get_topology(int path_type)
		topology_id = get_adm_tx_topology();

	if (topology_id  == 0)
		topology_id = DEFAULT_COPP_TOPOLOGY;
		topology_id = NULL_COPP_TOPOLOGY;

	return topology_id;
}
+3 −3
Original line number Diff line number Diff line
@@ -1607,7 +1607,7 @@ static int __q6asm_open_read(struct audio_client *ac,

	open.preprocopo_id = get_asm_topology();
	if (open.preprocopo_id == 0)
		open.preprocopo_id = ASM_STREAM_POSTPROC_TOPO_ID_DEFAULT;
		open.preprocopo_id = ASM_STREAM_POSTPROC_TOPO_ID_NONE;
	open.bits_per_sample = bits_per_sample;
	open.mode_flags = 0x0;

@@ -1706,7 +1706,7 @@ static int __q6asm_open_write(struct audio_client *ac, uint32_t format,

	open.postprocopo_id = get_asm_topology();
	if (open.postprocopo_id == 0)
		open.postprocopo_id = ASM_STREAM_POSTPROC_TOPO_ID_DEFAULT;
		open.postprocopo_id = ASM_STREAM_POSTPROC_TOPO_ID_NONE;

	switch (format) {
	case FORMAT_LINEAR_PCM:
@@ -1790,7 +1790,7 @@ int q6asm_open_read_write(struct audio_client *ac,
	/* source endpoint : matrix */
	open.postprocopo_id = get_asm_topology();
	if (open.postprocopo_id == 0)
		open.postprocopo_id = ASM_STREAM_POSTPROC_TOPO_ID_DEFAULT;
		open.postprocopo_id = ASM_STREAM_POSTPROC_TOPO_ID_NONE;

	switch (wr_format) {
	case FORMAT_LINEAR_PCM: