diff --git a/Android.mk b/Android.mk index 67616d99932a..89636e6f341c 100644 --- a/Android.mk +++ b/Android.mk @@ -3,7 +3,7 @@ MY_LOCAL_PATH := $(call my-dir) UAPI_OUT := $(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/include -ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605),true) +ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605 msmnile),true) $(shell mkdir -p $(UAPI_OUT)/linux;) $(shell mkdir -p $(UAPI_OUT)/sound;) $(shell rm -rf $(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/ipc/Module.symvers) diff --git a/Makefile b/Makefile index 2848799ae3a6..4e123b6de43b 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,10 @@ ifeq ($(CONFIG_ARCH_SDXPOORWILLS), y) include $(srctree)/techpack/audio/config/sdxpoorwillsauto.conf export endif +ifeq ($(CONFIG_ARCH_SDM855), y) +include $(srctree)/techpack/audio/config/sdm855auto.conf +export +endif # Use USERINCLUDE when you must reference the UAPI directories only. USERINCLUDE += \ @@ -34,6 +38,10 @@ ifeq ($(CONFIG_ARCH_SDXPOORWILLS), y) LINUXINCLUDE += \ -include $(srctree)/techpack/audio/config/sdxpoorwillsautoconf.h endif +ifeq ($(CONFIG_ARCH_SDM855), y) +LINUXINCLUDE += \ + -include $(srctree)/techpack/audio/config/sdm855autoconf.h +endif obj-y += asoc/ obj-y += dsp/ diff --git a/asoc/Android.mk b/asoc/Android.mk index 5023a09828a3..6154917aafb9 100644 --- a/asoc/Android.mk +++ b/asoc/Android.mk @@ -13,9 +13,14 @@ TARGET := sdm670 AUDIO_SELECT := CONFIG_SND_SOC_SDM670=m endif +ifeq ($(call is-board-platform,msmnile),true) +TARGET := msmnile +AUDIO_SELECT := CONFIG_SND_SOC_SDM855=m +endif + AUDIO_CHIPSET := audio # Build/Package only in case of supported target -ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605),true) +ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605 msmnile),true) LOCAL_PATH := $(call my-dir) diff --git a/asoc/Kbuild b/asoc/Kbuild index 91ebf8a0e0ad..4ebce00485b1 100644 --- a/asoc/Kbuild +++ b/asoc/Kbuild @@ -30,6 +30,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/sdm670autoconf.h endif + ifeq ($(CONFIG_ARCH_SDM855), y) + include $(AUDIO_ROOT)/config/sdm855auto.conf + export + INCS += -include $(AUDIO_ROOT)/config/sdm855autoconf.h + endif endif # As per target team, build is done as follows: @@ -80,6 +85,11 @@ ifdef CONFIG_SND_SOC_MACHINE_SDM845 MACHINE_OBJS += sdm845.o endif +# for SDM855 sound card driver +ifdef CONFIG_SND_SOC_SDM855 + MACHINE_OBJS += sdm855.o +endif + ifdef CONFIG_SND_SOC_CPE CPE_LSM_OBJS += msm-cpe-lsm.o endif @@ -152,11 +162,11 @@ EXTRA_CFLAGS += -Wheader-guard endif ifeq ($(KERNEL_BUILD), 0) -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/Module.symvers -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/wcd934x/Module.symvers -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/sdm660_cdc/Module.symvers -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/msm_sdw/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/wcd934x/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/sdm660_cdc/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/codecs/msm_sdw/Module.symvers endif ifeq ($(KERNEL_BUILD), 1) obj-y += codecs/ @@ -168,6 +178,9 @@ platform_dlkm-y := $(PLATFORM_OBJS) obj-$(CONFIG_SND_SOC_MACHINE_SDM845) += machine_dlkm.o machine_dlkm-y := $(MACHINE_OBJS) +obj-$(CONFIG_SND_SOC_SDM855) += machine_dlkm.o +machine_dlkm-y := $(MACHINE_OBJS) + obj-$(CONFIG_SND_SOC_EXT_CODEC) += machine_dlkm.o machine_dlkm-y := $(MACHINE_OBJS) diff --git a/asoc/codecs/Android.mk b/asoc/codecs/Android.mk index 037774c2252e..152f61705ae5 100644 --- a/asoc/codecs/Android.mk +++ b/asoc/codecs/Android.mk @@ -11,9 +11,13 @@ ifeq ($(call is-board-platform-in-list,msm8953 sdm670 qcs605),true) AUDIO_SELECT := CONFIG_SND_SOC_SDM670=m endif +ifeq ($(call is-board-platform,msmnile),true) +AUDIO_SELECT := CONFIG_SND_SOC_SDM855=m +endif + AUDIO_CHIPSET := audio # Build/Package only in case of supported target -ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605),true) +ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605 msmnile),true) LOCAL_PATH := $(call my-dir) diff --git a/asoc/codecs/Kbuild b/asoc/codecs/Kbuild index 005a68cd4a9e..015164eb21e6 100644 --- a/asoc/codecs/Kbuild +++ b/asoc/codecs/Kbuild @@ -29,6 +29,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/sdm670autoconf.h endif + ifeq ($(CONFIG_ARCH_SDM855), y) + include $(AUDIO_ROOT)/config/sdm855auto.conf + export + INCS += -include $(AUDIO_ROOT)/config/sdm855autoconf.h + endif endif # As per target team, build is done as follows: @@ -156,8 +161,8 @@ endif ifeq ($(KERNEL_BUILD), 0) -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/soc/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/soc/Module.symvers endif ifeq ($(KERNEL_BUILD), 1) diff --git a/config/sdm855auto.conf b/config/sdm855auto.conf new file mode 100644 index 000000000000..5257790c6173 --- /dev/null +++ b/config/sdm855auto.conf @@ -0,0 +1,37 @@ +CONFIG_PINCTRL_WCD=m +CONFIG_AUDIO_EXT_CLK=m +CONFIG_SND_SOC_WCD9XXX_V2=m +CONFIG_SND_SOC_WCD_MBHC=m +CONFIG_SND_SOC_WSA881X=m +CONFIG_SND_SOC_WCD9360=m +CONFIG_SND_SOC_WCD_DSP_MGR=m +CONFIG_SND_SOC_WCD_SPI=m +CONFIG_SND_SOC_WCD_CPE=m +CONFIG_SOUNDWIRE_WCD_CTRL=m +CONFIG_WCD9XXX_CODEC_CORE=m +CONFIG_MSM_CDC_PINCTRL=m +CONFIG_MSM_QDSP6V2_CODECS=m +CONFIG_MSM_ULTRASOUND=m +CONFIG_MSM_QDSP6_APRV2_RPMSG=m +CONFIG_MSM_ADSP_LOADER=m +CONFIG_REGMAP_SWR=m +CONFIG_MSM_QDSP6_SSR=m +CONFIG_MSM_QDSP6_PDR=m +CONFIG_MSM_QDSP6_NOTIFIER=m +CONFIG_SND_SOC_MSM_HOSTLESS_PCM=m +CONFIG_SND_SOC_MSM_QDSP6V2_INTF=m +CONFIG_SND_SOC_SDM855=m +CONFIG_MSM_GLINK_SPI_XPRT=m +CONFIG_WCD_DSP_GLINK=m +CONFIG_SOUNDWIRE=m +CONFIG_SND_SOC_QDSP6V2=m +CONFIG_SND_SOC_WCD_MBHC_ADC=m +CONFIG_QTI_PP=m +CONFIG_SND_HWDEP=m +CONFIG_DTS_EAGLE=m +CONFIG_DOLBY_DS2=m +CONFIG_DOLBY_LICENSE=m +CONFIG_DTS_SRS_TM=m +CONFIG_SND_SOC_MSM_STUB=m +CONFIG_MSM_AVTIMER=m +CONFIG_SND_SOC_MSM_HDMI_CODEC_RX=m diff --git a/config/sdm855autoconf.h b/config/sdm855autoconf.h new file mode 100644 index 000000000000..593934adfee0 --- /dev/null +++ b/config/sdm855autoconf.h @@ -0,0 +1,49 @@ +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#define CONFIG_PINCTRL_WCD 1 +#define CONFIG_AUDIO_EXT_CLK 1 +#define CONFIG_SND_SOC_WCD9XXX_V2 1 +#define CONFIG_SND_SOC_WCD_MBHC 1 +#define CONFIG_SND_SOC_WSA881X 1 +#define CONFIG_SND_SOC_WCD9360 1 +#define CONFIG_SND_SOC_WCD_DSP_MGR 1 +#define CONFIG_SND_SOC_WCD_SPI 1 +#define CONFIG_SND_SOC_WCD_CPE 1 +#define CONFIG_WCD9XXX_CODEC_CORE 1 +#define CONFIG_MSM_CDC_PINCTRL 1 +#define CONFIG_MSM_QDSP6V2_CODECS 1 +#define CONFIG_MSM_ULTRASOUND 1 +#define CONFIG_MSM_QDSP6_APRV2_RPMSG 1 +#define CONFIG_SND_SOC_MSM_QDSP6V2_INTF 1 +#define CONFIG_MSM_ADSP_LOADER 1 +#define CONFIG_REGMAP_SWR 1 +#define CONFIG_MSM_QDSP6_SSR 1 +#define CONFIG_MSM_QDSP6_PDR 1 +#define CONFIG_MSM_QDSP6_NOTIFIER 1 +#define CONFIG_SND_SOC_MSM_HOSTLESS_PCM 1 +#define CONFIG_SND_SOC_SDM855 1 +#define CONFIG_MSM_GLINK_SPI_XPRT 1 +#define CONFIG_WCD_DSP_GLINK 1 +#define CONFIG_SOUNDWIRE 1 +#define CONFIG_SOUNDWIRE_WCD_CTRL 1 +#define CONFIG_SND_SOC_WCD_MBHC_ADC 1 +#define CONFIG_SND_SOC_QDSP6V2 1 +#define CONFIG_QTI_PP 1 +#define CONFIG_SND_HWDEP 1 +#define CONFIG_DTS_EAGLE 1 +#define CONFIG_DOLBY_DS2 1 +#define CONFIG_DOLBY_LICENSE 1 +#define CONFIG_DTS_SRS_TM 1 +#define CONFIG_SND_SOC_MSM_STUB 1 +#define CONFIG_MSM_AVTIMER 1 +#define CONFIG_SND_SOC_MSM_HDMI_CODEC_RX 1 diff --git a/dsp/Android.mk b/dsp/Android.mk index 98f865b8a96f..cad30c8c9306 100644 --- a/dsp/Android.mk +++ b/dsp/Android.mk @@ -11,9 +11,13 @@ ifeq ($(call is-board-platform-in-list,msm8953 sdm670 qcs605),true) AUDIO_SELECT := CONFIG_SND_SOC_SDM670=m endif +ifeq ($(call is-board-platform,msmnile),true) +AUDIO_SELECT := CONFIG_SND_SOC_SDM855=m +endif + AUDIO_CHIPSET := audio # Build/Package only in case of supported target -ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605),true) +ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605 msmnile),true) LOCAL_PATH := $(call my-dir) diff --git a/dsp/Kbuild b/dsp/Kbuild index 73dcb2ae330b..2bf3b26a99cd 100644 --- a/dsp/Kbuild +++ b/dsp/Kbuild @@ -29,6 +29,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/sdm670autoconf.h endif + ifeq ($(CONFIG_ARCH_SDM855), y) + include $(AUDIO_ROOT)/config/sdm855auto.conf + export + INCS += -include $(AUDIO_ROOT)/config/sdm855autoconf.h + endif endif @@ -141,7 +146,7 @@ CDEFINES += -DMULTI_IF_NAME=\"$(CHIP_NAME)\" endif ifeq ($(KERNEL_BUILD), 0) -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/ipc/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/ipc/Module.symvers endif ifeq ($(KERNEL_BUILD), 1) diff --git a/dsp/codecs/Android.mk b/dsp/codecs/Android.mk index 984a5139c94c..50ec167bbdd7 100644 --- a/dsp/codecs/Android.mk +++ b/dsp/codecs/Android.mk @@ -11,9 +11,13 @@ ifeq ($(call is-board-platform-in-list,msm8953 sdm670 qcs605),true) AUDIO_SELECT := CONFIG_SND_SOC_SDM670=m endif +ifeq ($(call is-board-platform,msmnile),true) +AUDIO_SELECT := CONFIG_SND_SOC_SDM855=m +endif + AUDIO_CHIPSET := audio # Build/Package only in case of supported target -ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605),true) +ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605 msmnile),true) LOCAL_PATH := $(call my-dir) diff --git a/dsp/codecs/Kbuild b/dsp/codecs/Kbuild index 34d39ad06d23..0890920842d8 100644 --- a/dsp/codecs/Kbuild +++ b/dsp/codecs/Kbuild @@ -30,6 +30,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/sdm670autoconf.h endif + ifeq ($(CONFIG_ARCH_SDM855), y) + include $(AUDIO_ROOT)/config/sdm855auto.conf + export + INCS += -include $(AUDIO_ROOT)/config/sdm855autoconf.h + endif endif # As per target team, build is done as follows: @@ -121,8 +126,8 @@ EXTRA_CFLAGS += -Wheader-guard endif ifeq ($(KERNEL_BUILD), 0) -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/asoc/Module.symvers endif # Module information used by KBuild framework diff --git a/ipc/Android.mk b/ipc/Android.mk index b7908dce51c3..e6ad34678180 100644 --- a/ipc/Android.mk +++ b/ipc/Android.mk @@ -11,9 +11,13 @@ ifeq ($(call is-board-platform-in-list,msm8953 sdm670 qcs605),true) AUDIO_SELECT := CONFIG_SND_SOC_SDM670=m endif +ifeq ($(call is-board-platform,msmnile),true) +AUDIO_SELECT := CONFIG_SND_SOC_SDM855=m +endif + AUDIO_CHIPSET := audio # Build/Package only in case of supported target -ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605),true) +ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605 msmnile),true) LOCAL_PATH := $(call my-dir) diff --git a/ipc/Kbuild b/ipc/Kbuild index 8730156756a5..b3a70601a13e 100644 --- a/ipc/Kbuild +++ b/ipc/Kbuild @@ -16,6 +16,9 @@ endif ifeq ($(CONFIG_ARCH_SDM670), y) TARGET_KERNEL_VERSION := 4.9 endif +ifeq ($(CONFIG_ARCH_SDM855), y) + TARGET_KERNEL_VERSION := 4.14 +endif KDIR := $(TOP)/kernel/msm-$(TARGET_KERNEL_VERSION) @@ -39,6 +42,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/sdm670autoconf.h endif + ifeq ($(CONFIG_ARCH_SDM855), y) + include $(AUDIO_ROOT)/config/sdm855auto.conf + export + INCS += -include $(AUDIO_ROOT)/config/sdm855autoconf.h + endif endif # As per target team, build is done as follows: @@ -106,7 +114,7 @@ KBUILD_CPPFLAGS += $(CDEFINES) ifeq ($(KERNEL_BUILD), 0) HEADER_INSTALL_DIR := $(TOP)/kernel/msm-$(TARGET_KERNEL_VERSION)/scripts -UAPI_OUT := $(OUT)/obj/vendor/qcom/opensource/audio-kernel/include +UAPI_OUT := $(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/include $(shell $(HEADER_INSTALL_DIR)/headers_install.sh $(UAPI_OUT)/linux/ $(AUDIO_ROOT)/include/uapi/linux/ avtimer.h;) $(shell $(HEADER_INSTALL_DIR)/headers_install.sh $(UAPI_OUT)/linux/ $(AUDIO_ROOT)/include/uapi/linux/ msm_audio.h;) $(shell $(HEADER_INSTALL_DIR)/headers_install.sh $(UAPI_OUT)/linux/ $(AUDIO_ROOT)/include/uapi/linux/ msm_audio_aac.h;) @@ -134,7 +142,7 @@ $(shell $(HEADER_INSTALL_DIR)/headers_install.sh $(UAPI_OUT)/sound/ $(AUDIO_ROOT $(shell $(HEADER_INSTALL_DIR)/headers_install.sh $(UAPI_OUT)/sound/ $(AUDIO_ROOT)/include/uapi/sound/ voice_params.h;) $(shell $(HEADER_INSTALL_DIR)/headers_install.sh $(UAPI_OUT)/sound/ $(AUDIO_ROOT)/include/uapi/sound/ wcd-dsp-glink.h;) -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers endif diff --git a/soc/Android.mk b/soc/Android.mk index 1c256fefc796..fa2569a318a7 100644 --- a/soc/Android.mk +++ b/soc/Android.mk @@ -11,9 +11,13 @@ ifeq ($(call is-board-platform-in-list,msm8953 sdm670 qcs605),true) AUDIO_SELECT := CONFIG_SND_SOC_SDM670=m endif +ifeq ($(call is-board-platform,msmnile),true) +AUDIO_SELECT := CONFIG_SND_SOC_SDM855=m +endif + AUDIO_CHIPSET := audio # Build/Package only in case of supported target -ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605),true) +ifeq ($(call is-board-platform-in-list,msm8953 sdm845 sdm670 qcs605 msmnile),true) LOCAL_PATH := $(call my-dir) diff --git a/soc/Kbuild b/soc/Kbuild index 29f69d578e92..263166745c2a 100644 --- a/soc/Kbuild +++ b/soc/Kbuild @@ -29,6 +29,11 @@ ifeq ($(KERNEL_BUILD), 0) export INCS += -include $(AUDIO_ROOT)/config/sdm670autoconf.h endif + ifeq ($(CONFIG_ARCH_SDM855), y) + include $(AUDIO_ROOT)/config/sdm855auto.conf + export + INCS += -include $(AUDIO_ROOT)/config/sdm855autoconf.h + endif endif # As per target team, build is done as follows: @@ -98,7 +103,7 @@ CDEFINES += -DANI_LITTLE_BYTE_ENDIAN \ KBUILD_CPPFLAGS += $(CDEFINES) ifeq ($(KERNEL_BUILD), 0) -KBUILD_EXTRA_SYMBOLS +=$(OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers +KBUILD_EXTRA_SYMBOLS +=$(PRODUCT_OUT)/obj/vendor/qcom/opensource/audio-kernel/dsp/Module.symvers endif # Currently, for versions of gcc which support it, the kernel Makefile