Merge tag 'AUDIO.LA.8.0.r1-10800-KAILUA.0' into staging/lineage-21.0_merge-AUDIO.LA.8.0.r1-10800-KAILUA.0
AUDIO.LA.8.0.r1-10800-KAILUA.0
# By Ritu Sharma (1) and Vijay Kumar Maddula (1)
# Via Gerrit - the friendly Code Review server (1) and others
* tag 'AUDIO.LA.8.0.r1-10800-KAILUA.0':
hal: add support for hdmi out device
hal: Update controller during DP device disconnection.
Change-Id: I3f92173d6367af90e11db9d028380a5cde117bbd
diff --git a/hal/AudioDevice.cpp b/hal/AudioDevice.cpp
index 1ea826f..98e1593 100644
--- a/hal/AudioDevice.cpp
+++ b/hal/AudioDevice.cpp
@@ -35,7 +35,7 @@
*
* Changes from Qualcomm Innovation Center are provided under the following license:
*
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
@@ -144,6 +144,11 @@
| ORIENTATION) | GEOMETRIC_LOCATION) */
};
+enum {
+ DISPLAYPORT_CONTROLLER = 0,
+ HDMI_CONTROLLER = 1,
+};
+
static bool hdr_set_parameters(std::shared_ptr<AudioDevice> adev,
struct str_parms *parms) {
@@ -1752,6 +1757,7 @@
AudioExtn::get_controller_stream_from_params(parms, &controller, &stream);
param_device_connection.device_config.dp_config.controller = controller;
param_device_connection.device_config.dp_config.stream = stream;
+ dp_controller = controller;
dp_stream = stream;
AHAL_INFO("plugin device cont %d stream %d", controller, stream);
}
@@ -2241,20 +2247,28 @@
auto it = android_device_map_.find(hal_device_id);
if (it != android_device_map_.end() &&
audio_is_input_device(it->first) == audio_is_input_device(hal_device_id)) {
- AHAL_DBG("Found haldeviceId: %x and PAL Device ID %d",
- it->first, it->second);
if (it->second == PAL_DEVICE_OUT_AUX_DIGITAL ||
it->second == PAL_DEVICE_OUT_HDMI) {
AHAL_DBG("dp_controller: %d dp_stream: %d",
dp_controller, dp_stream);
- if (dp_controller * MAX_STREAMS_PER_CONTROLLER + dp_stream) {
- pal_device_id[device_count] = PAL_DEVICE_OUT_AUX_DIGITAL_1;
- } else {
- pal_device_id[device_count] = it->second;
+
+ switch (dp_controller) {
+ case DISPLAYPORT_CONTROLLER :
+ if (dp_stream == 0)
+ pal_device_id[device_count] = it->second;
+ else
+ pal_device_id[device_count] = PAL_DEVICE_OUT_AUX_DIGITAL_1;
+ break;
+ case HDMI_CONTROLLER :
+ pal_device_id[device_count] = PAL_DEVICE_OUT_HDMI;
+ break;
}
} else {
pal_device_id[device_count] = it->second;
}
+
+ AHAL_DBG("Found haldeviceId: %x and PAL Device ID %d",
+ it->first, pal_device_id[device_count]);
}
++device_count;
}
diff --git a/hal/AudioStream.cpp b/hal/AudioStream.cpp
index 3c88c56..3317237 100644
--- a/hal/AudioStream.cpp
+++ b/hal/AudioStream.cpp
@@ -30,7 +30,7 @@
/*
* Changes from Qualcomm Innovation Center are provided under the following license:
*
- * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted (subject to the limitations in the
@@ -2564,10 +2564,11 @@
ret = AudioExtn::get_controller_stream_from_params(parms, &controller, &stream);
if (ret >= 0) {
- adevice->dp_controller = controller;
- adevice->dp_stream = stream;
- if (stream >= 0 || controller >= 0)
+ if (stream >= 0 && controller >= 0) {
+ adevice->dp_controller = controller;
+ adevice->dp_stream = stream;
AHAL_INFO("ret %d, plugin device cont %d stream %d", ret, controller, stream);
+ }
} else {
AHAL_ERR("error %d, failed to get stream and controller", ret);
}