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
+7 -6
View File
@@ -354,17 +354,18 @@ static int audio_configure(FAR struct audio_upperhalf_s *upper,
#else #else
ret = lower->ops->configure(lower, caps); ret = lower->ops->configure(lower, caps);
#endif #endif
if (ret < 0 || (caps->ac_type != AUDIO_TYPE_INPUT &&
if (ret == OK && (caps->ac_type == AUDIO_TYPE_INPUT || caps->ac_type != AUDIO_TYPE_OUTPUT))
caps->ac_type == AUDIO_TYPE_OUTPUT))
{ {
return ret;
}
audio_setstate(upper, AUDIO_STATE_PREPARED); audio_setstate(upper, AUDIO_STATE_PREPARED);
upper->info.format = caps->ac_subtype; upper->info.format = caps->ac_subtype;
upper->info.channels = caps->ac_channels; upper->info.channels = caps->ac_channels;
upper->info.subformat = caps->ac_controls.b[2]; upper->info.subformat = caps->ac_controls.b[2];
upper->info.samplerate = caps->ac_controls.hw[0] | upper->info.samplerate =
(caps->ac_controls.b[3] << 16); caps->ac_controls.hw[0] | (caps->ac_controls.b[3] << 16);
}
return ret; return ret;
} }