Browse Source

rework audio driver loading on rpi

seems that i2s driver does not behave correctly when builtin.
Add back driver modules for audio boards on rpi.
Waldemar Brodkorb 9 years ago
parent
commit
f061a04dd3

+ 44 - 0
mk/modules.mk

@@ -1747,3 +1747,47 @@ $(eval $(call KMOD_template,DRM_DW_HDMI_CEC,drm-dw-hdmi-cec,\
 	$(MODULES_DIR)/kernel/drivers/cec/cec-dev \
 	$(MODULES_DIR)/kernel/drivers/staging/imx-drm/dw-hdmi-cec \
 ,75))
+
+#
+# Sound
+#
+$(eval $(call KMOD_template,SND_SOC_WM8804,snd-soc-wm8804,\
+       $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-wm8804 \
+,55))
+
+$(eval $(call KMOD_template,SND_SOC_PCM5102A,snd-soc-pcm5102a,\
+       $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm5102a \
+,55))
+
+$(eval $(call KMOD_template,SND_SOC_PCM512x,snd-soc-pcm512x,\
+       $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm512x \
+,55))
+
+$(eval $(call KMOD_template,SND_SOC_PCM512x_I2C,snd-soc-pcm512x-i2c,\
+       $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm512x-i2c \
+,56))
+
+$(eval $(call KMOD_template,SND_SOC_PCM512x_SPI,snd-soc-pcm512x-spi,\
+       $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm512x-spi \
+,56))
+
+$(eval $(call KMOD_template,SND_BCM2708_SOC_I2S,snd-bcm2708-soc-i2s,\
+       $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-bcm2708-i2s \
+,60, kmod-snd-soc))
+
+$(eval $(call KMOD_template,SND_BCM2708_SOC_HIFIBERRY_DAC,snd-bcm2708-soc-hifiberry-dac,\
+       $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-hifiberry-dac \
+,65, kmod-snd-bcm2708-soc-i2s))
+
+$(eval $(call KMOD_template,SND_BCM2708_SOC_HIFIBERRY_DIGI,snd-bcm2708-soc-hifiberry-digi,\
+       $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-hifiberry-digi \
+,65, kmod-snd-bcm2708-soc-i2s))
+
+$(eval $(call KMOD_template,SND_BCM2708_SOC_RPI_DAC,snd-bcm2708-soc-rpi-dac,\
+       $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-rpi-dac \
+,65, kmod-snd-bcm2708-soc-i2s))
+
+$(eval $(call KMOD_template,SND_BCM2708_SOC_IQAUDIO_DAC,snd-bcm2708-soc-iqaudio-dac,\
+       $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-iqaudio-dac \
+,65, kmod-snd-bcm2708-soc-i2s))
+

+ 1 - 1
package/pulseaudio/Makefile

@@ -18,7 +18,7 @@ PKG_URL:=		http://www.freedesktop.org/wiki/Software/PulseAudio/
 PKG_SITES:=		http://freedesktop.org/software/pulseaudio/releases/
 PKG_OPTS:=		dev
 
-PKG_LIBC_DEPENDS:=	uclibc glibc
+PKG_LIBC_DEPENDS:=	uclibc-ng uclibc glibc
 
 include $(ADK_TOPDIR)/mk/package.mk
 

+ 2 - 2
target/arm/kernel/raspberry-pi

@@ -3,12 +3,12 @@ CONFIG_FIQ=y
 CONFIG_ARM_PATCH_PHYS_VIRT=y
 CONFIG_KUSER_HELPERS=y
 CONFIG_ARCH_MULTI_V6=y
+CONFIG_VFP=y
 CONFIG_ARCH_BCM2708=y
+CONFIG_ARCH_BCM2835=y
 CONFIG_MACH_BCM2708=y
-CONFIG_BCM2708_GPIO=y
 CONFIG_BCM2708_VCMEM=y
 CONFIG_BCM2708_DMAER=y
-CONFIG_VFP=y
 CONFIG_BCM2708_VCHIQ=y
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y

+ 25 - 17
target/linux/config/Config.in.audio

