audio-lnx: Rename folders to new flat structure.

Kernel audio drivers can be categorised into below folders.
asoc - ALSA based drivers,
asoc/codecs - codec drivers,
ipc - APR IPC communication drivers,
dsp - DSP low level drivers/Audio ION/ADSP Loader,
dsp/codecs - Native encoders and decoders,
soc - SoC based drivers(pinctrl/regmap/soundwire)

Restructure drivers to above folder format.
Include directories also follow above format.

Change-Id: I8fa0857baaacd47db126fb5c1f1f5ed7e886dbc0
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
diff --git a/Makefile b/Makefile
index b8428de..05b04c6 100644
--- a/Makefile
+++ b/Makefile
@@ -19,5 +19,7 @@
                 -include $(srctree)/techpack/audio/config/sdm845autoconf.h
 endif
 
-obj-y           += drivers/
-obj-y           += sound/
+obj-y += asoc/
+obj-y += dsp/
+obj-y += ipc/
+obj-y += soc/
diff --git a/sound/soc/msm/Makefile b/asoc/Makefile
similarity index 61%
rename from sound/soc/msm/Makefile
rename to asoc/Makefile
index caf8843..67cb9f3 100644
--- a/sound/soc/msm/Makefile
+++ b/asoc/Makefile
@@ -3,7 +3,6 @@
 snd-soc-hostless-pcm-objs := msm-pcm-hostless.o
 obj-$(CONFIG_SND_SOC_MSM_HOSTLESS_PCM) += snd-soc-hostless-pcm.o
 
-obj-$(CONFIG_SND_SOC_MSM_QDSP6V2_INTF) += qdsp6v2/
 
 snd-soc-qdsp6v2-objs := msm-dai-fe.o
 obj-$(CONFIG_SND_SOC_QDSP6V2) += snd-soc-qdsp6v2.o
@@ -37,3 +36,20 @@
 # for SDM845 sound card driver
 snd-soc-sdm845-objs := sdm845.o
 obj-$(CONFIG_SND_SOC_MACHINE_SDM845) += snd-soc-sdm845.o
+
+snd-soc-qdsp6v2-objs += msm-dai-q6-v2.o msm-pcm-q6-v2.o \
+			msm-pcm-routing-v2.o msm-compress-q6-v2.o \
+			msm-pcm-afe-v2.o msm-pcm-voip-v2.o \
+			msm-pcm-voice-v2.o msm-dai-q6-hdmi-v2.o \
+			msm-lsm-client.o msm-pcm-host-voice-v2.o \
+			msm-audio-effects-q6-v2.o msm-pcm-loopback-v2.o \
+			msm-dai-slim.o msm-transcode-loopback-q6-v2.o msm-pcm-q6-noirq.o
+obj-$(CONFIG_SND_SOC_QDSP6V2) += snd-soc-qdsp6v2.o msm-pcm-dtmf-v2.o \
+				 msm-dai-stub-v2.o
+obj-$(CONFIG_SND_HWDEP) += msm-pcm-routing-devdep.o
+obj-$(CONFIG_DOLBY_DAP) += msm-dolby-dap-config.o
+obj-$(CONFIG_DOLBY_DS2) += msm-ds2-dap-config.o
+obj-$(CONFIG_DOLBY_LICENSE) += msm-ds2-dap-config.o
+obj-$(CONFIG_DTS_SRS_TM) += msm-dts-srs-tm-config.o
+obj-$(CONFIG_QTI_PP) += msm-qti-pp-config.o
+obj-y += codecs/
diff --git a/sound/soc/codecs/Makefile b/asoc/codecs/Makefile
similarity index 79%
rename from sound/soc/codecs/Makefile
rename to asoc/codecs/Makefile
index 5325664..04218e8 100644
--- a/sound/soc/codecs/Makefile
+++ b/asoc/codecs/Makefile
@@ -1,4 +1,3 @@
-snd-soc-wcd934x-objs := wcd934x.o
 snd-soc-wcd9xxx-v2-objs := wcd9xxx-common-v2.o wcd9xxx-resmgr-v2.o wcdcal-hwdep.o wcd9xxx-soc-init.o
 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
@@ -24,3 +23,10 @@
 
 snd-soc-msm-stub-objs := msm_stub.o
 obj-$(CONFIG_SND_SOC_MSM_STUB)  += snd-soc-msm-stub.o
+
+wcd-core-objs                  := wcd9xxx-rst.o wcd9xxx-core-init.o \
+				wcd9xxx-core.o wcd9xxx-irq.o \
+				wcd9xxx-slimslave.o wcd9xxx-utils.o \
+				wcd9335-regmap.o wcd9335-tables.o \
+				msm-cdc-pinctrl.o msm-cdc-supply.o
+obj-$(CONFIG_WCD9XXX_CODEC_CORE) += wcd-core.o
diff --git a/sound/soc/codecs/audio-ext-clk-up.c b/asoc/codecs/audio-ext-clk-up.c
similarity index 99%
rename from sound/soc/codecs/audio-ext-clk-up.c
rename to asoc/codecs/audio-ext-clk-up.c
index 31c063d..50a8ed6 100644
--- a/sound/soc/codecs/audio-ext-clk-up.c
+++ b/asoc/codecs/audio-ext-clk-up.c
@@ -22,7 +22,7 @@
 #include <linux/gpio.h>
 #include <linux/of_gpio.h>
 #include <dt-bindings/clock/qcom,audio-ext-clk.h>
