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

Commit fe39949b authored by Ramu Gottipati's avatar Ramu Gottipati
Browse files

dsp: Avoid configuring PSPD channel mixer if PSPD is already configured



Observing audio glitch issue while trying to apply PSPD
channel mixer coefficients for already applied COPP port.
To fix this, added check condition to retun 0 without
applying PSPD.

Change-Id: I3825cacfd888f153144cc5d73eb274f4fbf5d8bc
Signed-off-by: default avatarRamu Gottipati <ramug@codeaurora.org>
parent a04d2b91
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
 */
#include <linux/module.h>
#include <linux/slab.h>
@@ -513,6 +513,17 @@ int adm_programable_channel_mixer(int port_id, int copp_idx, int session_id,
		pr_err("%s: Invalid port_id %#x\n", __func__, port_id);
		return -EINVAL;
	}

	/*
	 * check if PSPD is already configured
	 * if it is configured already, return 0 without applying PSPD.
	 */
	if (atomic_read(&this_adm.copp.cnt[port_idx][copp_idx]) > 1) {
		pr_debug("%s: copp.cnt:%#x\n", __func__,
			atomic_read(&this_adm.copp.cnt[port_idx][copp_idx]));
		return 0;
	}

	/*
	 * First 8 bytes are 4 bytes as rule number, 2 bytes as output
	 * channel and 2 bytes as input channel.