mirror of https://github.com/thesofproject/sof.git
dmic: config: do parameter check first
Parameter verification should be done before any expensive resource allocations happen. Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This commit is contained in:
parent
9985b014d2
commit
8e92eb1ef1
|
@ -1097,6 +1097,16 @@ static int dmic_set_config(struct dai *dai, struct sof_ipc_dai_config *config)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (di >= DMIC_HW_FIFOS) {
|
||||
trace_error_dmic_id(dai, "dmic_set_config() error: dai->index exceeds number of FIFOs");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (config->dmic.num_pdm_active > DMIC_HW_CONTROLLERS) {
|
||||
trace_error_dmic_id(dai, "dmic_set_config() error: the requested PDM controllers count exceeds platform capability");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
step_db = LOGRAMP_CONST_TERM / unmute_ramp_time_ms;
|
||||
dmic->gain_coef = db2lin_fixed(step_db);
|
||||
trace_dmic_id(dai, "dmic_set_config(): unmute_ramp_time_ms = %d",
|
||||
|
@ -1123,11 +1133,6 @@ static int dmic_set_config(struct dai *dai, struct sof_ipc_dai_config *config)
|
|||
((uint8_t *)dmic_prm[i - 1] + size);
|
||||
}
|
||||
|
||||
if (di >= DMIC_HW_FIFOS) {
|
||||
trace_error_dmic_id(dai, "dmic_set_config() error: dai->index exceeds number of FIFOs");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Copy the new DMIC params to persistent. The last request
|
||||
* determines the parameters.
|
||||
*/
|
||||
|
@ -1135,11 +1140,6 @@ static int dmic_set_config(struct dai *dai, struct sof_ipc_dai_config *config)
|
|||
sizeof(struct sof_ipc_dai_dmic_params));
|
||||
assert(!ret);
|
||||
|
||||
if (config->dmic.num_pdm_active > DMIC_HW_CONTROLLERS) {
|
||||
trace_error_dmic_id(dai, "dmic_set_config() error: the requested PDM controllers count exceeds platform capability");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* copy the pdm controller params from ipc */
|
||||
for (i = 0; i < DMIC_HW_CONTROLLERS; i++) {
|
||||
dmic_prm[di]->pdm[i].id = i;
|
||||
|
|
Loading…
Reference in New Issue