diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index d6377736e5..888195510c 100644 --- a/projects/RPi/patches/linux/linux-01-RPi_support.patch +++ b/projects/RPi/patches/linux/linux-01-RPi_support.patch @@ -1,7 +1,7 @@ -From 0e8bd84a8406e37307c00a246c5a0f62aac6b8d3 Mon Sep 17 00:00:00 2001 +From 63b738ea521e2a159ecef0509b605121a18998bb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 001/149] Main bcm2708/bcm2709 linux port +Subject: [PATCH 001/162] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -7002,10 +7002,10 @@ index b5bedae..b0258e8 100644 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 347ffd7de4bb0ccd64731fb76814dd9e626bf1c5 Mon Sep 17 00:00:00 2001 +From 4b5a7293901e67cc3c674ba6f3677a0862d0b3f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 Oct 2014 18:50:05 +0100 -Subject: [PATCH 002/149] Add bcm2708_gpio driver +Subject: [PATCH 002/162] Add bcm2708_gpio driver Signed-off-by: popcornmix @@ -7635,10 +7635,10 @@ index 0000000..fb69624 + +#endif -From eb3917f2c39b485511607da826cd9dbba16751b8 Mon Sep 17 00:00:00 2001 +From eca451f7751e025cc7017f2c654fd6763cfa4ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 1 May 2015 19:11:03 +0200 -Subject: [PATCH 003/149] mailbox: bcm2708: Add bcm2708-vcio +Subject: [PATCH 003/162] mailbox: bcm2708: Add bcm2708-vcio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -8269,10 +8269,10 @@ index 0000000..cc284ed + +#endif -From dac4f2f5791de43cb28c829c03b74b03187b7535 Mon Sep 17 00:00:00 2001 +From f8878549c65e145ef2930571af6bd565da69e49c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 004/149] Add dwc_otg driver +Subject: [PATCH 004/162] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69546,10 +69546,10 @@ index 0000000..cdc9963 +test_main(); +0; -From cb7293f71c4de308f8d2f1dda81889fa1ccc5f70 Mon Sep 17 00:00:00 2001 +From b991965e5113586428c0bb167cea50ef04157ff5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:54:32 +0100 -Subject: [PATCH 005/149] bcm2708 watchdog driver +Subject: [PATCH 005/162] bcm2708 watchdog driver Signed-off-by: popcornmix --- @@ -69986,10 +69986,10 @@ index 0000000..8a27d68 +MODULE_ALIAS_MISCDEV(TEMP_MINOR); +MODULE_LICENSE("GPL"); -From 3f93f22131290ce805bd9fe0a2c23fc23e9d0d02 Mon Sep 17 00:00:00 2001 +From 0f74e77f6b74f7d67bad5e6d4a3da96c25d163f9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 006/149] bcm2708 framebuffer driver +Subject: [PATCH 006/162] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -73428,10 +73428,10 @@ index 3c14e43..7626beb6a 100644 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 -From d7b8efef115448b4899c4d3327cbdfed06144d29 Mon Sep 17 00:00:00 2001 +From 46ac294df1388e4670e62a89b001fd41d0c17c07 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 007/149] dmaengine: Add support for BCM2708 +Subject: [PATCH 007/162] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -75199,10 +75199,10 @@ index 0000000..2310e34 + +#endif /* _PLAT_BCM2708_DMA_H */ -From c5a2f57f382bb863ec39be702d5c7dd1abf43a1e Mon Sep 17 00:00:00 2001 +From 1477c7775b68f85a9226ea044b52a7f76a82537f Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 008/149] MMC: added alternative MMC driver +Subject: [PATCH 008/162] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77018,10 +77018,10 @@ index 0000000..b7c4883 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From 42f6bf501dfd96a293a001811c66f81a599a7c0a Mon Sep 17 00:00:00 2001 +From a546777dbd17651f5da9f7baba4f15070bf09cf6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 009/149] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 009/162] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -78791,10 +78791,10 @@ index 0000000..eef8a24 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From 4e1d2a7a36c3a6a50b8e3e180840f5de3c59dab9 Mon Sep 17 00:00:00 2001 +From 3f77139f143882d7cf9b6c8e633ff50f282810f0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 010/149] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 010/162] cma: Add vc_cma driver to enable use of CMA Signed-off-by: popcornmix @@ -80119,10 +80119,10 @@ index 0000000..5325832 + +#endif /* VC_CMA_H */ -From 0e75dc8f6ada5d524b64787a3f6a1f7774c19ad1 Mon Sep 17 00:00:00 2001 +From 7372cf60649d3a149f69923310c0278d72baccac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 011/149] bcm2708: alsa sound driver +Subject: [PATCH 011/162] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82964,10 +82964,10 @@ index 0000000..af3e6eb + +#endif // _VC_AUDIO_DEFS_H_ -From f99733b7c93f18f7bb2519462760a71817e2282c Mon Sep 17 00:00:00 2001 +From e544b75469dca2426a2b56bb7c095351ca63ae29 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 012/149] bcm2708 vchiq driver +Subject: [PATCH 012/162] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96221,10 +96221,10 @@ index 0000000..b6bfa21 + return vchiq_build_time; +} -From bb99de1085903aae1acd33f9333636668a2d0940 Mon Sep 17 00:00:00 2001 +From 6f44338ed5bacbbfbbe907bd704b676296570b92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 013/149] vc_mem: Add vc_mem driver +Subject: [PATCH 013/162] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -97230,10 +97230,10 @@ index 0000000..20a4753 + +#endif /* _VC_MEM_H */ -From 2835e674ab3568be62a2cd50e060f4172c6d7760 Mon Sep 17 00:00:00 2001 +From 9d253178cc48543cd74c0d45528c30320bc86279 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 014/149] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 014/162] vcsm: VideoCore shared memory service for BCM2835 Add experimental support for the VideoCore shared memory service. This allows user processes to allocate memory from VideoCore's @@ -101643,10 +101643,10 @@ index 0000000..0bfb42e +MODULE_DESCRIPTION("VideoCore SharedMemory Driver"); +MODULE_LICENSE("GPL v2"); -From d956b1bd6c339852f27e912d2e79ed1ae1f770d3 Mon Sep 17 00:00:00 2001 +From ba6e8ac7034a030ceac2310ce359f25755328b39 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:51:55 +0100 -Subject: [PATCH 015/149] Add hwrng (hardware random number generator) driver +Subject: [PATCH 015/162] Add hwrng (hardware random number generator) driver --- drivers/char/hw_random/Kconfig | 13 +++- @@ -101823,10 +101823,10 @@ index 0000000..340f004 +MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver"); +MODULE_LICENSE("GPL and additional rights"); -From 0a234b968ca8409fdf24ee38b84144ea6df901c1 Mon Sep 17 00:00:00 2001 +From 52633f1996a2aa8ba50f4e88cee330aacc50af5f Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 016/149] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 016/162] lirc: added support for RaspberryPi GPIO lirc_rpi: Use read_current_timer to determine transmitter delay. Thanks to jjmz and others See: https://github.com/raspberrypi/linux/issues/525 @@ -102679,10 +102679,10 @@ index 0000000..24563ec +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); -From 8aa5df1654dc0d99e6edaee56960a62a759642f6 Mon Sep 17 00:00:00 2001 +From d7169bd6f84e792920039373af9c66bf9018ca90 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 017/149] Add cpufreq driver +Subject: [PATCH 017/162] Add cpufreq driver Signed-off-by: popcornmix --- @@ -102955,10 +102955,10 @@ index 0000000..6735da9 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From a78e95402f25318bb6049c253a586bdabf0e3934 Mon Sep 17 00:00:00 2001 +From 04cc0b3f109587704270af2dc9f62793465cd5df Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 018/149] Added hwmon/thermal driver for reporting core +Subject: [PATCH 018/162] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -103255,10 +103255,10 @@ index 0000000..3bc80f1 + +module_platform_driver(bcm2835_thermal_driver); -From fe524efc70536aa67e3568f97bc373031e4de4ea Mon Sep 17 00:00:00 2001 +From 8376f6b64eadfbee3c91ed3ca68ad1246beb9cd6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:41:33 +0100 -Subject: [PATCH 019/149] Add Chris Boot's spi driver. +Subject: [PATCH 019/162] Add Chris Boot's spi driver. spi: bcm2708: add device tree support @@ -104170,10 +104170,10 @@ index 0000000..041b5e2 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From b42f499d093bb6ed2991c6f304338bff3a85b429 Mon Sep 17 00:00:00 2001 +From afb4f9980eff882d591c98e6686914ccb948bd2c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 020/149] Add Chris Boot's i2c driver +Subject: [PATCH 020/162] Add Chris Boot's i2c driver i2c-bcm2708: fixed baudrate @@ -104974,10 +104974,10 @@ index 0000000..8773203 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From 8e40d3346d2607cee13a9eee8c2357b1c0cdb48a Mon Sep 17 00:00:00 2001 +From c67e04753eab1139459e693fbbb42ff5820ef7ad Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 021/149] bcm2835: add v4l2 camera device +Subject: [PATCH 021/162] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -112304,10 +112304,10 @@ index 0000000..9d1d11e + +#endif /* MMAL_VCHIQ_H */ -From 7a4688d4481948917c7d09d4745c21c7f802da18 Mon Sep 17 00:00:00 2001 +From 95de9bd5d72a4c046799ce025a203d078254223c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Jan 2015 14:48:55 +0000 -Subject: [PATCH 022/149] scripts/dtc: Update to upstream version with overlay +Subject: [PATCH 022/162] scripts/dtc: Update to upstream version with overlay patches --- @@ -117520,10 +117520,10 @@ index 54d4e904..d644002 100644 -#define DTC_VERSION "DTC 1.4.0-dirty" +#define DTC_VERSION "DTC 1.4.1-g36c70742" -From e9e0f3cef41db19f29ab37a403feabe9f55f83fc Mon Sep 17 00:00:00 2001 +From 162273d9683af43ee8ae584f1bcd20ebb9c9bf7c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 023/149] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 023/162] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -118008,10 +118008,10 @@ index 0000000..3dff948 + return (($val eq 'y') || ($val eq '1')); +} -From 996a96ca5045f3ea6e39192d242062441c3c797b Mon Sep 17 00:00:00 2001 +From 6e4ae2ae95216ee3d9c14ee0d9ce62b83f7e6f3b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 024/149] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 024/162] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -118066,10 +118066,10 @@ index cde35c5d01..dd7fbfe 100644 pr_debug("Command line is: %s\n", (char*)data); -From 25f3e064afc8b7be40bc92af946b59bce9ed6c58 Mon Sep 17 00:00:00 2001 +From 11c0faab54b6bcd84dff496de3b6e35dc2f7d7c2 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 025/149] BCM2708: Add core Device Tree support +Subject: [PATCH 025/162] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -121946,10 +121946,10 @@ index 0000000..66a98f6 + }; +}; -From d4f6c4010632825e49b58d95db228b4ab394f3f0 Mon Sep 17 00:00:00 2001 +From b971282c62798d20d971aa59ac410d163cdfe8bf Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 026/149] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 026/162] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -122042,10 +122042,10 @@ index fb795c3..fa72af0 100644 #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From 5539b4d21d0d0485e548a1bd0bc259abc7403767 Mon Sep 17 00:00:00 2001 +From 2151dc8f57fbe0ab2ad577912bb530a02fb5b3ba Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 029/149] Speed up console framebuffer imageblit function +Subject: [PATCH 029/162] Speed up console framebuffer imageblit function Especially on platforms with a slower CPU but a relatively high framebuffer fill bandwidth, like current ARM devices, the existing @@ -122254,10 +122254,10 @@ index a2bb276..436494f 100644 start_index, pitch_index); } else -From 683a06a250e735c94ec3640d9288528ee50ddf16 Mon Sep 17 00:00:00 2001 +From 446d54e6fa7b5ff354bebad2e8713feec094a25c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 030/149] Allow mac address to be set in smsc95xx +Subject: [PATCH 030/162] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -122348,10 +122348,10 @@ index 26423ad..e29a323 100644 if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, dev->net->dev_addr) == 0) { -From 4f3ab22c324a811dda12f53cd9e77d3a32c3a113 Mon Sep 17 00:00:00 2001 +From f085809bff204c0dbfe613ab84db505b69dc4a84 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 031/149] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 031/162] enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as a module) 1-wire: Add support for configuring pin for w1-gpio kernel module @@ -122749,10 +122749,10 @@ index d58594a..feae942 100644 unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 853fe067aeff8a0be4027b63f50dd0478103f723 Mon Sep 17 00:00:00 2001 +From 6b9dbab245f2f6ab626907f0a949b578553b71f7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 033/149] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 033/162] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -122807,10 +122807,10 @@ index a04225d..a2ef8af 100644 /** -From 02f4298dead0071add7bb58678d7451bf06d4b7f Mon Sep 17 00:00:00 2001 +From 93ef33e355c635521a6108616087fa0da4b60568 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:33:38 +0100 -Subject: [PATCH 034/149] ASoC: Add support for BCM2708 +Subject: [PATCH 034/162] ASoC: Add support for BCM2708 This driver adds support for digital audio (I2S) for the BCM2708 SoC that is used by the @@ -123953,10 +123953,10 @@ index 0000000..6fdcbc1 + +#endif -From 9dca125b0468d40894de4138982400ba5b833e4d Mon Sep 17 00:00:00 2001 +From 4d971964566bacadd703f9fb1a443c64c28eee23 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 035/149] ASoC: Add support for PCM5102A codec +Subject: [PATCH 035/162] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -124081,10 +124081,10 @@ index 0000000..126f1e9 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 45a02391f0fa3d34235ff795c299638fbf3f5773 Mon Sep 17 00:00:00 2001 +From bde596cb66bc3992a9a3cee42e68104ab66a18ff Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:04:54 +0100 -Subject: [PATCH 036/149] BCM2708: Add I2S support to board file +Subject: [PATCH 036/162] BCM2708: Add I2S support to board file Adds the required initializations for I2S to the board file of mach-bcm2708. @@ -124173,10 +124173,10 @@ index a3b65dc..a515992 100644 for (i = 0; i <= 1; i++) { void __iomem *base; -From 19cea6e827bb706afe8bb57e43ee5f3fa7cd1731 Mon Sep 17 00:00:00 2001 +From 6d65c67c4eb121760f236e54545a1c2d685e92b8 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 037/149] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 037/162] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -124325,10 +124325,10 @@ index 0000000..4b70b45 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From 7528f3f5f51e0f304d5726a82dd9178f87b1ca41 Mon Sep 17 00:00:00 2001 +From 05616851fffbdedda80af077597a31e8d5925fc3 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:21:34 +0100 -Subject: [PATCH 038/149] BCM2708: Add HifiBerry DAC to board file +Subject: [PATCH 038/162] BCM2708: Add HifiBerry DAC to board file This adds the initalization of the HifiBerry DAC to the mach-bcm2708 board file. @@ -124376,10 +124376,10 @@ index 01f2de7..1d9b788 100644 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; -From 48355b1b1b0ae407d17524fb836fa61f2341d579 Mon Sep 17 00:00:00 2001 +From 819e10b72679216925752642cfce72b3c8a79d1d Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 6 Dec 2013 20:50:28 +0100 -Subject: [PATCH 039/149] ASoC: BCM2708: Add support for RPi-DAC +Subject: [PATCH 039/162] ASoC: BCM2708: Add support for RPi-DAC This adds a machine driver for the RPi-DAC. @@ -124674,10 +124674,10 @@ index 0000000..b4eaa44 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From ee415b9db413a155e99d81537a776b7becf60227 Mon Sep 17 00:00:00 2001 +From 8b0ecf0764b0de2e947d871b2e418a09aead205c Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 040/149] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 040/162] ASoC: wm8804: Implement MCLK configuration options, add 32bit support WM8804 can run with PLL frequencies of 256xfs and 128xfs for most sample rates. At 192kHz only 128xfs is supported. The existing driver selects 128xfs automatically for some lower samples rates. By using an @@ -124717,10 +124717,10 @@ index 1e403f6..d4efa85 100644 #define WM8804_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_64000 | \ -From 4e0d1e894adb9184eb45a7c343907df881e3a523 Mon Sep 17 00:00:00 2001 +From 6b4b396c00c6fe944b70174cb776adedc67cb456 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 041/149] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 041/162] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -124985,10 +124985,10 @@ index 0000000..92e9e46 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 5c4656d103da802e6d0412eb55c8dc9164935867 Mon Sep 17 00:00:00 2001 +From 1eb3c950fcff8c770e4080d697415126e10790ab Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:26:08 +0100 -Subject: [PATCH 042/149] BCM2708: Added support for HiFiBerry Digi board Board +Subject: [PATCH 042/162] BCM2708: Added support for HiFiBerry Digi board Board initalization by I2C Signed-off-by: Daniel Matuschek @@ -125035,10 +125035,10 @@ index 6d53beb..a062d7f 100644 bcm_register_device_dt(&snd_rpi_dac_device); bcm_register_device_dt(&snd_pcm1794a_codec_device); -From 87f8afdc7be60f059356680542fa556055434a0b Mon Sep 17 00:00:00 2001 +From 661cb2299f55c008af56199dc1aeb54329c1f254 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 043/149] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 043/162] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -125060,10 +125060,10 @@ index d4efa85..f3f26a2 100644 .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From 02e362cf47d55e3e6e075d14a6f5eda064e832a9 Mon Sep 17 00:00:00 2001 +From b1e71e2d853e5ac8bbca50657dac172931c79c23 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 044/149] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 044/162] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -125271,10 +125271,10 @@ index 0000000..aff7377 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 6ccb62cc7e401082561c12ed6258dc3382264875 Mon Sep 17 00:00:00 2001 +From 30f56ce767df188beee46f05360352ce21f4013c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 045/149] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 045/162] vmstat: Workaround for issue where dirty page count goes negative See: @@ -125301,10 +125301,10 @@ index 82e7db7..f87d16d 100644 static inline void __inc_zone_page_state(struct page *page, -From 7db38451aa2a58b2f7e9e9cd60842e5167732ba0 Mon Sep 17 00:00:00 2001 +From 866ebc9c8208d9fc5e2925b57b19e05597f59535 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 046/149] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 046/162] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -125340,10 +125340,10 @@ index bfbe1be..a738b25 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From ede6ae920d5614aeaca3793cab45e68d7a5667f4 Mon Sep 17 00:00:00 2001 +From cb3ad0970f6aa845e371419814328779f439906e Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 047/149] Added support for HiFiBerry DAC+ +Subject: [PATCH 047/162] Added support for HiFiBerry DAC+ The driver is based on the HiFiBerry DAC driver. However HiFiBerry DAC+ uses a different codec chip (PCM5122), therefore a new driver is necessary. @@ -125554,10 +125554,10 @@ index 0000000..c63387b +MODULE_DESCRIPTION("ASoC Driver for HiFiBerry DAC+"); +MODULE_LICENSE("GPL v2"); -From 7f32b28e3ecbddf73a8a2b849fe1950d1d3d6441 Mon Sep 17 00:00:00 2001 +From 84b9d85375cbc33751a5d7bfaa37fad89c4a1580 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 048/149] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 048/162] Added driver for HiFiBerry Amp amplifier add-on board The driver contains a low-level hardware driver for the TAS5713 and the drivers for the Raspberry Pi I2S subsystem. @@ -126426,10 +126426,10 @@ index 0000000..8f019e0 + +#endif /* _TAS5713_H */ -From 5342cc918f42da5b299e861b708d0986f42f4c81 Mon Sep 17 00:00:00 2001 +From 6e9a21a0409722191171e96f6c8297d9ccb1b62a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Apr 2015 19:14:18 +0100 -Subject: [PATCH 049/149] bcm2708: Allow option card devices to be configured +Subject: [PATCH 049/162] bcm2708: Allow option card devices to be configured via DT If the kernel is built with Device Tree support, and if a DT blob @@ -126454,10 +126454,10 @@ index 03fa1cb..c816526 100644 static struct platform_driver bcm2835_i2s_driver = { .probe = bcm2835_i2s_probe, -From c2db87de57679d93a7b54ded9f2ad2c29b449c58 Mon Sep 17 00:00:00 2001 +From 53be0a63c8212baac6b8c3f19276163c5cb8abe2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 18:45:39 +0100 -Subject: [PATCH 050/149] Adding Device Tree support for some RPi audio cards +Subject: [PATCH 050/162] Adding Device Tree support for some RPi audio cards --- arch/arm/mach-bcm2709/bcm2709.c | 143 ++++++++++++++++++++++++++++++++++++++ @@ -126820,10 +126820,10 @@ index 126f1e9..7c6598e 100644 }; -From decbd54190fce2736e5f8614c974f6d236eebd15 Mon Sep 17 00:00:00 2001 +From 6ce245e7dce51837a2a80510d9b489b2f3bceb69 Mon Sep 17 00:00:00 2001 From: Timo Kokkonen Date: Wed, 29 Oct 2014 23:30:30 -0700 -Subject: [PATCH 051/149] Added support to reserve/enable a GPIO pin to be used +Subject: [PATCH 051/162] Added support to reserve/enable a GPIO pin to be used from pps-gpio module (LinuxPPS). Enable PPS modules in default config for RPi. @@ -126959,10 +126959,10 @@ index 57e1f3d..721559b 100644 +module_param(pps_gpio_pin, int, 0644); +MODULE_PARM_DESC(pps_gpio_pin, "Set GPIO pin to reserve for PPS"); -From 128bbd307de47c1a0748dcf84e5d948c2df3db38 Mon Sep 17 00:00:00 2001 +From 5925f5c740d44a3244a3258af74b33a57d92e215 Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 052/149] Update ds1307 driver for device-tree support +Subject: [PATCH 052/162] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -126989,10 +126989,10 @@ index 4ffabb3..c6789a7 100644 .driver = { .name = "rtc-ds1307", -From 0fcc1245d4ba1391e0bcc754e2c521cecbb10179 Mon Sep 17 00:00:00 2001 +From 0d9d5d44991ac2b679a9f201f156aa1103183b76 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 053/149] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 053/162] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -127103,10 +127103,10 @@ index 0000000..2ca2b98 +MODULE_DESCRIPTION("Set LED GPIO to Input \"trigger\""); +MODULE_LICENSE("GPL"); -From 2b9a2491e2554f5dc92a62be523ef8932a5eb85e Mon Sep 17 00:00:00 2001 +From 8112604da472b3bd30f58dd75f85e5a2397ad8ac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 20 Jun 2014 17:19:27 +0100 -Subject: [PATCH 054/149] bcm2709: Simplify and strip down IRQ handler +Subject: [PATCH 054/162] bcm2709: Simplify and strip down IRQ handler --- arch/arm/include/asm/entry-macro-multi.S | 2 + @@ -127325,10 +127325,10 @@ index d08591b..08d184c 100644 +1: get_irqnr_and_base r0, r2, r6, lr + .endm -From 145d538784f1fb1a938a6f037df9d85898ea1ba4 Mon Sep 17 00:00:00 2001 +From 94208834e11d59d251cbd8154df29a19a6cd2769 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 12 Feb 2015 11:17:53 +0000 -Subject: [PATCH 055/149] Fix LED "input" trigger implementation for 3.19 +Subject: [PATCH 055/162] Fix LED "input" trigger implementation for 3.19 --- drivers/leds/leds-gpio.c | 10 +++++++++- @@ -127415,10 +127415,10 @@ index 9a2b000..60accc5 100644 /* Set LED brightness level */ /* Must not sleep, use a workqueue if needed */ -From 20a42859d52cff889adbec5697ba61870b22c423 Mon Sep 17 00:00:00 2001 +From cbfcea83366bfaa9e51e56d05e3fbe75c9b6ea5b Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 056/149] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 056/162] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -127440,10 +127440,10 @@ index 8d908e3..7a1900d 100644 .can_sleep = false, }; -From 812a64aaa5d3dec21864e49c612b38ee65273b17 Mon Sep 17 00:00:00 2001 +From 1363a3e8879ca0ebeb98ff6ce2d092ae512989bd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 4 Feb 2015 10:02:24 +0000 -Subject: [PATCH 057/149] pinctrl-bcm2835: bcm2835_gpio_direction_output must +Subject: [PATCH 057/162] pinctrl-bcm2835: bcm2835_gpio_direction_output must set the value --- @@ -127471,10 +127471,10 @@ index 7a1900d..62f85aa 100644 static void bcm2835_gpio_set(struct gpio_chip *chip, unsigned offset, int value) -From 09041f7ccbd1cde792edae91c41266886d5d1382 Mon Sep 17 00:00:00 2001 +From d4eb5ac769e7e8c9bc23d44e8db10d2fe983375a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 058/149] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 058/162] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -127620,10 +127620,10 @@ index 62f85aa..c7cf266 100644 }, }; -From 523ce9c5aa97607b0847833b93a8d34965808132 Mon Sep 17 00:00:00 2001 +From 327847a04d35f47edaaef9b8ade918f7f7527492 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 059/149] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 059/162] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -127650,10 +127650,10 @@ index c7cf266..986779a 100644 pc->irq_data[i].irqgroup = i; -From ee9c77a3cc5d83e87e52f3424f7a29d605d562ba Mon Sep 17 00:00:00 2001 +From 94b91ce3acba3c350664b3d9dcfba9e53d431437 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 060/149] enc28j60: Add device tree compatible string and an +Subject: [PATCH 060/162] enc28j60: Add device tree compatible string and an overlay --- @@ -127687,10 +127687,10 @@ index b1b5f66..c6b6e1a 100644 .probe = enc28j60_probe, .remove = enc28j60_remove, -From 0c87fa341259d332ce8402d1a3703f2b69af5219 Mon Sep 17 00:00:00 2001 +From 34c6e5a325cdedf9277559ecb40fd5bcc99989f0 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 061/149] Add driver for rpi-proto +Subject: [PATCH 061/162] Add driver for rpi-proto 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.18.x @@ -127905,10 +127905,10 @@ index 0000000..c6e45a0 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 458dc19741c5295b62ff78882b94a4d6dc8aaac2 Mon Sep 17 00:00:00 2001 +From 4779a91b7064c2b46383e3e7b911459a8c941e98 Mon Sep 17 00:00:00 2001 From: Clive Messer Date: Thu, 2 Apr 2015 12:22:55 +0100 -Subject: [PATCH 062/149] Add Device Tree support for RPi-DAC. +Subject: [PATCH 062/162] Add Device Tree support for RPi-DAC. --- sound/soc/bcm/rpi-dac.c | 21 +++++++++++++++++++++ @@ -127983,10 +127983,10 @@ index b4eaa44..afe1b41 100644 }; -From 4c33cf46121a5662ebfb84ad34a5a632c2c679f6 Mon Sep 17 00:00:00 2001 +From 5311db6a4627009d0ff8e3aea810bc454a277c7b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 063/149] config: Add default configs +Subject: [PATCH 063/162] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1204 ++++++++++++++++++++++++++++++++++++ @@ -130411,10 +130411,10 @@ index 0000000..6a41231 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From f8b20b1317fd46d23a2a9944a53df547904a238f Mon Sep 17 00:00:00 2001 +From 3f4696abe0930f17e6cdf8cccbc4ae0246035233 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 064/149] smsx95xx: fix crimes against truesize +Subject: [PATCH 064/162] smsx95xx: fix crimes against truesize smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings. @@ -130449,10 +130449,10 @@ index e29a323..aff63dc usbnet_skb_return(dev, ax_skb); } -From 7b168915af2a8d731046afeed5cdf939cd9c4323 Mon Sep 17 00:00:00 2001 +From 56f171703257a83bb857c755891207168db7be05 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 065/149] smsc95xx: Disable turbo mode by default +Subject: [PATCH 065/162] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -130472,10 +130472,10 @@ index aff63dc..08a8a8c 100755 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From aab95f9b10e8c3d32de2bf163b86f220c88214fe Mon Sep 17 00:00:00 2001 +From cdc8a06c6bc601bb3112fde4254068531ee1dd24 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Apr 2015 19:30:22 +0100 -Subject: [PATCH 066/149] Add blk_pos parameter to mmc multi_io_quirk callback +Subject: [PATCH 066/162] Add blk_pos parameter to mmc multi_io_quirk callback --- drivers/mmc/card/block.c | 1 + @@ -130498,7 +130498,7 @@ index 31d2627..8484ec9 100644 } diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c -index 9df2b68..8c0ee4a 100644 +index d0abdffb..ebb6bf4 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1749,7 +1749,9 @@ static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host) @@ -130558,10 +130558,10 @@ index b0258e8..d3cdad9 100644 struct mmc_card; -From 9a092ad62309aecb8c27cde5fb5f863a7447b90e Mon Sep 17 00:00:00 2001 +From 57641db5c552d86d1205ee87eaea41689ade2b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 29 Apr 2015 17:24:02 +0200 -Subject: [PATCH 067/149] bcm2835: bcm2835_defconfig +Subject: [PATCH 067/162] bcm2835: bcm2835_defconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -131891,10 +131891,10 @@ index 31cb073..2e8a95a 100644 # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set -From 4ab42e0f9eab22619622ea5f13195280aebc0d64 Mon Sep 17 00:00:00 2001 +From e6a566619f5ac7575cc248e209786fe73598237d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 1 May 2015 23:00:15 +0200 -Subject: [PATCH 068/149] BCM270x_DT: Add mailbox bcm2708-vcio +Subject: [PATCH 068/162] BCM270x_DT: Add mailbox bcm2708-vcio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -131935,10 +131935,10 @@ index 721559b..4a00561 100644 #ifdef CONFIG_BCM2708_GPIO bcm_register_device_dt(&bcm2708_gpio_device); -From fa2b33b614fead97a2eb8b950fb1c77e73f0eb28 Mon Sep 17 00:00:00 2001 +From 86174403ecaafa1b5cbb83d942bd2f49888fd573 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 069/149] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 069/162] rpi-ft5406: Add touchscreen driver for pi LCD display --- drivers/input/touchscreen/Kconfig | 7 + @@ -132255,10 +132255,10 @@ index cc284ed..d3ea839 100644 VCMSG_SET_CURSOR_STATE = 0x00008011, }; -From 5cbcb76ee23807632fcd5db19ebcc2d913011f17 Mon Sep 17 00:00:00 2001 +From f9ba6dc9f6e84b84124b81064aea3b1e49ed8d45 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 070/149] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 070/162] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -133783,10 +133783,10 @@ index 3e58d71..0622891 100644 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From b196781e4110a44416cf5926cf1ff350a1533c94 Mon Sep 17 00:00:00 2001 +From 6ecc8a2de77836ecceef1f602050e7b7b4a2ae47 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 May 2015 17:22:15 +0100 -Subject: [PATCH 071/149] bcm2835-audio: Create the platform device if the DT +Subject: [PATCH 071/162] bcm2835-audio: Create the platform device if the DT node is disabled For backwards compatibility, allow the built-in ALSA driver to be enabled @@ -133840,10 +133840,10 @@ index 4a00561..dec8043 100644 bcm_register_device_dt(&bcm2708_spi_device); -From 35fb850719835a0029eb91480b214fbaf2a99dc3 Mon Sep 17 00:00:00 2001 +From efa7fca2b37a8be44163a59ccc216b1700ede261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 3 Jun 2015 12:26:13 +0200 -Subject: [PATCH 072/149] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 072/162] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -133902,10 +133902,10 @@ index 70f2f39..f7fdacd 100644 static const char * const bcm2835_compat[] = { -From fb9bb42b9875d61716503c9eb330e73d720f5a64 Mon Sep 17 00:00:00 2001 +From 866447c3daebb40a3d22513f0f38066688a81004 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 16 Jun 2015 17:47:27 +0100 -Subject: [PATCH 073/149] platform: Add force_core command line setting to boot +Subject: [PATCH 073/162] platform: Add force_core command line setting to boot from a different core number --- @@ -133976,10 +133976,10 @@ index dec8043..fe71c50 100644 module_param(serial, uint, 0644); module_param(uart_clock, uint, 0644); -From 63a651b12cbd98ba14d2ac6f038f230a4b3ce336 Mon Sep 17 00:00:00 2001 +From 336a44792af95c280cdb327e72ddd9fee7e1d682 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Jun 2015 17:46:17 +0100 -Subject: [PATCH 074/149] mach-bcm270x: Enable the building of pinctrl-bcm2835 +Subject: [PATCH 074/162] mach-bcm270x: Enable the building of pinctrl-bcm2835 --- drivers/pinctrl/Makefile | 1 + @@ -133998,10 +133998,10 @@ index 6eadf04..9119513 100644 obj-$(CONFIG_ARCH_BERLIN) += berlin/ obj-y += freescale/ -From 30e79675077f83c35b77f74ae833212cbff42b6f Mon Sep 17 00:00:00 2001 +From 02cf873c725ac8ada17bce9e849b81df4d21b074 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Jun 2015 16:41:39 +0100 -Subject: [PATCH 075/149] BCM270X_DT: Document the i2s-mmap overlay +Subject: [PATCH 075/162] BCM270X_DT: Document the i2s-mmap overlay --- arch/arm/boot/dts/overlays/README | 6 ++++++ @@ -134025,10 +134025,10 @@ index 3e08f98..7fa6d33 100644 Info: Configures the IQaudio DAC audio card Load: dtoverlay=iqaudio-dac -From 1dd7bc29051074b4aedba9ed05bbc920ed67a654 Mon Sep 17 00:00:00 2001 +From 0b19c37e24d25c8882b48e6ea9e8f284c4ed34d4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Jun 2015 11:36:53 +0100 -Subject: [PATCH 076/149] bcm2835-sdhost: Improve error handling and recovery +Subject: [PATCH 076/162] bcm2835-sdhost: Improve error handling and recovery 1) Expose the hw_reset method to the MMC framework, removing many internal calls by the driver. @@ -135120,10 +135120,10 @@ index eef8a24..6277e43 100644 if (host->allow_dma) { -From e6a1ebfa363797e35902c3d466af7c92ef05a62f Mon Sep 17 00:00:00 2001 +From ff187ec8ab4341163658c457e83c9f45f55e24ca Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Jun 2015 13:11:46 -0700 -Subject: [PATCH 077/149] ARM: bcm2835: Add the Raspberry Pi firmware driver +Subject: [PATCH 077/162] ARM: bcm2835: Add the Raspberry Pi firmware driver This gives us a function for making mailbox property channel requests of the firmware, which is most notable in that it will let us get and @@ -135557,10 +135557,10 @@ index 0000000..9d9efb7 + void *data, size_t tag_size); +struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node); -From dce877ba363b979281f5781ec75a197875fd21a9 Mon Sep 17 00:00:00 2001 +From d4de234cfda7513927a197b95a2226bc1c28abc4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 22 Mar 2015 13:33:23 +0000 -Subject: [PATCH 078/149] config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING +Subject: [PATCH 078/162] config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING --- arch/arm/configs/bcm2709_defconfig | 4 ++++ @@ -135612,10 +135612,10 @@ index 6a41231..cacde14 100644 CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_DRBD=m -From 2f04df7aef19d4e087c80fa7371e3f5139233570 Mon Sep 17 00:00:00 2001 +From b2af418b8c06cbb1a2b7f8622ec55caab7880e96 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Mon, 22 Jun 2015 16:27:07 +0100 -Subject: [PATCH 079/149] Add rpi-ft5406 overlay Add rpi-ft5406 driver as +Subject: [PATCH 079/162] Add rpi-ft5406 overlay Add rpi-ft5406 driver as module --- @@ -135702,10 +135702,10 @@ index cacde14..f952ff2 100644 CONFIG_TOUCHSCREEN_STMPE=m CONFIG_INPUT_MISC=y -From bf09fbb31f813db47e4b64fddbc1ea1d089133c2 Mon Sep 17 00:00:00 2001 +From f65847235a40251eb0c2dc2015c8d84686376082 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 23 Jun 2015 09:53:40 +0100 -Subject: [PATCH 080/149] Fix driver detection failure Check that the buffer +Subject: [PATCH 080/162] Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected --- @@ -135726,10 +135726,10 @@ index f55151b..d41851d 100644 dev_dbg(&pdev->dev, "Got TS buffer 0x%x\n", request.tag.val); } -From e8fe55cc59f200121b845a93110d6c41e7daeb01 Mon Sep 17 00:00:00 2001 +From af55c1ff93d7326055956c27e844ec266621bc23 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Jun 2015 13:24:01 +0100 -Subject: [PATCH 081/149] config: Enable 8250 serial port +Subject: [PATCH 081/162] config: Enable 8250 serial port --- arch/arm/configs/bcm2709_defconfig | 7 +++++++ @@ -135777,10 +135777,10 @@ index f952ff2..0c25d8b 100644 CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_BCM2835=m -From 02dfc389b34d52a0c97428a666d0314216c2cb34 Mon Sep 17 00:00:00 2001 +From 1dd292b6d87ac6e02e5fca192c189d94a83ab604 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Jun 2015 14:10:58 +0100 -Subject: [PATCH 082/149] config: Enable POWER_RESET_GPIO +Subject: [PATCH 082/162] config: Enable POWER_RESET_GPIO --- arch/arm/configs/bcm2709_defconfig | 2 ++ @@ -135814,10 +135814,10 @@ index 0c25d8b..e757db6 100644 CONFIG_THERMAL=y CONFIG_THERMAL_BCM2835=y -From 83d5bd935a9a83db9e7bf89bb3cd123fc7a6999f Mon Sep 17 00:00:00 2001 +From 0d483db4bb5dde7f9a9492cfce0d6636be31eedb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 26 Jun 2015 17:37:38 +0100 -Subject: [PATCH 083/149] bcm2708-vcio: Remove restriction of only a single +Subject: [PATCH 083/162] bcm2708-vcio: Remove restriction of only a single instance being open We need more than one process to be able to use mailbox interface (e.g. HW cursor in fbturbo and hello_fft). @@ -135862,10 +135862,10 @@ index d91672b..06fb2c2f 100644 return 0; -From 08ab3b10ef3b9fee5c05f7c1463fefa3206e36eb Mon Sep 17 00:00:00 2001 +From 39adc072c8ba72fb469a13d725bacd040c73b7dc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2015 08:39:19 +0100 -Subject: [PATCH 084/149] BCM270X_DT: Create a "core" clock, use it for SPI and +Subject: [PATCH 084/162] BCM270X_DT: Create a "core" clock, use it for SPI and sdhost --- @@ -136016,10 +136016,10 @@ index b408ab4..897204a 100644 }; }; -From a3c04e353a23787157f52097715422aed626198d Mon Sep 17 00:00:00 2001 +From 029c13e692dbf0808a2afb4f6fb33593093cb7f6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 09:24:31 +0100 -Subject: [PATCH 085/149] BCM270X_DT: Add MCP7941X to i2c-rtc overlay +Subject: [PATCH 085/162] BCM270X_DT: Add MCP7941X to i2c-rtc overlay --- arch/arm/boot/dts/overlays/README | 3 +++ @@ -136072,10 +136072,10 @@ index 6bccfdc..7052c71 100644 pcf8523 = <&pcf8523>,"status"; pcf8563 = <&pcf8563>,"status"; -From 89ce29fd10942fcb3a8a72a88ed399d5bbac6f56 Mon Sep 17 00:00:00 2001 +From 4849d067dc42061bb8b07d3cd3cf43ebaf8f1753 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 24 Jun 2015 11:23:06 +0100 -Subject: [PATCH 086/149] dts/overlays: document DHT11 overlay +Subject: [PATCH 086/162] dts/overlays: document DHT11 overlay --- arch/arm/boot/dts/overlays/README | 8 ++++++++ @@ -136101,10 +136101,10 @@ index 425eb19..9406cf3 100644 -From e5230cc9bbb441510c38faf9f0c82a839afbba71 Mon Sep 17 00:00:00 2001 +From 06d00394bb2fff989c57915ceb54012ef33cb957 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 087/149] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 087/162] gpio-poweroff: Allow it to work on Raspberry Pi The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing @@ -136219,10 +136219,10 @@ index e5332f1..6e3fec2 100644 "%s: pm_power_off function already registered", __func__); -From c7c9f2995da703a41e6c70bce53d9eef408b1b46 Mon Sep 17 00:00:00 2001 +From 859f2dc684cc0cf92e3d171ec3161cb828c2f174 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Jun 2015 17:10:40 +0100 -Subject: [PATCH 088/149] BCM270x_DT: Default Compute Module i2c, i2s and spi +Subject: [PATCH 088/162] BCM270x_DT: Default Compute Module i2c, i2s and spi support --- @@ -136312,10 +136312,10 @@ index e82fcb2..af252bd 100755 }; }; -From 44c63dcdaca924590d42106b99b5f4e30dcbfbe3 Mon Sep 17 00:00:00 2001 +From a1dc8ab4c9e134d7cec088d091e76b7a9fe96f03 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Jun 2015 14:21:55 +0100 -Subject: [PATCH 089/149] BCM270X_DT: Sort nodes by bus address, and +Subject: [PATCH 089/162] BCM270X_DT: Sort nodes by bus address, and consolidate aliases --- @@ -136557,10 +136557,10 @@ index 24fa849..ccb9c31 100644 &gpio { -From 870b67c8c48467c19fbbccb90aeb8137ce5e9bea Mon Sep 17 00:00:00 2001 +From 3f7a6c3e559a8a39eb732ef21569b6913416eec4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Jun 2015 14:23:03 +0100 -Subject: [PATCH 090/149] i2c-bcm2708/BCM270X_DT: Add support for I2C2 +Subject: [PATCH 090/162] i2c-bcm2708/BCM270X_DT: Add support for I2C2 The third I2C bus (I2C2) is normally reserved for HDMI use. Careless use of this bus can break an attached display - use with caution. @@ -136733,10 +136733,10 @@ index 8773203..7a24fbe 100644 goto out_free_bi; } -From 207f6d593f3d6b5e5bbe5b12f8e915d7f6b85dd7 Mon Sep 17 00:00:00 2001 +From b160d05a7f306283b47d1f133d0cc796f1c811ca Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Jun 2015 12:14:02 +0100 -Subject: [PATCH 091/149] BCM270X_DT: Correct the lirc-rpi overlay +Subject: [PATCH 091/162] BCM270X_DT: Correct the lirc-rpi overlay documentation The polarity of the "sense" parameter was inverted with respect to reality. @@ -136762,10 +136762,10 @@ index 0ed7094..ec762d2 100644 (default "-1") -From 919c9342b5a5c83686dc932935276d621b5cccae Mon Sep 17 00:00:00 2001 +From 10cfd6f8e969f05c16e75b54a5d1c9834169a3e4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 08:47:09 +0100 -Subject: [PATCH 092/149] bcm2835-sdhost: Further improve overclock back-off +Subject: [PATCH 092/162] bcm2835-sdhost: Further improve overclock back-off --- drivers/mmc/host/bcm2835-sdhost.c | 144 +++++++++++++++++++++----------------- @@ -137057,10 +137057,10 @@ index 6277e43..a03db06 100644 iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); -From 23382239529f6cb7af467a9247e8e24e70a4aa06 Mon Sep 17 00:00:00 2001 +From 98d3dac83fb4e30d8ea7d28e9eeac6d52b2e16b6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 10:28:59 +0100 -Subject: [PATCH 093/149] i2c-bcm2708: Increase timeouts to allow larger +Subject: [PATCH 093/162] i2c-bcm2708: Increase timeouts to allow larger transfers Use the timeout value provided by the I2C_TIMEOUT ioctl when waiting @@ -137098,10 +137098,10 @@ index 7a24fbe..8b8762d 100644 dev_err(&adap->dev, "transfer timed out\n"); goto error_timeout; -From f3d59521e6139a0e1cf79eaacffea5a576360185 Mon Sep 17 00:00:00 2001 +From f445cdcc82e3ccf74988cd01df2850b950947c53 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 10:33:52 +0100 -Subject: [PATCH 094/149] spi-bcm2708: Increase timeout from 150ms to 1s +Subject: [PATCH 094/162] spi-bcm2708: Increase timeout from 150ms to 1s See: https://github.com/raspberrypi/linux/issues/260 --- @@ -137125,10 +137125,10 @@ index 041b5e2..5c0214e 100644 struct bcm2708_spi { spinlock_t lock; -From ea8bb97ffa4e1f4bd832e7a9bed797551685625b Mon Sep 17 00:00:00 2001 +From b7c12eee260a36ea27726477fb9983e9e6ccee8c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Jun 2015 09:59:38 +0100 -Subject: [PATCH 095/149] bcm2708-spi: Don't use static pin configuration with +Subject: [PATCH 095/162] bcm2708-spi: Don't use static pin configuration with DT Also remove superfluous error checking - the SPI framework ensures the @@ -137167,10 +137167,10 @@ index 5c0214e..781c747 100644 master = spi_alloc_master(&pdev->dev, sizeof(*bs)); if (!master) { -From a141cf018b63c08c9907aa0d7b1b2791ee9250d0 Mon Sep 17 00:00:00 2001 +From d6f496d6567011b79640186e3b4867f3284ba8c1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Jun 2015 10:10:59 +0100 -Subject: [PATCH 096/149] bcm2708-i2s: Don't use static pin configuration with +Subject: [PATCH 096/162] bcm2708-i2s: Don't use static pin configuration with DT --- @@ -137193,10 +137193,10 @@ index a515992..5e93cd6 100644 /* * Adjust the data length according to the format. -From 9ac08a7ad7b65014eada794cf252828d10b6cb91 Mon Sep 17 00:00:00 2001 +From adb3d59d9e584c4079658fd5cc2db368c08519ed Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 097/149] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 097/162] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -137216,10 +137216,10 @@ index 4506e40..f03a19a 100644 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From e3ee14936302400a2b6389b4062e4ce45046cb2e Mon Sep 17 00:00:00 2001 +From 0468bc69c9364746fc564414c4ee482816c5a02a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2015 08:50:11 +0100 -Subject: [PATCH 098/149] BCM270X_DT: Add overlay to enable uart1 +Subject: [PATCH 098/162] BCM270X_DT: Add overlay to enable uart1 N.B. The UART1 clock is derived from the core clock. The firmware will update clock-frequency if core_freq is set, but be aware @@ -137388,10 +137388,10 @@ index e757db6..363c894 100644 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y -From 6ee396162a3700157252585fd19ed67e22b8aa34 Mon Sep 17 00:00:00 2001 +From 3ce397e55f37a80143183b178b43299fd573b915 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 099/149] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 099/162] spi-bcm2835: Support pin groups other than 7-11 The spi-bcm2835 driver automatically uses GPIO chip-selects due to some unreliability of the native ones. In doing so it chooses the @@ -137472,10 +137472,10 @@ index 37875cf..55e81c2 100644 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 2f890ad4ea68997c62f8d58af8c2800b7eeab056 Mon Sep 17 00:00:00 2001 +From 96390bbde19b5ce02afbd3f3104bb42b9572fbd1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 17:37:38 +0100 -Subject: [PATCH 100/149] BCM270X_DT: Change pio_limit of sdhost driver to 1 +Subject: [PATCH 100/162] BCM270X_DT: Change pio_limit of sdhost driver to 1 --- arch/arm/boot/dts/overlays/sdhost-overlay.dts | 2 +- @@ -137495,10 +137495,10 @@ index 897204a..2da14a4 100644 }; }; -From a9ac939580e8cf0c43c4242bb458db7d27a6deea Mon Sep 17 00:00:00 2001 +From 8f680959959c9abe872dc7de99d66f81118d9ca9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Jul 2015 12:51:52 +0100 -Subject: [PATCH 101/149] bcm2835-sdhost: Clear HBLC for PIO mode +Subject: [PATCH 101/162] bcm2835-sdhost: Clear HBLC for PIO mode Also update pio_limit default in overlay README. --- @@ -137534,10 +137534,10 @@ index a03db06..d65870a 100644 BUG_ON(!host->data); } -From 7b05003d4f07188e83919e476ac48dc5c219f8ed Mon Sep 17 00:00:00 2001 +From b1cef53451bc8b908a22007362458813b2db4dfa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 3 Jul 2015 12:21:01 +0100 -Subject: [PATCH 102/149] BCM270X_DT: I2S needs function Alt2 +Subject: [PATCH 102/162] BCM270X_DT: I2S needs function Alt2 --- arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 2 +- @@ -137599,10 +137599,10 @@ index f25f0a2..62d1c62 100644 }; -From 7a39e0bdf178dd83ffca4766bfc0a2acc1b6c3a6 Mon Sep 17 00:00:00 2001 +From 54d63fb87793528242a314e8ad0cd2104e3cd832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:16:15 +0200 -Subject: [PATCH 103/149] configs: Incorporate v4.1 dependency changes +Subject: [PATCH 103/162] configs: Incorporate v4.1 dependency changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -137765,10 +137765,10 @@ index 363c894..80f84d7 100644 CONFIG_CRC_ITU_T=y CONFIG_LIBCRC32C=y -From 01a50411ad1528451d53f69d5ad1c7370db0dbee Mon Sep 17 00:00:00 2001 +From 489bf49229ec585c2cfd5e3b7d147f5e34429a42 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 3 Jul 2015 15:47:33 +0100 -Subject: [PATCH 104/149] bcmrpi_defconfigs: Add SND_SOC_WM8804_I2C (for +Subject: [PATCH 104/162] bcmrpi_defconfigs: Add SND_SOC_WM8804_I2C (for HifiBerry Digi) 4.1 has split out support for the I2C and SPI variants, so it now @@ -137803,10 +137803,10 @@ index 80f84d7..14b91fdf 100644 CONFIG_SOUND_PRIME=m CONFIG_HIDRAW=y -From c3934ab548244c7fd691ca2e78f9a950d8eff269 Mon Sep 17 00:00:00 2001 +From 659db17b47edff9bd80d7bcb75d321e36f18ea7e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 4 Jul 2015 19:55:23 +0100 -Subject: [PATCH 105/149] squash: BCM270X_DT: I2S only needs Alt2 on 28-31 +Subject: [PATCH 105/162] squash: BCM270X_DT: I2S only needs Alt2 on 28-31 See: https://github.com/raspberrypi/linux/issues/1046 --- @@ -137855,10 +137855,10 @@ index 62d1c62..f25f0a2 100644 }; -From acd32a30be3e6952f7486c9569429fce70fb8d9e Mon Sep 17 00:00:00 2001 +From e998374742a253b9250e0589e2a5ef305a325531 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Jul 2015 14:48:57 +0100 -Subject: [PATCH 106/149] vchiq_arm: Two cacheing fixes +Subject: [PATCH 106/162] vchiq_arm: Two cacheing fixes 1) Make fragment size vary with cache line size Without this patch, non-cache-line-aligned transfers may corrupt @@ -138129,10 +138129,10 @@ index c739083..5edba23 100644 kfree(pagelist); } -From d3f1bad2c2095c829d0111a41763ec4cf3fbdeb3 Mon Sep 17 00:00:00 2001 +From ac1e04a529413fca2cb21d4af2aa48c1a636e86c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 09:10:36 +0100 -Subject: [PATCH 107/149] BCM270X_DT: Overlay for the Fen Logic VGA666 board +Subject: [PATCH 107/162] BCM270X_DT: Overlay for the Fen Logic VGA666 board The VGA666 board requires GPIOs 2-21 (so no I2C or UART). Using the overlay (instead of a custom dt-blob.bin) has the advantage that it will @@ -138214,10 +138214,10 @@ index 0000000..7fcab96 + }; +}; -From f92a566b5dcec58d56cc8e7e629601f449325b0c Mon Sep 17 00:00:00 2001 +From 4a3dc7ff555f8e64f32fc0dde6120582711187b1 Mon Sep 17 00:00:00 2001 From: petit-miner Date: Fri, 10 Jul 2015 13:59:18 +0200 -Subject: [PATCH 108/149] Added support for 2 mcp2515 CAN Bus IC +Subject: [PATCH 108/162] Added support for 2 mcp2515 CAN Bus IC See: https://github.com/raspberrypi/linux/issues/1018 https://github.com/raspberrypi/linux/pull/1049 @@ -138347,10 +138347,10 @@ index 0000000..6bef9ae + }; +}; -From 5d7fd1e72db3384293037ca586ed2936b45748d3 Mon Sep 17 00:00:00 2001 +From b503581bceb31ab83cd3d81ef690dd24173b1400 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 5 May 2015 13:27:45 -0700 -Subject: [PATCH 109/149] mailbox: Enable BCM2835 mailbox support +Subject: [PATCH 109/162] mailbox: Enable BCM2835 mailbox support This mailbox driver provides a single mailbox channel to write 32-bit values to the VPU and get a 32-bit response. The Raspberry Pi @@ -138629,10 +138629,10 @@ index 0000000..4b13268 +MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); +MODULE_LICENSE("GPL v2"); -From 44369d3764961e5cb7a7dfce2fdb31a86ff16b14 Mon Sep 17 00:00:00 2001 +From 93ccea2d56f31551e44f81f4742122af22b14dec Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 13 May 2015 13:10:32 -0700 -Subject: [PATCH 110/149] mailbox/bcm2835: Fix mailbox full detection. +Subject: [PATCH 110/162] mailbox/bcm2835: Fix mailbox full detection. With the VC reader blocked and the ARM writing, MAIL0_STA reads empty permanently while MAIL1_STA goes from empty (0x40000000) to non-empty @@ -138671,10 +138671,10 @@ index 4b13268..0b47dd4 100644 return ret; } -From 4e08351a07fbe7f6e8625e3e538e94a2bc4c08bb Mon Sep 17 00:00:00 2001 +From ca0a75c346648bad55fd341889fc3d04561868eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:19:30 +0200 -Subject: [PATCH 111/149] mailbox: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 111/162] mailbox: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -138790,10 +138790,10 @@ index 19b491d..cc07d71 100644 dev_dbg(dev, "%s: mailbox not free\n", __func__); mutex_unlock(&con_mutex); -From 3389224055b1ee2a518308c13583361f88ff5f82 Mon Sep 17 00:00:00 2001 +From 0b009387ea689fe4ea7108ce73414d35b869a05e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Jun 2015 13:11:47 -0700 -Subject: [PATCH 112/149] ARM: bcm2835: Add the firmware driver information to +Subject: [PATCH 112/162] ARM: bcm2835: Add the firmware driver information to the RPi DT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -138827,10 +138827,10 @@ index 466f02b..5cdfd5a 100644 audio: audio { compatible = "brcm,bcm2835-audio"; -From cc901351e0dd5e50ee5e11b8697a6f5b1f35ee0d Mon Sep 17 00:00:00 2001 +From eb9904f2645254acdf046824f0ec9bec1c3e0e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:21:20 +0200 -Subject: [PATCH 113/149] firmware: bcm2835: Add missing property tags +Subject: [PATCH 113/162] firmware: bcm2835: Add missing property tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -138892,10 +138892,10 @@ index 9d9efb7..d3933af 100644 RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From 31139cf5452a835f8e160b7093b05dca12c6dd29 Mon Sep 17 00:00:00 2001 +From 24c0e7cad163249456deb3fff6d31c192558f816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:25:01 +0200 -Subject: [PATCH 114/149] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 114/162] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139001,10 +139001,10 @@ index dd506cd3..b980d53 100644 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From fd247161acad069df68411af0500b183fbc78063 Mon Sep 17 00:00:00 2001 +From 3e20004539b9c6dbc5373ad81238ca9fa01ed65e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:26:10 +0200 -Subject: [PATCH 115/149] firmware: bcm2835: Support legacy mailbox API +Subject: [PATCH 115/162] firmware: bcm2835: Support legacy mailbox API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139094,10 +139094,10 @@ index d3933af..9a08cf1 100644 u32 tag, void *data, size_t len); int rpi_firmware_property_list(struct rpi_firmware *fw, -From 491b53a48fc956dd91151f5998d54544ffeab094 Mon Sep 17 00:00:00 2001 +From f9f80570984163be6895ca8742f6c1490c4878a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:27:06 +0200 -Subject: [PATCH 116/149] char: broadcom: Add vcio module +Subject: [PATCH 116/162] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139321,10 +139321,10 @@ index 0000000..c19bc20 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 0c90bfa500f9c896f42a8cb59f7037b2c78fc8e5 Mon Sep 17 00:00:00 2001 +From d8d2c66f0e3302e877c379ee9e039659575e4aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:37:19 +0200 -Subject: [PATCH 117/149] BCM270x: Switch to firmware driver +Subject: [PATCH 117/162] BCM270x: Switch to firmware driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139931,10 +139931,10 @@ index 06fb2c2f..2e4031b 100644 MODULE_DESCRIPTION("ARM I/O to VideoCore processor"); MODULE_LICENSE("GPL"); -From 261e67ec20793d9a0f615e16b7bce7ae7a70e138 Mon Sep 17 00:00:00 2001 +From a6b0ff114bd11a98e0adb5b582b635f8658f3dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:39:21 +0200 -Subject: [PATCH 118/149] bcm2835: Switch to firmware driver +Subject: [PATCH 118/162] bcm2835: Switch to firmware driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139990,10 +139990,10 @@ index 47f2a6a..c284414 100644 CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y -From 564c166a50d6db491679366414e4c51d58b951d4 Mon Sep 17 00:00:00 2001 +From d53f3a81f351067c7658103f594a878d643c1398 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Jul 2015 13:25:31 +0100 -Subject: [PATCH 119/149] Merge pull request #1059 from pelwell/rpi-4.0.y +Subject: [PATCH 119/162] Merge pull request #1059 from pelwell/rpi-4.0.y w1_therm: Back-port locking improvements from 4.2-rc1 --- @@ -140188,10 +140188,10 @@ index 55eb86c..2f029e8 100644 { int err, i; -From 01f81174825984b4f3d309ffcdade224d94ab572 Mon Sep 17 00:00:00 2001 +From 051d84525b2e4f649ac02b6a6653c5124de2bba7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 11:11:51 +0100 -Subject: [PATCH 120/149] vchiq_arm: Sort out the vmalloc case +Subject: [PATCH 120/162] vchiq_arm: Sort out the vmalloc case See: https://github.com/raspberrypi/linux/issues/1055 --- @@ -140230,10 +140230,10 @@ index 5edba23..56bff05 100644 *need_release = 0; /* do not try and release vmalloc pages */ } else { -From 6a9ee1422507ded4b20bb30b34a1ae8151ae2141 Mon Sep 17 00:00:00 2001 +From a2bdecb23580622190e356d4deaf36cbb9ed8dc2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 121/149] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 121/162] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -140254,10 +140254,10 @@ index 92c909e..0535375 100644 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 710b1c336c5ca81b429212218b6209df1db468c9 Mon Sep 17 00:00:00 2001 +From 99476b5d0cdf174a9b9402e53188087d8519a60b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 122/149] Merge pull request #1043 from XECDesign/sense-4.0 +Subject: [PATCH 122/162] Merge pull request #1043 from XECDesign/sense-4.0 mfd: Add Raspberry Pi Sense HAT core driver --- @@ -141190,10 +141190,10 @@ index 0000000..56196dc + +#endif -From 2dce729ff88f1ae4fc318dc36e16732c8f152469 Mon Sep 17 00:00:00 2001 +From c9ee15527a47d732d7911e82aae847ab183f5e6a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jul 2015 13:46:08 +0100 -Subject: [PATCH 123/149] leds-gpio: Implement the brightness_get method +Subject: [PATCH 123/162] leds-gpio: Implement the brightness_get method The power LED uses some clever logic that means it is driven by a voltage measuring circuit when configured as input, otherwise @@ -141236,10 +141236,10 @@ index 3cfbd6a..4e4e132 100644 state = !!gpiod_get_value_cansleep(led_dat->gpiod); else -From 45d1edd1051ba8c3dcff92c18b0d56adea55ab5c Mon Sep 17 00:00:00 2001 +From 0c65130383cfa27bf2964036da24ea09d13b12a9 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Fri, 17 Jul 2015 09:50:55 +0200 -Subject: [PATCH 124/149] dmaengine: bcm2708-dmaengine: Fix memory leak when +Subject: [PATCH 124/162] dmaengine: bcm2708-dmaengine: Fix memory leak when stopping a running transfer --- @@ -141259,10 +141259,10 @@ index 987ed53..73c6c00 100644 bcm2835_dma_abort(c->chan_base); -From 5f40c5575ed6f7831637415de4e99400f270dd22 Mon Sep 17 00:00:00 2001 +From 997788197d968e641ae5ac47a35fc79705196233 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:13 +0200 -Subject: [PATCH 125/149] BCM270X_DT: Fix I2S register map +Subject: [PATCH 125/162] BCM270X_DT: Fix I2S register map --- arch/arm/boot/dts/bcm2708_common.dtsi | 4 ++-- @@ -141284,10 +141284,10 @@ index 2dd25f7..728e14a 100644 //dmas = <&dma 2>, // <&dma 3>; -From cc5fa860bef4a444edca29c4493da61837e1b7e7 Mon Sep 17 00:00:00 2001 +From 691397fefe6256a3b3e887fae54118ac95394fa6 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 126/149] BCM2835_DT: Fix I2S register map +Subject: [PATCH 126/162] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -141341,10 +141341,10 @@ index 4a63704..1135120 100644 dmas = <&dma 2>, <&dma 3>; -From 0480e8bf45e8c4fd614ce16c1f3091d85ce95576 Mon Sep 17 00:00:00 2001 +From a06952fd1eaf85f96433c43094c6d6368dededad Mon Sep 17 00:00:00 2001 From: David Frey Date: Tue, 14 Jul 2015 15:57:36 +0200 -Subject: [PATCH 127/149] config: Enable SHT drivers for raspberry pi +Subject: [PATCH 127/162] config: Enable SHT drivers for raspberry pi The SHT temperature and humidity sensors are often used in weather station projects. @@ -141386,10 +141386,10 @@ index b9b5bdf..7b24274 100644 CONFIG_THERMAL_BCM2835=y CONFIG_WATCHDOG=y -From a433727025805fd09e50b829738fc02b99446617 Mon Sep 17 00:00:00 2001 +From 5225bbd0087eb327575770be33682cde7c585922 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 14:07:14 +0100 -Subject: [PATCH 128/149] BCM270X_DT: Correct typo in overlays/README +Subject: [PATCH 128/162] BCM270X_DT: Correct typo in overlays/README --- arch/arm/boot/dts/overlays/README | 2 +- @@ -141409,10 +141409,10 @@ index 8792f98..ed484ae 100644 i2c_arm Set to "on" to enable the ARM's i2c interface -From 26be449bd477753ba005248dfde121a9e4c16a39 Mon Sep 17 00:00:00 2001 +From 42f461f5cbbf0bfcfa723f75524124be0a6ab337 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 10:53:26 +0100 -Subject: [PATCH 129/149] bcm2835-sdhost: Add the ERASE capability +Subject: [PATCH 129/162] bcm2835-sdhost: Add the ERASE capability See: https://github.com/raspberrypi/linux/issues/1076 --- @@ -141433,10 +141433,10 @@ index d65870a..57a6ad3 100644 spin_lock_init(&host->lock); -From 02c4ebf0f3e2f379496ce265f883e23a0b7be363 Mon Sep 17 00:00:00 2001 +From bcdfa0084e7b016a127d899ebc2093a20f45360c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 17:32:18 +0100 -Subject: [PATCH 130/149] bcm2835-sdhost: Ignore CRC7 for MMC CMD1 +Subject: [PATCH 130/162] bcm2835-sdhost: Ignore CRC7 for MMC CMD1 It seems that the sdhost interface returns CRC7 errors for CMD1, which is the MMC-specific SEND_OP_COND. Returning these errors to @@ -141500,10 +141500,10 @@ index 57a6ad3..84f645f 100644 if (host->cmd->flags & MMC_RSP_PRESENT) { -From 995b4ff06b418b3dbc8d560547c95d8e9e501c0c Mon Sep 17 00:00:00 2001 +From 06c63fd49eaca311b464c3fa150b169edc9eee9b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 14:48:21 +0100 -Subject: [PATCH 131/149] BCM270X_DT: Add unit address to gpio node name +Subject: [PATCH 131/162] BCM270X_DT: Add unit address to gpio node name --- arch/arm/boot/dts/bcm2708_common.dtsi | 2 +- @@ -141523,10 +141523,10 @@ index 728e14a..cb608df 100644 reg = <0x7e200000 0xb4>; interrupts = <2 17>, <2 18>; -From 56bc2c9c4ef10c7dc0b0ed9bf1868e2010e4adb6 Mon Sep 17 00:00:00 2001 +From 8993751f2759af27cc93f1b3ae1eb4ecd05e5896 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jul 2015 10:36:32 +0100 -Subject: [PATCH 132/149] BCM270X_DT: Use i2c_arm for rtc and bmp085 overlays +Subject: [PATCH 132/162] BCM270X_DT: Use i2c_arm for rtc and bmp085 overlays --- arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts | 2 +- @@ -141560,10 +141560,10 @@ index 7052c71..fed4bd8 100644 #address-cells = <1>; #size-cells = <0>; -From a3201af81c47ab3cf0ca61d3632a6df14e935b23 Mon Sep 17 00:00:00 2001 +From d8bfebaed30cc06eb94fd3db0b2db55935064492 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jul 2015 12:11:31 +0100 -Subject: [PATCH 133/149] BCM2708_DT: CM dtparams for audio, watchdog and RNG +Subject: [PATCH 133/162] BCM2708_DT: CM dtparams for audio, watchdog and RNG --- arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 8 ++++---- @@ -141593,10 +141593,10 @@ index 34d4bc6..713e5a2 100644 }; }; -From 30929ea53242c1f5efc06caf4a17b9c7922fd437 Mon Sep 17 00:00:00 2001 +From 01e1694a21481edca98809825c2b45354fdbbf43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:13:18 +0200 -Subject: [PATCH 134/149] vchiq: Use firmware API +Subject: [PATCH 134/162] vchiq: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -141712,10 +141712,10 @@ index 31e2cba..e11c0e0 100644 err = vchiq_debugfs_init(); if (err != 0) -From 978ebf9c4c2ef238e19ea1478b5fd11c3252c912 Mon Sep 17 00:00:00 2001 +From 603a29be18f960221ef5623607bbe32740a34253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:17:10 +0200 -Subject: [PATCH 135/149] thermal: bcm2835: Use firmware API +Subject: [PATCH 135/162] thermal: bcm2835: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -141998,10 +141998,10 @@ index 3bc80f1..c1d8f1b 100644 -module_platform_driver(bcm2835_thermal_driver); +MODULE_LICENSE("GPL"); -From 26b1f0b224f9e59fc87d02e8d0a683a3ca847356 Mon Sep 17 00:00:00 2001 +From f5cd4743e0235ba47366569c2e56d1f57f220660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:18:36 +0200 -Subject: [PATCH 136/149] cpufreq: bcm2835: Use firmware API +Subject: [PATCH 136/162] cpufreq: bcm2835: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142185,10 +142185,10 @@ index 6735da9..3eb9e93 100644 } -From a15106c0300ea7958fa7e1cc62c573d999eb4ee2 Mon Sep 17 00:00:00 2001 +From 9089b26a00ebe882b9101fdf20ee3845d11cca35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:20:59 +0200 -Subject: [PATCH 137/149] fbdev: bcm2708: Use firmware API +Subject: [PATCH 137/162] fbdev: bcm2708: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142604,10 +142604,10 @@ index f6ac7da..06a96d16 100644 free_irq(fb->dma_irq, fb); -From 8af174253322c75147e90fbc0ec0698d171e15ad Mon Sep 17 00:00:00 2001 +From 6327a22a39a16fe0ab3cd80e08794ca717241712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:27:17 +0200 -Subject: [PATCH 138/149] bcm2835: Add firmware property to affected devices +Subject: [PATCH 138/162] bcm2835: Add firmware property to affected devices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142688,10 +142688,10 @@ index 1135120..807264d 100644 clocks { -From 66840ef91d4a460062686c8312f267264b567f98 Mon Sep 17 00:00:00 2001 +From 0bd261fd54b59e6269d7234ec9e8ef3c3a93ee5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 21 Jul 2015 19:09:39 +0200 -Subject: [PATCH 139/149] rpi-ft5406: Use firmware API +Subject: [PATCH 139/162] rpi-ft5406: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142831,10 +142831,10 @@ index d41851d..c08817e 100644 ts->regs = (struct ft5406_regs *) ts->ts_base; -From c1a5966807b9f6111684fda87e17df03f948e4d2 Mon Sep 17 00:00:00 2001 +From 2d63fbd8a7f7a2aabc4fc7e6bb55a23a51bc69d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 12 Jun 2015 19:01:05 +0200 -Subject: [PATCH 140/149] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 140/162] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142966,10 +142966,10 @@ index 5916d6c..db66246 100644 } -From 0086c10ac490fb95a1ec82df80587b591ee74ab3 Mon Sep 17 00:00:00 2001 +From f8e3f95ca4f0e4c67d3ae90cd34f85f90a0cb28e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 15:50:04 +0200 -Subject: [PATCH 141/149] dwc_otg: Add ARCH_BCM2835 support +Subject: [PATCH 141/162] dwc_otg: Add ARCH_BCM2835 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143022,10 +143022,10 @@ index 0f4ebcd..5c83309 100644 } -From 025a502906cf5454047391a95846c4d6a3065240 Mon Sep 17 00:00:00 2001 +From 9d1fb34204f0006ba107d18141cea7cef704b987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 15:50:24 +0200 -Subject: [PATCH 142/149] bcm2835: Use DWC_OTG +Subject: [PATCH 142/162] bcm2835: Use DWC_OTG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143068,10 +143068,10 @@ index c284414..14ef294 100644 CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE_REALTEK=m -From 808a80f803c9f8897b0867a5a7c0d52cfe984bfe Mon Sep 17 00:00:00 2001 +From 1c0ae7f08f8caa4b379b42f1ddd87fe5fc672e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:33:16 +0200 -Subject: [PATCH 143/149] Fix RASPBERRYPI_FIRMWARE dependents +Subject: [PATCH 143/162] Fix RASPBERRYPI_FIRMWARE dependents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143152,10 +143152,10 @@ index 3444a4c..c073d55 100644 select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT -From eca36789db0d78a939c6520e28bbb7f7e8ea1442 Mon Sep 17 00:00:00 2001 +From c9d72e83ed9773da093b38a2ddacb3b465bf7e1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:33:46 +0200 -Subject: [PATCH 144/149] vc_mem: Remove unnecessary include +Subject: [PATCH 144/162] vc_mem: Remove unnecessary include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143178,10 +143178,10 @@ index fcde6b1..be64f23 100644 #define DRIVER_NAME "vc-mem" -From 89df011c7e129660df28ee2bc7744f8ff60ed316 Mon Sep 17 00:00:00 2001 +From 06dd1e810c51fc7328c9f599e6d1216d86fc81ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:34:06 +0200 -Subject: [PATCH 145/149] configs: Remove BCM2708_MBOX +Subject: [PATCH 145/162] configs: Remove BCM2708_MBOX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143230,10 +143230,10 @@ index 7b24274..0859113 100644 # CONFIG_IOMMU_SUPPORT is not set CONFIG_EXTCON=m -From 73e04a4d5c4e57aa0874fa5e79688e2b8eb6d0f8 Mon Sep 17 00:00:00 2001 +From 4d685c71c57dc9f9d83b94cdc540de776a2455de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:34:31 +0200 -Subject: [PATCH 146/149] bcm2708-vcio: Remove module +Subject: [PATCH 146/162] bcm2708-vcio: Remove module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143507,10 +143507,10 @@ index d3ea839..0000000 - -#endif -From f69941fbc0eb961fbf580165ad5022e26095db49 Mon Sep 17 00:00:00 2001 +From 0b9ab0ae470ef7b048af62e8b34f0067b1e8a0d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:34:55 +0200 -Subject: [PATCH 147/149] Revert "firmware: bcm2835: Support legacy mailbox +Subject: [PATCH 147/162] Revert "firmware: bcm2835: Support legacy mailbox API" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -143601,10 +143601,10 @@ index 9a08cf1..d3933af 100644 u32 tag, void *data, size_t len); int rpi_firmware_property_list(struct rpi_firmware *fw, -From 63de8df89946ca2bf9e663941c6d9108d212d1ba Mon Sep 17 00:00:00 2001 +From f93e5ec9dfd270ef3b629d4617e3ea229ed96d72 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 30 Jun 2015 12:35:39 +0100 -Subject: [PATCH 148/149] pinctrl: bcm2835: Clear the event latch register when +Subject: [PATCH 148/162] pinctrl: bcm2835: Clear the event latch register when disabling interrupts It's possible to hit a race condition if interrupts are generated on a GPIO @@ -143641,10 +143641,10 @@ index 986779a..61ef002 100644 spin_unlock_irqrestore(&pc->irq_lock[bank], flags); } -From 8dcf91adc86b5ee16627c8fe777b4e2f5ca4efc1 Mon Sep 17 00:00:00 2001 +From 6c3e912a3ba6ce62ed9cee1827a1f986f1a8af70 Mon Sep 17 00:00:00 2001 From: P33M Date: Tue, 4 Aug 2015 01:15:20 +0100 -Subject: [PATCH 149/149] dwc_otg: fiq_fsm: Make high-speed isochronous strided +Subject: [PATCH 149/162] dwc_otg: fiq_fsm: Make high-speed isochronous strided transfers work properly Certain low-bandwidth high-speed USB devices (specialist audio devices, @@ -143783,3 +143783,1465 @@ index 3f71f29..8db3dfc 100644 break; case FIQ_PER_SPLIT_LS_ABORTED: + +From 3fc3cf653206edcb2a2a6e417ebf09102cb5678a Mon Sep 17 00:00:00 2001 +From: Uli Middelberg +Date: Wed, 17 Jun 2015 10:36:56 +0200 +Subject: [PATCH 150/162] added basic docker support + +--- + arch/arm/configs/bcm2709_defconfig | 3 +++ + arch/arm/configs/bcmrpi_defconfig | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index e3155da..661f09a 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -17,6 +17,7 @@ CONFIG_IKCONFIG=m + CONFIG_IKCONFIG_PROC=y + CONFIG_CGROUP_FREEZER=y + CONFIG_CGROUP_DEVICE=y ++CONFIG_CPUSETS=y + CONFIG_CGROUP_CPUACCT=y + CONFIG_MEMCG=y + CONFIG_BLK_CGROUP=y +@@ -418,6 +419,7 @@ CONFIG_MD_RAID0=m + CONFIG_BLK_DEV_DM=m + CONFIG_DM_CRYPT=m + CONFIG_DM_SNAPSHOT=m ++CONFIG_DM_THIN_PROVISIONING=m + CONFIG_DM_MIRROR=m + CONFIG_DM_LOG_USERSPACE=m + CONFIG_DM_RAID=m +@@ -1115,6 +1117,7 @@ CONFIG_QFMT_V2=m + CONFIG_AUTOFS4_FS=y + CONFIG_FUSE_FS=m + CONFIG_CUSE=m ++CONFIG_OVERLAY_FS=m + CONFIG_FSCACHE=y + CONFIG_FSCACHE_STATS=y + CONFIG_FSCACHE_HISTOGRAM=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 0859113..06e7529 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -16,6 +16,7 @@ CONFIG_IKCONFIG=m + CONFIG_IKCONFIG_PROC=y + CONFIG_CGROUP_FREEZER=y + CONFIG_CGROUP_DEVICE=y ++CONFIG_CPUSETS=y + CONFIG_CGROUP_CPUACCT=y + CONFIG_MEMCG=y + CONFIG_BLK_CGROUP=y +@@ -411,6 +412,7 @@ CONFIG_MD_RAID0=m + CONFIG_BLK_DEV_DM=m + CONFIG_DM_CRYPT=m + CONFIG_DM_SNAPSHOT=m ++CONFIG_DM_THIN_PROVISIONING=m + CONFIG_DM_MIRROR=m + CONFIG_DM_LOG_USERSPACE=m + CONFIG_DM_RAID=m +@@ -1108,6 +1110,7 @@ CONFIG_QFMT_V2=m + CONFIG_AUTOFS4_FS=y + CONFIG_FUSE_FS=m + CONFIG_CUSE=m ++CONFIG_OVERLAY_FS=m + CONFIG_FSCACHE=y + CONFIG_FSCACHE_STATS=y + CONFIG_FSCACHE_HISTOGRAM=y + +From 10df72028fc23daeba903b1f7de812abdaecae1d Mon Sep 17 00:00:00 2001 +From: Garrett +Date: Thu, 2 Jul 2015 19:32:04 -0500 +Subject: [PATCH 151/162] bcm2835 camera planar/packed stride length + +Added a field to the mmal_fmt struct used to compute the bytes per line +when using a particular format. This results in the correct stride being +calculated even when the format is planar. + +Signed-off-by: Garrett Wilson +--- + drivers/media/platform/bcm2835/bcm2835-camera.c | 26 +++++++++++++++++++------ + drivers/media/platform/bcm2835/mmal-common.h | 1 + + 2 files changed, 21 insertions(+), 6 deletions(-) + +diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.c b/drivers/media/platform/bcm2835/bcm2835-camera.c +index eb4d831..04a1711 100644 +--- a/drivers/media/platform/bcm2835/bcm2835-camera.c ++++ b/drivers/media/platform/bcm2835/bcm2835-camera.c +@@ -88,12 +88,13 @@ static const struct v4l2_fract + /* video formats */ + static struct mmal_fmt formats[] = { + { +- .name = "4:2:0, packed YUV", ++ .name = "4:2:0, planar, YUV", + .fourcc = V4L2_PIX_FMT_YUV420, + .flags = 0, + .mmal = MMAL_ENCODING_I420, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { + .name = "4:2:2, packed, YUYV", +@@ -102,6 +103,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_YUYV, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { + .name = "RGB24 (LE)", +@@ -110,6 +112,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_BGR24, + .depth = 24, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 3, + }, + { + .name = "JPEG", +@@ -118,6 +121,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_JPEG, + .depth = 8, + .mmal_component = MMAL_COMPONENT_IMAGE_ENCODE, ++ .ybbp = 0, + }, + { + .name = "H264", +@@ -126,6 +130,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_H264, + .depth = 8, + .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE, ++ .ybbp = 0, + }, + { + .name = "MJPEG", +@@ -134,6 +139,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_MJPEG, + .depth = 8, + .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE, ++ .ybbp = 0, + }, + { + .name = "4:2:2, packed, YVYU", +@@ -142,6 +148,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_YVYU, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { + .name = "4:2:2, packed, VYUY", +@@ -150,6 +157,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_VYUY, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { + .name = "4:2:2, packed, UYVY", +@@ -158,14 +166,16 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_UYVY, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { +- .name = "4:2:0, packed, NV12", ++ .name = "4:2:0, planar, NV12", + .fourcc = V4L2_PIX_FMT_NV12, + .flags = 0, + .mmal = MMAL_ENCODING_NV12, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { + .name = "RGB24 (BE)", +@@ -174,22 +184,25 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_RGB24, + .depth = 24, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 3, + }, + { +- .name = "4:2:0, packed YVU", ++ .name = "4:2:0, planar, YVU", + .fourcc = V4L2_PIX_FMT_YVU420, + .flags = 0, + .mmal = MMAL_ENCODING_YV12, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { +- .name = "4:2:0, packed, NV21", ++ .name = "4:2:0, planar, NV21", + .fourcc = V4L2_PIX_FMT_NV21, + .flags = 0, + .mmal = MMAL_ENCODING_NV21, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { + .name = "RGB32 (BE)", +@@ -198,6 +211,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_BGRA, + .depth = 32, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 4, + }, + }; + +@@ -771,7 +785,7 @@ static int vidioc_g_fbuf(struct file *file, void *fh, + a->fmt.width = preview_port->es.video.width; + a->fmt.height = preview_port->es.video.height; + a->fmt.pixelformat = V4L2_PIX_FMT_YUV420; +- a->fmt.bytesperline = (preview_port->es.video.width * 3)>>1; ++ a->fmt.bytesperline = preview_port->es.video.width; + a->fmt.sizeimage = (preview_port->es.video.width * + preview_port->es.video.height * 3)>>1; + a->fmt.colorspace = V4L2_COLORSPACE_SMPTE170M; +@@ -894,7 +908,7 @@ static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, + + v4l_bound_align_image(&f->fmt.pix.width, MIN_WIDTH, MAX_WIDTH, 1, + &f->fmt.pix.height, MIN_HEIGHT, MAX_HEIGHT, 1, 0); +- f->fmt.pix.bytesperline = (f->fmt.pix.width * mfmt->depth)>>3; ++ f->fmt.pix.bytesperline = f->fmt.pix.width * mfmt->ybbp; + + /* Image buffer has to be padded to allow for alignment, even though + * we then remove that padding before delivering the buffer. +diff --git a/drivers/media/platform/bcm2835/mmal-common.h b/drivers/media/platform/bcm2835/mmal-common.h +index 35698c8..15788a1 100644 +--- a/drivers/media/platform/bcm2835/mmal-common.h ++++ b/drivers/media/platform/bcm2835/mmal-common.h +@@ -30,6 +30,7 @@ struct mmal_fmt { + u32 mmal; + int depth; + u32 mmal_component; /* MMAL component index to be used to encode */ ++ u32 ybbp; /* depth of first Y plane for planar formats */ + }; + + /* buffer for one video frame */ +From 65fe96220f731c79830f8b7085a97551e6321d5e Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 28 Jul 2015 13:55:04 +0100 +Subject: [PATCH 153/162] config: Add Mediatek mt7601u wifi driver + +--- + arch/arm/configs/bcm2709_defconfig | 2 ++ + arch/arm/configs/bcmrpi_defconfig | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 661f09a..e5af037 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -518,6 +518,8 @@ CONFIG_RT2800USB_RT3573=y + CONFIG_RT2800USB_RT53XX=y + CONFIG_RT2800USB_RT55XX=y + CONFIG_RT2800USB_UNKNOWN=y ++CONFIG_WL_MEDIATEK=y ++CONFIG_MT7601U=m + CONFIG_RTL8192CU=m + CONFIG_ZD1211RW=m + CONFIG_MWIFIEX=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 06e7529..a377222 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -511,6 +511,8 @@ CONFIG_RT2800USB_RT3573=y + CONFIG_RT2800USB_RT53XX=y + CONFIG_RT2800USB_RT55XX=y + CONFIG_RT2800USB_UNKNOWN=y ++CONFIG_WL_MEDIATEK=y ++CONFIG_MT7601U=m + CONFIG_RTL8192CU=m + CONFIG_ZD1211RW=m + CONFIG_MWIFIEX=m + +From 075c169a20454a6bb347c1854bfad2557224fb9e Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 17 Aug 2015 10:49:44 +0100 +Subject: [PATCH 154/162] BCM270X_DT: Add pwm and pwm-2chan overlays + +From the README entries: + Legal pin,function combinations for each channel: + PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) + PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) + N.B.: + 1) Pin 18 is the only one available on all platforms, and + it is the one used by the I2S audio interface. + Pins 12 and 13 might be better choices on an A+, B+ or Pi2. + 2) The onboard analogue audio output uses both PWM channels. + 3) So be careful mixing audio and PWM. + 4) Currently the clock must have been enabled and configured + by other means. + +See: https://github.com/raspberrypi/linux/issues/756 +--- + arch/arm/boot/dts/bcm2708_common.dtsi | 16 +++++++++ + arch/arm/boot/dts/overlays/Makefile | 2 ++ + arch/arm/boot/dts/overlays/README | 41 +++++++++++++++++++++ + arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 46 ++++++++++++++++++++++++ + arch/arm/boot/dts/overlays/pwm-overlay.dts | 42 ++++++++++++++++++++++ + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + drivers/pwm/Kconfig | 2 +- + 8 files changed, 150 insertions(+), 1 deletion(-) + create mode 100644 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts + create mode 100644 arch/arm/boot/dts/overlays/pwm-overlay.dts + +diff --git a/arch/arm/boot/dts/bcm2708_common.dtsi b/arch/arm/boot/dts/bcm2708_common.dtsi +index d1c3bdf..ea3bd9ca 100644 +--- a/arch/arm/boot/dts/bcm2708_common.dtsi ++++ b/arch/arm/boot/dts/bcm2708_common.dtsi +@@ -154,6 +154,14 @@ + status = "disabled"; + }; + ++ pwm: pwm@7e20c000 { ++ compatible = "brcm,bcm2835-pwm"; ++ reg = <0x7e20c000 0x28>; ++ clocks = <&clk_pwm>; ++ #pwm-cells = <2>; ++ status = "disabled"; ++ }; ++ + uart1: uart@7e215040 { + compatible = "brcm,bcm2835-aux-uart", "ns16550"; + reg = <0x7e215040 0x40>; +@@ -279,6 +287,14 @@ + clock-output-names = "apb_pclk"; + clock-frequency = <126000000>; + }; ++ ++ clk_pwm: clock@5 { ++ compatible = "fixed-clock"; ++ reg = <3>; ++ #clock-cells = <0>; ++ clock-output-names = "pwm"; ++ clock-frequency = <100000000>; ++ }; + }; + + __overrides__ { +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 5f6082f..753554b 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -35,6 +35,8 @@ dtb-$(RPI_DT_OVERLAYS) += mz61581-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += pitft28-resistive-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += pwm-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += pwm-2chan-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += rpi-dac-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += rpi-display-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += rpi-ft5406-overlay.dtb +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index ed484ae..1cd2140 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -410,6 +410,47 @@ Load: dtoverlay=pps-gpio,= + Params: gpiopin Input GPIO (default "18") + + ++Name: pwm ++Info: Configures a single PWM channel ++ Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++ 4) Currently the clock must have been enabled and configured ++ by other means. ++Load: dtoverlay=pwm-2chan,= ++Load: dtoverlay=pwm,= ++Params: pin Output pin (default 18) - see table ++ func Pin function (default 2 = Alt5) - see above ++ clock PWM clock frequency (informational) ++ ++ ++Name: pwm-2chan ++Info: Configures both PWM channels ++ Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++ 4) Currently the clock must have been enabled and configured ++ by other means. ++Load: dtoverlay=pwm-2chan,= ++Params: pin Output pin (default 18) - see table ++ pin2 Output pin for other channel (default 19) ++ func Pin function (default 2 = Alt5) - see above ++ func2 Function for pin2 (default 2 = Alt5) ++ clock PWM clock frequency (informational) ++ ++ + Name: rpi-dac + Info: Configures the RPi DAC audio card + Load: dtoverlay=rpi-dac +diff --git a/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts b/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts +new file mode 100644 +index 0000000..957e1a4 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts +@@ -0,0 +1,46 @@ ++/dts-v1/; ++/plugin/; ++ ++/* ++This is the 2-channel overlay - only use it if you need both channels. ++ ++Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ ++N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++*/ ++ ++/ { ++ fragment@0 { ++ target = <&gpio>; ++ __overlay__ { ++ pwm_pins: pwm_pins { ++ brcm,pins = <18 19>; ++ brcm,function = <2 2>; /* Alt5 */ ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&pwm>; ++ __overlay__ { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pwm_pins>; ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ pin = <&pwm_pins>,"brcm,pins:0"; ++ pin2 = <&pwm_pins>,"brcm,pins:4"; ++ func = <&pwm_pins>,"brcm,function:0"; ++ func2 = <&pwm_pins>,"brcm,function:4"; ++ clock = <&clk_pwm>,"clock-frequency:0"; ++ }; ++}; +diff --git a/arch/arm/boot/dts/overlays/pwm-overlay.dts b/arch/arm/boot/dts/overlays/pwm-overlay.dts +new file mode 100644 +index 0000000..ddd67ff +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pwm-overlay.dts +@@ -0,0 +1,42 @@ ++/dts-v1/; ++/plugin/; ++ ++/* ++Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ ++N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++*/ ++ ++/ { ++ fragment@0 { ++ target = <&gpio>; ++ __overlay__ { ++ pwm_pins: pwm_pins { ++ brcm,pins = <18>; ++ brcm,function = <2>; /* Alt5 */ ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&pwm>; ++ __overlay__ { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pwm_pins>; ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ pin = <&pwm_pins>,"brcm,pins:0"; ++ func = <&pwm_pins>,"brcm,function:0"; ++ clock = <&clk_pwm>,"clock-frequency:0"; ++ }; ++}; +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index e5af037..d7457fc 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1091,6 +1091,7 @@ CONFIG_IIO_BUFFER=y + CONFIG_IIO_BUFFER_CB=y + CONFIG_IIO_KFIFO_BUF=m + CONFIG_DHT11=m ++CONFIG_PWM_BCM2835=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index a377222..59b2fdd 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1084,6 +1084,7 @@ CONFIG_IIO_BUFFER=y + CONFIG_IIO_BUFFER_CB=y + CONFIG_IIO_KFIFO_BUF=m + CONFIG_DHT11=m ++CONFIG_PWM_BCM2835=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y +diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig +index b1541f4..90591a9 100644 +--- a/drivers/pwm/Kconfig ++++ b/drivers/pwm/Kconfig +@@ -85,7 +85,7 @@ config PWM_BCM_KONA + + config PWM_BCM2835 + tristate "BCM2835 PWM support" +- depends on ARCH_BCM2835 ++ depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 + help + PWM framework driver for BCM2835 controller (Raspberry Pi) + + +From 6ab6379ee9a376822bfc7ab62e8b9eaddd50f908 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Apr 2015 07:33:03 +0000 +Subject: [PATCH 155/162] spi: bcm2835: fallback to interrupt for polling + timeouts exceeding 2 jiffies + +The polling mode of the driver is designed for transfers that run +less than 30us - it will only execute under those circumstances. +So it should run comfortably without getting interrupted by the +scheduler. + +But there are situations where the raspberry pi is so overloaded +that it can take up to 80 jiffies until the polling thread gets +rescheduled - this has been observed especially under heavy +IO situations. + +In such a situation we now fall back to the interrupt handler and +log the situation at debug level. + +Signed-off-by: Martin Sperl +Signed-off-by: Mark Brown +(cherry picked from commit a750b124cfd27bae1a12df22318db5a2083dfb12) +--- + drivers/spi/spi-bcm2835.c | 87 +++++++++++++++++++++++++++-------------------- + 1 file changed, 50 insertions(+), 37 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 55e81c2..fc3c6f7 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -69,7 +69,7 @@ + #define BCM2835_SPI_CS_CS_01 0x00000001 + + #define BCM2835_SPI_POLLING_LIMIT_US 30 +-#define BCM2835_SPI_TIMEOUT_MS 30000 ++#define BCM2835_SPI_POLLING_JIFFIES 2 + #define BCM2835_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \ + | SPI_NO_CS | SPI_3WIRE) + +@@ -157,42 +157,6 @@ static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id) + return IRQ_HANDLED; + } + +-static int bcm2835_spi_transfer_one_poll(struct spi_master *master, +- struct spi_device *spi, +- struct spi_transfer *tfr, +- u32 cs, +- unsigned long xfer_time_us) +-{ +- struct bcm2835_spi *bs = spi_master_get_devdata(master); +- /* set timeout to 1 second of maximum polling */ +- unsigned long timeout = jiffies + HZ; +- +- /* enable HW block without interrupts */ +- bcm2835_wr(bs, BCM2835_SPI_CS, cs | BCM2835_SPI_CS_TA); +- +- /* loop until finished the transfer */ +- while (bs->rx_len) { +- /* read from fifo as much as possible */ +- bcm2835_rd_fifo(bs); +- /* fill in tx fifo as much as possible */ +- bcm2835_wr_fifo(bs); +- /* if we still expect some data after the read, +- * check for a possible timeout +- */ +- if (bs->rx_len && time_after(jiffies, timeout)) { +- /* Transfer complete - reset SPI HW */ +- bcm2835_spi_reset_hw(master); +- /* and return timeout */ +- return -ETIMEDOUT; +- } +- } +- +- /* Transfer complete - reset SPI HW */ +- bcm2835_spi_reset_hw(master); +- /* and return without waiting for completion */ +- return 0; +-} +- + static int bcm2835_spi_transfer_one_irq(struct spi_master *master, + struct spi_device *spi, + struct spi_transfer *tfr, +@@ -229,6 +193,55 @@ static int bcm2835_spi_transfer_one_irq(struct spi_master *master, + return 1; + } + ++static int bcm2835_spi_transfer_one_poll(struct spi_master *master, ++ struct spi_device *spi, ++ struct spi_transfer *tfr, ++ u32 cs, ++ unsigned long xfer_time_us) ++{ ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ unsigned long timeout; ++ ++ /* enable HW block without interrupts */ ++ bcm2835_wr(bs, BCM2835_SPI_CS, cs | BCM2835_SPI_CS_TA); ++ ++ /* fill in the fifo before timeout calculations ++ * if we are interrupted here, then the data is ++ * getting transferred by the HW while we are interrupted ++ */ ++ bcm2835_wr_fifo(bs); ++ ++ /* set the timeout */ ++ timeout = jiffies + BCM2835_SPI_POLLING_JIFFIES; ++ ++ /* loop until finished the transfer */ ++ while (bs->rx_len) { ++ /* fill in tx fifo with remaining data */ ++ bcm2835_wr_fifo(bs); ++ ++ /* read from fifo as much as possible */ ++ bcm2835_rd_fifo(bs); ++ ++ /* if there is still data pending to read ++ * then check the timeout ++ */ ++ if (bs->rx_len && time_after(jiffies, timeout)) { ++ dev_dbg_ratelimited(&spi->dev, ++ "timeout period reached: jiffies: %lu remaining tx/rx: %d/%d - falling back to interrupt mode\n", ++ jiffies - timeout, ++ bs->tx_len, bs->rx_len); ++ /* fall back to interrupt mode */ ++ return bcm2835_spi_transfer_one_irq(master, spi, ++ tfr, cs); ++ } ++ } ++ ++ /* Transfer complete - reset SPI HW */ ++ bcm2835_spi_reset_hw(master); ++ /* and return without waiting for completion */ ++ return 0; ++} ++ + static int bcm2835_spi_transfer_one(struct spi_master *master, + struct spi_device *spi, + struct spi_transfer *tfr) + +From 152383427aa10dfa7bf146f4f166dbbd9fdb4a1c Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Sun, 10 May 2015 20:47:28 +0000 +Subject: [PATCH 156/162] spi: bcm2835: enable dma modes for transfers meeting + certain conditions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Conditions per spi_transfer are: +* transfer.len >= 96 bytes (to avoid mapping overhead costs) +* transfer.len < 65536 bytes (limitaion by spi-hw block - could get extended) +* an individual scatter/gather transfer length must be a multiple of 4 + for anything but the last transfer - spi-hw block limit. + (some shortcut has been taken in can_dma to avoid unnecessary mapping of + pages which, for which there is a chance that there is a split with a + transfer length not a multiple of 4) + +If it becomes a necessity these restrictions can get removed by additional +code. + +Note that this patch requires a patch to dma-bcm2835.c by Noralf to +enable scatter-gather mode inside the dmaengine, which has not been +merged yet. + +That is why no patch to arch/arm/boot/dts/bcm2835.dtsi is included - the +code works as before without dma when tx/rx are not set, but it writes +a message warning about dma not used: +spi-bcm2835 20204000.spi: no tx-dma configuration found - not using dma mode + +To enable dma-mode add the following lines to the device-tree: + dmas = <&dma 6>, <&dma 7>; + dma-names = "tx", "rx"; + +Tested-by: Noralf Trønnes (private communication) +Signed-off-by: Martin Sperl +Signed-off-by: Mark Brown +(cherry picked from commit 3ecd37edaa2a6ba3246e2c35714be9316b1087fe) +--- + drivers/spi/spi-bcm2835.c | 303 +++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 301 insertions(+), 2 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index fc3c6f7..7af0fb2 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -23,15 +23,18 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include + #include + #include + #include +-#include +-#include ++#include + #include ++#include ++#include + #include + + /* SPI register offsets */ +@@ -70,6 +73,7 @@ + + #define BCM2835_SPI_POLLING_LIMIT_US 30 + #define BCM2835_SPI_POLLING_JIFFIES 2 ++#define BCM2835_SPI_DMA_MIN_LENGTH 96 + #define BCM2835_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \ + | SPI_NO_CS | SPI_3WIRE) + +@@ -83,6 +87,7 @@ struct bcm2835_spi { + u8 *rx_buf; + int tx_len; + int rx_len; ++ bool dma_pending; + }; + + static inline u32 bcm2835_rd(struct bcm2835_spi *bs, unsigned reg) +@@ -128,12 +133,15 @@ static void bcm2835_spi_reset_hw(struct spi_master *master) + /* Disable SPI interrupts and transfer */ + cs &= ~(BCM2835_SPI_CS_INTR | + BCM2835_SPI_CS_INTD | ++ BCM2835_SPI_CS_DMAEN | + BCM2835_SPI_CS_TA); + /* and reset RX/TX FIFOS */ + cs |= BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX; + + /* and reset the SPI_HW */ + bcm2835_wr(bs, BCM2835_SPI_CS, cs); ++ /* as well as DLEN */ ++ bcm2835_wr(bs, BCM2835_SPI_DLEN, 0); + } + + static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id) +@@ -193,6 +201,279 @@ static int bcm2835_spi_transfer_one_irq(struct spi_master *master, + return 1; + } + ++/* ++ * DMA support ++ * ++ * this implementation has currently a few issues in so far as it does ++ * not work arrount limitations of the HW. ++ * ++ * the main one being that DMA transfers are limited to 16 bit ++ * (so 0 to 65535 bytes) by the SPI HW due to BCM2835_SPI_DLEN ++ * ++ * also we currently assume that the scatter-gather fragments are ++ * all multiple of 4 (except the last) - otherwise we would need ++ * to reset the FIFO before subsequent transfers... ++ * this also means that tx/rx transfers sg's need to be of equal size! ++ * ++ * there may be a few more border-cases we may need to address as well ++ * but unfortunately this would mean splitting up the scatter-gather ++ * list making it slightly unpractical... ++ */ ++static void bcm2835_spi_dma_done(void *data) ++{ ++ struct spi_master *master = data; ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ ++ /* reset fifo and HW */ ++ bcm2835_spi_reset_hw(master); ++ ++ /* and terminate tx-dma as we do not have an irq for it ++ * because when the rx dma will terminate and this callback ++ * is called the tx-dma must have finished - can't get to this ++ * situation otherwise... ++ */ ++ dmaengine_terminate_all(master->dma_tx); ++ ++ /* mark as no longer pending */ ++ bs->dma_pending = 0; ++ ++ /* and mark as completed */; ++ complete(&master->xfer_completion); ++} ++ ++static int bcm2835_spi_prepare_sg(struct spi_master *master, ++ struct spi_transfer *tfr, ++ bool is_tx) ++{ ++ struct dma_chan *chan; ++ struct scatterlist *sgl; ++ unsigned int nents; ++ enum dma_transfer_direction dir; ++ unsigned long flags; ++ ++ struct dma_async_tx_descriptor *desc; ++ dma_cookie_t cookie; ++ ++ if (is_tx) { ++ dir = DMA_MEM_TO_DEV; ++ chan = master->dma_tx; ++ nents = tfr->tx_sg.nents; ++ sgl = tfr->tx_sg.sgl; ++ flags = 0 /* no tx interrupt */; ++ ++ } else { ++ dir = DMA_DEV_TO_MEM; ++ chan = master->dma_rx; ++ nents = tfr->rx_sg.nents; ++ sgl = tfr->rx_sg.sgl; ++ flags = DMA_PREP_INTERRUPT; ++ } ++ /* prepare the channel */ ++ desc = dmaengine_prep_slave_sg(chan, sgl, nents, dir, flags); ++ if (!desc) ++ return -EINVAL; ++ ++ /* set callback for rx */ ++ if (!is_tx) { ++ desc->callback = bcm2835_spi_dma_done; ++ desc->callback_param = master; ++ } ++ ++ /* submit it to DMA-engine */ ++ cookie = dmaengine_submit(desc); ++ ++ return dma_submit_error(cookie); ++} ++ ++static inline int bcm2835_check_sg_length(struct sg_table *sgt) ++{ ++ int i; ++ struct scatterlist *sgl; ++ ++ /* check that the sg entries are word-sized (except for last) */ ++ for_each_sg(sgt->sgl, sgl, (int)sgt->nents - 1, i) { ++ if (sg_dma_len(sgl) % 4) ++ return -EFAULT; ++ } ++ ++ return 0; ++} ++ ++static int bcm2835_spi_transfer_one_dma(struct spi_master *master, ++ struct spi_device *spi, ++ struct spi_transfer *tfr, ++ u32 cs) ++{ ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ int ret; ++ ++ /* check that the scatter gather segments are all a multiple of 4 */ ++ if (bcm2835_check_sg_length(&tfr->tx_sg) || ++ bcm2835_check_sg_length(&tfr->rx_sg)) { ++ dev_warn_once(&spi->dev, ++ "scatter gather segment length is not a multiple of 4 - falling back to interrupt mode\n"); ++ return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); ++ } ++ ++ /* setup tx-DMA */ ++ ret = bcm2835_spi_prepare_sg(master, tfr, true); ++ if (ret) ++ return ret; ++ ++ /* start TX early */ ++ dma_async_issue_pending(master->dma_tx); ++ ++ /* mark as dma pending */ ++ bs->dma_pending = 1; ++ ++ /* set the DMA length */ ++ bcm2835_wr(bs, BCM2835_SPI_DLEN, tfr->len); ++ ++ /* start the HW */ ++ bcm2835_wr(bs, BCM2835_SPI_CS, ++ cs | BCM2835_SPI_CS_TA | BCM2835_SPI_CS_DMAEN); ++ ++ /* setup rx-DMA late - to run transfers while ++ * mapping of the rx buffers still takes place ++ * this saves 10us or more. ++ */ ++ ret = bcm2835_spi_prepare_sg(master, tfr, false); ++ if (ret) { ++ /* need to reset on errors */ ++ dmaengine_terminate_all(master->dma_tx); ++ bcm2835_spi_reset_hw(master); ++ return ret; ++ } ++ ++ /* start rx dma late */ ++ dma_async_issue_pending(master->dma_rx); ++ ++ /* wait for wakeup in framework */ ++ return 1; ++} ++ ++static bool bcm2835_spi_can_dma(struct spi_master *master, ++ struct spi_device *spi, ++ struct spi_transfer *tfr) ++{ ++ /* only run for gpio_cs */ ++ if (!gpio_is_valid(spi->cs_gpio)) ++ return false; ++ ++ /* we start DMA efforts only on bigger transfers */ ++ if (tfr->len < BCM2835_SPI_DMA_MIN_LENGTH) ++ return false; ++ ++ /* BCM2835_SPI_DLEN has defined a max transfer size as ++ * 16 bit, so max is 65535 ++ * we can revisit this by using an alternative transfer ++ * method - ideally this would get done without any more ++ * interaction... ++ */ ++ if (tfr->len > 65535) { ++ dev_warn_once(&spi->dev, ++ "transfer size of %d too big for dma-transfer\n", ++ tfr->len); ++ return false; ++ } ++ ++ /* if we run rx/tx_buf with word aligned addresses then we are OK */ ++ if (((u32)tfr->tx_buf % 4 == 0) && ((u32)tfr->tx_buf % 4 == 0)) ++ return true; ++ ++ /* otherwise we only allow transfers within the same page ++ * to avoid wasting time on dma_mapping when it is not practical ++ */ ++ if (((u32)tfr->tx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ dev_warn_once(&spi->dev, ++ "Unaligned spi tx-transfer bridging page\n"); ++ return false; ++ } ++ if (((u32)tfr->rx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ dev_warn_once(&spi->dev, ++ "Unaligned spi tx-transfer bridging page\n"); ++ return false; ++ } ++ ++ /* return OK */ ++ return true; ++} ++ ++void bcm2835_dma_release(struct spi_master *master) ++{ ++ if (master->dma_tx) { ++ dmaengine_terminate_all(master->dma_tx); ++ dma_release_channel(master->dma_tx); ++ master->dma_tx = NULL; ++ } ++ if (master->dma_rx) { ++ dmaengine_terminate_all(master->dma_rx); ++ dma_release_channel(master->dma_rx); ++ master->dma_rx = NULL; ++ } ++} ++ ++void bcm2835_dma_init(struct spi_master *master, struct device *dev) ++{ ++ struct dma_slave_config slave_config; ++ const __be32 *addr; ++ dma_addr_t dma_reg_base; ++ int ret; ++ ++ /* base address in dma-space */ ++ addr = of_get_address(master->dev.of_node, 0, NULL, NULL); ++ if (!addr) { ++ dev_err(dev, "could not get DMA-register address - not using dma mode\n"); ++ goto err; ++ } ++ dma_reg_base = be32_to_cpup(addr); ++ ++ /* get tx/rx dma */ ++ master->dma_tx = dma_request_slave_channel(dev, "tx"); ++ if (!master->dma_tx) { ++ dev_err(dev, "no tx-dma configuration found - not using dma mode\n"); ++ goto err; ++ } ++ master->dma_rx = dma_request_slave_channel(dev, "rx"); ++ if (!master->dma_rx) { ++ dev_err(dev, "no rx-dma configuration found - not using dma mode\n"); ++ goto err_release; ++ } ++ ++ /* configure DMAs */ ++ slave_config.direction = DMA_MEM_TO_DEV; ++ slave_config.dst_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO); ++ slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; ++ ++ ret = dmaengine_slave_config(master->dma_tx, &slave_config); ++ if (ret) ++ goto err_config; ++ ++ slave_config.direction = DMA_DEV_TO_MEM; ++ slave_config.src_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO); ++ slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; ++ ++ ret = dmaengine_slave_config(master->dma_rx, &slave_config); ++ if (ret) ++ goto err_config; ++ ++ /* all went well, so set can_dma */ ++ master->can_dma = bcm2835_spi_can_dma; ++ master->max_dma_len = 65535; /* limitation by BCM2835_SPI_DLEN */ ++ /* need to do TX AND RX DMA, so we need dummy buffers */ ++ master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX; ++ ++ return; ++ ++err_config: ++ dev_err(dev, "issue configuring dma: %d - not using DMA mode\n", ++ ret); ++err_release: ++ bcm2835_dma_release(master); ++err: ++ return; ++} ++ + static int bcm2835_spi_transfer_one_poll(struct spi_master *master, + struct spi_device *spi, + struct spi_transfer *tfr, +@@ -301,12 +582,26 @@ static int bcm2835_spi_transfer_one(struct spi_master *master, + return bcm2835_spi_transfer_one_poll(master, spi, tfr, + cs, xfer_time_us); + ++ /* run in dma mode if conditions are right */ ++ if (master->can_dma && bcm2835_spi_can_dma(master, spi, tfr)) ++ return bcm2835_spi_transfer_one_dma(master, spi, tfr, cs); ++ ++ /* run in interrupt-mode */ + return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); + } + + static void bcm2835_spi_handle_err(struct spi_master *master, + struct spi_message *msg) + { ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ ++ /* if an error occurred and we have an active dma, then terminate */ ++ if (bs->dma_pending) { ++ dmaengine_terminate_all(master->dma_tx); ++ dmaengine_terminate_all(master->dma_rx); ++ bs->dma_pending = 0; ++ } ++ /* and reset */ + bcm2835_spi_reset_hw(master); + } + +@@ -505,6 +800,8 @@ static int bcm2835_spi_probe(struct platform_device *pdev) + goto out_clk_disable; + } + ++ bcm2835_dma_init(master, &pdev->dev); ++ + /* initialise the hardware with the default polarities */ + bcm2835_wr(bs, BCM2835_SPI_CS, + BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX); +@@ -535,6 +832,8 @@ static int bcm2835_spi_remove(struct platform_device *pdev) + + clk_disable_unprepare(bs->clk); + ++ bcm2835_dma_release(master); ++ + return 0; + } + + +From 42908111d24a8e1a2d2f2459d427f08628c9e2d3 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Tue, 12 May 2015 10:32:08 +0000 +Subject: [PATCH 157/162] spi: bcm2835: fix kbuild compile warnings/errors and + a typo + +fixes several warnings/error emmitted by the kbuild system: +* warn: cast from pointer to integer of different size + using size_t instead of u32 +* error: 'SZ_4K' undeclared + moved to PAGE_SIZE and PAGE_MASK instead + +Review showed also a typo in the same code where tx_buff +was checked twice instead of checking both rx and tx_buff. + +Reported by: Stephen Rothwell +Signed-off-by: Martin Sperl +Signed-off-by: Mark Brown +(cherry picked from commit 7e52be0d576e8f7bc99a606f07b9d000c4340f04) +--- + drivers/spi/spi-bcm2835.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 7af0fb2..9d80cea 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -20,6 +20,7 @@ + * GNU General Public License for more details. + */ + ++#include + #include + #include + #include +@@ -378,18 +379,19 @@ static bool bcm2835_spi_can_dma(struct spi_master *master, + } + + /* if we run rx/tx_buf with word aligned addresses then we are OK */ +- if (((u32)tfr->tx_buf % 4 == 0) && ((u32)tfr->tx_buf % 4 == 0)) ++ if ((((size_t)tfr->rx_buf & 3) == 0) && ++ (((size_t)tfr->tx_buf & 3) == 0)) + return true; + + /* otherwise we only allow transfers within the same page + * to avoid wasting time on dma_mapping when it is not practical + */ +- if (((u32)tfr->tx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ if (((size_t)tfr->tx_buf & PAGE_MASK) + tfr->len > PAGE_SIZE) { + dev_warn_once(&spi->dev, + "Unaligned spi tx-transfer bridging page\n"); + return false; + } +- if (((u32)tfr->rx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ if (((size_t)tfr->rx_buf & PAGE_MASK) + tfr->len > PAGE_SIZE) { + dev_warn_once(&spi->dev, + "Unaligned spi tx-transfer bridging page\n"); + return false; + +From 3a66d068d6fcdce451b5af6c3be81d54774b2033 Mon Sep 17 00:00:00 2001 +From: kbuild test robot +Date: Tue, 12 May 2015 19:43:59 +0800 +Subject: [PATCH 158/162] spi: bcm2835: bcm2835_dma_release() can be static + +Signed-off-by: Fengguang Wu +Signed-off-by: Mark Brown +(cherry picked from commit 29ad1a7a9e08f1d2b6795c5278a0c0fd23679ded) +--- + drivers/spi/spi-bcm2835.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 9d80cea..338babc3 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -401,7 +401,7 @@ static bool bcm2835_spi_can_dma(struct spi_master *master, + return true; + } + +-void bcm2835_dma_release(struct spi_master *master) ++static void bcm2835_dma_release(struct spi_master *master) + { + if (master->dma_tx) { + dmaengine_terminate_all(master->dma_tx); +@@ -415,7 +415,7 @@ void bcm2835_dma_release(struct spi_master *master) + } + } + +-void bcm2835_dma_init(struct spi_master *master, struct device *dev) ++static void bcm2835_dma_init(struct spi_master *master, struct device *dev) + { + struct dma_slave_config slave_config; + const __be32 *addr; + +From e18f00124628ffb928493bd578c5a6491d58fe32 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Jul 2015 07:43:28 +0000 +Subject: [PATCH 159/162] spi: bcm2835: fixed compile issues due to embedded + comments... replaced with #if to avoid issues in the future. + +Signed-off-by: Martin Sperl +--- + drivers/spi/spi-bcm2835.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 338babc3..cedffe1 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -592,6 +592,7 @@ static int bcm2835_spi_transfer_one(struct spi_master *master, + return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); + } + ++#if 0 + static void bcm2835_spi_handle_err(struct spi_master *master, + struct spi_message *msg) + { +@@ -606,6 +607,7 @@ static void bcm2835_spi_handle_err(struct spi_master *master, + /* and reset */ + bcm2835_spi_reset_hw(master); + } ++#endif + + static void bcm2835_spi_set_cs(struct spi_device *spi, bool gpio_level) + { + +From 69794b31211b139007174ee11f114a280e219010 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Jul 2015 08:34:41 +0000 +Subject: [PATCH 160/162] dt-overlay to enable dma for spi driver + +Signed-off-by: Martin Sperl +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/spi-dma-overlay.dts | 20 ++++++++++++++++++++ + 2 files changed, 21 insertions(+) + create mode 100755 arch/arm/boot/dts/overlays/spi-dma-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 753554b..956e395 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -45,6 +45,7 @@ dtb-$(RPI_DT_OVERLAYS) += rpi-sense-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += spi-bcm2708-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += spi-bcm2835-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += spi-dma-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += vga666-overlay.dtb +diff --git a/arch/arm/boot/dts/overlays/spi-dma-overlay.dts b/arch/arm/boot/dts/overlays/spi-dma-overlay.dts +new file mode 100755 +index 0000000..266cf9d +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/spi-dma-overlay.dts +@@ -0,0 +1,20 @@ ++/* ++ * Device tree overlay for spi-bcm2835 to allow dma ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709"; ++ ++ fragment@0 { ++ target = <&spi0>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ dmas = <&dma 6>, <&dma 7>; ++ dma-names = "tx", "rx"; ++ }; ++ }; ++ }; + +From 79d39de11b85457f42ded83c2d4b964b3d550e5d Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Jul 2015 12:41:54 +0000 +Subject: [PATCH 161/162] dt: overlay: added documentation of spi-dma overlay + +Signed-off-by: Martin Sperl +--- + arch/arm/boot/dts/overlays/README | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 1cd2140..bda8c14 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -515,6 +515,12 @@ Load: dtoverlay=spi-bcm2835 + Params: + + ++Name: spi-dma ++Info: enables dma modes for spi-bcm2835 ++Load: dtoverlay=spi-dma ++Params: ++ ++ + Name: tinylcd35 + Info: 3.5" Color TFT Display by www.tinylcd.com + Options: Touch, RTC, keypad + +From 93a6b249eecf2bfde203d0c9ef8972c57c07c64d Mon Sep 17 00:00:00 2001 +From: Serge Schneider +Date: Mon, 17 Aug 2015 18:06:16 +0100 +Subject: [PATCH 162/162] rpisense-fb: add low-light mode and gamma control + +--- + drivers/video/fbdev/rpisense-fb.c | 68 +++++++++++++++++++++++++++++--- + include/linux/mfd/rpisense/framebuffer.h | 6 ++- + 2 files changed, 68 insertions(+), 6 deletions(-) + +diff --git a/drivers/video/fbdev/rpisense-fb.c b/drivers/video/fbdev/rpisense-fb.c +index 99bb8ea..90553fa 100644 +--- a/drivers/video/fbdev/rpisense-fb.c ++++ b/drivers/video/fbdev/rpisense-fb.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -26,22 +27,35 @@ + #include + #include + ++static bool lowlight; ++module_param(lowlight, bool, 0); ++MODULE_PARM_DESC(lowlight, "Reduce LED matrix brightness to one third"); ++ + struct rpisense *rpisense; + + struct rpisense_fb_param { + char __iomem *vmem; + u8 *vmem_work; + u32 vmemsize; +- u8 gamma[32]; ++ u8 *gamma; + }; + ++static u8 gamma_default[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, ++ 0x02, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, ++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0E, 0x0F, 0x11, ++ 0x12, 0x14, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,}; ++ ++static u8 gamma_low[32] = {0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, ++ 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, ++ 0x03, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, ++ 0x06, 0x07, 0x07, 0x08, 0x08, 0x09, 0x0A, 0x0A,}; ++ ++static u8 gamma_user[32]; ++ + static struct rpisense_fb_param rpisense_fb_param = { + .vmem = NULL, + .vmemsize = 128, +- .gamma = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, +- 0x02, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, +- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0E, 0x0F, 0x11, +- 0x12, 0x14, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,}, ++ .gamma = gamma_default, + }; + + static struct fb_deferred_io rpisense_fb_defio; +@@ -127,6 +141,46 @@ static struct fb_deferred_io rpisense_fb_defio = { + .deferred_io = rpisense_fb_deferred_io, + }; + ++static int rpisense_fb_ioctl(struct fb_info *info, unsigned int cmd, ++ unsigned long arg) ++{ ++ switch (cmd) { ++ case SENSEFB_FBIOGET_GAMMA: ++ if (copy_to_user((void __user *) arg, rpisense_fb_param.gamma, ++ sizeof(u8[32]))) ++ return -EFAULT; ++ return 0; ++ case SENSEFB_FBIOSET_GAMMA: ++ if (copy_from_user(gamma_user, (void __user *)arg, ++ sizeof(u8[32]))) ++ return -EFAULT; ++ rpisense_fb_param.gamma = gamma_user; ++ schedule_delayed_work(&info->deferred_work, ++ rpisense_fb_defio.delay); ++ return 0; ++ case SENSEFB_FBIORESET_GAMMA: ++ switch (arg) { ++ case 0: ++ rpisense_fb_param.gamma = gamma_default; ++ break; ++ case 1: ++ rpisense_fb_param.gamma = gamma_low; ++ break; ++ case 2: ++ rpisense_fb_param.gamma = gamma_user; ++ break; ++ default: ++ return -EINVAL; ++ } ++ schedule_delayed_work(&info->deferred_work, ++ rpisense_fb_defio.delay); ++ break; ++ default: ++ return -EINVAL; ++ } ++ return 0; ++} ++ + static struct fb_ops rpisense_fb_ops = { + .owner = THIS_MODULE, + .fb_read = fb_sys_read, +@@ -134,6 +188,7 @@ static struct fb_ops rpisense_fb_ops = { + .fb_fillrect = rpisense_fb_fillrect, + .fb_copyarea = rpisense_fb_copyarea, + .fb_imageblit = rpisense_fb_imageblit, ++ .fb_ioctl = rpisense_fb_ioctl, + }; + + static int rpisense_fb_probe(struct platform_device *pdev) +@@ -171,6 +226,9 @@ static int rpisense_fb_probe(struct platform_device *pdev) + info->screen_base = rpisense_fb_param.vmem; + info->screen_size = rpisense_fb_param.vmemsize; + ++ if (lowlight) ++ rpisense_fb_param.gamma = gamma_low; ++ + fb_deferred_io_init(info); + + ret = register_framebuffer(info); +diff --git a/include/linux/mfd/rpisense/framebuffer.h b/include/linux/mfd/rpisense/framebuffer.h +index c4c1118..2ba95d7 100644 +--- a/include/linux/mfd/rpisense/framebuffer.h ++++ b/include/linux/mfd/rpisense/framebuffer.h +@@ -16,7 +16,11 @@ + #ifndef __LINUX_RPISENSE_FB_H_ + #define __LINUX_RPISENSE_FB_H_ + +-#include ++#define SENSEFB_FBIO_IOC_MAGIC 0xF1 ++ ++#define SENSEFB_FBIOGET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 0) ++#define SENSEFB_FBIOSET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 1) ++#define SENSEFB_FBIORESET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 2) + + struct rpisense; + diff --git a/projects/RPi/patches/linux/linux-02-RPi_support_buildfix.patch b/projects/RPi/patches/linux/linux-02-RPi_support_buildfix.patch new file mode 100644 index 0000000000..9da026f3cf --- /dev/null +++ b/projects/RPi/patches/linux/linux-02-RPi_support_buildfix.patch @@ -0,0 +1,11 @@ +--- a/drivers/spi/spi-bcm2835.c 2015-08-18 01:31:02.424153151 +0100 ++++ b/drivers/spi/spi-bcm2835.c 2015-08-18 01:30:50.860074902 +0100 +@@ -592,7 +592,7 @@ + return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); + } + +-#if 0 ++#if 1 + static void bcm2835_spi_handle_err(struct spi_master *master, + struct spi_message *msg) + { diff --git a/projects/RPi2/patches/linux/linux-01-RPi_support.patch b/projects/RPi2/patches/linux/linux-01-RPi_support.patch index d6377736e5..888195510c 100644 --- a/projects/RPi2/patches/linux/linux-01-RPi_support.patch +++ b/projects/RPi2/patches/linux/linux-01-RPi_support.patch @@ -1,7 +1,7 @@ -From 0e8bd84a8406e37307c00a246c5a0f62aac6b8d3 Mon Sep 17 00:00:00 2001 +From 63b738ea521e2a159ecef0509b605121a18998bb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 001/149] Main bcm2708/bcm2709 linux port +Subject: [PATCH 001/162] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -7002,10 +7002,10 @@ index b5bedae..b0258e8 100644 mmc_pm_flag_t pm_caps; /* supported pm features */ -From 347ffd7de4bb0ccd64731fb76814dd9e626bf1c5 Mon Sep 17 00:00:00 2001 +From 4b5a7293901e67cc3c674ba6f3677a0862d0b3f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 Oct 2014 18:50:05 +0100 -Subject: [PATCH 002/149] Add bcm2708_gpio driver +Subject: [PATCH 002/162] Add bcm2708_gpio driver Signed-off-by: popcornmix @@ -7635,10 +7635,10 @@ index 0000000..fb69624 + +#endif -From eb3917f2c39b485511607da826cd9dbba16751b8 Mon Sep 17 00:00:00 2001 +From eca451f7751e025cc7017f2c654fd6763cfa4ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 1 May 2015 19:11:03 +0200 -Subject: [PATCH 003/149] mailbox: bcm2708: Add bcm2708-vcio +Subject: [PATCH 003/162] mailbox: bcm2708: Add bcm2708-vcio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -8269,10 +8269,10 @@ index 0000000..cc284ed + +#endif -From dac4f2f5791de43cb28c829c03b74b03187b7535 Mon Sep 17 00:00:00 2001 +From f8878549c65e145ef2930571af6bd565da69e49c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 004/149] Add dwc_otg driver +Subject: [PATCH 004/162] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69546,10 +69546,10 @@ index 0000000..cdc9963 +test_main(); +0; -From cb7293f71c4de308f8d2f1dda81889fa1ccc5f70 Mon Sep 17 00:00:00 2001 +From b991965e5113586428c0bb167cea50ef04157ff5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:54:32 +0100 -Subject: [PATCH 005/149] bcm2708 watchdog driver +Subject: [PATCH 005/162] bcm2708 watchdog driver Signed-off-by: popcornmix --- @@ -69986,10 +69986,10 @@ index 0000000..8a27d68 +MODULE_ALIAS_MISCDEV(TEMP_MINOR); +MODULE_LICENSE("GPL"); -From 3f93f22131290ce805bd9fe0a2c23fc23e9d0d02 Mon Sep 17 00:00:00 2001 +From 0f74e77f6b74f7d67bad5e6d4a3da96c25d163f9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 006/149] bcm2708 framebuffer driver +Subject: [PATCH 006/162] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -73428,10 +73428,10 @@ index 3c14e43..7626beb6a 100644 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 -From d7b8efef115448b4899c4d3327cbdfed06144d29 Mon Sep 17 00:00:00 2001 +From 46ac294df1388e4670e62a89b001fd41d0c17c07 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 007/149] dmaengine: Add support for BCM2708 +Subject: [PATCH 007/162] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -75199,10 +75199,10 @@ index 0000000..2310e34 + +#endif /* _PLAT_BCM2708_DMA_H */ -From c5a2f57f382bb863ec39be702d5c7dd1abf43a1e Mon Sep 17 00:00:00 2001 +From 1477c7775b68f85a9226ea044b52a7f76a82537f Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 008/149] MMC: added alternative MMC driver +Subject: [PATCH 008/162] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77018,10 +77018,10 @@ index 0000000..b7c4883 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Gellert Weisz"); -From 42f6bf501dfd96a293a001811c66f81a599a7c0a Mon Sep 17 00:00:00 2001 +From a546777dbd17651f5da9f7baba4f15070bf09cf6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 009/149] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 009/162] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -78791,10 +78791,10 @@ index 0000000..eef8a24 +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From 4e1d2a7a36c3a6a50b8e3e180840f5de3c59dab9 Mon Sep 17 00:00:00 2001 +From 3f77139f143882d7cf9b6c8e633ff50f282810f0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:31:47 +0100 -Subject: [PATCH 010/149] cma: Add vc_cma driver to enable use of CMA +Subject: [PATCH 010/162] cma: Add vc_cma driver to enable use of CMA Signed-off-by: popcornmix @@ -80119,10 +80119,10 @@ index 0000000..5325832 + +#endif /* VC_CMA_H */ -From 0e75dc8f6ada5d524b64787a3f6a1f7774c19ad1 Mon Sep 17 00:00:00 2001 +From 7372cf60649d3a149f69923310c0278d72baccac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Mar 2012 22:15:50 +0100 -Subject: [PATCH 011/149] bcm2708: alsa sound driver +Subject: [PATCH 011/162] bcm2708: alsa sound driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82964,10 +82964,10 @@ index 0000000..af3e6eb + +#endif // _VC_AUDIO_DEFS_H_ -From f99733b7c93f18f7bb2519462760a71817e2282c Mon Sep 17 00:00:00 2001 +From e544b75469dca2426a2b56bb7c095351ca63ae29 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 2 Jul 2013 23:42:01 +0100 -Subject: [PATCH 012/149] bcm2708 vchiq driver +Subject: [PATCH 012/162] bcm2708 vchiq driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -96221,10 +96221,10 @@ index 0000000..b6bfa21 + return vchiq_build_time; +} -From bb99de1085903aae1acd33f9333636668a2d0940 Mon Sep 17 00:00:00 2001 +From 6f44338ed5bacbbfbbe907bd704b676296570b92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 16:07:06 +0100 -Subject: [PATCH 013/149] vc_mem: Add vc_mem driver +Subject: [PATCH 013/162] vc_mem: Add vc_mem driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -97230,10 +97230,10 @@ index 0000000..20a4753 + +#endif /* _VC_MEM_H */ -From 2835e674ab3568be62a2cd50e060f4172c6d7760 Mon Sep 17 00:00:00 2001 +From 9d253178cc48543cd74c0d45528c30320bc86279 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 014/149] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 014/162] vcsm: VideoCore shared memory service for BCM2835 Add experimental support for the VideoCore shared memory service. This allows user processes to allocate memory from VideoCore's @@ -101643,10 +101643,10 @@ index 0000000..0bfb42e +MODULE_DESCRIPTION("VideoCore SharedMemory Driver"); +MODULE_LICENSE("GPL v2"); -From d956b1bd6c339852f27e912d2e79ed1ae1f770d3 Mon Sep 17 00:00:00 2001 +From ba6e8ac7034a030ceac2310ce359f25755328b39 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:51:55 +0100 -Subject: [PATCH 015/149] Add hwrng (hardware random number generator) driver +Subject: [PATCH 015/162] Add hwrng (hardware random number generator) driver --- drivers/char/hw_random/Kconfig | 13 +++- @@ -101823,10 +101823,10 @@ index 0000000..340f004 +MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver"); +MODULE_LICENSE("GPL and additional rights"); -From 0a234b968ca8409fdf24ee38b84144ea6df901c1 Mon Sep 17 00:00:00 2001 +From 52633f1996a2aa8ba50f4e88cee330aacc50af5f Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 016/149] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 016/162] lirc: added support for RaspberryPi GPIO lirc_rpi: Use read_current_timer to determine transmitter delay. Thanks to jjmz and others See: https://github.com/raspberrypi/linux/issues/525 @@ -102679,10 +102679,10 @@ index 0000000..24563ec +module_param(debug, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(debug, "Enable debugging messages"); -From 8aa5df1654dc0d99e6edaee56960a62a759642f6 Mon Sep 17 00:00:00 2001 +From d7169bd6f84e792920039373af9c66bf9018ca90 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 017/149] Add cpufreq driver +Subject: [PATCH 017/162] Add cpufreq driver Signed-off-by: popcornmix --- @@ -102955,10 +102955,10 @@ index 0000000..6735da9 +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From a78e95402f25318bb6049c253a586bdabf0e3934 Mon Sep 17 00:00:00 2001 +From 04cc0b3f109587704270af2dc9f62793465cd5df Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 19:24:24 +0000 -Subject: [PATCH 018/149] Added hwmon/thermal driver for reporting core +Subject: [PATCH 018/162] Added hwmon/thermal driver for reporting core temperature. Thanks Dorian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -103255,10 +103255,10 @@ index 0000000..3bc80f1 + +module_platform_driver(bcm2835_thermal_driver); -From fe524efc70536aa67e3568f97bc373031e4de4ea Mon Sep 17 00:00:00 2001 +From 8376f6b64eadfbee3c91ed3ca68ad1246beb9cd6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:41:33 +0100 -Subject: [PATCH 019/149] Add Chris Boot's spi driver. +Subject: [PATCH 019/162] Add Chris Boot's spi driver. spi: bcm2708: add device tree support @@ -104170,10 +104170,10 @@ index 0000000..041b5e2 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From b42f499d093bb6ed2991c6f304338bff3a85b429 Mon Sep 17 00:00:00 2001 +From afb4f9980eff882d591c98e6686914ccb948bd2c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 020/149] Add Chris Boot's i2c driver +Subject: [PATCH 020/162] Add Chris Boot's i2c driver i2c-bcm2708: fixed baudrate @@ -104974,10 +104974,10 @@ index 0000000..8773203 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From 8e40d3346d2607cee13a9eee8c2357b1c0cdb48a Mon Sep 17 00:00:00 2001 +From c67e04753eab1139459e693fbbb42ff5820ef7ad Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 30 Jan 2013 12:45:18 +0000 -Subject: [PATCH 021/149] bcm2835: add v4l2 camera device +Subject: [PATCH 021/162] bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. @@ -112304,10 +112304,10 @@ index 0000000..9d1d11e + +#endif /* MMAL_VCHIQ_H */ -From 7a4688d4481948917c7d09d4745c21c7f802da18 Mon Sep 17 00:00:00 2001 +From 95de9bd5d72a4c046799ce025a203d078254223c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Jan 2015 14:48:55 +0000 -Subject: [PATCH 022/149] scripts/dtc: Update to upstream version with overlay +Subject: [PATCH 022/162] scripts/dtc: Update to upstream version with overlay patches --- @@ -117520,10 +117520,10 @@ index 54d4e904..d644002 100644 -#define DTC_VERSION "DTC 1.4.0-dirty" +#define DTC_VERSION "DTC 1.4.1-g36c70742" -From e9e0f3cef41db19f29ab37a403feabe9f55f83fc Mon Sep 17 00:00:00 2001 +From 162273d9683af43ee8ae584f1bcd20ebb9c9bf7c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 023/149] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 023/162] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -118008,10 +118008,10 @@ index 0000000..3dff948 + return (($val eq 'y') || ($val eq '1')); +} -From 996a96ca5045f3ea6e39192d242062441c3c797b Mon Sep 17 00:00:00 2001 +From 6e4ae2ae95216ee3d9c14ee0d9ce62b83f7e6f3b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Dec 2014 17:26:26 +0000 -Subject: [PATCH 024/149] fdt: Add support for the CONFIG_CMDLINE_EXTEND option +Subject: [PATCH 024/162] fdt: Add support for the CONFIG_CMDLINE_EXTEND option --- drivers/of/fdt.c | 29 ++++++++++++++++++++++++----- @@ -118066,10 +118066,10 @@ index cde35c5d01..dd7fbfe 100644 pr_debug("Command line is: %s\n", (char*)data); -From 25f3e064afc8b7be40bc92af946b59bce9ed6c58 Mon Sep 17 00:00:00 2001 +From 11c0faab54b6bcd84dff496de3b6e35dc2f7d7c2 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 025/149] BCM2708: Add core Device Tree support +Subject: [PATCH 025/162] BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. @@ -121946,10 +121946,10 @@ index 0000000..66a98f6 + }; +}; -From d4f6c4010632825e49b58d95db228b4ab394f3f0 Mon Sep 17 00:00:00 2001 +From b971282c62798d20d971aa59ac410d163cdfe8bf Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 026/149] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 026/162] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -122042,10 +122042,10 @@ index fb795c3..fa72af0 100644 #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */ #define FB_TYPE_PLANES 1 /* Non interleaved planes */ -From 5539b4d21d0d0485e548a1bd0bc259abc7403767 Mon Sep 17 00:00:00 2001 +From 2151dc8f57fbe0ab2ad577912bb530a02fb5b3ba Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 029/149] Speed up console framebuffer imageblit function +Subject: [PATCH 029/162] Speed up console framebuffer imageblit function Especially on platforms with a slower CPU but a relatively high framebuffer fill bandwidth, like current ARM devices, the existing @@ -122254,10 +122254,10 @@ index a2bb276..436494f 100644 start_index, pitch_index); } else -From 683a06a250e735c94ec3640d9288528ee50ddf16 Mon Sep 17 00:00:00 2001 +From 446d54e6fa7b5ff354bebad2e8713feec094a25c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 030/149] Allow mac address to be set in smsc95xx +Subject: [PATCH 030/162] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -122348,10 +122348,10 @@ index 26423ad..e29a323 100644 if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, dev->net->dev_addr) == 0) { -From 4f3ab22c324a811dda12f53cd9e77d3a32c3a113 Mon Sep 17 00:00:00 2001 +From f085809bff204c0dbfe613ab84db505b69dc4a84 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 031/149] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 031/162] enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as a module) 1-wire: Add support for configuring pin for w1-gpio kernel module @@ -122749,10 +122749,10 @@ index d58594a..feae942 100644 unsigned int ext_pullup_enable_pin; unsigned int pullup_duration; -From 853fe067aeff8a0be4027b63f50dd0478103f723 Mon Sep 17 00:00:00 2001 +From 6b9dbab245f2f6ab626907f0a949b578553b71f7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Dec 2013 22:16:19 +0000 -Subject: [PATCH 033/149] config: Enable CONFIG_MEMCG, but leave it disabled +Subject: [PATCH 033/162] config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. --- @@ -122807,10 +122807,10 @@ index a04225d..a2ef8af 100644 /** -From 02f4298dead0071add7bb58678d7451bf06d4b7f Mon Sep 17 00:00:00 2001 +From 93ef33e355c635521a6108616087fa0da4b60568 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:33:38 +0100 -Subject: [PATCH 034/149] ASoC: Add support for BCM2708 +Subject: [PATCH 034/162] ASoC: Add support for BCM2708 This driver adds support for digital audio (I2S) for the BCM2708 SoC that is used by the @@ -123953,10 +123953,10 @@ index 0000000..6fdcbc1 + +#endif -From 9dca125b0468d40894de4138982400ba5b833e4d Mon Sep 17 00:00:00 2001 +From 4d971964566bacadd703f9fb1a443c64c28eee23 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:59:51 +0100 -Subject: [PATCH 035/149] ASoC: Add support for PCM5102A codec +Subject: [PATCH 035/162] ASoC: Add support for PCM5102A codec Some definitions to support the PCM5102A codec by Texas Instruments. @@ -124081,10 +124081,10 @@ index 0000000..126f1e9 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 45a02391f0fa3d34235ff795c299638fbf3f5773 Mon Sep 17 00:00:00 2001 +From bde596cb66bc3992a9a3cee42e68104ab66a18ff Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:04:54 +0100 -Subject: [PATCH 036/149] BCM2708: Add I2S support to board file +Subject: [PATCH 036/162] BCM2708: Add I2S support to board file Adds the required initializations for I2S to the board file of mach-bcm2708. @@ -124173,10 +124173,10 @@ index a3b65dc..a515992 100644 for (i = 0; i <= 1; i++) { void __iomem *base; -From 19cea6e827bb706afe8bb57e43ee5f3fa7cd1731 Mon Sep 17 00:00:00 2001 +From 6d65c67c4eb121760f236e54545a1c2d685e92b8 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 037/149] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 037/162] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -124325,10 +124325,10 @@ index 0000000..4b70b45 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From 7528f3f5f51e0f304d5726a82dd9178f87b1ca41 Mon Sep 17 00:00:00 2001 +From 05616851fffbdedda80af077597a31e8d5925fc3 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:21:34 +0100 -Subject: [PATCH 038/149] BCM2708: Add HifiBerry DAC to board file +Subject: [PATCH 038/162] BCM2708: Add HifiBerry DAC to board file This adds the initalization of the HifiBerry DAC to the mach-bcm2708 board file. @@ -124376,10 +124376,10 @@ index 01f2de7..1d9b788 100644 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; -From 48355b1b1b0ae407d17524fb836fa61f2341d579 Mon Sep 17 00:00:00 2001 +From 819e10b72679216925752642cfce72b3c8a79d1d Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 6 Dec 2013 20:50:28 +0100 -Subject: [PATCH 039/149] ASoC: BCM2708: Add support for RPi-DAC +Subject: [PATCH 039/162] ASoC: BCM2708: Add support for RPi-DAC This adds a machine driver for the RPi-DAC. @@ -124674,10 +124674,10 @@ index 0000000..b4eaa44 +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From ee415b9db413a155e99d81537a776b7becf60227 Mon Sep 17 00:00:00 2001 +From 8b0ecf0764b0de2e947d871b2e418a09aead205c Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 040/149] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 040/162] ASoC: wm8804: Implement MCLK configuration options, add 32bit support WM8804 can run with PLL frequencies of 256xfs and 128xfs for most sample rates. At 192kHz only 128xfs is supported. The existing driver selects 128xfs automatically for some lower samples rates. By using an @@ -124717,10 +124717,10 @@ index 1e403f6..d4efa85 100644 #define WM8804_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_64000 | \ -From 4e0d1e894adb9184eb45a7c343907df881e3a523 Mon Sep 17 00:00:00 2001 +From 6b4b396c00c6fe944b70174cb776adedc67cb456 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 041/149] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 041/162] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -124985,10 +124985,10 @@ index 0000000..92e9e46 +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 5c4656d103da802e6d0412eb55c8dc9164935867 Mon Sep 17 00:00:00 2001 +From 1eb3c950fcff8c770e4080d697415126e10790ab Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:26:08 +0100 -Subject: [PATCH 042/149] BCM2708: Added support for HiFiBerry Digi board Board +Subject: [PATCH 042/162] BCM2708: Added support for HiFiBerry Digi board Board initalization by I2C Signed-off-by: Daniel Matuschek @@ -125035,10 +125035,10 @@ index 6d53beb..a062d7f 100644 bcm_register_device_dt(&snd_rpi_dac_device); bcm_register_device_dt(&snd_pcm1794a_codec_device); -From 87f8afdc7be60f059356680542fa556055434a0b Mon Sep 17 00:00:00 2001 +From 661cb2299f55c008af56199dc1aeb54329c1f254 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Thu, 16 Jan 2014 07:36:35 +0100 -Subject: [PATCH 043/149] ASoC: wm8804: Set idle_bias_off to false Idle bias +Subject: [PATCH 043/162] ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to remove warning on driver startup Signed-off-by: Daniel Matuschek @@ -125060,10 +125060,10 @@ index d4efa85..f3f26a2 100644 .dapm_widgets = wm8804_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(wm8804_dapm_widgets), -From 02e362cf47d55e3e6e075d14a6f5eda064e832a9 Mon Sep 17 00:00:00 2001 +From b1e71e2d853e5ac8bbca50657dac172931c79c23 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 044/149] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 044/162] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -125271,10 +125271,10 @@ index 0000000..aff7377 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From 6ccb62cc7e401082561c12ed6258dc3382264875 Mon Sep 17 00:00:00 2001 +From 30f56ce767df188beee46f05360352ce21f4013c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 18 Jun 2014 13:42:01 +0100 -Subject: [PATCH 045/149] vmstat: Workaround for issue where dirty page count +Subject: [PATCH 045/162] vmstat: Workaround for issue where dirty page count goes negative See: @@ -125301,10 +125301,10 @@ index 82e7db7..f87d16d 100644 static inline void __inc_zone_page_state(struct page *page, -From 7db38451aa2a58b2f7e9e9cd60842e5167732ba0 Mon Sep 17 00:00:00 2001 +From 866ebc9c8208d9fc5e2925b57b19e05597f59535 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 046/149] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 046/162] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -125340,10 +125340,10 @@ index bfbe1be..a738b25 100644 ret = -ENOMEM; if (usb_endpoint_dir_in(endpoint)) { -From ede6ae920d5614aeaca3793cab45e68d7a5667f4 Mon Sep 17 00:00:00 2001 +From cb3ad0970f6aa845e371419814328779f439906e Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 047/149] Added support for HiFiBerry DAC+ +Subject: [PATCH 047/162] Added support for HiFiBerry DAC+ The driver is based on the HiFiBerry DAC driver. However HiFiBerry DAC+ uses a different codec chip (PCM5122), therefore a new driver is necessary. @@ -125554,10 +125554,10 @@ index 0000000..c63387b +MODULE_DESCRIPTION("ASoC Driver for HiFiBerry DAC+"); +MODULE_LICENSE("GPL v2"); -From 7f32b28e3ecbddf73a8a2b849fe1950d1d3d6441 Mon Sep 17 00:00:00 2001 +From 84b9d85375cbc33751a5d7bfaa37fad89c4a1580 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 048/149] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 048/162] Added driver for HiFiBerry Amp amplifier add-on board The driver contains a low-level hardware driver for the TAS5713 and the drivers for the Raspberry Pi I2S subsystem. @@ -126426,10 +126426,10 @@ index 0000000..8f019e0 + +#endif /* _TAS5713_H */ -From 5342cc918f42da5b299e861b708d0986f42f4c81 Mon Sep 17 00:00:00 2001 +From 6e9a21a0409722191171e96f6c8297d9ccb1b62a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Apr 2015 19:14:18 +0100 -Subject: [PATCH 049/149] bcm2708: Allow option card devices to be configured +Subject: [PATCH 049/162] bcm2708: Allow option card devices to be configured via DT If the kernel is built with Device Tree support, and if a DT blob @@ -126454,10 +126454,10 @@ index 03fa1cb..c816526 100644 static struct platform_driver bcm2835_i2s_driver = { .probe = bcm2835_i2s_probe, -From c2db87de57679d93a7b54ded9f2ad2c29b449c58 Mon Sep 17 00:00:00 2001 +From 53be0a63c8212baac6b8c3f19276163c5cb8abe2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 18:45:39 +0100 -Subject: [PATCH 050/149] Adding Device Tree support for some RPi audio cards +Subject: [PATCH 050/162] Adding Device Tree support for some RPi audio cards --- arch/arm/mach-bcm2709/bcm2709.c | 143 ++++++++++++++++++++++++++++++++++++++ @@ -126820,10 +126820,10 @@ index 126f1e9..7c6598e 100644 }; -From decbd54190fce2736e5f8614c974f6d236eebd15 Mon Sep 17 00:00:00 2001 +From 6ce245e7dce51837a2a80510d9b489b2f3bceb69 Mon Sep 17 00:00:00 2001 From: Timo Kokkonen Date: Wed, 29 Oct 2014 23:30:30 -0700 -Subject: [PATCH 051/149] Added support to reserve/enable a GPIO pin to be used +Subject: [PATCH 051/162] Added support to reserve/enable a GPIO pin to be used from pps-gpio module (LinuxPPS). Enable PPS modules in default config for RPi. @@ -126959,10 +126959,10 @@ index 57e1f3d..721559b 100644 +module_param(pps_gpio_pin, int, 0644); +MODULE_PARM_DESC(pps_gpio_pin, "Set GPIO pin to reserve for PPS"); -From 128bbd307de47c1a0748dcf84e5d948c2df3db38 Mon Sep 17 00:00:00 2001 +From 5925f5c740d44a3244a3258af74b33a57d92e215 Mon Sep 17 00:00:00 2001 From: Ryan Coe Date: Sat, 31 Jan 2015 18:25:49 -0700 -Subject: [PATCH 052/149] Update ds1307 driver for device-tree support +Subject: [PATCH 052/162] Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe --- @@ -126989,10 +126989,10 @@ index 4ffabb3..c6789a7 100644 .driver = { .name = "rtc-ds1307", -From 0fcc1245d4ba1391e0bcc754e2c521cecbb10179 Mon Sep 17 00:00:00 2001 +From 0d9d5d44991ac2b679a9f201f156aa1103183b76 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 053/149] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 053/162] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -127103,10 +127103,10 @@ index 0000000..2ca2b98 +MODULE_DESCRIPTION("Set LED GPIO to Input \"trigger\""); +MODULE_LICENSE("GPL"); -From 2b9a2491e2554f5dc92a62be523ef8932a5eb85e Mon Sep 17 00:00:00 2001 +From 8112604da472b3bd30f58dd75f85e5a2397ad8ac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 20 Jun 2014 17:19:27 +0100 -Subject: [PATCH 054/149] bcm2709: Simplify and strip down IRQ handler +Subject: [PATCH 054/162] bcm2709: Simplify and strip down IRQ handler --- arch/arm/include/asm/entry-macro-multi.S | 2 + @@ -127325,10 +127325,10 @@ index d08591b..08d184c 100644 +1: get_irqnr_and_base r0, r2, r6, lr + .endm -From 145d538784f1fb1a938a6f037df9d85898ea1ba4 Mon Sep 17 00:00:00 2001 +From 94208834e11d59d251cbd8154df29a19a6cd2769 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 12 Feb 2015 11:17:53 +0000 -Subject: [PATCH 055/149] Fix LED "input" trigger implementation for 3.19 +Subject: [PATCH 055/162] Fix LED "input" trigger implementation for 3.19 --- drivers/leds/leds-gpio.c | 10 +++++++++- @@ -127415,10 +127415,10 @@ index 9a2b000..60accc5 100644 /* Set LED brightness level */ /* Must not sleep, use a workqueue if needed */ -From 20a42859d52cff889adbec5697ba61870b22c423 Mon Sep 17 00:00:00 2001 +From cbfcea83366bfaa9e51e56d05e3fbe75c9b6ea5b Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 056/149] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 056/162] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -127440,10 +127440,10 @@ index 8d908e3..7a1900d 100644 .can_sleep = false, }; -From 812a64aaa5d3dec21864e49c612b38ee65273b17 Mon Sep 17 00:00:00 2001 +From 1363a3e8879ca0ebeb98ff6ce2d092ae512989bd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 4 Feb 2015 10:02:24 +0000 -Subject: [PATCH 057/149] pinctrl-bcm2835: bcm2835_gpio_direction_output must +Subject: [PATCH 057/162] pinctrl-bcm2835: bcm2835_gpio_direction_output must set the value --- @@ -127471,10 +127471,10 @@ index 7a1900d..62f85aa 100644 static void bcm2835_gpio_set(struct gpio_chip *chip, unsigned offset, int value) -From 09041f7ccbd1cde792edae91c41266886d5d1382 Mon Sep 17 00:00:00 2001 +From d4eb5ac769e7e8c9bc23d44e8db10d2fe983375a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Feb 2015 13:40:50 +0000 -Subject: [PATCH 058/149] pinctrl-bcm2835: Fix interrupt handling for GPIOs +Subject: [PATCH 058/162] pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53 Contrary to the documentation, the BCM2835 GPIO controller actually has @@ -127620,10 +127620,10 @@ index 62f85aa..c7cf266 100644 }, }; -From 523ce9c5aa97607b0847833b93a8d34965808132 Mon Sep 17 00:00:00 2001 +From 327847a04d35f47edaaef9b8ade918f7f7527492 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 26 Feb 2015 09:58:22 +0000 -Subject: [PATCH 059/149] pinctrl-bcm2835: Only request the interrupts listed +Subject: [PATCH 059/162] pinctrl-bcm2835: Only request the interrupts listed in the DTB Although the GPIO controller can generate three interrupts (four counting @@ -127650,10 +127650,10 @@ index c7cf266..986779a 100644 pc->irq_data[i].irqgroup = i; -From ee9c77a3cc5d83e87e52f3424f7a29d605d562ba Mon Sep 17 00:00:00 2001 +From 94b91ce3acba3c350664b3d9dcfba9e53d431437 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 27 Feb 2015 15:10:24 +0000 -Subject: [PATCH 060/149] enc28j60: Add device tree compatible string and an +Subject: [PATCH 060/162] enc28j60: Add device tree compatible string and an overlay --- @@ -127687,10 +127687,10 @@ index b1b5f66..c6b6e1a 100644 .probe = enc28j60_probe, .remove = enc28j60_remove, -From 0c87fa341259d332ce8402d1a3703f2b69af5219 Mon Sep 17 00:00:00 2001 +From 34c6e5a325cdedf9277559ecb40fd5bcc99989f0 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 061/149] Add driver for rpi-proto +Subject: [PATCH 061/162] Add driver for rpi-proto 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.18.x @@ -127905,10 +127905,10 @@ index 0000000..c6e45a0 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 458dc19741c5295b62ff78882b94a4d6dc8aaac2 Mon Sep 17 00:00:00 2001 +From 4779a91b7064c2b46383e3e7b911459a8c941e98 Mon Sep 17 00:00:00 2001 From: Clive Messer Date: Thu, 2 Apr 2015 12:22:55 +0100 -Subject: [PATCH 062/149] Add Device Tree support for RPi-DAC. +Subject: [PATCH 062/162] Add Device Tree support for RPi-DAC. --- sound/soc/bcm/rpi-dac.c | 21 +++++++++++++++++++++ @@ -127983,10 +127983,10 @@ index b4eaa44..afe1b41 100644 }; -From 4c33cf46121a5662ebfb84ad34a5a632c2c679f6 Mon Sep 17 00:00:00 2001 +From 5311db6a4627009d0ff8e3aea810bc454a277c7b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 063/149] config: Add default configs +Subject: [PATCH 063/162] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1204 ++++++++++++++++++++++++++++++++++++ @@ -130411,10 +130411,10 @@ index 0000000..6a41231 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From f8b20b1317fd46d23a2a9944a53df547904a238f Mon Sep 17 00:00:00 2001 +From 3f4696abe0930f17e6cdf8cccbc4ae0246035233 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 064/149] smsx95xx: fix crimes against truesize +Subject: [PATCH 064/162] smsx95xx: fix crimes against truesize smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings. @@ -130449,10 +130449,10 @@ index e29a323..aff63dc usbnet_skb_return(dev, ax_skb); } -From 7b168915af2a8d731046afeed5cdf939cd9c4323 Mon Sep 17 00:00:00 2001 +From 56f171703257a83bb857c755891207168db7be05 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 17 Apr 2015 16:58:45 +0100 -Subject: [PATCH 065/149] smsc95xx: Disable turbo mode by default +Subject: [PATCH 065/162] smsc95xx: Disable turbo mode by default --- drivers/net/usb/smsc95xx.c | 2 +- @@ -130472,10 +130472,10 @@ index aff63dc..08a8a8c 100755 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); -From aab95f9b10e8c3d32de2bf163b86f220c88214fe Mon Sep 17 00:00:00 2001 +From cdc8a06c6bc601bb3112fde4254068531ee1dd24 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Apr 2015 19:30:22 +0100 -Subject: [PATCH 066/149] Add blk_pos parameter to mmc multi_io_quirk callback +Subject: [PATCH 066/162] Add blk_pos parameter to mmc multi_io_quirk callback --- drivers/mmc/card/block.c | 1 + @@ -130498,7 +130498,7 @@ index 31d2627..8484ec9 100644 } diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c -index 9df2b68..8c0ee4a 100644 +index d0abdffb..ebb6bf4 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1749,7 +1749,9 @@ static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host) @@ -130558,10 +130558,10 @@ index b0258e8..d3cdad9 100644 struct mmc_card; -From 9a092ad62309aecb8c27cde5fb5f863a7447b90e Mon Sep 17 00:00:00 2001 +From 57641db5c552d86d1205ee87eaea41689ade2b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 29 Apr 2015 17:24:02 +0200 -Subject: [PATCH 067/149] bcm2835: bcm2835_defconfig +Subject: [PATCH 067/162] bcm2835: bcm2835_defconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -131891,10 +131891,10 @@ index 31cb073..2e8a95a 100644 # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set -From 4ab42e0f9eab22619622ea5f13195280aebc0d64 Mon Sep 17 00:00:00 2001 +From e6a566619f5ac7575cc248e209786fe73598237d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 1 May 2015 23:00:15 +0200 -Subject: [PATCH 068/149] BCM270x_DT: Add mailbox bcm2708-vcio +Subject: [PATCH 068/162] BCM270x_DT: Add mailbox bcm2708-vcio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -131935,10 +131935,10 @@ index 721559b..4a00561 100644 #ifdef CONFIG_BCM2708_GPIO bcm_register_device_dt(&bcm2708_gpio_device); -From fa2b33b614fead97a2eb8b950fb1c77e73f0eb28 Mon Sep 17 00:00:00 2001 +From 86174403ecaafa1b5cbb83d942bd2f49888fd573 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 069/149] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 069/162] rpi-ft5406: Add touchscreen driver for pi LCD display --- drivers/input/touchscreen/Kconfig | 7 + @@ -132255,10 +132255,10 @@ index cc284ed..d3ea839 100644 VCMSG_SET_CURSOR_STATE = 0x00008011, }; -From 5cbcb76ee23807632fcd5db19ebcc2d913011f17 Mon Sep 17 00:00:00 2001 +From f9ba6dc9f6e84b84124b81064aea3b1e49ed8d45 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Oct 2014 11:47:53 +0100 -Subject: [PATCH 070/149] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 070/162] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -133783,10 +133783,10 @@ index 3e58d71..0622891 100644 static unsigned long noinline __clear_user_memset(void __user *addr, unsigned long n) -From b196781e4110a44416cf5926cf1ff350a1533c94 Mon Sep 17 00:00:00 2001 +From 6ecc8a2de77836ecceef1f602050e7b7b4a2ae47 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 May 2015 17:22:15 +0100 -Subject: [PATCH 071/149] bcm2835-audio: Create the platform device if the DT +Subject: [PATCH 071/162] bcm2835-audio: Create the platform device if the DT node is disabled For backwards compatibility, allow the built-in ALSA driver to be enabled @@ -133840,10 +133840,10 @@ index 4a00561..dec8043 100644 bcm_register_device_dt(&bcm2708_spi_device); -From 35fb850719835a0029eb91480b214fbaf2a99dc3 Mon Sep 17 00:00:00 2001 +From efa7fca2b37a8be44163a59ccc216b1700ede261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Wed, 3 Jun 2015 12:26:13 +0200 -Subject: [PATCH 072/149] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 072/162] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -133902,10 +133902,10 @@ index 70f2f39..f7fdacd 100644 static const char * const bcm2835_compat[] = { -From fb9bb42b9875d61716503c9eb330e73d720f5a64 Mon Sep 17 00:00:00 2001 +From 866447c3daebb40a3d22513f0f38066688a81004 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 16 Jun 2015 17:47:27 +0100 -Subject: [PATCH 073/149] platform: Add force_core command line setting to boot +Subject: [PATCH 073/162] platform: Add force_core command line setting to boot from a different core number --- @@ -133976,10 +133976,10 @@ index dec8043..fe71c50 100644 module_param(serial, uint, 0644); module_param(uart_clock, uint, 0644); -From 63a651b12cbd98ba14d2ac6f038f230a4b3ce336 Mon Sep 17 00:00:00 2001 +From 336a44792af95c280cdb327e72ddd9fee7e1d682 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Jun 2015 17:46:17 +0100 -Subject: [PATCH 074/149] mach-bcm270x: Enable the building of pinctrl-bcm2835 +Subject: [PATCH 074/162] mach-bcm270x: Enable the building of pinctrl-bcm2835 --- drivers/pinctrl/Makefile | 1 + @@ -133998,10 +133998,10 @@ index 6eadf04..9119513 100644 obj-$(CONFIG_ARCH_BERLIN) += berlin/ obj-y += freescale/ -From 30e79675077f83c35b77f74ae833212cbff42b6f Mon Sep 17 00:00:00 2001 +From 02cf873c725ac8ada17bce9e849b81df4d21b074 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Jun 2015 16:41:39 +0100 -Subject: [PATCH 075/149] BCM270X_DT: Document the i2s-mmap overlay +Subject: [PATCH 075/162] BCM270X_DT: Document the i2s-mmap overlay --- arch/arm/boot/dts/overlays/README | 6 ++++++ @@ -134025,10 +134025,10 @@ index 3e08f98..7fa6d33 100644 Info: Configures the IQaudio DAC audio card Load: dtoverlay=iqaudio-dac -From 1dd7bc29051074b4aedba9ed05bbc920ed67a654 Mon Sep 17 00:00:00 2001 +From 0b19c37e24d25c8882b48e6ea9e8f284c4ed34d4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Jun 2015 11:36:53 +0100 -Subject: [PATCH 076/149] bcm2835-sdhost: Improve error handling and recovery +Subject: [PATCH 076/162] bcm2835-sdhost: Improve error handling and recovery 1) Expose the hw_reset method to the MMC framework, removing many internal calls by the driver. @@ -135120,10 +135120,10 @@ index eef8a24..6277e43 100644 if (host->allow_dma) { -From e6a1ebfa363797e35902c3d466af7c92ef05a62f Mon Sep 17 00:00:00 2001 +From ff187ec8ab4341163658c457e83c9f45f55e24ca Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Jun 2015 13:11:46 -0700 -Subject: [PATCH 077/149] ARM: bcm2835: Add the Raspberry Pi firmware driver +Subject: [PATCH 077/162] ARM: bcm2835: Add the Raspberry Pi firmware driver This gives us a function for making mailbox property channel requests of the firmware, which is most notable in that it will let us get and @@ -135557,10 +135557,10 @@ index 0000000..9d9efb7 + void *data, size_t tag_size); +struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node); -From dce877ba363b979281f5781ec75a197875fd21a9 Mon Sep 17 00:00:00 2001 +From d4de234cfda7513927a197b95a2226bc1c28abc4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 22 Mar 2015 13:33:23 +0000 -Subject: [PATCH 078/149] config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING +Subject: [PATCH 078/162] config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING --- arch/arm/configs/bcm2709_defconfig | 4 ++++ @@ -135612,10 +135612,10 @@ index 6a41231..cacde14 100644 CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_DRBD=m -From 2f04df7aef19d4e087c80fa7371e3f5139233570 Mon Sep 17 00:00:00 2001 +From b2af418b8c06cbb1a2b7f8622ec55caab7880e96 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Mon, 22 Jun 2015 16:27:07 +0100 -Subject: [PATCH 079/149] Add rpi-ft5406 overlay Add rpi-ft5406 driver as +Subject: [PATCH 079/162] Add rpi-ft5406 overlay Add rpi-ft5406 driver as module --- @@ -135702,10 +135702,10 @@ index cacde14..f952ff2 100644 CONFIG_TOUCHSCREEN_STMPE=m CONFIG_INPUT_MISC=y -From bf09fbb31f813db47e4b64fddbc1ea1d089133c2 Mon Sep 17 00:00:00 2001 +From f65847235a40251eb0c2dc2015c8d84686376082 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 23 Jun 2015 09:53:40 +0100 -Subject: [PATCH 080/149] Fix driver detection failure Check that the buffer +Subject: [PATCH 080/162] Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected --- @@ -135726,10 +135726,10 @@ index f55151b..d41851d 100644 dev_dbg(&pdev->dev, "Got TS buffer 0x%x\n", request.tag.val); } -From e8fe55cc59f200121b845a93110d6c41e7daeb01 Mon Sep 17 00:00:00 2001 +From af55c1ff93d7326055956c27e844ec266621bc23 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Jun 2015 13:24:01 +0100 -Subject: [PATCH 081/149] config: Enable 8250 serial port +Subject: [PATCH 081/162] config: Enable 8250 serial port --- arch/arm/configs/bcm2709_defconfig | 7 +++++++ @@ -135777,10 +135777,10 @@ index f952ff2..0c25d8b 100644 CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_BCM2835=m -From 02dfc389b34d52a0c97428a666d0314216c2cb34 Mon Sep 17 00:00:00 2001 +From 1dd292b6d87ac6e02e5fca192c189d94a83ab604 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Jun 2015 14:10:58 +0100 -Subject: [PATCH 082/149] config: Enable POWER_RESET_GPIO +Subject: [PATCH 082/162] config: Enable POWER_RESET_GPIO --- arch/arm/configs/bcm2709_defconfig | 2 ++ @@ -135814,10 +135814,10 @@ index 0c25d8b..e757db6 100644 CONFIG_THERMAL=y CONFIG_THERMAL_BCM2835=y -From 83d5bd935a9a83db9e7bf89bb3cd123fc7a6999f Mon Sep 17 00:00:00 2001 +From 0d483db4bb5dde7f9a9492cfce0d6636be31eedb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 26 Jun 2015 17:37:38 +0100 -Subject: [PATCH 083/149] bcm2708-vcio: Remove restriction of only a single +Subject: [PATCH 083/162] bcm2708-vcio: Remove restriction of only a single instance being open We need more than one process to be able to use mailbox interface (e.g. HW cursor in fbturbo and hello_fft). @@ -135862,10 +135862,10 @@ index d91672b..06fb2c2f 100644 return 0; -From 08ab3b10ef3b9fee5c05f7c1463fefa3206e36eb Mon Sep 17 00:00:00 2001 +From 39adc072c8ba72fb469a13d725bacd040c73b7dc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2015 08:39:19 +0100 -Subject: [PATCH 084/149] BCM270X_DT: Create a "core" clock, use it for SPI and +Subject: [PATCH 084/162] BCM270X_DT: Create a "core" clock, use it for SPI and sdhost --- @@ -136016,10 +136016,10 @@ index b408ab4..897204a 100644 }; }; -From a3c04e353a23787157f52097715422aed626198d Mon Sep 17 00:00:00 2001 +From 029c13e692dbf0808a2afb4f6fb33593093cb7f6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 09:24:31 +0100 -Subject: [PATCH 085/149] BCM270X_DT: Add MCP7941X to i2c-rtc overlay +Subject: [PATCH 085/162] BCM270X_DT: Add MCP7941X to i2c-rtc overlay --- arch/arm/boot/dts/overlays/README | 3 +++ @@ -136072,10 +136072,10 @@ index 6bccfdc..7052c71 100644 pcf8523 = <&pcf8523>,"status"; pcf8563 = <&pcf8563>,"status"; -From 89ce29fd10942fcb3a8a72a88ed399d5bbac6f56 Mon Sep 17 00:00:00 2001 +From 4849d067dc42061bb8b07d3cd3cf43ebaf8f1753 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 24 Jun 2015 11:23:06 +0100 -Subject: [PATCH 086/149] dts/overlays: document DHT11 overlay +Subject: [PATCH 086/162] dts/overlays: document DHT11 overlay --- arch/arm/boot/dts/overlays/README | 8 ++++++++ @@ -136101,10 +136101,10 @@ index 425eb19..9406cf3 100644 -From e5230cc9bbb441510c38faf9f0c82a839afbba71 Mon Sep 17 00:00:00 2001 +From 06d00394bb2fff989c57915ceb54012ef33cb957 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 087/149] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 087/162] gpio-poweroff: Allow it to work on Raspberry Pi The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing @@ -136219,10 +136219,10 @@ index e5332f1..6e3fec2 100644 "%s: pm_power_off function already registered", __func__); -From c7c9f2995da703a41e6c70bce53d9eef408b1b46 Mon Sep 17 00:00:00 2001 +From 859f2dc684cc0cf92e3d171ec3161cb828c2f174 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Jun 2015 17:10:40 +0100 -Subject: [PATCH 088/149] BCM270x_DT: Default Compute Module i2c, i2s and spi +Subject: [PATCH 088/162] BCM270x_DT: Default Compute Module i2c, i2s and spi support --- @@ -136312,10 +136312,10 @@ index e82fcb2..af252bd 100755 }; }; -From 44c63dcdaca924590d42106b99b5f4e30dcbfbe3 Mon Sep 17 00:00:00 2001 +From a1dc8ab4c9e134d7cec088d091e76b7a9fe96f03 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Jun 2015 14:21:55 +0100 -Subject: [PATCH 089/149] BCM270X_DT: Sort nodes by bus address, and +Subject: [PATCH 089/162] BCM270X_DT: Sort nodes by bus address, and consolidate aliases --- @@ -136557,10 +136557,10 @@ index 24fa849..ccb9c31 100644 &gpio { -From 870b67c8c48467c19fbbccb90aeb8137ce5e9bea Mon Sep 17 00:00:00 2001 +From 3f7a6c3e559a8a39eb732ef21569b6913416eec4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Jun 2015 14:23:03 +0100 -Subject: [PATCH 090/149] i2c-bcm2708/BCM270X_DT: Add support for I2C2 +Subject: [PATCH 090/162] i2c-bcm2708/BCM270X_DT: Add support for I2C2 The third I2C bus (I2C2) is normally reserved for HDMI use. Careless use of this bus can break an attached display - use with caution. @@ -136733,10 +136733,10 @@ index 8773203..7a24fbe 100644 goto out_free_bi; } -From 207f6d593f3d6b5e5bbe5b12f8e915d7f6b85dd7 Mon Sep 17 00:00:00 2001 +From b160d05a7f306283b47d1f133d0cc796f1c811ca Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Jun 2015 12:14:02 +0100 -Subject: [PATCH 091/149] BCM270X_DT: Correct the lirc-rpi overlay +Subject: [PATCH 091/162] BCM270X_DT: Correct the lirc-rpi overlay documentation The polarity of the "sense" parameter was inverted with respect to reality. @@ -136762,10 +136762,10 @@ index 0ed7094..ec762d2 100644 (default "-1") -From 919c9342b5a5c83686dc932935276d621b5cccae Mon Sep 17 00:00:00 2001 +From 10cfd6f8e969f05c16e75b54a5d1c9834169a3e4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 08:47:09 +0100 -Subject: [PATCH 092/149] bcm2835-sdhost: Further improve overclock back-off +Subject: [PATCH 092/162] bcm2835-sdhost: Further improve overclock back-off --- drivers/mmc/host/bcm2835-sdhost.c | 144 +++++++++++++++++++++----------------- @@ -137057,10 +137057,10 @@ index 6277e43..a03db06 100644 iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); -From 23382239529f6cb7af467a9247e8e24e70a4aa06 Mon Sep 17 00:00:00 2001 +From 98d3dac83fb4e30d8ea7d28e9eeac6d52b2e16b6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 10:28:59 +0100 -Subject: [PATCH 093/149] i2c-bcm2708: Increase timeouts to allow larger +Subject: [PATCH 093/162] i2c-bcm2708: Increase timeouts to allow larger transfers Use the timeout value provided by the I2C_TIMEOUT ioctl when waiting @@ -137098,10 +137098,10 @@ index 7a24fbe..8b8762d 100644 dev_err(&adap->dev, "transfer timed out\n"); goto error_timeout; -From f3d59521e6139a0e1cf79eaacffea5a576360185 Mon Sep 17 00:00:00 2001 +From f445cdcc82e3ccf74988cd01df2850b950947c53 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 10:33:52 +0100 -Subject: [PATCH 094/149] spi-bcm2708: Increase timeout from 150ms to 1s +Subject: [PATCH 094/162] spi-bcm2708: Increase timeout from 150ms to 1s See: https://github.com/raspberrypi/linux/issues/260 --- @@ -137125,10 +137125,10 @@ index 041b5e2..5c0214e 100644 struct bcm2708_spi { spinlock_t lock; -From ea8bb97ffa4e1f4bd832e7a9bed797551685625b Mon Sep 17 00:00:00 2001 +From b7c12eee260a36ea27726477fb9983e9e6ccee8c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Jun 2015 09:59:38 +0100 -Subject: [PATCH 095/149] bcm2708-spi: Don't use static pin configuration with +Subject: [PATCH 095/162] bcm2708-spi: Don't use static pin configuration with DT Also remove superfluous error checking - the SPI framework ensures the @@ -137167,10 +137167,10 @@ index 5c0214e..781c747 100644 master = spi_alloc_master(&pdev->dev, sizeof(*bs)); if (!master) { -From a141cf018b63c08c9907aa0d7b1b2791ee9250d0 Mon Sep 17 00:00:00 2001 +From d6f496d6567011b79640186e3b4867f3284ba8c1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Jun 2015 10:10:59 +0100 -Subject: [PATCH 096/149] bcm2708-i2s: Don't use static pin configuration with +Subject: [PATCH 096/162] bcm2708-i2s: Don't use static pin configuration with DT --- @@ -137193,10 +137193,10 @@ index a515992..5e93cd6 100644 /* * Adjust the data length according to the format. -From 9ac08a7ad7b65014eada794cf252828d10b6cb91 Mon Sep 17 00:00:00 2001 +From adb3d59d9e584c4079658fd5cc2db368c08519ed Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 14:12:42 +0100 -Subject: [PATCH 097/149] serial: 8250: Don't crash when nr_uarts is 0 +Subject: [PATCH 097/162] serial: 8250: Don't crash when nr_uarts is 0 --- drivers/tty/serial/8250/8250_core.c | 2 ++ @@ -137216,10 +137216,10 @@ index 4506e40..f03a19a 100644 for (i = 0; i < nr_uarts; i++) { struct uart_8250_port *up = &serial8250_ports[i]; -From e3ee14936302400a2b6389b4062e4ce45046cb2e Mon Sep 17 00:00:00 2001 +From 0468bc69c9364746fc564414c4ee482816c5a02a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2015 08:50:11 +0100 -Subject: [PATCH 098/149] BCM270X_DT: Add overlay to enable uart1 +Subject: [PATCH 098/162] BCM270X_DT: Add overlay to enable uart1 N.B. The UART1 clock is derived from the core clock. The firmware will update clock-frequency if core_freq is set, but be aware @@ -137388,10 +137388,10 @@ index e757db6..363c894 100644 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y -From 6ee396162a3700157252585fd19ed67e22b8aa34 Mon Sep 17 00:00:00 2001 +From 3ce397e55f37a80143183b178b43299fd573b915 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 099/149] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 099/162] spi-bcm2835: Support pin groups other than 7-11 The spi-bcm2835 driver automatically uses GPIO chip-selects due to some unreliability of the native ones. In doing so it chooses the @@ -137472,10 +137472,10 @@ index 37875cf..55e81c2 100644 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 2f890ad4ea68997c62f8d58af8c2800b7eeab056 Mon Sep 17 00:00:00 2001 +From 96390bbde19b5ce02afbd3f3104bb42b9572fbd1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 17:37:38 +0100 -Subject: [PATCH 100/149] BCM270X_DT: Change pio_limit of sdhost driver to 1 +Subject: [PATCH 100/162] BCM270X_DT: Change pio_limit of sdhost driver to 1 --- arch/arm/boot/dts/overlays/sdhost-overlay.dts | 2 +- @@ -137495,10 +137495,10 @@ index 897204a..2da14a4 100644 }; }; -From a9ac939580e8cf0c43c4242bb458db7d27a6deea Mon Sep 17 00:00:00 2001 +From 8f680959959c9abe872dc7de99d66f81118d9ca9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Jul 2015 12:51:52 +0100 -Subject: [PATCH 101/149] bcm2835-sdhost: Clear HBLC for PIO mode +Subject: [PATCH 101/162] bcm2835-sdhost: Clear HBLC for PIO mode Also update pio_limit default in overlay README. --- @@ -137534,10 +137534,10 @@ index a03db06..d65870a 100644 BUG_ON(!host->data); } -From 7b05003d4f07188e83919e476ac48dc5c219f8ed Mon Sep 17 00:00:00 2001 +From b1cef53451bc8b908a22007362458813b2db4dfa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 3 Jul 2015 12:21:01 +0100 -Subject: [PATCH 102/149] BCM270X_DT: I2S needs function Alt2 +Subject: [PATCH 102/162] BCM270X_DT: I2S needs function Alt2 --- arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 2 +- @@ -137599,10 +137599,10 @@ index f25f0a2..62d1c62 100644 }; -From 7a39e0bdf178dd83ffca4766bfc0a2acc1b6c3a6 Mon Sep 17 00:00:00 2001 +From 54d63fb87793528242a314e8ad0cd2104e3cd832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:16:15 +0200 -Subject: [PATCH 103/149] configs: Incorporate v4.1 dependency changes +Subject: [PATCH 103/162] configs: Incorporate v4.1 dependency changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -137765,10 +137765,10 @@ index 363c894..80f84d7 100644 CONFIG_CRC_ITU_T=y CONFIG_LIBCRC32C=y -From 01a50411ad1528451d53f69d5ad1c7370db0dbee Mon Sep 17 00:00:00 2001 +From 489bf49229ec585c2cfd5e3b7d147f5e34429a42 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 3 Jul 2015 15:47:33 +0100 -Subject: [PATCH 104/149] bcmrpi_defconfigs: Add SND_SOC_WM8804_I2C (for +Subject: [PATCH 104/162] bcmrpi_defconfigs: Add SND_SOC_WM8804_I2C (for HifiBerry Digi) 4.1 has split out support for the I2C and SPI variants, so it now @@ -137803,10 +137803,10 @@ index 80f84d7..14b91fdf 100644 CONFIG_SOUND_PRIME=m CONFIG_HIDRAW=y -From c3934ab548244c7fd691ca2e78f9a950d8eff269 Mon Sep 17 00:00:00 2001 +From 659db17b47edff9bd80d7bcb75d321e36f18ea7e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 4 Jul 2015 19:55:23 +0100 -Subject: [PATCH 105/149] squash: BCM270X_DT: I2S only needs Alt2 on 28-31 +Subject: [PATCH 105/162] squash: BCM270X_DT: I2S only needs Alt2 on 28-31 See: https://github.com/raspberrypi/linux/issues/1046 --- @@ -137855,10 +137855,10 @@ index 62d1c62..f25f0a2 100644 }; -From acd32a30be3e6952f7486c9569429fce70fb8d9e Mon Sep 17 00:00:00 2001 +From e998374742a253b9250e0589e2a5ef305a325531 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Jul 2015 14:48:57 +0100 -Subject: [PATCH 106/149] vchiq_arm: Two cacheing fixes +Subject: [PATCH 106/162] vchiq_arm: Two cacheing fixes 1) Make fragment size vary with cache line size Without this patch, non-cache-line-aligned transfers may corrupt @@ -138129,10 +138129,10 @@ index c739083..5edba23 100644 kfree(pagelist); } -From d3f1bad2c2095c829d0111a41763ec4cf3fbdeb3 Mon Sep 17 00:00:00 2001 +From ac1e04a529413fca2cb21d4af2aa48c1a636e86c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 30 Jun 2015 09:10:36 +0100 -Subject: [PATCH 107/149] BCM270X_DT: Overlay for the Fen Logic VGA666 board +Subject: [PATCH 107/162] BCM270X_DT: Overlay for the Fen Logic VGA666 board The VGA666 board requires GPIOs 2-21 (so no I2C or UART). Using the overlay (instead of a custom dt-blob.bin) has the advantage that it will @@ -138214,10 +138214,10 @@ index 0000000..7fcab96 + }; +}; -From f92a566b5dcec58d56cc8e7e629601f449325b0c Mon Sep 17 00:00:00 2001 +From 4a3dc7ff555f8e64f32fc0dde6120582711187b1 Mon Sep 17 00:00:00 2001 From: petit-miner Date: Fri, 10 Jul 2015 13:59:18 +0200 -Subject: [PATCH 108/149] Added support for 2 mcp2515 CAN Bus IC +Subject: [PATCH 108/162] Added support for 2 mcp2515 CAN Bus IC See: https://github.com/raspberrypi/linux/issues/1018 https://github.com/raspberrypi/linux/pull/1049 @@ -138347,10 +138347,10 @@ index 0000000..6bef9ae + }; +}; -From 5d7fd1e72db3384293037ca586ed2936b45748d3 Mon Sep 17 00:00:00 2001 +From b503581bceb31ab83cd3d81ef690dd24173b1400 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 5 May 2015 13:27:45 -0700 -Subject: [PATCH 109/149] mailbox: Enable BCM2835 mailbox support +Subject: [PATCH 109/162] mailbox: Enable BCM2835 mailbox support This mailbox driver provides a single mailbox channel to write 32-bit values to the VPU and get a 32-bit response. The Raspberry Pi @@ -138629,10 +138629,10 @@ index 0000000..4b13268 +MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); +MODULE_LICENSE("GPL v2"); -From 44369d3764961e5cb7a7dfce2fdb31a86ff16b14 Mon Sep 17 00:00:00 2001 +From 93ccea2d56f31551e44f81f4742122af22b14dec Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 13 May 2015 13:10:32 -0700 -Subject: [PATCH 110/149] mailbox/bcm2835: Fix mailbox full detection. +Subject: [PATCH 110/162] mailbox/bcm2835: Fix mailbox full detection. With the VC reader blocked and the ARM writing, MAIL0_STA reads empty permanently while MAIL1_STA goes from empty (0x40000000) to non-empty @@ -138671,10 +138671,10 @@ index 4b13268..0b47dd4 100644 return ret; } -From 4e08351a07fbe7f6e8625e3e538e94a2bc4c08bb Mon Sep 17 00:00:00 2001 +From ca0a75c346648bad55fd341889fc3d04561868eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:19:30 +0200 -Subject: [PATCH 111/149] mailbox: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 111/162] mailbox: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -138790,10 +138790,10 @@ index 19b491d..cc07d71 100644 dev_dbg(dev, "%s: mailbox not free\n", __func__); mutex_unlock(&con_mutex); -From 3389224055b1ee2a518308c13583361f88ff5f82 Mon Sep 17 00:00:00 2001 +From 0b009387ea689fe4ea7108ce73414d35b869a05e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Jun 2015 13:11:47 -0700 -Subject: [PATCH 112/149] ARM: bcm2835: Add the firmware driver information to +Subject: [PATCH 112/162] ARM: bcm2835: Add the firmware driver information to the RPi DT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -138827,10 +138827,10 @@ index 466f02b..5cdfd5a 100644 audio: audio { compatible = "brcm,bcm2835-audio"; -From cc901351e0dd5e50ee5e11b8697a6f5b1f35ee0d Mon Sep 17 00:00:00 2001 +From eb9904f2645254acdf046824f0ec9bec1c3e0e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:21:20 +0200 -Subject: [PATCH 113/149] firmware: bcm2835: Add missing property tags +Subject: [PATCH 113/162] firmware: bcm2835: Add missing property tags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -138892,10 +138892,10 @@ index 9d9efb7..d3933af 100644 RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, -From 31139cf5452a835f8e160b7093b05dca12c6dd29 Mon Sep 17 00:00:00 2001 +From 24c0e7cad163249456deb3fff6d31c192558f816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:25:01 +0200 -Subject: [PATCH 114/149] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 114/162] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139001,10 +139001,10 @@ index dd506cd3..b980d53 100644 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From fd247161acad069df68411af0500b183fbc78063 Mon Sep 17 00:00:00 2001 +From 3e20004539b9c6dbc5373ad81238ca9fa01ed65e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:26:10 +0200 -Subject: [PATCH 115/149] firmware: bcm2835: Support legacy mailbox API +Subject: [PATCH 115/162] firmware: bcm2835: Support legacy mailbox API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139094,10 +139094,10 @@ index d3933af..9a08cf1 100644 u32 tag, void *data, size_t len); int rpi_firmware_property_list(struct rpi_firmware *fw, -From 491b53a48fc956dd91151f5998d54544ffeab094 Mon Sep 17 00:00:00 2001 +From f9f80570984163be6895ca8742f6c1490c4878a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:27:06 +0200 -Subject: [PATCH 116/149] char: broadcom: Add vcio module +Subject: [PATCH 116/162] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139321,10 +139321,10 @@ index 0000000..c19bc20 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From 0c90bfa500f9c896f42a8cb59f7037b2c78fc8e5 Mon Sep 17 00:00:00 2001 +From d8d2c66f0e3302e877c379ee9e039659575e4aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:37:19 +0200 -Subject: [PATCH 117/149] BCM270x: Switch to firmware driver +Subject: [PATCH 117/162] BCM270x: Switch to firmware driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139931,10 +139931,10 @@ index 06fb2c2f..2e4031b 100644 MODULE_DESCRIPTION("ARM I/O to VideoCore processor"); MODULE_LICENSE("GPL"); -From 261e67ec20793d9a0f615e16b7bce7ae7a70e138 Mon Sep 17 00:00:00 2001 +From a6b0ff114bd11a98e0adb5b582b635f8658f3dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 26 Jun 2015 14:39:21 +0200 -Subject: [PATCH 118/149] bcm2835: Switch to firmware driver +Subject: [PATCH 118/162] bcm2835: Switch to firmware driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -139990,10 +139990,10 @@ index 47f2a6a..c284414 100644 CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y -From 564c166a50d6db491679366414e4c51d58b951d4 Mon Sep 17 00:00:00 2001 +From d53f3a81f351067c7658103f594a878d643c1398 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Jul 2015 13:25:31 +0100 -Subject: [PATCH 119/149] Merge pull request #1059 from pelwell/rpi-4.0.y +Subject: [PATCH 119/162] Merge pull request #1059 from pelwell/rpi-4.0.y w1_therm: Back-port locking improvements from 4.2-rc1 --- @@ -140188,10 +140188,10 @@ index 55eb86c..2f029e8 100644 { int err, i; -From 01f81174825984b4f3d309ffcdade224d94ab572 Mon Sep 17 00:00:00 2001 +From 051d84525b2e4f649ac02b6a6653c5124de2bba7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 11:11:51 +0100 -Subject: [PATCH 120/149] vchiq_arm: Sort out the vmalloc case +Subject: [PATCH 120/162] vchiq_arm: Sort out the vmalloc case See: https://github.com/raspberrypi/linux/issues/1055 --- @@ -140230,10 +140230,10 @@ index 5edba23..56bff05 100644 *need_release = 0; /* do not try and release vmalloc pages */ } else { -From 6a9ee1422507ded4b20bb30b34a1ae8151ae2141 Mon Sep 17 00:00:00 2001 +From a2bdecb23580622190e356d4deaf36cbb9ed8dc2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 121/149] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 121/162] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -140254,10 +140254,10 @@ index 92c909e..0535375 100644 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 710b1c336c5ca81b429212218b6209df1db468c9 Mon Sep 17 00:00:00 2001 +From 99476b5d0cdf174a9b9402e53188087d8519a60b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 122/149] Merge pull request #1043 from XECDesign/sense-4.0 +Subject: [PATCH 122/162] Merge pull request #1043 from XECDesign/sense-4.0 mfd: Add Raspberry Pi Sense HAT core driver --- @@ -141190,10 +141190,10 @@ index 0000000..56196dc + +#endif -From 2dce729ff88f1ae4fc318dc36e16732c8f152469 Mon Sep 17 00:00:00 2001 +From c9ee15527a47d732d7911e82aae847ab183f5e6a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jul 2015 13:46:08 +0100 -Subject: [PATCH 123/149] leds-gpio: Implement the brightness_get method +Subject: [PATCH 123/162] leds-gpio: Implement the brightness_get method The power LED uses some clever logic that means it is driven by a voltage measuring circuit when configured as input, otherwise @@ -141236,10 +141236,10 @@ index 3cfbd6a..4e4e132 100644 state = !!gpiod_get_value_cansleep(led_dat->gpiod); else -From 45d1edd1051ba8c3dcff92c18b0d56adea55ab5c Mon Sep 17 00:00:00 2001 +From 0c65130383cfa27bf2964036da24ea09d13b12a9 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Fri, 17 Jul 2015 09:50:55 +0200 -Subject: [PATCH 124/149] dmaengine: bcm2708-dmaengine: Fix memory leak when +Subject: [PATCH 124/162] dmaengine: bcm2708-dmaengine: Fix memory leak when stopping a running transfer --- @@ -141259,10 +141259,10 @@ index 987ed53..73c6c00 100644 bcm2835_dma_abort(c->chan_base); -From 5f40c5575ed6f7831637415de4e99400f270dd22 Mon Sep 17 00:00:00 2001 +From 997788197d968e641ae5ac47a35fc79705196233 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:13 +0200 -Subject: [PATCH 125/149] BCM270X_DT: Fix I2S register map +Subject: [PATCH 125/162] BCM270X_DT: Fix I2S register map --- arch/arm/boot/dts/bcm2708_common.dtsi | 4 ++-- @@ -141284,10 +141284,10 @@ index 2dd25f7..728e14a 100644 //dmas = <&dma 2>, // <&dma 3>; -From cc5fa860bef4a444edca29c4493da61837e1b7e7 Mon Sep 17 00:00:00 2001 +From 691397fefe6256a3b3e887fae54118ac95394fa6 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 126/149] BCM2835_DT: Fix I2S register map +Subject: [PATCH 126/162] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -141341,10 +141341,10 @@ index 4a63704..1135120 100644 dmas = <&dma 2>, <&dma 3>; -From 0480e8bf45e8c4fd614ce16c1f3091d85ce95576 Mon Sep 17 00:00:00 2001 +From a06952fd1eaf85f96433c43094c6d6368dededad Mon Sep 17 00:00:00 2001 From: David Frey Date: Tue, 14 Jul 2015 15:57:36 +0200 -Subject: [PATCH 127/149] config: Enable SHT drivers for raspberry pi +Subject: [PATCH 127/162] config: Enable SHT drivers for raspberry pi The SHT temperature and humidity sensors are often used in weather station projects. @@ -141386,10 +141386,10 @@ index b9b5bdf..7b24274 100644 CONFIG_THERMAL_BCM2835=y CONFIG_WATCHDOG=y -From a433727025805fd09e50b829738fc02b99446617 Mon Sep 17 00:00:00 2001 +From 5225bbd0087eb327575770be33682cde7c585922 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 14:07:14 +0100 -Subject: [PATCH 128/149] BCM270X_DT: Correct typo in overlays/README +Subject: [PATCH 128/162] BCM270X_DT: Correct typo in overlays/README --- arch/arm/boot/dts/overlays/README | 2 +- @@ -141409,10 +141409,10 @@ index 8792f98..ed484ae 100644 i2c_arm Set to "on" to enable the ARM's i2c interface -From 26be449bd477753ba005248dfde121a9e4c16a39 Mon Sep 17 00:00:00 2001 +From 42f461f5cbbf0bfcfa723f75524124be0a6ab337 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 10:53:26 +0100 -Subject: [PATCH 129/149] bcm2835-sdhost: Add the ERASE capability +Subject: [PATCH 129/162] bcm2835-sdhost: Add the ERASE capability See: https://github.com/raspberrypi/linux/issues/1076 --- @@ -141433,10 +141433,10 @@ index d65870a..57a6ad3 100644 spin_lock_init(&host->lock); -From 02c4ebf0f3e2f379496ce265f883e23a0b7be363 Mon Sep 17 00:00:00 2001 +From bcdfa0084e7b016a127d899ebc2093a20f45360c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 17:32:18 +0100 -Subject: [PATCH 130/149] bcm2835-sdhost: Ignore CRC7 for MMC CMD1 +Subject: [PATCH 130/162] bcm2835-sdhost: Ignore CRC7 for MMC CMD1 It seems that the sdhost interface returns CRC7 errors for CMD1, which is the MMC-specific SEND_OP_COND. Returning these errors to @@ -141500,10 +141500,10 @@ index 57a6ad3..84f645f 100644 if (host->cmd->flags & MMC_RSP_PRESENT) { -From 995b4ff06b418b3dbc8d560547c95d8e9e501c0c Mon Sep 17 00:00:00 2001 +From 06c63fd49eaca311b464c3fa150b169edc9eee9b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Jul 2015 14:48:21 +0100 -Subject: [PATCH 131/149] BCM270X_DT: Add unit address to gpio node name +Subject: [PATCH 131/162] BCM270X_DT: Add unit address to gpio node name --- arch/arm/boot/dts/bcm2708_common.dtsi | 2 +- @@ -141523,10 +141523,10 @@ index 728e14a..cb608df 100644 reg = <0x7e200000 0xb4>; interrupts = <2 17>, <2 18>; -From 56bc2c9c4ef10c7dc0b0ed9bf1868e2010e4adb6 Mon Sep 17 00:00:00 2001 +From 8993751f2759af27cc93f1b3ae1eb4ecd05e5896 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jul 2015 10:36:32 +0100 -Subject: [PATCH 132/149] BCM270X_DT: Use i2c_arm for rtc and bmp085 overlays +Subject: [PATCH 132/162] BCM270X_DT: Use i2c_arm for rtc and bmp085 overlays --- arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts | 2 +- @@ -141560,10 +141560,10 @@ index 7052c71..fed4bd8 100644 #address-cells = <1>; #size-cells = <0>; -From a3201af81c47ab3cf0ca61d3632a6df14e935b23 Mon Sep 17 00:00:00 2001 +From d8bfebaed30cc06eb94fd3db0b2db55935064492 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jul 2015 12:11:31 +0100 -Subject: [PATCH 133/149] BCM2708_DT: CM dtparams for audio, watchdog and RNG +Subject: [PATCH 133/162] BCM2708_DT: CM dtparams for audio, watchdog and RNG --- arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 8 ++++---- @@ -141593,10 +141593,10 @@ index 34d4bc6..713e5a2 100644 }; }; -From 30929ea53242c1f5efc06caf4a17b9c7922fd437 Mon Sep 17 00:00:00 2001 +From 01e1694a21481edca98809825c2b45354fdbbf43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:13:18 +0200 -Subject: [PATCH 134/149] vchiq: Use firmware API +Subject: [PATCH 134/162] vchiq: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -141712,10 +141712,10 @@ index 31e2cba..e11c0e0 100644 err = vchiq_debugfs_init(); if (err != 0) -From 978ebf9c4c2ef238e19ea1478b5fd11c3252c912 Mon Sep 17 00:00:00 2001 +From 603a29be18f960221ef5623607bbe32740a34253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:17:10 +0200 -Subject: [PATCH 135/149] thermal: bcm2835: Use firmware API +Subject: [PATCH 135/162] thermal: bcm2835: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -141998,10 +141998,10 @@ index 3bc80f1..c1d8f1b 100644 -module_platform_driver(bcm2835_thermal_driver); +MODULE_LICENSE("GPL"); -From 26b1f0b224f9e59fc87d02e8d0a683a3ca847356 Mon Sep 17 00:00:00 2001 +From f5cd4743e0235ba47366569c2e56d1f57f220660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:18:36 +0200 -Subject: [PATCH 136/149] cpufreq: bcm2835: Use firmware API +Subject: [PATCH 136/162] cpufreq: bcm2835: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142185,10 +142185,10 @@ index 6735da9..3eb9e93 100644 } -From a15106c0300ea7958fa7e1cc62c573d999eb4ee2 Mon Sep 17 00:00:00 2001 +From 9089b26a00ebe882b9101fdf20ee3845d11cca35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:20:59 +0200 -Subject: [PATCH 137/149] fbdev: bcm2708: Use firmware API +Subject: [PATCH 137/162] fbdev: bcm2708: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142604,10 +142604,10 @@ index f6ac7da..06a96d16 100644 free_irq(fb->dma_irq, fb); -From 8af174253322c75147e90fbc0ec0698d171e15ad Mon Sep 17 00:00:00 2001 +From 6327a22a39a16fe0ab3cd80e08794ca717241712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Mon, 20 Jul 2015 12:27:17 +0200 -Subject: [PATCH 138/149] bcm2835: Add firmware property to affected devices +Subject: [PATCH 138/162] bcm2835: Add firmware property to affected devices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142688,10 +142688,10 @@ index 1135120..807264d 100644 clocks { -From 66840ef91d4a460062686c8312f267264b567f98 Mon Sep 17 00:00:00 2001 +From 0bd261fd54b59e6269d7234ec9e8ef3c3a93ee5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 21 Jul 2015 19:09:39 +0200 -Subject: [PATCH 139/149] rpi-ft5406: Use firmware API +Subject: [PATCH 139/162] rpi-ft5406: Use firmware API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142831,10 +142831,10 @@ index d41851d..c08817e 100644 ts->regs = (struct ft5406_regs *) ts->ts_base; -From c1a5966807b9f6111684fda87e17df03f948e4d2 Mon Sep 17 00:00:00 2001 +From 2d63fbd8a7f7a2aabc4fc7e6bb55a23a51bc69d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 12 Jun 2015 19:01:05 +0200 -Subject: [PATCH 140/149] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 140/162] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -142966,10 +142966,10 @@ index 5916d6c..db66246 100644 } -From 0086c10ac490fb95a1ec82df80587b591ee74ab3 Mon Sep 17 00:00:00 2001 +From f8e3f95ca4f0e4c67d3ae90cd34f85f90a0cb28e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 15:50:04 +0200 -Subject: [PATCH 141/149] dwc_otg: Add ARCH_BCM2835 support +Subject: [PATCH 141/162] dwc_otg: Add ARCH_BCM2835 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143022,10 +143022,10 @@ index 0f4ebcd..5c83309 100644 } -From 025a502906cf5454047391a95846c4d6a3065240 Mon Sep 17 00:00:00 2001 +From 9d1fb34204f0006ba107d18141cea7cef704b987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 15:50:24 +0200 -Subject: [PATCH 142/149] bcm2835: Use DWC_OTG +Subject: [PATCH 142/162] bcm2835: Use DWC_OTG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143068,10 +143068,10 @@ index c284414..14ef294 100644 CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE_REALTEK=m -From 808a80f803c9f8897b0867a5a7c0d52cfe984bfe Mon Sep 17 00:00:00 2001 +From 1c0ae7f08f8caa4b379b42f1ddd87fe5fc672e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:33:16 +0200 -Subject: [PATCH 143/149] Fix RASPBERRYPI_FIRMWARE dependents +Subject: [PATCH 143/162] Fix RASPBERRYPI_FIRMWARE dependents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143152,10 +143152,10 @@ index 3444a4c..c073d55 100644 select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT -From eca36789db0d78a939c6520e28bbb7f7e8ea1442 Mon Sep 17 00:00:00 2001 +From c9d72e83ed9773da093b38a2ddacb3b465bf7e1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:33:46 +0200 -Subject: [PATCH 144/149] vc_mem: Remove unnecessary include +Subject: [PATCH 144/162] vc_mem: Remove unnecessary include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143178,10 +143178,10 @@ index fcde6b1..be64f23 100644 #define DRIVER_NAME "vc-mem" -From 89df011c7e129660df28ee2bc7744f8ff60ed316 Mon Sep 17 00:00:00 2001 +From 06dd1e810c51fc7328c9f599e6d1216d86fc81ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:34:06 +0200 -Subject: [PATCH 145/149] configs: Remove BCM2708_MBOX +Subject: [PATCH 145/162] configs: Remove BCM2708_MBOX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143230,10 +143230,10 @@ index 7b24274..0859113 100644 # CONFIG_IOMMU_SUPPORT is not set CONFIG_EXTCON=m -From 73e04a4d5c4e57aa0874fa5e79688e2b8eb6d0f8 Mon Sep 17 00:00:00 2001 +From 4d685c71c57dc9f9d83b94cdc540de776a2455de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:34:31 +0200 -Subject: [PATCH 146/149] bcm2708-vcio: Remove module +Subject: [PATCH 146/162] bcm2708-vcio: Remove module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -143507,10 +143507,10 @@ index d3ea839..0000000 - -#endif -From f69941fbc0eb961fbf580165ad5022e26095db49 Mon Sep 17 00:00:00 2001 +From 0b9ab0ae470ef7b048af62e8b34f0067b1e8a0d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 24 Jul 2015 19:34:55 +0200 -Subject: [PATCH 147/149] Revert "firmware: bcm2835: Support legacy mailbox +Subject: [PATCH 147/162] Revert "firmware: bcm2835: Support legacy mailbox API" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -143601,10 +143601,10 @@ index 9a08cf1..d3933af 100644 u32 tag, void *data, size_t len); int rpi_firmware_property_list(struct rpi_firmware *fw, -From 63de8df89946ca2bf9e663941c6d9108d212d1ba Mon Sep 17 00:00:00 2001 +From f93e5ec9dfd270ef3b629d4617e3ea229ed96d72 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 30 Jun 2015 12:35:39 +0100 -Subject: [PATCH 148/149] pinctrl: bcm2835: Clear the event latch register when +Subject: [PATCH 148/162] pinctrl: bcm2835: Clear the event latch register when disabling interrupts It's possible to hit a race condition if interrupts are generated on a GPIO @@ -143641,10 +143641,10 @@ index 986779a..61ef002 100644 spin_unlock_irqrestore(&pc->irq_lock[bank], flags); } -From 8dcf91adc86b5ee16627c8fe777b4e2f5ca4efc1 Mon Sep 17 00:00:00 2001 +From 6c3e912a3ba6ce62ed9cee1827a1f986f1a8af70 Mon Sep 17 00:00:00 2001 From: P33M Date: Tue, 4 Aug 2015 01:15:20 +0100 -Subject: [PATCH 149/149] dwc_otg: fiq_fsm: Make high-speed isochronous strided +Subject: [PATCH 149/162] dwc_otg: fiq_fsm: Make high-speed isochronous strided transfers work properly Certain low-bandwidth high-speed USB devices (specialist audio devices, @@ -143783,3 +143783,1465 @@ index 3f71f29..8db3dfc 100644 break; case FIQ_PER_SPLIT_LS_ABORTED: + +From 3fc3cf653206edcb2a2a6e417ebf09102cb5678a Mon Sep 17 00:00:00 2001 +From: Uli Middelberg +Date: Wed, 17 Jun 2015 10:36:56 +0200 +Subject: [PATCH 150/162] added basic docker support + +--- + arch/arm/configs/bcm2709_defconfig | 3 +++ + arch/arm/configs/bcmrpi_defconfig | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index e3155da..661f09a 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -17,6 +17,7 @@ CONFIG_IKCONFIG=m + CONFIG_IKCONFIG_PROC=y + CONFIG_CGROUP_FREEZER=y + CONFIG_CGROUP_DEVICE=y ++CONFIG_CPUSETS=y + CONFIG_CGROUP_CPUACCT=y + CONFIG_MEMCG=y + CONFIG_BLK_CGROUP=y +@@ -418,6 +419,7 @@ CONFIG_MD_RAID0=m + CONFIG_BLK_DEV_DM=m + CONFIG_DM_CRYPT=m + CONFIG_DM_SNAPSHOT=m ++CONFIG_DM_THIN_PROVISIONING=m + CONFIG_DM_MIRROR=m + CONFIG_DM_LOG_USERSPACE=m + CONFIG_DM_RAID=m +@@ -1115,6 +1117,7 @@ CONFIG_QFMT_V2=m + CONFIG_AUTOFS4_FS=y + CONFIG_FUSE_FS=m + CONFIG_CUSE=m ++CONFIG_OVERLAY_FS=m + CONFIG_FSCACHE=y + CONFIG_FSCACHE_STATS=y + CONFIG_FSCACHE_HISTOGRAM=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 0859113..06e7529 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -16,6 +16,7 @@ CONFIG_IKCONFIG=m + CONFIG_IKCONFIG_PROC=y + CONFIG_CGROUP_FREEZER=y + CONFIG_CGROUP_DEVICE=y ++CONFIG_CPUSETS=y + CONFIG_CGROUP_CPUACCT=y + CONFIG_MEMCG=y + CONFIG_BLK_CGROUP=y +@@ -411,6 +412,7 @@ CONFIG_MD_RAID0=m + CONFIG_BLK_DEV_DM=m + CONFIG_DM_CRYPT=m + CONFIG_DM_SNAPSHOT=m ++CONFIG_DM_THIN_PROVISIONING=m + CONFIG_DM_MIRROR=m + CONFIG_DM_LOG_USERSPACE=m + CONFIG_DM_RAID=m +@@ -1108,6 +1110,7 @@ CONFIG_QFMT_V2=m + CONFIG_AUTOFS4_FS=y + CONFIG_FUSE_FS=m + CONFIG_CUSE=m ++CONFIG_OVERLAY_FS=m + CONFIG_FSCACHE=y + CONFIG_FSCACHE_STATS=y + CONFIG_FSCACHE_HISTOGRAM=y + +From 10df72028fc23daeba903b1f7de812abdaecae1d Mon Sep 17 00:00:00 2001 +From: Garrett +Date: Thu, 2 Jul 2015 19:32:04 -0500 +Subject: [PATCH 151/162] bcm2835 camera planar/packed stride length + +Added a field to the mmal_fmt struct used to compute the bytes per line +when using a particular format. This results in the correct stride being +calculated even when the format is planar. + +Signed-off-by: Garrett Wilson +--- + drivers/media/platform/bcm2835/bcm2835-camera.c | 26 +++++++++++++++++++------ + drivers/media/platform/bcm2835/mmal-common.h | 1 + + 2 files changed, 21 insertions(+), 6 deletions(-) + +diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.c b/drivers/media/platform/bcm2835/bcm2835-camera.c +index eb4d831..04a1711 100644 +--- a/drivers/media/platform/bcm2835/bcm2835-camera.c ++++ b/drivers/media/platform/bcm2835/bcm2835-camera.c +@@ -88,12 +88,13 @@ static const struct v4l2_fract + /* video formats */ + static struct mmal_fmt formats[] = { + { +- .name = "4:2:0, packed YUV", ++ .name = "4:2:0, planar, YUV", + .fourcc = V4L2_PIX_FMT_YUV420, + .flags = 0, + .mmal = MMAL_ENCODING_I420, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { + .name = "4:2:2, packed, YUYV", +@@ -102,6 +103,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_YUYV, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { + .name = "RGB24 (LE)", +@@ -110,6 +112,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_BGR24, + .depth = 24, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 3, + }, + { + .name = "JPEG", +@@ -118,6 +121,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_JPEG, + .depth = 8, + .mmal_component = MMAL_COMPONENT_IMAGE_ENCODE, ++ .ybbp = 0, + }, + { + .name = "H264", +@@ -126,6 +130,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_H264, + .depth = 8, + .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE, ++ .ybbp = 0, + }, + { + .name = "MJPEG", +@@ -134,6 +139,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_MJPEG, + .depth = 8, + .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE, ++ .ybbp = 0, + }, + { + .name = "4:2:2, packed, YVYU", +@@ -142,6 +148,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_YVYU, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { + .name = "4:2:2, packed, VYUY", +@@ -150,6 +157,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_VYUY, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { + .name = "4:2:2, packed, UYVY", +@@ -158,14 +166,16 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_UYVY, + .depth = 16, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 2, + }, + { +- .name = "4:2:0, packed, NV12", ++ .name = "4:2:0, planar, NV12", + .fourcc = V4L2_PIX_FMT_NV12, + .flags = 0, + .mmal = MMAL_ENCODING_NV12, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { + .name = "RGB24 (BE)", +@@ -174,22 +184,25 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_RGB24, + .depth = 24, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 3, + }, + { +- .name = "4:2:0, packed YVU", ++ .name = "4:2:0, planar, YVU", + .fourcc = V4L2_PIX_FMT_YVU420, + .flags = 0, + .mmal = MMAL_ENCODING_YV12, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { +- .name = "4:2:0, packed, NV21", ++ .name = "4:2:0, planar, NV21", + .fourcc = V4L2_PIX_FMT_NV21, + .flags = 0, + .mmal = MMAL_ENCODING_NV21, + .depth = 12, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 1, + }, + { + .name = "RGB32 (BE)", +@@ -198,6 +211,7 @@ static struct mmal_fmt formats[] = { + .mmal = MMAL_ENCODING_BGRA, + .depth = 32, + .mmal_component = MMAL_COMPONENT_CAMERA, ++ .ybbp = 4, + }, + }; + +@@ -771,7 +785,7 @@ static int vidioc_g_fbuf(struct file *file, void *fh, + a->fmt.width = preview_port->es.video.width; + a->fmt.height = preview_port->es.video.height; + a->fmt.pixelformat = V4L2_PIX_FMT_YUV420; +- a->fmt.bytesperline = (preview_port->es.video.width * 3)>>1; ++ a->fmt.bytesperline = preview_port->es.video.width; + a->fmt.sizeimage = (preview_port->es.video.width * + preview_port->es.video.height * 3)>>1; + a->fmt.colorspace = V4L2_COLORSPACE_SMPTE170M; +@@ -894,7 +908,7 @@ static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, + + v4l_bound_align_image(&f->fmt.pix.width, MIN_WIDTH, MAX_WIDTH, 1, + &f->fmt.pix.height, MIN_HEIGHT, MAX_HEIGHT, 1, 0); +- f->fmt.pix.bytesperline = (f->fmt.pix.width * mfmt->depth)>>3; ++ f->fmt.pix.bytesperline = f->fmt.pix.width * mfmt->ybbp; + + /* Image buffer has to be padded to allow for alignment, even though + * we then remove that padding before delivering the buffer. +diff --git a/drivers/media/platform/bcm2835/mmal-common.h b/drivers/media/platform/bcm2835/mmal-common.h +index 35698c8..15788a1 100644 +--- a/drivers/media/platform/bcm2835/mmal-common.h ++++ b/drivers/media/platform/bcm2835/mmal-common.h +@@ -30,6 +30,7 @@ struct mmal_fmt { + u32 mmal; + int depth; + u32 mmal_component; /* MMAL component index to be used to encode */ ++ u32 ybbp; /* depth of first Y plane for planar formats */ + }; + + /* buffer for one video frame */ +From 65fe96220f731c79830f8b7085a97551e6321d5e Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 28 Jul 2015 13:55:04 +0100 +Subject: [PATCH 153/162] config: Add Mediatek mt7601u wifi driver + +--- + arch/arm/configs/bcm2709_defconfig | 2 ++ + arch/arm/configs/bcmrpi_defconfig | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 661f09a..e5af037 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -518,6 +518,8 @@ CONFIG_RT2800USB_RT3573=y + CONFIG_RT2800USB_RT53XX=y + CONFIG_RT2800USB_RT55XX=y + CONFIG_RT2800USB_UNKNOWN=y ++CONFIG_WL_MEDIATEK=y ++CONFIG_MT7601U=m + CONFIG_RTL8192CU=m + CONFIG_ZD1211RW=m + CONFIG_MWIFIEX=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 06e7529..a377222 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -511,6 +511,8 @@ CONFIG_RT2800USB_RT3573=y + CONFIG_RT2800USB_RT53XX=y + CONFIG_RT2800USB_RT55XX=y + CONFIG_RT2800USB_UNKNOWN=y ++CONFIG_WL_MEDIATEK=y ++CONFIG_MT7601U=m + CONFIG_RTL8192CU=m + CONFIG_ZD1211RW=m + CONFIG_MWIFIEX=m + +From 075c169a20454a6bb347c1854bfad2557224fb9e Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 17 Aug 2015 10:49:44 +0100 +Subject: [PATCH 154/162] BCM270X_DT: Add pwm and pwm-2chan overlays + +From the README entries: + Legal pin,function combinations for each channel: + PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) + PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) + N.B.: + 1) Pin 18 is the only one available on all platforms, and + it is the one used by the I2S audio interface. + Pins 12 and 13 might be better choices on an A+, B+ or Pi2. + 2) The onboard analogue audio output uses both PWM channels. + 3) So be careful mixing audio and PWM. + 4) Currently the clock must have been enabled and configured + by other means. + +See: https://github.com/raspberrypi/linux/issues/756 +--- + arch/arm/boot/dts/bcm2708_common.dtsi | 16 +++++++++ + arch/arm/boot/dts/overlays/Makefile | 2 ++ + arch/arm/boot/dts/overlays/README | 41 +++++++++++++++++++++ + arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 46 ++++++++++++++++++++++++ + arch/arm/boot/dts/overlays/pwm-overlay.dts | 42 ++++++++++++++++++++++ + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + drivers/pwm/Kconfig | 2 +- + 8 files changed, 150 insertions(+), 1 deletion(-) + create mode 100644 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts + create mode 100644 arch/arm/boot/dts/overlays/pwm-overlay.dts + +diff --git a/arch/arm/boot/dts/bcm2708_common.dtsi b/arch/arm/boot/dts/bcm2708_common.dtsi +index d1c3bdf..ea3bd9ca 100644 +--- a/arch/arm/boot/dts/bcm2708_common.dtsi ++++ b/arch/arm/boot/dts/bcm2708_common.dtsi +@@ -154,6 +154,14 @@ + status = "disabled"; + }; + ++ pwm: pwm@7e20c000 { ++ compatible = "brcm,bcm2835-pwm"; ++ reg = <0x7e20c000 0x28>; ++ clocks = <&clk_pwm>; ++ #pwm-cells = <2>; ++ status = "disabled"; ++ }; ++ + uart1: uart@7e215040 { + compatible = "brcm,bcm2835-aux-uart", "ns16550"; + reg = <0x7e215040 0x40>; +@@ -279,6 +287,14 @@ + clock-output-names = "apb_pclk"; + clock-frequency = <126000000>; + }; ++ ++ clk_pwm: clock@5 { ++ compatible = "fixed-clock"; ++ reg = <3>; ++ #clock-cells = <0>; ++ clock-output-names = "pwm"; ++ clock-frequency = <100000000>; ++ }; + }; + + __overrides__ { +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 5f6082f..753554b 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -35,6 +35,8 @@ dtb-$(RPI_DT_OVERLAYS) += mz61581-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += pitft28-resistive-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += pwm-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += pwm-2chan-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += rpi-dac-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += rpi-display-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += rpi-ft5406-overlay.dtb +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index ed484ae..1cd2140 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -410,6 +410,47 @@ Load: dtoverlay=pps-gpio,= + Params: gpiopin Input GPIO (default "18") + + ++Name: pwm ++Info: Configures a single PWM channel ++ Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++ 4) Currently the clock must have been enabled and configured ++ by other means. ++Load: dtoverlay=pwm-2chan,= ++Load: dtoverlay=pwm,= ++Params: pin Output pin (default 18) - see table ++ func Pin function (default 2 = Alt5) - see above ++ clock PWM clock frequency (informational) ++ ++ ++Name: pwm-2chan ++Info: Configures both PWM channels ++ Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++ 4) Currently the clock must have been enabled and configured ++ by other means. ++Load: dtoverlay=pwm-2chan,= ++Params: pin Output pin (default 18) - see table ++ pin2 Output pin for other channel (default 19) ++ func Pin function (default 2 = Alt5) - see above ++ func2 Function for pin2 (default 2 = Alt5) ++ clock PWM clock frequency (informational) ++ ++ + Name: rpi-dac + Info: Configures the RPi DAC audio card + Load: dtoverlay=rpi-dac +diff --git a/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts b/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts +new file mode 100644 +index 0000000..957e1a4 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts +@@ -0,0 +1,46 @@ ++/dts-v1/; ++/plugin/; ++ ++/* ++This is the 2-channel overlay - only use it if you need both channels. ++ ++Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ ++N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++*/ ++ ++/ { ++ fragment@0 { ++ target = <&gpio>; ++ __overlay__ { ++ pwm_pins: pwm_pins { ++ brcm,pins = <18 19>; ++ brcm,function = <2 2>; /* Alt5 */ ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&pwm>; ++ __overlay__ { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pwm_pins>; ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ pin = <&pwm_pins>,"brcm,pins:0"; ++ pin2 = <&pwm_pins>,"brcm,pins:4"; ++ func = <&pwm_pins>,"brcm,function:0"; ++ func2 = <&pwm_pins>,"brcm,function:4"; ++ clock = <&clk_pwm>,"clock-frequency:0"; ++ }; ++}; +diff --git a/arch/arm/boot/dts/overlays/pwm-overlay.dts b/arch/arm/boot/dts/overlays/pwm-overlay.dts +new file mode 100644 +index 0000000..ddd67ff +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pwm-overlay.dts +@@ -0,0 +1,42 @@ ++/dts-v1/; ++/plugin/; ++ ++/* ++Legal pin,function combinations for each channel: ++ PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1) ++ PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1) ++ ++N.B.: ++ 1) Pin 18 is the only one available on all platforms, and ++ it is the one used by the I2S audio interface. ++ Pins 12 and 13 might be better choices on an A+, B+ or Pi2. ++ 2) The onboard analogue audio output uses both PWM channels. ++ 3) So be careful mixing audio and PWM. ++*/ ++ ++/ { ++ fragment@0 { ++ target = <&gpio>; ++ __overlay__ { ++ pwm_pins: pwm_pins { ++ brcm,pins = <18>; ++ brcm,function = <2>; /* Alt5 */ ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&pwm>; ++ __overlay__ { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pwm_pins>; ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ pin = <&pwm_pins>,"brcm,pins:0"; ++ func = <&pwm_pins>,"brcm,function:0"; ++ clock = <&clk_pwm>,"clock-frequency:0"; ++ }; ++}; +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index e5af037..d7457fc 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1091,6 +1091,7 @@ CONFIG_IIO_BUFFER=y + CONFIG_IIO_BUFFER_CB=y + CONFIG_IIO_KFIFO_BUF=m + CONFIG_DHT11=m ++CONFIG_PWM_BCM2835=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index a377222..59b2fdd 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1084,6 +1084,7 @@ CONFIG_IIO_BUFFER=y + CONFIG_IIO_BUFFER_CB=y + CONFIG_IIO_KFIFO_BUF=m + CONFIG_DHT11=m ++CONFIG_PWM_BCM2835=m + CONFIG_RASPBERRYPI_FIRMWARE=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y +diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig +index b1541f4..90591a9 100644 +--- a/drivers/pwm/Kconfig ++++ b/drivers/pwm/Kconfig +@@ -85,7 +85,7 @@ config PWM_BCM_KONA + + config PWM_BCM2835 + tristate "BCM2835 PWM support" +- depends on ARCH_BCM2835 ++ depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 + help + PWM framework driver for BCM2835 controller (Raspberry Pi) + + +From 6ab6379ee9a376822bfc7ab62e8b9eaddd50f908 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Apr 2015 07:33:03 +0000 +Subject: [PATCH 155/162] spi: bcm2835: fallback to interrupt for polling + timeouts exceeding 2 jiffies + +The polling mode of the driver is designed for transfers that run +less than 30us - it will only execute under those circumstances. +So it should run comfortably without getting interrupted by the +scheduler. + +But there are situations where the raspberry pi is so overloaded +that it can take up to 80 jiffies until the polling thread gets +rescheduled - this has been observed especially under heavy +IO situations. + +In such a situation we now fall back to the interrupt handler and +log the situation at debug level. + +Signed-off-by: Martin Sperl +Signed-off-by: Mark Brown +(cherry picked from commit a750b124cfd27bae1a12df22318db5a2083dfb12) +--- + drivers/spi/spi-bcm2835.c | 87 +++++++++++++++++++++++++++-------------------- + 1 file changed, 50 insertions(+), 37 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 55e81c2..fc3c6f7 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -69,7 +69,7 @@ + #define BCM2835_SPI_CS_CS_01 0x00000001 + + #define BCM2835_SPI_POLLING_LIMIT_US 30 +-#define BCM2835_SPI_TIMEOUT_MS 30000 ++#define BCM2835_SPI_POLLING_JIFFIES 2 + #define BCM2835_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \ + | SPI_NO_CS | SPI_3WIRE) + +@@ -157,42 +157,6 @@ static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id) + return IRQ_HANDLED; + } + +-static int bcm2835_spi_transfer_one_poll(struct spi_master *master, +- struct spi_device *spi, +- struct spi_transfer *tfr, +- u32 cs, +- unsigned long xfer_time_us) +-{ +- struct bcm2835_spi *bs = spi_master_get_devdata(master); +- /* set timeout to 1 second of maximum polling */ +- unsigned long timeout = jiffies + HZ; +- +- /* enable HW block without interrupts */ +- bcm2835_wr(bs, BCM2835_SPI_CS, cs | BCM2835_SPI_CS_TA); +- +- /* loop until finished the transfer */ +- while (bs->rx_len) { +- /* read from fifo as much as possible */ +- bcm2835_rd_fifo(bs); +- /* fill in tx fifo as much as possible */ +- bcm2835_wr_fifo(bs); +- /* if we still expect some data after the read, +- * check for a possible timeout +- */ +- if (bs->rx_len && time_after(jiffies, timeout)) { +- /* Transfer complete - reset SPI HW */ +- bcm2835_spi_reset_hw(master); +- /* and return timeout */ +- return -ETIMEDOUT; +- } +- } +- +- /* Transfer complete - reset SPI HW */ +- bcm2835_spi_reset_hw(master); +- /* and return without waiting for completion */ +- return 0; +-} +- + static int bcm2835_spi_transfer_one_irq(struct spi_master *master, + struct spi_device *spi, + struct spi_transfer *tfr, +@@ -229,6 +193,55 @@ static int bcm2835_spi_transfer_one_irq(struct spi_master *master, + return 1; + } + ++static int bcm2835_spi_transfer_one_poll(struct spi_master *master, ++ struct spi_device *spi, ++ struct spi_transfer *tfr, ++ u32 cs, ++ unsigned long xfer_time_us) ++{ ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ unsigned long timeout; ++ ++ /* enable HW block without interrupts */ ++ bcm2835_wr(bs, BCM2835_SPI_CS, cs | BCM2835_SPI_CS_TA); ++ ++ /* fill in the fifo before timeout calculations ++ * if we are interrupted here, then the data is ++ * getting transferred by the HW while we are interrupted ++ */ ++ bcm2835_wr_fifo(bs); ++ ++ /* set the timeout */ ++ timeout = jiffies + BCM2835_SPI_POLLING_JIFFIES; ++ ++ /* loop until finished the transfer */ ++ while (bs->rx_len) { ++ /* fill in tx fifo with remaining data */ ++ bcm2835_wr_fifo(bs); ++ ++ /* read from fifo as much as possible */ ++ bcm2835_rd_fifo(bs); ++ ++ /* if there is still data pending to read ++ * then check the timeout ++ */ ++ if (bs->rx_len && time_after(jiffies, timeout)) { ++ dev_dbg_ratelimited(&spi->dev, ++ "timeout period reached: jiffies: %lu remaining tx/rx: %d/%d - falling back to interrupt mode\n", ++ jiffies - timeout, ++ bs->tx_len, bs->rx_len); ++ /* fall back to interrupt mode */ ++ return bcm2835_spi_transfer_one_irq(master, spi, ++ tfr, cs); ++ } ++ } ++ ++ /* Transfer complete - reset SPI HW */ ++ bcm2835_spi_reset_hw(master); ++ /* and return without waiting for completion */ ++ return 0; ++} ++ + static int bcm2835_spi_transfer_one(struct spi_master *master, + struct spi_device *spi, + struct spi_transfer *tfr) + +From 152383427aa10dfa7bf146f4f166dbbd9fdb4a1c Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Sun, 10 May 2015 20:47:28 +0000 +Subject: [PATCH 156/162] spi: bcm2835: enable dma modes for transfers meeting + certain conditions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Conditions per spi_transfer are: +* transfer.len >= 96 bytes (to avoid mapping overhead costs) +* transfer.len < 65536 bytes (limitaion by spi-hw block - could get extended) +* an individual scatter/gather transfer length must be a multiple of 4 + for anything but the last transfer - spi-hw block limit. + (some shortcut has been taken in can_dma to avoid unnecessary mapping of + pages which, for which there is a chance that there is a split with a + transfer length not a multiple of 4) + +If it becomes a necessity these restrictions can get removed by additional +code. + +Note that this patch requires a patch to dma-bcm2835.c by Noralf to +enable scatter-gather mode inside the dmaengine, which has not been +merged yet. + +That is why no patch to arch/arm/boot/dts/bcm2835.dtsi is included - the +code works as before without dma when tx/rx are not set, but it writes +a message warning about dma not used: +spi-bcm2835 20204000.spi: no tx-dma configuration found - not using dma mode + +To enable dma-mode add the following lines to the device-tree: + dmas = <&dma 6>, <&dma 7>; + dma-names = "tx", "rx"; + +Tested-by: Noralf Trønnes (private communication) +Signed-off-by: Martin Sperl +Signed-off-by: Mark Brown +(cherry picked from commit 3ecd37edaa2a6ba3246e2c35714be9316b1087fe) +--- + drivers/spi/spi-bcm2835.c | 303 +++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 301 insertions(+), 2 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index fc3c6f7..7af0fb2 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -23,15 +23,18 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include + #include + #include + #include +-#include +-#include ++#include + #include ++#include ++#include + #include + + /* SPI register offsets */ +@@ -70,6 +73,7 @@ + + #define BCM2835_SPI_POLLING_LIMIT_US 30 + #define BCM2835_SPI_POLLING_JIFFIES 2 ++#define BCM2835_SPI_DMA_MIN_LENGTH 96 + #define BCM2835_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \ + | SPI_NO_CS | SPI_3WIRE) + +@@ -83,6 +87,7 @@ struct bcm2835_spi { + u8 *rx_buf; + int tx_len; + int rx_len; ++ bool dma_pending; + }; + + static inline u32 bcm2835_rd(struct bcm2835_spi *bs, unsigned reg) +@@ -128,12 +133,15 @@ static void bcm2835_spi_reset_hw(struct spi_master *master) + /* Disable SPI interrupts and transfer */ + cs &= ~(BCM2835_SPI_CS_INTR | + BCM2835_SPI_CS_INTD | ++ BCM2835_SPI_CS_DMAEN | + BCM2835_SPI_CS_TA); + /* and reset RX/TX FIFOS */ + cs |= BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX; + + /* and reset the SPI_HW */ + bcm2835_wr(bs, BCM2835_SPI_CS, cs); ++ /* as well as DLEN */ ++ bcm2835_wr(bs, BCM2835_SPI_DLEN, 0); + } + + static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id) +@@ -193,6 +201,279 @@ static int bcm2835_spi_transfer_one_irq(struct spi_master *master, + return 1; + } + ++/* ++ * DMA support ++ * ++ * this implementation has currently a few issues in so far as it does ++ * not work arrount limitations of the HW. ++ * ++ * the main one being that DMA transfers are limited to 16 bit ++ * (so 0 to 65535 bytes) by the SPI HW due to BCM2835_SPI_DLEN ++ * ++ * also we currently assume that the scatter-gather fragments are ++ * all multiple of 4 (except the last) - otherwise we would need ++ * to reset the FIFO before subsequent transfers... ++ * this also means that tx/rx transfers sg's need to be of equal size! ++ * ++ * there may be a few more border-cases we may need to address as well ++ * but unfortunately this would mean splitting up the scatter-gather ++ * list making it slightly unpractical... ++ */ ++static void bcm2835_spi_dma_done(void *data) ++{ ++ struct spi_master *master = data; ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ ++ /* reset fifo and HW */ ++ bcm2835_spi_reset_hw(master); ++ ++ /* and terminate tx-dma as we do not have an irq for it ++ * because when the rx dma will terminate and this callback ++ * is called the tx-dma must have finished - can't get to this ++ * situation otherwise... ++ */ ++ dmaengine_terminate_all(master->dma_tx); ++ ++ /* mark as no longer pending */ ++ bs->dma_pending = 0; ++ ++ /* and mark as completed */; ++ complete(&master->xfer_completion); ++} ++ ++static int bcm2835_spi_prepare_sg(struct spi_master *master, ++ struct spi_transfer *tfr, ++ bool is_tx) ++{ ++ struct dma_chan *chan; ++ struct scatterlist *sgl; ++ unsigned int nents; ++ enum dma_transfer_direction dir; ++ unsigned long flags; ++ ++ struct dma_async_tx_descriptor *desc; ++ dma_cookie_t cookie; ++ ++ if (is_tx) { ++ dir = DMA_MEM_TO_DEV; ++ chan = master->dma_tx; ++ nents = tfr->tx_sg.nents; ++ sgl = tfr->tx_sg.sgl; ++ flags = 0 /* no tx interrupt */; ++ ++ } else { ++ dir = DMA_DEV_TO_MEM; ++ chan = master->dma_rx; ++ nents = tfr->rx_sg.nents; ++ sgl = tfr->rx_sg.sgl; ++ flags = DMA_PREP_INTERRUPT; ++ } ++ /* prepare the channel */ ++ desc = dmaengine_prep_slave_sg(chan, sgl, nents, dir, flags); ++ if (!desc) ++ return -EINVAL; ++ ++ /* set callback for rx */ ++ if (!is_tx) { ++ desc->callback = bcm2835_spi_dma_done; ++ desc->callback_param = master; ++ } ++ ++ /* submit it to DMA-engine */ ++ cookie = dmaengine_submit(desc); ++ ++ return dma_submit_error(cookie); ++} ++ ++static inline int bcm2835_check_sg_length(struct sg_table *sgt) ++{ ++ int i; ++ struct scatterlist *sgl; ++ ++ /* check that the sg entries are word-sized (except for last) */ ++ for_each_sg(sgt->sgl, sgl, (int)sgt->nents - 1, i) { ++ if (sg_dma_len(sgl) % 4) ++ return -EFAULT; ++ } ++ ++ return 0; ++} ++ ++static int bcm2835_spi_transfer_one_dma(struct spi_master *master, ++ struct spi_device *spi, ++ struct spi_transfer *tfr, ++ u32 cs) ++{ ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ int ret; ++ ++ /* check that the scatter gather segments are all a multiple of 4 */ ++ if (bcm2835_check_sg_length(&tfr->tx_sg) || ++ bcm2835_check_sg_length(&tfr->rx_sg)) { ++ dev_warn_once(&spi->dev, ++ "scatter gather segment length is not a multiple of 4 - falling back to interrupt mode\n"); ++ return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); ++ } ++ ++ /* setup tx-DMA */ ++ ret = bcm2835_spi_prepare_sg(master, tfr, true); ++ if (ret) ++ return ret; ++ ++ /* start TX early */ ++ dma_async_issue_pending(master->dma_tx); ++ ++ /* mark as dma pending */ ++ bs->dma_pending = 1; ++ ++ /* set the DMA length */ ++ bcm2835_wr(bs, BCM2835_SPI_DLEN, tfr->len); ++ ++ /* start the HW */ ++ bcm2835_wr(bs, BCM2835_SPI_CS, ++ cs | BCM2835_SPI_CS_TA | BCM2835_SPI_CS_DMAEN); ++ ++ /* setup rx-DMA late - to run transfers while ++ * mapping of the rx buffers still takes place ++ * this saves 10us or more. ++ */ ++ ret = bcm2835_spi_prepare_sg(master, tfr, false); ++ if (ret) { ++ /* need to reset on errors */ ++ dmaengine_terminate_all(master->dma_tx); ++ bcm2835_spi_reset_hw(master); ++ return ret; ++ } ++ ++ /* start rx dma late */ ++ dma_async_issue_pending(master->dma_rx); ++ ++ /* wait for wakeup in framework */ ++ return 1; ++} ++ ++static bool bcm2835_spi_can_dma(struct spi_master *master, ++ struct spi_device *spi, ++ struct spi_transfer *tfr) ++{ ++ /* only run for gpio_cs */ ++ if (!gpio_is_valid(spi->cs_gpio)) ++ return false; ++ ++ /* we start DMA efforts only on bigger transfers */ ++ if (tfr->len < BCM2835_SPI_DMA_MIN_LENGTH) ++ return false; ++ ++ /* BCM2835_SPI_DLEN has defined a max transfer size as ++ * 16 bit, so max is 65535 ++ * we can revisit this by using an alternative transfer ++ * method - ideally this would get done without any more ++ * interaction... ++ */ ++ if (tfr->len > 65535) { ++ dev_warn_once(&spi->dev, ++ "transfer size of %d too big for dma-transfer\n", ++ tfr->len); ++ return false; ++ } ++ ++ /* if we run rx/tx_buf with word aligned addresses then we are OK */ ++ if (((u32)tfr->tx_buf % 4 == 0) && ((u32)tfr->tx_buf % 4 == 0)) ++ return true; ++ ++ /* otherwise we only allow transfers within the same page ++ * to avoid wasting time on dma_mapping when it is not practical ++ */ ++ if (((u32)tfr->tx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ dev_warn_once(&spi->dev, ++ "Unaligned spi tx-transfer bridging page\n"); ++ return false; ++ } ++ if (((u32)tfr->rx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ dev_warn_once(&spi->dev, ++ "Unaligned spi tx-transfer bridging page\n"); ++ return false; ++ } ++ ++ /* return OK */ ++ return true; ++} ++ ++void bcm2835_dma_release(struct spi_master *master) ++{ ++ if (master->dma_tx) { ++ dmaengine_terminate_all(master->dma_tx); ++ dma_release_channel(master->dma_tx); ++ master->dma_tx = NULL; ++ } ++ if (master->dma_rx) { ++ dmaengine_terminate_all(master->dma_rx); ++ dma_release_channel(master->dma_rx); ++ master->dma_rx = NULL; ++ } ++} ++ ++void bcm2835_dma_init(struct spi_master *master, struct device *dev) ++{ ++ struct dma_slave_config slave_config; ++ const __be32 *addr; ++ dma_addr_t dma_reg_base; ++ int ret; ++ ++ /* base address in dma-space */ ++ addr = of_get_address(master->dev.of_node, 0, NULL, NULL); ++ if (!addr) { ++ dev_err(dev, "could not get DMA-register address - not using dma mode\n"); ++ goto err; ++ } ++ dma_reg_base = be32_to_cpup(addr); ++ ++ /* get tx/rx dma */ ++ master->dma_tx = dma_request_slave_channel(dev, "tx"); ++ if (!master->dma_tx) { ++ dev_err(dev, "no tx-dma configuration found - not using dma mode\n"); ++ goto err; ++ } ++ master->dma_rx = dma_request_slave_channel(dev, "rx"); ++ if (!master->dma_rx) { ++ dev_err(dev, "no rx-dma configuration found - not using dma mode\n"); ++ goto err_release; ++ } ++ ++ /* configure DMAs */ ++ slave_config.direction = DMA_MEM_TO_DEV; ++ slave_config.dst_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO); ++ slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; ++ ++ ret = dmaengine_slave_config(master->dma_tx, &slave_config); ++ if (ret) ++ goto err_config; ++ ++ slave_config.direction = DMA_DEV_TO_MEM; ++ slave_config.src_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO); ++ slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; ++ ++ ret = dmaengine_slave_config(master->dma_rx, &slave_config); ++ if (ret) ++ goto err_config; ++ ++ /* all went well, so set can_dma */ ++ master->can_dma = bcm2835_spi_can_dma; ++ master->max_dma_len = 65535; /* limitation by BCM2835_SPI_DLEN */ ++ /* need to do TX AND RX DMA, so we need dummy buffers */ ++ master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX; ++ ++ return; ++ ++err_config: ++ dev_err(dev, "issue configuring dma: %d - not using DMA mode\n", ++ ret); ++err_release: ++ bcm2835_dma_release(master); ++err: ++ return; ++} ++ + static int bcm2835_spi_transfer_one_poll(struct spi_master *master, + struct spi_device *spi, + struct spi_transfer *tfr, +@@ -301,12 +582,26 @@ static int bcm2835_spi_transfer_one(struct spi_master *master, + return bcm2835_spi_transfer_one_poll(master, spi, tfr, + cs, xfer_time_us); + ++ /* run in dma mode if conditions are right */ ++ if (master->can_dma && bcm2835_spi_can_dma(master, spi, tfr)) ++ return bcm2835_spi_transfer_one_dma(master, spi, tfr, cs); ++ ++ /* run in interrupt-mode */ + return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); + } + + static void bcm2835_spi_handle_err(struct spi_master *master, + struct spi_message *msg) + { ++ struct bcm2835_spi *bs = spi_master_get_devdata(master); ++ ++ /* if an error occurred and we have an active dma, then terminate */ ++ if (bs->dma_pending) { ++ dmaengine_terminate_all(master->dma_tx); ++ dmaengine_terminate_all(master->dma_rx); ++ bs->dma_pending = 0; ++ } ++ /* and reset */ + bcm2835_spi_reset_hw(master); + } + +@@ -505,6 +800,8 @@ static int bcm2835_spi_probe(struct platform_device *pdev) + goto out_clk_disable; + } + ++ bcm2835_dma_init(master, &pdev->dev); ++ + /* initialise the hardware with the default polarities */ + bcm2835_wr(bs, BCM2835_SPI_CS, + BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX); +@@ -535,6 +832,8 @@ static int bcm2835_spi_remove(struct platform_device *pdev) + + clk_disable_unprepare(bs->clk); + ++ bcm2835_dma_release(master); ++ + return 0; + } + + +From 42908111d24a8e1a2d2f2459d427f08628c9e2d3 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Tue, 12 May 2015 10:32:08 +0000 +Subject: [PATCH 157/162] spi: bcm2835: fix kbuild compile warnings/errors and + a typo + +fixes several warnings/error emmitted by the kbuild system: +* warn: cast from pointer to integer of different size + using size_t instead of u32 +* error: 'SZ_4K' undeclared + moved to PAGE_SIZE and PAGE_MASK instead + +Review showed also a typo in the same code where tx_buff +was checked twice instead of checking both rx and tx_buff. + +Reported by: Stephen Rothwell +Signed-off-by: Martin Sperl +Signed-off-by: Mark Brown +(cherry picked from commit 7e52be0d576e8f7bc99a606f07b9d000c4340f04) +--- + drivers/spi/spi-bcm2835.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 7af0fb2..9d80cea 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -20,6 +20,7 @@ + * GNU General Public License for more details. + */ + ++#include + #include + #include + #include +@@ -378,18 +379,19 @@ static bool bcm2835_spi_can_dma(struct spi_master *master, + } + + /* if we run rx/tx_buf with word aligned addresses then we are OK */ +- if (((u32)tfr->tx_buf % 4 == 0) && ((u32)tfr->tx_buf % 4 == 0)) ++ if ((((size_t)tfr->rx_buf & 3) == 0) && ++ (((size_t)tfr->tx_buf & 3) == 0)) + return true; + + /* otherwise we only allow transfers within the same page + * to avoid wasting time on dma_mapping when it is not practical + */ +- if (((u32)tfr->tx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ if (((size_t)tfr->tx_buf & PAGE_MASK) + tfr->len > PAGE_SIZE) { + dev_warn_once(&spi->dev, + "Unaligned spi tx-transfer bridging page\n"); + return false; + } +- if (((u32)tfr->rx_buf % SZ_4K) + tfr->len > SZ_4K) { ++ if (((size_t)tfr->rx_buf & PAGE_MASK) + tfr->len > PAGE_SIZE) { + dev_warn_once(&spi->dev, + "Unaligned spi tx-transfer bridging page\n"); + return false; + +From 3a66d068d6fcdce451b5af6c3be81d54774b2033 Mon Sep 17 00:00:00 2001 +From: kbuild test robot +Date: Tue, 12 May 2015 19:43:59 +0800 +Subject: [PATCH 158/162] spi: bcm2835: bcm2835_dma_release() can be static + +Signed-off-by: Fengguang Wu +Signed-off-by: Mark Brown +(cherry picked from commit 29ad1a7a9e08f1d2b6795c5278a0c0fd23679ded) +--- + drivers/spi/spi-bcm2835.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 9d80cea..338babc3 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -401,7 +401,7 @@ static bool bcm2835_spi_can_dma(struct spi_master *master, + return true; + } + +-void bcm2835_dma_release(struct spi_master *master) ++static void bcm2835_dma_release(struct spi_master *master) + { + if (master->dma_tx) { + dmaengine_terminate_all(master->dma_tx); +@@ -415,7 +415,7 @@ void bcm2835_dma_release(struct spi_master *master) + } + } + +-void bcm2835_dma_init(struct spi_master *master, struct device *dev) ++static void bcm2835_dma_init(struct spi_master *master, struct device *dev) + { + struct dma_slave_config slave_config; + const __be32 *addr; + +From e18f00124628ffb928493bd578c5a6491d58fe32 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Jul 2015 07:43:28 +0000 +Subject: [PATCH 159/162] spi: bcm2835: fixed compile issues due to embedded + comments... replaced with #if to avoid issues in the future. + +Signed-off-by: Martin Sperl +--- + drivers/spi/spi-bcm2835.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 338babc3..cedffe1 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -592,6 +592,7 @@ static int bcm2835_spi_transfer_one(struct spi_master *master, + return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); + } + ++#if 0 + static void bcm2835_spi_handle_err(struct spi_master *master, + struct spi_message *msg) + { +@@ -606,6 +607,7 @@ static void bcm2835_spi_handle_err(struct spi_master *master, + /* and reset */ + bcm2835_spi_reset_hw(master); + } ++#endif + + static void bcm2835_spi_set_cs(struct spi_device *spi, bool gpio_level) + { + +From 69794b31211b139007174ee11f114a280e219010 Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Jul 2015 08:34:41 +0000 +Subject: [PATCH 160/162] dt-overlay to enable dma for spi driver + +Signed-off-by: Martin Sperl +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/spi-dma-overlay.dts | 20 ++++++++++++++++++++ + 2 files changed, 21 insertions(+) + create mode 100755 arch/arm/boot/dts/overlays/spi-dma-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 753554b..956e395 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -45,6 +45,7 @@ dtb-$(RPI_DT_OVERLAYS) += rpi-sense-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += spi-bcm2708-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += spi-bcm2835-overlay.dtb ++dtb-$(RPI_DT_OVERLAYS) += spi-dma-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb + dtb-$(RPI_DT_OVERLAYS) += vga666-overlay.dtb +diff --git a/arch/arm/boot/dts/overlays/spi-dma-overlay.dts b/arch/arm/boot/dts/overlays/spi-dma-overlay.dts +new file mode 100755 +index 0000000..266cf9d +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/spi-dma-overlay.dts +@@ -0,0 +1,20 @@ ++/* ++ * Device tree overlay for spi-bcm2835 to allow dma ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709"; ++ ++ fragment@0 { ++ target = <&spi0>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ dmas = <&dma 6>, <&dma 7>; ++ dma-names = "tx", "rx"; ++ }; ++ }; ++ }; + +From 79d39de11b85457f42ded83c2d4b964b3d550e5d Mon Sep 17 00:00:00 2001 +From: Martin Sperl +Date: Wed, 22 Jul 2015 12:41:54 +0000 +Subject: [PATCH 161/162] dt: overlay: added documentation of spi-dma overlay + +Signed-off-by: Martin Sperl +--- + arch/arm/boot/dts/overlays/README | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 1cd2140..bda8c14 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -515,6 +515,12 @@ Load: dtoverlay=spi-bcm2835 + Params: + + ++Name: spi-dma ++Info: enables dma modes for spi-bcm2835 ++Load: dtoverlay=spi-dma ++Params: ++ ++ + Name: tinylcd35 + Info: 3.5" Color TFT Display by www.tinylcd.com + Options: Touch, RTC, keypad + +From 93a6b249eecf2bfde203d0c9ef8972c57c07c64d Mon Sep 17 00:00:00 2001 +From: Serge Schneider +Date: Mon, 17 Aug 2015 18:06:16 +0100 +Subject: [PATCH 162/162] rpisense-fb: add low-light mode and gamma control + +--- + drivers/video/fbdev/rpisense-fb.c | 68 +++++++++++++++++++++++++++++--- + include/linux/mfd/rpisense/framebuffer.h | 6 ++- + 2 files changed, 68 insertions(+), 6 deletions(-) + +diff --git a/drivers/video/fbdev/rpisense-fb.c b/drivers/video/fbdev/rpisense-fb.c +index 99bb8ea..90553fa 100644 +--- a/drivers/video/fbdev/rpisense-fb.c ++++ b/drivers/video/fbdev/rpisense-fb.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -26,22 +27,35 @@ + #include + #include + ++static bool lowlight; ++module_param(lowlight, bool, 0); ++MODULE_PARM_DESC(lowlight, "Reduce LED matrix brightness to one third"); ++ + struct rpisense *rpisense; + + struct rpisense_fb_param { + char __iomem *vmem; + u8 *vmem_work; + u32 vmemsize; +- u8 gamma[32]; ++ u8 *gamma; + }; + ++static u8 gamma_default[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, ++ 0x02, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, ++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0E, 0x0F, 0x11, ++ 0x12, 0x14, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,}; ++ ++static u8 gamma_low[32] = {0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, ++ 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, ++ 0x03, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, ++ 0x06, 0x07, 0x07, 0x08, 0x08, 0x09, 0x0A, 0x0A,}; ++ ++static u8 gamma_user[32]; ++ + static struct rpisense_fb_param rpisense_fb_param = { + .vmem = NULL, + .vmemsize = 128, +- .gamma = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, +- 0x02, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, +- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0E, 0x0F, 0x11, +- 0x12, 0x14, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,}, ++ .gamma = gamma_default, + }; + + static struct fb_deferred_io rpisense_fb_defio; +@@ -127,6 +141,46 @@ static struct fb_deferred_io rpisense_fb_defio = { + .deferred_io = rpisense_fb_deferred_io, + }; + ++static int rpisense_fb_ioctl(struct fb_info *info, unsigned int cmd, ++ unsigned long arg) ++{ ++ switch (cmd) { ++ case SENSEFB_FBIOGET_GAMMA: ++ if (copy_to_user((void __user *) arg, rpisense_fb_param.gamma, ++ sizeof(u8[32]))) ++ return -EFAULT; ++ return 0; ++ case SENSEFB_FBIOSET_GAMMA: ++ if (copy_from_user(gamma_user, (void __user *)arg, ++ sizeof(u8[32]))) ++ return -EFAULT; ++ rpisense_fb_param.gamma = gamma_user; ++ schedule_delayed_work(&info->deferred_work, ++ rpisense_fb_defio.delay); ++ return 0; ++ case SENSEFB_FBIORESET_GAMMA: ++ switch (arg) { ++ case 0: ++ rpisense_fb_param.gamma = gamma_default; ++ break; ++ case 1: ++ rpisense_fb_param.gamma = gamma_low; ++ break; ++ case 2: ++ rpisense_fb_param.gamma = gamma_user; ++ break; ++ default: ++ return -EINVAL; ++ } ++ schedule_delayed_work(&info->deferred_work, ++ rpisense_fb_defio.delay); ++ break; ++ default: ++ return -EINVAL; ++ } ++ return 0; ++} ++ + static struct fb_ops rpisense_fb_ops = { + .owner = THIS_MODULE, + .fb_read = fb_sys_read, +@@ -134,6 +188,7 @@ static struct fb_ops rpisense_fb_ops = { + .fb_fillrect = rpisense_fb_fillrect, + .fb_copyarea = rpisense_fb_copyarea, + .fb_imageblit = rpisense_fb_imageblit, ++ .fb_ioctl = rpisense_fb_ioctl, + }; + + static int rpisense_fb_probe(struct platform_device *pdev) +@@ -171,6 +226,9 @@ static int rpisense_fb_probe(struct platform_device *pdev) + info->screen_base = rpisense_fb_param.vmem; + info->screen_size = rpisense_fb_param.vmemsize; + ++ if (lowlight) ++ rpisense_fb_param.gamma = gamma_low; ++ + fb_deferred_io_init(info); + + ret = register_framebuffer(info); +diff --git a/include/linux/mfd/rpisense/framebuffer.h b/include/linux/mfd/rpisense/framebuffer.h +index c4c1118..2ba95d7 100644 +--- a/include/linux/mfd/rpisense/framebuffer.h ++++ b/include/linux/mfd/rpisense/framebuffer.h +@@ -16,7 +16,11 @@ + #ifndef __LINUX_RPISENSE_FB_H_ + #define __LINUX_RPISENSE_FB_H_ + +-#include ++#define SENSEFB_FBIO_IOC_MAGIC 0xF1 ++ ++#define SENSEFB_FBIOGET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 0) ++#define SENSEFB_FBIOSET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 1) ++#define SENSEFB_FBIORESET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 2) + + struct rpisense; + diff --git a/projects/RPi2/patches/linux/linux-02-RPi_support_buildfix.patch b/projects/RPi2/patches/linux/linux-02-RPi_support_buildfix.patch new file mode 100644 index 0000000000..9da026f3cf --- /dev/null +++ b/projects/RPi2/patches/linux/linux-02-RPi_support_buildfix.patch @@ -0,0 +1,11 @@ +--- a/drivers/spi/spi-bcm2835.c 2015-08-18 01:31:02.424153151 +0100 ++++ b/drivers/spi/spi-bcm2835.c 2015-08-18 01:30:50.860074902 +0100 +@@ -592,7 +592,7 @@ + return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); + } + +-#if 0 ++#if 1 + static void bcm2835_spi_handle_err(struct spi_master *master, + struct spi_message *msg) + {