Browse Source

update 3.12.x kernel to 3.12.33

Add latest changes to raspberry-pi support patch.
Add rpi-proto driver patch.
Waldemar Brodkorb 10 years ago
parent
commit
7868376f50
33 changed files with 471 additions and 271 deletions
  1. 3 3
      mk/kernel-ver.mk
  2. 226 0
      target/arm/raspberry-pi/patches/3.12.33/0001-add-support-for-rpi-proto-driver.patch
  3. 53 0
      target/arm/raspberry-pi/patches/3.12.33/0002-enable-MMAP-by-default-allow-overide-via-use_mmap.patch
  4. 186 265
      target/arm/raspberry-pi/patches/3.12.33/raspberry-pi.patch
  5. 2 2
      target/config/Config.in.kernelversion.choice
  6. 1 1
      target/config/Config.in.kernelversion.default
  7. 0 0
      target/linux/patches/3.12.33/bsd-compatibility.patch
  8. 0 0
      target/linux/patches/3.12.33/cleankernel.patch
  9. 0 0
      target/linux/patches/3.12.33/defaults.patch
  10. 0 0
      target/linux/patches/3.12.33/disable-netfilter.patch
  11. 0 0
      target/linux/patches/3.12.33/export-symbol-for-exmap.patch
  12. 0 0
      target/linux/patches/3.12.33/gemalto.patch
  13. 0 0
      target/linux/patches/3.12.33/lemote-rfkill.patch
  14. 0 0
      target/linux/patches/3.12.33/microblaze-ethernet.patch
  15. 0 0
      target/linux/patches/3.12.33/microblaze-setup.patch
  16. 0 0
      target/linux/patches/3.12.33/mips-lzo-fix.patch
  17. 0 0
      target/linux/patches/3.12.33/mkpiggy.patch
  18. 0 0
      target/linux/patches/3.12.33/mtd-rootfs.patch
  19. 0 0
      target/linux/patches/3.12.33/non-static.patch
  20. 0 0
      target/linux/patches/3.12.33/patch-yaffs2
  21. 0 0
      target/linux/patches/3.12.33/ppc64-missing-zlib.patch
  22. 0 0
      target/linux/patches/3.12.33/relocs.patch
  23. 0 0
      target/linux/patches/3.12.33/sgidefs.patch
  24. 0 0
      target/linux/patches/3.12.33/sortext.patch
  25. 0 0
      target/linux/patches/3.12.33/startup.patch
  26. 0 0
      target/linux/patches/3.12.33/tcp-fastopen.patch
  27. 0 0
      target/linux/patches/3.12.33/usb-defaults-off.patch
  28. 0 0
      target/linux/patches/3.12.33/vga-cons-default-off.patch
  29. 0 0
      target/linux/patches/3.12.33/wlan-cf.patch
  30. 0 0
      target/linux/patches/3.12.33/xargs.patch
  31. 0 0
      target/linux/patches/3.12.33/zlib-inflate.patch
  32. 0 0
      target/mips/mikrotik-rb532/patches/3.12.33/rb532-cfgfs.patch
  33. 0 0
      target/mips/mikrotik-rb532/patches/3.12.33/rb532-pci.patch

+ 3 - 3
mk/kernel-ver.mk

@@ -10,11 +10,11 @@ KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_MD5SUM:=		cb00fadd0a720cc2d1690792e72e0134
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_12_27),y)
-KERNEL_VERSION:=	3.12.27
+ifeq ($(ADK_KERNEL_VERSION_3_12_33),y)
+KERNEL_VERSION:=	3.12.33
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		02801cc33702ff165c2cd6d0fcf3df34
+KERNEL_MD5SUM:=		7048cce0d24f784595b96f9d1e14a6ba
 endif
 ifeq ($(ADK_KERNEL_VERSION_3_10_53),y)
 KERNEL_VERSION:=	3.10.53

+ 226 - 0
target/arm/raspberry-pi/patches/3.12.33/0001-add-support-for-rpi-proto-driver.patch

