Merge " config: msmnile_au: Correct VA audiopolicy config path"
diff --git a/configs/audio_vendor_product.mk b/configs/audio_vendor_product.mk
index 7bf600b..e0f394c 100644
--- a/configs/audio_vendor_product.mk
+++ b/configs/audio_vendor_product.mk
@@ -169,7 +169,7 @@
MM_AUDIO += libsynth
MM_AUDIO += libicc
-ifneq ( ,$(filter T Tiramisu 13, $(PLATFORM_VERSION)))
+ifneq ( ,$(filter T Tiramisu 13 U UpsideDownCake 14, $(PLATFORM_VERSION)))
MM_AUDIO += vendor.qti.hardware.automotive.audiocontrol-service
else
MM_AUDIO += android.hardware.automotive.audiocontrol-service.example
diff --git a/configs/msmnile_au/msmnile_au.mk b/configs/msmnile_au/msmnile_au.mk
index 06f5fa7..226279c 100644
--- a/configs/msmnile_au/msmnile_au.mk
+++ b/configs/msmnile_au/msmnile_au.mk
@@ -117,7 +117,7 @@
AUDIO_FEATURE_ENABLED_AUTO_HAL := true
AUDIO_FEATURE_ENABLED_EXT_HW_PLUGIN := true
AUDIO_FEATURE_ENABLED_AUDIO_CONTROL_HAL := true
-ifneq ( ,$(filter T Tiramisu 13, $(PLATFORM_VERSION)))
+ifneq ( ,$(filter T Tiramisu 13 U UpsideDownCake 14, $(PLATFORM_VERSION)))
AUDIO_FEATURE_ENABLED_AUDIO_CONTROL_HAL_AIDL := true
endif
ifneq ($(ENABLE_HYP),true)
@@ -137,7 +137,7 @@
endif
AUDIO_FEATURE_ENABLED_FM_TUNER_EXT := true
AUDIO_FEATURE_ENABLED_ICC := true
-ifneq ( ,$(filter S 12 T 13, $(PLATFORM_VERSION)))
+ifneq ( ,$(filter T Tiramisu 13 U UpsideDownCake 14, $(PLATFORM_VERSION)))
AUDIO_FEATURE_ENABLED_POWER_POLICY := true
endif
ifneq ( ,$(filter msmnile_gvmq msmnile_au msmnile_au_km4 msmnile_au_ar, $(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX)$(TARGET_BOARD_DERIVATIVE_SUFFIX)))
@@ -150,7 +150,7 @@
DEVICE_PACKAGE_OVERLAYS += vendor/qcom/opensource/audio-hal/primary-hal/configs/common/overlay
endif
-ifneq ( ,$(filter T 13, $(PLATFORM_VERSION)))
+ifneq ( ,$(filter T Tiramisu 13 U UpsideDownCake 14, $(PLATFORM_VERSION)))
ifneq ( ,$(filter msmnile_au msmnile_au_km4 msmnile_au_ar, $(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX))$(TARGET_BOARD_DERIVATIVE_SUFFIX))
AUDIO_FEATURE_MMAP_AAUDIO = true
endif
diff --git a/hal/audio_extn/sndmonitor.c b/hal/audio_extn/sndmonitor.c
index 5e39d37..a0bd6d3 100644
--- a/hal/audio_extn/sndmonitor.c
+++ b/hal/audio_extn/sndmonitor.c
@@ -55,6 +55,7 @@
#include <log/log.h>
#include <cutils/str_parms.h>
#include <ctype.h>
+#include <linux/version.h>
#include "audio_hw.h"
#include "audio_extn.h"
@@ -158,17 +159,20 @@
s->fd = fd; // dup?
char *state = read_state(fd);
-
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0))
if (!state) {
free(s);
return -1;
}
bool online = state && !strcmp(state, "ONLINE");
- ALOGV("card %d initial state %s %d", card, state, online);
-
if (state)
free(state);
+#else
+ bool online = atoi(state);
+#endif
+
+ ALOGV("card %d initial state %s %d", card, state, online);
s->status = online ? CARD_STATUS_ONLINE : CARD_STATUS_OFFLINE;
list_add_tail(&sndmonitor.cards, &s->node);
@@ -234,8 +238,11 @@
ALOGW("Skip over non-ADSP snd card %s", card_id);
continue;
}
-
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0))
snprintf(path, sizeof(path), "/proc/asound/card%s/state", ptr);
+#else
+ snprintf(path, sizeof(path), "/sys/kernel/snd_card/card_state");
+#endif
ALOGV("Opening sound card state : %s", path);
fd = open(path, O_RDONLY);
@@ -446,18 +453,26 @@
char rd_buf[9]={0};
card_status_t status;
- if (read(s->fd, rd_buf, 8) <= 0)
+ if (read(s->fd, rd_buf, 8) < 0) {
+ ALOGE("read card state error");
return -1;
+ }
rd_buf[8] = '\0';
lseek(s->fd, 0, SEEK_SET);
ALOGV("card num %d, new state %s", s->card, rd_buf);
-
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0))
if (strstr(rd_buf, "OFFLINE"))
status = CARD_STATUS_OFFLINE;
else if (strstr(rd_buf, "ONLINE"))
status = CARD_STATUS_ONLINE;
+#else
+ if (!atoi(rd_buf))
+ status = CARD_STATUS_OFFLINE;
+ else if (atoi(rd_buf))
+ status = CARD_STATUS_ONLINE;
+#endif
else {
ALOGE("unknown state");
return 0;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 3823ed0..2822751 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -8462,7 +8462,8 @@
out->config.period_size = HDMI_MULTI_PERIOD_BYTES / (out->config.channels *
audio_bytes_per_sample(config->format));
out->config.format = pcm_format_from_audio_format(out->format);
- } else if (compare_device_type(&out->device_list, AUDIO_DEVICE_OUT_BUS)) {
+ } else if ((!(out->flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD)) &&
+ compare_device_type(&out->device_list, AUDIO_DEVICE_OUT_BUS)) {
ret = audio_extn_auto_hal_open_output_stream(out);
if (ret) {
ALOGE("%s: Failed to open output stream for bus device", __func__);