summaryrefslogtreecommitdiff
path: root/audio/audio_hw.c
diff options
context:
space:
mode:
authorDean Wheatley <dwhea@dolby.com>2020-04-21 16:12:29 +1000
committerDean Wheatley <dwhea@dolby.com>2020-04-22 10:33:45 +1000
commitc6f23972881b45c53f157c8b6ef06db176f3e6a9 (patch)
tree89d9d89ae27faf7846c3d979ee13ef1f0365eed4 /audio/audio_hw.c
parent319d7d1dec0ebe7b88b9888c6d26132cbc459e31 (diff)
downloadhikey-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.c11
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);