hal: add "haptics" device definition
Add a particular device for haptics usecase, remove
previous combo device definitions.
Change-Id: I4f4b6b464f2a0244c7014157cbbbb7ff783abf8a
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index fa4e2d9..48325f5 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -1363,6 +1363,27 @@
if(ctl)
mixer_ctl_set_array(ctl, app_type_cfg, len);
+
+ /* send app type cfg for haptics */
+ if (usecase->id == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS) {
+ snprintf(mixer_ctl_name, sizeof(mixer_ctl_name),
+ "Audio Stream %d App Type Cfg", adev->haptic_pcm_device_id );
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ if (!ctl) {
+ ALOGE("%s: Could not get ctl for mixer cmd - %s", __func__,
+ mixer_ctl_name);
+ rc = -EINVAL;
+ goto exit_send_app_type_cfg;
+ }
+ acdb_dev_id = platform_get_snd_device_acdb_id(SND_DEVICE_OUT_HAPTICS);
+ snd_device_be_idx = platform_get_snd_device_backend_index(SND_DEVICE_OUT_HAPTICS);
+ /* haptics acdb id */
+ app_type_cfg[1] = acdb_dev_id;
+ /* haptics be index */
+ app_type_cfg[3] = snd_device_be_idx;
+ mixer_ctl_set_array(ctl, app_type_cfg, len);
+ }
+
rc = 0;
exit_send_app_type_cfg:
return rc;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 7ec2b50..f73b9e1 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2959,6 +2959,9 @@
if (platform_check_codec_asrc_support(adev->platform))
check_and_set_asrc_mode(adev, usecase, out_snd_device);
enable_snd_device(adev, out_snd_device);
+ /* Enable haptics device for haptic usecase */
+ if (usecase->id == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
+ enable_snd_device(adev, SND_DEVICE_OUT_HAPTICS);
}
if (in_snd_device != SND_DEVICE_NONE) {
@@ -3681,6 +3684,8 @@
/* 2. Disable the rx device */
disable_snd_device(adev, uc_info->out_snd_device);
+ if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
+ disable_snd_device(adev, SND_DEVICE_OUT_HAPTICS);
audio_extn_extspk_update(adev->extspk);
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 88ed018..14ffc23 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -538,13 +538,10 @@
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER] = "speaker-and-headphones-hifi-filter",
[SND_DEVICE_OUT_HEADPHONES_44_1] = "headphones-44.1",
[SND_DEVICE_OUT_LINE] = "line",
- [SND_DEVICE_OUT_SPEAKER_AND_HAPTICS] = "speaker-and-haptics",
- [SND_DEVICE_OUT_HEADPHONES_AND_HAPTICS] = "headphones-and-haptics",
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES] = "speaker-and-headphones",
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES] = "speaker-safe-and-headphones",
[SND_DEVICE_OUT_SPEAKER_AND_LINE] = "speaker-and-line",
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE] = "speaker-safe-and-line",
- [SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS] = "speaker-headphones-and-haptics",
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1] = "speaker-and-headphones-ext-1",
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_2] = "speaker-and-headphones-ext-2",
[SND_DEVICE_OUT_VOICE_HANDSET] = "voice-handset",
@@ -571,8 +568,6 @@
[SND_DEVICE_OUT_BT_A2DP] = "bt-a2dp",
[SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP] = "speaker-and-bt-a2dp",
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP] = "speaker-safe-and-bt-a2dp",
- [SND_DEVICE_OUT_SPEAKER_BT_A2DP_AND_HAPTICS] = "speaker-bt-a2dp-and-haptics",
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_A2DP_AND_HAPTICS] = "speaker-safe-bt-a2dp-and-haptics",
[SND_DEVICE_OUT_VOICE_HANDSET_TMUS] = "voice-handset-tmus",
[SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = "voice-tty-full-headphones",
[SND_DEVICE_OUT_VOICE_TTY_FULL_HEADSET] = "voice-tty-full-headset",
@@ -590,8 +585,6 @@
[SND_DEVICE_OUT_VOICE_USB_HEADPHONES] = "usb-headphones",
[SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET] = "speaker-and-usb-headphones",
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET] = "speaker-safe-and-usb-headphones",
- [SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS] = "speaker-usb-headphones-and-haptics",
- [SND_DEVICE_OUT_SPEAKER_SAFE_USB_HEADSET_AND_HAPTICS] = "speaker-safe-usb-headphones-and-haptics",
[SND_DEVICE_OUT_TRANSMISSION_FM] = "transmission-fm",
[SND_DEVICE_OUT_ANC_HEADSET] = "anc-headphones",
[SND_DEVICE_OUT_ANC_FB_HEADSET] = "anc-fb-headphones",
@@ -622,12 +615,6 @@
[SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_SWB] = "speaker-and-bt-sco-swb",
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_WB] = "speaker-safe-and-bt-sco-wb",
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB] = "speaker-safe-and-bt-sco-swb",
- [SND_DEVICE_OUT_SPEAKER_BT_SCO_AND_HAPTICS] = "speaker-bt-sco-and-haptics",
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS] = "speaker-safe-bt-sco-and-haptics",
- [SND_DEVICE_OUT_SPEAKER_BT_SCO_WB_AND_HAPTICS] = "speaker-bt-sco-wb-and-haptics",
- [SND_DEVICE_OUT_SPEAKER_BT_SCO_SWB_AND_HAPTICS] = "speaker-bt-sco-swb-and-haptics",
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_WB_AND_HAPTICS] = "speaker-safe-bt-sco-wb-and-haptics",
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS] = "speaker-safe-bt-sco-swb-and-haptics",
[SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO] = "wsa-speaker-and-bt-sco",
[SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB] = "wsa-speaker-and-bt-sco-wb",
[SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_SWB] = "wsa-speaker-and-bt-sco-wb",
@@ -639,6 +626,7 @@
[SND_DEVICE_OUT_BUS_PAX] = "bus-speaker",
[SND_DEVICE_OUT_BUS_RSE] = "bus-speaker",
[SND_DEVICE_OUT_CALL_PROXY] = "call-proxy",
+ [SND_DEVICE_OUT_HAPTICS] = "haptics",
/* Capture sound devices */
[SND_DEVICE_IN_HANDSET_MIC] = "handset-mic",
@@ -846,12 +834,8 @@
[SND_DEVICE_OUT_HEADPHONES] = 10,
[SND_DEVICE_OUT_HEADPHONES_DSD] = 10,
[SND_DEVICE_OUT_HEADPHONES_44_1] = 10,
- [SND_DEVICE_OUT_HEADPHONES_AND_HAPTICS] = 10,
- [SND_DEVICE_OUT_SPEAKER_AND_HAPTICS] = 10,
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES] = 10,
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES] = 10,
- [SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS] = 10,
- [SND_DEVICE_OUT_SPEAKER_SAFE_HEADPHONES_AND_HAPTICS] = 10,
[SND_DEVICE_OUT_SPEAKER_AND_LINE] = 10,
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE] = 10,
[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1] = 130,
@@ -880,22 +864,15 @@
[SND_DEVICE_OUT_DISPLAY_PORT1] = 18,
[SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT] = 14,
[SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT1] = 14,
- [SND_DEVICE_OUT_SPEAKER_DISPLAY_PORT_AND_HAPTICS] = 14,
- [SND_DEVICE_OUT_SPEAKER_DISPLAY_PORT1_AND_HAPTICS] = 14,
[SND_DEVICE_OUT_BT_SCO] = 22,
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO] = 14,
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS] = 14,
[SND_DEVICE_OUT_BT_SCO_WB] = 39,
[SND_DEVICE_OUT_BT_SCO_SWB] = 39,
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_WB] = 14,
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB] = 14,
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_WB_AND_HAPTICS] = 14,
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS] = 14,
[SND_DEVICE_OUT_BT_A2DP] = 20,
[SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP] = 14,
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP] = 14,
- [SND_DEVICE_OUT_SPEAKER_BT_A2DP_AND_HAPTICS] = 14,
- [SND_DEVICE_OUT_SPEAKER_SAFE_BT_A2DP_AND_HAPTICS] = 14,
[SND_DEVICE_OUT_VOICE_HANDSET_TMUS] = 88,
[SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = 17,
[SND_DEVICE_OUT_VOICE_TTY_FULL_HEADSET] = 17,
@@ -913,8 +890,6 @@
[SND_DEVICE_OUT_VOICE_USB_HEADPHONES] = 45,
[SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET] = 14,
[SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET] = 14,
- [SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS] = 14,
- [SND_DEVICE_OUT_SPEAKER_SAFE_USB_HEADSET_AND_HAPTICS] = 14,
[SND_DEVICE_OUT_TRANSMISSION_FM] = 0,
[SND_DEVICE_OUT_ANC_HEADSET] = 26,
[SND_DEVICE_OUT_ANC_FB_HEADSET] = 27,
@@ -943,6 +918,7 @@
[SND_DEVICE_OUT_BUS_PAX] = 60,
[SND_DEVICE_OUT_BUS_RSE] = 60,
[SND_DEVICE_OUT_CALL_PROXY] = 32,
+ [SND_DEVICE_OUT_HAPTICS] = 200,
[SND_DEVICE_IN_HANDSET_MIC] = 4,
[SND_DEVICE_IN_HANDSET_MIC_SB] = 163,
[SND_DEVICE_IN_HANDSET_MIC_NN] = 183,
@@ -1107,12 +1083,8 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER)},
{TO_NAME_INDEX(SND_DEVICE_OUT_HEADPHONES_44_1)},
{TO_NAME_INDEX(SND_DEVICE_OUT_LINE)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_HAPTICS)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_HEADPHONES_AND_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_HEADPHONES_AND_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_LINE)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1)},
@@ -1134,20 +1106,15 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_DISPLAY_PORT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_DISPLAY_PORT1)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_DISPLAY_PORT_AND_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BT_SCO)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BT_SCO_WB)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BT_SCO_SWB)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_WB)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_WB_AND_HAPTICS)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BT_A2DP)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_BT_A2DP_AND_HAPTICS)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_BT_A2DP_AND_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_HANDSET_TMUS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_HAC_HANDSET)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES)},
@@ -1160,9 +1127,6 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_SWB)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_BT_SCO_AND_HAPTICS)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_BT_SCO_WB_AND_HAPTICS)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_BT_SCO_SWB_AND_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_USB)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_VCO_USB)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TX)},
@@ -1173,8 +1137,6 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_USB_HEADPHONES)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS)},
- {TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_SAFE_USB_HEADSET_AND_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADSET_SPEC)},
{TO_NAME_INDEX(SND_DEVICE_OUT_TRANSMISSION_FM)},
{TO_NAME_INDEX(SND_DEVICE_OUT_ANC_HEADSET)},
@@ -1204,6 +1166,7 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_BUS_PAX)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BUS_RSE)},
{TO_NAME_INDEX(SND_DEVICE_OUT_CALL_PROXY)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_HAPTICS)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_MIC_SB)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_MIC_NN)},
@@ -2345,10 +2308,6 @@
backend_tag_table[SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER] = strdup("headphones-hifi-filter");
backend_tag_table[SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER] =
strdup("speaker-and-headphones-hifi-filter");
- backend_tag_table[SND_DEVICE_OUT_SPEAKER_AND_HAPTICS] =
- strdup("speaker-and-haptics");
- backend_tag_table[SND_DEVICE_OUT_HEADPHONES_AND_HAPTICS] =
- strdup("headphones-and-haptics");
backend_tag_table[SND_DEVICE_OUT_HEADPHONES_44_1] = strdup("headphones-44.1");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = strdup("voice-speaker-vbat");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT] = strdup("voice-speaker-2-vbat");
@@ -2368,6 +2327,7 @@
backend_tag_table[SND_DEVICE_OUT_VOICE_HEARING_AID] = strdup("hearing-aid");
backend_tag_table[SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP_MMSECNS] = strdup("bt-sco-mmsecns");
backend_tag_table[SND_DEVICE_OUT_CALL_PROXY] = strdup("call-proxy");
+ backend_tag_table[SND_DEVICE_OUT_HAPTICS] = strdup("haptics");
backend_tag_table[SND_DEVICE_IN_CALL_PROXY] = strdup("call-proxy-in");
hw_interface_table[SND_DEVICE_OUT_HANDSET] = strdup("SLIMBUS_0_RX");
@@ -2470,6 +2430,7 @@
hw_interface_table[SND_DEVICE_OUT_BUS_PAX] = strdup("QUAT_TDM_RX_0");
hw_interface_table[SND_DEVICE_OUT_BUS_RSE] = strdup("QUIN_TDM_RX_0");
hw_interface_table[SND_DEVICE_OUT_CALL_PROXY] = strdup("CALL_PROXY_RX");
+ hw_interface_table[SND_DEVICE_OUT_HAPTICS] = strdup("RX_CDC_DMA_RX_6");
hw_interface_table[SND_DEVICE_IN_HANDSET_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_HANDSET_MIC_SB] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_HANDSET_MIC_NN] = strdup("SLIMBUS_0_TX");
@@ -5317,9 +5278,6 @@
port = USB_AUDIO_RX_BACKEND;
else if (strcmp(backend_tag_table[snd_device], "call-proxy") == 0)
port = CALL_PROXY_RX_BACKEND;
- else if (strncmp(backend_tag_table[snd_device], "headphones-and-haptics",
- sizeof("headphones-and-haptics")) == 0)
- port = HEADPHONE_BACKEND;
}
} else if (snd_device >= SND_DEVICE_IN_BEGIN && snd_device < SND_DEVICE_IN_END) {
port = DEFAULT_CODEC_TX_BACKEND;
@@ -5475,6 +5433,25 @@
}
}
+ /* send haptics audio calibration */
+ if (usecase->id == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS) {
+ acdb_dev_id =
+ acdb_device_table[platform_get_spkr_prot_snd_device(SND_DEVICE_OUT_HAPTICS)];
+ acdb_dev_type = ACDB_DEV_TYPE_OUT;
+ sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ if (my_data->acdb_send_audio_cal_v4) {
+ my_data->acdb_send_audio_cal_v4(acdb_dev_id, acdb_dev_type,
+ app_type, sample_rate, i + 1,
+ sample_rate);
+ } else if (my_data->acdb_send_audio_cal_v3) {
+ my_data->acdb_send_audio_cal_v3(acdb_dev_id, acdb_dev_type,
+ app_type, sample_rate, i + 1);
+ } else if (my_data->acdb_send_audio_cal) {
+ my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
+ sample_rate);
+ }
+ }
+
return 0;
}
@@ -5871,12 +5848,6 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_HEADPHONES;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_HEADPHONES)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_HEADPHONES;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_AND_LINE &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_LINE)) {
*num_devices = 2;
@@ -5889,12 +5860,6 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE;
new_snd_devices[1] = SND_DEVICE_OUT_HEADPHONES;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_HEADPHONES_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE, SND_DEVICE_OUT_HEADPHONES)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_HEADPHONES;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE, SND_DEVICE_OUT_LINE)) {
*num_devices = 2;
@@ -5989,12 +5954,6 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_USB_HEADSET;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_USB_HEADSET)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_USB_HEADSET;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER)) {
*num_devices = 2;
@@ -6007,12 +5966,6 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_BT_SCO_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_BT_SCO)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE,
SND_DEVICE_OUT_BT_SCO)) {
@@ -6020,31 +5973,12 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE;
new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE,
- SND_DEVICE_OUT_BT_SCO)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO;
- ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_BT_SCO_WB_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_BT_SCO_WB)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_WB;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_BT_SCO_WB)) {
*num_devices = 2;
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_WB;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_BT_SCO_WB_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_BT_SCO_WB)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_WB;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_WB &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE,
SND_DEVICE_OUT_BT_SCO_WB)) {
@@ -6058,12 +5992,6 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_SWB;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_BT_SCO_SWB_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, SND_DEVICE_OUT_BT_SCO_SWB)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_SWB;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE,
SND_DEVICE_OUT_BT_SCO_SWB)) {
@@ -6071,25 +5999,12 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE;
new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_SWB;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE,
- SND_DEVICE_OUT_BT_SCO_SWB)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_SCO_SWB;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE, SND_DEVICE_OUT_USB_HEADSET)) {
*num_devices = 2;
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE;
new_snd_devices[1] = SND_DEVICE_OUT_USB_HEADSET;
ret = 0;
- } else if (snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_USB_HEADSET_AND_HAPTICS &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE, SND_DEVICE_OUT_USB_HEADSET)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_USB_HEADSET;
- ret = 0;
} else if (snd_device == SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_WSA, SND_DEVICE_OUT_BT_SCO)) {
*num_devices = 2;
@@ -6107,11 +6022,6 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
ret = 0;
- } else if (SND_DEVICE_OUT_SPEAKER_BT_A2DP_AND_HAPTICS == snd_device) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
- ret = 0;
} else if (SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP == snd_device &&
!platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE,
SND_DEVICE_OUT_BT_A2DP)) {
@@ -6119,13 +6029,6 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE;
new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
ret = 0;
- } else if (SND_DEVICE_OUT_SPEAKER_SAFE_BT_A2DP_AND_HAPTICS == snd_device &&
- !platform_check_backends_match(SND_DEVICE_OUT_SPEAKER_SAFE,
- SND_DEVICE_OUT_BT_A2DP)) {
- *num_devices = 2;
- new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER_SAFE_AND_HAPTICS;
- new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
- ret = 0;
} else if (SND_DEVICE_IN_INCALL_REC_RX_TX == snd_device) {
*num_devices = 2;
new_snd_devices[0] = SND_DEVICE_IN_INCALL_REC_RX;
@@ -6370,8 +6273,6 @@
else if (audio_extn_is_hifi_filter_enabled(adev, out, snd_device,
my_data->codec_variant, channel_count, 1))
snd_device = SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER;
- else if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS;
else
snd_device = SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES;
} else if (compare_device_type(&devices, AUDIO_DEVICE_OUT_LINE) &&
@@ -6401,8 +6302,6 @@
else {
if (is_active_voice_call)
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES;
- else if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS;
else
snd_device = SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES;
}
@@ -6434,30 +6333,18 @@
}
} else if (compare_device_type(&devices, AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET) &&
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER)) {
- if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS;
- else
- snd_device = SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET;
+ snd_device = SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET;
} else if ((compare_device_type(&devices, AUDIO_DEVICE_OUT_USB_DEVICE) &&
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER)) ||
(compare_device_type(&devices, AUDIO_DEVICE_OUT_USB_HEADSET) &&
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER))) {
- if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS;
- else
- snd_device = SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET;
+ snd_device = SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET;
} else if (compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER) &&
is_a2dp_out_device_type(&devices)) {
- if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_BT_A2DP_AND_HAPTICS;
- else
- snd_device = SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP;
+ snd_device = SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP;
} else if (compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER_SAFE) &&
is_a2dp_out_device_type(&devices)) {
- if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_SAFE_BT_A2DP_AND_HAPTICS;
- else
- snd_device = SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP;
+ snd_device = SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP;
} else if (is_sco_out_device_type(&devices) &&
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER)) {
if (my_data->is_wsa_speaker) {
@@ -6470,10 +6357,6 @@
} else {
if (adev->swb_speech_mode != SPEECH_MODE_INVALID)
snd_device = SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_SWB;
- else if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = adev->bt_wb_speech_enabled ?
- SND_DEVICE_OUT_SPEAKER_BT_SCO_SWB_AND_HAPTICS :
- SND_DEVICE_OUT_SPEAKER_BT_SCO_AND_HAPTICS;
else
snd_device = adev->bt_wb_speech_enabled ?
SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB :
@@ -6483,10 +6366,6 @@
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER_SAFE)) {
if (adev->swb_speech_mode != SPEECH_MODE_INVALID)
snd_device = SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB;
- else if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = adev->bt_wb_speech_enabled ?
- SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS :
- SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS;
else
snd_device = adev->bt_wb_speech_enabled ?
SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_WB :
@@ -6495,10 +6374,7 @@
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER_SAFE)) ||
(compare_device_type(&devices, AUDIO_DEVICE_OUT_USB_HEADSET) &&
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER_SAFE))) {
- if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_SAFE_USB_HEADSET_AND_HAPTICS;
- else
- snd_device = SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET;
+ snd_device = SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET;
} else {
ALOGE("%s: Invalid combo device(%#x)", __func__, get_device_types(&devices));
goto exit;
@@ -6693,10 +6569,7 @@
} else if (compare_device_type(&devices, AUDIO_DEVICE_OUT_LINE)) {
snd_device = SND_DEVICE_OUT_LINE;
} else {
- if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_HEADPHONES_AND_HAPTICS;
- else
- snd_device = SND_DEVICE_OUT_HEADPHONES;
+ snd_device = SND_DEVICE_OUT_HEADPHONES;
}
} else if (compare_device_type(&devices, AUDIO_DEVICE_OUT_LINE)) {
snd_device = SND_DEVICE_OUT_LINE;
@@ -6724,10 +6597,7 @@
else if (my_data->is_wsa_speaker)
snd_device = SND_DEVICE_OUT_SPEAKER_WSA;
else {
- if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
- snd_device = SND_DEVICE_OUT_SPEAKER_AND_HAPTICS;
- else
- snd_device = SND_DEVICE_OUT_SPEAKER;
+ snd_device = SND_DEVICE_OUT_SPEAKER;
}
} else if (is_sco_out_device_type(&devices)) {
if (adev->swb_speech_mode != SPEECH_MODE_INVALID)
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index a475ed7..1bca0c6 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -72,14 +72,9 @@
SND_DEVICE_OUT_HEADPHONES_DSD,
SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER,
SND_DEVICE_OUT_HEADPHONES_44_1,
- SND_DEVICE_OUT_HEADPHONES_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_SAFE_AND_HAPTICS,
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER,
SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES,
- SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_SAFE_HEADPHONES_AND_HAPTICS,
SND_DEVICE_OUT_SPEAKER_AND_LINE,
SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE,
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1,
@@ -99,16 +94,12 @@
SND_DEVICE_OUT_DISPLAY_PORT1,
SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT,
SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT1,
- SND_DEVICE_OUT_SPEAKER_DISPLAY_PORT_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_DISPLAY_PORT1_AND_HAPTICS,
SND_DEVICE_OUT_BT_SCO,
SND_DEVICE_OUT_BT_SCO_WB,
SND_DEVICE_OUT_BT_SCO_SWB,
SND_DEVICE_OUT_BT_A2DP,
SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP,
SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP,
- SND_DEVICE_OUT_SPEAKER_BT_A2DP_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_SAFE_BT_A2DP_AND_HAPTICS,
SND_DEVICE_OUT_VOICE_HANDSET_TMUS,
SND_DEVICE_OUT_SPEAKER_AND_BT_SCO,
SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO,
@@ -116,12 +107,6 @@
SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_WB,
SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_SWB,
SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB,
- SND_DEVICE_OUT_SPEAKER_BT_SCO_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_BT_SCO_WB_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_WB_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_BT_SCO_SWB_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS,
SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO,
SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB,
SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_SWB,
@@ -141,8 +126,6 @@
SND_DEVICE_OUT_USB_HEADPHONES,
SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET,
SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET,
- SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS,
- SND_DEVICE_OUT_SPEAKER_SAFE_USB_HEADSET_AND_HAPTICS,
SND_DEVICE_OUT_VOICE_USB_HEADPHONES,
SND_DEVICE_OUT_VOICE_USB_HEADSET,
SND_DEVICE_OUT_USB_HEADSET_SPEC,
@@ -183,6 +166,7 @@
SND_DEVICE_OUT_BUS_PAX,
SND_DEVICE_OUT_BUS_RSE,
SND_DEVICE_OUT_CALL_PROXY,
+ SND_DEVICE_OUT_HAPTICS,
SND_DEVICE_OUT_END,
/*