-#include <sound/q6afe-v2.h>
+#include <dsp/q6afe-v2.h>
 #include "audio-ext-clk-up.h"
 
 enum audio_clk_mux {
diff --git a/sound/soc/codecs/audio-ext-clk-up.h b/asoc/codecs/audio-ext-clk-up.h
similarity index 100%
rename from sound/soc/codecs/audio-ext-clk-up.h
rename to asoc/codecs/audio-ext-clk-up.h
diff --git a/sound/soc/codecs/audio-ext-clk.c b/asoc/codecs/audio-ext-clk.c
similarity index 100%
rename from sound/soc/codecs/audio-ext-clk.c
rename to asoc/codecs/audio-ext-clk.c
diff --git a/include/linux/mfd/wcd9xxx/core.h b/asoc/codecs/core.h
similarity index 100%
rename from include/linux/mfd/wcd9xxx/core.h
rename to asoc/codecs/core.h
diff --git a/include/sound/cpe_cmi.h b/asoc/codecs/cpe_cmi.h
similarity index 100%
rename from include/sound/cpe_cmi.h
rename to asoc/codecs/cpe_cmi.h
diff --git a/include/sound/cpe_core.h b/asoc/codecs/cpe_core.h
similarity index 100%
rename from include/sound/cpe_core.h
rename to asoc/codecs/cpe_core.h
diff --git a/include/sound/cpe_err.h b/asoc/codecs/cpe_err.h
similarity index 100%
rename from include/sound/cpe_err.h
rename to asoc/codecs/cpe_err.h
diff --git a/drivers/mfd/msm-cdc-pinctrl.c b/asoc/codecs/msm-cdc-pinctrl.c
similarity index 98%
rename from drivers/mfd/msm-cdc-pinctrl.c
rename to asoc/codecs/msm-cdc-pinctrl.c
index 859a75f..c4d0ec1 100644
--- a/drivers/mfd/msm-cdc-pinctrl.c
+++ b/asoc/codecs/msm-cdc-pinctrl.c
@@ -19,7 +19,7 @@
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
 #include <linux/of_gpio.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
+#include "msm-cdc-pinctrl.h"
 
 struct msm_cdc_pinctrl_info {
 	struct pinctrl *pinctrl;
diff --git a/include/linux/mfd/msm-cdc-pinctrl.h b/asoc/codecs/msm-cdc-pinctrl.h
similarity index 100%
rename from include/linux/mfd/msm-cdc-pinctrl.h
rename to asoc/codecs/msm-cdc-pinctrl.h
diff --git a/drivers/mfd/msm-cdc-supply.c b/asoc/codecs/msm-cdc-supply.c
similarity index 99%
rename from drivers/mfd/msm-cdc-supply.c
rename to asoc/codecs/msm-cdc-supply.c
index 9c7ebf7..e36baa8 100644
--- a/drivers/mfd/msm-cdc-supply.c
+++ b/asoc/codecs/msm-cdc-supply.c
@@ -16,7 +16,7 @@
 #include <linux/of_irq.h>
 #include <linux/of_device.h>
 #include <linux/slab.h>
-#include <linux/mfd/msm-cdc-supply.h>
+#include "msm-cdc-supply.h"
 #include <linux/regulator/consumer.h>
 
 #define CODEC_DT_MAX_PROP_SIZE 40
diff --git a/include/linux/mfd/msm-cdc-supply.h b/asoc/codecs/msm-cdc-supply.h
similarity index 100%
rename from include/linux/mfd/msm-cdc-supply.h
rename to asoc/codecs/msm-cdc-supply.h
diff --git a/sound/soc/codecs/msm_hdmi_codec_rx.c b/asoc/codecs/msm_hdmi_codec_rx.c
similarity index 100%
rename from sound/soc/codecs/msm_hdmi_codec_rx.c
rename to asoc/codecs/msm_hdmi_codec_rx.c
diff --git a/sound/soc/codecs/msm_sdw/Makefile b/asoc/codecs/msm_sdw/Makefile
similarity index 100%
rename from sound/soc/codecs/msm_sdw/Makefile
rename to asoc/codecs/msm_sdw/Makefile
diff --git a/sound/soc/codecs/msm_sdw/msm-sdw-tables.c b/asoc/codecs/msm_sdw/msm-sdw-tables.c
similarity index 100%
rename from sound/soc/codecs/msm_sdw/msm-sdw-tables.c
rename to asoc/codecs/msm_sdw/msm-sdw-tables.c
diff --git a/sound/soc/codecs/msm_sdw/msm_sdw.h b/asoc/codecs/msm_sdw/msm_sdw.h
similarity index 100%
rename from sound/soc/codecs/msm_sdw/msm_sdw.h
rename to asoc/codecs/msm_sdw/msm_sdw.h
diff --git a/sound/soc/codecs/msm_sdw/msm_sdw_cdc.c b/asoc/codecs/msm_sdw/msm_sdw_cdc.c
similarity index 100%
rename from sound/soc/codecs/msm_sdw/msm_sdw_cdc.c
rename to asoc/codecs/msm_sdw/msm_sdw_cdc.c
diff --git a/sound/soc/codecs/msm_sdw/msm_sdw_cdc_utils.c b/asoc/codecs/msm_sdw/msm_sdw_cdc_utils.c
similarity index 100%
rename from sound/soc/codecs/msm_sdw/msm_sdw_cdc_utils.c
rename to asoc/codecs/msm_sdw/msm_sdw_cdc_utils.c
diff --git a/sound/soc/codecs/msm_sdw/msm_sdw_registers.h b/asoc/codecs/msm_sdw/msm_sdw_registers.h
similarity index 100%
rename from sound/soc/codecs/msm_sdw/msm_sdw_registers.h
rename to asoc/codecs/msm_sdw/msm_sdw_registers.h
diff --git a/sound/soc/codecs/msm_sdw/msm_sdw_regmap.c b/asoc/codecs/msm_sdw/msm_sdw_regmap.c
similarity index 100%
rename from sound/soc/codecs/msm_sdw/msm_sdw_regmap.c
rename to asoc/codecs/msm_sdw/msm_sdw_regmap.c
diff --git a/sound/soc/codecs/msm_stub.c b/asoc/codecs/msm_stub.c
similarity index 100%
rename from sound/soc/codecs/msm_stub.c
rename to asoc/codecs/msm_stub.c
diff --git a/include/linux/mfd/wcd9xxx/pdata.h b/asoc/codecs/pdata.h
similarity index 98%
rename from include/linux/mfd/wcd9xxx/pdata.h
rename to asoc/codecs/pdata.h
index f188e85..fa16b3d 100644
--- a/include/linux/mfd/wcd9xxx/pdata.h
+++ b/asoc/codecs/pdata.h
@@ -15,7 +15,7 @@
 #define __MFD_WCD9XXX_PDATA_H__
 
 #include <linux/slimbus/slimbus.h>
-#include <linux/mfd/msm-cdc-supply.h>
+#include "msm-cdc-supply.h"
 
 #define MICBIAS_EXT_BYP_CAP 0x00
 #define MICBIAS_NO_EXT_BYP_CAP 0x01
diff --git a/sound/soc/codecs/sdm660_cdc/Makefile b/asoc/codecs/sdm660_cdc/Makefile
similarity index 100%
rename from sound/soc/codecs/sdm660_cdc/Makefile
rename to asoc/codecs/sdm660_cdc/Makefile
diff --git a/sound/soc/codecs/sdm660_cdc/msm-analog-cdc.c b/asoc/codecs/sdm660_cdc/msm-analog-cdc.c
similarity index 99%
rename from sound/soc/codecs/sdm660_cdc/msm-analog-cdc.c
rename to asoc/codecs/sdm660_cdc/msm-analog-cdc.c
index f126d35..ddef508 100644
--- a/sound/soc/codecs/sdm660_cdc/msm-analog-cdc.c
+++ b/asoc/codecs/sdm660_cdc/msm-analog-cdc.c
@@ -16,22 +16,22 @@
 #include <linux/debugfs.h>
 #include <linux/delay.h>
 #include <linux/regulator/consumer.h>
-#include <linux/qdsp6v2/apr.h>
 #include <linux/workqueue.h>
 #include <linux/regmap.h>
-#include <linux/qdsp6v2/audio_notifier.h>
-#include <sound/q6afe-v2.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/tlv.h>
-#include <sound/q6core.h>
+#include <dsp/audio_notifier.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6core.h>
+#include <ipc/apr.h>
 #include "msm-analog-cdc.h"
+#include "msm-cdc-common.h"
 #include "sdm660-cdc-irq.h"
 #include "sdm660-cdc-registers.h"
-#include "msm-cdc-common.h"
-#include "../../msm/sdm660-common.h"
+#include "../../sdm660-common.h"
 #include "../wcd-mbhc-v2-api.h"
 
 #define DRV_NAME "pmic_analog_codec"
diff --git a/sound/soc/codecs/sdm660_cdc/msm-analog-cdc.h b/asoc/codecs/sdm660_cdc/msm-analog-cdc.h
similarity index 99%
rename from sound/soc/codecs/sdm660_cdc/msm-analog-cdc.h
rename to asoc/codecs/sdm660_cdc/msm-analog-cdc.h
index 9563565..fffdf31 100644
--- a/sound/soc/codecs/sdm660_cdc/msm-analog-cdc.h
+++ b/asoc/codecs/sdm660_cdc/msm-analog-cdc.h
@@ -14,7 +14,7 @@
 
 #include <sound/soc.h>
 #include <sound/jack.h>
-#include <sound/q6afe-v2.h>
+#include <dsp/q6afe-v2.h>
 #include "../wcd-mbhc-v2.h"
 #include "../wcdcal-hwdep.h"
 #include "sdm660-cdc-registers.h"
diff --git a/sound/soc/codecs/sdm660_cdc/msm-cdc-common.h b/asoc/codecs/sdm660_cdc/msm-cdc-common.h
similarity index 100%
rename from sound/soc/codecs/sdm660_cdc/msm-cdc-common.h
rename to asoc/codecs/sdm660_cdc/msm-cdc-common.h
diff --git a/sound/soc/codecs/sdm660_cdc/msm-digital-cdc.c b/asoc/codecs/sdm660_cdc/msm-digital-cdc.c
similarity index 99%
rename from sound/soc/codecs/sdm660_cdc/msm-digital-cdc.c
rename to asoc/codecs/sdm660_cdc/msm-digital-cdc.c
index 68a1d8d..f59b653 100644
--- a/sound/soc/codecs/sdm660_cdc/msm-digital-cdc.c
+++ b/asoc/codecs/sdm660_cdc/msm-digital-cdc.c
@@ -17,20 +17,20 @@
 #include <linux/printk.h>
 #include <linux/debugfs.h>
 #include <linux/delay.h>
-#include <linux/qdsp6v2/apr.h>
 #include <linux/workqueue.h>
 #include <linux/regmap.h>
-#include <sound/q6afe-v2.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/tlv.h>
+#include <dsp/q6afe-v2.h>
+#include <ipc/apr.h>
+#include <soc/internal.h>
 #include "sdm660-cdc-registers.h"
 #include "msm-digital-cdc.h"
 #include "msm-cdc-common.h"
-#include "../../msm/sdm660-common.h"
-#include "../../../../drivers/base/regmap/internal.h"
+#include "../../sdm660-common.h"
 
 #define DRV_NAME "msm_digital_codec"
 #define MCLK_RATE_9P6MHZ        9600000
diff --git a/sound/soc/codecs/sdm660_cdc/msm-digital-cdc.h b/asoc/codecs/sdm660_cdc/msm-digital-cdc.h
similarity index 100%
rename from sound/soc/codecs/sdm660_cdc/msm-digital-cdc.h
rename to asoc/codecs/sdm660_cdc/msm-digital-cdc.h
diff --git a/sound/soc/codecs/sdm660_cdc/sdm660-cdc-irq.c b/asoc/codecs/sdm660_cdc/sdm660-cdc-irq.c
similarity index 100%
rename from sound/soc/codecs/sdm660_cdc/sdm660-cdc-irq.c
rename to asoc/codecs/sdm660_cdc/sdm660-cdc-irq.c
diff --git a/sound/soc/codecs/sdm660_cdc/sdm660-cdc-irq.h b/asoc/codecs/sdm660_cdc/sdm660-cdc-irq.h
similarity index 100%
rename from sound/soc/codecs/sdm660_cdc/sdm660-cdc-irq.h
rename to asoc/codecs/sdm660_cdc/sdm660-cdc-irq.h
diff --git a/sound/soc/codecs/sdm660_cdc/sdm660-cdc-registers.h b/asoc/codecs/sdm660_cdc/sdm660-cdc-registers.h
similarity index 100%
rename from sound/soc/codecs/sdm660_cdc/sdm660-cdc-registers.h
rename to asoc/codecs/sdm660_cdc/sdm660-cdc-registers.h
diff --git a/sound/soc/codecs/sdm660_cdc/sdm660-regmap.c b/asoc/codecs/sdm660_cdc/sdm660-regmap.c
similarity index 100%
rename from sound/soc/codecs/sdm660_cdc/sdm660-regmap.c
rename to asoc/codecs/sdm660_cdc/sdm660-regmap.c
diff --git a/sound/soc/codecs/wcd-dsp-mgr.c b/asoc/codecs/wcd-dsp-mgr.c
similarity index 100%
rename from sound/soc/codecs/wcd-dsp-mgr.c
rename to asoc/codecs/wcd-dsp-mgr.c
diff --git a/sound/soc/codecs/wcd-dsp-utils.c b/asoc/codecs/wcd-dsp-utils.c
similarity index 100%
rename from sound/soc/codecs/wcd-dsp-utils.c
rename to asoc/codecs/wcd-dsp-utils.c
diff --git a/sound/soc/codecs/wcd-dsp-utils.h b/asoc/codecs/wcd-dsp-utils.h
similarity index 100%
rename from sound/soc/codecs/wcd-dsp-utils.h
rename to asoc/codecs/wcd-dsp-utils.h
diff --git a/sound/soc/codecs/wcd-mbhc-adc.c b/asoc/codecs/wcd-mbhc-adc.c
similarity index 100%
rename from sound/soc/codecs/wcd-mbhc-adc.c
rename to asoc/codecs/wcd-mbhc-adc.c
diff --git a/sound/soc/codecs/wcd-mbhc-adc.h b/asoc/codecs/wcd-mbhc-adc.h
similarity index 100%
rename from sound/soc/codecs/wcd-mbhc-adc.h
rename to asoc/codecs/wcd-mbhc-adc.h
diff --git a/sound/soc/codecs/wcd-mbhc-legacy.c b/asoc/codecs/wcd-mbhc-legacy.c
similarity index 100%
rename from sound/soc/codecs/wcd-mbhc-legacy.c
rename to asoc/codecs/wcd-mbhc-legacy.c
diff --git a/sound/soc/codecs/wcd-mbhc-legacy.h b/asoc/codecs/wcd-mbhc-legacy.h
similarity index 100%
rename from sound/soc/codecs/wcd-mbhc-legacy.h
rename to asoc/codecs/wcd-mbhc-legacy.h
diff --git a/sound/soc/codecs/wcd-mbhc-v2-api.h b/asoc/codecs/wcd-mbhc-v2-api.h
similarity index 100%
rename from sound/soc/codecs/wcd-mbhc-v2-api.h
rename to asoc/codecs/wcd-mbhc-v2-api.h
diff --git a/sound/soc/codecs/wcd-mbhc-v2.c b/asoc/codecs/wcd-mbhc-v2.c
similarity index 99%
rename from sound/soc/codecs/wcd-mbhc-v2.c
rename to asoc/codecs/wcd-mbhc-v2.c
index eb67de9..6b3dd86 100644
--- a/sound/soc/codecs/wcd-mbhc-v2.c
+++ b/asoc/codecs/wcd-mbhc-v2.c
@@ -25,9 +25,9 @@
 #include <linux/input.h>
 #include <linux/firmware.h>
 #include <linux/completion.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
 #include <sound/soc.h>
 #include <sound/jack.h>
+#include "msm-cdc-pinctrl.h"
 #include "wcdcal-hwdep.h"
 #include "wcd-mbhc-legacy.h"
 #include "wcd-mbhc-adc.h"
diff --git a/sound/soc/codecs/wcd-mbhc-v2.h b/asoc/codecs/wcd-mbhc-v2.h
similarity index 100%
rename from sound/soc/codecs/wcd-mbhc-v2.h
rename to asoc/codecs/wcd-mbhc-v2.h
diff --git a/sound/soc/codecs/wcd-spi-registers.h b/asoc/codecs/wcd-spi-registers.h
similarity index 100%
rename from sound/soc/codecs/wcd-spi-registers.h
rename to asoc/codecs/wcd-spi-registers.h
diff --git a/sound/soc/codecs/wcd-spi.c b/asoc/codecs/wcd-spi.c
similarity index 100%
rename from sound/soc/codecs/wcd-spi.c
rename to asoc/codecs/wcd-spi.c
diff --git a/drivers/mfd/wcd9335-regmap.c b/asoc/codecs/wcd9335-regmap.c
similarity index 99%
rename from drivers/mfd/wcd9335-regmap.c
rename to asoc/codecs/wcd9335-regmap.c
index 1762374..ffb79b7 100644
--- a/drivers/mfd/wcd9335-regmap.c
+++ b/asoc/codecs/wcd9335-regmap.c
@@ -11,11 +11,11 @@
  * GNU General Public License for more details.
  */
 
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9335/registers.h>
 #include <linux/regmap.h>
 #include <linux/device.h>
+#include "core.h"
 #include "wcd9xxx-regmap.h"
+#include "wcd9335_registers.h"
 
 static const struct reg_sequence wcd9335_1_x_defaults[] = {
 	{ WCD9335_CODEC_RPM_CLK_GATE,                     0x03,  0x00 },
diff --git a/drivers/mfd/wcd9335-tables.c b/asoc/codecs/wcd9335-tables.c
similarity index 99%
rename from drivers/mfd/wcd9335-tables.c
rename to asoc/codecs/wcd9335-tables.c
index f5c32ef..7df2778 100644
--- a/drivers/mfd/wcd9335-tables.c
+++ b/asoc/codecs/wcd9335-tables.c
@@ -12,7 +12,7 @@
  */
 
 #include <linux/types.h>
-#include <linux/mfd/wcd9335/registers.h>
+#include "wcd9335_registers.h"
 
 #define WCD9335_REG(reg)  ((reg) & 0xFF)
 
diff --git a/sound/soc/codecs/wcd9335.c b/asoc/codecs/wcd9335.c
similarity index 99%
rename from sound/soc/codecs/wcd9335.c
rename to asoc/codecs/wcd9335.c
index dedeaea..26a5a9d 100644
--- a/sound/soc/codecs/wcd9335.c
+++ b/asoc/codecs/wcd9335.c
@@ -22,29 +22,29 @@
 #include <linux/wait.h>
 #include <linux/bitops.h>
 #include <linux/regmap.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
-#include <linux/mfd/wcd9335/registers.h>
-#include <linux/mfd/wcd9335/irq.h>
-#include <linux/mfd/wcd9xxx/pdata.h>
 #include <linux/regulator/consumer.h>
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/pm_runtime.h>
 #include <linux/kernel.h>
 #include <linux/gpio.h>
-#include <linux/soundwire/swr-wcd.h>
+#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
+#include <soc/swr-wcd.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/tlv.h>
 #include <sound/info.h>
+#include "core.h"
+#include "pdata.h"
 #include "wcd9335.h"
 #include "wcd-mbhc-v2.h"
 #include "wcd9xxx-common-v2.h"
 #include "wcd9xxx-resmgr-v2.h"
+#include "wcd9xxx-irq.h"
+#include "wcd9335_registers.h"
+#include "wcd9335_irq.h"
 #include "wcd_cpe_core.h"
 #include "wcdcal-hwdep.h"
 #include "wcd-mbhc-v2-api.h"
diff --git a/sound/soc/codecs/wcd9335.h b/asoc/codecs/wcd9335.h
similarity index 97%
rename from sound/soc/codecs/wcd9335.h
rename to asoc/codecs/wcd9335.h
index c76461e..48826e6 100644
--- a/sound/soc/codecs/wcd9335.h
+++ b/asoc/codecs/wcd9335.h
@@ -15,8 +15,8 @@
 
 #include <sound/soc.h>
 #include <sound/jack.h>
-#include <sound/apr_audio-v2.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-slimslave.h>
+#include <dsp/apr_audio-v2.h>
+#include "wcd9xxx-slimslave.h"
 #include "wcd-mbhc-v2.h"
 
 #define TASHA_REG_VAL(reg, val)      {reg, 0, val}
diff --git a/include/linux/mfd/wcd9335/irq.h b/asoc/codecs/wcd9335_irq.h
similarity index 100%
rename from include/linux/mfd/wcd9335/irq.h
rename to asoc/codecs/wcd9335_irq.h
diff --git a/include/linux/mfd/wcd9335/registers.h b/asoc/codecs/wcd9335_registers.h
similarity index 100%
rename from include/linux/mfd/wcd9335/registers.h
rename to asoc/codecs/wcd9335_registers.h
diff --git a/sound/soc/codecs/wcd934x/Makefile b/asoc/codecs/wcd934x/Makefile
similarity index 67%
rename from sound/soc/codecs/wcd934x/Makefile
rename to asoc/codecs/wcd934x/Makefile
index 12781f6..c4db59b 100644
--- a/sound/soc/codecs/wcd934x/Makefile
+++ b/asoc/codecs/wcd934x/Makefile
@@ -2,5 +2,6 @@
 # Makefile for wcd934x codec driver.
 #
 snd-soc-wcd934x-objs := wcd934x.o wcd934x-dsp-cntl.o \
-			wcd934x-mbhc.o wcd934x-dsd.o
+			wcd934x-mbhc.o wcd934x-dsd.o \
+			wcd934x-regmap.o wcd934x-tables.o
 obj-$(CONFIG_SND_SOC_WCD934X) += snd-soc-wcd934x.o
diff --git a/sound/soc/codecs/wcd934x/wcd934x-dsd.c b/asoc/codecs/wcd934x/wcd934x-dsd.c
similarity index 99%
rename from sound/soc/codecs/wcd934x/wcd934x-dsd.c
rename to asoc/codecs/wcd934x/wcd934x-dsd.c
index 3e23e37..eea18c3 100644
--- a/sound/soc/codecs/wcd934x/wcd934x-dsd.c
+++ b/asoc/codecs/wcd934x/wcd934x-dsd.c
@@ -12,9 +12,9 @@
 
 #include <linux/module.h>
 #include <linux/delay.h>
-#include <linux/mfd/wcd934x/registers.h>
 #include <sound/tlv.h>
 #include <sound/control.h>
+#include <asoc/wcd934x_registers.h>
 #include "wcd934x-dsd.h"
 
 #define DSD_VOLUME_MAX_0dB      0
diff --git a/sound/soc/codecs/wcd934x/wcd934x-dsd.h b/asoc/codecs/wcd934x/wcd934x-dsd.h
similarity index 100%
rename from sound/soc/codecs/wcd934x/wcd934x-dsd.h
rename to asoc/codecs/wcd934x/wcd934x-dsd.h
diff --git a/sound/soc/codecs/wcd934x/wcd934x-dsp-cntl.c b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c
similarity index 99%
rename from sound/soc/codecs/wcd934x/wcd934x-dsp-cntl.c
rename to asoc/codecs/wcd934x/wcd934x-dsp-cntl.c
index 8da0425..d82748b 100644
--- a/sound/soc/codecs/wcd934x/wcd934x-dsp-cntl.c
+++ b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c
@@ -15,13 +15,13 @@
 #include <linux/delay.h>
 #include <linux/component.h>
 #include <linux/debugfs.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
-#include <linux/mfd/wcd934x/registers.h>
 #include <sound/soc.h>
 #include <sound/wcd-dsp-mgr.h>
+#include <asoc/wcd934x_registers.h>
 #include "wcd934x.h"
 #include "wcd934x-dsp-cntl.h"
+#include "../wcd9xxx-irq.h"
+#include "../core.h"
 
 #define WCD_CNTL_DIR_NAME_LEN_MAX 32
 #define WCD_CPE_FLL_MAX_RETRIES 5
diff --git a/sound/soc/codecs/wcd934x/wcd934x-dsp-cntl.h b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.h
similarity index 100%
rename from sound/soc/codecs/wcd934x/wcd934x-dsp-cntl.h
rename to asoc/codecs/wcd934x/wcd934x-dsp-cntl.h
diff --git a/sound/soc/codecs/wcd934x/wcd934x-mbhc.c b/asoc/codecs/wcd934x/wcd934x-mbhc.c
similarity index 99%
rename from sound/soc/codecs/wcd934x/wcd934x-mbhc.c
rename to asoc/codecs/wcd934x/wcd934x-mbhc.c
index ea19caa..9595ba8 100644
--- a/sound/soc/codecs/wcd934x/wcd934x-mbhc.c
+++ b/asoc/codecs/wcd934x/wcd934x-mbhc.c
@@ -20,18 +20,18 @@
 #include <linux/gpio.h>
 #include <linux/delay.h>
 #include <linux/regmap.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
 #include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
-#include <linux/mfd/wcd934x/registers.h>
-#include <linux/mfd/wcd934x/irq.h>
-#include <linux/mfd/wcd9xxx/pdata.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include "wcd934x.h"
 #include "wcd934x-mbhc.h"
+#include <asoc/wcd934x_registers.h>
+#include "wcd934x_irq.h"
+#include "../core.h"
+#include "../pdata.h"
+#include "../wcd9xxx-irq.h"
 #include "../wcdcal-hwdep.h"
 #include "../wcd-mbhc-v2-api.h"
 
diff --git a/sound/soc/codecs/wcd934x/wcd934x-mbhc.h b/asoc/codecs/wcd934x/wcd934x-mbhc.h
similarity index 100%
rename from sound/soc/codecs/wcd934x/wcd934x-mbhc.h
rename to asoc/codecs/wcd934x/wcd934x-mbhc.h
diff --git a/drivers/mfd/wcd934x-regmap.c b/asoc/codecs/wcd934x/wcd934x-regmap.c
similarity index 99%
rename from drivers/mfd/wcd934x-regmap.c
rename to asoc/codecs/wcd934x/wcd934x-regmap.c
index 27249ee..7f648fe 100644
--- a/drivers/mfd/wcd934x-regmap.c
+++ b/asoc/codecs/wcd934x/wcd934x-regmap.c
@@ -11,11 +11,11 @@
  * GNU General Public License for more details.
  */
 
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd934x/registers.h>
 #include <linux/regmap.h>
 #include <linux/device.h>
-#include "wcd9xxx-regmap.h"
+#include <asoc/wcd934x_registers.h>
+#include "../core.h"
+#include "../wcd9xxx-regmap.h"
 
 
 static const struct reg_sequence wcd934x_1_1_defaults[] = {
diff --git a/sound/soc/codecs/wcd934x/wcd934x-routing.h b/asoc/codecs/wcd934x/wcd934x-routing.h
similarity index 100%
rename from sound/soc/codecs/wcd934x/wcd934x-routing.h
rename to asoc/codecs/wcd934x/wcd934x-routing.h
diff --git a/drivers/mfd/wcd934x-tables.c b/asoc/codecs/wcd934x/wcd934x-tables.c
similarity index 99%
rename from drivers/mfd/wcd934x-tables.c
rename to asoc/codecs/wcd934x/wcd934x-tables.c
index db963d0..4e6c2fb 100644
--- a/drivers/mfd/wcd934x-tables.c
+++ b/asoc/codecs/wcd934x/wcd934x-tables.c
@@ -12,7 +12,7 @@
  */
 
 #include <linux/types.h>
-#include <linux/mfd/wcd934x/registers.h>
+#include <asoc/wcd934x_registers.h>
 
 #define WCD934X_REG(reg)  ((reg) & 0xFF)
 
diff --git a/sound/soc/codecs/wcd934x/wcd934x.c b/asoc/codecs/wcd934x/wcd934x.c
similarity index 99%
rename from sound/soc/codecs/wcd934x/wcd934x.c
rename to asoc/codecs/wcd934x/wcd934x.c
index 3079cca..1997e04 100644
--- a/sound/soc/codecs/wcd934x/wcd934x.c
+++ b/asoc/codecs/wcd934x/wcd934x.c
@@ -27,24 +27,24 @@
 #include <linux/gpio.h>
 #include <linux/regmap.h>
 #include <linux/spi/spi.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
-#include <linux/mfd/wcd934x/registers.h>
-#include <linux/mfd/wcd934x/irq.h>
-#include <linux/mfd/wcd9xxx/pdata.h>
 #include <linux/regulator/consumer.h>
-#include <linux/soundwire/swr-wcd.h>
+#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
+#include <soc/swr-wcd.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/tlv.h>
 #include <sound/info.h>
+#include <asoc/wcd934x_registers.h>
 #include "wcd934x.h"
 #include "wcd934x-mbhc.h"
 #include "wcd934x-routing.h"
 #include "wcd934x-dsp-cntl.h"
+#include "wcd934x_irq.h"
+#include "../core.h"
+#include "../pdata.h"
+#include "../wcd9xxx-irq.h"
 #include "../wcd9xxx-common-v2.h"
 #include "../wcd9xxx-resmgr-v2.h"
 #include "../wcdcal-hwdep.h"
diff --git a/sound/soc/codecs/wcd934x/wcd934x.h b/asoc/codecs/wcd934x/wcd934x.h
similarity index 97%
rename from sound/soc/codecs/wcd934x/wcd934x.h
rename to asoc/codecs/wcd934x/wcd934x.h
index 27c21f1..ccd48ff 100644
--- a/sound/soc/codecs/wcd934x/wcd934x.h
+++ b/asoc/codecs/wcd934x/wcd934x.h
@@ -13,9 +13,9 @@
 #ifndef WCD934X_H
 #define WCD934X_H
 
-#include <sound/apr_audio-v2.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-slimslave.h>
+#include <dsp/apr_audio-v2.h>
 #include "wcd934x-dsp-cntl.h"
+#include "../wcd9xxx-slimslave.h"
 #include "../wcd9xxx-common-v2.h"
 #include "../wcd-mbhc-v2.h"
 
diff --git a/include/linux/mfd/wcd934x/irq.h b/asoc/codecs/wcd934x/wcd934x_irq.h
similarity index 100%
rename from include/linux/mfd/wcd934x/irq.h
rename to asoc/codecs/wcd934x/wcd934x_irq.h
diff --git a/sound/soc/codecs/wcd9xxx-common-v2.c b/asoc/codecs/wcd9xxx-common-v2.c
similarity index 99%
rename from sound/soc/codecs/wcd9xxx-common-v2.c
rename to asoc/codecs/wcd9xxx-common-v2.c
index 6216657..478c0c6 100644
--- a/sound/soc/codecs/wcd9xxx-common-v2.c
+++ b/asoc/codecs/wcd9xxx-common-v2.c
@@ -16,8 +16,8 @@
 #include <sound/soc.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
-#include <linux/mfd/wcd9xxx/core.h>
 #include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
+#include "core.h"
 #include "wcd9xxx-common-v2.h"
 
 #define WCD_USLEEP_RANGE 50
diff --git a/sound/soc/codecs/wcd9xxx-common-v2.h b/asoc/codecs/wcd9xxx-common-v2.h
similarity index 100%
rename from sound/soc/codecs/wcd9xxx-common-v2.h
rename to asoc/codecs/wcd9xxx-common-v2.h
diff --git a/drivers/mfd/wcd9xxx-core-init.c b/asoc/codecs/wcd9xxx-core-init.c
similarity index 91%
rename from drivers/mfd/wcd9xxx-core-init.c
rename to asoc/codecs/wcd9xxx-core-init.c
index 7f93399..e575e0d 100644
--- a/drivers/mfd/wcd9xxx-core-init.c
+++ b/asoc/codecs/wcd9xxx-core-init.c
@@ -11,9 +11,9 @@
  */
 
 #include <linux/module.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
-#include <linux/mfd/wcd9xxx/core.h>
+#include "msm-cdc-pinctrl.h"
+#include "wcd9xxx-irq.h"
+#include "core.h"
 
 #define NUM_DRIVERS_REG_RET 3
 
diff --git a/drivers/mfd/wcd9xxx-core.c b/asoc/codecs/wcd9xxx-core.c
similarity index 98%
rename from drivers/mfd/wcd9xxx-core.c
rename to asoc/codecs/wcd9xxx-core.c
index 232c290..2ab5e89 100644
--- a/drivers/mfd/wcd9xxx-core.c
+++ b/asoc/codecs/wcd9xxx-core.c
@@ -16,21 +16,21 @@
 #include <linux/slab.h>
 #include <linux/ratelimit.h>
 #include <linux/mfd/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-slimslave.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
-#include <linux/mfd/wcd9xxx/pdata.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-utils.h>
-#include <linux/mfd/msm-cdc-supply.h>
 #include <linux/delay.h>
 #include <linux/gpio.h>
 #include <linux/debugfs.h>
 #include <linux/i2c.h>
 #include <linux/regmap.h>
+#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
 #include <sound/soc.h>
+#include "core.h"
+#include "pdata.h"
+#include "msm-cdc-pinctrl.h"
+#include "msm-cdc-supply.h"
+#include "wcd9xxx-irq.h"
+#include "wcd9xxx-utils.h"
 #include "wcd9xxx-regmap.h"
+#include "wcd9xxx-slimslave.h"
 
 #define WCD9XXX_REGISTER_START_OFFSET 0x800
 #define WCD9XXX_SLIM_RW_MAX_TRIES 3
diff --git a/drivers/mfd/wcd9xxx-irq.c b/asoc/codecs/wcd9xxx-irq.c
similarity index 99%
rename from drivers/mfd/wcd9xxx-irq.c
rename to asoc/codecs/wcd9xxx-irq.c
index 092f446..65100c9 100644
--- a/drivers/mfd/wcd9xxx-irq.c
+++ b/asoc/codecs/wcd9xxx-irq.c
@@ -16,9 +16,6 @@
 #include <linux/irq.h>
 #include <linux/mfd/core.h>
 #include <linux/regmap.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
 #include <linux/delay.h>
 #include <linux/irqdomain.h>
 #include <linux/interrupt.h>
@@ -29,6 +26,9 @@
 #include <soc/qcom/pm.h>
 #include <linux/gpio.h>
 #include <linux/of_gpio.h>
+#include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
+#include "core.h"
+#include "wcd9xxx-irq.h"
 
 #define BYTE_BIT_MASK(nr)		(1UL << ((nr) % BITS_PER_BYTE))
 #define BIT_BYTE(nr)			((nr) / BITS_PER_BYTE)
diff --git a/include/linux/mfd/wcd9xxx/wcd9xxx-irq.h b/asoc/codecs/wcd9xxx-irq.h
similarity index 97%
rename from include/linux/mfd/wcd9xxx/wcd9xxx-irq.h
rename to asoc/codecs/wcd9xxx-irq.h
index 99ce603..dfe0b92 100644
--- a/include/linux/mfd/wcd9xxx/wcd9xxx-irq.h
+++ b/asoc/codecs/wcd9xxx-irq.h
@@ -11,7 +11,7 @@
  */
 
 #include <linux/types.h>
-#include <linux/mfd/wcd9xxx/core.h>
+#include "core.h"
 
 #ifndef __MFD_WCD9XXX_IRQ_H
 #define __MFD_WCD9XXX_IRQ_H
diff --git a/drivers/mfd/wcd9xxx-regmap.h b/asoc/codecs/wcd9xxx-regmap.h
similarity index 97%
rename from drivers/mfd/wcd9xxx-regmap.h
rename to asoc/codecs/wcd9xxx-regmap.h
index f44e8b1..b7604ff 100644
--- a/drivers/mfd/wcd9xxx-regmap.h
+++ b/asoc/codecs/wcd9xxx-regmap.h
@@ -15,7 +15,7 @@
 #define _WCD9XXX_REGMAP_
 
 #include <linux/regmap.h>
-#include <linux/mfd/wcd9xxx/core.h>
+#include "core.h"
 
 typedef int (*regmap_patch_fptr)(struct regmap *, int);
 
diff --git a/sound/soc/codecs/wcd9xxx-resmgr-v2.c b/asoc/codecs/wcd9xxx-resmgr-v2.c
similarity index 99%
rename from sound/soc/codecs/wcd9xxx-resmgr-v2.c
rename to asoc/codecs/wcd9xxx-resmgr-v2.c
index feef0a4..1b7610f 100644
--- a/sound/soc/codecs/wcd9xxx-resmgr-v2.c
+++ b/asoc/codecs/wcd9xxx-resmgr-v2.c
@@ -14,11 +14,11 @@
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9335/registers.h>
-#include <linux/mfd/wcd934x/registers.h>
 #include <sound/soc.h>
 #include "wcd9xxx-resmgr-v2.h"
+#include "core.h"
+#include "wcd9335_registers.h"
+#include <asoc/wcd934x_registers.h>
 
 #define WCD9XXX_RCO_CALIBRATION_DELAY_INC_US 5000
 #define WCD93XX_ANA_BIAS 0x0601
diff --git a/sound/soc/codecs/wcd9xxx-resmgr-v2.h b/asoc/codecs/wcd9xxx-resmgr-v2.h
similarity index 98%
rename from sound/soc/codecs/wcd9xxx-resmgr-v2.h
rename to asoc/codecs/wcd9xxx-resmgr-v2.h
index e831ba6..e9d3531 100644
--- a/sound/soc/codecs/wcd9xxx-resmgr-v2.h
+++ b/asoc/codecs/wcd9xxx-resmgr-v2.h
@@ -13,8 +13,8 @@
 #ifndef __WCD9XXX_COMMON_V2_H__
 #define __WCD9XXX_COMMON_V2_H__
 
-#include <linux/mfd/wcd9xxx/core.h>
 #include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
+#include "core.h"
 
 enum wcd_clock_type {
 	WCD_CLK_OFF,
diff --git a/drivers/mfd/wcd9xxx-rst.c b/asoc/codecs/wcd9xxx-rst.c
similarity index 97%
rename from drivers/mfd/wcd9xxx-rst.c
rename to asoc/codecs/wcd9xxx-rst.c
index c8e0b34..3df95d5 100644
--- a/drivers/mfd/wcd9xxx-rst.c
+++ b/asoc/codecs/wcd9xxx-rst.c
@@ -15,13 +15,13 @@
 #include <linux/device.h>
 #include <linux/regmap.h>
 #include <linux/delay.h>
-#include <linux/mfd/wcd9xxx/pdata.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-utils.h>
-#include <linux/mfd/wcd9335/registers.h>
-#include <linux/mfd/wcd934x/registers.h>
-#include <linux/mfd/wcd9335/irq.h>
-#include <linux/mfd/wcd934x/irq.h>
+#include "core.h"
+#include "pdata.h"
+#include "wcd9xxx-utils.h"
+#include "wcd9335_registers.h"
+#include "wcd9335_irq.h"
+#include <asoc/wcd934x_registers.h>
+#include "wcd934x/wcd934x_irq.h"
 
 /* wcd9335 interrupt table  */
 static const struct intr_data wcd9335_intr_table[] = {
diff --git a/drivers/mfd/wcd9xxx-slimslave.c b/asoc/codecs/wcd9xxx-slimslave.c
similarity index 99%
rename from drivers/mfd/wcd9xxx-slimslave.c
rename to asoc/codecs/wcd9xxx-slimslave.c
index a99ad5a..66a8332 100644
--- a/drivers/mfd/wcd9xxx-slimslave.c
+++ b/asoc/codecs/wcd9xxx-slimslave.c
@@ -11,8 +11,8 @@
  */
 #include <linux/slab.h>
 #include <linux/mutex.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-slimslave.h>
 #include <linux/mfd/wcd9xxx/wcd9xxx_registers.h>
+#include "wcd9xxx-slimslave.h"
 
 struct wcd9xxx_slim_sch {
 	u16 rx_port_ch_reg_base;
diff --git a/include/linux/mfd/wcd9xxx/wcd9xxx-slimslave.h b/asoc/codecs/wcd9xxx-slimslave.h
similarity index 96%
rename from include/linux/mfd/wcd9xxx/wcd9xxx-slimslave.h
rename to asoc/codecs/wcd9xxx-slimslave.h
index 96fdb00..5132e43 100644
--- a/include/linux/mfd/wcd9xxx/wcd9xxx-slimslave.h
+++ b/asoc/codecs/wcd9xxx-slimslave.h
@@ -10,11 +10,11 @@
  * GNU General Public License for more details.
  */
 
-#ifndef __WCD9310_SLIMSLAVE_H_
-#define __WCD9310_SLIMSLAVE_H_
+#ifndef __WCD9XXX_SLIMSLAVE_H_
+#define __WCD9XXX_SLIMSLAVE_H_
 
 #include <linux/slimbus/slimbus.h>
-#include <linux/mfd/wcd9xxx/core.h>
+#include "core.h"
 
 
 /*
@@ -116,4 +116,4 @@
 int wcd9xxx_tx_vport_validation(u32 vtable, u32 port_id,
 				struct wcd9xxx_codec_dai_data *codec_dai,
 				u32 num_codec_dais);
-#endif /* __WCD9310_SLIMSLAVE_H_ */
+#endif /* __WCD9XXX_SLIMSLAVE_H_ */
diff --git a/sound/soc/codecs/wcd9xxx-soc-init.c b/asoc/codecs/wcd9xxx-soc-init.c
similarity index 100%
rename from sound/soc/codecs/wcd9xxx-soc-init.c
rename to asoc/codecs/wcd9xxx-soc-init.c
diff --git a/drivers/mfd/wcd9xxx-utils.c b/asoc/codecs/wcd9xxx-utils.c
similarity index 98%
rename from drivers/mfd/wcd9xxx-utils.c
rename to asoc/codecs/wcd9xxx-utils.c
index 8d3d4ad..a1ea938 100644
--- a/drivers/mfd/wcd9xxx-utils.c
+++ b/asoc/codecs/wcd9xxx-utils.c
@@ -20,12 +20,12 @@
 #include <linux/delay.h>
 #include <linux/sched.h>
 #include <linux/mfd/core.h>
-#include <linux/mfd/wcd9xxx/pdata.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
-#include <linux/mfd/msm-cdc-supply.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-utils.h>
+#include "core.h"
+#include "msm-cdc-supply.h"
+#include "msm-cdc-pinctrl.h"
+#include "pdata.h"
+#include "wcd9xxx-irq.h"
+#include "wcd9xxx-utils.h"
 
 #define REG_BYTES 2
 #define VAL_BYTES 1
diff --git a/include/linux/mfd/wcd9xxx/wcd9xxx-utils.h b/asoc/codecs/wcd9xxx-utils.h
similarity index 94%
rename from include/linux/mfd/wcd9xxx/wcd9xxx-utils.h
rename to asoc/codecs/wcd9xxx-utils.h
index 7a13dd1..a7ec56c 100644
--- a/include/linux/mfd/wcd9xxx/wcd9xxx-utils.h
+++ b/asoc/codecs/wcd9xxx-utils.h
@@ -16,8 +16,8 @@
 #include <linux/kernel.h>
 #include <linux/device.h>
 #include <linux/regmap.h>
-#include <linux/mfd/wcd9xxx/pdata.h>
-#include <linux/mfd/wcd9xxx/core.h>
+#include "pdata.h"
+#include "core.h"
 
 struct wcd9xxx_pdata *wcd9xxx_populate_dt_data(struct device *dev);
 int wcd9xxx_bringup(struct device *dev);
diff --git a/sound/soc/codecs/wcd_cmi_api.h b/asoc/codecs/wcd_cmi_api.h
similarity index 100%
rename from sound/soc/codecs/wcd_cmi_api.h
rename to asoc/codecs/wcd_cmi_api.h
diff --git a/sound/soc/codecs/wcd_cpe_core.c b/asoc/codecs/wcd_cpe_core.c
similarity index 99%
rename from sound/soc/codecs/wcd_cpe_core.c
rename to asoc/codecs/wcd_cpe_core.c
index f2a20d5..7748ace 100644
--- a/sound/soc/codecs/wcd_cpe_core.c
+++ b/asoc/codecs/wcd_cpe_core.c
@@ -23,16 +23,16 @@
 #include <sound/soc.h>
 #include <sound/info.h>
 #include <sound/lsm_params.h>
-#include <sound/cpe_core.h>
 #include <sound/cpe_cmi.h>
-#include <sound/cpe_err.h>
 #include <soc/qcom/pm.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <linux/mfd/wcd9xxx/wcd9xxx-irq.h>
-#include <sound/audio_cal_utils.h>
+#include <dsp/audio_cal_utils.h>
+#include "core.h"
+#include "cpe_core.h"
+#include "cpe_err.h"
 #include "wcd_cpe_core.h"
 #include "wcd_cpe_services.h"
 #include "wcd_cmi_api.h"
+#include "wcd9xxx-irq.h"
 
 #define CMI_CMD_TIMEOUT (10 * HZ)
 #define WCD_CPE_LSM_MAX_SESSIONS 2
diff --git a/sound/soc/codecs/wcd_cpe_core.h b/asoc/codecs/wcd_cpe_core.h
similarity index 100%
rename from sound/soc/codecs/wcd_cpe_core.h
rename to asoc/codecs/wcd_cpe_core.h
diff --git a/sound/soc/codecs/wcd_cpe_services.c b/asoc/codecs/wcd_cpe_services.c
similarity index 99%
rename from sound/soc/codecs/wcd_cpe_services.c
rename to asoc/codecs/wcd_cpe_services.c
index ad8962b..7a0e703 100644
--- a/sound/soc/codecs/wcd_cpe_services.c
+++ b/asoc/codecs/wcd_cpe_services.c
@@ -17,10 +17,11 @@
 #include <linux/completion.h>
 #include <linux/kthread.h>
 #include <linux/delay.h>
-#include <linux/mfd/wcd9xxx/core.h>
-#include <sound/cpe_cmi.h>
 #include <sound/soc.h>
+#include <linux/mfd/wcd9xxx/wcd9330_registers.h>
 #include <linux/mfd/wcd9335/registers.h>
+#include "core.h"
+#include "cpe_cmi.h"
 #include "wcd_cpe_services.h"
 #include "wcd_cmi_api.h"
 
diff --git a/sound/soc/codecs/wcd_cpe_services.h b/asoc/codecs/wcd_cpe_services.h
similarity index 100%
rename from sound/soc/codecs/wcd_cpe_services.h
rename to asoc/codecs/wcd_cpe_services.h
diff --git a/sound/soc/codecs/wcdcal-hwdep.c b/asoc/codecs/wcdcal-hwdep.c
similarity index 100%
rename from sound/soc/codecs/wcdcal-hwdep.c
rename to asoc/codecs/wcdcal-hwdep.c
diff --git a/sound/soc/codecs/wcdcal-hwdep.h b/asoc/codecs/wcdcal-hwdep.h
similarity index 100%
rename from sound/soc/codecs/wcdcal-hwdep.h
rename to asoc/codecs/wcdcal-hwdep.h
diff --git a/sound/soc/codecs/wsa881x-analog.c b/asoc/codecs/wsa881x-analog.c
similarity index 100%
rename from sound/soc/codecs/wsa881x-analog.c
rename to asoc/codecs/wsa881x-analog.c
diff --git a/sound/soc/codecs/wsa881x-analog.h b/asoc/codecs/wsa881x-analog.h
similarity index 100%
rename from sound/soc/codecs/wsa881x-analog.h
rename to asoc/codecs/wsa881x-analog.h
diff --git a/sound/soc/codecs/wsa881x-irq.c b/asoc/codecs/wsa881x-irq.c
similarity index 100%
rename from sound/soc/codecs/wsa881x-irq.c
rename to asoc/codecs/wsa881x-irq.c
diff --git a/sound/soc/codecs/wsa881x-irq.h b/asoc/codecs/wsa881x-irq.h
similarity index 100%
rename from sound/soc/codecs/wsa881x-irq.h
rename to asoc/codecs/wsa881x-irq.h
diff --git a/sound/soc/codecs/wsa881x-registers-analog.h b/asoc/codecs/wsa881x-registers-analog.h
similarity index 100%
rename from sound/soc/codecs/wsa881x-registers-analog.h
rename to asoc/codecs/wsa881x-registers-analog.h
diff --git a/sound/soc/codecs/wsa881x-registers.h b/asoc/codecs/wsa881x-registers.h
similarity index 100%
rename from sound/soc/codecs/wsa881x-registers.h
rename to asoc/codecs/wsa881x-registers.h
diff --git a/sound/soc/codecs/wsa881x-regmap-analog.c b/asoc/codecs/wsa881x-regmap-analog.c
similarity index 100%
rename from sound/soc/codecs/wsa881x-regmap-analog.c
rename to asoc/codecs/wsa881x-regmap-analog.c
diff --git a/sound/soc/codecs/wsa881x-regmap.c b/asoc/codecs/wsa881x-regmap.c
similarity index 100%
rename from sound/soc/codecs/wsa881x-regmap.c
rename to asoc/codecs/wsa881x-regmap.c
diff --git a/sound/soc/codecs/wsa881x-tables-analog.c b/asoc/codecs/wsa881x-tables-analog.c
similarity index 100%
rename from sound/soc/codecs/wsa881x-tables-analog.c
rename to asoc/codecs/wsa881x-tables-analog.c
diff --git a/sound/soc/codecs/wsa881x-tables.c b/asoc/codecs/wsa881x-tables.c
similarity index 100%
rename from sound/soc/codecs/wsa881x-tables.c
rename to asoc/codecs/wsa881x-tables.c
diff --git a/sound/soc/codecs/wsa881x-temp-sensor.c b/asoc/codecs/wsa881x-temp-sensor.c
similarity index 100%
rename from sound/soc/codecs/wsa881x-temp-sensor.c
rename to asoc/codecs/wsa881x-temp-sensor.c
diff --git a/sound/soc/codecs/wsa881x-temp-sensor.h b/asoc/codecs/wsa881x-temp-sensor.h
similarity index 100%
rename from sound/soc/codecs/wsa881x-temp-sensor.h
rename to asoc/codecs/wsa881x-temp-sensor.h
diff --git a/sound/soc/codecs/wsa881x.c b/asoc/codecs/wsa881x.c
similarity index 99%
rename from sound/soc/codecs/wsa881x.c
rename to asoc/codecs/wsa881x.c
index 77aea10..456f68c 100644
--- a/sound/soc/codecs/wsa881x.c
+++ b/asoc/codecs/wsa881x.c
@@ -26,13 +26,13 @@
 #include <linux/of_gpio.h>
 #include <linux/regmap.h>
 #include <linux/debugfs.h>
-#include <linux/soundwire/soundwire.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
+#include <soc/soundwire.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/tlv.h>
+#include "msm-cdc-pinctrl.h"
 #include "wsa881x.h"
 #include "wsa881x-temp-sensor.h"
 
diff --git a/sound/soc/codecs/wsa881x.h b/asoc/codecs/wsa881x.h
similarity index 100%
rename from sound/soc/codecs/wsa881x.h
rename to asoc/codecs/wsa881x.h
diff --git a/sound/soc/msm/device_event.h b/asoc/device_event.h
similarity index 100%
rename from sound/soc/msm/device_event.h
rename to asoc/device_event.h
diff --git a/sound/soc/msm/qdsp6v2/msm-audio-effects-q6-v2.c b/asoc/msm-audio-effects-q6-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-audio-effects-q6-v2.c
rename to asoc/msm-audio-effects-q6-v2.c
index 9f08222..962d64e 100644
--- a/sound/soc/msm/qdsp6v2/msm-audio-effects-q6-v2.c
+++ b/asoc/msm-audio-effects-q6-v2.c
@@ -11,11 +11,11 @@
  */
 
 #include <linux/slab.h>
-#include <sound/apr_audio-v2.h>
-#include <sound/q6asm-v2.h>
 #include <sound/compress_params.h>
-#include <sound/msm-audio-effects-q6-v2.h>
 #include <sound/devdep_params.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6asm-v2.h>
+#include <dsp/msm-audio-effects-q6-v2.h>
 
 #define MAX_ENABLE_CMD_SIZE 32
 
diff --git a/sound/soc/msm/msm-audio-pinctrl.c b/asoc/msm-audio-pinctrl.c
similarity index 100%
rename from sound/soc/msm/msm-audio-pinctrl.c
rename to asoc/msm-audio-pinctrl.c
diff --git a/sound/soc/msm/msm-audio-pinctrl.h b/asoc/msm-audio-pinctrl.h
similarity index 100%
rename from sound/soc/msm/msm-audio-pinctrl.h
rename to asoc/msm-audio-pinctrl.h
diff --git a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c b/asoc/msm-compress-q6-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
rename to asoc/msm-compress-q6-v2.c
index c885265..89efb90 100644
--- a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
+++ b/asoc/msm-compress-q6-v2.c
@@ -26,23 +26,22 @@
 #include <sound/pcm.h>
 #include <sound/initval.h>
 #include <sound/control.h>
-#include <sound/q6asm-v2.h>
 #include <sound/pcm_params.h>
 #include <sound/audio_effects.h>
 #include <asm/dma.h>
 #include <linux/dma-mapping.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/msm_audio.h>
 
 #include <sound/timer.h>
 #include <sound/tlv.h>
-
-#include <sound/apr_audio-v2.h>
-#include <sound/q6asm-v2.h>
 #include <sound/compress_params.h>
 #include <sound/compress_offload.h>
 #include <sound/compress_driver.h>
-#include <sound/msm-audio-effects-q6-v2.h>
+
+#include <dsp/msm_audio_ion.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6asm-v2.h>
+#include <dsp/msm-audio-effects-q6-v2.h>
 #include "msm-pcm-routing-v2.h"
 #include "msm-qti-pp-config.h"
 
diff --git a/sound/soc/msm/msm-cpe-lsm.c b/asoc/msm-cpe-lsm.c
similarity index 99%
rename from sound/soc/msm/msm-cpe-lsm.c
rename to asoc/msm-cpe-lsm.c
index 7b65dda..87297ec 100644
--- a/sound/soc/msm/msm-cpe-lsm.c
+++ b/asoc/msm-cpe-lsm.c
@@ -23,10 +23,10 @@
 #include <linux/sched.h>
 #include <linux/freezer.h>
 #include <sound/soc.h>
-#include <sound/cpe_core.h>
 #include <sound/lsm_params.h>
 #include <sound/pcm_params.h>
-#include <sound/msm-slim-dma.h>
+#include "msm-slim-dma.h"
+#include "codecs/cpe_core.h"
 
 #define SAMPLE_RATE_48KHZ 48000
 #define SAMPLE_RATE_16KHZ 16000
diff --git a/sound/soc/msm/msm-dai-fe.c b/asoc/msm-dai-fe.c
similarity index 100%
rename from sound/soc/msm/msm-dai-fe.c
rename to asoc/msm-dai-fe.c
diff --git a/sound/soc/msm/qdsp6v2/msm-dai-q6-hdmi-v2.c b/asoc/msm-dai-q6-hdmi-v2.c
similarity index 98%
rename from sound/soc/msm/qdsp6v2/msm-dai-q6-hdmi-v2.c
rename to asoc/msm-dai-q6-hdmi-v2.c
index deb1798..9c8d20a 100644
--- a/sound/soc/msm/qdsp6v2/msm-dai-q6-hdmi-v2.c
+++ b/asoc/msm-dai-q6-hdmi-v2.c
@@ -20,10 +20,10 @@
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/soc.h>
-#include <sound/apr_audio-v2.h>
-#include <sound/q6afe-v2.h>
-#include <sound/msm-dai-q6-v2.h>
 #include <sound/pcm_params.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6afe-v2.h>
+#include "msm-dai-q6-v2.h"
 
 #define HDMI_RX_CA_MAX 0x32
 
diff --git a/sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c b/asoc/msm-dai-q6-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c
rename to asoc/msm-dai-q6-v2.c
index c8b01c6..583934d 100644
--- a/sound/soc/msm/qdsp6v2/msm-dai-q6-v2.c
+++ b/asoc/msm-dai-q6-v2.c
@@ -14,7 +14,6 @@
 #include <linux/module.h>
 #include <linux/device.h>
 #include <linux/platform_device.h>
-#include <linux/mfd/wcd9xxx/core.h>
 #include <linux/bitops.h>
 #include <linux/slab.h>
 #include <linux/clk.h>
@@ -22,10 +21,11 @@
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/soc.h>
-#include <sound/apr_audio-v2.h>
-#include <sound/q6afe-v2.h>
-#include <sound/msm-dai-q6-v2.h>
 #include <sound/pcm_params.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6afe-v2.h>
+#include "msm-dai-q6-v2.h"
+#include "codecs/core.h"
 
 #define MSM_DAI_PRI_AUXPCM_DT_DEV_ID 1
 #define MSM_DAI_SEC_AUXPCM_DT_DEV_ID 2
diff --git a/include/sound/msm-dai-q6-v2.h b/asoc/msm-dai-q6-v2.h
similarity index 100%
rename from include/sound/msm-dai-q6-v2.h
rename to asoc/msm-dai-q6-v2.h
diff --git a/sound/soc/msm/qdsp6v2/msm-dai-slim.c b/asoc/msm-dai-slim.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-dai-slim.c
rename to asoc/msm-dai-slim.c
index 8115fee..0e7c7b1 100644
--- a/sound/soc/msm/qdsp6v2/msm-dai-slim.c
+++ b/asoc/msm-dai-slim.c
@@ -19,7 +19,7 @@
 #include <sound/soc.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
-#include <sound/msm-slim-dma.h>
+#include "msm-slim-dma.h"
 
 #define SLIM_DEV_NAME "msm-dai-slim"
 
diff --git a/sound/soc/msm/qdsp6v2/msm-dai-stub-v2.c b/asoc/msm-dai-stub-v2.c
similarity index 100%
rename from sound/soc/msm/qdsp6v2/msm-dai-stub-v2.c
rename to asoc/msm-dai-stub-v2.c
diff --git a/sound/soc/msm/qdsp6v2/msm-dolby-common.h b/asoc/msm-dolby-common.h
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-dolby-common.h
rename to asoc/msm-dolby-common.h
index b43ff15..885d283 100644
--- a/sound/soc/msm/qdsp6v2/msm-dolby-common.h
+++ b/asoc/msm-dolby-common.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2013-2014, 2016 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.
diff --git a/sound/soc/msm/qdsp6v2/msm-dolby-dap-config.h b/asoc/msm-dolby-dap-config.h
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-dolby-dap-config.h
rename to asoc/msm-dolby-dap-config.h
index 6204cb1..b2b7139 100644
--- a/sound/soc/msm/qdsp6v2/msm-dolby-dap-config.h
+++ b/asoc/msm-dolby-dap-config.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2013-2014, 2017 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.
diff --git a/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.c b/asoc/msm-ds2-dap-config.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-ds2-dap-config.c
rename to asoc/msm-ds2-dap-config.c
index 5c9393f..7381e5d 100644
--- a/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.c
+++ b/asoc/msm-ds2-dap-config.c
@@ -15,11 +15,11 @@
 #include <linux/module.h>
 #include <linux/bitops.h>
 #include <sound/control.h>
-#include <sound/q6adm-v2.h>
+#include <dsp/q6adm-v2.h>
+#include <dsp/q6core.h>
 
 #include "msm-ds2-dap-config.h"
 #include "msm-pcm-routing-v2.h"
-#include <sound/q6core.h>
 
 
 #if defined(CONFIG_DOLBY_DS2) || defined(CONFIG_DOLBY_LICENSE)
diff --git a/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.h b/asoc/msm-ds2-dap-config.h
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-ds2-dap-config.h
rename to asoc/msm-ds2-dap-config.h
index 5804a64..c90bd8f 100644
--- a/sound/soc/msm/qdsp6v2/msm-ds2-dap-config.h
+++ b/asoc/msm-ds2-dap-config.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2013-2014, 2017 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.
diff --git a/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.c b/asoc/msm-dts-srs-tm-config.c
similarity index 98%
rename from sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.c
rename to asoc/msm-dts-srs-tm-config.c
index 437cd97..78174af 100644
--- a/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.c
+++ b/asoc/msm-dts-srs-tm-config.c
@@ -16,11 +16,11 @@
 #include <linux/bitops.h>
 #include <linux/mutex.h>
 #include <linux/atomic.h>
-#include <linux/msm_audio_ion.h>
-#include <sound/control.h>
-#include <sound/q6adm-v2.h>
 #include <sound/asound.h>
-#include "msm-dts-srs-tm-config.h"
+#include <sound/control.h>
+#include <asoc/msm-dts-srs-tm-config.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/q6adm-v2.h>
 #include "msm-pcm-routing-v2.h"
 
 static int srs_port_id[AFE_MAX_PORTS] = {-1};
diff --git a/sound/soc/msm/qdsp6v2/msm-lsm-client.c b/asoc/msm-lsm-client.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-lsm-client.c
rename to asoc/msm-lsm-client.c
index 3a6cbe6..e96d111 100644
--- a/sound/soc/msm/qdsp6v2/msm-lsm-client.c
+++ b/asoc/msm-lsm-client.c
@@ -19,7 +19,6 @@
 #include <linux/slab.h>
 #include <linux/dma-mapping.h>
 #include <linux/of.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/freezer.h>
 #include <sound/core.h>
 #include <sound/soc.h>
@@ -28,9 +27,10 @@
 #include <sound/timer.h>
 #include <sound/initval.h>
 #include <sound/control.h>
-#include <sound/q6lsm.h>
 #include <sound/lsm_params.h>
 #include <sound/pcm_params.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/q6lsm.h>
 #include "msm-pcm-routing-v2.h"
 
 #define CAPTURE_MIN_NUM_PERIODS     2
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c b/asoc/msm-pcm-afe-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
rename to asoc/msm-pcm-afe-v2.c
index ab9b310..102fad8 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
+++ b/asoc/msm-pcm-afe-v2.c
@@ -20,7 +20,6 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/dma-mapping.h>
-#include <linux/msm_audio_ion.h>
 
 #include <sound/core.h>
 #include <sound/soc.h>
@@ -28,8 +27,9 @@
 #include <sound/pcm.h>
 #include <sound/initval.h>
 #include <sound/control.h>
-#include <sound/q6adm-v2.h>
 #include <asm/dma.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/q6adm-v2.h>
 #include "msm-pcm-afe-v2.h"
 
 #define MIN_PLAYBACK_PERIOD_SIZE (128 * 2)
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.h b/asoc/msm-pcm-afe-v2.h
similarity index 95%
rename from sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.h
rename to asoc/msm-pcm-afe-v2.h
index 84a4c3c..926b626 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.h
+++ b/asoc/msm-pcm-afe-v2.h
@@ -11,8 +11,8 @@
  */
 #ifndef _MSM_PCM_AFE_H
 #define _MSM_PCM_AFE_H
-#include <sound/apr_audio-v2.h>
-#include <sound/q6afe-v2.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6afe-v2.h>
 
 
 struct pcm_afe_info {
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-dtmf-v2.c b/asoc/msm-pcm-dtmf-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-dtmf-v2.c
rename to asoc/msm-pcm-dtmf-v2.c
index f4e03fe..c387c7d 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-dtmf-v2.c
+++ b/asoc/msm-pcm-dtmf-v2.c
@@ -20,11 +20,11 @@
 #include <sound/core.h>
 #include <sound/soc.h>
 #include <sound/pcm.h>
-#include <sound/q6afe-v2.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6voice.h>
 
 #include "msm-pcm-q6-v2.h"
 #include "msm-pcm-routing-v2.h"
-#include "q6voice.h"
 
 enum {
 	DTMF_IN_RX,
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-host-voice-v2.c b/asoc/msm-pcm-host-voice-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-host-voice-v2.c
rename to asoc/msm-pcm-host-voice-v2.c
index 2f60db9..55b07bc 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-host-voice-v2.c
+++ b/asoc/msm-pcm-host-voice-v2.c
@@ -25,8 +25,8 @@
 #include <sound/initval.h>
 #include <sound/control.h>
 #include <asm/dma.h>
-#include <linux/msm_audio_ion.h>
-#include "q6voice.h"
+#include <dsp/msm_audio_ion.h>
+#include <dsp/q6voice.h>
 
 #define HPCM_MAX_Q_LEN 2
 #define HPCM_MIN_VOC_PKT_SIZE 320
diff --git a/sound/soc/msm/msm-pcm-hostless.c b/asoc/msm-pcm-hostless.c
similarity index 100%
rename from sound/soc/msm/msm-pcm-hostless.c
rename to asoc/msm-pcm-hostless.c
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c b/asoc/msm-pcm-loopback-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c
rename to asoc/msm-pcm-loopback-v2.c
index 7ef1ca8..a6ac8ca 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c
+++ b/asoc/msm-pcm-loopback-v2.c
@@ -16,16 +16,16 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/dma-mapping.h>
-#include <sound/apr_audio-v2.h>
 #include <sound/core.h>
 #include <sound/soc.h>
-#include <sound/q6asm-v2.h>
 #include <sound/pcm.h>
 #include <sound/initval.h>
 #include <sound/control.h>
 #include <sound/tlv.h>
 #include <asm/dma.h>
-#include <sound/q6audio-v2.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6audio-v2.h>
+#include <dsp/q6asm-v2.h>
 
 #include "msm-pcm-routing-v2.h"
 
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c b/asoc/msm-pcm-q6-noirq.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c
rename to asoc/msm-pcm-q6-noirq.c
index 75a2bff..3e03437 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c
+++ b/asoc/msm-pcm-q6-noirq.c
@@ -20,7 +20,6 @@
 #include <linux/slab.h>
 #include <linux/of_device.h>
 #include <linux/dma-mapping.h>
-#include <linux/msm_audio_ion.h>
 
 #include <sound/core.h>
 #include <sound/soc.h>
@@ -28,7 +27,6 @@
 #include <sound/pcm.h>
 #include <sound/initval.h>
 #include <sound/control.h>
-#include <sound/q6audio-v2.h>
 #include <sound/timer.h>
 #include <sound/hwdep.h>
 
@@ -36,6 +34,8 @@
 #include <sound/tlv.h>
 #include <sound/pcm_params.h>
 #include <sound/devdep_params.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/q6audio-v2.h>
 
 #include "msm-pcm-q6-v2.h"
 #include "msm-pcm-routing-v2.h"
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c b/asoc/msm-pcm-q6-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
rename to asoc/msm-pcm-q6-v2.c
index 74e99d3..4910dec 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
+++ b/asoc/msm-pcm-q6-v2.c
@@ -25,16 +25,16 @@
 #include <sound/pcm.h>
 #include <sound/initval.h>
 #include <sound/control.h>
-#include <sound/q6audio-v2.h>
 #include <sound/timer.h>
 #include <asm/dma.h>
 #include <linux/dma-mapping.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/msm_audio.h>
 
 #include <linux/of_device.h>
 #include <sound/tlv.h>
 #include <sound/pcm_params.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/q6audio-v2.h>
 
 #include "msm-pcm-q6-v2.h"
 #include "msm-pcm-routing-v2.h"
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.h b/asoc/msm-pcm-q6-v2.h
similarity index 97%
rename from sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.h
rename to asoc/msm-pcm-q6-v2.h
index 3b3f048..0177b2d 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.h
+++ b/asoc/msm-pcm-q6-v2.h
@@ -18,8 +18,8 @@
 
 #ifndef _MSM_PCM_H
 #define _MSM_PCM_H
-#include <sound/apr_audio-v2.h>
-#include <sound/q6asm-v2.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6asm-v2.h>
 
 
 
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-routing-devdep.c b/asoc/msm-pcm-routing-devdep.c
similarity index 100%
rename from sound/soc/msm/qdsp6v2/msm-pcm-routing-devdep.c
rename to asoc/msm-pcm-routing-devdep.c
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-routing-devdep.h b/asoc/msm-pcm-routing-devdep.h
similarity index 100%
rename from sound/soc/msm/qdsp6v2/msm-pcm-routing-devdep.h
rename to asoc/msm-pcm-routing-devdep.h
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c b/asoc/msm-pcm-routing-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c
rename to asoc/msm-pcm-routing-v2.c
index d67296f..de2201e 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c
+++ b/asoc/msm-pcm-routing-v2.c
@@ -25,25 +25,25 @@
 #include <sound/pcm.h>
 #include <sound/initval.h>
 #include <sound/control.h>
-#include <sound/q6adm-v2.h>
-#include <sound/q6asm-v2.h>
-#include <sound/q6afe-v2.h>
 #include <sound/tlv.h>
 #include <sound/asound.h>
 #include <sound/pcm_params.h>
-#include <sound/q6core.h>
-#include <sound/audio_cal_utils.h>
-#include <sound/audio_effects.h>
 #include <sound/hwdep.h>
+#include <sound/audio_effects.h>
+#include <asoc/msm-dts-srs-tm-config.h>
+#include <dsp/q6voice.h>
+#include <dsp/q6adm-v2.h>
+#include <dsp/q6asm-v2.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6lsm.h>
+#include <dsp/q6core.h>
+#include <dsp/audio_cal_utils.h>
 
 #include "msm-pcm-routing-v2.h"
 #include "msm-pcm-routing-devdep.h"
 #include "msm-qti-pp-config.h"
-#include "msm-dts-srs-tm-config.h"
 #include "msm-dolby-dap-config.h"
 #include "msm-ds2-dap-config.h"
-#include "q6voice.h"
-#include "sound/q6lsm.h"
 
 #ifndef CONFIG_DOLBY_DAP
 #undef DOLBY_ADM_COPP_TOPOLOGY_ID
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.h b/asoc/msm-pcm-routing-v2.h
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.h
rename to asoc/msm-pcm-routing-v2.h
index 19e7260..4e823d3 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.h
+++ b/asoc/msm-pcm-routing-v2.h
@@ -11,7 +11,7 @@
  */
 #ifndef _MSM_PCM_ROUTING_H
 #define _MSM_PCM_ROUTING_H
-#include <sound/apr_audio-v2.h>
+#include <dsp/apr_audio-v2.h>
 
 /*
  * These names are used by HAL to specify the BE. If any changes are
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-voice-v2.c b/asoc/msm-pcm-voice-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-voice-v2.c
rename to asoc/msm-pcm-voice-v2.c
index 654806e..9972132 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-voice-v2.c
+++ b/asoc/msm-pcm-voice-v2.c
@@ -26,9 +26,9 @@
 #include <sound/control.h>
 #include <asm/dma.h>
 #include <linux/of_device.h>
+#include <dsp/q6voice.h>
 
 #include "msm-pcm-voice-v2.h"
-#include "q6voice.h"
 
 static struct msm_voice voice_info[VOICE_SESSION_INDEX_MAX];
 
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-voice-v2.h b/asoc/msm-pcm-voice-v2.h
similarity index 96%
rename from sound/soc/msm/qdsp6v2/msm-pcm-voice-v2.h
rename to asoc/msm-pcm-voice-v2.h
index e00cebc..60f5adc 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-voice-v2.h
+++ b/asoc/msm-pcm-voice-v2.h
@@ -11,7 +11,7 @@
  */
 #ifndef _MSM_PCM_VOICE_H
 #define _MSM_PCM_VOICE_H
-#include <sound/apr_audio-v2.h>
+#include <dsp/apr_audio-v2.h>
 
 enum {
 	VOICE_SESSION_INDEX,
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-voip-v2.c b/asoc/msm-pcm-voip-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-pcm-voip-v2.c
rename to asoc/msm-pcm-voip-v2.c
index 02225f0..86dcaca 100644
--- a/sound/soc/msm/qdsp6v2/msm-pcm-voip-v2.c
+++ b/asoc/msm-pcm-voip-v2.c
@@ -26,10 +26,10 @@
 #include <sound/initval.h>
 #include <sound/control.h>
 #include <asm/dma.h>
+#include <dsp/q6voice.h>
 
 #include "msm-pcm-q6-v2.h"
 #include "msm-pcm-routing-v2.h"
-#include "q6voice.h"
 
 #define SHARED_MEM_BUF 2
 #define VOIP_MAX_Q_LEN 10
diff --git a/sound/soc/msm/qdsp6v2/msm-qti-pp-config.c b/asoc/msm-qti-pp-config.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-qti-pp-config.c
rename to asoc/msm-qti-pp-config.c
index a885e1e..2064056 100644
--- a/sound/soc/msm/qdsp6v2/msm-qti-pp-config.c
+++ b/asoc/msm-qti-pp-config.c
@@ -15,12 +15,12 @@
 #include <linux/bitops.h>
 #include <linux/mutex.h>
 #include <sound/control.h>
-#include <sound/q6adm-v2.h>
-#include <sound/q6asm-v2.h>
-#include <sound/q6afe-v2.h>
 #include <sound/asound.h>
-#include <sound/q6audio-v2.h>
 #include <sound/tlv.h>
+#include <dsp/q6adm-v2.h>
+#include <dsp/q6asm-v2.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6audio-v2.h>
 
 #include "msm-qti-pp-config.h"
 #include "msm-pcm-routing-v2.h"
diff --git a/sound/soc/msm/qdsp6v2/msm-qti-pp-config.h b/asoc/msm-qti-pp-config.h
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-qti-pp-config.h
rename to asoc/msm-qti-pp-config.h
index 01a06a4..14e9b10 100644
--- a/sound/soc/msm/qdsp6v2/msm-qti-pp-config.h
+++ b/asoc/msm-qti-pp-config.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2012-2017, 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.
diff --git a/include/sound/msm-slim-dma.h b/asoc/msm-slim-dma.h
similarity index 100%
rename from include/sound/msm-slim-dma.h
rename to asoc/msm-slim-dma.h
diff --git a/sound/soc/msm/qdsp6v2/msm-transcode-loopback-q6-v2.c b/asoc/msm-transcode-loopback-q6-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/msm-transcode-loopback-q6-v2.c
rename to asoc/msm-transcode-loopback-q6-v2.c
index b1bb272..eaef498 100644
--- a/sound/soc/msm/qdsp6v2/msm-transcode-loopback-q6-v2.c
+++ b/asoc/msm-transcode-loopback-q6-v2.c
@@ -19,22 +19,21 @@
 #include <linux/wait.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
-#include <linux/msm_audio_ion.h>
 #include <sound/core.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/pcm.h>
 #include <sound/initval.h>
 #include <sound/control.h>
-#include <sound/q6asm-v2.h>
 #include <sound/pcm_params.h>
 #include <sound/timer.h>
 #include <sound/tlv.h>
-#include <sound/apr_audio-v2.h>
 #include <sound/compress_params.h>
 #include <sound/compress_offload.h>
 #include <sound/compress_driver.h>
-#include <linux/msm_audio.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6asm-v2.h>
 
 #include "msm-pcm-routing-v2.h"
 #include "msm-qti-pp-config.h"
diff --git a/sound/soc/msm/msm8996.c b/asoc/msm8996.c
similarity index 100%
rename from sound/soc/msm/msm8996.c
rename to asoc/msm8996.c
diff --git a/sound/soc/msm/msm8998.c b/asoc/msm8998.c
similarity index 99%
rename from sound/soc/msm/msm8998.c
rename to asoc/msm8998.c
index 222c65a..6c5393d 100644
--- a/sound/soc/msm/msm8998.c
+++ b/asoc/msm8998.c
@@ -23,23 +23,23 @@
 #include <linux/switch.h>
 #include <linux/input.h>
 #include <linux/of_device.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
 #include <sound/core.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/pcm.h>
 #include <sound/jack.h>
-#include <sound/q6afe-v2.h>
-#include <sound/q6core.h>
 #include <sound/pcm_params.h>
 #include <sound/info.h>
 #include <device_event.h>
-#include <linux/qdsp6v2/audio_notifier.h>
-#include "qdsp6v2/msm-pcm-routing-v2.h"
-#include "../codecs/wcd9335.h"
-#include "../codecs/wcd934x/wcd934x.h"
-#include "../codecs/wcd934x/wcd934x-mbhc.h"
-#include "../codecs/wsa881x.h"
+#include <dsp/audio_notifier.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6core.h>
+#include "msm-pcm-routing-v2.h"
+#include "codecs/msm-cdc-pinctrl.h"
+#include "codecs/wcd9335.h"
+#include "codecs/wcd934x/wcd934x.h"
+#include "codecs/wcd934x/wcd934x-mbhc.h"
+#include "codecs/wsa881x.h"
 
 #define DRV_NAME "msm8998-asoc-snd"
 
diff --git a/sound/soc/msm/sdm660-common.c b/asoc/sdm660-common.c
similarity index 99%
rename from sound/soc/msm/sdm660-common.c
rename to asoc/sdm660-common.c
index b34b04b..16ecfaf 100644
--- a/sound/soc/msm/sdm660-common.c
+++ b/asoc/sdm660-common.c
@@ -15,15 +15,15 @@
 #include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/of_device.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
 #include <sound/pcm_params.h>
-#include <sound/q6afe-v2.h>
-#include "qdsp6v2/msm-pcm-routing-v2.h"
+#include <dsp/q6afe-v2.h>
+#include "msm-pcm-routing-v2.h"
 #include "sdm660-common.h"
 #include "sdm660-internal.h"
 #include "sdm660-external.h"
-#include "../codecs/sdm660_cdc/msm-analog-cdc.h"
-#include "../codecs/wsa881x.h"
+#include "codecs/msm-cdc-pinctrl.h"
+#include "codecs/sdm660_cdc/msm-analog-cdc.h"
+#include "codecs/wsa881x.h"
 
 #define DRV_NAME "sdm660-asoc-snd"
 
diff --git a/sound/soc/msm/sdm660-common.h b/asoc/sdm660-common.h
similarity index 97%
rename from sound/soc/msm/sdm660-common.h
rename to asoc/sdm660-common.h
index bca8cd7..682dcd5 100644
--- a/sound/soc/msm/sdm660-common.h
+++ b/asoc/sdm660-common.h
@@ -14,8 +14,8 @@
 #define __MSM_COMMON
 
 #include <sound/soc.h>
-#include <sound/q6afe-v2.h>
-#include "../codecs/wcd-mbhc-v2.h"
+#include <dsp/q6afe-v2.h>
+#include "codecs/wcd-mbhc-v2.h"
 
 #define SAMPLING_RATE_8KHZ      8000
 #define SAMPLING_RATE_11P025KHZ 11025
diff --git a/sound/soc/msm/sdm660-ext-dai-links.c b/asoc/sdm660-ext-dai-links.c
similarity index 99%
rename from sound/soc/msm/sdm660-ext-dai-links.c
rename to asoc/sdm660-ext-dai-links.c
index 77d3875..cde2870 100644
--- a/sound/soc/msm/sdm660-ext-dai-links.c
+++ b/asoc/sdm660-ext-dai-links.c
@@ -10,7 +10,6 @@
  * GNU General Public License for more details.
  */
 
-#include <linux/mfd/wcd9xxx/core.h>
 #include <linux/of.h>
 #include <sound/core.h>
 #include <sound/soc.h>
@@ -18,9 +17,10 @@
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include "qdsp6v2/msm-pcm-routing-v2.h"
-#include "../codecs/wcd9335.h"
 #include "sdm660-common.h"
 #include "sdm660-external.h"
+#include "codecs/core.h"
+#include "codecs/wcd9335.h"
 
 #define DEV_NAME_STR_LEN            32
 #define __CHIPSET__ "SDM660 "
diff --git a/sound/soc/msm/sdm660-external.c b/asoc/sdm660-external.c
similarity index 99%
rename from sound/soc/msm/sdm660-external.c
rename to asoc/sdm660-external.c
index 84d1c2e..9085282 100644
--- a/sound/soc/msm/sdm660-external.c
+++ b/asoc/sdm660-external.c
@@ -17,15 +17,15 @@
 #include <sound/soc.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
-#include <sound/q6core.h>
-#include <linux/qdsp6v2/audio_notifier.h>
-#include "qdsp6v2/msm-pcm-routing-v2.h"
+#include <dsp/q6core.h>
+#include <dsp/audio_notifier.h>
+#include "msm-pcm-routing-v2.h"
 #include "msm-audio-pinctrl.h"
 #include "sdm660-common.h"
 #include "sdm660-external.h"
-#include "../codecs/wcd9335.h"
-#include "../codecs/wcd934x/wcd934x.h"
-#include "../codecs/wcd934x/wcd934x-mbhc.h"
+#include "codecs/wcd9335.h"
+#include "codecs/wcd934x/wcd934x.h"
+#include "codecs/wcd934x/wcd934x-mbhc.h"
 
 #define SDM660_SPK_ON     1
 #define SDM660_SPK_OFF    0
diff --git a/sound/soc/msm/sdm660-external.h b/asoc/sdm660-external.h
similarity index 100%
rename from sound/soc/msm/sdm660-external.h
rename to asoc/sdm660-external.h
diff --git a/sound/soc/msm/sdm660-internal.c b/asoc/sdm660-internal.c
similarity index 99%
rename from sound/soc/msm/sdm660-internal.c
rename to asoc/sdm660-internal.c
index a57d6f6..0afe828 100644
--- a/sound/soc/msm/sdm660-internal.c
+++ b/asoc/sdm660-internal.c
@@ -13,13 +13,13 @@
 #include <linux/of_gpio.h>
 #include <linux/platform_device.h>
 #include <linux/module.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
 #include <sound/pcm_params.h>
-#include "qdsp6v2/msm-pcm-routing-v2.h"
+#include "msm-pcm-routing-v2.h"
 #include "sdm660-common.h"
-#include "../codecs/sdm660_cdc/msm-digital-cdc.h"
-#include "../codecs/sdm660_cdc/msm-analog-cdc.h"
-#include "../codecs/msm_sdw/msm_sdw.h"
+#include "codecs/msm-cdc-pinctrl.h"
+#include "codecs/sdm660_cdc/msm-digital-cdc.h"
+#include "codecs/sdm660_cdc/msm-analog-cdc.h"
+#include "codecs/msm_sdw/msm_sdw.h"
 
 #define __CHIPSET__ "SDM660 "
 #define MSM_DAILINK_NAME(name) (__CHIPSET__#name)
diff --git a/sound/soc/msm/sdm660-internal.h b/asoc/sdm660-internal.h
similarity index 100%
rename from sound/soc/msm/sdm660-internal.h
rename to asoc/sdm660-internal.h
diff --git a/sound/soc/msm/sdm845.c b/asoc/sdm845.c
similarity index 99%
rename from sound/soc/msm/sdm845.c
rename to asoc/sdm845.c
index 3be194c..9d6ff12 100644
--- a/sound/soc/msm/sdm845.c
+++ b/asoc/sdm845.c
@@ -21,22 +21,22 @@
 #include <linux/module.h>
 #include <linux/input.h>
 #include <linux/of_device.h>
-#include <linux/mfd/msm-cdc-pinctrl.h>
 #include <sound/core.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 #include <sound/pcm.h>
 #include <sound/jack.h>
-#include <sound/q6afe-v2.h>
-#include <sound/q6core.h>
 #include <sound/pcm_params.h>
 #include <sound/info.h>
 #include <device_event.h>
-#include <linux/qdsp6v2/audio_notifier.h>
-#include "qdsp6v2/msm-pcm-routing-v2.h"
-#include "../codecs/wcd934x/wcd934x.h"
-#include "../codecs/wcd934x/wcd934x-mbhc.h"
-#include "../codecs/wsa881x.h"
+#include <dsp/audio_notifier.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6core.h>
+#include "msm-pcm-routing-v2.h"
+#include "codecs/msm-cdc-pinctrl.h"
+#include "codecs/wcd934x/wcd934x.h"
+#include "codecs/wcd934x/wcd934x-mbhc.h"
+#include "codecs/wsa881x.h"
 
 #define DRV_NAME "sdm845-asoc-snd"
 
diff --git a/drivers/Makefile b/drivers/Makefile
deleted file mode 100644
index b48069c..0000000
--- a/drivers/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-
-obj-y		+= mfd/
-obj-y		+= misc/
-obj-y		+= soc/
-obj-y		+= soundwire/
-obj-y		+= base/
-obj-y		+= pinctrl/
diff --git a/drivers/base/Makefile b/drivers/base/Makefile
deleted file mode 100644
index 76e50f9..0000000
--- a/drivers/base/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-
-obj-y		+= regmap/
diff --git a/drivers/base/regmap/Makefile b/drivers/base/regmap/Makefile
deleted file mode 100644
index a23e35e..0000000
--- a/drivers/base/regmap/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-
-obj-$(CONFIG_REGMAP_SWR) += regmap-swr.o
diff --git a/drivers/base/regmap/internal.h b/drivers/base/regmap/internal.h
deleted file mode 120000
index e163b78..0000000
--- a/drivers/base/regmap/internal.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../drivers/base/regmap/internal.h
\ No newline at end of file
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
deleted file mode 100644
index 745691a..0000000
--- a/drivers/mfd/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-wcd-core-objs                  := wcd9xxx-rst.o wcd9xxx-core-init.o \
-				wcd9xxx-core.o wcd9xxx-irq.o \
-				wcd9xxx-slimslave.o wcd9xxx-utils.o \
-				wcd934x-regmap.o wcd934x-tables.o \
-				wcd9335-regmap.o wcd9335-tables.o \
-				msm-cdc-pinctrl.o msm-cdc-supply.o
-obj-$(CONFIG_WCD9XXX_CODEC_CORE) += wcd-core.o
-
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
deleted file mode 100644
index f00d59d..0000000
--- a/drivers/misc/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for misc devices that really don't fit anywhere else.
-#
-
-obj-y				+= qcom/
diff --git a/drivers/misc/qcom/Kconfig b/drivers/misc/qcom/Kconfig
deleted file mode 100644
index e8a7960..0000000
--- a/drivers/misc/qcom/Kconfig
+++ /dev/null
@@ -1,19 +0,0 @@
-config MSM_QDSP6V2_CODECS
-	bool "Audio QDSP6V2 APR support"
-	select SND_SOC_QDSP6V2
-	help
-	  Enable Audio codecs with APR IPC protocol support between
-	  application processor and QDSP6 for B-family. APR is
-	  used by audio driver to configure QDSP6's
-	  ASM, ADM and AFE.
-
-config MSM_ULTRASOUND
-	bool "QDSP6V2 HW Ultrasound support"
-	select SND_SOC_QDSP6V2
-	help
-	  Enable HW Ultrasound support in QDSP6V2.
-	  QDSP6V2 can support HW encoder & decoder and
-	  ultrasound processing. It will enable
-	  ultrasound data paths between
-	  HW and services, calculating input events
-	  upon the ultrasound data.
diff --git a/drivers/misc/qcom/Makefile b/drivers/misc/qcom/Makefile
deleted file mode 100644
index 120bddd..0000000
--- a/drivers/misc/qcom/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y		+= qdsp6v2/
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/Makefile b/drivers/misc/qcom/qdsp6v2/ultrasound/Makefile
deleted file mode 100644
index 41f614a..0000000
--- a/drivers/misc/qcom/qdsp6v2/ultrasound/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-ccflags-y := -I$(src)/..
-obj-$(CONFIG_MSM_ULTRASOUND) += usf.o usfcdev.o q6usm.o
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
deleted file mode 100644
index 0e0c511..0000000
--- a/drivers/pinctrl/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-
-obj-y		+= qcom/
diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h
deleted file mode 120000
index 2b68c81..0000000
--- a/drivers/pinctrl/core.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../../drivers/pinctrl/core.h
\ No newline at end of file
diff --git a/drivers/pinctrl/pinctrl-utils.h b/drivers/pinctrl/pinctrl-utils.h
deleted file mode 120000
index 3303afd..0000000
--- a/drivers/pinctrl/pinctrl-utils.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../../drivers/pinctrl/pinctrl-utils.h
\ No newline at end of file
diff --git a/drivers/pinctrl/qcom/Makefile b/drivers/pinctrl/qcom/Makefile
deleted file mode 100644
index cd1b749..0000000
--- a/drivers/pinctrl/qcom/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-
-obj-$(CONFIG_PINCTRL_WCD)	+= pinctrl-wcd.o
-obj-$(CONFIG_PINCTRL_LPI)	+= pinctrl-lpi.o
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
deleted file mode 100644
index ae8ffae..0000000
--- a/drivers/soc/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for the Linux Kernel SOC specific device drivers.
-#
-
-obj-y	+= qcom/
diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile
deleted file mode 100644
index 33e8a12..0000000
--- a/drivers/soc/qcom/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-y			+=	qdsp6v2/
diff --git a/drivers/soc/qcom/qdsp6v2/Makefile b/drivers/soc/qcom/qdsp6v2/Makefile
deleted file mode 100644
index 9fdd63a..0000000
--- a/drivers/soc/qcom/qdsp6v2/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-obj-$(CONFIG_MSM_QDSP6_APRV2_GLINK) += apr.o apr_v2.o apr_tal_glink.o
-obj-$(CONFIG_MSM_QDSP6_APRV3_GLINK) += apr.o apr_v3.o apr_tal_glink.o
-obj-$(CONFIG_SND_SOC_MSM_QDSP6V2_INTF) += msm_audio_ion.o
-obj-$(CONFIG_MSM_ADSP_LOADER) += adsp-loader.o
-obj-$(CONFIG_MSM_QDSP6_SSR) += audio_ssr.o
-obj-$(CONFIG_MSM_QDSP6_PDR) += audio_pdr.o
-obj-$(CONFIG_MSM_QDSP6_NOTIFIER) += audio_notifier.o
-obj-$(CONFIG_MSM_CDSP_LOADER) += cdsp-loader.o
diff --git a/drivers/soundwire/Kconfig b/drivers/soundwire/Kconfig
deleted file mode 100644
index e1ca532..0000000
--- a/drivers/soundwire/Kconfig
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# SOUNDWIRE driver configuration
-#
-menuconfig SOUNDWIRE
-	bool "Soundwire support"
-	help
-	  Soundwire is a two wire interface for audio to connect
-	  simple peripheral components in mobile devices.
-
-if SOUNDWIRE
-config SOUNDWIRE_WCD_CTRL
-	depends on WCD9XXX_CODEC_CORE
-	tristate "QTI WCD CODEC Soundwire controller"
-	default n
-	help
-	  Select driver for QTI's Soundwire Master Component.
-endif
diff --git a/drivers/soundwire/Makefile b/drivers/soundwire/Makefile
deleted file mode 100644
index 53acff1..0000000
--- a/drivers/soundwire/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Makefile for kernel soundwire framework.
-#
-obj-$(CONFIG_SOUNDWIRE)			+= soundwire.o
-obj-$(CONFIG_SOUNDWIRE_WCD_CTRL)	+= swr-wcd-ctrl.o
diff --git a/dsp/Makefile b/dsp/Makefile
new file mode 100644
index 0000000..a31aeb2
--- /dev/null
+++ b/dsp/Makefile
@@ -0,0 +1,10 @@
+obj-$(CONFIG_SND_SOC_MSM_QDSP6V2_INTF) += audio_calibration.o audio_cal_utils.o \
+						q6adm.o q6afe.o q6asm.o q6audio-v2.o q6voice.o q6core.o \
+						rtac.o q6lsm.o audio_slimslave.o adsp_err.o msm_audio_ion.o
+obj-$(CONFIG_MSM_ADSP_LOADER) += adsp-loader.o
+obj-$(CONFIG_MSM_QDSP6_SSR) += audio_ssr.o
+obj-$(CONFIG_MSM_QDSP6_PDR) += audio_pdr.o
+obj-$(CONFIG_MSM_QDSP6_NOTIFIER) += audio_notifier.o
+obj-$(CONFIG_MSM_CDSP_LOADER) += cdsp-loader.o
+obj-$(CONFIG_MSM_ULTRASOUND) += usf.o usfcdev.o q6usm.o
+obj-$(CONFIG_MSM_QDSP6V2_CODECS)  += codecs/
diff --git a/drivers/soc/qcom/qdsp6v2/adsp-loader.c b/dsp/adsp-loader.c
similarity index 99%
rename from drivers/soc/qcom/qdsp6v2/adsp-loader.c
rename to dsp/adsp-loader.c
index d90267e..07eeea4 100644
--- a/drivers/soc/qcom/qdsp6v2/adsp-loader.c
+++ b/dsp/adsp-loader.c
@@ -17,7 +17,7 @@
 #include <linux/err.h>
 #include <linux/delay.h>
 #include <linux/platform_device.h>
-#include <linux/qdsp6v2/apr.h>
+#include <ipc/apr.h>
 #include <linux/of_device.h>
 #include <linux/sysfs.h>
 #include <linux/workqueue.h>
diff --git a/sound/soc/msm/qdsp6v2/adsp_err.c b/dsp/adsp_err.c
similarity index 98%
rename from sound/soc/msm/qdsp6v2/adsp_err.c
rename to dsp/adsp_err.c
index d17bd6a..319efc3 100644
--- a/sound/soc/msm/qdsp6v2/adsp_err.c
+++ b/dsp/adsp_err.c
@@ -14,7 +14,7 @@
 #include <linux/errno.h>
 #include <linux/uaccess.h>
 #include <linux/debugfs.h>
-#include <sound/apr_audio-v2.h>
+#include <dsp/apr_audio-v2.h>
 
 
 /* ERROR STRING */
diff --git a/dsp/adsp_err.h b/dsp/adsp_err.h
new file mode 100644
index 0000000..43be91d
--- /dev/null
+++ b/dsp/adsp_err.h
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2015-2016, 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.
+ */
+
+#ifndef __ADSP_ERR__
+#define __ADSP_ERR__
+
+int adsp_err_get_lnx_err_code(u32 adsp_error);
+
+char *adsp_err_get_err_str(u32 adsp_error);
+
+#endif
diff --git a/sound/soc/msm/qdsp6v2/audio_cal_utils.c b/dsp/audio_cal_utils.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/audio_cal_utils.c
rename to dsp/audio_cal_utils.c
index 7e69a7f..9a9a96a 100644
--- a/sound/soc/msm/qdsp6v2/audio_cal_utils.c
+++ b/dsp/audio_cal_utils.c
@@ -16,7 +16,7 @@
 #include <linux/miscdevice.h>
 #include <linux/uaccess.h>
 #include <linux/mutex.h>
-#include <sound/audio_cal_utils.h>
+#include <dsp/audio_cal_utils.h>
 
 static int unmap_memory(struct cal_type_data *cal_type,
 			struct cal_block_data *cal_block);
diff --git a/sound/soc/msm/qdsp6v2/audio_calibration.c b/dsp/audio_calibration.c
similarity index 98%
rename from sound/soc/msm/qdsp6v2/audio_calibration.c
rename to dsp/audio_calibration.c
index d709b09..59fd464 100644
--- a/sound/soc/msm/qdsp6v2/audio_calibration.c
+++ b/dsp/audio_calibration.c
@@ -17,9 +17,9 @@
 #include <linux/uaccess.h>
 #include <linux/mutex.h>
 #include <linux/msm_ion.h>
-#include <linux/msm_audio_ion.h>
-#include <sound/audio_calibration.h>
-#include <sound/audio_cal_utils.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/audio_calibration.h>
+#include <dsp/audio_cal_utils.h>
 
 struct audio_cal_client_info {
 	struct list_head		list;
diff --git a/drivers/soc/qcom/qdsp6v2/audio_notifier.c b/dsp/audio_notifier.c
similarity index 98%
rename from drivers/soc/qcom/qdsp6v2/audio_notifier.c
rename to dsp/audio_notifier.c
index 2320fea..bcb5f9d 100644
--- a/drivers/soc/qcom/qdsp6v2/audio_notifier.c
+++ b/dsp/audio_notifier.c
@@ -12,12 +12,12 @@
 
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <linux/qdsp6v2/audio_pdr.h>
-#include <linux/qdsp6v2/audio_ssr.h>
-#include <linux/qdsp6v2/audio_notifier.h>
 #include <soc/qcom/scm.h>
 #include <soc/qcom/subsystem_notif.h>
 #include <soc/qcom/service-notifier.h>
+#include <dsp/audio_notifier.h>
+#include "audio_ssr.h"
+#include "audio_pdr.h"
 
 /* Audio states internal to notifier. Client */
 /* used states defined in audio_notifier.h */
diff --git a/drivers/soc/qcom/qdsp6v2/audio_pdr.c b/dsp/audio_pdr.c
similarity index 98%
rename from drivers/soc/qcom/qdsp6v2/audio_pdr.c
rename to dsp/audio_pdr.c
index 449d19a..0edcf02 100644
--- a/drivers/soc/qcom/qdsp6v2/audio_pdr.c
+++ b/dsp/audio_pdr.c
@@ -12,9 +12,9 @@
 
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <linux/qdsp6v2/audio_pdr.h>
 #include <soc/qcom/service-locator.h>
 #include <soc/qcom/service-notifier.h>
+#include "audio_pdr.h"
 
 static struct pd_qmi_client_data audio_pdr_services[AUDIO_PDR_DOMAIN_MAX] = {
 	{	/* AUDIO_PDR_DOMAIN_ADSP */
diff --git a/include/linux/qdsp6v2/audio_pdr.h b/dsp/audio_pdr.h
similarity index 100%
rename from include/linux/qdsp6v2/audio_pdr.h
rename to dsp/audio_pdr.h
diff --git a/sound/soc/msm/qdsp6v2/audio_slimslave.c b/dsp/audio_slimslave.c
similarity index 100%
rename from sound/soc/msm/qdsp6v2/audio_slimslave.c
rename to dsp/audio_slimslave.c
diff --git a/drivers/soc/qcom/qdsp6v2/audio_ssr.c b/dsp/audio_ssr.c
similarity index 97%
rename from drivers/soc/qcom/qdsp6v2/audio_ssr.c
rename to dsp/audio_ssr.c
index a66fb2a..d3880c9 100644
--- a/drivers/soc/qcom/qdsp6v2/audio_ssr.c
+++ b/dsp/audio_ssr.c
@@ -11,10 +11,10 @@
  */
 
 #include <linux/module.h>
-#include <linux/qdsp6v2/audio_ssr.h>
 #include <soc/qcom/scm.h>
 #include <soc/qcom/subsystem_restart.h>
 #include <soc/qcom/subsystem_notif.h>
+#include "audio_ssr.h"
 
 #define SCM_Q6_NMI_CMD 0x1
 
diff --git a/include/linux/qdsp6v2/audio_ssr.h b/dsp/audio_ssr.h
similarity index 100%
rename from include/linux/qdsp6v2/audio_ssr.h
rename to dsp/audio_ssr.h
diff --git a/drivers/soc/qcom/qdsp6v2/cdsp-loader.c b/dsp/cdsp-loader.c
similarity index 100%
rename from drivers/soc/qcom/qdsp6v2/cdsp-loader.c
rename to dsp/cdsp-loader.c
diff --git a/drivers/misc/qcom/qdsp6v2/Makefile b/dsp/codecs/Makefile
similarity index 92%
rename from drivers/misc/qcom/qdsp6v2/Makefile
rename to dsp/codecs/Makefile
index 90a123a..f905219 100644
--- a/drivers/misc/qcom/qdsp6v2/Makefile
+++ b/dsp/codecs/Makefile
@@ -3,4 +3,3 @@
 obj-$(CONFIG_MSM_QDSP6V2_CODECS) += q6audio_v2.o q6audio_v2_aio.o
 obj-$(CONFIG_MSM_QDSP6V2_CODECS) += audio_g711mlaw.o audio_g711alaw.o
 obj-$(CONFIG_MSM_QDSP6V2_CODECS)  += audio_mp3.o audio_amrnb.o audio_amrwb.o audio_amrwbplus.o audio_evrc.o audio_qcelp.o amrwb_in.o audio_hwacc_effects.o
-obj-$(CONFIG_MSM_ULTRASOUND) += ultrasound/
diff --git a/drivers/misc/qcom/qdsp6v2/aac_in.c b/dsp/codecs/aac_in.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/aac_in.c
rename to dsp/codecs/aac_in.c
diff --git a/drivers/misc/qcom/qdsp6v2/amrnb_in.c b/dsp/codecs/amrnb_in.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/amrnb_in.c
rename to dsp/codecs/amrnb_in.c
diff --git a/drivers/misc/qcom/qdsp6v2/amrwb_in.c b/dsp/codecs/amrwb_in.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/amrwb_in.c
rename to dsp/codecs/amrwb_in.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_aac.c b/dsp/codecs/audio_aac.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_aac.c
rename to dsp/codecs/audio_aac.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_alac.c b/dsp/codecs/audio_alac.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_alac.c
rename to dsp/codecs/audio_alac.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_amrnb.c b/dsp/codecs/audio_amrnb.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_amrnb.c
rename to dsp/codecs/audio_amrnb.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_amrwb.c b/dsp/codecs/audio_amrwb.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_amrwb.c
rename to dsp/codecs/audio_amrwb.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_amrwbplus.c b/dsp/codecs/audio_amrwbplus.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_amrwbplus.c
rename to dsp/codecs/audio_amrwbplus.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_ape.c b/dsp/codecs/audio_ape.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_ape.c
rename to dsp/codecs/audio_ape.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_evrc.c b/dsp/codecs/audio_evrc.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_evrc.c
rename to dsp/codecs/audio_evrc.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_g711alaw.c b/dsp/codecs/audio_g711alaw.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_g711alaw.c
rename to dsp/codecs/audio_g711alaw.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_g711mlaw.c b/dsp/codecs/audio_g711mlaw.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_g711mlaw.c
rename to dsp/codecs/audio_g711mlaw.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_hwacc_effects.c b/dsp/codecs/audio_hwacc_effects.c
similarity index 99%
rename from drivers/misc/qcom/qdsp6v2/audio_hwacc_effects.c
rename to dsp/codecs/audio_hwacc_effects.c
index b8972e3..9444aa7 100644
--- a/drivers/misc/qcom/qdsp6v2/audio_hwacc_effects.c
+++ b/dsp/codecs/audio_hwacc_effects.c
@@ -14,8 +14,8 @@
 #include <linux/msm_audio.h>
 #include <linux/compat.h>
 #include "q6audio_common.h"
+#include <dsp/msm-audio-effects-q6-v2.h>
 #include "audio_utils_aio.h"
-#include <sound/msm-audio-effects-q6-v2.h>
 
 #define MAX_CHANNELS_SUPPORTED		8
 #define WAIT_TIMEDOUT_DURATION_SECS	1
diff --git a/drivers/misc/qcom/qdsp6v2/audio_mp3.c b/dsp/codecs/audio_mp3.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_mp3.c
rename to dsp/codecs/audio_mp3.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_multi_aac.c b/dsp/codecs/audio_multi_aac.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_multi_aac.c
rename to dsp/codecs/audio_multi_aac.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_qcelp.c b/dsp/codecs/audio_qcelp.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_qcelp.c
rename to dsp/codecs/audio_qcelp.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils.c b/dsp/codecs/audio_utils.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_utils.c
rename to dsp/codecs/audio_utils.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils.h b/dsp/codecs/audio_utils.h
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_utils.h
rename to dsp/codecs/audio_utils.h
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c b/dsp/codecs/audio_utils_aio.c
similarity index 99%
rename from drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
rename to dsp/codecs/audio_utils_aio.c
index 80f6e57..52dced4 100644
--- a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
+++ b/dsp/codecs/audio_utils_aio.c
@@ -24,8 +24,8 @@
 #include <linux/atomic.h>
 #include <asm/ioctls.h>
 #include <linux/debugfs.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/compat.h>
+#include <dsp/msm_audio_ion.h>
 #include "audio_utils_aio.h"
 #ifdef CONFIG_USE_DEV_CTRL_VOLUME
 #include <linux/qdsp6v2/audio_dev_ctl.h>
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.h b/dsp/codecs/audio_utils_aio.h
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_utils_aio.h
rename to dsp/codecs/audio_utils_aio.h
diff --git a/drivers/misc/qcom/qdsp6v2/audio_wma.c b/dsp/codecs/audio_wma.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_wma.c
rename to dsp/codecs/audio_wma.c
diff --git a/drivers/misc/qcom/qdsp6v2/audio_wmapro.c b/dsp/codecs/audio_wmapro.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/audio_wmapro.c
rename to dsp/codecs/audio_wmapro.c
diff --git a/drivers/misc/qcom/qdsp6v2/evrc_in.c b/dsp/codecs/evrc_in.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/evrc_in.c
rename to dsp/codecs/evrc_in.c
diff --git a/drivers/misc/qcom/qdsp6v2/g711alaw_in.c b/dsp/codecs/g711alaw_in.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/g711alaw_in.c
rename to dsp/codecs/g711alaw_in.c
diff --git a/drivers/misc/qcom/qdsp6v2/g711mlaw_in.c b/dsp/codecs/g711mlaw_in.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/g711mlaw_in.c
rename to dsp/codecs/g711mlaw_in.c
diff --git a/drivers/misc/qcom/qdsp6v2/q6audio_common.h b/dsp/codecs/q6audio_common.h
similarity index 93%
rename from drivers/misc/qcom/qdsp6v2/q6audio_common.h
rename to dsp/codecs/q6audio_common.h
index 49b88b7..75f20e5 100644
--- a/drivers/misc/qcom/qdsp6v2/q6audio_common.h
+++ b/dsp/codecs/q6audio_common.h
@@ -16,8 +16,8 @@
 #ifndef __Q6_AUDIO_COMMON_H__
 #define __Q6_AUDIO_COMMON_H__
 
-#include <sound/apr_audio-v2.h>
-#include <sound/q6asm-v2.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6asm-v2.h>
 
 
 void q6_audio_cb(uint32_t opcode, uint32_t token,
diff --git a/drivers/misc/qcom/qdsp6v2/q6audio_v2.c b/dsp/codecs/q6audio_v2.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/q6audio_v2.c
rename to dsp/codecs/q6audio_v2.c
diff --git a/drivers/misc/qcom/qdsp6v2/q6audio_v2_aio.c b/dsp/codecs/q6audio_v2_aio.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/q6audio_v2_aio.c
rename to dsp/codecs/q6audio_v2_aio.c
diff --git a/drivers/misc/qcom/qdsp6v2/qcelp_in.c b/dsp/codecs/qcelp_in.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/qcelp_in.c
rename to dsp/codecs/qcelp_in.c
diff --git a/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c b/dsp/msm_audio_ion.c
similarity index 99%
rename from drivers/soc/qcom/qdsp6v2/msm_audio_ion.c
rename to dsp/msm_audio_ion.c
index 2f14c74..24df1aa 100644
--- a/drivers/soc/qcom/qdsp6v2/msm_audio_ion.c
+++ b/dsp/msm_audio_ion.c
@@ -23,11 +23,11 @@
 #include <linux/dma-buf.h>
 #include <linux/iommu.h>
 #include <linux/platform_device.h>
-#include <linux/qdsp6v2/apr.h>
+#include <ipc/apr.h>
 #include <linux/of_device.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/export.h>
 #include <asm/dma-iommu.h>
+#include <dsp/msm_audio_ion.h>
 
 #define MSM_AUDIO_ION_PROBED (1 << 0)
 
diff --git a/sound/soc/msm/qdsp6v2/q6adm.c b/dsp/q6adm.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6adm.c
rename to dsp/q6adm.c
index 1590605..1915113 100644
--- a/sound/soc/msm/qdsp6v2/q6adm.c
+++ b/dsp/q6adm.c
@@ -17,15 +17,15 @@
 #include <linux/uaccess.h>
 #include <linux/atomic.h>
 #include <linux/wait.h>
-#include <linux/qdsp6v2/apr.h>
-#include <sound/apr_audio-v2.h>
-#include <sound/q6adm-v2.h>
-#include <sound/q6audio-v2.h>
-#include <sound/q6afe-v2.h>
-#include <sound/audio_cal_utils.h>
 #include <sound/asound.h>
-#include "msm-dts-srs-tm-config.h"
-#include <sound/adsp_err.h>
+#include <asoc/msm-dts-srs-tm-config.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6adm-v2.h>
+#include <dsp/q6audio-v2.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/audio_cal_utils.h>
+#include <ipc/apr.h>
+#include "adsp_err.h"
 
 #define TIMEOUT_MS 1000
 
diff --git a/sound/soc/msm/qdsp6v2/q6afe.c b/dsp/q6afe.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6afe.c
rename to dsp/q6afe.c
index e1ce947..78be555 100644
--- a/sound/soc/msm/qdsp6v2/q6afe.c
+++ b/dsp/q6afe.c
@@ -18,15 +18,14 @@
 #include <linux/wakelock.h>
 #include <linux/jiffies.h>
 #include <linux/sched.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/delay.h>
-#include <sound/apr_audio-v2.h>
-#include <sound/q6afe-v2.h>
-#include <sound/q6audio-v2.h>
-#include "msm-pcm-routing-v2.h"
-#include <sound/audio_cal_utils.h>
-#include <sound/adsp_err.h>
-#include <linux/qdsp6v2/apr_tal.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/audio_cal_utils.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6audio-v2.h>
+#include <ipc/apr_tal.h>
+#include "adsp_err.h"
 
 #define WAKELOCK_TIMEOUT	5000
 enum {
diff --git a/sound/soc/msm/qdsp6v2/q6asm.c b/dsp/q6asm.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6asm.c
rename to dsp/q6asm.c
index e7e1618..28b3f73 100644
--- a/sound/soc/msm/qdsp6v2/q6asm.c
+++ b/dsp/q6asm.c
@@ -22,25 +22,25 @@
 #include <linux/miscdevice.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-#include <linux/msm_audio.h>
 
 #include <linux/debugfs.h>
 #include <linux/time.h>
 #include <linux/atomic.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/mm.h>
 
 #include <asm/ioctls.h>
 
 #include <linux/memory.h>
 
-#include <sound/apr_audio-v2.h>
-#include <sound/q6asm-v2.h>
-#include <sound/q6audio-v2.h>
-#include <sound/audio_cal_utils.h>
-#include <sound/adsp_err.h>
 #include <sound/compress_params.h>
 
+#include <dsp/msm_audio_ion.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/audio_cal_utils.h>
+#include <dsp/q6asm-v2.h>
+#include <dsp/q6audio-v2.h>
+#include "adsp_err.h"
+
 #define TRUE        0x01
 #define FALSE       0x00
 #define SESSION_MAX 8
diff --git a/sound/soc/msm/qdsp6v2/q6audio-v2.c b/dsp/q6audio-v2.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6audio-v2.c
rename to dsp/q6audio-v2.c
index ea78e6a..6e31c36 100644
--- a/sound/soc/msm/qdsp6v2/q6audio-v2.c
+++ b/dsp/q6audio-v2.c
@@ -16,8 +16,8 @@
 #include <linux/jiffies.h>
 #include <linux/uaccess.h>
 #include <linux/atomic.h>
-#include <sound/q6afe-v2.h>
-#include <sound/q6audio-v2.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6audio-v2.h>
 
 int q6audio_get_port_index(u16 port_id)
 {
diff --git a/sound/soc/msm/qdsp6v2/q6core.c b/dsp/q6core.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6core.c
rename to dsp/q6core.c
index 3aaaa35..dd97a49 100644
--- a/sound/soc/msm/qdsp6v2/q6core.c
+++ b/dsp/q6core.c
@@ -18,9 +18,9 @@
 #include <linux/mutex.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
-#include <linux/qdsp6v2/apr.h>
-#include <sound/q6core.h>
-#include <sound/audio_cal_utils.h>
+#include <dsp/q6core.h>
+#include <dsp/audio_cal_utils.h>
+#include <ipc/apr.h>
 
 #define TIMEOUT_MS 1000
 /*
diff --git a/sound/soc/msm/qdsp6v2/q6lsm.c b/dsp/q6lsm.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6lsm.c
rename to dsp/q6lsm.c
index 799d1be..adc541a 100644
--- a/sound/soc/msm/qdsp6v2/q6lsm.c
+++ b/dsp/q6lsm.c
@@ -23,16 +23,16 @@
 #include <linux/debugfs.h>
 #include <linux/time.h>
 #include <linux/atomic.h>
-#include <sound/apr_audio-v2.h>
 #include <sound/lsm_params.h>
-#include <sound/q6core.h>
-#include <sound/q6lsm.h>
 #include <asm/ioctls.h>
 #include <linux/memory.h>
-#include <linux/msm_audio_ion.h>
-#include <sound/q6afe-v2.h>
-#include <sound/audio_cal_utils.h>
-#include <sound/adsp_err.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6core.h>
+#include <dsp/q6lsm.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/audio_cal_utils.h>
+#include "adsp_err.h"
 
 #define APR_TIMEOUT	(5 * HZ)
 #define LSM_ALIGN_BOUNDARY 512
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c b/dsp/q6usm.c
similarity index 99%
rename from drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
rename to dsp/q6usm.c
index f20f335..5b822ae 100644
--- a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
+++ b/dsp/q6usm.c
@@ -12,13 +12,12 @@
  */
 #include <linux/mutex.h>
 #include <linux/wait.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
 #include <linux/slab.h>
-#include <linux/msm_audio.h>
-#include <sound/apr_audio-v2.h>
-#include <linux/qdsp6v2/apr_us.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/apr_audio-v2.h>
+#include <ipc/apr_us.h>
 #include "q6usm.h"
 
 #define ADSP_MEMORY_MAP_SHMEM8_4K_POOL 3
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.h b/dsp/q6usm.h
similarity index 98%
rename from drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.h
rename to dsp/q6usm.h
index d45d165..2e9d7c9 100644
--- a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.h
+++ b/dsp/q6usm.h
@@ -13,7 +13,7 @@
 #ifndef __Q6_USM_H__
 #define __Q6_USM_H__
 
-#include <linux/qdsp6v2/apr_us.h>
+#include <ipc/apr_us.h>
 
 #define Q6USM_EVENT_UNDEF                0
 #define Q6USM_EVENT_READ_DONE            1
diff --git a/sound/soc/msm/qdsp6v2/q6voice.c b/dsp/q6voice.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6voice.c
rename to dsp/q6voice.c
index 15c9e13..cfcc822 100644
--- a/sound/soc/msm/qdsp6v2/q6voice.c
+++ b/dsp/q6voice.c
@@ -16,17 +16,17 @@
 #include <linux/uaccess.h>
 #include <linux/wait.h>
 #include <linux/mutex.h>
-#include <linux/msm_audio_ion.h>
 
 #include <soc/qcom/socinfo.h>
-#include <linux/qdsp6v2/apr_tal.h>
 
-#include "sound/q6audio-v2.h"
-#include "sound/apr_audio-v2.h"
-#include "sound/q6afe-v2.h"
-#include <sound/audio_cal_utils.h>
-#include "q6voice.h"
-#include <sound/adsp_err.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/q6audio-v2.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/audio_cal_utils.h>
+#include <ipc/apr_tal.h>
+#include <dsp/q6voice.h>
+#include "adsp_err.h"
 
 #define TIMEOUT_MS 300
 
diff --git a/sound/soc/msm/qdsp6v2/rtac.c b/dsp/rtac.c
similarity index 99%
rename from sound/soc/msm/qdsp6v2/rtac.c
rename to dsp/rtac.c
index cd02501..456ac57 100644
--- a/sound/soc/msm/qdsp6v2/rtac.c
+++ b/dsp/rtac.c
@@ -20,16 +20,15 @@
 #include <linux/sched.h>
 #include <linux/msm_audio_calibration.h>
 #include <linux/atomic.h>
-#include <linux/msm_audio_ion.h>
-#include <linux/qdsp6v2/rtac.h>
 #include <linux/compat.h>
-#include <sound/q6asm-v2.h>
-#include <sound/q6afe-v2.h>
-#include <sound/q6adm-v2.h>
-#include <sound/apr_audio-v2.h>
-#include "q6voice.h"
-#include "msm-pcm-routing-v2.h"
-#include <sound/adsp_err.h>
+#include <dsp/msm_audio_ion.h>
+#include <dsp/rtac.h>
+#include <dsp/q6asm-v2.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6adm-v2.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/q6voice.h>
+#include "adsp_err.h"
 
 
 /* Max size of payload (buf size - apr header) */
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/usf.c b/dsp/usf.c
similarity index 99%
rename from drivers/misc/qcom/qdsp6v2/ultrasound/usf.c
rename to dsp/usf.c
index 3da46b6..dfa2097 100644
--- a/drivers/misc/qcom/qdsp6v2/ultrasound/usf.c
+++ b/dsp/usf.c
@@ -24,9 +24,9 @@
 #include <linux/kmemleak.h>
 #include <linux/wakelock.h>
 #include <linux/mutex.h>
-#include <sound/apr_audio.h>
-#include <linux/qdsp6v2/usf.h>
+#include <dsp/apr_audio-v2.h>
 #include "q6usm.h"
+#include "usf.h"
 #include "usfcdev.h"
 
 /* The driver version*/
diff --git a/include/linux/qdsp6v2/usf.h b/dsp/usf.h
similarity index 100%
rename from include/linux/qdsp6v2/usf.h
rename to dsp/usf.h
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/usfcdev.c b/dsp/usfcdev.c
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/ultrasound/usfcdev.c
rename to dsp/usfcdev.c
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/usfcdev.h b/dsp/usfcdev.h
similarity index 100%
rename from drivers/misc/qcom/qdsp6v2/ultrasound/usfcdev.h
rename to dsp/usfcdev.h
diff --git a/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.h b/include/asoc/msm-dts-srs-tm-config.h
similarity index 97%
rename from sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.h
rename to include/asoc/msm-dts-srs-tm-config.h
index e3c75b3..c00461b 100644
--- a/sound/soc/msm/qdsp6v2/msm-dts-srs-tm-config.h
+++ b/include/asoc/msm-dts-srs-tm-config.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2012-2014, 2017 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.
@@ -15,6 +14,7 @@
 #define _MSM_DTS_SRS_TM_CONFIG_H_
 
 #include <sound/soc.h>
+#include <dsp/apr_audio-v2.h>
 
 struct param_outband;
 
diff --git a/include/linux/mfd/wcd934x/registers.h b/include/asoc/wcd934x_registers.h
similarity index 100%
rename from include/linux/mfd/wcd934x/registers.h
rename to include/asoc/wcd934x_registers.h
diff --git a/include/sound/apr_audio-v2.h b/include/dsp/apr_audio-v2.h
similarity index 99%
rename from include/sound/apr_audio-v2.h
rename to include/dsp/apr_audio-v2.h
index 14f6445..7fb2256 100644
--- a/include/sound/apr_audio-v2.h
+++ b/include/dsp/apr_audio-v2.h
@@ -14,7 +14,7 @@
 #ifndef _APR_AUDIO_V2_H_
 #define _APR_AUDIO_V2_H_
 
-#include <linux/qdsp6v2/apr.h>
+#include <ipc/apr.h>
 #include <linux/msm_audio.h>
 
 /* size of header needed for passing data out of band */
diff --git a/include/sound/audio_cal_utils.h b/include/dsp/audio_cal_utils.h
similarity index 97%
rename from include/sound/audio_cal_utils.h
rename to include/dsp/audio_cal_utils.h
index b28b3bd..e12d8c1 100644
--- a/include/sound/audio_cal_utils.h
+++ b/include/dsp/audio_cal_utils.h
@@ -14,9 +14,9 @@
 #define _AUDIO_CAL_UTILS_H
 
 #include <linux/msm_ion.h>
-#include <linux/msm_audio_ion.h>
 #include <linux/msm_audio_calibration.h>
-#include "audio_calibration.h"
+#include <dsp/msm_audio_ion.h>
+#include <dsp/audio_calibration.h>
 
 struct cal_data {
 	size_t		size;
diff --git a/include/sound/audio_calibration.h b/include/dsp/audio_calibration.h
similarity index 100%
rename from include/sound/audio_calibration.h
rename to include/dsp/audio_calibration.h
diff --git a/include/linux/qdsp6v2/audio_notifier.h b/include/dsp/audio_notifier.h
similarity index 100%
rename from include/linux/qdsp6v2/audio_notifier.h
rename to include/dsp/audio_notifier.h
diff --git a/include/sound/msm-audio-effects-q6-v2.h b/include/dsp/msm-audio-effects-q6-v2.h
similarity index 100%
rename from include/sound/msm-audio-effects-q6-v2.h
rename to include/dsp/msm-audio-effects-q6-v2.h
diff --git a/include/dsp/msm_audio_ion.h b/include/dsp/msm_audio_ion.h
new file mode 100644
index 0000000..8a2fb6e
--- /dev/null
+++ b/include/dsp/msm_audio_ion.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2013-2015, 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.
+ */
+
+#ifndef _LINUX_MSM_AUDIO_ION_H
+#define _LINUX_MSM_AUDIO_ION_H
+#include <dsp/q6asm-v2.h>
+#include <sound/pcm.h>
+#include <linux/msm_ion.h>
+
+
+int msm_audio_ion_alloc(const char *name, struct ion_client **client,
+			struct ion_handle **handle, size_t bufsz,
+			ion_phys_addr_t *paddr, size_t *pa_len, void **vaddr);
+
+int msm_audio_ion_import(const char *name, struct ion_client **client,
+			struct ion_handle **handle, int fd,
+			unsigned long *ionflag, size_t bufsz,
+			ion_phys_addr_t *paddr, size_t *pa_len, void **vaddr);
+int msm_audio_ion_free(struct ion_client *client, struct ion_handle *handle);
+int msm_audio_ion_mmap(struct audio_buffer *substream,
+		       struct vm_area_struct *vma);
+
+bool msm_audio_ion_is_smmu_available(void);
+int msm_audio_ion_cache_operations(struct audio_buffer *abuff, int cache_op);
+
+struct ion_client *msm_audio_ion_client_create(const char *name);
+void msm_audio_ion_client_destroy(struct ion_client *client);
+int msm_audio_ion_import_legacy(const char *name, struct ion_client *client,
+			struct ion_handle **handle, int fd,
+			unsigned long *ionflag, size_t bufsz,
+			ion_phys_addr_t *paddr, size_t *pa_len, void **vaddr);
+int msm_audio_ion_free_legacy(struct ion_client *client,
+			struct ion_handle *handle);
+u32 msm_audio_populate_upper_32_bits(ion_phys_addr_t pa);
+#endif /* _LINUX_MSM_AUDIO_ION_H */
diff --git a/include/sound/q6adm-v2.h b/include/dsp/q6adm-v2.h
similarity index 98%
rename from include/sound/q6adm-v2.h
rename to include/dsp/q6adm-v2.h
index e689e93..013d522 100644
--- a/include/sound/q6adm-v2.h
+++ b/include/dsp/q6adm-v2.h
@@ -18,9 +18,9 @@
 #define ADM_PATH_NONLIVE_REC 0x3
 #define ADM_PATH_COMPRESSED_RX 0x5
 #define ADM_PATH_COMPRESSED_TX 0x6
-#include <linux/qdsp6v2/rtac.h>
-#include <sound/q6afe-v2.h>
-#include <sound/q6audio-v2.h>
+#include <dsp/rtac.h>
+#include <dsp/q6afe-v2.h>
+#include <dsp/q6audio-v2.h>
 
 #define MAX_MODULES_IN_TOPO 16
 #define ADM_GET_TOPO_MODULE_LIST_LENGTH\
diff --git a/include/sound/q6afe-v2.h b/include/dsp/q6afe-v2.h
similarity index 99%
rename from include/sound/q6afe-v2.h
rename to include/dsp/q6afe-v2.h
index 8361175..7df993e 100644
--- a/include/sound/q6afe-v2.h
+++ b/include/dsp/q6afe-v2.h
@@ -11,8 +11,8 @@
  */
 #ifndef __Q6AFE_V2_H__
 #define __Q6AFE_V2_H__
-#include <sound/apr_audio-v2.h>
-#include <linux/qdsp6v2/rtac.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/rtac.h>
 
 #define IN			0x000
 #define OUT			0x001
diff --git a/include/sound/q6asm-v2.h b/include/dsp/q6asm-v2.h
similarity index 99%
rename from include/sound/q6asm-v2.h
rename to include/dsp/q6asm-v2.h
index 00b46a5..157c243 100644
--- a/include/sound/q6asm-v2.h
+++ b/include/dsp/q6asm-v2.h
@@ -12,9 +12,9 @@
 #ifndef __Q6_ASM_V2_H__
 #define __Q6_ASM_V2_H__
 
-#include <linux/qdsp6v2/apr.h>
-#include <linux/qdsp6v2/rtac.h>
-#include <sound/apr_audio-v2.h>
+#include <ipc/apr.h>
+#include <dsp/rtac.h>
+#include <dsp/apr_audio-v2.h>
 #include <linux/list.h>
 #include <linux/msm_ion.h>
 
diff --git a/include/sound/q6audio-v2.h b/include/dsp/q6audio-v2.h
similarity index 96%
rename from include/sound/q6audio-v2.h
rename to include/dsp/q6audio-v2.h
index fd14f33..5df88fc 100644
--- a/include/sound/q6audio-v2.h
+++ b/include/dsp/q6audio-v2.h
@@ -13,7 +13,7 @@
 #ifndef _Q6_AUDIO_H_
 #define _Q6_AUDIO_H_
 
-#include <linux/qdsp6v2/apr.h>
+#include <ipc/apr.h>
 
 enum {
 	LEGACY_PCM_MODE = 0,
diff --git a/include/sound/q6core.h b/include/dsp/q6core.h
similarity index 99%
rename from include/sound/q6core.h
rename to include/dsp/q6core.h
index 0b8309a..c0327ae 100644
--- a/include/sound/q6core.h
+++ b/include/dsp/q6core.h
@@ -12,7 +12,7 @@
 
 #ifndef __Q6CORE_H__
 #define __Q6CORE_H__
-#include <linux/qdsp6v2/apr.h>
+#include <ipc/apr.h>
 
 
 
diff --git a/include/sound/q6lsm.h b/include/dsp/q6lsm.h
similarity index 98%
rename from include/sound/q6lsm.h
rename to include/dsp/q6lsm.h
index 26106a8..efce3a6 100644
--- a/include/sound/q6lsm.h
+++ b/include/dsp/q6lsm.h
@@ -15,9 +15,9 @@
 
 #include <linux/list.h>
 #include <linux/msm_ion.h>
-#include <sound/apr_audio-v2.h>
+#include <dsp/apr_audio-v2.h>
 #include <sound/lsm_params.h>
-#include <linux/qdsp6v2/apr.h>
+#include <ipc/apr.h>
 
 #define MAX_NUM_CONFIDENCE 20
 
diff --git a/sound/soc/msm/qdsp6v2/q6voice.h b/include/dsp/q6voice.h
similarity index 99%
rename from sound/soc/msm/qdsp6v2/q6voice.h
rename to include/dsp/q6voice.h
index 74d80be..56326b1 100644
--- a/sound/soc/msm/qdsp6v2/q6voice.h
+++ b/include/dsp/q6voice.h
@@ -12,10 +12,10 @@
 #ifndef __QDSP6VOICE_H__
 #define __QDSP6VOICE_H__
 
-#include <linux/qdsp6v2/apr.h>
-#include <linux/qdsp6v2/rtac.h>
 #include <linux/msm_ion.h>
 #include <sound/voice_params.h>
+#include <dsp/rtac.h>
+#include <ipc/apr.h>
 
 #define MAX_VOC_PKT_SIZE 642
 #define SESSION_NAME_LEN 20
diff --git a/include/linux/qdsp6v2/rtac.h b/include/dsp/rtac.h
similarity index 98%
rename from include/linux/qdsp6v2/rtac.h
rename to include/dsp/rtac.h
index b6f4e56..f8c5556 100644
--- a/include/linux/qdsp6v2/rtac.h
+++ b/include/dsp/rtac.h
@@ -9,12 +9,13 @@
  * 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.
+ *
  */
 
 #ifndef __RTAC_H__
 #define __RTAC_H__
 
-#include <sound/apr_audio-v2.h>
+#include <dsp/apr_audio-v2.h>
 
 /* Voice Modes */
 #define RTAC_CVP		0
diff --git a/include/linux/qdsp6v2/apr.h b/include/ipc/apr.h
similarity index 100%
rename from include/linux/qdsp6v2/apr.h
rename to include/ipc/apr.h
diff --git a/include/linux/qdsp6v2/apr_tal.h b/include/ipc/apr_tal.h
similarity index 100%
rename from include/linux/qdsp6v2/apr_tal.h
rename to include/ipc/apr_tal.h
diff --git a/include/linux/qdsp6v2/apr_us.h b/include/ipc/apr_us.h
similarity index 98%
rename from include/linux/qdsp6v2/apr_us.h
rename to include/ipc/apr_us.h
index 9a6804a..6e2f63d 100644
--- a/include/linux/qdsp6v2/apr_us.h
+++ b/include/ipc/apr_us.h
@@ -13,7 +13,7 @@
 #ifndef __APR_US_H__
 #define __APR_US_H__
 
-#include <linux/qdsp6v2/apr.h>
+#include <ipc/apr.h>
 
 /* ======================================================================= */
 /*  Session Level commands */
diff --git a/include/linux/avtimer_kernel.h b/include/linux/avtimer_kernel.h
deleted file mode 100644
index e5a1255..0000000
--- a/include/linux/avtimer_kernel.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2015, 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.
- *
- */
-
-#ifndef _AVTIMER_H
-#define _AVTIMER_H
-
-#include <uapi/linux/avtimer.h>
-
-int avcs_core_open(void);
-int avcs_core_disable_power_collapse(int disable);/* true or flase */
-int avcs_core_query_timer(uint64_t *avtimer_tick);
-
-#endif
diff --git a/include/linux/qdsp6v2/dsp_debug.h b/include/linux/qdsp6v2/dsp_debug.h
deleted file mode 100644
index bc1cd9e..0000000
--- a/include/linux/qdsp6v2/dsp_debug.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (c) 2010, 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.
- *
- */
-#ifndef __DSP_DEBUG_H_
-#define __DSP_DEBUG_H_
-
-typedef int (*dsp_state_cb)(int state);
-int dsp_debug_register(dsp_state_cb ptr);
-
-#define DSP_STATE_CRASHED         0x0
-#define DSP_STATE_CRASH_DUMP_DONE 0x1
-
-#endif
diff --git a/include/soc/internal.h b/include/soc/internal.h
new file mode 120000
index 0000000..2bc0655
--- /dev/null
+++ b/include/soc/internal.h
@@ -0,0 +1 @@
+../../../../drivers/base/regmap/internal.h
\ No newline at end of file
diff --git a/include/linux/soundwire/soundwire.h b/include/soc/soundwire.h
similarity index 100%
rename from include/linux/soundwire/soundwire.h
rename to include/soc/soundwire.h
diff --git a/include/linux/soundwire/swr-wcd.h b/include/soc/swr-wcd.h
similarity index 100%
rename from include/linux/soundwire/swr-wcd.h
rename to include/soc/swr-wcd.h
diff --git a/include/sound/apr_audio.h b/include/sound/apr_audio.h
deleted file mode 100644
index eb35645..0000000
--- a/include/sound/apr_audio.h
+++ /dev/null
@@ -1,1931 +0,0 @@
-/*
- *
- * Copyright (c) 2010-2013, 2017 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.
- *
- */
-
-#ifndef _APR_AUDIO_H_
-#define _APR_AUDIO_H_
-
-/* ASM opcodes without APR payloads*/
-#include <linux/qdsp6v2/apr.h>
-
-/*
- * Audio Front End (AFE)
- */
-
-/* Port ID. Update afe_get_port_index when a new port is added here. */
-#define PRIMARY_I2S_RX 0		/* index = 0 */
-#define PRIMARY_I2S_TX 1		/* index = 1 */
-#define PCM_RX 2			/* index = 2 */
-#define PCM_TX 3			/* index = 3 */
-#define SECONDARY_I2S_RX 4		/* index = 4 */
-#define SECONDARY_I2S_TX 5		/* index = 5 */
-#define MI2S_RX 6			/* index = 6 */
-#define MI2S_TX 7			/* index = 7 */
-#define HDMI_RX 8			/* index = 8 */
-#define RSVD_2 9			/* index = 9 */
-#define RSVD_3 10			/* index = 10 */
-#define DIGI_MIC_TX 11			/* index = 11 */
-#define VOICE_RECORD_RX 0x8003		/* index = 12 */
-#define VOICE_RECORD_TX 0x8004		/* index = 13 */
-#define VOICE_PLAYBACK_TX 0x8005	/* index = 14 */
-
-/* Slimbus Multi channel port id pool  */
-#define SLIMBUS_0_RX		0x4000		/* index = 15 */
-#define SLIMBUS_0_TX		0x4001		/* index = 16 */
-#define SLIMBUS_1_RX		0x4002		/* index = 17 */
-#define SLIMBUS_1_TX		0x4003		/* index = 18 */
-#define SLIMBUS_2_RX		0x4004
-#define SLIMBUS_2_TX		0x4005
-#define SLIMBUS_3_RX		0x4006
-#define SLIMBUS_3_TX		0x4007
-#define SLIMBUS_4_RX		0x4008
-#define SLIMBUS_4_TX		0x4009		/* index = 24 */
-
-#define INT_BT_SCO_RX 0x3000		/* index = 25 */
-#define INT_BT_SCO_TX 0x3001		/* index = 26 */
-#define INT_BT_A2DP_RX 0x3002		/* index = 27 */
-#define INT_FM_RX 0x3004		/* index = 28 */
-#define INT_FM_TX 0x3005		/* index = 29 */
-#define RT_PROXY_PORT_001_RX	0x2000    /* index = 30 */
-#define RT_PROXY_PORT_001_TX	0x2001    /* index = 31 */
-#define SECONDARY_PCM_RX 12			/* index = 32 */
-#define SECONDARY_PCM_TX 13			/* index = 33 */
-#define PSEUDOPORT_01           0x8001    /* index =34 */
-
-#define AFE_PORT_INVALID 0xFFFF
-#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
-
-#define AFE_PORT_CMD_START 0x000100ca
-
-#define AFE_EVENT_RTPORT_START 0
-#define AFE_EVENT_RTPORT_STOP 1
-#define AFE_EVENT_RTPORT_LOW_WM 2
-#define AFE_EVENT_RTPORT_HI_WM 3
-
-struct afe_port_start_command {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 gain;		/* Q13 */
-	u32 sample_rate;	/* 8 , 16, 48khz */
-} __packed;
-
-#define AFE_PORT_CMD_STOP 0x000100cb
-struct afe_port_stop_command {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 reserved;
-} __packed;
-
-#define AFE_PORT_CMD_APPLY_GAIN 0x000100cc
-struct afe_port_gain_command {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16	gain;/* Q13 */
-} __packed;
-
-#define AFE_PORT_CMD_SIDETONE_CTL 0x000100cd
-struct afe_port_sidetone_command {
-	struct apr_hdr hdr;
-	u16 rx_port_id;		/* Primary i2s tx = 1 */
-				/* PCM tx = 3 */
-				/* Secondary i2s tx = 5 */
-				/* Mi2s tx = 7 */
-				/* Digital mic tx = 11 */
-	u16 tx_port_id;		/* Primary i2s rx = 0 */
-				/* PCM rx = 2 */
-				/* Secondary i2s rx = 4 */
-				/* Mi2S rx = 6 */
-				/* HDMI rx = 8 */
-	u16 gain;		/* Q13 */
-	u16 enable;		/* 1 = enable, 0 = disable */
-} __packed;
-
-#define AFE_PORT_CMD_LOOPBACK 0x000100ce
-struct afe_loopback_command {
-	struct apr_hdr hdr;
-	u16 tx_port_id;		/* Primary i2s rx = 0 */
-				/* PCM rx = 2 */
-				/* Secondary i2s rx = 4 */
-				/* Mi2S rx = 6 */
-				/* HDMI rx = 8 */
-	u16 rx_port_id;		/* Primary i2s tx = 1 */
-				/* PCM tx = 3 */
-				/* Secondary i2s tx = 5 */
-				/* Mi2s tx = 7 */
-				/* Digital mic tx = 11 */
-	u16 mode;		/* Default -1, DSP will conver
-				 * the tx to rx format
-				 */
-	u16 enable;		/* 1 = enable, 0 = disable */
-} __packed;
-
-#define AFE_PSEUDOPORT_CMD_START 0x000100cf
-struct afe_pseudoport_start_command {
-	struct apr_hdr hdr;
-	u16 port_id;		/* Pseudo Port 1 = 0x8000 */
-				/* Pseudo Port 2 = 0x8001 */
-				/* Pseudo Port 3 = 0x8002 */
-	u16 timing;		/* FTRT = 0 , AVTimer = 1, */
-} __packed;
-
-#define AFE_PSEUDOPORT_CMD_STOP 0x000100d0
-struct afe_pseudoport_stop_command {
-	struct apr_hdr hdr;
-	u16 port_id;		/* Pseudo Port 1 = 0x8000 */
-				/* Pseudo Port 2 = 0x8001 */
-				/* Pseudo Port 3 = 0x8002 */
-	u16 reserved;
-} __packed;
-
-#define AFE_CMD_GET_ACTIVE_PORTS 0x000100d1
-
-
-#define AFE_CMD_GET_ACTIVE_HANDLES_FOR_PORT 0x000100d2
-struct afe_get_active_handles_command {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 reserved;
-} __packed;
-
-/*
- * Opcode for AFE to start DTMF.
- */
-#define AFE_PORTS_CMD_DTMF_CTL	0x00010102
-
-/** DTMF payload.*/
-struct afe_dtmf_generation_command {
-	struct apr_hdr hdr;
-
-	/*
-	 * Duration of the DTMF tone in ms.
-	 * -1      -> continuous,
-	 *  0      -> disable
-	 */
-	int64_t                   duration_in_ms;
-
-	/*
-	 * The DTMF high tone frequency.
-	 */
-	uint16_t                  high_freq;
-
-	/*
-	 * The DTMF low tone frequency.
-	 */
-	uint16_t                  low_freq;
-
-	/*
-	 * The DTMF volume setting
-	 */
-	uint16_t                  gain;
-
-	/*
-	 * The number of ports to enable/disable on.
-	 */
-	uint16_t                  num_ports;
-
-	/*
-	 * The Destination ports - array  .
-	 * For DTMF on multiple ports, portIds needs to
-	 * be populated numPorts times.
-	 */
-	uint16_t                  port_ids;
-
-	/*
-	 * variable for 32 bit alignment of APR packet.
-	 */
-	uint16_t                  reserved;
-} __packed;
-
-#define AFE_PCM_CFG_MODE_PCM			0x0
-#define AFE_PCM_CFG_MODE_AUX			0x1
-#define AFE_PCM_CFG_SYNC_EXT			0x0
-#define AFE_PCM_CFG_SYNC_INT			0x1
-#define AFE_PCM_CFG_FRM_8BPF			0x0
-#define AFE_PCM_CFG_FRM_16BPF			0x1
-#define AFE_PCM_CFG_FRM_32BPF			0x2
-#define AFE_PCM_CFG_FRM_64BPF			0x3
-#define AFE_PCM_CFG_FRM_128BPF			0x4
-#define AFE_PCM_CFG_FRM_256BPF			0x5
-#define AFE_PCM_CFG_QUANT_ALAW_NOPAD		0x0
-#define AFE_PCM_CFG_QUANT_MULAW_NOPAD		0x1
-#define AFE_PCM_CFG_QUANT_LINEAR_NOPAD		0x2
-#define AFE_PCM_CFG_QUANT_ALAW_PAD		0x3
-#define AFE_PCM_CFG_QUANT_MULAW_PAD		0x4
-#define AFE_PCM_CFG_QUANT_LINEAR_PAD		0x5
-#define AFE_PCM_CFG_CDATAOE_MASTER		0x0
-#define AFE_PCM_CFG_CDATAOE_SHARE		0x1
-
-struct afe_port_pcm_cfg {
-	u16	mode;	/* PCM (short sync) = 0, AUXPCM (long sync) = 1 */
-	u16	sync;	/* external = 0 , internal = 1 */
-	u16	frame;	/* 8 bpf = 0 */
-			/* 16 bpf = 1 */
-			/* 32 bpf = 2 */
-			/* 64 bpf = 3 */
-			/* 128 bpf = 4 */
-			/* 256 bpf = 5 */
-	u16     quant;
-	u16	slot;	/* Slot for PCM stream , 0 - 31 */
-	u16	data;	/* 0, PCM block is the only master */
-			/* 1, PCM block is shares to driver data out signal */
-			/*    other master                                  */
-	u16	reserved;
-} __packed;
-
-enum {
-	AFE_I2S_SD0 = 1,
-	AFE_I2S_SD1,
-	AFE_I2S_SD2,
-	AFE_I2S_SD3,
-	AFE_I2S_QUAD01,
-	AFE_I2S_QUAD23,
-	AFE_I2S_6CHS,
-	AFE_I2S_8CHS,
-};
-
-#define AFE_MI2S_MONO 0
-#define AFE_MI2S_STEREO 3
-#define AFE_MI2S_4CHANNELS 4
-#define AFE_MI2S_6CHANNELS 6
-#define AFE_MI2S_8CHANNELS 8
-
-struct afe_port_mi2s_cfg {
-	u16	bitwidth;	/* 16,24,32 */
-	u16	line;		/* Called ChannelMode in documentation */
-				/* i2s_sd0 = 1 */
-				/* i2s_sd1 = 2 */
-				/* i2s_sd2 = 3 */
-				/* i2s_sd3 = 4 */
-				/* i2s_quad01 = 5 */
-				/* i2s_quad23 = 6 */
-				/* i2s_6chs = 7 */
-				/* i2s_8chs = 8 */
-	u16	channel;	/* Called MonoStereo in documentation */
-				/* i2s mono = 0 */
-				/* i2s mono right = 1 */
-				/* i2s mono left = 2 */
-				/* i2s stereo = 3 */
-	u16	ws;		/* 0, word select signal from external source */
-				/* 1, word select signal from internal source */
-	u16	format;	/* don't touch this field if it is not for */
-				/* AFE_PORT_CMD_I2S_CONFIG opcode */
-} __packed;
-
-struct afe_port_hdmi_cfg {
-	u16	bitwidth;	/* 16,24,32 */
-	u16	channel_mode;	/* HDMI Stereo = 0 */
-				/* HDMI_3Point1 (4-ch) = 1 */
-				/* HDMI_5Point1 (6-ch) = 2 */
-				/* HDMI_6Point1 (8-ch) = 3 */
-	u16	data_type;	/* HDMI_Linear = 0 */
-				/* HDMI_non_Linear = 1 */
-} __packed;
-
-
-struct afe_port_hdmi_multi_ch_cfg {
-	u16	data_type;		/* HDMI_Linear = 0 */
-					/* HDMI_non_Linear = 1 */
-	u16	channel_allocation;	/* The default is 0 (Stereo) */
-	u16	reserved;		/* must be set to 0 */
-} __packed;
-
-
-/* Slimbus Device Ids */
-#define AFE_SLIMBUS_DEVICE_1		0x0
-#define AFE_SLIMBUS_DEVICE_2		0x1
-#define AFE_PORT_MAX_AUDIO_CHAN_CNT	16
-
-struct afe_port_slimbus_cfg {
-	u16	slimbus_dev_id;		/* SLIMBUS Device id.*/
-
-	u16	slave_dev_pgd_la;	/* Slave ported generic device
-					 * logical address.
-					 */
-	u16	slave_dev_intfdev_la;	/* Slave interface device logical
-					 * address.
-					 */
-	u16	bit_width;		/* bit width of the samples, 16, 24.*/
-
-	u16	data_format;		/* data format.*/
-
-	u16	num_channels;		/* Number of channels.*/
-
-	/* Slave port mapping for respective channels.*/
-	u16	slave_port_mapping[AFE_PORT_MAX_AUDIO_CHAN_CNT];
-
-	u16	reserved;
-} __packed;
-
-struct afe_port_slimbus_sch_cfg {
-	u16	slimbus_dev_id;		/* SLIMBUS Device id.*/
-	u16	bit_width;		/* bit width of the samples, 16, 24.*/
-	u16	data_format;		/* data format.*/
-	u16	num_channels;		/* Number of channels.*/
-	u16	reserved;
-	/* Slave channel  mapping for respective channels.*/
-	u8	slave_ch_mapping[8];
-} __packed;
-
-struct afe_port_rtproxy_cfg {
-	u16	bitwidth;	/* 16,24,32 */
-	u16	interleaved;    /* interleaved = 1 */
-				/* Noninterleaved = 0 */
-	u16	frame_sz;	/* 5ms buffers = 160bytes */
-	u16	jitter;		/* 10ms of jitter = 320 */
-	u16	lw_mark;	/* Low watermark in bytes for triggering event*/
-	u16	hw_mark;	/* High watermark bytes for triggering event*/
-	u16	rsvd;
-	int	num_ch;		/* 1 to 8 */
-} __packed;
-
-struct afe_port_pseudo_cfg {
-	u16 bit_width;
-	u16 num_channels;
-	u16 data_format;
-	u16 timing_mode;
-	u16 reserved;
-} __packed;
-
-#define AFE_PORT_AUDIO_IF_CONFIG 0x000100d3
-#define AFE_PORT_AUDIO_SLIM_SCH_CONFIG 0x000100e4
-#define AFE_PORT_MULTI_CHAN_HDMI_AUDIO_IF_CONFIG	0x000100D9
-#define AFE_PORT_CMD_I2S_CONFIG	0x000100E7
-
-union afe_port_config {
-	struct afe_port_pcm_cfg           pcm;
-	struct afe_port_mi2s_cfg          mi2s;
-	struct afe_port_hdmi_cfg          hdmi;
-	struct afe_port_hdmi_multi_ch_cfg hdmi_multi_ch;
-	struct afe_port_slimbus_cfg	  slimbus;
-	struct afe_port_slimbus_sch_cfg	  slim_sch;
-	struct afe_port_rtproxy_cfg       rtproxy;
-	struct afe_port_pseudo_cfg        pseudo;
-} __packed;
-
-struct afe_audioif_config_command {
-	struct apr_hdr hdr;
-	u16 port_id;
-	union afe_port_config port;
-} __packed;
-
-#define AFE_TEST_CODEC_LOOPBACK_CTL 0x000100d5
-struct afe_codec_loopback_command {
-	u16	port_inf;	/* Primary i2s = 0 */
-				/* PCM = 2 */
-				/* Secondary i2s = 4 */
-				/* Mi2s = 6 */
-	u16	enable;		/* 0, disable. 1, enable */
-} __packed;
-
-
-#define AFE_PARAM_ID_SIDETONE_GAIN	0x00010300
-struct afe_param_sidetone_gain {
-	u16 gain;
-	u16 reserved;
-} __packed;
-
-#define AFE_PARAM_ID_SAMPLING_RATE	0x00010301
-struct afe_param_sampling_rate {
-	u32 sampling_rate;
-} __packed;
-
-
-#define AFE_PARAM_ID_CHANNELS		0x00010302
-struct afe_param_channels {
-	u16 channels;
-	u16 reserved;
-} __packed;
-
-
-#define AFE_PARAM_ID_LOOPBACK_GAIN	0x00010303
-struct afe_param_loopback_gain {
-	u16 gain;
-	u16 reserved;
-} __packed;
-
-/* Parameter ID used to configure and enable/disable the loopback path. The
- * difference with respect to the existing API, AFE_PORT_CMD_LOOPBACK, is that
- * it allows Rx port to be configured as source port in loopback path. Port-id
- * in AFE_PORT_CMD_SET_PARAM cmd is the source port which can be Tx or Rx port.
- * In addition, we can configure the type of routing mode to handle different
- * use cases.
- */
-enum {
-	/* Regular loopback from source to destination port */
-	LB_MODE_DEFAULT = 1,
-	/* Sidetone feed from Tx source to Rx destination port */
-	LB_MODE_SIDETONE,
-	/* Echo canceller reference, voice + audio + DTMF */
-	LB_MODE_EC_REF_VOICE_AUDIO,
-	/* Echo canceller reference, voice alone */
-	LB_MODE_EC_REF_VOICE
-};
-
-#define AFE_PARAM_ID_LOOPBACK_CONFIG 0x0001020B
-#define AFE_API_VERSION_LOOPBACK_CONFIG 0x1
-struct afe_param_loopback_cfg {
-	/* Minor version used for tracking the version of the configuration
-	 * interface.
-	 */
-	uint32_t loopback_cfg_minor_version;
-
-	/* Destination Port Id. */
-	uint16_t dst_port_id;
-
-	/* Specifies data path type from src to dest port. Supported values:
-	 * LB_MODE_DEFAULT
-	 * LB_MODE_SIDETONE
-	 * LB_MODE_EC_REF_VOICE_AUDIO
-	 * LB_MODE_EC_REF_VOICE
-	 */
-	uint16_t routing_mode;
-
-	/* Specifies whether to enable (1) or disable (0) an AFE loopback. */
-	uint16_t enable;
-
-	/* Reserved for 32-bit alignment. This field must be set to 0. */
-	uint16_t reserved;
-} __packed;
-
-#define AFE_MODULE_ID_PORT_INFO		0x00010200
-/* Module ID for the loopback-related parameters. */
-#define AFE_MODULE_LOOPBACK           0x00010205
-struct afe_param_payload_base {
-	u32 module_id;
-	u32 param_id;
-	u16 param_size;
-	u16 reserved;
-} __packed;
-
-struct afe_param_payload {
-	struct afe_param_payload_base base;
-	union {
-		struct afe_param_sidetone_gain sidetone_gain;
-		struct afe_param_sampling_rate sampling_rate;
-		struct afe_param_channels      channels;
-		struct afe_param_loopback_gain loopback_gain;
-		struct afe_param_loopback_cfg loopback_cfg;
-	} __packed param;
-} __packed;
-
-#define AFE_PORT_CMD_SET_PARAM		0x000100dc
-
-struct afe_port_cmd_set_param {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 payload_size;
-	u32 payload_address;
-	struct afe_param_payload payload;
-} __packed;
-
-struct afe_port_cmd_set_param_no_payload {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 payload_size;
-	u32 payload_address;
-} __packed;
-
-#define AFE_EVENT_GET_ACTIVE_PORTS 0x00010100
-struct afe_get_active_ports_rsp {
-	u16	num_ports;
-	u16	port_id;
-} __packed;
-
-
-#define AFE_EVENT_GET_ACTIVE_HANDLES 0x00010102
-struct afe_get_active_handles_rsp {
-	u16	port_id;
-	u16	num_handles;
-	u16	mode;		/* 0, voice rx */
-				/* 1, voice tx */
-				/* 2, audio rx */
-				/* 3, audio tx */
-	u16	handle;
-} __packed;
-
-#define AFE_SERVICE_CMD_MEMORY_MAP 0x000100DE
-struct afe_cmd_memory_map {
-	struct apr_hdr hdr;
-	u32 phy_addr;
-	u32 mem_sz;
-	u16 mem_id;
-	u16 rsvd;
-} __packed;
-
-#define AFE_SERVICE_CMD_MEMORY_UNMAP 0x000100DF
-struct afe_cmd_memory_unmap {
-	struct apr_hdr hdr;
-	u32 phy_addr;
-} __packed;
-
-#define AFE_SERVICE_CMD_REG_RTPORT 0x000100E0
-struct afe_cmd_reg_rtport {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 rsvd;
-} __packed;
-
-#define AFE_SERVICE_CMD_UNREG_RTPORT 0x000100E1
-struct afe_cmd_unreg_rtport {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 rsvd;
-} __packed;
-
-#define AFE_SERVICE_CMD_RTPORT_WR 0x000100E2
-struct afe_cmd_rtport_wr {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 rsvd;
-	u32 buf_addr;
-	u32 bytes_avail;
-} __packed;
-
-#define AFE_SERVICE_CMD_RTPORT_RD 0x000100E3
-struct afe_cmd_rtport_rd {
-	struct apr_hdr hdr;
-	u16 port_id;
-	u16 rsvd;
-	u32 buf_addr;
-	u32 bytes_avail;
-} __packed;
-
-#define AFE_EVENT_RT_PROXY_PORT_STATUS 0x00010105
-
-#define ADM_MAX_COPPS 5
-
-#define ADM_SERVICE_CMD_GET_COPP_HANDLES                 0x00010300
-struct adm_get_copp_handles_command {
-	struct apr_hdr hdr;
-} __packed;
-
-#define ADM_CMD_MATRIX_MAP_ROUTINGS                      0x00010301
-struct adm_routings_session {
-	u16 id;
-	u16 num_copps;
-	u16 copp_id[ADM_MAX_COPPS+1]; /*Padding if numCopps is odd */
-} __packed;
-
-struct adm_routings_command {
-	struct apr_hdr hdr;
-	u32 path; /* 0 = Rx, 1 Tx */
-	u32 num_sessions;
-	struct adm_routings_session session[8];
-} __packed;
-
-
-#define ADM_CMD_MATRIX_RAMP_GAINS                        0x00010302
-struct adm_ramp_gain {
-	struct apr_hdr hdr;
-	u16 session_id;
-	u16 copp_id;
-	u16 initial_gain;
-	u16 gain_increment;
-	u16 ramp_duration;
-	u16 reserved;
-} __packed;
-
-struct adm_ramp_gains_command {
-	struct apr_hdr hdr;
-	u32 id;
-	u32 num_gains;
-	struct adm_ramp_gain gains[ADM_MAX_COPPS];
-} __packed;
-
-
-#define ADM_CMD_COPP_OPEN                                0x00010304
-struct adm_copp_open_command {
-	struct apr_hdr hdr;
-	u16 flags;
-	u16 mode; /* 1-RX, 2-Live TX, 3-Non Live TX */
-	u16 endpoint_id1;
-	u16 endpoint_id2;
-	u32 topology_id;
-	u16 channel_config;
-	u16 reserved;
-	u32 rate;
-} __packed;
-
-#define ADM_CMD_COPP_CLOSE                               0x00010305
-
-#define ADM_CMD_MULTI_CHANNEL_COPP_OPEN                  0x00010310
-#define ADM_CMD_MULTI_CHANNEL_COPP_OPEN_V3               0x00010333
-struct adm_multi_ch_copp_open_command {
-	struct apr_hdr hdr;
-	u16 flags;
-	u16 mode; /* 1-RX, 2-Live TX, 3-Non Live TX */
-	u16 endpoint_id1;
-	u16 endpoint_id2;
-	u32 topology_id;
-	u16 channel_config;
-	u16 reserved;
-	u32 rate;
-	u8 dev_channel_mapping[8];
-} __packed;
-
-struct adm_multi_channel_copp_open_v3 {
-	struct apr_hdr hdr;
-	u16 flags;
-	u16 mode;
-	u16 endpoint_id1;
-	u16 endpoint_id2;
-	u32 topology_id;
-	u16 channel_config;
-	u16 bit_width;
-	u32 rate;
-	u8  dev_channel_mapping[8];
-};
-
-#define ADM_CMD_MEMORY_MAP				0x00010C30
-struct adm_cmd_memory_map {
-	struct apr_hdr	hdr;
-	u32		buf_add;
-	u32		buf_size;
-	u16		mempool_id;
-	u16		reserved;
-} __packed;
-
-#define ADM_CMD_MEMORY_UNMAP				0x00010C31
-struct adm_cmd_memory_unmap {
-	struct apr_hdr	hdr;
-	u32		buf_add;
-} __packed;
-
-#define ADM_CMD_MEMORY_MAP_REGIONS			0x00010C47
-struct adm_memory_map_regions {
-	u32		phys;
-	u32		buf_size;
-} __packed;
-
-struct adm_cmd_memory_map_regions {
-	struct apr_hdr	hdr;
-	u16		mempool_id;
-	u16		nregions;
-} __packed;
-
-#define ADM_CMD_MEMORY_UNMAP_REGIONS			0x00010C48
-struct adm_memory_unmap_regions {
-	u32		phys;
-} __packed;
-
-struct adm_cmd_memory_unmap_regions {
-	struct apr_hdr	hdr;
-	u16		nregions;
-	u16		reserved;
-} __packed;
-
-#define DEFAULT_COPP_TOPOLOGY				0x00010be3
-#define DEFAULT_POPP_TOPOLOGY				0x00010be4
-#define VPM_TX_SM_ECNS_COPP_TOPOLOGY			0x00010F71
-#define VPM_TX_DM_FLUENCE_COPP_TOPOLOGY			0x00010F72
-#define VPM_TX_QMIC_FLUENCE_COPP_TOPOLOGY		0x00010F75
-
-#define LOWLATENCY_POPP_TOPOLOGY			0x00010C68
-#define LOWLATENCY_COPP_TOPOLOGY			0x00010312
-#define PCM_BITS_PER_SAMPLE				16
-
-#define ASM_OPEN_WRITE_PERF_MODE_BIT			(1<<28)
-#define ASM_OPEN_READ_PERF_MODE_BIT			(1<<29)
-#define ADM_MULTI_CH_COPP_OPEN_PERF_MODE_BIT		(1<<13)
-
-
-#define ASM_MAX_EQ_BANDS 12
-
-struct asm_eq_band {
-	u32 band_idx; /* The band index, 0 .. 11 */
-	u32 filter_type; /* Filter band type */
-	u32 center_freq_hz; /* Filter band center frequency */
-	u32 filter_gain; /* Filter band initial gain (dB) */
-			/* Range is +12 dB to -12 dB with 1dB increments. */
-	u32 q_factor;
-} __packed;
-
-struct asm_equalizer_params {
-	u32 enable;
-	u32 num_bands;
-	struct asm_eq_band eq_bands[ASM_MAX_EQ_BANDS];
-} __packed;
-
-struct asm_master_gain_params {
-	u16 master_gain;
-	u16 padding;
-} __packed;
-
-struct asm_lrchannel_gain_params {
-	u16 left_gain;
-	u16 right_gain;
-} __packed;
-
-struct asm_mute_params {
-	u32 muteflag;
-} __packed;
-
-struct asm_softvolume_params {
-	u32 period;
-	u32 step;
-	u32 rampingcurve;
-} __packed;
-
-struct asm_softpause_params {
-	u32 enable;
-	u32 period;
-	u32 step;
-	u32 rampingcurve;
-} __packed;
-
-struct asm_pp_param_data_hdr {
-	u32 module_id;
-	u32 param_id;
-	u16 param_size;
-	u16 reserved;
-} __packed;
-
-struct asm_pp_params_command {
-	struct apr_hdr	hdr;
-	u32    *payload;
-	u32	payload_size;
-	struct  asm_pp_param_data_hdr params;
-} __packed;
-
-#define EQUALIZER_MODULE_ID		0x00010c27
-#define EQUALIZER_PARAM_ID		0x00010c28
-
-#define VOLUME_CONTROL_MODULE_ID	0x00010bfe
-#define MASTER_GAIN_PARAM_ID		0x00010bff
-#define L_R_CHANNEL_GAIN_PARAM_ID	0x00010c00
-#define MUTE_CONFIG_PARAM_ID 0x00010c01
-#define SOFT_PAUSE_PARAM_ID 0x00010D6A
-#define SOFT_VOLUME_PARAM_ID 0x00010C29
-
-#define IIR_FILTER_ENABLE_PARAM_ID 0x00010c03
-#define IIR_FILTER_PREGAIN_PARAM_ID 0x00010c04
-#define IIR_FILTER_CONFIG_PARAM_ID 0x00010c05
-
-#define MBADRC_MODULE_ID 0x00010c06
-#define MBADRC_ENABLE_PARAM_ID 0x00010c07
-#define MBADRC_CONFIG_PARAM_ID 0x00010c08
-
-
-#define ADM_CMD_SET_PARAMS                               0x00010306
-#define ADM_CMD_GET_PARAMS                               0x0001030B
-#define ADM_CMDRSP_GET_PARAMS                            0x0001030C
-struct adm_set_params_command {
-	struct apr_hdr		hdr;
-	u32			payload;
-	u32			payload_size;
-} __packed;
-
-
-#define ADM_CMD_TAP_COPP_PCM                             0x00010307
-struct adm_tap_copp_pcm_command {
-	struct apr_hdr hdr;
-} __packed;
-
-
-/* QDSP6 to Client messages */
-#define ADM_SERVICE_CMDRSP_GET_COPP_HANDLES              0x00010308
-struct adm_get_copp_handles_respond {
-	struct apr_hdr hdr;
-	u32 handles;
-	u32 copp_id;
-} __packed;
-
-#define ADM_CMDRSP_COPP_OPEN                             0x0001030A
-struct adm_copp_open_respond {
-	u32 status;
-	u16 copp_id;
-	u16 reserved;
-} __packed;
-
-#define ADM_CMDRSP_MULTI_CHANNEL_COPP_OPEN               0x00010311
-#define ADM_CMDRSP_MULTI_CHANNEL_COPP_OPEN_V3            0x00010334
-
-
-#define ASM_STREAM_PRIORITY_NORMAL	0
-#define ASM_STREAM_PRIORITY_LOW		1
-#define ASM_STREAM_PRIORITY_HIGH	2
-#define ASM_STREAM_PRIORITY_RESERVED	3
-
-#define ASM_END_POINT_DEVICE_MATRIX	0
-#define ASM_END_POINT_STREAM		1
-
-#define AAC_ENC_MODE_AAC_LC            0x02
-#define AAC_ENC_MODE_AAC_P             0x05
-#define AAC_ENC_MODE_EAAC_P            0x1D
-
-#define ASM_STREAM_CMD_CLOSE                             0x00010BCD
-#define ASM_STREAM_CMD_FLUSH                             0x00010BCE
-#define ASM_STREAM_CMD_SET_PP_PARAMS                     0x00010BCF
-#define ASM_STREAM_CMD_GET_PP_PARAMS                     0x00010BD0
-#define ASM_STREAM_CMDRSP_GET_PP_PARAMS                  0x00010BD1
-#define ASM_SESSION_CMD_PAUSE                            0x00010BD3
-#define ASM_SESSION_CMD_GET_SESSION_TIME                 0x00010BD4
-#define ASM_DATA_CMD_EOS                                 0x00010BDB
-#define ASM_DATA_EVENT_EOS                               0x00010BDD
-
-#define ASM_SERVICE_CMD_GET_STREAM_HANDLES               0x00010C0B
-#define ASM_STREAM_CMD_FLUSH_READBUFS                    0x00010C09
-
-#define ASM_SESSION_EVENT_RX_UNDERFLOW			 0x00010C17
-#define ASM_SESSION_EVENT_TX_OVERFLOW			 0x00010C18
-#define ASM_SERVICE_CMD_GET_WALLCLOCK_TIME               0x00010C19
-#define ASM_DATA_CMDRSP_EOS                              0x00010C1C
-
-/* ASM Data structures */
-
-/* common declarations */
-struct asm_pcm_cfg {
-	u16 ch_cfg;
-	u16 bits_per_sample;
-	u32 sample_rate;
-	u16 is_signed;
-	u16 interleaved;
-};
-
-#define PCM_CHANNEL_NULL 0
-
-/* Front left channel. */
-#define PCM_CHANNEL_FL    1
-
-/* Front right channel. */
-#define PCM_CHANNEL_FR    2
-
-/* Front center channel. */
-#define PCM_CHANNEL_FC    3
-
-/* Left surround channel.*/
-#define PCM_CHANNEL_LS   4
-
-/* Right surround channel.*/
-#define PCM_CHANNEL_RS   5
-
-/* Low frequency effect channel. */
-#define PCM_CHANNEL_LFE  6
-
-/* Center surround channel; Rear center channel. */
-#define PCM_CHANNEL_CS   7
-
-/* Left back channel; Rear left channel. */
-#define PCM_CHANNEL_LB   8
-
-/* Right back channel; Rear right channel. */
-#define PCM_CHANNEL_RB   9
-
-/* Top surround channel. */
-#define PCM_CHANNEL_TS   10
-
-/* Center vertical height channel.*/
-#define PCM_CHANNEL_CVH  11
-
-/* Mono surround channel.*/
-#define PCM_CHANNEL_MS   12
-
-/* Front left of center. */
-#define PCM_CHANNEL_FLC  13
-
-/* Front right of center. */
-#define PCM_CHANNEL_FRC  14
-
-/* Rear left of center. */
-#define PCM_CHANNEL_RLC  15
-
-/* Rear right of center. */
-#define PCM_CHANNEL_RRC  16
-
-#define PCM_FORMAT_MAX_NUM_CHANNEL  8
-
-/* Maximum number of channels supported
- * in ASM_ENCDEC_DEC_CHAN_MAP command
- */
-#define MAX_CHAN_MAP_CHANNELS 16
-/*
- *  Multiple-channel PCM decoder format block structure used in the
- *  #ASM_STREAM_CMD_OPEN_WRITE command.
- *  The data must be in little-endian format.
- */
-struct asm_multi_channel_pcm_fmt_blk {
-
-	u16 num_channels;	/*
-				 * Number of channels.
-				 * Supported values:1 to 8
-				 */
-
-	u16 bits_per_sample;	/*
-				 * Number of bits per sample per channel.
-				 * Supported values: 16, 24 When used for
-				 * playback, the client must send 24-bit
-				 * samples packed in 32-bit words. The
-				 * 24-bit samples must be placed in the most
-				 * significant 24 bits of the 32-bit word. When
-				 * used for recording, the aDSP sends 24-bit
-				 * samples packed in 32-bit words. The 24-bit
-				 * samples are placed in the most significant
-				 * 24 bits of the 32-bit word.
-				 */
-
-	u32 sample_rate;	/*
-				 * Number of samples per second
-				 * (in Hertz). Supported values:
-				 * 2000 to 48000
-				 */
-
-	u16 is_signed;		/*
-				 * Flag that indicates the samples
-				 * are signed (1).
-				 */
-
-	u16 is_interleaved;	/*
-				 * Flag that indicates whether the channels are
-				 * de-interleaved (0) or interleaved (1).
-				 * Interleaved format means corresponding
-				 * samples from the left and right channels are
-				 * interleaved within the buffer.
-				 * De-interleaved format means samples from
-				 * each channel are contiguous in the buffer.
-				 * The samples from one channel immediately
-				 * follow those of the previous channel.
-				 */
-
-	u8 channel_mapping[8];	/*
-				 * Supported values:
-				 * PCM_CHANNEL_NULL, PCM_CHANNEL_FL,
-				 * PCM_CHANNEL_FR, PCM_CHANNEL_FC,
-				 * PCM_CHANNEL_LS, PCM_CHANNEL_RS,
-				 * PCM_CHANNEL_LFE, PCM_CHANNEL_CS,
-				 * PCM_CHANNEL_LB, PCM_CHANNEL_RB,
-				 * PCM_CHANNEL_TS, PCM_CHANNEL_CVH,
-				 * PCM_CHANNEL_MS, PCM_CHANNEL_FLC,
-				 * PCM_CHANNEL_FRC, PCM_CHANNEL_RLC,
-				 * PCM_CHANNEL_RRC.
-				 * Channel[i] mapping describes channel I. Each
-				 * element i of the array describes channel I
-				 * inside the buffer where  I < num_channels.
-				 * An unused channel is set to zero.
-				 */
-};
-struct asm_dts_enc_cfg {
-	uint32_t	sample_rate;
-	/*
-	 * Samples at which input is to be encoded.
-	 * Supported values:
-	 * 44100 -- encode at 44.1 Khz
-	 * 48000 -- encode at 48 Khz
-	 */
-
-	uint32_t	num_channels;
-	/*
-	 * Number of channels for multi-channel encoding.
-	 * Supported values: 1 to 6
-	 */
-
-	uint8_t		channel_mapping[6];
-	/*
-	 * Channel array of size 16. Channel[i] mapping describes channel I.
-	 * Each element i of the array describes channel I inside the buffer
-	 * where num_channels. An unused channel is set to zero. Only first
-	 * num_channels elements are valid
-	 *
-	 * Supported values:
-	 * - # PCM_CHANNEL_L
-	 * - # PCM_CHANNEL_R
-	 * - # PCM_CHANNEL_C
-	 * - # PCM_CHANNEL_LS
-	 * - # PCM_CHANNEL_RS
-	 * - # PCM_CHANNEL_LFE
-	 */
-
-};
-struct asm_adpcm_cfg {
-	u16 ch_cfg;
-	u16 bits_per_sample;
-	u32 sample_rate;
-	u32 block_size;
-};
-
-struct asm_yadpcm_cfg {
-	u16 ch_cfg;
-	u16 bits_per_sample;
-	u32 sample_rate;
-};
-
-struct asm_midi_cfg {
-	u32 nMode;
-};
-
-struct asm_wma_cfg {
-	u16 format_tag;
-	u16 ch_cfg;
-	u32 sample_rate;
-	u32 avg_bytes_per_sec;
-	u16 block_align;
-	u16 valid_bits_per_sample;
-	u32 ch_mask;
-	u16 encode_opt;
-	u16 adv_encode_opt;
-	u32 adv_encode_opt2;
-	u32 drc_peak_ref;
-	u32 drc_peak_target;
-	u32 drc_ave_ref;
-	u32 drc_ave_target;
-};
-
-struct asm_wmapro_cfg {
-	u16 format_tag;
-	u16 ch_cfg;
-	u32 sample_rate;
-	u32 avg_bytes_per_sec;
-	u16 block_align;
-	u16 valid_bits_per_sample;
-	u32 ch_mask;
-	u16 encode_opt;
-	u16 adv_encode_opt;
-	u32 adv_encode_opt2;
-	u32 drc_peak_ref;
-	u32 drc_peak_target;
-	u32 drc_ave_ref;
-	u32 drc_ave_target;
-};
-
-struct asm_aac_cfg {
-	u16 format;
-	u16 aot;
-	u16 ep_config;
-	u16 section_data_resilience;
-	u16 scalefactor_data_resilience;
-	u16 spectral_data_resilience;
-	u16 ch_cfg;
-	u16 reserved;
-	u32 sample_rate;
-};
-
-struct asm_amrwbplus_cfg {
-	u32  size_bytes;
-	u32  version;
-	u32  num_channels;
-	u32  amr_band_mode;
-	u32  amr_dtx_mode;
-	u32  amr_frame_fmt;
-	u32  amr_lsf_idx;
-};
-
-struct asm_flac_cfg {
-	u16 stream_info_present;
-	u16 min_blk_size;
-	u16 max_blk_size;
-	u16 ch_cfg;
-	u16 sample_size;
-	u16 sample_rate;
-	u16 md5_sum;
-	u32 ext_sample_rate;
-	u32 min_frame_size;
-	u32 max_frame_size;
-};
-
-struct asm_vorbis_cfg {
-	u32 ch_cfg;
-	u32 bit_rate;
-	u32 min_bit_rate;
-	u32 max_bit_rate;
-	u16 bit_depth_pcm_sample;
-	u16 bit_stream_format;
-};
-
-struct asm_aac_read_cfg {
-	u32 bitrate;
-	u32 enc_mode;
-	u16 format;
-	u16 ch_cfg;
-	u32 sample_rate;
-};
-
-struct asm_amrnb_read_cfg {
-	u16 mode;
-	u16 dtx_mode;
-};
-
-struct asm_amrwb_read_cfg {
-	u16 mode;
-	u16 dtx_mode;
-};
-
-struct asm_evrc_read_cfg {
-	u16 max_rate;
-	u16 min_rate;
-	u16 rate_modulation_cmd;
-	u16 reserved;
-};
-
-struct asm_qcelp13_read_cfg {
-	u16 max_rate;
-	u16 min_rate;
-	u16 reduced_rate_level;
-	u16 rate_modulation_cmd;
-};
-
-struct asm_sbc_read_cfg {
-	u32 subband;
-	u32 block_len;
-	u32 ch_mode;
-	u32 alloc_method;
-	u32 bit_rate;
-	u32 sample_rate;
-};
-
-struct asm_sbc_bitrate {
-	u32 bitrate;
-};
-
-struct asm_immed_decode {
-	u32 mode;
-};
-
-struct asm_sbr_ps {
-	u32 enable;
-};
-
-struct asm_dual_mono {
-	u16 sce_left;
-	u16 sce_right;
-};
-
-struct asm_dec_chan_map {
-	u32 num_channels;			  /* Number of decoder output
-						   * channels. A value of 0
-						   * indicates native channel
-						   * mapping, which is valid
-						   * only for NT mode. This
-						   * means the output of the
-						   * decoder is to be preserved
-						   * as is.
-						   */
-
-	u8 channel_mapping[MAX_CHAN_MAP_CHANNELS];/* Channel array of size
-						   * num_channels. It can grow
-						   * till MAX_CHAN_MAP_CHANNELS.
-						   * Channel[i] mapping
-						   * describes channel I inside
-						   * the decoder output buffer.
-						   * Valid channel mapping
-						   * values are to be present at
-						   * the beginning of the array.
-						   * All remaining elements of
-						   * the array are to be filled
-						   * with PCM_CHANNEL_NULL.
-						   */
-};
-
-struct asm_encode_cfg_blk {
-	u32 frames_per_buf;
-	u32 format_id;
-	u32 cfg_size;
-	union {
-		struct asm_pcm_cfg          pcm;
-		struct asm_aac_read_cfg     aac;
-		struct asm_amrnb_read_cfg   amrnb;
-		struct asm_evrc_read_cfg    evrc;
-		struct asm_qcelp13_read_cfg qcelp13;
-		struct asm_sbc_read_cfg     sbc;
-		struct asm_amrwb_read_cfg   amrwb;
-		struct asm_multi_channel_pcm_fmt_blk      mpcm;
-		struct asm_dts_enc_cfg      dts;
-	} __packed cfg;
-};
-
-struct asm_frame_meta_info {
-	u32 offset_to_frame;
-	u32 frame_size;
-	u32 encoded_pcm_samples;
-	u32 msw_ts;
-	u32 lsw_ts;
-	u32 nflags;
-};
-
-/* Stream level commands */
-#define ASM_STREAM_CMD_OPEN_READ                         0x00010BCB
-#define ASM_STREAM_CMD_OPEN_READ_V2_1                    0x00010DB2
-struct asm_stream_cmd_open_read {
-	struct apr_hdr hdr;
-	u32            uMode;
-	u32            src_endpoint;
-	u32            pre_proc_top;
-	u32            format;
-} __packed;
-
-struct asm_stream_cmd_open_read_v2_1 {
-	struct apr_hdr hdr;
-	u32            uMode;
-	u32            src_endpoint;
-	u32            pre_proc_top;
-	u32            format;
-	u16            bits_per_sample;
-	u16            reserved;
-} __packed;
-
-/* Supported formats */
-#define LINEAR_PCM   0x00010BE5
-#define DTMF         0x00010BE6
-#define ADPCM        0x00010BE7
-#define YADPCM       0x00010BE8
-#define MP3          0x00010BE9
-#define MPEG4_AAC    0x00010BEA
-#define AMRNB_FS     0x00010BEB
-#define AMRWB_FS     0x00010BEC
-#define V13K_FS      0x00010BED
-#define EVRC_FS      0x00010BEE
-#define EVRCB_FS     0x00010BEF
-#define EVRCWB_FS    0x00010BF0
-#define MIDI         0x00010BF1
-#define SBC          0x00010BF2
-#define WMA_V10PRO   0x00010BF3
-#define WMA_V9       0x00010BF4
-#define AMR_WB_PLUS  0x00010BF5
-#define AC3_DECODER  0x00010BF6
-#define EAC3_DECODER 0x00010C3C
-#define DTS	0x00010D88
-#define DTS_LBR	0x00010DBB
-#define MP2          0x00010DBE
-#define ATRAC	0x00010D89
-#define MAT	0x00010D8A
-#define G711_ALAW_FS 0x00010BF7
-#define G711_MLAW_FS 0x00010BF8
-#define G711_PCM_FS  0x00010BF9
-#define MPEG4_MULTI_AAC 0x00010D86
-#define US_POINT_EPOS_FORMAT 0x00012310
-#define US_RAW_FORMAT        0x0001127C
-#define US_PROX_FORMAT       0x0001272B
-#define MULTI_CHANNEL_PCM    0x00010C66
-
-#define ASM_ENCDEC_SBCRATE         0x00010C13
-#define ASM_ENCDEC_IMMDIATE_DECODE 0x00010C14
-#define ASM_ENCDEC_CFG_BLK         0x00010C2C
-
-#define ASM_ENCDEC_SBCRATE         0x00010C13
-#define ASM_ENCDEC_IMMDIATE_DECODE 0x00010C14
-#define ASM_ENCDEC_CFG_BLK         0x00010C2C
-
-#define ASM_STREAM_CMD_OPEN_READ_COMPRESSED               0x00010D95
-struct asm_stream_cmd_open_read_compressed {
-	struct apr_hdr hdr;
-	u32            uMode;
-	u32            frame_per_buf;
-} __packed;
-
-#define ASM_STREAM_CMD_OPEN_WRITE                        0x00010BCA
-#define ASM_STREAM_CMD_OPEN_WRITE_V2_1                   0x00010DB1
-struct asm_stream_cmd_open_write {
-	struct apr_hdr hdr;
-	u32            uMode;
-	u16            sink_endpoint;
-	u16            stream_handle;
-	u32            post_proc_top;
-	u32            format;
-} __packed;
-
-#define IEC_61937_MASK	0x00000001
-#define IEC_60958_MASK	0x00000002
-
-#define ASM_STREAM_CMD_OPEN_WRITE_COMPRESSED	0x00010D84
-struct asm_stream_cmd_open_write_compressed {
-	struct apr_hdr hdr;
-	u32	flags;
-	u32	format;
-} __packed;
-#define ASM_STREAM_CMD_OPEN_TRANSCODE_LOOPBACK     0x00010DBA
-struct asm_stream_cmd_open_transcode_loopback {
-	struct apr_hdr hdr;
-	uint32_t	mode_flags;
-	/*
-	 * All bits are reserved. Clients must set them to zero.
-	 */
-
-	uint32_t	src_format_id;
-	/*
-	 * Specifies the media format of the input audio stream.
-	 *
-	 * Supported values:
-	 * - #ASM_MEDIA_FMT_LINEAR_PCM
-	 * - #ASM_MEDIA_FMT_MULTI_CHANNEL_PCM
-	 */
-
-	uint32_t	sink_format_id;
-	/*
-	 * Specifies the media format of the output stream.
-	 *
-	 * Supported values:
-	 * - #ASM_MEDIA_FMT_LINEAR_PCM
-	 * - #ASM_MEDIA_FMT_MULTI_CHANNEL_PCM
-	 * - #ASM_MEDIA_FMT_DTS
-	 */
-
-	uint32_t	audproc_topo_id;
-	/*
-	 * Postprocessing topology ID, which specifies the topology (order of
-	 * processing) of postprocessing algorithms.
-	 *
-	 * Supported values:
-	 * - #ASM_STREAM_POSTPROC_TOPO_ID_DEFAULT
-	 * - #ASM_STREAM_POSTPROC_TOPO_ID_PEAKMETER
-	 * - #ASM_STREAM_POSTPROC_TOPO_ID_NONE
-	 * - #ASM_STREAM_POSTPROC_TOPO_ID_MCH_PEAK_VOL
-	 */
-
-	uint16_t	src_endpoint_type;
-	/*
-	 * Specifies the source endpoint that provides the input samples.
-	 *
-	 * Supported values:
-	 * - 0 -- Tx device matrix or stream router
-	 * (gateway to the hardware ports)
-	 * - All other values are reserved
-	 *
-	 * Clients must set this field to zero. Otherwise, an error is returned.
-	 */
-
-	uint16_t	sink_endpoint_type;
-	/*
-	 * Specifies the sink endpoint type.
-	 *
-	 * Supported values:
-	 * - 0 -- Rx device matrix or stream router
-	 * (gateway to the hardware ports)
-	 * - All other values are reserved
-	 *
-	 * Clients must set this field to zero. Otherwise, an error is returned.
-	 */
-
-	uint16_t	bits_per_sample;
-	/*
-	 * Number of bits per sample processed by the ASM modules.
-	 * Supported values: 16, 24
-	 */
-
-	uint16_t	reserved;
-	/*
-	 * This field must be set to zero.
-	 */
-} __packed;
-
-/*
- * ID of the DTS mix LFE channel to front channels parameter in the
- * #ASM_STREAM_CMD_SET_ENCDEC_PARAM command.
- * asm_dts_generic_param_t
- * ASM_PARAM_ID_DTS_MIX_LFE_TO_FRONT
- */
-#define ASM_PARAM_ID_DTS_MIX_LFE_TO_FRONT                          0x00010DB6
-
-/*
- * ID of the DTS DRC ratio parameter in the
- * #ASM_STREAM_CMD_SET_ENCDEC_PARAM command.
- * asm_dts_generic_param_t
- * ASM_PARAM_ID_DTS_DRC_RATIO
- */
-#define ASM_PARAM_ID_DTS_DRC_RATIO                                   0x00010DB7
-
-/*
- * ID of the DTS enable dialog normalization parameter in the
- * #ASM_STREAM_CMD_SET_ENCDEC_PARAM command.
- *
- * asm_dts_generic_param_t
- * ASM_PARAM_ID_DTS_ENABLE_DIALNORM
- */
-#define ASM_PARAM_ID_DTS_ENABLE_DIALNORM                             0x00010DB8
-
-/*
- * ID of the DTS enable parse REV2AUX parameter in the
- * #ASM_STREAM_CMD_SET_ENCDEC_PARAM command.
- * asm_dts_generic_param_t
- * ASM_PARAM_ID_DTS_ENABLE_PARSE_REV2AUX
- */
-#define ASM_PARAM_ID_DTS_ENABLE_PARSE_REV2AUX                         0x00010DB9
-
-struct asm_dts_generic_param {
-	int32_t		generic_parameter;
-	/*
-	 * #ASM_PARAM_ID_DTS_MIX_LFE_TO_FRONT:
-	 * - if enabled, mixes LFE channel to front
-	 * while downmixing (if necessary)
-	 * - Supported values: 1-> enable, 0-> disable
-	 * - Default: disabled
-	 *
-	 * #ASM_PARAM_ID_DTS_DRC_RATIO:
-	 * - percentage of DRC ratio.
-	 * - Supported values: 0-100
-	 * - Default: 0, DRC is disabled.
-	 *
-	 * #ASM_PARAM_ID_DTS_ENABLE_DIALNORM:
-	 * - flag to enable dialog normalization post processing.
-	 * - Supported values: 1-> enable, 0-> disable.
-	 * - Default: enabled.
-	 *
-	 * #ASM_PARAM_ID_DTS_ENABLE_PARSE_REV2AUX:
-	 * - flag to enable parsing of rev2aux chunk in the bitstream.
-	 * This chunk contains broadcast metadata.
-	 * - Supported values: 1-> enable, 0-> disable.
-	 * - Default: disabled.
-	 */
-};
-
-struct asm_stream_cmd_dts_dec_param {
-	struct apr_hdr hdr;
-	u32            param_id;
-	u32            param_size;
-	struct asm_dts_generic_param generic_param;
-} __packed;
-
-
-#define ASM_STREAM_CMD_OPEN_READWRITE                    0x00010BCC
-
-struct asm_stream_cmd_open_read_write {
-	struct apr_hdr     hdr;
-	u32                uMode;
-	u32                post_proc_top;
-	u32                write_format;
-	u32                read_format;
-} __packed;
-
-#define ASM_STREAM_CMD_OPEN_LOOPBACK	0x00010D6E
-struct asm_stream_cmd_open_loopback {
-	struct apr_hdr         hdr;
-	u32                    mode_flags;
-/* Mode flags.
- * Bit 0-31: reserved; client should set these bits to 0
- */
-	u16                    src_endpointype;
-	/* Endpoint type. 0 = Tx Matrix */
-	u16                    sink_endpointype;
-	/* Endpoint type. 0 = Rx Matrix */
-	u32                    postprocopo_id;
-/* Postprocessor topology ID. Specifies the topology of
- * postprocessing algorithms.
- */
-} __packed;
-
-#define ADM_CMD_CONNECT_AFE_PORT 0x00010320
-#define ADM_CMD_DISCONNECT_AFE_PORT 0x00010321
-
-struct adm_cmd_connect_afe_port {
-	struct apr_hdr     hdr;
-	u8	mode; /*mode represent the interface is for RX or TX*/
-	u8	session_id; /*ASM session ID*/
-	u16	afe_port_id;
-} __packed;
-
-#define ADM_CMD_CONNECT_AFE_PORT_V2 0x00010332
-
-struct adm_cmd_connect_afe_port_v2 {
-	struct apr_hdr     hdr;
-	u8	mode; /*mode represent the interface is for RX or TX*/
-	u8	session_id; /*ASM session ID*/
-	u16	afe_port_id;
-	u32	num_channels;
-	u32	sampling_rate;
-} __packed;
-
-#define ASM_STREAM_CMD_SET_ENCDEC_PARAM                  0x00010C10
-#define ASM_STREAM_CMD_GET_ENCDEC_PARAM                  0x00010C11
-#define ASM_ENCDEC_CFG_BLK_ID				 0x00010C2C
-#define ASM_ENABLE_SBR_PS				 0x00010C63
-#define ASM_CONFIGURE_DUAL_MONO			 0x00010C64
-struct asm_stream_cmd_encdec_cfg_blk {
-	struct apr_hdr              hdr;
-	u32                         param_id;
-	u32                         param_size;
-	struct asm_encode_cfg_blk   enc_blk;
-} __packed;
-
-struct asm_stream_cmd_encdec_sbc_bitrate {
-	struct apr_hdr hdr;
-	u32            param_id;
-		struct asm_sbc_bitrate      sbc_bitrate;
-} __packed;
-
-struct asm_stream_cmd_encdec_immed_decode {
-	struct apr_hdr hdr;
-	u32            param_id;
-	u32            param_size;
-	struct asm_immed_decode dec;
-} __packed;
-
-struct asm_stream_cmd_encdec_sbr {
-	struct apr_hdr hdr;
-	u32            param_id;
-	u32            param_size;
-	struct asm_sbr_ps sbr_ps;
-} __packed;
-
-struct asm_stream_cmd_encdec_dualmono {
-	struct apr_hdr hdr;
-	u32            param_id;
-	u32            param_size;
-	struct asm_dual_mono channel_map;
-} __packed;
-
-#define ASM_PARAM_ID_AAC_STEREO_MIX_COEFF_SELECTION_FLAG        0x00010DD8
-
-/* Structure for AAC decoder stereo coefficient setting. */
-
-struct asm_aac_stereo_mix_coeff_selection_param {
-	struct apr_hdr				hdr;
-	u32					param_id;
-	u32					param_size;
-	u32					aac_stereo_mix_coeff_flag;
-} __packed;
-
-#define ASM_ENCDEC_DEC_CHAN_MAP				 0x00010D82
-struct asm_stream_cmd_encdec_channelmap {
-	struct apr_hdr hdr;
-	u32            param_id;
-	u32            param_size;
-	struct asm_dec_chan_map chan_map;
-} __packed;
-
-#define ASM_STREAM_CMD_ADJUST_SAMPLES                   0x00010C0A
-struct asm_stream_cmd_adjust_samples {
-	struct apr_hdr hdr;
-	u16            nsamples;
-	u16            reserved;
-} __packed;
-
-#define ASM_STREAM_CMD_TAP_POPP_PCM                      0x00010BF9
-struct asm_stream_cmd_tap_popp_pcm {
-	struct apr_hdr hdr;
-	u16            enable;
-	u16            reserved;
-	u32            module_id;
-} __packed;
-
-/*  Session Level commands */
-#define ASM_SESSION_CMD_MEMORY_MAP			0x00010C32
-struct asm_stream_cmd_memory_map {
-	struct apr_hdr	hdr;
-	u32		buf_add;
-	u32		buf_size;
-	u16		mempool_id;
-	u16		reserved;
-} __packed;
-
-#define ASM_SESSION_CMD_MEMORY_UNMAP			0x00010C33
-struct asm_stream_cmd_memory_unmap {
-	struct apr_hdr	hdr;
-	u32		buf_add;
-} __packed;
-
-#define ASM_SESSION_CMD_MEMORY_MAP_REGIONS		0x00010C45
-struct asm_memory_map_regions {
-	u32		phys;
-	u32		buf_size;
-} __packed;
-
-struct asm_stream_cmd_memory_map_regions {
-	struct apr_hdr	hdr;
-	u16		mempool_id;
-	u16		nregions;
-} __packed;
-
-#define ASM_SESSION_CMD_MEMORY_UNMAP_REGIONS		0x00010C46
-struct asm_memory_unmap_regions {
-	u32		phys;
-} __packed;
-
-struct asm_stream_cmd_memory_unmap_regions {
-	struct apr_hdr	hdr;
-	u16		nregions;
-	u16		reserved;
-} __packed;
-
-#define ASM_SESSION_CMD_RUN                              0x00010BD2
-struct asm_stream_cmd_run {
-	struct apr_hdr hdr;
-	u32            flags;
-	u32            msw_ts;
-	u32            lsw_ts;
-} __packed;
-
-/* Session level events */
-#define ASM_SESSION_CMD_REGISTER_FOR_RX_UNDERFLOW_EVENTS 0x00010BD5
-struct asm_stream_cmd_reg_rx_underflow_event {
-	struct apr_hdr hdr;
-	u16            enable;
-	u16            reserved;
-} __packed;
-
-#define ASM_SESSION_CMD_REGISTER_FOR_TX_OVERFLOW_EVENTS  0x00010BD6
-struct asm_stream_cmd_reg_tx_overflow_event {
-	struct apr_hdr hdr;
-	u16            enable;
-	u16            reserved;
-} __packed;
-
-/* Data Path commands */
-#define ASM_DATA_CMD_WRITE                               0x00010BD9
-struct asm_stream_cmd_write {
-	struct apr_hdr     hdr;
-	u32	buf_add;
-	u32	avail_bytes;
-	u32	uid;
-	u32	msw_ts;
-	u32	lsw_ts;
-	u32	uflags;
-} __packed;
-
-#define ASM_DATA_CMD_READ                                0x00010BDA
-struct asm_stream_cmd_read {
-	struct apr_hdr     hdr;
-	u32	buf_add;
-	u32	buf_size;
-	u32	uid;
-} __packed;
-
-#define ASM_DATA_CMD_READ_COMPRESSED                     0x00010DBF
-struct asm_stream_cmd_read_compressed {
-	struct apr_hdr     hdr;
-	u32	buf_add;
-	u32	buf_size;
-	u32	uid;
-} __packed;
-
-#define ASM_DATA_CMD_MEDIA_FORMAT_UPDATE                 0x00010BDC
-#define ASM_DATA_EVENT_ENC_SR_CM_NOTIFY                  0x00010BDE
-struct asm_stream_media_format_update {
-	struct apr_hdr hdr;
-	u32            format;
-	u32            cfg_size;
-	union {
-		struct asm_pcm_cfg         pcm_cfg;
-		struct asm_adpcm_cfg       adpcm_cfg;
-		struct asm_yadpcm_cfg      yadpcm_cfg;
-		struct asm_midi_cfg        midi_cfg;
-		struct asm_wma_cfg         wma_cfg;
-		struct asm_wmapro_cfg      wmapro_cfg;
-		struct asm_aac_cfg         aac_cfg;
-		struct asm_flac_cfg        flac_cfg;
-		struct asm_vorbis_cfg      vorbis_cfg;
-		struct asm_multi_channel_pcm_fmt_blk multi_ch_pcm_cfg;
-		struct asm_amrwbplus_cfg   amrwbplus_cfg;
-	} __packed write_cfg;
-} __packed;
-
-
-/* Command Responses */
-#define ASM_STREAM_CMDRSP_GET_ENCDEC_PARAM               0x00010C12
-struct asm_stream_cmdrsp_get_readwrite_param {
-	struct apr_hdr hdr;
-	u32            status;
-	u32            param_id;
-	u16            param_size;
-	u16            padding;
-	union {
-		struct asm_sbc_bitrate      sbc_bitrate;
-		struct asm_immed_decode aac_dec;
-	} __packed read_write_cfg;
-} __packed;
-
-
-#define ASM_SESSION_CMDRSP_GET_SESSION_TIME              0x00010BD8
-struct asm_stream_cmdrsp_get_session_time {
-	struct apr_hdr hdr;
-	u32            status;
-	u32            msw_ts;
-	u32            lsw_ts;
-} __packed;
-
-#define ASM_DATA_EVENT_WRITE_DONE                        0x00010BDF
-struct asm_data_event_write_done {
-	u32	buf_add;
-	u32            status;
-} __packed;
-
-#define ASM_DATA_EVENT_READ_DONE                         0x00010BE0
-struct asm_data_event_read_done {
-	u32            status;
-	u32            buffer_add;
-	u32            enc_frame_size;
-	u32            offset;
-	u32            msw_ts;
-	u32            lsw_ts;
-	u32            flags;
-	u32            num_frames;
-	u32            id;
-} __packed;
-
-#define ASM_DATA_EVENT_READ_COMPRESSED_DONE              0x00010DC0
-struct asm_data_event_read_compressed_done {
-	u32            status;
-	u32            buffer_add;
-	u32            enc_frame_size;
-	u32            offset;
-	u32            msw_ts;
-	u32            lsw_ts;
-	u32            flags;
-	u32            num_frames;
-	u32            id;
-} __packed;
-
-#define ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY               0x00010C65
-struct asm_data_event_sr_cm_change_notify {
-	u32            sample_rate;
-	u16	           no_of_channels;
-	u16            reserved;
-	u8             channel_map[8];
-} __packed;
-
-/* service level events */
-
-#define ASM_SERVICE_CMDRSP_GET_STREAM_HANDLES            0x00010C1B
-struct asm_svc_cmdrsp_get_strm_handles {
-	struct apr_hdr hdr;
-	u32            num_handles;
-	u32            stream_handles;
-} __packed;
-
-
-#define ASM_SERVICE_CMDRSP_GET_WALLCLOCK_TIME            0x00010C1A
-struct asm_svc_cmdrsp_get_wallclock_time {
-	struct apr_hdr hdr;
-	u32            status;
-	u32            msw_ts;
-	u32            lsw_ts;
-} __packed;
-
-/* Error code */
-#define ADSP_EOK          0x00000000 /* Success / completed / no errors. */
-#define ADSP_EFAILED      0x00000001 /* General failure. */
-#define ADSP_EBADPARAM    0x00000002 /* Bad operation parameter(s). */
-#define ADSP_EUNSUPPORTED 0x00000003 /* Unsupported routine/operation. */
-#define ADSP_EVERSION     0x00000004 /* Unsupported version. */
-#define ADSP_EUNEXPECTED  0x00000005 /* Unexpected problem encountered. */
-#define ADSP_EPANIC       0x00000006 /* Unhandled problem occurred. */
-#define ADSP_ENORESOURCE  0x00000007 /* Unable to allocate resource(s). */
-#define ADSP_EHANDLE      0x00000008 /* Invalid handle. */
-#define ADSP_EALREADY     0x00000009 /* Operation is already processed. */
-#define ADSP_ENOTREADY    0x0000000A /* Operation not ready to be processed*/
-#define ADSP_EPENDING     0x0000000B /* Operation is pending completion*/
-#define ADSP_EBUSY        0x0000000C /* Operation could not be accepted or
-				      * processed.
-				      */
-#define ADSP_EABORTED     0x0000000D /* Operation aborted due to an error. */
-#define ADSP_EPREEMPTED   0x0000000E /* Operation preempted by higher priority*/
-#define ADSP_ECONTINUE    0x0000000F /* Operation requests intervention
-				      * to complete.
-				      */
-#define ADSP_EIMMEDIATE   0x00000010 /* Operation requests immediate
-				      * intervention to complete.
-				      */
-#define ADSP_ENOTIMPL     0x00000011 /* Operation is not implemented. */
-#define ADSP_ENEEDMORE    0x00000012 /* Operation needs more data or resources*/
-
-/* SRS TRUMEDIA GUIDS */
-#define SRS_TRUMEDIA_TOPOLOGY_ID    0x00010D90
-#define SRS_TRUMEDIA_MODULE_ID      0x10005010
-#define SRS_TRUMEDIA_PARAMS         0x10005011
-#define SRS_TRUMEDIA_PARAMS_WOWHD   0x10005012
-#define SRS_TRUMEDIA_PARAMS_CSHP    0x10005013
-#define SRS_TRUMEDIA_PARAMS_HPF     0x10005014
-#define SRS_TRUMEDIA_PARAMS_PEQ     0x10005015
-#define SRS_TRUMEDIA_PARAMS_HL      0x10005016
-
-/* SRS STUDIO SOUND 3D GUIDS */
-#define SRS_SS3D_TOPOLOGY_ID        0x00010720
-#define SRS_SS3D_MODULE_ID          0x10005020
-#define SRS_SS3D_PARAMS             0x10005021
-#define SRS_SS3D_PARAMS_CTRL        0x10005022
-#define SRS_SS3D_PARAMS_FILTER      0x10005023
-
-/* SRS ALSA CMD MASKS */
-#define SRS_CMD_UPLOAD              0x7FFF0000
-#define SRS_PARAM_INDEX_MASK        0x80000000
-#define SRS_PARAM_OFFSET_MASK       0x3FFF0000
-#define SRS_PARAM_VALUE_MASK        0x0000FFFF
-
-/* SRS TRUMEDIA start */
-#define SRS_ID_GLOBAL               0x00000001
-#define SRS_ID_WOWHD                0x00000002
-#define SRS_ID_CSHP                 0x00000003
-#define SRS_ID_HPF                  0x00000004
-#define SRS_ID_PEQ                  0x00000005
-#define SRS_ID_HL                   0x00000006
-
-struct srs_trumedia_params_GLOBAL {
-	uint8_t                  v1;
-	uint8_t                  v2;
-	uint8_t                  v3;
-	uint8_t                  v4;
-	uint8_t                  v5;
-	uint8_t                  v6;
-	uint8_t                  v7;
-	uint8_t                  v8;
-} __packed;
-
-struct srs_trumedia_params_WOWHD {
-	uint32_t				v1;
-	uint16_t				v2;
-	uint16_t				v3;
-	uint16_t				v4;
-	uint16_t				v5;
-	uint16_t				v6;
-	uint16_t				v7;
-	uint16_t				v8;
-	uint16_t				v____A1;
-	uint32_t				v9;
-	uint16_t				v10;
-	uint16_t				v11;
-	uint32_t				v12[16];
-} __packed;
-
-struct srs_trumedia_params_CSHP {
-	uint32_t				v1;
-	uint16_t				v2;
-	uint16_t				v3;
-	uint16_t				v4;
-	uint16_t				v5;
-	uint16_t				v6;
-	uint16_t				v____A1;
-	uint32_t				v7;
-	uint16_t				v8;
-	uint16_t				v9;
-	uint32_t				v10[16];
-} __packed;
-
-struct srs_trumedia_params_HPF {
-	uint32_t				v1;
-	uint32_t				v2[26];
-} __packed;
-
-struct srs_trumedia_params_PEQ {
-	uint32_t				v1;
-	uint16_t				v2;
-	uint16_t				v3;
-	uint16_t				v4;
-	uint16_t				v____A1;
-	uint32_t				v5[26];
-	uint32_t				v6[26];
-} __packed;
-
-struct srs_trumedia_params_HL {
-	uint16_t				v1;
-	uint16_t				v2;
-	uint16_t				v3;
-	uint16_t				v____A1;
-	int32_t					v4;
-	uint32_t				v5;
-	uint16_t				v6;
-	uint16_t				v____A2;
-	uint32_t				v7;
-} __packed;
-
-struct srs_trumedia_params {
-	struct srs_trumedia_params_GLOBAL	global;
-	struct srs_trumedia_params_WOWHD	wowhd;
-	struct srs_trumedia_params_CSHP		cshp;
-	struct srs_trumedia_params_HPF		hpf;
-	struct srs_trumedia_params_PEQ		peq;
-	struct srs_trumedia_params_HL		hl;
-} __packed;
-
-int srs_trumedia_open(int port_id, int srs_tech_id, void *srs_params);
-/* SRS TruMedia end */
-
-/* SRS Studio Sound 3D start */
-#define SRS_ID_SS3D_GLOBAL	0x00000001
-#define SRS_ID_SS3D_CTRL	0x00000002
-#define SRS_ID_SS3D_FILTER	0x00000003
-
-struct srs_SS3D_params_GLOBAL {
-	uint8_t                  v1;
-	uint8_t                  v2;
-	uint8_t                  v3;
-	uint8_t                  v4;
-	uint8_t                  v5;
-	uint8_t                  v6;
-	uint8_t                  v7;
-	uint8_t                  v8;
-} __packed;
-
-struct srs_SS3D_ctrl_params {
-	uint8_t				v[236];
-} __packed;
-
-struct srs_SS3D_filter_params {
-	uint8_t				v[28 + 2752];
-} __packed;
-
-struct srs_SS3D_params {
-	struct srs_SS3D_params_GLOBAL   global;
-	struct srs_SS3D_ctrl_params     ss3d;
-	struct srs_SS3D_filter_params   ss3d_f;
-} __packed;
-
-int srs_ss3d_open(int port_id, int srs_tech_id, void *srs_params);
-/* SRS Studio Sound 3D end */
-#endif /*_APR_AUDIO_H_*/
diff --git a/ipc/Makefile b/ipc/Makefile
new file mode 100644
index 0000000..fd840c9
--- /dev/null
+++ b/ipc/Makefile
@@ -0,0 +1,2 @@
+obj-$(CONFIG_MSM_QDSP6_APRV2_GLINK) += apr.o apr_v2.o apr_tal_glink.o
+obj-$(CONFIG_MSM_QDSP6_APRV3_GLINK) += apr.o apr_v3.o apr_tal_glink.o
diff --git a/drivers/soc/qcom/qdsp6v2/apr.c b/ipc/apr.c
similarity index 98%
rename from drivers/soc/qcom/qdsp6v2/apr.c
rename to ipc/apr.c
index e45f61e..bec513a 100644
--- a/drivers/soc/qcom/qdsp6v2/apr.c
+++ b/ipc/apr.c
@@ -26,14 +26,13 @@
 #include <linux/sysfs.h>
 #include <linux/device.h>
 #include <linux/slab.h>
+#include <linux/ipc_logging.h>
 #include <soc/qcom/subsystem_restart.h>
 #include <soc/qcom/scm.h>
-#include <sound/apr_audio-v2.h>
-#include <linux/qdsp6v2/apr.h>
-#include <linux/qdsp6v2/apr_tal.h>
-#include <linux/qdsp6v2/dsp_debug.h>
-#include <linux/qdsp6v2/audio_notifier.h>
-#include <linux/ipc_logging.h>
+#include <dsp/apr_audio-v2.h>
+#include <dsp/audio_notifier.h>
+#include <ipc/apr.h>
+#include <ipc/apr_tal.h>
 
 #define APR_PKT_IPC_LOG_PAGE_CNT 2
 
diff --git a/drivers/soc/qcom/qdsp6v2/apr_tal_glink.c b/ipc/apr_tal_glink.c
similarity index 99%
rename from drivers/soc/qcom/qdsp6v2/apr_tal_glink.c
rename to ipc/apr_tal_glink.c
index fc7f63f..f99f9ed 100644
--- a/drivers/soc/qcom/qdsp6v2/apr_tal_glink.c
+++ b/ipc/apr_tal_glink.c
@@ -27,7 +27,7 @@
 #include <linux/delay.h>
 #include <linux/clk.h>
 #include <soc/qcom/glink.h>
-#include <linux/qdsp6v2/apr_tal.h>
+#include <ipc/apr_tal.h>
 
 #define APR_MAXIMUM_NUM_OF_RETRIES 2
 
diff --git a/drivers/soc/qcom/qdsp6v2/apr_v2.c b/ipc/apr_v2.c
similarity index 91%
rename from drivers/soc/qcom/qdsp6v2/apr_v2.c
rename to ipc/apr_v2.c
index 4ddf39b..d330571 100644
--- a/drivers/soc/qcom/qdsp6v2/apr_v2.c
+++ b/ipc/apr_v2.c
@@ -15,10 +15,9 @@
 #include <linux/uaccess.h>
 #include <linux/spinlock.h>
 #include <linux/kernel.h>
-#include <linux/qdsp6v2/apr.h>
-#include <linux/qdsp6v2/apr_tal.h>
-#include <linux/qdsp6v2/dsp_debug.h>
-#include <linux/qdsp6v2/audio_notifier.h>
+#include <dsp/audio_notifier.h>
+#include <ipc/apr.h>
+#include <ipc/apr_tal.h>
 
 enum apr_subsys_state apr_get_subsys_state(void)
 {
diff --git a/drivers/soc/qcom/qdsp6v2/apr_v3.c b/ipc/apr_v3.c
similarity index 90%
rename from drivers/soc/qcom/qdsp6v2/apr_v3.c
rename to ipc/apr_v3.c
index 2bfc518..5a4ef53 100644
--- a/drivers/soc/qcom/qdsp6v2/apr_v3.c
+++ b/ipc/apr_v3.c
@@ -15,10 +15,9 @@
 #include <linux/uaccess.h>
 #include <linux/spinlock.h>
 #include <linux/kernel.h>
-#include <linux/qdsp6v2/apr.h>
-#include <linux/qdsp6v2/apr_tal.h>
-#include <linux/qdsp6v2/dsp_debug.h>
-#include <linux/qdsp6v2/audio_notifier.h>
+#include <dsp/audio_notifier.h>
+#include <ipc/apr.h>
+#include <ipc/apr_tal.h>
 
 #define DEST_ID APR_DEST_MODEM
 
diff --git a/soc/Makefile b/soc/Makefile
new file mode 100644
index 0000000..c563e76
--- /dev/null
+++ b/soc/Makefile
@@ -0,0 +1,6 @@
+
+obj-$(CONFIG_REGMAP_SWR) += regmap-swr.o
+obj-$(CONFIG_PINCTRL_WCD)	+= pinctrl-wcd.o
+obj-$(CONFIG_PINCTRL_LPI)	+= pinctrl-lpi.o
+obj-$(CONFIG_SOUNDWIRE)			+= soundwire.o
+obj-$(CONFIG_SOUNDWIRE_WCD_CTRL)	+= swr-wcd-ctrl.o
diff --git a/soc/core.h b/soc/core.h
new file mode 120000
index 0000000..8a2fa90
--- /dev/null
+++ b/soc/core.h
@@ -0,0 +1 @@
+../../../drivers/pinctrl/core.h
\ No newline at end of file
diff --git a/drivers/pinctrl/qcom/pinctrl-lpi.c b/soc/pinctrl-lpi.c
similarity index 98%
rename from drivers/pinctrl/qcom/pinctrl-lpi.c
rename to soc/pinctrl-lpi.c
index 11f954e..db5a9e5 100644
--- a/drivers/pinctrl/qcom/pinctrl-lpi.c
+++ b/soc/pinctrl-lpi.c
@@ -19,12 +19,12 @@
 #include <linux/pinctrl/pinconf.h>
 #include <linux/pinctrl/pinmux.h>
 #include <linux/platform_device.h>
-#include <linux/qdsp6v2/audio_notifier.h>
 #include <linux/slab.h>
 #include <linux/types.h>
+#include <dsp/audio_notifier.h>
 
-#include "../core.h"
-#include "../pinctrl-utils.h"
+#include "core.h"
+#include "pinctrl-utils.h"
 
 #define LPI_ADDRESS_SIZE			0xC000
 
diff --git a/soc/pinctrl-utils.h b/soc/pinctrl-utils.h
new file mode 120000
index 0000000..9aab5f2
--- /dev/null
+++ b/soc/pinctrl-utils.h
@@ -0,0 +1 @@
+../../../drivers/pinctrl/pinctrl-utils.h
\ No newline at end of file
diff --git a/drivers/pinctrl/qcom/pinctrl-wcd.c b/soc/pinctrl-wcd.c
similarity index 98%
rename from drivers/pinctrl/qcom/pinctrl-wcd.c
rename to soc/pinctrl-wcd.c
index 2cc68a0..d7695db 100644
--- a/drivers/pinctrl/qcom/pinctrl-wcd.c
+++ b/soc/pinctrl-wcd.c
@@ -21,10 +21,10 @@
 #include <linux/regmap.h>
 #include <linux/slab.h>
 #include <linux/types.h>
-#include <linux/mfd/wcd934x/registers.h>
+#include <asoc/wcd934x_registers.h>
 
-#include "../core.h"
-#include "../pinctrl-utils.h"
+#include "core.h"
+#include "pinctrl-utils.h"
 
 #define WCD_REG_DIR_CTL WCD934X_CHIP_TIER_CTRL_GPIO_CTL_OE
 #define WCD_REG_VAL_CTL WCD934X_CHIP_TIER_CTRL_GPIO_CTL_DATA
diff --git a/drivers/base/regmap/regmap-swr.c b/soc/regmap-swr.c
similarity index 98%
rename from drivers/base/regmap/regmap-swr.c
rename to soc/regmap-swr.c
index be1eb00..ba092a2 100644
--- a/drivers/base/regmap/regmap-swr.c
+++ b/soc/regmap-swr.c
@@ -15,11 +15,11 @@
 #include <linux/slab.h>
 #include <linux/mutex.h>
 #include <linux/regmap.h>
-#include <linux/soundwire/soundwire.h>
 #include <linux/module.h>
 #include <linux/init.h>
+#include <soc/soundwire.h>
+#include <soc/internal.h>
 
-#include "internal.h"
 
 static int regmap_swr_gather_write(void *context,
 				const void *reg, size_t reg_size,
diff --git a/drivers/soundwire/soundwire.c b/soc/soundwire.c
similarity index 99%
rename from drivers/soundwire/soundwire.c
rename to soc/soundwire.c
index f0c7aa9..210de34 100644
--- a/drivers/soundwire/soundwire.c
+++ b/soc/soundwire.c
@@ -20,7 +20,7 @@
 #include <linux/completion.h>
 #include <linux/idr.h>
 #include <linux/pm_runtime.h>
-#include <linux/soundwire/soundwire.h>
+#include <soc/soundwire.h>
 
 struct boardinfo {
 	struct list_head	list;
diff --git a/drivers/soundwire/swr-wcd-ctrl.c b/soc/swr-wcd-ctrl.c
similarity index 99%
rename from drivers/soundwire/swr-wcd-ctrl.c
rename to soc/swr-wcd-ctrl.c
index e338d58..e7d7c79 100644
--- a/drivers/soundwire/swr-wcd-ctrl.c
+++ b/soc/swr-wcd-ctrl.c
@@ -17,8 +17,6 @@
 #include <linux/io.h>
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
-#include <linux/soundwire/soundwire.h>
-#include <linux/soundwire/swr-wcd.h>
 #include <linux/delay.h>
 #include <linux/kthread.h>
 #include <linux/clk.h>
@@ -26,6 +24,8 @@
 #include <linux/of.h>
 #include <linux/debugfs.h>
 #include <linux/uaccess.h>
+#include <soc/soundwire.h>
+#include <soc/swr-wcd.h>
 #include "swrm_registers.h"
 #include "swr-wcd-ctrl.h"
 
diff --git a/drivers/soundwire/swr-wcd-ctrl.h b/soc/swr-wcd-ctrl.h
similarity index 98%
rename from drivers/soundwire/swr-wcd-ctrl.h
rename to soc/swr-wcd-ctrl.h
index b7a3eda..5a4f79b 100644
--- a/drivers/soundwire/swr-wcd-ctrl.h
+++ b/soc/swr-wcd-ctrl.h
@@ -13,7 +13,7 @@
 #ifndef _SWR_WCD_CTRL_H
 #define _SWR_WCD_CTRL_H
 #include <linux/module.h>
-#include <linux/soundwire/swr-wcd.h>
+#include <soc/swr-wcd.h>
 
 #define SWR_MAX_ROW		0 /* Rows = 48 */
 #define SWR_MAX_COL		7 /* Cols = 16 */
diff --git a/drivers/soundwire/swrm_registers.h b/soc/swrm_registers.h
similarity index 100%
rename from drivers/soundwire/swrm_registers.h
rename to soc/swrm_registers.h
diff --git a/sound/Makefile b/sound/Makefile
deleted file mode 100644
index 71c713a..0000000
--- a/sound/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# MSM Machine Support
-
-obj-$(CONFIG_SND_SOC) += soc/msm/
-obj-$(CONFIG_SND_SOC) += soc/codecs/
diff --git a/sound/soc/codecs/msm_sdw/Kconfig b/sound/soc/codecs/msm_sdw/Kconfig
deleted file mode 100644
index abd7c8c..0000000
--- a/sound/soc/codecs/msm_sdw/Kconfig
+++ /dev/null
@@ -1,6 +0,0 @@
-config SND_SOC_MSM_SDW
-	tristate "MSM Internal soundwire codec"
-	 help
-	 MSM-based soundwire codec core driver
-	 supported along with internal digital
-	 codec core.
diff --git a/sound/soc/codecs/sdm660_cdc/Kconfig b/sound/soc/codecs/sdm660_cdc/Kconfig
deleted file mode 100644
index 2f36c39..0000000
--- a/sound/soc/codecs/sdm660_cdc/Kconfig
+++ /dev/null
@@ -1,5 +0,0 @@
-
-config SND_SOC_SDM660_CDC
-	tristate "MSM Internal PMIC based codec"
-	select SND_SOC_WCD_MBHC
-	select SND_SOC_WCD_MBHC_LEGACY
diff --git a/sound/soc/msm/Kconfig b/sound/soc/msm/Kconfig
deleted file mode 100644
index c557ae0..0000000
--- a/sound/soc/msm/Kconfig
+++ /dev/null
@@ -1,283 +0,0 @@
-menu "MSM SoC Audio support"
-
-config SND_SOC_MSM_HOSTLESS_PCM
-	tristate
-
-config SND_SOC_MSM_QDSP6V2_INTF
-	bool "SoC Q6 audio driver for MSM/APQ"
-	depends on MSM_QDSP6_APRV2_GLINK
-	help
-	 To add support for SoC audio on MSM/APQ.
-	 This will enable all the platform specific
-	 interactions towards DSP. It includes asm,
-	 adm and afe interfaces on the DSP.
-
-config SND_SOC_QDSP6V2
-	tristate "SoC ALSA audio driver for QDSP6V2"
-	select SND_SOC_MSM_QDSP6V2_INTF
-	select SND_SOC_COMPRESS
-	help
-	 To add support for MSM QDSP6V2 Soc Audio.
-	 This will enable sound soc platform specific
-	 audio drivers. This includes q6asm, q6adm,
-	 q6afe interfaces to DSP using apr.
-
-config SND_SOC_QDSP_DEBUG
-	bool "QDSP Audio Driver Debug Feature"
-	help
-	 Configuration to enable debugging utilities for
-	 QDSP6 based audio drivers. One debugging utility
-	 is inducing kernel panic upon encountering critical
-	 errors from DSP audio modules
-
-config DOLBY_DS2
-	bool "Enable Dolby DS2"
-	depends on SND_SOC_MSM_QDSP6V2_INTF
-	help
-	 To add support for dolby DAP post processing.
-	 This support is to configure the post processing parameters
-	 to DSP. The configuration includes sending the end point
-	 device, end point dependent post processing parameters and
-	 the various posrt processing parameters
-
-config DOLBY_LICENSE
-	bool "Enable Dolby LICENSE"
-	depends on SND_SOC_MSM_QDSP6V2_INTF
-	help
-	 To add support for dolby DAP post processing,
-	 and retain DAP set license functionality only.
-	 This is required by Dolby GEF implementation which needs
-	 nothing but dolby license validation functionality in driver.
-
-config DTS_EAGLE
-	bool "Enable DTS Eagle Support"
-	depends on SND_SOC_MSM_QDSP6V2_INTF
-	select SND_HWDEP
-	help
-	 To add DTS Eagle support on QDSP6 targets.
-	 Eagle is a DTS pre/post processing
-	 package that includes HeadphoneX. The configuration
-	 includes sending tuning parameters of various modules.
-
-config DTS_SRS_TM
-	bool "Enable DTS SRS"
-	depends on SND_SOC_MSM_QDSP6V2_INTF
-	help
-	 To add support for DTS SRS post processing.
-	 This support is to configure the post processing
-	 parameters to DSP. The configuration includes sending
-	 tuning parameters of various modules.
-
-config QTI_PP
-	bool "Enable QTI PP"
-	depends on SND_SOC_MSM_QDSP6V2_INTF
-	help
-	 To add support for default QTI post processing.
-	 This support is to configure the post processing
-	 parameters to DSP. The configuration includes sending
-	 tuning parameters of various modules such as equalizer,
-	 customized mixing.
-
-config QTI_PP_AUDIOSPHERE
-	bool "Enable QTI AUDIOSPHERE PP"
-	depends on SND_SOC_MSM_QDSP6V2_INTF
-	help
-	 To add support for QTI audio sphere post processing.
-	 This support is to configure the post processing
-	 parameters to DSP. The configuration includes sending
-	 tuning parameters of audio sphere module.
-
-config SND_SOC_CPE
-	tristate "CPE drivers"
-	depends on SND_SOC_WCD_CPE
-	help
-	 To add support for Codec Processing Engine. This support
-	 is to enable CPE block on the codec and this config needs
-	 to be added to codecs that contain the CPE hardware block.
-	 The configuration includes the cpe lsm driver to enable
-	 listen on codec.
-
-config SND_SOC_INT_CODEC
-	tristate "SoC Machine driver for SDM660_INT"
-	depends on ARCH_QCOM
-	select SND_SOC_QDSP6V2
-	select SND_SOC_MSM_STUB
-	select SND_SOC_MSM_HOSTLESS_PCM
-	select SND_DYNAMIC_MINORS
-	select MSM_QDSP6_APRV2_GLINK
-	select MSM_QDSP6_SSR
-	select MSM_QDSP6_PDR
-	select MSM_QDSP6_NOTIFIER
-	select MSM_QDSP6V2_CODECS
-	select MSM_CDC_PINCTRL
-	select SND_SOC_MSM_SDW
-	select SND_SOC_SDM660_CDC
-	select SND_SOC_MSM_HDMI_CODEC_RX
-	select QTI_PP
-	select DTS_SRS_TM
-	select DOLBY_LICENSE
-	select SND_HWDEP
-	select MSM_ULTRASOUND
-	select DTS_EAGLE
-	select SND_SOC_SDM660_COMMON
-	select SND_SOC_COMPRESS
-	select PINCTRL_LPI
-	help
-	To add support for SoC audio on MSM_INT.
-	This will enable sound soc drivers which
-	interfaces with DSP, also it will enable
-	the machine driver and the corresponding
-	DAI-links
-
-config SND_SOC_EXT_CODEC
-	tristate "SoC Machine driver for SDM660_EXT"
-	depends on ARCH_QCOM
-	select SND_SOC_QDSP6V2
-	select SND_SOC_MSM_STUB
-	select SND_SOC_MSM_HOSTLESS_PCM
-	select SND_DYNAMIC_MINORS
-	select MSM_QDSP6_APRV2_GLINK
-	select MSM_QDSP6_SSR
-	select MSM_QDSP6_PDR
-	select MSM_QDSP6_NOTIFIER
-	select MSM_QDSP6V2_CODECS
-	select SND_SOC_WCD9335
-	select SND_SOC_WCD934X
-	select SND_SOC_WSA881X
-	select SND_SOC_MSM_HDMI_CODEC_RX
-	select MFD_CORE
-	select QTI_PP
-	select DTS_SRS_TM
-	select DOLBY_LICENSE
-	select SND_SOC_CPE
-	select SND_SOC_WCD_CPE
-	select SND_HWDEP
-	select MSM_ULTRASOUND
-	select DTS_EAGLE
-	select SND_SOC_SDM660_COMMON
-	select SND_SOC_COMPRESS
-	select PINCTRL_LPI
-	help
-	To add support for SoC audio on MSM_EXT.
-	This will enable sound soc drivers which
-	interfaces with DSP, also it will enable
-	the machine driver and the corresponding
-	DAI-links
-
-config SND_SOC_MSM8996
-	tristate "SoC Machine driver for MSM8996 boards"
-	depends on ARCH_MSM8996
-	select SND_SOC_COMPRESS
-	select SND_SOC_QDSP6V2
-	select SND_SOC_MSM_STUB
-	select SND_SOC_MSM_HOSTLESS_PCM
-	select SND_DYNAMIC_MINORS
-	select MSM_QDSP6_APRV2
-	select MSM_QDSP6V2_CODECS
-	select SND_SOC_WCD9335
-	select SND_SOC_WSA881X
-	select SND_SOC_MSM_HDMI_CODEC_RX
-	select DTS_SRS_TM
-	select QTI_PP
-	select QTI_PP_AUDIOSPHERE
-	select SND_SOC_CPE
-	select MSM_ULTRASOUND
-	select DOLBY_DS2
-	select SND_HWDEP
-        select DTS_EAGLE
-	help
-	 To add support for SoC audio on MSM8996.
-	 This will enable sound soc drivers which
-	 interfaces with DSP, also it will enable
-	 the machine driver and the corresponding
-	 DAI-links
-
-config SND_SOC_MACHINE_MSM8998
-	tristate "SoC Machine driver for MSM8998 boards"
-	select SND_SOC_WSA881X
-	select SND_SOC_WCD9335
-	select SND_SOC_WCD934X
-	select SND_SOC_CPE
-
-	help
-	To enable the machine driver and the
-	corresponding DAI-links on MSM8998.
-	All platform specific audio modules are
-	enabled here.
-
-config SND_SOC_MSM8998
-	tristate "Sound SoC drivers to interface with DSP"
-	depends on ARCH_QCOM
-	select SND_SOC_COMPRESS
-	select SND_SOC_QDSP6V2
-	select SND_SOC_MSM_STUB
-	select SND_SOC_MSM_HOSTLESS_PCM
-	select SND_DYNAMIC_MINORS
-	select MSM_QDSP6_APRV2_GLINK
-	select MSM_QDSP6_SSR
-	select MSM_QDSP6_PDR
-	select MSM_QDSP6_NOTIFIER
-	select MSM_QDSP6V2_CODECS
-	select SND_SOC_MSM_HDMI_CODEC_RX
-	select DTS_SRS_TM
-	select QTI_PP
-	select MSM_ULTRASOUND
-	select DOLBY_LICENSE
-	select SND_HWDEP
-        select DTS_EAGLE
-	help
-	 To add support for SoC audio on MSM8998.
-	 This will enable sound soc drivers which
-	 interfaces with DSP, also it will enable
-	 the machine driver and the corresponding
-	 DAI-links
-
-config SND_SOC_660
-	tristate "SoC Machine driver for SDM660 boards"
-	depends on ARCH_SDM660
-	select SND_SOC_INT_CODEC
-	select SND_SOC_EXT_CODEC
-	help
-	 To add support for SoC audio on SDM660.
-	 This will enable sound soc drivers which
-	 interfaces with DSP, also it will enable
-	 the machine driver and the corresponding
-	 DAI-links
-
-config SND_SOC_MACHINE_SDM845
-	tristate "SoC Machine driver for SDM845 boards"
-	select SND_SOC_WSA881X
-	select SND_SOC_WCD934X
-
-	help
-	To enable the machine driver and the
-	corresponding DAI-links on SDM845.
-	All platform specific audio modules are
-	enabled here.
-
-config SND_SOC_SDM845
-	tristate "SoC Machine driver for SDM845 boards"
-	depends on ARCH_QCOM
-	select SND_SOC_COMPRESS
-	select SND_SOC_QDSP6V2
-	select SND_SOC_MSM_STUB
-	select SND_SOC_MSM_HOSTLESS_PCM
-	select SND_DYNAMIC_MINORS
-	select MSM_QDSP6_APRV2_GLINK
-	select MSM_QDSP6_SSR
-	select MSM_QDSP6_PDR
-	select MSM_QDSP6_NOTIFIER
-	select MSM_QDSP6V2_CODECS
-	select DTS_SRS_TM
-	select QTI_PP
-	select MSM_ULTRASOUND
-	select DOLBY_DS2
-	select SND_HWDEP
-        select DTS_EAGLE
-	help
-	 To add support for SoC audio on SDM845.
-	 This enables sound soc drivers that interfaces
-	 with DSP. This also enables the machine driver
-	 and the corresponding DAI-links.
-
-endmenu
diff --git a/sound/soc/msm/qdsp6v2/Makefile b/sound/soc/msm/qdsp6v2/Makefile
deleted file mode 100644
index da2b2c7..0000000
--- a/sound/soc/msm/qdsp6v2/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-snd-soc-qdsp6v2-objs += msm-dai-q6-v2.o msm-pcm-q6-v2.o \
-			msm-pcm-routing-v2.o msm-compress-q6-v2.o \
-			msm-pcm-afe-v2.o msm-pcm-voip-v2.o \
-			msm-pcm-voice-v2.o msm-dai-q6-hdmi-v2.o \
-			msm-lsm-client.o msm-pcm-host-voice-v2.o \
-			msm-audio-effects-q6-v2.o msm-pcm-loopback-v2.o \
-			msm-dai-slim.o msm-transcode-loopback-q6-v2.o \
-			adsp_err.o
-obj-$(CONFIG_SND_SOC_QDSP6V2) += snd-soc-qdsp6v2.o msm-pcm-dtmf-v2.o \
-				 msm-dai-stub-v2.o
-obj-$(CONFIG_SND_HWDEP) += msm-pcm-routing-devdep.o
-obj-$(CONFIG_DOLBY_DAP) += msm-dolby-dap-config.o
-obj-$(CONFIG_DOLBY_DS2) += msm-ds2-dap-config.o
-obj-$(CONFIG_DOLBY_LICENSE) += msm-ds2-dap-config.o
-obj-$(CONFIG_DTS_SRS_TM) += msm-dts-srs-tm-config.o
-obj-$(CONFIG_QTI_PP) += msm-qti-pp-config.o
-obj-y += audio_calibration.o audio_cal_utils.o q6adm.o q6afe.o q6asm.o \
-	q6audio-v2.o q6voice.o q6core.o rtac.o q6lsm.o audio_slimslave.o \
-	msm-pcm-q6-noirq.o