From 2bc7b02259e0edf38432b258594da29571f29713 Mon Sep 17 00:00:00 2001 From: Ravi Kumar Alamanda Date: Thu, 25 Jun 2015 20:08:01 -0700 Subject: hal: add support for ull audio playback Add a new use case and mixer paths to support ultra low latency audio playback. This use case exercises the ULL mode in the DSP. Bug: 10546170 Change-Id: I6685dd0f346072029ca51e4ce92856a13e74ee76 --- hal/audio_hw.c | 4 ++++ hal/audio_hw.h | 1 + hal/msm8974/platform.c | 10 ++++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/hal/audio_hw.c b/hal/audio_hw.c index b307f6c4..486ce8f1 100644 --- a/hal/audio_hw.c +++ b/hal/audio_hw.c @@ -155,6 +155,7 @@ const char * const use_case_table[AUDIO_USECASE_MAX] = { [USECASE_AUDIO_PLAYBACK_MULTI_CH] = "multi-channel-playback", [USECASE_AUDIO_PLAYBACK_OFFLOAD] = "compress-offload-playback", [USECASE_AUDIO_PLAYBACK_TTS] = "audio-tts-playback", + [USECASE_AUDIO_PLAYBACK_ULL] = "audio-ull-playback", [USECASE_AUDIO_RECORD] = "audio-record", [USECASE_AUDIO_RECORD_LOW_LATENCY] = "low-latency-record", @@ -2172,6 +2173,9 @@ static int adev_open_output_stream(struct audio_hw_device *dev, } else if (out->flags & AUDIO_OUTPUT_FLAG_TTS) { out->usecase = USECASE_AUDIO_PLAYBACK_TTS; out->config = pcm_config_deep_buffer; + } else if (out->flags & AUDIO_OUTPUT_FLAG_RAW) { + out->usecase = USECASE_AUDIO_PLAYBACK_ULL; + out->config = pcm_config_low_latency; } else { out->usecase = USECASE_AUDIO_PLAYBACK_LOW_LATENCY; out->config = pcm_config_low_latency; diff --git a/hal/audio_hw.h b/hal/audio_hw.h index b4b2583e..760e2f04 100644 --- a/hal/audio_hw.h +++ b/hal/audio_hw.h @@ -58,6 +58,7 @@ enum { USECASE_AUDIO_PLAYBACK_MULTI_CH, USECASE_AUDIO_PLAYBACK_OFFLOAD, USECASE_AUDIO_PLAYBACK_TTS, + USECASE_AUDIO_PLAYBACK_ULL, /* HFP Use case*/ USECASE_AUDIO_HFP_SCO, diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c index 4958cb12..7baf2265 100644 --- a/hal/msm8974/platform.c +++ b/hal/msm8974/platform.c @@ -136,12 +136,16 @@ static int pcm_device_table[AUDIO_USECASE_MAX][2] = { MULTIMEDIA2_PCM_DEVICE}, [USECASE_AUDIO_PLAYBACK_OFFLOAD] = {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE}, - [USECASE_AUDIO_PLAYBACK_TTS] = {MULTIMEDIA3_PCM_DEVICE, - MULTIMEDIA3_PCM_DEVICE}, + [USECASE_AUDIO_PLAYBACK_TTS] = {MULTIMEDIA2_PCM_DEVICE, + MULTIMEDIA2_PCM_DEVICE}, + [USECASE_AUDIO_PLAYBACK_ULL] = {MULTIMEDIA3_PCM_DEVICE, + MULTIMEDIA3_PCM_DEVICE}, + [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE}, [USECASE_AUDIO_RECORD_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE}, + [USECASE_VOICE_CALL] = {VOICE_CALL_PCM_DEVICE, VOICE_CALL_PCM_DEVICE}, [USECASE_VOICE2_CALL] = {VOICE2_CALL_PCM_DEVICE, VOICE2_CALL_PCM_DEVICE}, @@ -431,6 +435,8 @@ static const struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = { {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_LOW_LATENCY)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_MULTI_CH)}, {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD)}, + {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_TTS)}, + {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_ULL)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD)}, {TO_NAME_INDEX(USECASE_AUDIO_RECORD_LOW_LATENCY)}, {TO_NAME_INDEX(USECASE_VOICE_CALL)}, -- cgit v1.2.3