This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 7d55e264214a6308e6c5d10c579c9f8dfd6a0e12 Author: yangyalei <[email protected]> AuthorDate: Wed Aug 6 20:00:50 2025 +0800 nuttx/audio: Direct return non-format configure operation protect configure lower only once Signed-off-by: yangyalei <[email protected]> --- audio/audio.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/audio/audio.c b/audio/audio.c index 3d88ec33d43..9125adbe4e3 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -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; }
