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

Commit 3d61b368 authored by Dhananjay Kumar's avatar Dhananjay Kumar
Browse files

dsp: adm: add check for mfc channel count



Add check for mfc channel count before issuing mfc
media format command.

Change-Id: I0541d6651ecfcc90562ec0d9a632d039e34658cf
Signed-off-by: default avatarDhananjay Kumar <dhakumar@codeaurora.org>
parent 280b241b
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -2797,6 +2797,11 @@ static int adm_copp_set_ec_ref_mfc_cfg(int port_id, int copp_idx,
			__func__, port_id, copp_idx, sample_rate,
			__func__, port_id, copp_idx, sample_rate,
			bps, in_channels, out_channels);
			bps, in_channels, out_channels);


	if (out_channels <= 0 || out_channels > AUDPROC_MFC_OUT_CHANNELS_MAX) {
		pr_err("%s: unsupported out channels=%d\n", __func__, out_channels);
		return -EINVAL;
	}

	/* 1. Update Media Format */
	/* 1. Update Media Format */
	param_hdr.param_id = AUDPROC_PARAM_ID_MFC_OUTPUT_MEDIA_FORMAT;
	param_hdr.param_id = AUDPROC_PARAM_ID_MFC_OUTPUT_MEDIA_FORMAT;
	param_hdr.param_size = sizeof(mfc_cfg);
	param_hdr.param_size = sizeof(mfc_cfg);
+4 −1
Original line number Original line Diff line number Diff line
@@ -874,11 +874,14 @@ struct adm_cmd_set_pp_params_v5 {
	 */
	 */
} __packed;
} __packed;


/* Maximum number of channels supported by MFC media fmt params */
#define AUDPROC_MFC_OUT_CHANNELS_MAX 8

struct audproc_mfc_param_media_fmt {
struct audproc_mfc_param_media_fmt {
	uint32_t sampling_rate;
	uint32_t sampling_rate;
	uint16_t bits_per_sample;
	uint16_t bits_per_sample;
	uint16_t num_channels;
	uint16_t num_channels;
	uint16_t channel_type[8];
	uint16_t channel_type[AUDPROC_MFC_OUT_CHANNELS_MAX];
} __packed;
} __packed;


struct audproc_volume_ctrl_master_gain {
struct audproc_volume_ctrl_master_gain {