Loading configs/lahaina/lahaina.mk +32 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,38 @@ PRODUCT_COPY_FILES += \ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml \ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_hearing_aid_audio_policy_configuration.xml #TODO: Delete xml's from obsolete paths # Audio configuration xml's related to Lahaina QCV_FAMILY_SKUS := lahaina DEVICE_SKU := lahaina PRODUCT_COPY_FILES += \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_io_policy.conf \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_effects.conf \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_effects.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_platform_info.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_platform_info.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_platform_info_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_platform_info_qrd.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_platform_info_intcodec.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_mixer_paths.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_mixer_paths_qrd.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_mixer_paths_cdp.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_qrd.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_cdp.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs_stock.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_tuning_mixer.txt #Copy generic APM XML file to common folder for runtime copy PRODUCT_COPY_FILES += \ vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_policy_configuration.xml # Audio configuration xml's common to Lahaina family PRODUCT_COPY_FILES += \ $(foreach DEVICE_SKU, $(QCV_FAMILY_SKUS), \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)_qssi/audio_policy_configuration.xml) # Reduce client buffer size for fast audio output tracks PRODUCT_PROPERTY_OVERRIDES += \ af.fast_track_multiplier=1 Loading hal/audio_extn/audio_extn.h +5 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,9 @@ int audio_extn_parse_compress_metadata(struct stream_out *out, #define AUDIO_PARAMETER_KEY_HIFI_AUDIO_FILTER "hifi_filter" #define VENDOR_CONFIG_PATH_MAX_LENGTH 128 #define VENDOR_CONFIG_FILE_MAX_LENGTH 128 struct snd_card_split { char device[HW_INFO_ARRAY_MAX_SIZE]; char snd_card[HW_INFO_ARRAY_MAX_SIZE]; Loading Loading @@ -1402,4 +1405,6 @@ void audio_extn_set_custom_mtmx_params_v1(struct audio_device *adev, snd_device_t audio_extn_get_loopback_snd_device(struct audio_device *adev, struct audio_usecase *usecase, int channel_count); void audio_get_vendor_config_path(char* config_file_path, int path_size); #endif /* AUDIO_EXTN_H */ hal/audio_extn/utils.c +45 −10 Original line number Diff line number Diff line Loading @@ -54,13 +54,8 @@ #include "audio_parsers.h" #endif #ifdef LINUX_ENABLED #define AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE "/etc/audio_output_policy.conf" #define AUDIO_IO_POLICY_VENDOR_CONFIG_FILE "/etc/audio_io_policy.conf" #else #define AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE "/vendor/etc/audio_output_policy.conf" #define AUDIO_IO_POLICY_VENDOR_CONFIG_FILE "/vendor/etc/audio_io_policy.conf" #endif #define AUDIO_IO_POLICY_VENDOR_CONFIG_FILE_NAME "audio_io_policy.conf" #define AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE_NAME "audio_output_policy.conf" #define OUTPUTS_TAG "outputs" #define INPUTS_TAG "inputs" Loading Loading @@ -517,6 +512,25 @@ static void send_app_type_cfg(void *platform, struct mixer *mixer, } } /* Function to retrieve audio vendor configs path */ void audio_get_vendor_config_path (char* config_file_path, int path_size) { char vendor_sku[PROPERTY_VALUE_MAX] = {'\0'}; if (property_get("ro.boot.product.vendor.sku", vendor_sku, "") <= 0) { #ifdef LINUX_ENABLED /* Audio configs are stored in /etc */ snprintf(config_file_path, path_size, "%s", "/etc"); #else /* Audio configs are stored in /vendor/etc */ snprintf(config_file_path, path_size, "%s", "/vendor/etc"); #endif } else { /* Audio configs are stored in /vendor/etc/audio/sku_${vendor_sku} */ snprintf(config_file_path, path_size, "%s%s", "/vendor/etc/audio/sku_", vendor_sku); } } void audio_extn_utils_update_streams_cfg_lists(void *platform, struct mixer *mixer, struct listnode *streams_output_cfg_list, Loading @@ -524,6 +538,9 @@ void audio_extn_utils_update_streams_cfg_lists(void *platform, { cnode *root; char *data = NULL; char vendor_config_path[VENDOR_CONFIG_PATH_MAX_LENGTH]; char audio_io_policy_file[VENDOR_CONFIG_FILE_MAX_LENGTH]; char audio_output_policy_file[VENDOR_CONFIG_FILE_MAX_LENGTH]; ALOGV("%s", __func__); list_init(streams_output_cfg_list); Loading @@ -535,11 +552,29 @@ void audio_extn_utils_update_streams_cfg_lists(void *platform, return; } data = (char *)load_file(AUDIO_IO_POLICY_VENDOR_CONFIG_FILE, NULL); /* Get path for audio configuration files in vendor */ audio_get_vendor_config_path(vendor_config_path, sizeof(vendor_config_path)); /* Get path for audio_io_policy_file in vendor */ snprintf(audio_io_policy_file, sizeof(audio_io_policy_file), "%s/%s", vendor_config_path, AUDIO_IO_POLICY_VENDOR_CONFIG_FILE_NAME); /* Load audio_io_policy_file from vendor */ data = (char *)load_file(audio_io_policy_file, NULL); if (data == NULL) { ALOGD("%s: failed to open io config file(%s), trying older config file", __func__, AUDIO_IO_POLICY_VENDOR_CONFIG_FILE); data = (char *)load_file(AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE, NULL); __func__, audio_io_policy_file); /* Get path for audio_output_policy_file in vendor */ snprintf(audio_output_policy_file, sizeof(audio_output_policy_file), "%s/%s", vendor_config_path, AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE_NAME); /* Load audio_output_policy_file from vendor */ data = (char *)load_file(audio_output_policy_file, NULL); if (data == NULL) { send_app_type_cfg(platform, mixer, streams_output_cfg_list, Loading Loading
configs/lahaina/lahaina.mk +32 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,38 @@ PRODUCT_COPY_FILES += \ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml \ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_hearing_aid_audio_policy_configuration.xml #TODO: Delete xml's from obsolete paths # Audio configuration xml's related to Lahaina QCV_FAMILY_SKUS := lahaina DEVICE_SKU := lahaina PRODUCT_COPY_FILES += \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_io_policy.conf \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_effects.conf \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_effects.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_platform_info.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_platform_info.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_platform_info_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_platform_info_qrd.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_platform_info_intcodec.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_mixer_paths.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_mixer_paths_qrd.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/sound_trigger_mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/sound_trigger_mixer_paths_cdp.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_qrd.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_cdp.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs_stock.xml \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_tuning_mixer.txt #Copy generic APM XML file to common folder for runtime copy PRODUCT_COPY_FILES += \ vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_policy_configuration.xml # Audio configuration xml's common to Lahaina family PRODUCT_COPY_FILES += \ $(foreach DEVICE_SKU, $(QCV_FAMILY_SKUS), \ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)_qssi/audio_policy_configuration.xml) # Reduce client buffer size for fast audio output tracks PRODUCT_PROPERTY_OVERRIDES += \ af.fast_track_multiplier=1 Loading
hal/audio_extn/audio_extn.h +5 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,9 @@ int audio_extn_parse_compress_metadata(struct stream_out *out, #define AUDIO_PARAMETER_KEY_HIFI_AUDIO_FILTER "hifi_filter" #define VENDOR_CONFIG_PATH_MAX_LENGTH 128 #define VENDOR_CONFIG_FILE_MAX_LENGTH 128 struct snd_card_split { char device[HW_INFO_ARRAY_MAX_SIZE]; char snd_card[HW_INFO_ARRAY_MAX_SIZE]; Loading Loading @@ -1402,4 +1405,6 @@ void audio_extn_set_custom_mtmx_params_v1(struct audio_device *adev, snd_device_t audio_extn_get_loopback_snd_device(struct audio_device *adev, struct audio_usecase *usecase, int channel_count); void audio_get_vendor_config_path(char* config_file_path, int path_size); #endif /* AUDIO_EXTN_H */
hal/audio_extn/utils.c +45 −10 Original line number Diff line number Diff line Loading @@ -54,13 +54,8 @@ #include "audio_parsers.h" #endif #ifdef LINUX_ENABLED #define AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE "/etc/audio_output_policy.conf" #define AUDIO_IO_POLICY_VENDOR_CONFIG_FILE "/etc/audio_io_policy.conf" #else #define AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE "/vendor/etc/audio_output_policy.conf" #define AUDIO_IO_POLICY_VENDOR_CONFIG_FILE "/vendor/etc/audio_io_policy.conf" #endif #define AUDIO_IO_POLICY_VENDOR_CONFIG_FILE_NAME "audio_io_policy.conf" #define AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE_NAME "audio_output_policy.conf" #define OUTPUTS_TAG "outputs" #define INPUTS_TAG "inputs" Loading Loading @@ -517,6 +512,25 @@ static void send_app_type_cfg(void *platform, struct mixer *mixer, } } /* Function to retrieve audio vendor configs path */ void audio_get_vendor_config_path (char* config_file_path, int path_size) { char vendor_sku[PROPERTY_VALUE_MAX] = {'\0'}; if (property_get("ro.boot.product.vendor.sku", vendor_sku, "") <= 0) { #ifdef LINUX_ENABLED /* Audio configs are stored in /etc */ snprintf(config_file_path, path_size, "%s", "/etc"); #else /* Audio configs are stored in /vendor/etc */ snprintf(config_file_path, path_size, "%s", "/vendor/etc"); #endif } else { /* Audio configs are stored in /vendor/etc/audio/sku_${vendor_sku} */ snprintf(config_file_path, path_size, "%s%s", "/vendor/etc/audio/sku_", vendor_sku); } } void audio_extn_utils_update_streams_cfg_lists(void *platform, struct mixer *mixer, struct listnode *streams_output_cfg_list, Loading @@ -524,6 +538,9 @@ void audio_extn_utils_update_streams_cfg_lists(void *platform, { cnode *root; char *data = NULL; char vendor_config_path[VENDOR_CONFIG_PATH_MAX_LENGTH]; char audio_io_policy_file[VENDOR_CONFIG_FILE_MAX_LENGTH]; char audio_output_policy_file[VENDOR_CONFIG_FILE_MAX_LENGTH]; ALOGV("%s", __func__); list_init(streams_output_cfg_list); Loading @@ -535,11 +552,29 @@ void audio_extn_utils_update_streams_cfg_lists(void *platform, return; } data = (char *)load_file(AUDIO_IO_POLICY_VENDOR_CONFIG_FILE, NULL); /* Get path for audio configuration files in vendor */ audio_get_vendor_config_path(vendor_config_path, sizeof(vendor_config_path)); /* Get path for audio_io_policy_file in vendor */ snprintf(audio_io_policy_file, sizeof(audio_io_policy_file), "%s/%s", vendor_config_path, AUDIO_IO_POLICY_VENDOR_CONFIG_FILE_NAME); /* Load audio_io_policy_file from vendor */ data = (char *)load_file(audio_io_policy_file, NULL); if (data == NULL) { ALOGD("%s: failed to open io config file(%s), trying older config file", __func__, AUDIO_IO_POLICY_VENDOR_CONFIG_FILE); data = (char *)load_file(AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE, NULL); __func__, audio_io_policy_file); /* Get path for audio_output_policy_file in vendor */ snprintf(audio_output_policy_file, sizeof(audio_output_policy_file), "%s/%s", vendor_config_path, AUDIO_OUTPUT_POLICY_VENDOR_CONFIG_FILE_NAME); /* Load audio_output_policy_file from vendor */ data = (char *)load_file(audio_output_policy_file, NULL); if (data == NULL) { send_app_type_cfg(platform, mixer, streams_output_cfg_list, Loading