Explorar el Código

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 hace 9 años
padre
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