@@ -0,0 +1,226 @@
+From 70449ef0fb20c168dd341e9bd02dd1929554971c Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbrodkorb@conet.de>
+Date: Wed, 29 Oct 2014 16:30:53 +0100
+Subject: [PATCH 1/2] add support for rpi-proto driver
+
+Forward port of 3.10.x driver from https://github.com/koalo
+We are using a custom board and would like to use rpi 3.12.x
+kernel. Patch works fine for our embedded system.
+
+Signed-off-by: Waldemar Brodkorb <wbrodkorb@conet.de>
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ arch/arm/mach-bcm2708/bcm2708.c |   17 +++++
+ sound/soc/bcm/Kconfig           |    8 +++
+ sound/soc/bcm/Makefile          |    2 +
+ sound/soc/bcm/rpi-proto.c       |  130 +++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 157 insertions(+)
+ create mode 100644 sound/soc/bcm/rpi-proto.c
+
+diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
+index c1a5943..0a0bb05 100644
+--- a/arch/arm/mach-bcm2708/bcm2708.c
++++ b/arch/arm/mach-bcm2708/bcm2708.c
+@@ -754,6 +754,19 @@ static struct i2c_board_info __initdata snd_pcm512x_i2c_devices[] = {
+ };
+ #endif
+ 
++#ifdef CONFIG_SND_BCM2708_SOC_RPI_CODEC_PROTO_MODULE
++static struct platform_device snd_rpi_proto_device = {
++        .name = "snd-rpi-proto",
++        .id = 0,
++        .num_resources = 0,
++};
++static struct i2c_board_info __initdata snd_rpi_proto_i2c_devices[] = {
++        {
++                I2C_BOARD_INFO("wm8731", 0x1a)
++        },
++};
++#endif
++
+ int __init bcm_register_device(struct platform_device *pdev)
+ {
+ 	int ret;
+@@ -923,6 +936,10 @@ void __init bcm2708_init(void)
+         bcm_register_device(&snd_rpi_iqaudio_dac_device);
+         i2c_register_board_info(1, snd_pcm512x_i2c_devices, ARRAY_SIZE(snd_pcm512x_i2c_devices));
+ #endif
++#if defined(CONFIG_SND_BCM2708_SOC_RPI_CODEC_PROTO_MODULE)
++	bcm_register_device(&snd_rpi_proto_device);
++	i2c_register_board_info(1, snd_rpi_proto_i2c_devices, ARRAY_SIZE(snd_rpi_proto_i2c_devices));
++#endif
+ 
+ 
+ 	for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
+diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
+index 301f758..bfe382a 100644
+--- a/sound/soc/bcm/Kconfig
++++ b/sound/soc/bcm/Kconfig
+@@ -50,3 +50,11 @@ config SND_BCM2708_SOC_IQAUDIO_DAC
+ 	select SND_SOC_PCM512x
+ 	help
+ 	  Say Y or M if you want to add support for IQaudIO-DAC.
++
++config SND_BCM2708_SOC_RPI_CODEC_PROTO
++	tristate "Support for Audio Codec Board - PROTO (WM8731)"
++	depends on SND_BCM2708_SOC_I2S
++	select SND_SOC_WM8731
++	help
++	  Say Y if you want to add support for Audio Codec Board -
++	  PROTO (WM8731)
+diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
+index 8b5e8bb..d1bf274 100644
+--- a/sound/soc/bcm/Makefile
++++ b/sound/soc/bcm/Makefile
+@@ -10,6 +10,7 @@ snd-soc-hifiberry-digi-objs := hifiberry_digi.o
+ snd-soc-hifiberry-amp-objs := hifiberry_amp.o
+ snd-soc-rpi-dac-objs := rpi-dac.o
+ snd-soc-iqaudio-dac-objs := iqaudio-dac.o
++snd-soc-rpi-proto-objs := rpi-proto.o
+ 
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += snd-soc-hifiberry-dacplus.o
+@@ -17,3 +18,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
+ obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o
++obj-$(CONFIG_SND_BCM2708_SOC_RPI_CODEC_PROTO) += snd-soc-rpi-proto.o
+diff --git a/sound/soc/bcm/rpi-proto.c b/sound/soc/bcm/rpi-proto.c
+new file mode 100644
+index 0000000..70b0166
+--- /dev/null
++++ b/sound/soc/bcm/rpi-proto.c
+@@ -0,0 +1,130 @@
++/*
++ * ASoC driver for PROTO AudioCODEC (with a WM8731)
++ * connected to a Raspberry Pi
++ *
++ * Author:      Florian Meier, <koalo@koalo.de>
++ *	      Copyright 2013
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/module.h>
++#include <linux/platform_device.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/jack.h>
++
++#include "../codecs/wm8731.h"
++
++static const unsigned int wm8731_rates_12288000[] = {
++	8000, 32000, 48000, 96000,
++};
++
++static struct snd_pcm_hw_constraint_list wm8731_constraints_12288000 = {
++	.list = wm8731_rates_12288000,
++	.count = ARRAY_SIZE(wm8731_rates_12288000),
++};
++
++static int snd_rpi_proto_startup(struct snd_pcm_substream *substream)
++{
++	/* Setup constraints, because there is a 12.288 MHz XTAL on the board */
++	snd_pcm_hw_constraint_list(substream->runtime, 0,
++				SNDRV_PCM_HW_PARAM_RATE,
++				&wm8731_constraints_12288000);
++	return 0;
++}
++
++static int snd_rpi_proto_hw_params(struct snd_pcm_substream *substream,
++				       struct snd_pcm_hw_params *params)
++{
++	struct snd_soc_pcm_runtime *rtd = substream->private_data;
++	struct snd_soc_dai *codec_dai = rtd->codec_dai;
++	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
++	int sysclk = 12288000; /* This is fixed on this board */
++
++	/* Set proto bclk */
++	int ret = snd_soc_dai_set_bclk_ratio(cpu_dai,32*2);
++	if (ret < 0){
++		dev_err(substream->pcm->dev,
++				"Failed to set BCLK ratio %d\n", ret);
++		return ret;
++	}
++
++	/* Set proto sysclk */
++	ret = snd_soc_dai_set_sysclk(codec_dai, WM8731_SYSCLK_XTAL,
++			sysclk, SND_SOC_CLOCK_IN);
++	if (ret < 0) {
++		dev_err(substream->pcm->dev,
++				"Failed to set WM8731 SYSCLK: %d\n", ret);
++		return ret;
++	}
++
++	return 0;
++}
++
++/* machine stream operations */
++static struct snd_soc_ops snd_rpi_proto_ops = {
++	.startup = snd_rpi_proto_startup,
++	.hw_params = snd_rpi_proto_hw_params,
++};
++
++static struct snd_soc_dai_link snd_rpi_proto_dai[] = {
++{
++	.name		= "WM8731",
++	.stream_name	= "WM8731 HiFi",
++	.cpu_dai_name	= "bcm2708-i2s.0",
++	.codec_dai_name	= "wm8731-hifi",
++	.platform_name	= "bcm2708-i2s.0",
++	.codec_name	= "wm8731.1-001a",
++	.dai_fmt	= SND_SOC_DAIFMT_I2S
++				| SND_SOC_DAIFMT_NB_NF
++				| SND_SOC_DAIFMT_CBM_CFM,
++	.ops		= &snd_rpi_proto_ops,
++},
++};
++
++/* audio machine driver */
++static struct snd_soc_card snd_rpi_proto = {
++	.name		= "snd_rpi_proto",
++	.dai_link	= snd_rpi_proto_dai,
++	.num_links	= ARRAY_SIZE(snd_rpi_proto_dai),
++};
++
++static int snd_rpi_proto_probe(struct platform_device *pdev)
++{
++	int ret = 0;
++
++	snd_rpi_proto.dev = &pdev->dev;
++	ret = snd_soc_register_card(&snd_rpi_proto);
++	if (ret) {
++		dev_err(&pdev->dev,
++				"snd_soc_register_card() failed: %d\n", ret);
++	}
++
++	return ret;
++}
++
++
++static int snd_rpi_proto_remove(struct platform_device *pdev)
++{
++	return snd_soc_unregister_card(&snd_rpi_proto);
++}
++
++static struct platform_driver snd_rpi_proto_driver = {
++	.driver = {
++		.name   = "snd-rpi-proto",
++		.owner  = THIS_MODULE,
++	},
++	.probe	  = snd_rpi_proto_probe,
++	.remove	 = snd_rpi_proto_remove,
++};
++
++module_platform_driver(snd_rpi_proto_driver);
++
++MODULE_AUTHOR("Florian Meier");
++MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)");
++MODULE_LICENSE("GPL");
+-- 
+1.7.10.4
+

