diff options
author | Dean Wheatley <dwhea@dolby.com> | 2020-04-21 16:12:29 +1000 |
---|---|---|
committer | Dean Wheatley <dwhea@dolby.com> | 2020-04-22 10:33:45 +1000 |
commit | c6f23972881b45c53f157c8b6ef06db176f3e6a9 (patch) | |
tree | 89d9d89ae27faf7846c3d979ee13ef1f0365eed4 /audio/audio_hw.c | |
parent | 319d7d1dec0ebe7b88b9888c6d26132cbc459e31 (diff) | |
download | hikey-c6f23972881b45c53f157c8b6ef06db176f3e6a9.tar.gz |
Fix out set parameters success return code
str_params_get_str returns length of returned string value
on success, but HAL set parameters should return 0 on success.
This change fixes MSD to primary HAL audio patch creation on
a hikey960 target variant supporting MSD.
Change-Id: Idba8ba7283b0a4c42fa4b69e501cf0e008558c60
Diffstat (limited to 'audio/audio_hw.c')
-rw-r--r-- | audio/audio_hw.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c index 56b3e141..02ce2508 100644 --- a/audio/audio_hw.c +++ b/audio/audio_hw.c @@ -362,12 +362,16 @@ static int out_set_parameters(struct audio_stream *stream, const char *kvpairs) struct alsa_audio_device *adev = out->dev; struct str_parms *parms; char value[32]; - int ret, val = 0; + int val = 0; + int ret = -EINVAL; + + if (kvpairs == NULL || kvpairs[0] == 0) { + return 0; + } parms = str_parms_create_str(kvpairs); - ret = str_parms_get_str(parms, AUDIO_PARAMETER_STREAM_ROUTING, value, sizeof(value)); - if (ret >= 0) { + if (str_parms_get_str(parms, AUDIO_PARAMETER_STREAM_ROUTING, value, sizeof(value)) >= 0) { val = atoi(value); pthread_mutex_lock(&adev->lock); pthread_mutex_lock(&out->lock); @@ -377,6 +381,7 @@ static int out_set_parameters(struct audio_stream *stream, const char *kvpairs) } pthread_mutex_unlock(&out->lock); pthread_mutex_unlock(&adev->lock); + ret = 0; } str_parms_destroy(parms); |