Merge 0709b47e97
on remote branch
Change-Id: I96230cae6daf592941a9732a80f3e91c1dc5f5a1
This commit is contained in:
47
Android.mk
47
Android.mk
@@ -2,19 +2,23 @@
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
ifeq ($(call is-board-platform, taro),true)
|
||||
ifeq ($(call is-board-platform-in-list,taro),true)
|
||||
AUDIO_SELECT := CONFIG_SND_SOC_WAIPIO=m
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform, kalama),true)
|
||||
ifeq ($(call is-board-platform-in-list,kalama),true)
|
||||
AUDIO_SELECT := CONFIG_SND_SOC_KALAMA=m
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform, bengal),true)
|
||||
ifeq ($(call is-board-platform-in-list,bengal),true)
|
||||
AUDIO_SELECT := CONFIG_SND_SOC_BENGAL=m
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform, pineapple),true)
|
||||
ifeq ($(call is-board-platform-in-list,holi blair),true)
|
||||
AUDIO_SELECT := CONFIG_SND_SOC_HOLI=m
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform-in-list,pineapple),true)
|
||||
AUDIO_SELECT := CONFIG_SND_SOC_PINEAPPLE=m
|
||||
endif
|
||||
|
||||
@@ -23,7 +27,7 @@ include $(call all-subdir-makefiles)
|
||||
endif
|
||||
|
||||
# Build/Package only in case of supported target
|
||||
ifeq ($(call is-board-platform-in-list,taro kalama bengal pineapple), true)
|
||||
ifeq ($(call is-board-platform-in-list,taro kalama bengal pineapple holi blair), true)
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
@@ -34,6 +38,7 @@ ifneq ($(findstring opensource,$(LOCAL_PATH)),)
|
||||
AUDIO_BLD_DIR := $(abspath .)/vendor/qcom/opensource/audio-kernel
|
||||
endif # opensource
|
||||
|
||||
include $(AUDIO_BLD_DIR)/EnableBazel.mk
|
||||
DLKM_DIR := $(TOP)/device/qcom/common/dlkm
|
||||
|
||||
|
||||
@@ -48,7 +53,10 @@ KBUILD_OPTIONS := AUDIO_ROOT=$(AUDIO_BLD_DIR)
|
||||
KBUILD_OPTIONS += MODNAME=audio_dlkm
|
||||
KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
|
||||
KBUILD_OPTIONS += $(AUDIO_SELECT)
|
||||
|
||||
ifneq ($(call is-board-platform-in-list, bengal holi blair),true)
|
||||
KBUILD_OPTIONS += KBUILD_EXTRA_SYMBOLS=$(PWD)/$(call intermediates-dir-for,DLKM,msm-ext-disp-module-symvers)/Module.symvers
|
||||
endif
|
||||
|
||||
AUDIO_SRC_FILES := \
|
||||
$(wildcard $(LOCAL_PATH)/*) \
|
||||
@@ -196,7 +204,7 @@ LOCAL_MODULE_DEBUG_ENABLE := true
|
||||
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||
###########################################################
|
||||
ifneq ($(call is-board-platform-in-list, bengal),true)
|
||||
ifneq ($(call is-board-platform-in-list, bengal holi blair),true)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := $(AUDIO_SRC_FILES)
|
||||
LOCAL_MODULE := swr_dmic_dlkm.ko
|
||||
@@ -216,7 +224,7 @@ LOCAL_MODULE_DEBUG_ENABLE := true
|
||||
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||
###########################################################
|
||||
ifneq ($(call is-board-platform-in-list, bengal),true)
|
||||
ifneq ($(call is-board-platform-in-list, bengal holi blair),true)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := $(AUDIO_SRC_FILES)
|
||||
LOCAL_MODULE := swr_haptics_dlkm.ko
|
||||
@@ -245,7 +253,7 @@ LOCAL_MODULE_DEBUG_ENABLE := true
|
||||
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||
########################### LPASS-CDC CODEC ###########################
|
||||
ifneq ($(call is-board-platform-in-list, bengal),true)
|
||||
ifneq ($(call is-board-platform-in-list, bengal holi blair),true)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := $(AUDIO_SRC_FILES)
|
||||
LOCAL_MODULE := lpass_cdc_dlkm.ko
|
||||
@@ -369,7 +377,7 @@ LOCAL_ADDITIONAL_DEPENDENCIES := $(call intermediates-dir-for,DLKM,msm-ext-disp-
|
||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform-in-list, bengal),true)
|
||||
ifeq ($(call is-board-platform-in-list, bengal holi blair),true)
|
||||
###########################################################
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := $(AUDIO_SRC_FILES)
|
||||
@@ -434,6 +442,27 @@ LOCAL_MODULE_DEBUG_ENABLE := true
|
||||
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform-in-list,holi blair),true)
|
||||
########################### WCD938x CODEC ################################
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := $(AUDIO_SRC_FILES)
|
||||
LOCAL_MODULE := wcd938x_dlkm.ko
|
||||
LOCAL_MODULE_KBUILD_NAME := asoc/codecs/wcd938x/wcd938x_dlkm.ko
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE_DEBUG_ENABLE := true
|
||||
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||
###########################################################
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_SRC_FILES := $(AUDIO_SRC_FILES)
|
||||
LOCAL_MODULE := wcd938x_slave_dlkm.ko
|
||||
LOCAL_MODULE_KBUILD_NAME := asoc/codecs/wcd938x/wcd938x_slave_dlkm.ko
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE_DEBUG_ENABLE := true
|
||||
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
||||
endif
|
||||
##########################################################
|
||||
endif # DLKM check
|
||||
endif # supported target check
|
||||
|
37
EnableBazel.mk
Normal file
37
EnableBazel.mk
Normal file
@@ -0,0 +1,37 @@
|
||||
ifeq ($(call is-board-platform-in-list,pineapple),true)
|
||||
LOCAL_MODULE_DDK_BUILD := true
|
||||
|
||||
LOCAL_MODULE_KO_DIRS := dsp/q6_notifier_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += dsp/spf_core_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += dsp/audpkt_ion_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += ipc/gpr_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += ipc/audio_pkt_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += dsp/q6_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += dsp/adsp_loader_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += dsp/audio_prm_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += dsp/q6_pdr_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += soc/pinctrl_lpi_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += soc/swr_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += soc/swr_ctrl_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += soc/snd_event_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wcd_core_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/mbhc_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/swr_dmic_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wcd9xxx_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/swr_haptics_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/stub_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/machine_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/lpass-cdc/lpass_cdc_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/lpass-cdc/lpass_cdc_wsa2_macro_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/lpass-cdc/lpass_cdc_wsa_macro_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/lpass-cdc/lpass_cdc_va_macro_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/lpass-cdc/lpass_cdc_tx_macro_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/lpass-cdc/lpass_cdc_rx_macro_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wsa884x/wsa884x_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wsa883x/wsa883x_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wcd938x/wcd938x_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wcd938x/wcd938x_slave_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wcd939x/wcd939x_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/wcd939x/wcd939x_slave_dlkm.ko
|
||||
LOCAL_MODULE_KO_DIRS += asoc/codecs/hdmi_dlkm.ko
|
||||
endif
|
@@ -79,6 +79,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
export
|
||||
INCS += -include $(AUDIO_ROOT)/config/bengalautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_SDMSHRIKE), y)
|
||||
ifdef CONFIG_SND_SOC_SA8155
|
||||
include $(AUDIO_ROOT)/config/sa8155auto.conf
|
||||
|
@@ -79,6 +79,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
export
|
||||
INCS += -include $(AUDIO_ROOT)/config/bengalautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_SDMSHRIKE), y)
|
||||
include $(AUDIO_ROOT)/config/sm8150auto.conf
|
||||
export
|
||||
|
@@ -34,6 +34,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
include $(AUDIO_ROOT)/config/waipioauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/waipioautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_LITO), y)
|
||||
include $(AUDIO_ROOT)/config/litoauto.conf
|
||||
export
|
||||
|
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/of_platform.h>
|
||||
@@ -106,7 +107,7 @@ int bolero_rsc_clk_reset(struct device *dev, int clk_id)
|
||||
int count = 0;
|
||||
|
||||
if (!dev) {
|
||||
pr_err("%s: dev is null %d\n", __func__);
|
||||
pr_err("%s: dev is null\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -153,7 +154,7 @@ void bolero_clk_rsc_enable_all_clocks(struct device *dev, bool enable)
|
||||
int i = 0;
|
||||
|
||||
if (!dev) {
|
||||
pr_err("%s: dev is null %d\n", __func__);
|
||||
pr_err("%s: dev is null\n", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -455,7 +456,7 @@ void bolero_clk_rsc_fs_gen_request(struct device *dev, bool enable)
|
||||
struct bolero_clk_rsc *priv = NULL;
|
||||
|
||||
if (!dev) {
|
||||
pr_err("%s: dev is null %d\n", __func__);
|
||||
pr_err("%s: dev is null\n", __func__);
|
||||
return;
|
||||
}
|
||||
clk_dev = bolero_get_rsc_clk_device_ptr(dev->parent);
|
||||
@@ -531,7 +532,7 @@ int bolero_clk_rsc_request_clock(struct device *dev,
|
||||
bool mux_switch = false;
|
||||
|
||||
if (!dev) {
|
||||
pr_err("%s: dev is null %d\n", __func__);
|
||||
pr_err("%s: dev is null\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
if ((clk_id_req < 0 || clk_id_req >= MAX_CLK) &&
|
||||
|
@@ -1323,6 +1323,7 @@ static int lpass_cdc_wsa_macro_enable_mix_path(struct snd_soc_dapm_widget *w,
|
||||
int offset_val = 0;
|
||||
int val = 0;
|
||||
uint16_t mix_reg = 0;
|
||||
uint16_t reg = 0;
|
||||
|
||||
dev_dbg(component->dev, "%s %d %s\n", __func__, event, w->name);
|
||||
|
||||
@@ -1336,6 +1337,8 @@ static int lpass_cdc_wsa_macro_enable_mix_path(struct snd_soc_dapm_widget *w,
|
||||
return 0;
|
||||
}
|
||||
|
||||
reg = LPASS_CDC_WSA_RX0_RX_PATH_CTL +
|
||||
(LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift);
|
||||
mix_reg = LPASS_CDC_WSA_RX0_RX_PATH_MIX_CTL +
|
||||
LPASS_CDC_WSA_MACRO_RX_PATH_OFFSET * w->shift;
|
||||
|
||||
@@ -1344,6 +1347,8 @@ static int lpass_cdc_wsa_macro_enable_mix_path(struct snd_soc_dapm_widget *w,
|
||||
snd_soc_component_update_bits(component, mix_reg, 0x40, 0x40);
|
||||
usleep_range(500, 510);
|
||||
snd_soc_component_update_bits(component, mix_reg, 0x40, 0x00);
|
||||
snd_soc_component_update_bits(component,
|
||||
reg, 0x20, 0x20);
|
||||
snd_soc_component_update_bits(component,
|
||||
mix_reg, 0x20, 0x20);
|
||||
lpass_cdc_wsa_macro_enable_swr(w, kcontrol, event);
|
||||
|
@@ -1329,6 +1329,7 @@ static int lpass_cdc_wsa2_macro_enable_mix_path(struct snd_soc_dapm_widget *w,
|
||||
int offset_val = 0;
|
||||
int val = 0;
|
||||
uint16_t mix_reg = 0;
|
||||
uint16_t reg = 0;
|
||||
|
||||
dev_dbg(component->dev, "%s %d %s\n", __func__, event, w->name);
|
||||
|
||||
@@ -1342,13 +1343,17 @@ static int lpass_cdc_wsa2_macro_enable_mix_path(struct snd_soc_dapm_widget *w,
|
||||
return 0;
|
||||
}
|
||||
|
||||
reg = LPASS_CDC_WSA2_RX0_RX_PATH_CTL +
|
||||
LPASS_CDC_WSA2_MACRO_RX_PATH_OFFSET * w->shift;
|
||||
mix_reg = LPASS_CDC_WSA2_RX0_RX_PATH_MIX_CTL +
|
||||
LPASS_CDC_WSA2_MACRO_RX_PATH_OFFSET * w->shift;
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_PRE_PMU:
|
||||
snd_soc_component_update_bits(component, mix_reg, 0x40, 0x40);
|
||||
usleep_range(500, 510);
|
||||
snd_soc_component_update_bits(component, mix_reg, 0x40, 0x00);
|
||||
snd_soc_component_update_bits(component, reg, 0x20, 0x20);
|
||||
snd_soc_component_update_bits(component,
|
||||
mix_reg, 0x20, 0x20);
|
||||
lpass_cdc_wsa2_macro_enable_swr(w, kcontrol, event);
|
||||
|
@@ -963,6 +963,21 @@ static bool wcd_mbhc_moisture_detect(struct wcd_mbhc *mbhc, bool detection_type)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void wcd_mbhc_set_hsj_connect(struct snd_soc_component *component, bool connect)
|
||||
{
|
||||
#if IS_ENABLED(CONFIG_QCOM_WCD_USBSS_I2C)
|
||||
if (connect) {
|
||||
if (of_find_property(component->card->dev->of_node,
|
||||
"qcom,usbss-hsj-connect-enabled", NULL))
|
||||
wcd_usbss_switch_update(WCD_USBSS_HSJ_CONNECT, WCD_USBSS_CABLE_CONNECT);
|
||||
} else {
|
||||
if (of_find_property(component->card->dev->of_node,
|
||||
"qcom,usbss-hsj-connect-enabled", NULL))
|
||||
wcd_usbss_switch_update(WCD_USBSS_HSJ_CONNECT, WCD_USBSS_CABLE_DISCONNECT);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void wcd_mbhc_swch_irq_handler(struct wcd_mbhc *mbhc)
|
||||
{
|
||||
bool detection_type = 0;
|
||||
@@ -1004,6 +1019,7 @@ static void wcd_mbhc_swch_irq_handler(struct wcd_mbhc *mbhc)
|
||||
if ((mbhc->current_plug == MBHC_PLUG_TYPE_NONE) &&
|
||||
detection_type) {
|
||||
|
||||
wcd_mbhc_set_hsj_connect(component, 1);
|
||||
/* If moisture is present, then enable polling, disable
|
||||
* moisture detection and wait for interrupt
|
||||
*/
|
||||
@@ -1119,6 +1135,7 @@ static void wcd_mbhc_swch_irq_handler(struct wcd_mbhc *mbhc)
|
||||
mbhc->mbhc_cb->mbhc_moisture_detect_en(mbhc,
|
||||
false);
|
||||
}
|
||||
wcd_mbhc_set_hsj_connect(component, 0);
|
||||
|
||||
} else if (!detection_type) {
|
||||
/* Disable external voltage source to micbias if present */
|
||||
|
@@ -40,6 +40,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
include $(AUDIO_ROOT)/config/waipioauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/waipioautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
endif
|
||||
|
||||
# As per target team, build is done as follows:
|
||||
|
@@ -107,7 +107,6 @@ static struct regmap_irq_chip wcd937x_regmap_irq_chip = {
|
||||
//#if IS_ENABLED(CONFIG_AUDIO_QGKI)
|
||||
.clear_ack = 1,
|
||||
//#endif
|
||||
.mask_writeonly = 1,
|
||||
.type_base = WCD937X_DIGITAL_INTR_LEVEL_0,
|
||||
.runtime_pm = false,
|
||||
.handle_post_irq = wcd937x_handle_post_irq,
|
||||
|
@@ -35,7 +35,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
include $(AUDIO_ROOT)/config/pineappleauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/pineappleautoconf.h
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
endif
|
||||
|
||||
# As per target team, build is done as follows:
|
||||
|
@@ -801,60 +801,66 @@ EXPORT_SYMBOL(wcd939x_soc_get_mbhc);
|
||||
static int wcd939x_config_power_mode(struct snd_soc_component *component,
|
||||
int event, int index, int mode)
|
||||
{
|
||||
struct wcd939x_priv *wcd939x = snd_soc_component_get_drvdata(component);
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_PRE_PMU:
|
||||
if (mode == CLS_H_ULP) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(REFBUFF_UHQA_CTL, REFBUFP_IOUT_CTL, 0x2));
|
||||
REG_FIELD_VALUE(REFBUFF_UHQA_CTL, REFBUFP_IOUT_CTL, 0x1));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(REFBUFF_UHQA_CTL, REFBUFN_IOUT_CTL, 0x2));
|
||||
if (index == WCD939X_HPHL) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL12, ZONE3_RMS, 0x21));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL13, ZONE4_RMS, 0x30));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL14, ZONE5_RMS, 0x3F));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL15, ZONE6_RMS, 0x48));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL17, PATH_GAIN, 0x0C));
|
||||
} else if (index == WCD939X_HPHR) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL12, ZONE3_RMS, 0x21));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL13, ZONE4_RMS, 0x30));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL14, ZONE5_RMS, 0x3F));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL15, ZONE6_RMS, 0x48));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL17, PATH_GAIN, 0x0C));
|
||||
REG_FIELD_VALUE(REFBUFF_UHQA_CTL, REFBUFN_IOUT_CTL, 0x1));
|
||||
|
||||
if (wcd939x->compander_enabled[index]) {
|
||||
if (index == WCD939X_HPHL) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL12, ZONE3_RMS, 0x21));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL13, ZONE4_RMS, 0x30));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL14, ZONE5_RMS, 0x3F));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL15, ZONE6_RMS, 0x48));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL17, PATH_GAIN, 0x0C));
|
||||
} else if (index == WCD939X_HPHR) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL12, ZONE3_RMS, 0x21));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL13, ZONE4_RMS, 0x30));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL14, ZONE5_RMS, 0x3F));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL15, ZONE6_RMS, 0x48));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL17, PATH_GAIN, 0x0C));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (index == WCD939X_HPHL) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL12, ZONE3_RMS, 0x1E));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL13, ZONE4_RMS, 0x2A));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL14, ZONE5_RMS, 0x36));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL15, ZONE6_RMS, 0x3C));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL17, PATH_GAIN, 0x00));
|
||||
} else if (index == WCD939X_HPHR) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL12, ZONE3_RMS, 0x1E));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL13, ZONE4_RMS, 0x2A));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL14, ZONE5_RMS, 0x36));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL15, ZONE6_RMS, 0x2C));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL17, PATH_GAIN, 0x00));
|
||||
if (wcd939x->compander_enabled[index]) {
|
||||
if (index == WCD939X_HPHL) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL12, ZONE3_RMS, 0x1E));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL13, ZONE4_RMS, 0x2A));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL14, ZONE5_RMS, 0x36));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL15, ZONE6_RMS, 0x3C));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(CTL17, PATH_GAIN, 0x00));
|
||||
} else if (index == WCD939X_HPHR) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL12, ZONE3_RMS, 0x1E));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL13, ZONE4_RMS, 0x2A));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL14, ZONE5_RMS, 0x36));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL15, ZONE6_RMS, 0x3C));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_CTL17, PATH_GAIN, 0x00));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -942,10 +948,9 @@ static int wcd939x_config_compander(struct snd_soc_component *component,
|
||||
int event, int compander_indx)
|
||||
{
|
||||
u16 comp_ctl7_reg = 0, comp_ctl0_reg = 0;
|
||||
u16 comp_en_mask_val = 0;
|
||||
u16 comp_en_mask_val = 0, gain_source_sel = 0;
|
||||
struct wcd939x_priv *wcd939x;
|
||||
|
||||
|
||||
if (compander_indx >= WCD939X_HPH_MAX || compander_indx < 0) {
|
||||
pr_err_ratelimited("%s: Invalid compander value: %d\n",
|
||||
__func__, compander_indx);
|
||||
@@ -957,12 +962,30 @@ static int wcd939x_config_compander(struct snd_soc_component *component,
|
||||
return -EINVAL;
|
||||
}
|
||||
wcd939x = snd_soc_component_get_drvdata(component);
|
||||
|
||||
if (!wcd939x->compander_enabled[compander_indx])
|
||||
if (!wcd939x->hph_pcm_enabled)
|
||||
return 0;
|
||||
|
||||
dev_dbg(component->dev, "%s compander_index = %d\n", __func__, compander_indx);
|
||||
|
||||
if (!wcd939x->compander_enabled[compander_indx]) {
|
||||
if (SND_SOC_DAPM_EVENT_ON(event))
|
||||
gain_source_sel = 0x01;
|
||||
else
|
||||
gain_source_sel = 0x00;
|
||||
if (compander_indx == WCD939X_HPHL) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(L_EN, GAIN_SOURCE_SEL, gain_source_sel));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(PA_GAIN_CTL_L, PA_GAIN_L, 0x04));
|
||||
} else if (compander_indx == WCD939X_HPHR) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_EN, GAIN_SOURCE_SEL, gain_source_sel));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(PA_GAIN_CTL_R, PA_GAIN_R, 0x04));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (compander_indx == WCD939X_HPHL)
|
||||
comp_en_mask_val = 1 << 1;
|
||||
else if (compander_indx == WCD939X_HPHR)
|
||||
@@ -970,7 +993,6 @@ static int wcd939x_config_compander(struct snd_soc_component *component,
|
||||
else
|
||||
return 0;
|
||||
|
||||
|
||||
comp_ctl0_reg = WCD939X_CTL0 + (compander_indx * WCD939X_COMP_OFFSET);
|
||||
comp_ctl7_reg = WCD939X_CTL7 + (compander_indx * WCD939X_COMP_OFFSET);
|
||||
|
||||
@@ -982,12 +1004,12 @@ static int wcd939x_config_compander(struct snd_soc_component *component,
|
||||
snd_soc_component_update_bits(component,
|
||||
comp_ctl0_reg , 0x01, 0x01);
|
||||
|
||||
/* 250us sleep required as per HW Sequence */
|
||||
usleep_range(250, 260);
|
||||
/* 250us sleep required as per HW Sequence */
|
||||
usleep_range(250, 260);
|
||||
snd_soc_component_update_bits(component,
|
||||
comp_ctl0_reg , 0x02, 0x01);
|
||||
comp_ctl0_reg, 0x02, 0x02);
|
||||
snd_soc_component_update_bits(component,
|
||||
comp_ctl0_reg , 0x02, 0x00);
|
||||
comp_ctl0_reg, 0x02, 0x00);
|
||||
|
||||
/* Enable compander*/
|
||||
snd_soc_component_update_bits(component,
|
||||
@@ -998,6 +1020,12 @@ static int wcd939x_config_compander(struct snd_soc_component *component,
|
||||
WCD939X_CDC_COMP_CTL_0, comp_en_mask_val, 0x00);
|
||||
snd_soc_component_update_bits(component,
|
||||
comp_ctl0_reg , 0x01, 0x00);
|
||||
if (compander_indx == WCD939X_HPHL)
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(L_EN, GAIN_SOURCE_SEL, 0x0));
|
||||
if (compander_indx == WCD939X_HPHR)
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(R_EN, GAIN_SOURCE_SEL, 0x0));
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -1355,9 +1383,17 @@ static int wcd939x_codec_hphl_dac_event(struct snd_soc_dapm_widget *w,
|
||||
REG_FIELD_VALUE(L_EN, GAIN_SOURCE_SEL, 0x01));
|
||||
}
|
||||
}
|
||||
if (wcd939x->hph_pcm_enabled)
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH_TIMER1, AUTOCHOP_TIMER_CTL_EN, 0x00));
|
||||
if (wcd939x->hph_pcm_enabled) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH_TIMER1, AUTOCHOP_TIMER_CTL_EN, 0x00));
|
||||
snd_soc_component_write(component, WCD939X_VNEG_CTRL_1, 0xEB);
|
||||
if (wcd939x->hph_mode == CLS_H_LOHIFI)
|
||||
snd_soc_component_write(component,
|
||||
WCD939X_HPH_RDAC_BIAS_LOHIFI, 0x52);
|
||||
else
|
||||
snd_soc_component_write(component,
|
||||
WCD939X_HPH_RDAC_BIAS_LOHIFI, 0x64);
|
||||
}
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
snd_soc_component_update_bits(component,
|
||||
@@ -1412,6 +1448,15 @@ static int wcd939x_codec_hphr_dac_event(struct snd_soc_dapm_widget *w,
|
||||
REG_FIELD_VALUE(R_EN, GAIN_SOURCE_SEL, 0x01));
|
||||
}
|
||||
}
|
||||
if (wcd939x->hph_pcm_enabled) {
|
||||
snd_soc_component_write(component, WCD939X_VNEG_CTRL_1, 0xEB);
|
||||
if (wcd939x->hph_mode == CLS_H_LOHIFI)
|
||||
snd_soc_component_write(component,
|
||||
WCD939X_HPH_RDAC_BIAS_LOHIFI, 0x52);
|
||||
else
|
||||
snd_soc_component_write(component,
|
||||
WCD939X_HPH_RDAC_BIAS_LOHIFI, 0x64);
|
||||
}
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
snd_soc_component_update_bits(component,
|
||||
@@ -1487,33 +1532,30 @@ static int wcd939x_codec_enable_hphr_pa(struct snd_soc_dapm_widget *w,
|
||||
WCD_CLSH_EVENT_PRE_DAC,
|
||||
WCD_CLSH_STATE_HPHR,
|
||||
hph_mode);
|
||||
wcd_clsh_set_hph_mode(component, CLS_H_HIFI);
|
||||
if (hph_mode == CLS_H_LP || hph_mode == CLS_H_LOHIFI ||
|
||||
hph_mode == CLS_H_ULP) {
|
||||
if (!wcd939x->hph_pcm_enabled)
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(REFBUFF_LP_CTL, PREREF_FILT_BYPASS, 0x01));
|
||||
}
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(VNEG_CTRL_4, ILIM_SEL, 0xD));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, HPHR_REF_ENABLE, 0x01));
|
||||
wcd_clsh_set_hph_mode(component, hph_mode);
|
||||
/* update Mode for LOHIFI */
|
||||
if (hph_mode == CLS_H_LOHIFI) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, PWR_LEVEL, 0x00));
|
||||
}
|
||||
/* update USBSS power mode for AATC */
|
||||
if (wcd939x->mbhc->wcd_mbhc.mbhc_cfg->enable_usbc_analog)
|
||||
wcd_usbss_audio_config(NULL, WCD_USBSS_CONFIG_TYPE_POWER_MODE,
|
||||
wcd939x_get_usbss_hph_power_mode(hph_mode));
|
||||
/* update Mode for LOHIFI */
|
||||
if (hph_mode == CLS_H_LOHIFI) {
|
||||
snd_soc_component_write(component,
|
||||
WCD939X_HPH_RDAC_BIAS_LOHIFI, 0x52);
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, PWR_LEVEL, 0x00));
|
||||
}
|
||||
/* 100 usec delay as per HW requirement */
|
||||
usleep_range(100, 110);
|
||||
set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(VNEG_CTRL_4, ILIM_SEL, 0xD));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, HPHR_REF_ENABLE, 0x01));
|
||||
if ((snd_soc_component_read(component, WCD939X_HPH) & 0x30) == 0x30)
|
||||
usleep_range(2500, 2600); /* 2.5msec delay as per HW requirement */
|
||||
set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
|
||||
if (!wcd939x->hph_pcm_enabled)
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(PDM_WD_CTL1, PDM_WD_EN, 0x03));
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMU:
|
||||
@@ -1642,33 +1684,30 @@ static int wcd939x_codec_enable_hphl_pa(struct snd_soc_dapm_widget *w,
|
||||
WCD_CLSH_EVENT_PRE_DAC,
|
||||
WCD_CLSH_STATE_HPHL,
|
||||
hph_mode);
|
||||
wcd_clsh_set_hph_mode(component, CLS_H_HIFI);
|
||||
if (hph_mode == CLS_H_LP || hph_mode == CLS_H_LOHIFI ||
|
||||
hph_mode == CLS_H_ULP) {
|
||||
if (!wcd939x->hph_pcm_enabled)
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(REFBUFF_LP_CTL, PREREF_FILT_BYPASS, 0x01));
|
||||
}
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(VNEG_CTRL_4, ILIM_SEL, 0xD));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, HPHL_REF_ENABLE, 0x01));
|
||||
wcd_clsh_set_hph_mode(component, hph_mode);
|
||||
/* update Mode for LOHIFI */
|
||||
if (hph_mode == CLS_H_LOHIFI) {
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, PWR_LEVEL, 0x00));
|
||||
}
|
||||
/* update USBSS power mode for AATC */
|
||||
if (wcd939x->mbhc->wcd_mbhc.mbhc_cfg->enable_usbc_analog)
|
||||
wcd_usbss_audio_config(NULL, WCD_USBSS_CONFIG_TYPE_POWER_MODE,
|
||||
wcd939x_get_usbss_hph_power_mode(hph_mode));
|
||||
/* update Mode for LOHIFI */
|
||||
if (hph_mode == CLS_H_LOHIFI) {
|
||||
snd_soc_component_write(component,
|
||||
WCD939X_HPH_RDAC_BIAS_LOHIFI, 0x52);
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, PWR_LEVEL, 0x00));
|
||||
}
|
||||
/* 100 usec delay as per HW requirement */
|
||||
usleep_range(100, 110);
|
||||
set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(VNEG_CTRL_4, ILIM_SEL, 0xD));
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(HPH, HPHL_REF_ENABLE, 0x01));
|
||||
if ((snd_soc_component_read(component, WCD939X_HPH) & 0x30) == 0x30)
|
||||
usleep_range(2500, 2600); /* 2.5msec delay as per HW requirement */
|
||||
set_bit(HPH_PA_DELAY, &wcd939x->status_mask);
|
||||
if (!wcd939x->hph_pcm_enabled)
|
||||
snd_soc_component_update_bits(component,
|
||||
REG_FIELD_VALUE(PDM_WD_CTL0, PDM_WD_EN, 0x03));
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMU:
|
||||
|
@@ -1584,7 +1584,7 @@ err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int wsa881x_i2c_remove(struct i2c_client *client)
|
||||
static void wsa881x_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
struct wsa881x_pdata *wsa881x = client->dev.platform_data;
|
||||
|
||||
@@ -1601,7 +1601,6 @@ static int wsa881x_i2c_remove(struct i2c_client *client)
|
||||
}
|
||||
i2c_set_clientdata(client, NULL);
|
||||
kfree(wsa881x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
|
5833
asoc/holi.c
5833
asoc/holi.c
File diff suppressed because it is too large
Load Diff
@@ -236,34 +236,6 @@ done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void check_userspace_service_state(struct snd_soc_pcm_runtime *rtd,
|
||||
struct msm_common_pdata *pdata)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
dev_info(rtd->card->dev,"%s: pcm_id %d state %d\n", __func__,
|
||||
rtd->num, pdata->aud_dev_state[rtd->num]);
|
||||
|
||||
mutex_lock(&pdata->aud_dev_lock);
|
||||
if (pdata->aud_dev_state[rtd->num] == DEVICE_ENABLE) {
|
||||
dev_info(rtd->card->dev, "%s userspace service crashed\n",
|
||||
__func__);
|
||||
/*Reset the state as sysfs node wont be triggred*/
|
||||
pdata->aud_dev_state[rtd->num] = DEVICE_DISABLE;
|
||||
for (i = 0; i < pdata->num_aud_devs; i++) {
|
||||
if (pdata->aud_dev_state[i] == DEVICE_ENABLE)
|
||||
goto exit;
|
||||
}
|
||||
/*Issue close all graph cmd to DSP*/
|
||||
spf_core_apm_close_all();
|
||||
/*unmap all dma mapped buffers*/
|
||||
msm_audio_ion_crash_handler();
|
||||
}
|
||||
exit:
|
||||
mutex_unlock(&pdata->aud_dev_lock);
|
||||
return;
|
||||
}
|
||||
|
||||
static int get_mi2s_tdm_auxpcm_intf_index(const char *stream_name)
|
||||
{
|
||||
|
||||
@@ -447,7 +419,8 @@ int msm_common_snd_hw_params(struct snd_pcm_substream *substream,
|
||||
intf_clk_cfg.clk_root = 0;
|
||||
|
||||
if (pdata->is_audio_hw_vote_required[index] &&
|
||||
is_fractional_sample_rate(rate)) {
|
||||
(is_fractional_sample_rate(rate) ||
|
||||
(index == QUIN_MI2S_TDM_AUXPCM))) {
|
||||
ret = mi2s_tdm_hw_vote_req(pdata, 1);
|
||||
if (ret < 0) {
|
||||
pr_err("%s lpass audio hw vote enable failed %d\n",
|
||||
@@ -490,7 +463,8 @@ int msm_common_snd_hw_params(struct snd_pcm_substream *substream,
|
||||
intf_clk_cfg.clk_root = CLOCK_ROOT_DEFAULT;
|
||||
|
||||
if (pdata->is_audio_hw_vote_required[index] &&
|
||||
is_fractional_sample_rate(rate)) {
|
||||
(is_fractional_sample_rate(rate) ||
|
||||
(index == QUIN_MI2S_TDM_AUXPCM))) {
|
||||
ret = mi2s_tdm_hw_vote_req(pdata, 1);
|
||||
if (ret < 0) {
|
||||
pr_err("%s lpass audio hw vote enable failed %d\n",
|
||||
@@ -581,8 +555,6 @@ void msm_common_snd_shutdown(struct snd_pcm_substream *substream)
|
||||
return;
|
||||
}
|
||||
|
||||
check_userspace_service_state(rtd, pdata);
|
||||
|
||||
if (index >= 0) {
|
||||
mutex_lock(&pdata->lock[index]);
|
||||
atomic_dec(&pdata->lpass_intf_clk_ref_cnt[index]);
|
||||
@@ -611,7 +583,8 @@ void msm_common_snd_shutdown(struct snd_pcm_substream *substream)
|
||||
}
|
||||
|
||||
if (pdata->is_audio_hw_vote_required[index] &&
|
||||
is_fractional_sample_rate(rate)) {
|
||||
(is_fractional_sample_rate(rate) ||
|
||||
(index == QUIN_MI2S_TDM_AUXPCM))) {
|
||||
ret = mi2s_tdm_hw_vote_req(pdata, 0);
|
||||
}
|
||||
} else if (atomic_read(&pdata->lpass_intf_clk_ref_cnt[index]) < 0) {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023. Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk.h>
|
||||
@@ -1395,11 +1395,6 @@ static int msm_snd_card_late_probe(struct snd_soc_card *card)
|
||||
return -ENOMEM;
|
||||
wcd_mbhc_cfg.calibration = mbhc_calibration;
|
||||
|
||||
#if IS_ENABLED(CONFIG_QCOM_WCD_USBSS_I2C)
|
||||
if (of_find_property(card->dev->of_node, "qcom,usbss-hsj-connect-enabled", NULL))
|
||||
wcd_usbss_switch_update(WCD_USBSS_HSJ_CONNECT, WCD_USBSS_CABLE_CONNECT);
|
||||
#endif
|
||||
|
||||
ret = wcd939x_mbhc_hs_detect(component, &wcd_mbhc_cfg);
|
||||
if (ret) {
|
||||
dev_err(component->dev, "%s: mbhc hs detect failed, err:%d\n",
|
||||
|
@@ -30,7 +30,7 @@ AUDIO_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/q6_notifier_dlkm.ko\
|
||||
$(KERNEL_MODULES_OUT)/wcd9xxx_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/stub_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/machine_dlkm.ko
|
||||
ifneq ($(call is-board-platform-in-list,bengal), true)
|
||||
ifneq ($(call is-board-platform-in-list,bengal holi blair), true)
|
||||
AUDIO_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/swr_dmic_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/swr_haptics_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/hdmi_dlkm.ko \
|
||||
@@ -47,7 +47,7 @@ AUDIO_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/swr_dmic_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd939x_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd939x_slave_dlkm.ko
|
||||
endif
|
||||
ifeq ($(call is-board-platform-in-list,bengal), true)
|
||||
ifeq ($(call is-board-platform-in-list,bengal holi blair), true)
|
||||
AUDIO_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/bolero_cdc_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/va_macro_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/tx_macro_dlkm.ko \
|
||||
@@ -56,6 +56,10 @@ AUDIO_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/bolero_cdc_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd937x_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd937x_slave_dlkm.ko
|
||||
endif
|
||||
ifeq ($(call is-board-platform-in-list, holi blair), true)
|
||||
AUDIO_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/wcd938x_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd938x_slave_dlkm.ko
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
@@ -17,7 +17,7 @@ PRODUCT_PACKAGES += $(KERNEL_MODULES_OUT)/q6_notifier_dlkm.ko\
|
||||
$(KERNEL_MODULES_OUT)/wcd9xxx_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/stub_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/machine_dlkm.ko
|
||||
ifneq ($(call is-board-platform-in-list,bengal), true)
|
||||
ifneq ($(call is-board-platform-in-list,bengal holi blair), true)
|
||||
PRODUCT_PACKAGES += $(KERNEL_MODULES_OUT)/swr_dmic_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/swr_haptics_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/hdmi_dlkm.ko \
|
||||
@@ -34,12 +34,16 @@ PRODUCT_PACKAGES += $(KERNEL_MODULES_OUT)/swr_dmic_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd939x_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd939x_slave_dlkm.ko
|
||||
endif
|
||||
ifeq ($(call is-board-platform-in-list,bengal), true)
|
||||
ifeq ($(call is-board-platform-in-list,bengal holi blair), true)
|
||||
PRODUCT_PACKAGES += $(KERNEL_MODULES_OUT)/bolero_cdc_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/va_macro_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/tx_macro_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/rx_macro_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wsa881x_analog_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd938x_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd937x_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd937x_slave_dlkm.ko
|
||||
endif
|
||||
ifeq ($(call is-board-platform-in-list, holi blair), true)
|
||||
PRODUCT_PACKAGES += $(KERNEL_MODULES_OUT)/wcd938x_dlkm.ko \
|
||||
$(KERNEL_MODULES_OUT)/wcd938x_slave_dlkm.ko
|
||||
endif
|
||||
|
@@ -1,4 +1,5 @@
|
||||
AUDIO_DLKM_ENABLE := false
|
||||
ifneq ($(TARGET_DISABLE_AUDIO_DLKM), true)
|
||||
ifeq ($(TARGET_KERNEL_DLKM_DISABLE), true)
|
||||
ifeq ($(TARGET_KERNEL_DLKM_AUDIO_OVERRIDE),true)
|
||||
AUDIO_DLKM_ENABLE := true
|
||||
@@ -6,6 +7,7 @@ ifeq ($(TARGET_KERNEL_DLKM_DISABLE), true)
|
||||
else
|
||||
AUDIO_DLKM_ENABLE := true
|
||||
endif
|
||||
endif # TARGET_DISABLE_AUDIO_DLKM
|
||||
|
||||
ifeq ($(AUDIO_DLKM_ENABLE), true)
|
||||
include vendor/qcom/opensource/audio-kernel/audio_kernel_modules.mk
|
||||
|
@@ -4,12 +4,17 @@ export CONFIG_SND_SOC_WCD9XXX_V2=m
|
||||
export CONFIG_SND_SOC_WCD_MBHC=m
|
||||
export CONFIG_WCD9XXX_CODEC_CORE_V2=m
|
||||
export CONFIG_MSM_CDC_PINCTRL=m
|
||||
export CONFIG_AUDIO_PKT_ION=m
|
||||
export CONFIG_MSM_QDSP6V2_CODECS=m
|
||||
export CONFIG_MSM_QDSP6_APRV2_RPMSG=m
|
||||
export CONFIG_MSM_ADSP_LOADER=m
|
||||
export CONFIG_REGMAP_SWR=m
|
||||
export CONFIG_SPF_CORE=m
|
||||
export CONFIG_MSM_QDSP6_SSR=m
|
||||
export CONFIG_MSM_QDSP6_GPR_RPMSG=m
|
||||
export CONFIG_MSM_QDSP6_PDR=m
|
||||
export CONFIG_AUDIO_PRM=m
|
||||
export CONFIG_AUDIO_PKT=m
|
||||
export CONFIG_MSM_QDSP6_NOTIFIER=m
|
||||
export CONFIG_SND_SOC_MSM_QDSP6V2_INTF=m
|
||||
export CONFIG_SOUNDWIRE=m
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/* Copyright (c) 2020, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#define CONFIG_PINCTRL_LPI 1
|
||||
@@ -13,9 +14,14 @@
|
||||
#define CONFIG_SND_SOC_MSM_QDSP6V2_INTF 1
|
||||
#define CONFIG_MSM_ADSP_LOADER 1
|
||||
#define CONFIG_REGMAP_SWR 1
|
||||
#define CONFIG_AUDIO_PKT_ION 1
|
||||
#define CONFIG_MSM_QDSP6_SSR 1
|
||||
#define CONFIG_MSM_QDSP6_PDR 1
|
||||
#define CONFIG_MSM_QDSP6_NOTIFIER 1
|
||||
#define CONFIG_SPF_CORE 1
|
||||
#define CONFIG_MSM_QDSP6_GPR_RPMSG 1
|
||||
#define CONFIG_AUDIO_PRM 1
|
||||
#define CONFIG_AUDIO_PKT 1
|
||||
#define CONFIG_SOUNDWIRE 1
|
||||
#define CONFIG_SOUNDWIRE_MSTR_CTRL 1
|
||||
#define CONFIG_SND_SOC_WCD_MBHC_ADC 1
|
||||
|
@@ -68,6 +68,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
export
|
||||
INCS += -include $(AUDIO_ROOT)/config/bengalautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_SM8150), y)
|
||||
ifdef CONFIG_SND_SOC_SA8155
|
||||
include $(AUDIO_ROOT)/config/sa8155auto.conf
|
||||
|
@@ -69,6 +69,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
export
|
||||
INCS += -include $(AUDIO_ROOT)/config/bengalautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_SM8150), y)
|
||||
ifdef CONFIG_SND_SOC_SA8155
|
||||
include $(AUDIO_ROOT)/config/sa8155auto.conf
|
||||
|
@@ -63,6 +63,14 @@ ifeq ($(KERNEL_BUILD), 0)
|
||||
export
|
||||
INCS += -include $(AUDIO_ROOT)/config/bengalautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_HOLI), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_BLAIR), y)
|
||||
include $(AUDIO_ROOT)/config/holiauto.conf
|
||||
INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_SM6150), y)
|
||||
ifdef CONFIG_SND_SOC_SA6155
|
||||
include $(AUDIO_ROOT)/config/sa6155auto.conf
|
||||
|
Reference in New Issue
Block a user