nuttx/audio: Direct return non-format configure operation

protect configure lower only once

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
This commit is contained in:
yangyalei
2025-08-06 20:00:50 +08:00
committed by Alan C. Assis
parent d15f69cdb6
commit 7d55e26421
+10 -9
View File
@@ -354,18 +354,19 @@ static int audio_configure(FAR struct audio_upperhalf_s *upper,
#else
ret = lower->ops->configure(lower, caps);
#endif
if (ret == OK && (caps->ac_type == AUDIO_TYPE_INPUT ||
caps->ac_type == AUDIO_TYPE_OUTPUT))
if (ret < 0 || (caps->ac_type != AUDIO_TYPE_INPUT &&
caps->ac_type != AUDIO_TYPE_OUTPUT))
{
audio_setstate(upper, AUDIO_STATE_PREPARED);
upper->info.format = caps->ac_subtype;
upper->info.channels = caps->ac_channels;
upper->info.subformat = caps->ac_controls.b[2];
upper->info.samplerate = caps->ac_controls.hw[0] |
(caps->ac_controls.b[3] << 16);
return ret;
}
audio_setstate(upper, AUDIO_STATE_PREPARED);
upper->info.format = caps->ac_subtype;
upper->info.channels = caps->ac_channels;
upper->info.subformat = caps->ac_controls.b[2];
upper->info.samplerate =
caps->ac_controls.hw[0] | (caps->ac_controls.b[3] << 16);
return ret;
}