@@ -74,15 +74,25 @@ config ADK_KERNEL_SND_SOC_I2C_AND_SPI
 	boolean
 
 config ADK_KERNEL_SND_SOC_WM8804
-	boolean
+	tristate
 	select ADK_KERNEL_SND_SOC_I2C_AND_SPI
 
 config ADK_KERNEL_SND_SOC_PCM5102A
-	boolean
+	tristate
+	select ADK_KERNEL_SND_SOC_I2C_AND_SPI
+
+config ADK_KERNEL_SND_SOC_PCM512x
+	tristate
 	select ADK_KERNEL_SND_SOC_I2C_AND_SPI
 
 config ADK_KERNEL_SND_SOC_PCM512x_I2C
-	boolean
+	tristate
+	select ADK_KERNEL_SND_SOC_PCM512x
+	select ADK_KERNEL_SND_SOC_I2C_AND_SPI
+
+config ADK_KERNEL_SND_SOC_PCM512x_SPI
+	tristate
+	select ADK_KERNEL_SND_SOC_PCM512x
 	select ADK_KERNEL_SND_SOC_I2C_AND_SPI
 
 config ADK_KERNEL_SND_PCM_DMAENGINE
@@ -161,11 +171,13 @@ config ADK_KERNEL_SND_BCM2835
 	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default n
 
-config ADK_KERNEL_SND_BCM2835_SOC_I2S
-	boolean
+config ADK_KERNEL_SND_BCM2708_SOC_I2S
+	tristate
 	select ADK_KERNEL_SND
 	select ADK_KERNEL_SND_ARM
 	select ADK_KERNEL_SND_SOC
+	select ADK_KERNEL_SND_BCM2835
+	select ADK_KERNEL_DMA_BCM2835
 	select ADK_KERNEL_SND_DMAENGINE_PCM
 	select ADK_KERNEL_SND_SOC_GENERIC_DMAENGINE_PCM
 	select ADK_KERNEL_REGMAP_MMIO
@@ -174,35 +186,31 @@ config ADK_KERNEL_SND_BCM2835_SOC_I2S
 
 config ADK_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DAC
 	prompt "Raspberry PI hifiberry DAC"
-	boolean
-	select ADK_KERNEL_DMA_BCM2708
-	select ADK_KERNEL_SND_BCM2835_SOC_I2S
+	tristate
+	select ADK_KERNEL_SND_BCM2708_SOC_I2S
 	select ADK_KERNEL_SND_SOC_PCM5102A
 	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default n
 
 config ADK_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DIGI
 	prompt "Raspberry PI hifiberry DIGI"
-	boolean
-	select ADK_KERNEL_DMA_BCM2708
-	select ADK_KERNEL_SND_BCM2835_SOC_I2S
+	tristate
+	select ADK_KERNEL_SND_BCM2708_SOC_I2S
 	select ADK_KERNEL_SND_SOC_WM8804
 	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default n
 
 config ADK_KERNEL_SND_BCM2708_SOC_RPI_DAC
 	prompt "Raspberry PI RPI-DAC"
-	boolean
-	select ADK_KERNEL_DMA_BCM2708
-	select ADK_KERNEL_SND_BCM2835_SOC_I2S
+	tristate
+	select ADK_KERNEL_SND_BCM2708_SOC_I2S
 	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default n
 
 config ADK_KERNEL_SND_BCM2708_SOC_IQAUDIO_DAC
 	prompt "Raspberry PI IQAudio-DAC"
-	boolean
-	select ADK_KERNEL_DMA_BCM2708
-	select ADK_KERNEL_SND_BCM2835_SOC_I2S
+	tristate
+	select ADK_KERNEL_SND_BCM2708_SOC_I2S
 	select ADK_KERNEL_SND_SOC_PCM512x_I2C
 	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default n

+ 4 - 1
target/linux/config/Config.in.dma

@@ -1,9 +1,12 @@
 config ADK_KERNEL_DMADEVICES
 	boolean
 
-config ADK_KERNEL_DMA_BCM2708
+config ADK_KERNEL_DMA_BCM2835
         boolean
         select ADK_KERNEL_DMADEVICES
+	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default n
 
 config ADK_KERNEL_IMX_SDMA
 	boolean

