Loading hal/audio_hw.c +48 −27 Original line number Diff line number Diff line Loading @@ -168,8 +168,9 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { [USECASE_AUDIO_PLAYBACK_ULL] = "audio-ull-playback", [USECASE_AUDIO_PLAYBACK_MULTI_CH] = "multi-channel-playback", [USECASE_AUDIO_PLAYBACK_OFFLOAD] = "compress-offload-playback", #ifdef MULTIPLE_OFFLOAD_ENABLED //Enabled for Direct_PCM [USECASE_AUDIO_PLAYBACK_OFFLOAD2] = "compress-offload-playback2", #ifdef MULTIPLE_OFFLOAD_ENABLED [USECASE_AUDIO_PLAYBACK_OFFLOAD3] = "compress-offload-playback3", [USECASE_AUDIO_PLAYBACK_OFFLOAD4] = "compress-offload-playback4", [USECASE_AUDIO_PLAYBACK_OFFLOAD5] = "compress-offload-playback5", Loading @@ -178,7 +179,6 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { [USECASE_AUDIO_PLAYBACK_OFFLOAD8] = "compress-offload-playback8", [USECASE_AUDIO_PLAYBACK_OFFLOAD9] = "compress-offload-playback9", #endif [USECASE_AUDIO_DIRECT_PCM_OFFLOAD] = "compress-offload-playback2", [USECASE_AUDIO_RECORD] = "audio-record", [USECASE_AUDIO_RECORD_COMPRESS] = "audio-record-compress", Loading Loading @@ -214,8 +214,8 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { static const audio_usecase_t offload_usecases[] = { USECASE_AUDIO_PLAYBACK_OFFLOAD, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD2, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD3, USECASE_AUDIO_PLAYBACK_OFFLOAD4, USECASE_AUDIO_PLAYBACK_OFFLOAD5, Loading @@ -224,7 +224,6 @@ static const audio_usecase_t offload_usecases[] = { USECASE_AUDIO_PLAYBACK_OFFLOAD8, USECASE_AUDIO_PLAYBACK_OFFLOAD9, #endif USECASE_AUDIO_DIRECT_PCM_OFFLOAD, }; #define STRING_TO_ENUM(string) { #string, string } Loading Loading @@ -1249,35 +1248,50 @@ bool is_offload_usecase(audio_usecase_t uc_id) return false; } static audio_usecase_t get_offload_usecase(struct audio_device *adev) static audio_usecase_t get_offload_usecase(struct audio_device *adev, bool is_direct_pcm) { audio_usecase_t ret = USECASE_AUDIO_PLAYBACK_OFFLOAD; unsigned int i, num_usecase = sizeof(offload_usecases)/sizeof(offload_usecases[0]); char value[PROPERTY_VALUE_MAX] = {0}; audio_usecase_t ret_uc = USECASE_INVALID; unsigned int offload_uc_index; int num_usecase = sizeof(offload_usecases)/sizeof(offload_usecases[0]); if (!adev->multi_offload_enable) { if (is_direct_pcm) ret_uc = USECASE_AUDIO_PLAYBACK_OFFLOAD2; else ret_uc = USECASE_AUDIO_PLAYBACK_OFFLOAD; property_get("audio.offload.multiple.enabled", value, NULL); if (!(atoi(value) || !strncmp("true", value, 4))) num_usecase = 1; /* If prop is not set, limit the num of offload usecases to 1 */ pthread_mutex_lock(&adev->lock); if (get_usecase_from_list(adev, ret_uc) != NULL) ret_uc = USECASE_INVALID; pthread_mutex_unlock(&adev->lock); return ret_uc; } ALOGV("%s: num_usecase: %d", __func__, num_usecase); for (i = 0; i < num_usecase; i++) { if (!(adev->offload_usecases_state & (0x1<<i))) { adev->offload_usecases_state |= 0x1 << i; ret = offload_usecases[i]; for (offload_uc_index = 0; offload_uc_index < num_usecase; offload_uc_index++) { if (!(adev->offload_usecases_state & (0x1 << offload_uc_index))) { adev->offload_usecases_state |= 0x1 << offload_uc_index; ret_uc = offload_usecases[offload_uc_index]; break; } } ALOGV("%s: offload usecase is %d", __func__, ret); return ret; ALOGV("%s: offload usecase is %d", __func__, ret_uc); return ret_uc; } static void free_offload_usecase(struct audio_device *adev, audio_usecase_t uc_id) { unsigned int i; for (i = 0; i < sizeof(offload_usecases)/sizeof(offload_usecases[0]); i++) { if (offload_usecases[i] == uc_id) { adev->offload_usecases_state &= ~(0x1<<i); unsigned int offload_uc_index; int num_usecase = sizeof(offload_usecases)/sizeof(offload_usecases[0]); if (!adev->multi_offload_enable) return; for (offload_uc_index = 0; offload_uc_index < num_usecase; offload_uc_index++) { if (offload_usecases[offload_uc_index] == uc_id) { adev->offload_usecases_state &= ~(0x1 << offload_uc_index); break; } } Loading Loading @@ -2207,7 +2221,7 @@ static ssize_t out_write(struct audio_stream_out *stream, const void *buffer, out->standby = true; goto exit; } if (out->usecase != USECASE_AUDIO_PLAYBACK_OFFLOAD && adev->adm_register_output_stream) if (!is_offload_usecase(out->usecase) && adev->adm_register_output_stream) adev->adm_register_output_stream(adev->adm_data, out->handle, out->flags); } Loading Loading @@ -2974,18 +2988,24 @@ static int adev_open_output_stream(struct audio_hw_device *dev, } if (out->flags & AUDIO_OUTPUT_FLAG_DIRECT_PCM) { ALOGV("%s:: inserting DIRECT_PCM _USECASE", __func__); out->usecase = USECASE_AUDIO_DIRECT_PCM_OFFLOAD; out->usecase = get_offload_usecase(adev, true); ALOGV("DIRECT_PCM usecase ... usecase selected %d ", out->usecase); } else { ALOGV("%s:: inserting OFFLOAD_USECASE", __func__); out->usecase = get_offload_usecase(adev); out->stream.set_callback = out_set_callback; out->stream.pause = out_pause; out->stream.resume = out_resume; out->stream.drain = out_drain; out->stream.flush = out_flush; out->usecase = get_offload_usecase(adev, false); ALOGV("Compress Offload usecase .. usecase selected %d", out->usecase); } if (out->usecase == USECASE_INVALID) { ALOGE("%s: Max allowed OFFLOAD usecase reached ... "); ret = -EEXIST; goto error_open; } if (config->offload_info.channel_mask) out->channel_mask = config->offload_info.channel_mask; else if (config->channel_mask) { Loading Loading @@ -3917,6 +3937,7 @@ static int adev_open(const hw_module_t *module, const char *name, } } adev->multi_offload_enable = property_get_bool("audio.offload.multiple.enabled", false); pthread_mutex_unlock(&adev_init_lock); if (adev->adm_init) Loading hal/audio_hw.h +3 −3 Original line number Diff line number Diff line Loading @@ -85,8 +85,8 @@ enum { USECASE_AUDIO_PLAYBACK_LOW_LATENCY, USECASE_AUDIO_PLAYBACK_MULTI_CH, USECASE_AUDIO_PLAYBACK_OFFLOAD, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD2, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD3, USECASE_AUDIO_PLAYBACK_OFFLOAD4, USECASE_AUDIO_PLAYBACK_OFFLOAD5, Loading @@ -97,8 +97,6 @@ enum { #endif USECASE_AUDIO_PLAYBACK_ULL, USECASE_AUDIO_DIRECT_PCM_OFFLOAD, /* FM usecase */ USECASE_AUDIO_PLAYBACK_FM, Loading Loading @@ -355,6 +353,8 @@ struct audio_device { void (*offload_effects_get_parameters)(struct str_parms *, struct str_parms *); void (*offload_effects_set_parameters)(struct str_parms *); bool multi_offload_enable; }; int select_devices(struct audio_device *adev, Loading hal/msm8916/platform.c +0 −5 Original line number Diff line number Diff line Loading @@ -282,8 +282,6 @@ int pcm_device_table[AUDIO_USECASE_MAX][2] = { [USECASE_AUDIO_PLAYBACK_OFFLOAD8] = {-1, -1}, [USECASE_AUDIO_PLAYBACK_OFFLOAD9] = {-1, -1}, #endif [USECASE_AUDIO_DIRECT_PCM_OFFLOAD] = {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE}, [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE}, [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE}, [USECASE_AUDIO_RECORD_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, Loading Loading @@ -669,7 +667,6 @@ static struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = { {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD8)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD9)}, #endif {TO_NAME_INDEX(USECASE_AUDIO_DIRECT_PCM_OFFLOAD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD_LOW_LATENCY)}, {TO_NAME_INDEX(USECASE_VOICE_CALL)}, Loading Loading @@ -3557,7 +3554,6 @@ bool platform_listen_usecase_needs_event(audio_usecase_t uc_id) case USECASE_AUDIO_PLAYBACK_DEEP_BUFFER: case USECASE_AUDIO_PLAYBACK_MULTI_CH: case USECASE_AUDIO_PLAYBACK_OFFLOAD: case USECASE_AUDIO_DIRECT_PCM_OFFLOAD: needs_event = true; break; /* concurrent playback in low latency allowed */ Loading Loading @@ -3621,7 +3617,6 @@ bool platform_sound_trigger_usecase_needs_event(audio_usecase_t uc_id) case USECASE_AUDIO_PLAYBACK_DEEP_BUFFER: case USECASE_AUDIO_PLAYBACK_MULTI_CH: case USECASE_AUDIO_PLAYBACK_OFFLOAD: case USECASE_AUDIO_DIRECT_PCM_OFFLOAD: needs_event = true; break; /* concurrent playback in low latency allowed */ Loading hal/msm8974/platform.c +2 −5 Original line number Diff line number Diff line Loading @@ -257,9 +257,9 @@ static int pcm_device_table[AUDIO_USECASE_MAX][2] = { MULTIMEDIA2_PCM_DEVICE}, [USECASE_AUDIO_PLAYBACK_OFFLOAD] = {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE}, #ifdef MULTIPLE_OFFLOAD_ENABLED [USECASE_AUDIO_PLAYBACK_OFFLOAD2] = {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2}, #ifdef MULTIPLE_OFFLOAD_ENABLED [USECASE_AUDIO_PLAYBACK_OFFLOAD3] = {PLAYBACK_OFFLOAD_DEVICE3, PLAYBACK_OFFLOAD_DEVICE3}, [USECASE_AUDIO_PLAYBACK_OFFLOAD4] = Loading @@ -276,8 +276,6 @@ static int pcm_device_table[AUDIO_USECASE_MAX][2] = { {PLAYBACK_OFFLOAD_DEVICE9, PLAYBACK_OFFLOAD_DEVICE9}, #endif [USECASE_AUDIO_DIRECT_PCM_OFFLOAD] = {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2}, [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE}, [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE}, Loading Loading @@ -633,8 +631,8 @@ static struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = { {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_ULL)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_MULTI_CH)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD)}, #ifdef MULTIPLE_OFFLOAD_ENABLED {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD2)}, #ifdef MULTIPLE_OFFLOAD_ENABLED {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD3)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD4)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD5)}, Loading @@ -643,7 +641,6 @@ static struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = { {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD8)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD9)}, #endif {TO_NAME_INDEX(USECASE_AUDIO_DIRECT_PCM_OFFLOAD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD_LOW_LATENCY)}, {TO_NAME_INDEX(USECASE_VOICE_CALL)}, Loading hal/msm8974/platform.h +5 −5 Original line number Diff line number Diff line Loading @@ -248,9 +248,13 @@ enum { #endif #define PLAYBACK_OFFLOAD_DEVICE 9 // Direct_PCM #if defined (PLATFORM_MSM8994) || defined (PLATFORM_MSM8996) || defined (PLATFORM_APQ8084) #define PLAYBACK_OFFLOAD_DEVICE2 17 #endif #ifdef MULTIPLE_OFFLOAD_ENABLED #ifdef PLATFORM_APQ8084 #define PLAYBACK_OFFLOAD_DEVICE2 17 #define PLAYBACK_OFFLOAD_DEVICE3 18 #define PLAYBACK_OFFLOAD_DEVICE4 34 #define PLAYBACK_OFFLOAD_DEVICE5 35 Loading @@ -260,7 +264,6 @@ enum { #define PLAYBACK_OFFLOAD_DEVICE9 39 #endif #if defined (PLATFORM_MSM8994) || defined (PLATFORM_MSM8996) #define PLAYBACK_OFFLOAD_DEVICE2 17 #define PLAYBACK_OFFLOAD_DEVICE3 18 #define PLAYBACK_OFFLOAD_DEVICE4 37 #define PLAYBACK_OFFLOAD_DEVICE5 38 Loading @@ -271,9 +274,6 @@ enum { #endif #endif // for DIRECT_PCM #define PLAYBACK_OFFLOAD_DEVICE2 17 #define COMPRESS_VOIP_CALL_PCM_DEVICE 3 #ifdef PLATFORM_MSM8610 Loading Loading
hal/audio_hw.c +48 −27 Original line number Diff line number Diff line Loading @@ -168,8 +168,9 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { [USECASE_AUDIO_PLAYBACK_ULL] = "audio-ull-playback", [USECASE_AUDIO_PLAYBACK_MULTI_CH] = "multi-channel-playback", [USECASE_AUDIO_PLAYBACK_OFFLOAD] = "compress-offload-playback", #ifdef MULTIPLE_OFFLOAD_ENABLED //Enabled for Direct_PCM [USECASE_AUDIO_PLAYBACK_OFFLOAD2] = "compress-offload-playback2", #ifdef MULTIPLE_OFFLOAD_ENABLED [USECASE_AUDIO_PLAYBACK_OFFLOAD3] = "compress-offload-playback3", [USECASE_AUDIO_PLAYBACK_OFFLOAD4] = "compress-offload-playback4", [USECASE_AUDIO_PLAYBACK_OFFLOAD5] = "compress-offload-playback5", Loading @@ -178,7 +179,6 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { [USECASE_AUDIO_PLAYBACK_OFFLOAD8] = "compress-offload-playback8", [USECASE_AUDIO_PLAYBACK_OFFLOAD9] = "compress-offload-playback9", #endif [USECASE_AUDIO_DIRECT_PCM_OFFLOAD] = "compress-offload-playback2", [USECASE_AUDIO_RECORD] = "audio-record", [USECASE_AUDIO_RECORD_COMPRESS] = "audio-record-compress", Loading Loading @@ -214,8 +214,8 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { static const audio_usecase_t offload_usecases[] = { USECASE_AUDIO_PLAYBACK_OFFLOAD, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD2, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD3, USECASE_AUDIO_PLAYBACK_OFFLOAD4, USECASE_AUDIO_PLAYBACK_OFFLOAD5, Loading @@ -224,7 +224,6 @@ static const audio_usecase_t offload_usecases[] = { USECASE_AUDIO_PLAYBACK_OFFLOAD8, USECASE_AUDIO_PLAYBACK_OFFLOAD9, #endif USECASE_AUDIO_DIRECT_PCM_OFFLOAD, }; #define STRING_TO_ENUM(string) { #string, string } Loading Loading @@ -1249,35 +1248,50 @@ bool is_offload_usecase(audio_usecase_t uc_id) return false; } static audio_usecase_t get_offload_usecase(struct audio_device *adev) static audio_usecase_t get_offload_usecase(struct audio_device *adev, bool is_direct_pcm) { audio_usecase_t ret = USECASE_AUDIO_PLAYBACK_OFFLOAD; unsigned int i, num_usecase = sizeof(offload_usecases)/sizeof(offload_usecases[0]); char value[PROPERTY_VALUE_MAX] = {0}; audio_usecase_t ret_uc = USECASE_INVALID; unsigned int offload_uc_index; int num_usecase = sizeof(offload_usecases)/sizeof(offload_usecases[0]); if (!adev->multi_offload_enable) { if (is_direct_pcm) ret_uc = USECASE_AUDIO_PLAYBACK_OFFLOAD2; else ret_uc = USECASE_AUDIO_PLAYBACK_OFFLOAD; property_get("audio.offload.multiple.enabled", value, NULL); if (!(atoi(value) || !strncmp("true", value, 4))) num_usecase = 1; /* If prop is not set, limit the num of offload usecases to 1 */ pthread_mutex_lock(&adev->lock); if (get_usecase_from_list(adev, ret_uc) != NULL) ret_uc = USECASE_INVALID; pthread_mutex_unlock(&adev->lock); return ret_uc; } ALOGV("%s: num_usecase: %d", __func__, num_usecase); for (i = 0; i < num_usecase; i++) { if (!(adev->offload_usecases_state & (0x1<<i))) { adev->offload_usecases_state |= 0x1 << i; ret = offload_usecases[i]; for (offload_uc_index = 0; offload_uc_index < num_usecase; offload_uc_index++) { if (!(adev->offload_usecases_state & (0x1 << offload_uc_index))) { adev->offload_usecases_state |= 0x1 << offload_uc_index; ret_uc = offload_usecases[offload_uc_index]; break; } } ALOGV("%s: offload usecase is %d", __func__, ret); return ret; ALOGV("%s: offload usecase is %d", __func__, ret_uc); return ret_uc; } static void free_offload_usecase(struct audio_device *adev, audio_usecase_t uc_id) { unsigned int i; for (i = 0; i < sizeof(offload_usecases)/sizeof(offload_usecases[0]); i++) { if (offload_usecases[i] == uc_id) { adev->offload_usecases_state &= ~(0x1<<i); unsigned int offload_uc_index; int num_usecase = sizeof(offload_usecases)/sizeof(offload_usecases[0]); if (!adev->multi_offload_enable) return; for (offload_uc_index = 0; offload_uc_index < num_usecase; offload_uc_index++) { if (offload_usecases[offload_uc_index] == uc_id) { adev->offload_usecases_state &= ~(0x1 << offload_uc_index); break; } } Loading Loading @@ -2207,7 +2221,7 @@ static ssize_t out_write(struct audio_stream_out *stream, const void *buffer, out->standby = true; goto exit; } if (out->usecase != USECASE_AUDIO_PLAYBACK_OFFLOAD && adev->adm_register_output_stream) if (!is_offload_usecase(out->usecase) && adev->adm_register_output_stream) adev->adm_register_output_stream(adev->adm_data, out->handle, out->flags); } Loading Loading @@ -2974,18 +2988,24 @@ static int adev_open_output_stream(struct audio_hw_device *dev, } if (out->flags & AUDIO_OUTPUT_FLAG_DIRECT_PCM) { ALOGV("%s:: inserting DIRECT_PCM _USECASE", __func__); out->usecase = USECASE_AUDIO_DIRECT_PCM_OFFLOAD; out->usecase = get_offload_usecase(adev, true); ALOGV("DIRECT_PCM usecase ... usecase selected %d ", out->usecase); } else { ALOGV("%s:: inserting OFFLOAD_USECASE", __func__); out->usecase = get_offload_usecase(adev); out->stream.set_callback = out_set_callback; out->stream.pause = out_pause; out->stream.resume = out_resume; out->stream.drain = out_drain; out->stream.flush = out_flush; out->usecase = get_offload_usecase(adev, false); ALOGV("Compress Offload usecase .. usecase selected %d", out->usecase); } if (out->usecase == USECASE_INVALID) { ALOGE("%s: Max allowed OFFLOAD usecase reached ... "); ret = -EEXIST; goto error_open; } if (config->offload_info.channel_mask) out->channel_mask = config->offload_info.channel_mask; else if (config->channel_mask) { Loading Loading @@ -3917,6 +3937,7 @@ static int adev_open(const hw_module_t *module, const char *name, } } adev->multi_offload_enable = property_get_bool("audio.offload.multiple.enabled", false); pthread_mutex_unlock(&adev_init_lock); if (adev->adm_init) Loading
hal/audio_hw.h +3 −3 Original line number Diff line number Diff line Loading @@ -85,8 +85,8 @@ enum { USECASE_AUDIO_PLAYBACK_LOW_LATENCY, USECASE_AUDIO_PLAYBACK_MULTI_CH, USECASE_AUDIO_PLAYBACK_OFFLOAD, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD2, #ifdef MULTIPLE_OFFLOAD_ENABLED USECASE_AUDIO_PLAYBACK_OFFLOAD3, USECASE_AUDIO_PLAYBACK_OFFLOAD4, USECASE_AUDIO_PLAYBACK_OFFLOAD5, Loading @@ -97,8 +97,6 @@ enum { #endif USECASE_AUDIO_PLAYBACK_ULL, USECASE_AUDIO_DIRECT_PCM_OFFLOAD, /* FM usecase */ USECASE_AUDIO_PLAYBACK_FM, Loading Loading @@ -355,6 +353,8 @@ struct audio_device { void (*offload_effects_get_parameters)(struct str_parms *, struct str_parms *); void (*offload_effects_set_parameters)(struct str_parms *); bool multi_offload_enable; }; int select_devices(struct audio_device *adev, Loading
hal/msm8916/platform.c +0 −5 Original line number Diff line number Diff line Loading @@ -282,8 +282,6 @@ int pcm_device_table[AUDIO_USECASE_MAX][2] = { [USECASE_AUDIO_PLAYBACK_OFFLOAD8] = {-1, -1}, [USECASE_AUDIO_PLAYBACK_OFFLOAD9] = {-1, -1}, #endif [USECASE_AUDIO_DIRECT_PCM_OFFLOAD] = {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE}, [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE}, [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE}, [USECASE_AUDIO_RECORD_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, Loading Loading @@ -669,7 +667,6 @@ static struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = { {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD8)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD9)}, #endif {TO_NAME_INDEX(USECASE_AUDIO_DIRECT_PCM_OFFLOAD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD_LOW_LATENCY)}, {TO_NAME_INDEX(USECASE_VOICE_CALL)}, Loading Loading @@ -3557,7 +3554,6 @@ bool platform_listen_usecase_needs_event(audio_usecase_t uc_id) case USECASE_AUDIO_PLAYBACK_DEEP_BUFFER: case USECASE_AUDIO_PLAYBACK_MULTI_CH: case USECASE_AUDIO_PLAYBACK_OFFLOAD: case USECASE_AUDIO_DIRECT_PCM_OFFLOAD: needs_event = true; break; /* concurrent playback in low latency allowed */ Loading Loading @@ -3621,7 +3617,6 @@ bool platform_sound_trigger_usecase_needs_event(audio_usecase_t uc_id) case USECASE_AUDIO_PLAYBACK_DEEP_BUFFER: case USECASE_AUDIO_PLAYBACK_MULTI_CH: case USECASE_AUDIO_PLAYBACK_OFFLOAD: case USECASE_AUDIO_DIRECT_PCM_OFFLOAD: needs_event = true; break; /* concurrent playback in low latency allowed */ Loading
hal/msm8974/platform.c +2 −5 Original line number Diff line number Diff line Loading @@ -257,9 +257,9 @@ static int pcm_device_table[AUDIO_USECASE_MAX][2] = { MULTIMEDIA2_PCM_DEVICE}, [USECASE_AUDIO_PLAYBACK_OFFLOAD] = {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE}, #ifdef MULTIPLE_OFFLOAD_ENABLED [USECASE_AUDIO_PLAYBACK_OFFLOAD2] = {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2}, #ifdef MULTIPLE_OFFLOAD_ENABLED [USECASE_AUDIO_PLAYBACK_OFFLOAD3] = {PLAYBACK_OFFLOAD_DEVICE3, PLAYBACK_OFFLOAD_DEVICE3}, [USECASE_AUDIO_PLAYBACK_OFFLOAD4] = Loading @@ -276,8 +276,6 @@ static int pcm_device_table[AUDIO_USECASE_MAX][2] = { {PLAYBACK_OFFLOAD_DEVICE9, PLAYBACK_OFFLOAD_DEVICE9}, #endif [USECASE_AUDIO_DIRECT_PCM_OFFLOAD] = {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2}, [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE}, [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE}, Loading Loading @@ -633,8 +631,8 @@ static struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = { {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_ULL)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_MULTI_CH)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD)}, #ifdef MULTIPLE_OFFLOAD_ENABLED {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD2)}, #ifdef MULTIPLE_OFFLOAD_ENABLED {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD3)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD4)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD5)}, Loading @@ -643,7 +641,6 @@ static struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = { {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD8)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD9)}, #endif {TO_NAME_INDEX(USECASE_AUDIO_DIRECT_PCM_OFFLOAD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD_LOW_LATENCY)}, {TO_NAME_INDEX(USECASE_VOICE_CALL)}, Loading
hal/msm8974/platform.h +5 −5 Original line number Diff line number Diff line Loading @@ -248,9 +248,13 @@ enum { #endif #define PLAYBACK_OFFLOAD_DEVICE 9 // Direct_PCM #if defined (PLATFORM_MSM8994) || defined (PLATFORM_MSM8996) || defined (PLATFORM_APQ8084) #define PLAYBACK_OFFLOAD_DEVICE2 17 #endif #ifdef MULTIPLE_OFFLOAD_ENABLED #ifdef PLATFORM_APQ8084 #define PLAYBACK_OFFLOAD_DEVICE2 17 #define PLAYBACK_OFFLOAD_DEVICE3 18 #define PLAYBACK_OFFLOAD_DEVICE4 34 #define PLAYBACK_OFFLOAD_DEVICE5 35 Loading @@ -260,7 +264,6 @@ enum { #define PLAYBACK_OFFLOAD_DEVICE9 39 #endif #if defined (PLATFORM_MSM8994) || defined (PLATFORM_MSM8996) #define PLAYBACK_OFFLOAD_DEVICE2 17 #define PLAYBACK_OFFLOAD_DEVICE3 18 #define PLAYBACK_OFFLOAD_DEVICE4 37 #define PLAYBACK_OFFLOAD_DEVICE5 38 Loading @@ -271,9 +274,6 @@ enum { #endif #endif // for DIRECT_PCM #define PLAYBACK_OFFLOAD_DEVICE2 17 #define COMPRESS_VOIP_CALL_PCM_DEVICE 3 #ifdef PLATFORM_MSM8610 Loading