/*
 * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#define CONFIG_SND_SOC_MSM_HOSTLESS_PCM 1
#define CONFIG_SND_SOC_MSM_QDSP6V2_INTF 1
#define CONFIG_MSM_QDSP6V2_CODECS 1
#define CONFIG_WCD9XXX_CODEC_CORE 1
#define CONFIG_PINCTRL_WCD 1
#define CONFIG_SND_SOC_QDSP6V2 1
#define CONFIG_QTI_PP 1
#define CONFIG_SND_SOC_CPE 1
#define CONFIG_SND_SOC_MSM8909 1
#define CONFIG_SND_SOC_BG_8909 1
#define CONFIG_SND_SOC_8909_DIG_CDC 1
#define CONFIG_SND_SOC_I2C_AND_SPI 1
#define CONFIG_SND_SOC_BG_CODEC 1
#define CONFIG_SND_SOC_ANALOG_CDC 1
#define CONFIG_SND_SOC_DIGITAL_CDC_LEGACY 1
#define CONFIG_SND_SOC_WCD9XXX_V2 1
#define CONFIG_SND_SOC_WCD_CPE 1
#define CONFIG_AUDIO_EXT_CLK 1
#define CONFIG_SND_SOC_WCD_MBHC 1
#define CONFIG_SND_SOC_WCD_MBHC_LEGACY 1
#define CONFIG_SND_SOC_MSM_STUB 1
#define CONFIG_MSM_QDSP6_APRV3 1
#define CONFIG_REGMAP_SWR 1
#define CONFIG_MSM_QDSP6_NOTIFIER 1
#define CONFIG_MSM_QDSP6_SSR 1
#define CONFIG_MSM_ULTRASOUND 1
#define CONFIG_MSM_ADSP_LOADER 1
#define CONFIG_MSM_CDC_PINCTRL 1
#define CONFIG_MSM_BG_GLINK 1
#define CONFIG_WCD_DSP_GLINK 1
#define CONFIG_SOUNDWIRE 1
#define CONFIG_SOUNDWIRE_WCD_CTRL 1
#define CONFIG_SND_HWDEP_ROUTING 1
#define CONFIG_SND_SOC_SDM660_CDC 1
#define CONFIG_SND_SOC_MSM_HDMI_CODEC_RX 1
#define CONFIG_SND_SOC_WCD9335 1
#define CONFIG_SND_SOC_WSA881X 1
#define CONFIG_COMMON_CLK_MSM 1
#define CONFIG_SND_SOC_EXT_CODEC_8909 1
#define CONFIG_SND_SOC_WSA881X_ANALOG 1
