kernel/sound: Add support for PCI HD Audio devices
[openwrt/staging/yousong.git] / package / kernel / linux / modules / sound.mk
index 494394603bedf21f5ba0ff80dc6e7c0a98ebe242..9bc7075b9db8d73924c082466a6b554b8a702bd9 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2012 OpenWrt.org
+# Copyright (C) 2006-2013 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -11,39 +11,37 @@ SOUND_MENU:=Sound Support
 SOUNDCORE_LOAD ?= \
        soundcore \
        snd \
-       snd-page-alloc \
        snd-hwdep \
        snd-seq-device \
        snd-rawmidi \
        snd-timer \
        snd-pcm \
        snd-mixer-oss \
-       snd-pcm-oss
+       snd-pcm-oss \
+       snd-compress
 
 SOUNDCORE_FILES ?= \
        $(LINUX_DIR)/sound/soundcore.ko \
        $(LINUX_DIR)/sound/core/snd.ko \
-       $(LINUX_DIR)/sound/core/snd-page-alloc.ko \
        $(LINUX_DIR)/sound/core/snd-hwdep.ko \
        $(LINUX_DIR)/sound/core/seq/snd-seq-device.ko \
        $(LINUX_DIR)/sound/core/snd-rawmidi.ko \
        $(LINUX_DIR)/sound/core/snd-timer.ko \
        $(LINUX_DIR)/sound/core/snd-pcm.ko \
        $(LINUX_DIR)/sound/core/oss/snd-mixer-oss.ko \
-       $(LINUX_DIR)/sound/core/oss/snd-pcm-oss.ko
+       $(LINUX_DIR)/sound/core/oss/snd-pcm-oss.ko \
+       $(LINUX_DIR)/sound/core/snd-compress.ko
 
-ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.3.0)),1)
 SOUNDCORE_LOAD += \
-       snd-compress
+       $(if $(CONFIG_SND_DMAENGINE_PCM),snd-pcm-dmaengine)
 
 SOUNDCORE_FILES += \
-       $(LINUX_DIR)/sound/core/snd-compress.ko
-endif
+       $(if $(CONFIG_SND_DMAENGINE_PCM),$(LINUX_DIR)/sound/core/snd-pcm-dmaengine.ko)
 
 define KernelPackage/sound-core
   SUBMENU:=$(SOUND_MENU)
   TITLE:=Sound support
-  DEPENDS:=@AUDIO_SUPPORT
+  DEPENDS:=@AUDIO_SUPPORT +kmod-input-core
   KCONFIG:= \
        CONFIG_SOUND \
        CONFIG_SND \
@@ -62,7 +60,6 @@ define KernelPackage/sound-core
        CONFIG_SND_COMPRESS_OFFLOAD
   FILES:=$(SOUNDCORE_FILES)
   AUTOLOAD:=$(call AutoLoad,30,$(SOUNDCORE_LOAD))
-  $(call AddDepends/input)
 endef
 
 define KernelPackage/sound-core/uml
@@ -102,6 +99,23 @@ endef
 $(eval $(call KernelPackage,ac97))
 
 
+define KernelPackage/sound-mpu401
+  TITLE:=MPU-401 uart driver
+  KCONFIG:=CONFIG_SND_MPU401_UART
+  FILES:= \
+       $(LINUX_DIR)/sound/drivers/mpu401/snd-mpu401-uart.ko
+  AUTOLOAD:=$(call AutoLoad,35,snd-mpu401-uart)
+  $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-mpu401/description
+ support for MIDI ports compatible with the Roland MPU-401
+ interface in UART mode.
+endef
+
+$(eval $(call KernelPackage,sound-mpu401))
+
+
 define KernelPackage/sound-seq
   TITLE:=Sequencer support
   FILES:= \
@@ -137,25 +151,26 @@ endef
 $(eval $(call KernelPackage,sound-i8x0))
 
 
-define KernelPackage/sound-cs5535audio
-  TITLE:=CS5535 PCI Controller
-  DEPENDS:=+kmod-ac97
-  KCONFIG:=CONFIG_SND_CS5535AUDIO
-  FILES:=$(LINUX_DIR)/sound/pci/cs5535audio/snd-cs5535audio.ko
-  AUTOLOAD:=$(call AutoLoad,36,snd-cs5535audio)
+define KernelPackage/sound-via82xx
+  TITLE:=VIA 82xx AC97 Controller
+  DEPENDS:=+kmod-ac97 +kmod-sound-mpu401
+  KCONFIG:=CONFIG_SND_VIA82XX
+  FILES:=$(LINUX_DIR)/sound/pci/snd-via82xx.ko
+  AUTOLOAD:=$(call AutoLoad,36,snd-via82xx)
   $(call AddDepends/sound)
 endef
 