+ 11 - 0
target/linux/config/Config.in.gpio

@@ -13,6 +13,16 @@ config ADK_KERNEL_GPIO_SYSFS
 config ADK_KERNEL_GPIO_GENERIC
 	boolean
 
+config ADK_KERNEL_BCM2708_GPIO
+	boolean
+	select ADK_KERNEL_GPIOLIB
+	select ADK_KERNEL_GPIO_SYSFS
+	select ADK_KERNEL_GPIO_GENERIC
+	select ADK_KERNEL_RESET_CONTROLLER
+	depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default n
+
 config ADK_KERNEL_GPIO_MXC
 	boolean
 	select ADK_KERNEL_GPIOLIB
@@ -20,5 +30,6 @@ config ADK_KERNEL_GPIO_MXC
 	select ADK_KERNEL_GPIO_GENERIC
 	select ADK_KERNEL_RESET_CONTROLLER
 	select ADK_KERNEL_RESET_GPIO
+	depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	default n

+ 1 - 1
target/linux/config/Config.in.i2c

@@ -7,7 +7,7 @@ config ADK_KERNEL_I2C
 config ADK_KERNEL_I2C_CHARDEV
  	tristate
 
-config ADK_KERNEL_I2C_BCM2708
+config ADK_KERNEL_I2C_BCM2835
 	prompt "I2C driver for Raspberry PI"
 	tristate
 	select ADK_KERNEL_I2C

+ 1 - 0
target/linux/config/Config.in.misc

@@ -31,6 +31,7 @@ source "target/linux/config/Config.in.leds"
 source "target/linux/config/Config.in.watchdog"
 source "target/linux/config/Config.in.i2c"
 source "target/linux/config/Config.in.spi"
+source "target/linux/config/Config.in.regmap"
 source "target/linux/config/Config.in.regulator"
 source "target/linux/config/Config.in.gpio"
 source "target/linux/config/Config.in.dma"

+ 25 - 0
target/linux/config/Config.in.regmap

@@ -0,0 +1,25 @@
+config ADK_KERNEL_REGMAP
+	boolean
+	select ADK_KERNEL_LZO_COMPRESS
+	select ADK_KERNEL_LZO_DECOMPRESS
+	default n
+
+config ADK_KERNEL_REGMAP_I2C
+	boolean
+	select ADK_KERNEL_REGMAP
+	default n
+
+config ADK_KERNEL_REGMAP_SPI
+	boolean
+	select ADK_KERNEL_REGMAP
+	default n
+
+config ADK_KERNEL_REGMAP_MMIO
+	boolean
+	select ADK_KERNEL_REGMAP
+	default n
+
+config ADK_KERNEL_REGMAP_IRQ
+	boolean
+	select ADK_KERNEL_REGMAP
+	default n

+ 0 - 25
target/linux/config/Config.in.regulator

@@ -37,28 +37,3 @@ config ADK_KERNEL_REGULATOR_PFUZE100
 	select ADK_KERNEL_REGULATOR
 	default n
 
-config ADK_KERNEL_REGMAP
-	boolean
-	select ADK_KERNEL_LZO_COMPRESS
-	select ADK_KERNEL_LZO_DECOMPRESS
-	default n
-
-config ADK_KERNEL_REGMAP_I2C
-	boolean
-	select ADK_KERNEL_REGMAP
-	default n
-
-config ADK_KERNEL_REGMAP_SPI
-	boolean
-	select ADK_KERNEL_REGMAP
-	default n
-
-config ADK_KERNEL_REGMAP_MMIO
-	boolean
-	select ADK_KERNEL_REGMAP
-	default n
-
-config ADK_KERNEL_REGMAP_IRQ
-	boolean
-	select ADK_KERNEL_REGMAP
-	default n

+ 1 - 1
target/linux/config/Config.in.spi

@@ -26,7 +26,7 @@ config ADK_KERNEL_SPI_PXA2XX
 	tristate
 	select ADK_KERNEL_SPI
 
-config ADK_KERNEL_SPI_BCM2708
+config ADK_KERNEL_SPI_BCM2835
 	prompt "SPI driver for Raspberry PI"
 	tristate
 	select ADK_KERNEL_SPI