Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a174d7d7 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: wcd: Enable ADC and Legacy mbhc solutions dynamically"

parents 6ff829fd 3280b15b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -882,7 +882,6 @@ config SND_SOC_WCD9335
        tristate
	depends on WCD9XXX_CODEC_CORE
	select SND_SOC_WCD9XXX
	select SND_SOC_WCD_MBHC
	select SND_SOC_WCD_MBHC_LEGACY
	select SND_SOC_WCD_CPE

@@ -900,7 +899,6 @@ config SND_SOC_WCD934X
config SND_SOC_WCD934X_MBHC
        tristate
	depends on SND_SOC_WCD934X
	select SND_SOC_WCD_MBHC
	select SND_SOC_WCD_MBHC_ADC

config REGMAP_SWR
@@ -933,9 +931,11 @@ config SND_SOC_WCD_MBHC

config SND_SOC_WCD_MBHC_LEGACY
	tristate
	select SND_SOC_WCD_MBHC

config SND_SOC_WCD_MBHC_ADC
	tristate
	select SND_SOC_WCD_MBHC

config SND_SOC_WCD_DSP_MGR
	tristate
+5 −3
Original line number Diff line number Diff line
@@ -172,10 +172,12 @@ ifeq ($(CONFIG_COMMON_CLK_QCOM), y)
endif
snd-soc-wcd-cpe-objs := wcd_cpe_services.o wcd_cpe_core.o
snd-soc-wsa881x-objs := wsa881x.o wsa881x-tables.o wsa881x-regmap.o wsa881x-temp-sensor.o
snd-soc-wcd-mbhc-objs := wcd-mbhc-v2.o
ifneq (,$(filter $(CONFIG_SND_SOC_WCD_MBHC_LEGACY),y m))
	snd-soc-wcd-mbhc-objs := wcd-mbhc-v2.o wcd-mbhc-legacy.o
else ifneq (,$(filter $(CONFIG_SND_SOC_WCD_MBHC_ADC),y m))
	snd-soc-wcd-mbhc-objs := wcd-mbhc-v2.o wcd-mbhc-adc.o
	snd-soc-wcd-mbhc-objs += wcd-mbhc-legacy.o
endif
ifneq (,$(filter $(CONFIG_SND_SOC_WCD_MBHC_ADC),y m))
	snd-soc-wcd-mbhc-objs += wcd-mbhc-adc.o
endif
snd-soc-wsa881x-analog-objs := wsa881x-analog.o wsa881x-tables-analog.o
snd-soc-wsa881x-analog-objs += wsa881x-regmap-analog.o wsa881x-irq.o
+0 −1
Original line number Diff line number Diff line

config SND_SOC_SDM660_CDC
	tristate "MSM Internal PMIC based codec"
	select SND_SOC_WCD_MBHC
	select SND_SOC_WCD_MBHC_LEGACY
+3 −3
Original line number Diff line number Diff line
@@ -1108,7 +1108,7 @@ static irqreturn_t wcd_mbhc_release_handler(int irq, void *data)
	 * For ADC MBHC, ADC_COMPLETE interrupt will be generated
	 * in this case. So skip the check here.
	 */
	if (!WCD_MBHC_DETECTION &&
	if (mbhc->mbhc_detection_logic == WCD_DETECTION_LEGACY &&
		mbhc->current_plug == MBHC_PLUG_TYPE_HEADPHONE) {
		wcd_mbhc_find_plug_and_report(mbhc, MBHC_PLUG_TYPE_HEADSET);
		goto exit;
@@ -1922,7 +1922,7 @@ int wcd_mbhc_init(struct wcd_mbhc *mbhc, struct snd_soc_codec *codec,
	init_waitqueue_head(&mbhc->wait_btn_press);
	mutex_init(&mbhc->codec_resource_lock);

	switch (WCD_MBHC_DETECTION) {
	switch (mbhc->mbhc_detection_logic) {
	case WCD_DETECTION_LEGACY:
		wcd_mbhc_legacy_init(mbhc);
		break;
@@ -1931,7 +1931,7 @@ int wcd_mbhc_init(struct wcd_mbhc *mbhc, struct snd_soc_codec *codec,
		break;
	default:
		pr_err("%s: Unknown detection logic type %d\n",
			__func__, WCD_MBHC_DETECTION);
			__func__, mbhc->mbhc_detection_logic);
		break;
	}

+3 −6
Original line number Diff line number Diff line
@@ -157,12 +157,6 @@ enum wcd_mbhc_detect_logic {
	WCD_DETECTION_ADC,
};

#if IS_ENABLED(CONFIG_SND_SOC_WCD_MBHC_ADC)
#define WCD_MBHC_DETECTION	WCD_DETECTION_ADC
#else
#define WCD_MBHC_DETECTION	WCD_DETECTION_LEGACY
#endif

enum wcd_mbhc_cs_mb_en_flag {
	WCD_MBHC_EN_CS = 0,
	WCD_MBHC_EN_MB,
@@ -565,6 +559,9 @@ struct wcd_mbhc {
	struct mutex hphl_pa_lock;
	struct mutex hphr_pa_lock;

	/* Holds mbhc detection method - ADC/Legacy */
	unsigned int mbhc_detection_logic;

	unsigned long intr_status;
	bool is_hph_ocp_pending;

Loading