-define KernelPackage/sound-cs5535audio/description
- support for the integrated AC97 sound device on olpc
+define KernelPackage/sound-via82xx/description
+ support for the integrated AC97 sound device on motherboards
+ with VIA chipsets.
 endef
 
-$(eval $(call KernelPackage,sound-cs5535audio))
+$(eval $(call KernelPackage,sound-via82xx))
 
 
 define KernelPackage/sound-soc-core
   TITLE:=SoC sound support
-  DEPENDS:=+kmod-regmap
+  DEPENDS:=+kmod-regmap +kmod-ac97
   KCONFIG:= \
        CONFIG_SND_SOC \
        CONFIG_SND_SOC_DMAENGINE_PCM=y \
@@ -180,6 +195,47 @@ endef
 $(eval $(call KernelPackage,sound-soc-ac97))
 
 
+define KernelPackage/sound-soc-imx
+  TITLE:=IMX SoC support
+  KCONFIG:=\
+       CONFIG_SND_IMX_SOC \
+       CONFIG_SND_SOC_IMX_AUDMUX \
+       CONFIG_SND_SOC_FSL_SSI \
+       CONFIG_SND_SOC_IMX_PCM_DMA
+  FILES:= \
+       $(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-audmux.ko \
+       $(LINUX_DIR)/sound/soc/fsl/snd-soc-fsl-ssi.ko \
+       $(LINUX_DIR)/sound/soc/fsl/imx-pcm-dma.ko
+  AUTOLOAD:=$(call AutoLoad,56,snd-soc-imx-audmux snd-soc-fsl-ssi snd-soc-imx-pcm)
+  DEPENDS:=@TARGET_imx6 +kmod-sound-soc-core
+  $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-imx/description
+ Support for i.MX6 Platform sound (ssi/audmux/pcm)
+endef
+
+$(eval $(call KernelPackage,sound-soc-imx))
+
+
+define KernelPackage/sound-soc-imx-sgtl5000
+  TITLE:=IMX SoC support for SGTL5000
+  KCONFIG:=CONFIG_SND_SOC_IMX_SGTL5000
+  FILES:=\
+       $(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko \
+       $(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-sgtl5000.ko
+  AUTOLOAD:=$(call AutoLoad,57,snd-soc-sgtl5000 snd-soc-imx-sgtl5000)
+  DEPENDS:=@TARGET_imx6 +kmod-sound-soc-imx
+  $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-imx-sgtl5000/description
+ Support for i.MX6 Platform sound SGTL5000 codec
+endef
+
+$(eval $(call KernelPackage,sound-soc-imx-sgtl5000))
+
+
 define KernelPackage/sound-soc-gw_avila
   TITLE:=Gateworks Avila SoC sound support
   KCONFIG:= \
@@ -200,16 +256,13 @@ $(eval $(call KernelPackage,sound-soc-gw_avila))
 
 
 define KernelPackage/pcspkr
-  DEPENDS:=@!TARGET_x86
+  DEPENDS:=@TARGET_x86 +kmod-input-core
   TITLE:=PC speaker support
   KCONFIG:= \
-       CONFIG_INPUT_PCSPKR \
        CONFIG_SND_PCSP
   FILES:= \
-       $(LINUX_DIR)/drivers/input/misc/pcspkr.ko \
        $(LINUX_DIR)/sound/drivers/pcsp/snd-pcsp.ko
-  AUTOLOAD:=$(call AutoLoad,50,pcspkr snd-pcsp)
-  $(call AddDepends/input)
+  AUTOLOAD:=$(call AutoLoad,50,snd-pcsp)
   $(call AddDepends/sound)
 endef
 
@@ -218,3 +271,249 @@ define KernelPackage/pcspkr/description
 endef
 
 $(eval $(call KernelPackage,pcspkr))
+
+define KernelPackage/sound-dummy
+  $(call AddDepends/sound)
+  TITLE:=Null sound output driver (sink)
+  KCONFIG:= \
+       CONFIG_SND_DUMMY
+  FILES:= \
+       $(LINUX_DIR)/sound/drivers/snd-dummy.ko
+  AUTOLOAD:=$(call AutoLoad,32,snd-dummy)
+endef
+
+define KernelPackage/sound_dummy/description
+ Dummy sound device for Alsa when no hardware present
+endef
+
+$(eval $(call KernelPackage,sound-dummy))
+
+define KernelPackage/sound-hda-core
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Sound Core Support
+  KCONFIG:= \
+       CONFIG_SND_HDA_CORE \
+       CONFIG_SND_HDA_HWDEP=y \
+       CONFIG_SND_HDA_RECONFIG=n \
+       CONFIG_SND_HDA_INPUT_BEEP=n \
+       CONFIG_SND_HDA_PATCH_LOADER=n \
+       CONFIG_SND_HDA_GENERIC
+  FILES:= \
+       $(LINUX_DIR)/sound/hda/snd-hda-core.ko \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec.ko \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-generic.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-core snd-hda-codec snd-hda-codec-generic)
+  $(call AddDepends/sound,kmod-regmap)
+endef
+
+define KernelPackage/sound-hda-core/description
+ Kernel modules for HD Audio sound support
+endef
+
+$(eval $(call KernelPackage,sound-hda-core))
+
+define KernelPackage/sound-hda-codec-realtek
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:= HD Audio Realtek Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_REALTEK
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-realtek.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-realtek)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-realtek/description
+ Kernel modules for Intel HDA Realtek codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-realtek))
+
+define KernelPackage/sound-hda-codec-cmedia
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio C-Media Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_CMEDIA
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cmedia.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cmedia)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-cmedia/description
+ Kernel modules for HD Audio C-Media codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-cmedia))
+
+define KernelPackage/sound-hda-codec-analog
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Analog Devices Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_ANALOG
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-analog.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-analog)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-analog/description
+ Kernel modules for HD Audio Analog Devices codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-analog))
+
+define KernelPackage/sound-hda-codec-idt
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Sigmatel IDT Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_SIGMATEL
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-idt.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-idt)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-idt/description
+ Kernel modules for HD Audio Sigmatel IDT codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-idt))
+
+define KernelPackage/sound-hda-codec-si3054
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Silicon Labs 3054 Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_SI3054
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-si3054.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-si3054)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-si3054/description
+ Kernel modules for HD Audio Silicon Labs 3054 codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-si3054))
+
+define KernelPackage/sound-hda-codec-cirrus
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Cirrus Logic Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_CIRRUS
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cirrus.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cirrus)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-cirrus/description
+ Kernel modules for HD Audio Cirrus Logic codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-cirrus))
+
+define KernelPackage/sound-hda-codec-ca0110
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Creative CA0110 Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_CA0110
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0110.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0110)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-ca0110/description
+ Kernel modules for HD Audio Creative CA0110 codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-ca0110))
+
+define KernelPackage/sound-hda-codec-ca0132
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Creative CA0132 Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_CA0132 \
+       CONFIG_SND_HDA_CODEC_CA0132_DSP=n
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0132.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0132)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-ca0132/description
+ Kernel modules for HD Audio Creative CA0132 codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-ca0132))
+
+define KernelPackage/sound-hda-codec-conexant
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Conexant Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_CONEXANT
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-conexant.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-conexant)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-conexant/description
+ Kernel modules for HD Audio Conexant codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-conexant))
+
+define KernelPackage/sound-hda-codec-via
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Via Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_VIA
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-via.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-via)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-via/description
+ Kernel modules for HD Audio VIA codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-via))
+
+define KernelPackage/sound-hda-codec-hdmi
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio HDMI/DisplayPort Codec
+  KCONFIG:= \
+       CONFIG_SND_HDA_CODEC_HDMI
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-hdmi.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-codec-hdmi)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-codec-hdmi/description
+ Kernel modules for HD Audio HDMI codec support
+endef
+
+$(eval $(call KernelPackage,sound-hda-codec-hdmi))
+
+define KernelPackage/sound-hda-intel
+  SUBMENU:=$(SOUND_MENU)
+  TITLE:=HD Audio Intel Driver
+  KCONFIG:= \
+       CONFIG_SOUND_PCI \
+       CONFIG_SND_HDA_INTEL
+  FILES:= \
+       $(LINUX_DIR)/sound/pci/hda/snd-hda-intel.ko
+  AUTOLOAD:=$(call AutoProbe,snd-hda-intel)
+  $(call AddDepends/sound,kmod-sound-hda-core)
+endef
+
+define KernelPackage/sound-hda-intel/description
+ Kernel modules for HD Audio Intel driver support
+endef
+
+$(eval $(call KernelPackage,sound-hda-intel))