+ 53 - 0
target/arm/raspberry-pi/patches/3.12.33/0002-enable-MMAP-by-default-allow-overide-via-use_mmap.patch

@@ -0,0 +1,53 @@
+From f1290350dc2cc8defb2d613a32f1a7bd4400de65 Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbrodkorb@conet.de>
+Date: Fri, 28 Nov 2014 16:18:36 +0100
+Subject: [PATCH 2/2] enable MMAP by default, allow overide via use_mmap
+
+Add a bool module parameter to control availability of MMAP
+in the driver.
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ sound/soc/bcm/bcm2708-i2s.c |   12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/bcm/bcm2708-i2s.c b/sound/soc/bcm/bcm2708-i2s.c
+index 3fcb740..ddf9796 100644
+--- a/sound/soc/bcm/bcm2708-i2s.c
++++ b/sound/soc/bcm/bcm2708-i2s.c
+@@ -171,6 +171,11 @@ static const unsigned int bcm2708_clk_freq[BCM2708_CLK_SRC_HDMI+1] = {
+ /* I2S pin configuration */
+ static int bcm2708_i2s_gpio=BCM2708_I2S_GPIO_AUTO;
+ 
++static bool use_mmap = 1;
++module_param(use_mmap, bool, S_IRUGO);
++MODULE_PARM_DESC(use_mmap, "Use MMAP");
++
++
+ /* General device struct */
+ struct bcm2708_i2s_dev {
+ 	struct device				*dev;
+@@ -870,7 +875,7 @@ static const struct snd_soc_component_driver bcm2708_i2s_component = {
+ 	.name		= "bcm2708-i2s-comp",
+ };
+ 
+-static const struct snd_pcm_hardware bcm2708_pcm_hardware = {
++static struct snd_pcm_hardware bcm2708_pcm_hardware = {
+ 	.info			= SNDRV_PCM_INFO_INTERLEAVED |
+ 				  SNDRV_PCM_INFO_JOINT_DUPLEX,
+ 	.formats		= SNDRV_PCM_FMTBIT_S16_LE |
+@@ -962,6 +967,11 @@ static int bcm2708_i2s_probe(struct platform_device *pdev)
+ 		return ret;
+ 	}
+ 
++	if (use_mmap) {
++		bcm2708_pcm_hardware.info |= SNDRV_PCM_INFO_MMAP;
++		bcm2708_pcm_hardware.info |= SNDRV_PCM_INFO_MMAP_VALID;
++	}
++
+ 	ret = snd_dmaengine_pcm_register(&pdev->dev,
+ 				&bcm2708_dmaengine_pcm_config,
+ 				SND_DMAENGINE_PCM_FLAG_COMPAT);
+-- 
+1.7.10.4
+

File diff suppressed because it is too large
+ 186 - 265
target/arm/raspberry-pi/patches/3.12.33/raspberry-pi.patch


+ 2 - 2
target/config/Config.in.kernelversion.choice

@@ -18,8 +18,8 @@ config ADK_KERNEL_VERSION_3_14_22
 	boolean
 	select ADK_KERNEL_VERSION_3_14
 
-config ADK_KERNEL_VERSION_3_12_27
-	prompt "3.12.27"
+config ADK_KERNEL_VERSION_3_12_33
+	prompt "3.12.33"
 	depends on !ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
 	boolean

+ 1 - 1
target/config/Config.in.kernelversion.default

@@ -20,7 +20,7 @@ config ADK_KERNEL_VERSION
 	string
 	default "3.16.6" if ADK_KERNEL_VERSION_3_16_6
 	default "3.14.22" if ADK_KERNEL_VERSION_3_14_22
-	default "3.12.27" if ADK_KERNEL_VERSION_3_12_27
+	default "3.12.33" if ADK_KERNEL_VERSION_3_12_33
 	default "3.10.53" if ADK_KERNEL_VERSION_3_10_53
 	default "3.4.103" if ADK_KERNEL_VERSION_3_4_103
 	help

+ 0 - 0
target/linux/patches/3.12.27/bsd-compatibility.patch → target/linux/patches/3.12.33/bsd-compatibility.patch


+ 0 - 0
target/linux/patches/3.12.27/cleankernel.patch → target/linux/patches/3.12.33/cleankernel.patch


+ 0 - 0
target/linux/patches/3.12.27/defaults.patch → target/linux/patches/3.12.33/defaults.patch


+ 0 - 0
target/linux/patches/3.12.27/disable-netfilter.patch → target/linux/patches/3.12.33/disable-netfilter.patch


+ 0 - 0
target/linux/patches/3.12.27/export-symbol-for-exmap.patch → target/linux/patches/3.12.33/export-symbol-for-exmap.patch


+ 0 - 0
target/linux/patches/3.12.27/gemalto.patch → target/linux/patches/3.12.33/gemalto.patch


+ 0 - 0
target/linux/patches/3.12.27/lemote-rfkill.patch → target/linux/patches/3.12.33/lemote-rfkill.patch


+ 0 - 0
target/linux/patches/3.12.27/microblaze-ethernet.patch → target/linux/patches/3.12.33/microblaze-ethernet.patch


+ 0 - 0
target/linux/patches/3.12.27/microblaze-setup.patch → target/linux/patches/3.12.33/microblaze-setup.patch


+ 0 - 0
target/linux/patches/3.12.27/mips-lzo-fix.patch → target/linux/patches/3.12.33/mips-lzo-fix.patch


+ 0 - 0
target/linux/patches/3.12.27/mkpiggy.patch → target/linux/patches/3.12.33/mkpiggy.patch


+ 0 - 0
target/linux/patches/3.12.27/mtd-rootfs.patch → target/linux/patches/3.12.33/mtd-rootfs.patch


+ 0 - 0
target/linux/patches/3.12.27/non-static.patch → target/linux/patches/3.12.33/non-static.patch


+ 0 - 0
target/linux/patches/3.12.27/patch-yaffs2 → target/linux/patches/3.12.33/patch-yaffs2


+ 0 - 0
target/linux/patches/3.12.27/ppc64-missing-zlib.patch → target/linux/patches/3.12.33/ppc64-missing-zlib.patch


+ 0 - 0
target/linux/patches/3.12.27/relocs.patch → target/linux/patches/3.12.33/relocs.patch


+ 0 - 0
target/linux/patches/3.12.27/sgidefs.patch → target/linux/patches/3.12.33/sgidefs.patch


+ 0 - 0
target/linux/patches/3.12.27/sortext.patch → target/linux/patches/3.12.33/sortext.patch


+ 0 - 0
target/linux/patches/3.12.27/startup.patch → target/linux/patches/3.12.33/startup.patch


+ 0 - 0
target/linux/patches/3.12.27/tcp-fastopen.patch → target/linux/patches/3.12.33/tcp-fastopen.patch


+ 0 - 0
target/linux/patches/3.12.27/usb-defaults-off.patch → target/linux/patches/3.12.33/usb-defaults-off.patch


+ 0 - 0
target/linux/patches/3.12.27/vga-cons-default-off.patch → target/linux/patches/3.12.33/vga-cons-default-off.patch


+ 0 - 0
target/linux/patches/3.12.27/wlan-cf.patch → target/linux/patches/3.12.33/wlan-cf.patch


+ 0 - 0
target/linux/patches/3.12.27/xargs.patch → target/linux/patches/3.12.33/xargs.patch


+ 0 - 0
target/linux/patches/3.12.27/zlib-inflate.patch → target/linux/patches/3.12.33/zlib-inflate.patch


+ 0 - 0
target/mips/mikrotik-rb532/patches/3.12.27/rb532-cfgfs.patch → target/mips/mikrotik-rb532/patches/3.12.33/rb532-cfgfs.patch


+ 0 - 0
target/mips/mikrotik-rb532/patches/3.12.27/rb532-pci.patch → target/mips/mikrotik-rb532/patches/3.12.33/rb532-pci.patch


Some files were not shown because too many files changed in this diff