diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch index 506a216f63..1793f60030 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 f6106f96f8e3005e7c046fb5e5fa45616d53921c Mon Sep 17 00:00:00 2001 +From 47916122f8c063d879949717ac7b3c69b4bea9bf Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 001/156] arm: partially revert +Subject: [PATCH 001/170] arm: partially revert 702b94bff3c50542a6e4ab9a4f4cef093262fe65 * Re-expose some dmi APIs for use in VCSM @@ -106,10 +106,10 @@ index 054b491ff7649ca067ff821770aec80a4da42102..70e8b7d3443467ae9595924f1a9d043b EXPORT_SYMBOL(cpu_cache); #endif -From 33fb31a3eb713d3c4f1ea57bf4a747bd640df22a Mon Sep 17 00:00:00 2001 +From c993a6f06a97d4456fe6960bb367c2a447d5475b Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 002/156] smsx95xx: fix crimes against truesize +Subject: [PATCH 002/170] 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. @@ -156,10 +156,10 @@ index 309b88acd3d0b6ca1528dde7b27a23926f9be952..25e37195ceb00cfc0ced7638e8b571a1 usbnet_skb_return(dev, ax_skb); } -From 57b933b304a1a741ed667e7816d6f4f8de306e41 Mon Sep 17 00:00:00 2001 +From d60b6d1ec6538203fb495619658cba9301856b39 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 003/156] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 003/170] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -202,10 +202,10 @@ index 25e37195ceb00cfc0ced7638e8b571a1b0b8e6f1..09c7d4a07299e70b1cdc9df2c2c4cb39 netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n", -From fb14f1dfe72306e448cafb604d3f4ae0b59afe1c Mon Sep 17 00:00:00 2001 +From 62b6f945fd5f1fae5aae8dbac36e29e3914e0c2e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 004/156] Allow mac address to be set in smsc95xx +Subject: [PATCH 004/170] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -301,10 +301,10 @@ index 09c7d4a07299e70b1cdc9df2c2c4cb39d2207c37..4d9704d0b184df9bd7ddbe6769e40a75 eth_hw_addr_random(dev->net); netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n"); -From d589b8d9a4c83f9021131e186f2d39187ba95a2b Mon Sep 17 00:00:00 2001 +From f592bb214dca725fdfd3029d987eee71974d35e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 005/156] Protect __release_resource against resources without +Subject: [PATCH 005/170] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -332,10 +332,10 @@ index 9b5f04404152c296af3a96132f27cfc80ffa9af9..f8a9af6e6b915812be2ba2c1c2b40106 for (;;) { tmp = *p; -From 9f5dfb791d347832f0d6dcb1eede81834d5fa4dd Mon Sep 17 00:00:00 2001 +From 5fb10be0bb930155ef29f520c1c2bd9a68f4e65a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Dec 2015 17:41:50 +0000 -Subject: [PATCH 006/156] irq-bcm2836: Prevent spurious interrupts, and trap +Subject: [PATCH 006/170] irq-bcm2836: Prevent spurious interrupts, and trap them early The old arch-specific IRQ macros included a dsb to ensure the @@ -362,10 +362,10 @@ index dc8c1e3eafe794a3af83dd987a6d6362d14dd5ee..e8204d9af58f1b893505c06902a83390 #endif } else if (stat) { -From 295ad02d69edd298c158feca5318463c56f8e17e Mon Sep 17 00:00:00 2001 +From c36fee49dfa6462c50b0ff0981e305871b7ace2b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 007/156] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 007/170] irq-bcm2836: Avoid "Invalid trigger warning" Initialise the level for each IRQ to avoid a warning from the arm arch timer code. @@ -389,10 +389,10 @@ index e8204d9af58f1b893505c06902a83390c2ea8509..6e3fab9587b782e026c01fa6b6e40338 static void -From 1ca4541a4f155941247fc8064801badca1ec3d95 Mon Sep 17 00:00:00 2001 +From 54dc7e033552f40e487fc216da98449c47f19a29 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 008/156] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 008/170] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -521,10 +521,10 @@ index d2da8a1e6b1b71381e382d034e7a94e865a6c3da..c4903360eabc2bef04f8e745782cea26 } -From 341d7af24f36dd806066927dfa8aa41c7104ecc0 Mon Sep 17 00:00:00 2001 +From f4f19712da6980f523472fd5217ac943dfd7a54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 23 Oct 2015 16:26:55 +0200 -Subject: [PATCH 009/156] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 009/170] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -623,10 +623,10 @@ index c4903360eabc2bef04f8e745782cea268fb22897..13356d3b7bcd508f058c6a9e3c4b0b38 for (b = 0; b < NR_BANKS; b++) { for (i = 0; i < bank_irqs[b]; i++) { -From f45e4f1cbd34474fc09ba45348c59a97114f928f Mon Sep 17 00:00:00 2001 +From 8bd0d797f8eda7935fb2ccb849fa34ae3c011290 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 8 May 2017 16:43:40 +0100 -Subject: [PATCH 010/156] irq_bcm2836: Send event when onlining sleeping cores +Subject: [PATCH 010/170] irq_bcm2836: Send event when onlining sleeping cores In order to reduce power consumption and bus traffic, it is sensible for secondary cores to enter a low-power idle state when waiting to @@ -662,10 +662,10 @@ index 6e3fab9587b782e026c01fa6b6e40338ef0c8d0a..86b357ae027bf8ba1ac32cd150a8cf21 } -From 9011636a14f5a61855bd0d098b120466bc56d633 Mon Sep 17 00:00:00 2001 +From a358ddf417555a2eae0ab4d34917fe2c1c8c353c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 011/156] spidev: Add "spidev" compatible string to silence +Subject: [PATCH 011/170] spidev: Add "spidev" compatible string to silence warning See: https://github.com/raspberrypi/linux/issues/1054 @@ -686,10 +686,10 @@ index cda10719d1d1b21b32866d2b79363faa461ab8e1..4f3779d3aa0960640506725bde918075 }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); -From 1e84fd366314c3ffca613df252c699b31ee02e10 Mon Sep 17 00:00:00 2001 +From 7c213f28f4aacb3c301d164e984f4ccff76d93a0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Jun 2015 14:10:44 +0100 -Subject: [PATCH 012/156] spi-bcm2835: Support pin groups other than 7-11 +Subject: [PATCH 012/170] 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 @@ -770,10 +770,10 @@ index f35cc10772f6670397ea923ad30158270dd68578..5dfe20ffc2866fa6789825016c585175 /* and set up the "mode" and level */ dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", -From 07f32122f8536814a2ef16dda041459c2f7b4af6 Mon Sep 17 00:00:00 2001 +From c5e714f907fc1079e8d6e33a30a226178ac07523 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 Jul 2016 22:09:24 +0100 -Subject: [PATCH 013/156] spi-bcm2835: Disable forced software CS +Subject: [PATCH 013/170] spi-bcm2835: Disable forced software CS Select software CS in bcm2708_common.dtsi, and disable the automatic conversion in the driver to allow hardware CS to be re-enabled with an @@ -807,10 +807,10 @@ index 5dfe20ffc2866fa6789825016c585175a29705b6..8493474d286f7a1ac6454a22c61c8c2c return 0; } -From 23b3acdbba4f2130d43465d12d3a076756a94c0c Mon Sep 17 00:00:00 2001 +From b17fc1798293225bd09b25194128155574912016 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Nov 2016 21:35:38 +0000 -Subject: [PATCH 014/156] spi-bcm2835: Remove unused code +Subject: [PATCH 014/170] spi-bcm2835: Remove unused code --- drivers/spi/spi-bcm2835.c | 61 ----------------------------------------------- @@ -898,10 +898,10 @@ index 8493474d286f7a1ac6454a22c61c8c2cef9121bf..33d75ad38a7f77d085321ace9101900a } -From 7bfd695dfb10eaee080ed145a73861452f9983ff Mon Sep 17 00:00:00 2001 +From fb51d8b2f1e8b69791c2f1b7baeec1b52efb3211 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 015/156] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 015/170] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -954,10 +954,10 @@ index 0c1edfc98696da0e0bb7f4a18cdfbcdd27a9795d..8f152266ba9b470df2eaaed9ebcf158e static const char * const bcm2835_compat[] = { -From 4459e2d28a831d0668c7b9b476df320dbd735a62 Mon Sep 17 00:00:00 2001 +From 51486daed23114dac9987bca2d33ec298bdcc05c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Sat, 3 Oct 2015 22:22:55 +0200 -Subject: [PATCH 016/156] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 016/170] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1060,10 +1060,10 @@ index 6204cc32d09c5096df8aec304c3c37b3bcb6be44..599c218dc8a73172dd4bd4a058fc8f95 MODULE_ALIAS("platform:bcm2835-dma"); MODULE_DESCRIPTION("BCM2835 DMA engine driver"); -From 1bf1b175436e707b2fc6d31e100b4956c0cd8c46 Mon Sep 17 00:00:00 2001 +From b153567afb88dc7edf7b4aec9f5a51c80c30a6b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 017/156] firmware: Updated mailbox header +Subject: [PATCH 017/170] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 21 +++++++++++++++++++++ @@ -1149,10 +1149,10 @@ index cb979ad90401e299344dd5fae38d09c489d8bd58..cbd1674570433fc591df89f68c892b33 #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ -From a20624bc88e37ed706364207cd9a5338bac74f52 Mon Sep 17 00:00:00 2001 +From 3aaecfa55ec45f7ab75d5a6217cc7ac9f0c2e639 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 018/156] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 018/170] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -1172,10 +1172,10 @@ index 8895f77726e8da5444afcd602dceff8f25a9b3fd..1833b8853ceb0e6147cceb93a00e558c MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:rtc-pcf2123"); -From 2dbe0076815d6084a9576adecd67e58632972567 Mon Sep 17 00:00:00 2001 +From 7e082a53eabcffa7556c84151b31f6b307aceb4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Fri, 7 Oct 2016 16:50:59 +0200 -Subject: [PATCH 019/156] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 019/170] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1277,10 +1277,10 @@ index b339e0e67b4c1275fd4992fea4f1e24c0575b783..26b7177573fac2af1cd4ab5488d2686f static int bcm2835_wdt_probe(struct platform_device *pdev) -From 29d1a79a9e57322275076f1f1890edcb81d49f35 Mon Sep 17 00:00:00 2001 +From fa7de5c4c1690594bba1b5ad55c00de988ba76ff Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 020/156] reboot: Use power off rather than busy spinning when +Subject: [PATCH 020/170] reboot: Use power off rather than busy spinning when halt is requested --- @@ -1303,10 +1303,10 @@ index 3b2aa9a9fe268d45335f781c4aa22cf573753a1b..0180d89a34af45c56243fe0f17fbe209 /* -From 9d23bac22f192d704a01e9b033cde91c480ce23e Mon Sep 17 00:00:00 2001 +From 5ae8db593a70aad109d48d99587966d48fe110af Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 021/156] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 021/170] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -1325,10 +1325,10 @@ index 49f1e2a75d614bc21db152327c7b425ae2504f8d..dccd2374ed00631abd441e3e9d78ee74 help This enables support for the RPi power domains which can be enabled -From 321264163a4d87e7ab1a31c87f369c8ba7b23599 Mon Sep 17 00:00:00 2001 +From 8a3f6706d65cdb89a052d3ddc87270daae3da412 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 022/156] Register the clocks early during the boot process, so +Subject: [PATCH 022/170] Register the clocks early during the boot process, so that special/critical clocks can get enabled early on in the boot process avoiding the risk of disabling a clock, pll_divider or pll when a claiming driver fails to install propperly - maybe it needs to defer. @@ -1373,10 +1373,10 @@ index 58ce6af8452db9ca8b4d3c380a06e448919f6a8d..11d89d106026f15719ea25047d6f357b MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("BCM2835 clock driver"); -From a4effe7b54bd5d37d33237050e8dfdc3a006fd19 Mon Sep 17 00:00:00 2001 +From d48a15724ccdf3ee2622cf4b50a7d42db7676efc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 023/156] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 023/170] bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it --- @@ -1402,10 +1402,10 @@ index 574211a495491d9d6021dcaefe4274a63ed02055..e66c0fca8c6090e32f72796c0877a1cf err = hwrng_register(&bcm2835_rng_ops); if (err) { -From 68f2f4badc48c65d4a79f98558f57998b04c9ae5 Mon Sep 17 00:00:00 2001 +From 94916a4db109aa852f4387766be5d210a2e0a7b9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 24 Aug 2016 16:28:44 +0100 -Subject: [PATCH 024/156] kbuild: Ignore dtco targets when filtering symbols +Subject: [PATCH 024/170] kbuild: Ignore dtco targets when filtering symbols --- scripts/Kbuild.include | 2 +- @@ -1425,10 +1425,10 @@ index 9ffd3dda3889c56a7a72229bed21ff5c49d62856..00da6c9bacbf33334233e22ca5209ade esac | tr ";" "\n" | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p' -From 8640ab81e01ce41ade97b335eebddb83d727940e Mon Sep 17 00:00:00 2001 +From 64a216b7ada100fd41bfdd1df9377eaaea055cb0 Mon Sep 17 00:00:00 2001 From: Robert Tiemann Date: Mon, 20 Jul 2015 11:01:25 +0200 -Subject: [PATCH 025/156] BCM2835_DT: Fix I2S register map +Subject: [PATCH 025/170] BCM2835_DT: Fix I2S register map --- Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++-- @@ -1466,10 +1466,10 @@ index 65783de0aedf3da79adc36fd077b7a89954ddb6b..a89fe4220fdc3f26f75ee66daf187554 dmas = <&dma 2>, <&dma 3>; -From 56eeb37400267ca0d36efb6458d5a38b9178995a Mon Sep 17 00:00:00 2001 +From 44af6d255818d688dcd139963195064eea1bac77 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 026/156] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 026/170] clk-bcm2835: Mark used PLLs and dividers CRITICAL The VPU configures and relies on several PLLs and dividers. Mark all enabled dividers and their PLLs as CRITICAL to prevent the kernel from @@ -1497,10 +1497,10 @@ index 11d89d106026f15719ea25047d6f357b4bfcb2c5..fe8f5d65f2749cb3ddc878df61664826 divider->data = data; -From cbc388323525cd53dfd51a5d932d7319d2bceeab Mon Sep 17 00:00:00 2001 +From 80a2ef1892038b3ee9afd16298c941144dc6dfc6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 027/156] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 027/170] clk-bcm2835: Add claim-clocks property The claim-clocks property can be used to prevent PLLs and dividers from being marked as critical. It contains a vector of clock IDs, @@ -1602,10 +1602,10 @@ index fe8f5d65f2749cb3ddc878df616648267441e0ee..92b5e0f5145b32d3bfc3592fe381e8be sizeof(cprman_parent_names)); of_clk_parent_fill(dev->of_node, cprman->real_parent_names, -From f73acf735e77f6128c689734618e969f79dd1885 Mon Sep 17 00:00:00 2001 +From 3b5cdc5dd91b97826c28242f3bc36754293540e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 028/156] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 028/170] clk-bcm2835: Read max core clock from firmware The VPU is responsible for managing the core clock, usually under direction from the bcm2835-cpufreq driver but not via the clk-bcm2835 @@ -1720,10 +1720,10 @@ index 92b5e0f5145b32d3bfc3592fe381e8be3cd90c72..336f8c9c44325d0a94e591a8557f7af2 for (i = 0; !of_property_read_u32_index(pdev->dev.of_node, "claim-clocks", -From 195917b2219c284543d57dc4b15d5f1eb87f0c7e Mon Sep 17 00:00:00 2001 +From 52997b935d7e074a0dbe3dc17e7a56ad313e4673 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 9 May 2016 17:28:18 -0700 -Subject: [PATCH 029/156] clk: bcm2835: Mark GPIO clocks enabled at boot as +Subject: [PATCH 029/170] clk: bcm2835: Mark GPIO clocks enabled at boot as critical. These divide off of PLLD_PER and are used for the ethernet and wifi @@ -1761,10 +1761,10 @@ index 336f8c9c44325d0a94e591a8557f7af246adc857..caa05e5ad0b7b5cd683e04fb3591a3df * Pass the CLK_SET_RATE_PARENT flag if we are allowed to propagate * rate changes on at least of the parents. -From c71c0ebb1d61fc99cfd09cd8a91715d7b39ef14c Mon Sep 17 00:00:00 2001 +From 155491f6edc30188ad6e36a3d9f1dcd3e9759d5b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 030/156] sound: Demote deferral errors to INFO level +Subject: [PATCH 030/170] sound: Demote deferral errors to INFO level At present there is no mechanism to specify driver load order, which can lead to deferrals and repeated retries until successful. @@ -1799,10 +1799,10 @@ index fee4b0ef5566cf9e8de0bf5c568706da9cab2ea2..c728a4148903e983d61b6ae65765ba11 goto _err_defer; } -From c569310d249d1e970501449d500e986a45ecfc5e Mon Sep 17 00:00:00 2001 +From a326e4da81a238cfd48f3c674a08ac6e05955e7d Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 031/156] Update vfpmodule.c +Subject: [PATCH 031/170] Update vfpmodule.c Christopher Alexander Tobias Schulze - May 2, 2015, 11:57 a.m. This patch fixes a problem with VFP state save and restore related @@ -1939,10 +1939,10 @@ index a71a48e71fffa8626fe90106815376c44bbe679b..d6c0a5a0a5ae3510db3ace5e3f5d3410 /* * Save the userland NEON/VFP state. Under UP, -From 1810300a6150e3fda9025d354b93b06e791e60ee Mon Sep 17 00:00:00 2001 +From fdd1e163a349722bebbf152c666950d5c3759d2b Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Wed, 8 Mar 2017 21:13:24 +1100 -Subject: [PATCH 032/156] ASoC: bcm2835_i2s.c: relax the ch2 register setting +Subject: [PATCH 032/170] ASoC: bcm2835_i2s.c: relax the ch2 register setting for 8 channels This patch allows ch2 registers to be set for 8 channels of audio. @@ -1963,10 +1963,10 @@ index 6ba20498202ed36906b52096893a88867a79269f..56df7d8a43d0aac055a91b0d24aca8e1 format |= BCM2835_I2S_CH1(BCM2835_I2S_CHPOS(ch1pos)); format |= BCM2835_I2S_CH2(BCM2835_I2S_CHPOS(ch2pos)); -From 14414793647862240b41d92e060bf544da028869 Mon Sep 17 00:00:00 2001 +From 0a483552671d915b51837bd9dcf82b6c2eb69064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Date: Tue, 1 Nov 2016 15:15:41 +0100 -Subject: [PATCH 033/156] i2c: bcm2835: Add debug support +Subject: [PATCH 033/170] i2c: bcm2835: Add debug support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2155,10 +2155,10 @@ index cd07a69e2e9355540442785f95e90823b05c9d10..47167f403cc8329bd811b47c7011c299 if (i2c_dev->msg_err & BCM2835_I2C_S_ERR) return -EREMOTEIO; -From 928822666a337539431f52f3c9f1e891824406c5 Mon Sep 17 00:00:00 2001 +From dda131ebc9f1ebf6c400a10a73ad6bf926b107bb Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 034/156] mm: Remove the PFN busy warning +Subject: [PATCH 034/170] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -2183,10 +2183,10 @@ index d51c2087c498c63f3f515d2931e42b5110efb62f..fd094c36e26c712d7537b16aa547d3e8 goto done; } -From a2df686515eff3783a9f093ecdec65f4de7f3717 Mon Sep 17 00:00:00 2001 +From 95908941275e9d186482cb02726e3f14765ddd28 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 23 Mar 2017 10:06:56 +0000 -Subject: [PATCH 035/156] ASoC: Add prompt for ICS43432 codec +Subject: [PATCH 035/170] ASoC: Add prompt for ICS43432 codec Without a prompt string, a config setting can't be included in a defconfig. Give CONFIG_SND_SOC_ICS43432 a prompt so that Pi soundcards @@ -2211,10 +2211,10 @@ index c367d11079bc90feec2ad0fa748d7ffc3035faba..91d5b531b69b49db97f7febbc60d33a2 config SND_SOC_INNO_RK3036 tristate "Inno codec driver for RK3036 SoC" -From e5c0d06f8dda015729b4677f262de672a7e56253 Mon Sep 17 00:00:00 2001 +From 1affa15b50fbd3f2fda89aae8ffdfa5cce5d8b5a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 036/156] Main bcm2708/bcm2709 linux port +Subject: [PATCH 036/170] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2402,10 +2402,10 @@ index cfb4b4496dd9f61362dea012176c146120fada07..d9c6c217c4d6a2408abe2665bf7f2700 MODULE_AUTHOR("Lubomir Rintel "); MODULE_DESCRIPTION("BCM2835 mailbox IPC driver"); -From 6b811eb961fc8ee4b32c9d4b0ce1895262865ea3 Mon Sep 17 00:00:00 2001 +From f7d9f9dcc5cc60388d4051285abbc6697863a415 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 037/156] Add dwc_otg driver +Subject: [PATCH 037/170] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -63702,10 +63702,10 @@ index 0000000000000000000000000000000000000000..cdc9963176e5a4a0d5250613b61e26c5 +test_main(); +0; -From 62e8030e639ca93fdd156434fa4b9c4d87df49b5 Mon Sep 17 00:00:00 2001 +From 525ac9e886145bbcdd6b07d273eb59dcd35fa526 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 038/156] bcm2708 framebuffer driver +Subject: [PATCH 038/170] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -67164,10 +67164,10 @@ index 3c14e43b82fefe1d32f591d1b2f61d2cd28d0fa8..7626beb6a5bb8df601ddf0f6e6909d1f +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 1f1fb9db16b2469b6f85c838411c6c82294ddd6a Mon Sep 17 00:00:00 2001 +From 626acf921ac00ddafe750572719a1082e6a09669 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 039/156] dmaengine: Add support for BCM2708 +Subject: [PATCH 039/170] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -67798,10 +67798,10 @@ index 0000000000000000000000000000000000000000..c5bfff2765be4606077e6c8af73040ec + +#endif /* _PLAT_BCM2708_DMA_H */ -From c5978cf87ec8a54135cf156d30660230e5c20b3a Mon Sep 17 00:00:00 2001 +From 19b302fd43f883fdf8b061d833e4221e0f3ca07d Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 040/156] MMC: added alternative MMC driver +Subject: [PATCH 040/170] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69681,10 +69681,10 @@ index 279b39008a33bb68745d9ea55ea5dd7ed522fd1c..49bdea5791a289251019a89419804dde unsigned int erase_size; /* erase size in sectors */ -From 39c43fc145cae70882e3e3488290c84b87dcaeae Mon Sep 17 00:00:00 2001 +From 71cf21a4614cd67f1aba458b39ef52e5ec81fac2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 041/156] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 041/170] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -72090,10 +72090,10 @@ index 0000000000000000000000000000000000000000..9c6f199a7830959f31012d86bc1f8b1a +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Phil Elwell"); -From 5a859b5d42cd44e7188dbf6acac2223db98f0314 Mon Sep 17 00:00:00 2001 +From 5fc610b5a0e9c5709dbc7057f596b4e7e25dc4e9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 042/156] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 042/170] vc_mem: Add vc_mem driver for querying firmware memory addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -72618,10 +72618,10 @@ index 0000000000000000000000000000000000000000..20a475377eb3078ea1ecaef2b24efc35 + +#endif /* _VC_MEM_H */ -From 9532a0d9fa463fd619def308b7bf42242f7aed94 Mon Sep 17 00:00:00 2001 +From 5bd5d6807413cbcd1544495d1a322e9a9448df6e Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 22 Jul 2014 15:41:04 +0100 -Subject: [PATCH 043/156] vcsm: VideoCore shared memory service for BCM2835 +Subject: [PATCH 043/170] vcsm: VideoCore shared memory service for BCM2835 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -77499,10 +77499,10 @@ index 0000000000000000000000000000000000000000..b75729d762f25aace133f7a008633b40 + +#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */ -From 2353792af28878cabd4dd7bfb6e88a479625f1a7 Mon Sep 17 00:00:00 2001 +From 386eb0fbba5558540bd685ca2e43527bd0ee2d01 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 044/156] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 044/170] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -77810,10 +77810,10 @@ index 0000000000000000000000000000000000000000..f5e7f1ba8fb6f18dee77fad06a17480c +MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace"); +MODULE_AUTHOR("Luke Wren "); -From 1df83a13e38a1e11488f14149e090adc34b29f18 Mon Sep 17 00:00:00 2001 +From 76b9d49ce75de844192787286223914c07935910 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 045/156] Add SMI driver +Subject: [PATCH 045/170] Add SMI driver Signed-off-by: Luke Wren --- @@ -79764,10 +79764,10 @@ index 0000000000000000000000000000000000000000..ee3a75edfc033eeb0d90a687ffb68b10 + +#endif /* BCM2835_SMI_H */ -From 1d94ec2cc547bb401165d21361065a72146bda2f Mon Sep 17 00:00:00 2001 +From b397c175ed16500ef942243d587664d12d468e14 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Tue, 26 Apr 2016 14:59:21 +0000 -Subject: [PATCH 046/156] MISC: bcm2835: smi: use clock manager and fix reload +Subject: [PATCH 046/170] MISC: bcm2835: smi: use clock manager and fix reload issues Use clock manager instead of self-made clockmanager. @@ -79936,10 +79936,10 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5 return 0; } -From b8a743e8eee44e5b30592abd0d54a3d0c5afc753 Mon Sep 17 00:00:00 2001 +From 88fa190331d6469fd66de90fe73f1ff5ed9dc259 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:16:10 +0100 -Subject: [PATCH 047/156] Add SMI NAND driver +Subject: [PATCH 047/170] Add SMI NAND driver Signed-off-by: Luke Wren --- @@ -80304,10 +80304,10 @@ index 0000000000000000000000000000000000000000..c4826ea1c2bae555ce780e61f1076ddd + ("Driver for NAND chips using Broadcom Secondary Memory Interface"); +MODULE_AUTHOR("Luke Wren "); -From cbda011089d3714435c827b48e4e5dded33a8cb3 Mon Sep 17 00:00:00 2001 +From 0f065aafd222ebfde11f1874ab168101be59511f Mon Sep 17 00:00:00 2001 From: Aron Szabo Date: Sat, 16 Jun 2012 12:15:55 +0200 -Subject: [PATCH 048/156] lirc: added support for RaspberryPi GPIO +Subject: [PATCH 048/170] 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 @@ -81167,10 +81167,10 @@ index 0000000000000000000000000000000000000000..fb69624ccef00ddbdccf8256d6baf1b1 + +#endif -From 15fd797651ad28da87939f23a37a00abcee720b7 Mon Sep 17 00:00:00 2001 +From cf29c9e139506cd73ad4d25b8393b39f1c5ca90a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:49:20 +0100 -Subject: [PATCH 049/156] Add cpufreq driver +Subject: [PATCH 049/170] Add cpufreq driver Signed-off-by: popcornmix @@ -81434,10 +81434,10 @@ index 0000000000000000000000000000000000000000..99345969b0e4d651fd9033d67de2febb +module_init(bcm2835_cpufreq_module_init); +module_exit(bcm2835_cpufreq_module_exit); -From dcaf9efdeae0aabc2dca9d7c8e8fb2ab480cbbd3 Mon Sep 17 00:00:00 2001 +From a99bc9193dce715a19d68cb739c2e2e7c76e5cbf Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 050/156] Add Chris Boot's i2c driver +Subject: [PATCH 050/170] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82102,10 +82102,10 @@ index 0000000000000000000000000000000000000000..962f2e5c7455d91bf32925d785f5f16b +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); -From 5619cefc11e86117c3b5e9bf9ba648c732423ab0 Mon Sep 17 00:00:00 2001 +From 68af472fe3d9f4e7d99f35a13874ebe32efdfe73 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 051/156] char: broadcom: Add vcio module +Subject: [PATCH 051/170] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82330,10 +82330,10 @@ index 0000000000000000000000000000000000000000..c19bc2075c77879563ef5e59038b5a14 +MODULE_DESCRIPTION("Mailbox userspace access"); +MODULE_LICENSE("GPL"); -From d9ef0aadf1aab86a823f99de4722ecb80ff1bda4 Mon Sep 17 00:00:00 2001 +From 51e60eb8ab22324e401912e2213ff400325ef662 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 052/156] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 052/170] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -82416,10 +82416,10 @@ index dd506cd3a5b874f9e1acd07efb8cd151bb6145d1..3f070bd38a91511c986e3fb114b15bd4 MODULE_AUTHOR("Eric Anholt "); MODULE_DESCRIPTION("Raspberry Pi firmware driver"); -From 479b55d64371c5ddcdeb1af08f3ecb3aa40ef58f Mon Sep 17 00:00:00 2001 +From 062cd6cc4f509a44c61d953942db2be91d520ea9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 May 2015 09:00:42 +0100 -Subject: [PATCH 053/156] scripts: Add mkknlimg and knlinfo scripts from tools +Subject: [PATCH 053/170] scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to @@ -82946,10 +82946,10 @@ index 0000000000000000000000000000000000000000..84be2593ec1de8f97b0167ff06b3e05d + return $trailer; +} -From e10f56a0f5b9c959f3d46b261aebc913f4c9eee6 Mon Sep 17 00:00:00 2001 +From d0173c9ce6527f2058faff538772b19dcc683897 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 054/156] BCM2708: Add core Device Tree support +Subject: [PATCH 054/170] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -95414,10 +95414,10 @@ index 04b5633df1cfafa316f9086c4bf98a9ecf9d0939..d523d1e14220a369c4c766ca3a01208e # Bzip2 -From eb15bc53f15bf549a158519e8798817f47597964 Mon Sep 17 00:00:00 2001 +From 56acbe2b97ba8f4f5522391e30f8ee38248e25d8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 055/156] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 055/170] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -95592,10 +95592,10 @@ index bf6db4fe895bcd67e04ee65e8f76ea104af6299f..8741dca6dba65e2d72fbdbc1702139c2 /* set_brightness_work / blink_timer flags, atomic, private. */ unsigned long work_flags; -From ca45404307f86dcf0bbe702bfc9435ac16d4ef67 Mon Sep 17 00:00:00 2001 +From 73196cc75222a66721b94a87230c34541bd1e925 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 056/156] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 056/170] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -95863,10 +95863,10 @@ index 6cd9b198b7c64eb94821f2e3f2c5201e6c6d25eb..f36c92c2da7487437c33f7a4e2c6e09e __u32 dx; /* screen-relative */ __u32 dy; -From a19e8f68eaed63a6297a697f31aeea2d262ac8b2 Mon Sep 17 00:00:00 2001 +From 312f9d48c614efd4d5492e2fad571b38149a28fc Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 057/156] Speed up console framebuffer imageblit function +Subject: [PATCH 057/170] 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 @@ -96075,10 +96075,10 @@ index a2bb276a8b2463eee98eb237c4647bc00cd93601..436494fba15abecb400ef28688466faf start_index, pitch_index); } else -From a104e8132c806ca65c5306f6086e461bd7b06bd1 Mon Sep 17 00:00:00 2001 +From 0d31a777fc07b7c46ab797bbc2c49cd81109fe49 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 8 May 2013 11:46:50 +0100 -Subject: [PATCH 058/156] enabling the realtime clock 1-wire chip DS1307 and +Subject: [PATCH 058/170] 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 @@ -96328,10 +96328,10 @@ index 5b2972946dda5f9ad415f1eaeaab67743a5cc0f0..b3558b7c9efb2484b40e31312aee197b u8, w1_slave_found_callback); }; -From 6e0a7d053aadba60d84d57d922118b1721f48db9 Mon Sep 17 00:00:00 2001 +From 9b3b2958e8908c7e2668d733534f93fa7aa190c6 Mon Sep 17 00:00:00 2001 From: Gordon Hollingworth Date: Tue, 12 May 2015 14:47:56 +0100 -Subject: [PATCH 059/156] rpi-ft5406: Add touchscreen driver for pi LCD display +Subject: [PATCH 059/170] rpi-ft5406: Add touchscreen driver for pi LCD display Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected @@ -96676,10 +96676,10 @@ index 0000000000000000000000000000000000000000..9d7d05482355d168c5c0c42508cd9789 +MODULE_DESCRIPTION("Touchscreen driver for memory based FT5406"); +MODULE_LICENSE("GPL"); -From ce8e1e6beb5a0ff2a19c4401e212f1ac630edb2a Mon Sep 17 00:00:00 2001 +From 8ad9e68d524657c1b2c88bbb45126e10f406b454 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 060/156] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 060/170] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -98259,10 +98259,10 @@ index 971bc298f63eeeed418131b7b7200ac91b0d73f1..78e9f6e8c6fdebdb754cb703095d1726 bool "Broadcom BCM63xx DSL SoC" depends on ARCH_MULTI_V7 -From d9d3b795cd9df97f3af02a26b871bb2a60333329 Mon Sep 17 00:00:00 2001 +From 37219d434e7334786f637dfcbf57de2e060e64c8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 061/156] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 061/170] 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 @@ -98297,10 +98297,10 @@ index be3d81ff51cc3f510d85e4eed7a52960e51e7bc1..a030ae9fb1fca325061c093696e82186 "%s: pm_power_off function already registered", __func__); -From 014aa3731d98f27689a839e7a906254a2429b2e9 Mon Sep 17 00:00:00 2001 +From 174d7fe4fd292a306d66e6e449dc2153ab805a33 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 062/156] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 062/170] mfd: Add Raspberry Pi Sense HAT core driver --- drivers/input/joystick/Kconfig | 8 + @@ -99165,10 +99165,10 @@ index 0000000000000000000000000000000000000000..56196dc2af10e464a1e3f98b028dca1c + +#endif -From 5ef2bfd587ebc15bfdebf367952c4b2b2433239b Mon Sep 17 00:00:00 2001 +From 88fa4f4b1bb008e747ef9e8294782d98c6f2adec Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 19:19:08 +0100 -Subject: [PATCH 063/156] ASoC: Add support for HifiBerry DAC +Subject: [PATCH 063/170] ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can @@ -99343,10 +99343,10 @@ index 0000000000000000000000000000000000000000..ee9f133953544629282631e5ef3f73fe +MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC"); +MODULE_LICENSE("GPL v2"); -From f26ccc628d4257c0fde732a1bb91597914cc08d6 Mon Sep 17 00:00:00 2001 +From 5e2e952f6f119ebd070d1ccac327e9ba9308873c Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 064/156] ASoC: Add support for Rpi-DAC +Subject: [PATCH 064/170] ASoC: Add support for Rpi-DAC --- sound/soc/bcm/Kconfig | 7 +++ @@ -99630,10 +99630,10 @@ index 0000000000000000000000000000000000000000..afe1b419582aa40c4b2729d242bb13cd +MODULE_AUTHOR("Florian Meier "); +MODULE_LICENSE("GPL v2"); -From 7f689c35cb67718bf21b9ebf2b1169979b272b20 Mon Sep 17 00:00:00 2001 +From 4a2bd6e0ddd5970a417f53387365284274e4ee79 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH 065/156] ASoC: wm8804: Implement MCLK configuration options, +Subject: [PATCH 065/170] 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 @@ -99682,10 +99682,10 @@ index fc69b87443d80489382b97332de6d5ad12a58ec8..d8fdce81b297dcf02e144bdead0c6193 .component_driver = { .dapm_widgets = wm8804_dapm_widgets, -From ae0816c5184a8ed1e31ce7c6ac9112f255c545e8 Mon Sep 17 00:00:00 2001 +From b9903adfd82c07097534bf366db69db6e9018074 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 15 Jan 2014 21:42:08 +0100 -Subject: [PATCH 066/156] ASoC: BCM:Add support for HiFiBerry Digi. Driver is +Subject: [PATCH 066/170] ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek @@ -100029,10 +100029,10 @@ index 0000000000000000000000000000000000000000..7620dd02de40b6d644ff038b445d375d +MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi"); +MODULE_LICENSE("GPL v2"); -From 91650de23667a3c5058dd1b3a50bed8def9b1ba7 Mon Sep 17 00:00:00 2001 +From 96565d45ebb5ac1f28d1d1010c86224198caf5b8 Mon Sep 17 00:00:00 2001 From: Gordon Garrity Date: Sat, 8 Mar 2014 16:56:57 +0000 -Subject: [PATCH 067/156] Add IQaudIO Sound Card support for Raspberry Pi +Subject: [PATCH 067/170] Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control @@ -100367,10 +100367,10 @@ index 0000000000000000000000000000000000000000..1ee4097c846376666775272ed692ca33 +MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC"); +MODULE_LICENSE("GPL v2"); -From aef9437e237b2ba638eb0c3ee7de7688329dc576 Mon Sep 17 00:00:00 2001 +From 1ed5a9285b4c71e6d4a2f118973b3cffe7883433 Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 10:06:56 +0200 -Subject: [PATCH 068/156] Added support for HiFiBerry DAC+ +Subject: [PATCH 068/170] 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. @@ -101005,10 +101005,10 @@ index 68feae262476492ae3a0b30855dbb09e96fa187e..f7b0977017ed5a6c02eafa0147d49d66 dev_err(dev, "No LRCLK?\n"); return -EINVAL; -From b8ae2020ecedc5af5af10543f0fcdeb5b0d486f3 Mon Sep 17 00:00:00 2001 +From 47fbae50722d21a2552189b8266d3e593e410eaf Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Mon, 4 Aug 2014 11:09:58 +0200 -Subject: [PATCH 069/156] Added driver for HiFiBerry Amp amplifier add-on board +Subject: [PATCH 069/170] 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. @@ -101843,10 +101843,10 @@ index 0000000000000000000000000000000000000000..8f019e04898754d2f87e9630137be9e8 + +#endif /* _TAS5713_H */ -From a39c9be5bfad358e4e1e0a1f86aa0a48ca43d539 Mon Sep 17 00:00:00 2001 +From 13d5575b214ece280faa08f812b57ca1faa9254f Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 25 Mar 2015 09:26:17 +0100 -Subject: [PATCH 070/156] Add driver for rpi-proto +Subject: [PATCH 070/170] 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 @@ -102061,10 +102061,10 @@ index 0000000000000000000000000000000000000000..fadbfade100228aaafabb0d3bdf35c01 +MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)"); +MODULE_LICENSE("GPL"); -From 49816e6ebdd4c90c8e740d15d093870923d5337f Mon Sep 17 00:00:00 2001 +From 562729b5173b9dcb725be73d387c0b520e4fca1e Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 24 Aug 2015 16:03:47 +0100 -Subject: [PATCH 071/156] RaspiDAC3 support +Subject: [PATCH 071/170] RaspiDAC3 support Signed-off-by: Jan Grulich @@ -102307,10 +102307,10 @@ index 0000000000000000000000000000000000000000..ad2b5b89bc8213dc2e277306ef50d6e3 +MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x"); +MODULE_LICENSE("GPL v2"); -From a7568a9d0bceb2678d3c2d63ac9ce04ec87a263a Mon Sep 17 00:00:00 2001 +From d9ef4c4e0774f8cfa58ef475e2d6d597ec9f38fe Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Thu, 7 Apr 2016 21:26:21 +0100 -Subject: [PATCH 072/156] Add Support for JustBoom Audio boards +Subject: [PATCH 072/170] Add Support for JustBoom Audio boards justboom-dac: Adjust for ALSA API change @@ -102766,10 +102766,10 @@ index 0000000000000000000000000000000000000000..909cf8928f2f4313982316f9c5b8a709 +MODULE_DESCRIPTION("ASoC Driver for JustBoom PI Digi HAT Sound Card"); +MODULE_LICENSE("GPL v2"); -From 82b0d9cab0d9154a5e937deed6794a4c66e92fc2 Mon Sep 17 00:00:00 2001 +From f69474b7bd6edbb0b7e11c8cbd8b8998f5b6ca1e Mon Sep 17 00:00:00 2001 From: Andrey Grodzovsky Date: Tue, 3 May 2016 22:10:59 -0400 -Subject: [PATCH 073/156] ARM: adau1977-adc: Add basic machine driver for +Subject: [PATCH 073/170] ARM: adau1977-adc: Add basic machine driver for adau1977 codec driver. This commit adds basic support for the codec usage including: Device tree overlay, @@ -102951,10 +102951,10 @@ index 0000000000000000000000000000000000000000..f3d7e5db7bb912e1d7ca6f8e8d42df5f +MODULE_DESCRIPTION("ASoC Driver for ADAU1977 ADC"); +MODULE_LICENSE("GPL v2"); -From 07827fd83575405414813d0b7595ab7cb5148f25 Mon Sep 17 00:00:00 2001 +From 3a67b3cafae4859f0838d429650cc1ac8066a5e5 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Mon, 16 May 2016 21:36:31 +1000 -Subject: [PATCH 074/156] New AudioInjector.net Pi soundcard with low jitter +Subject: [PATCH 074/170] New AudioInjector.net Pi soundcard with low jitter audio in and out. Contains the sound/soc/bcm ALSA machine driver and necessary alterations to the Kconfig and Makefile. @@ -103205,10 +103205,10 @@ index 0000000000000000000000000000000000000000..491906bbf446826e55dd843f28e4860f +MODULE_ALIAS("platform:audioinjector-pi-soundcard"); + -From b0f43bb8166292b77d188e1cb4a28c8d1c239750 Mon Sep 17 00:00:00 2001 +From cf9b23492a54b8ffb0d0348fce0c31770dca717c Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Thu, 30 Jun 2016 18:38:42 +0100 -Subject: [PATCH 075/156] Add IQAudIO Digi WM8804 board support +Subject: [PATCH 075/170] Add IQAudIO Digi WM8804 board support Support IQAudIO Digi board with iqaudio_digi machine driver and iqaudio-digi-wm8804-audio overlay. @@ -103508,10 +103508,10 @@ index 0000000000000000000000000000000000000000..33aa2be8a43a12a12cfb5d844dd9732c +MODULE_DESCRIPTION("ASoC Driver for IQAudIO WM8804 Digi"); +MODULE_LICENSE("GPL v2"); -From f600a240390d60342025f77bac6f4846224f6418 Mon Sep 17 00:00:00 2001 +From 9c800dd793c72cbbaf54f353f7a41624a80b6469 Mon Sep 17 00:00:00 2001 From: escalator2015 Date: Tue, 24 May 2016 16:20:09 +0100 -Subject: [PATCH 076/156] New driver for RRA DigiDAC1 soundcard using WM8741 + +Subject: [PATCH 076/170] New driver for RRA DigiDAC1 soundcard using WM8741 + WM8804 --- @@ -103984,10 +103984,10 @@ index 0000000000000000000000000000000000000000..f200688bb4ae32b90a0ced555aed94b0 +MODULE_DESCRIPTION("ASoC Driver for RRA DigiDAC1"); +MODULE_LICENSE("GPL v2"); -From 4a39d2612bfa2f22e6b527873d74be3aadae1da3 Mon Sep 17 00:00:00 2001 +From 21eab58604d67a499bf6516347a5c3685c2c4f25 Mon Sep 17 00:00:00 2001 From: DigitalDreamtime Date: Sat, 2 Jul 2016 16:26:19 +0100 -Subject: [PATCH 077/156] Add support for Dion Audio LOCO DAC-AMP HAT +Subject: [PATCH 077/170] Add support for Dion Audio LOCO DAC-AMP HAT Using dedicated machine driver and pcm5102a codec driver. @@ -104160,10 +104160,10 @@ index 0000000000000000000000000000000000000000..65e03741d349a2dc5bd91f69855ea952 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO"); +MODULE_LICENSE("GPL v2"); -From d82a4fdba1eb6ad36e1b4cb4b1c527c2a2a00cf7 Mon Sep 17 00:00:00 2001 +From 6edd7e37a691f1555401b76a1304cd6c411d2a76 Mon Sep 17 00:00:00 2001 From: Clive Messer Date: Mon, 19 Sep 2016 14:01:04 +0100 -Subject: [PATCH 078/156] Allo Piano DAC boards: Initial 2 channel (stereo) +Subject: [PATCH 078/170] Allo Piano DAC boards: Initial 2 channel (stereo) support (#1645) Add initial 2 channel (stereo) support for Allo Piano DAC (2.0/2.1) boards, @@ -104370,10 +104370,10 @@ index 0000000000000000000000000000000000000000..eaf50fb6dbca1970ae1c6f8662088b0f +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC"); +MODULE_LICENSE("GPL v2"); -From 16373e16929ecc019c13e839dc504bdabf30c036 Mon Sep 17 00:00:00 2001 +From 398b58b3985a313e3761f4cbd6b8e078402d7e4f Mon Sep 17 00:00:00 2001 From: Raashid Muhammed Date: Mon, 27 Mar 2017 12:35:00 +0530 -Subject: [PATCH 079/156] Add support for Allo Piano DAC 2.1 plus add-on board +Subject: [PATCH 079/170] Add support for Allo Piano DAC 2.1 plus add-on board for Raspberry Pi. The Piano DAC 2.1 has support for 4 channels with subwoofer. @@ -105461,10 +105461,10 @@ index 0000000000000000000000000000000000000000..1800f5e4d414e2d83a9487a89a2800a3 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC Plus"); +MODULE_LICENSE("GPL v2"); -From 6e95e8cf3d25d294b0a89271df885815ee496593 Mon Sep 17 00:00:00 2001 +From 1ac0cdc212b3b2c172b732497daca52f970df04e Mon Sep 17 00:00:00 2001 From: BabuSubashChandar Date: Tue, 28 Mar 2017 20:04:42 +0530 -Subject: [PATCH 080/156] Add support for Allo Boss DAC add-on board for +Subject: [PATCH 080/170] Add support for Allo Boss DAC add-on board for Raspberry Pi. (#1924) Signed-off-by: Baswaraj K @@ -106167,10 +106167,10 @@ index 0000000000000000000000000000000000000000..203ab76c7045b081578e23bda1099dd1 +MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Boss DAC"); +MODULE_LICENSE("GPL v2"); -From f0beba8bdc0015e5ca11de807b64eb4772a7e545 Mon Sep 17 00:00:00 2001 +From 9e5d7c977aeac2053c8b69ed2a506dacbc210759 Mon Sep 17 00:00:00 2001 From: gtrainavicius Date: Sun, 23 Oct 2016 12:06:53 +0300 -Subject: [PATCH 081/156] Support for Blokas Labs pisound board +Subject: [PATCH 081/170] Support for Blokas Labs pisound board Pisound dynamic overlay (#1760) @@ -107369,10 +107369,10 @@ index 0000000000000000000000000000000000000000..06ff1e53dc9d860946965b6303577762 +MODULE_DESCRIPTION("ASoC Driver for pisound, http://blokas.io/pisound"); +MODULE_LICENSE("GPL v2"); -From 44930a806da8dbd18056135fc3c3abce7af8d861 Mon Sep 17 00:00:00 2001 +From 95ab243362e9365ff2d59ecba33104df2c7c2f68 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 22 Jan 2017 12:49:37 +0100 -Subject: [PATCH 082/156] ASoC: Add driver for Cirrus Logic Audio Card +Subject: [PATCH 082/170] ASoC: Add driver for Cirrus Logic Audio Card Note: due to problems with deferred probing of regulators the following softdep should be added to a modprobe.d file @@ -108437,10 +108437,10 @@ index 0000000000000000000000000000000000000000..ac8651ddff7bd3701dffe22c7fb88352 +MODULE_DESCRIPTION("ASoC driver for Cirrus Logic Audio Card"); +MODULE_LICENSE("GPL"); -From 09500541b1bafdd82d6755d4f92ec9a1d3a009d5 Mon Sep 17 00:00:00 2001 +From 4be2400d2375641866c751a6659b4297f226d8b9 Mon Sep 17 00:00:00 2001 From: Miquel Date: Fri, 24 Feb 2017 20:51:06 +0100 -Subject: [PATCH 083/156] sound: Support for Dion Audio LOCO-V2 DAC-AMP HAT +Subject: [PATCH 083/170] sound: Support for Dion Audio LOCO-V2 DAC-AMP HAT Signed-off-by: Miquel Blauw --- @@ -108635,10 +108635,10 @@ index 0000000000000000000000000000000000000000..a009c49477972a9832175d86f201b035 +MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO-V2"); +MODULE_LICENSE("GPL v2"); -From 069348585476a8336e604ac3d95d088c989363f1 Mon Sep 17 00:00:00 2001 +From 94d556fb317ed5346c2464717a0fef3c79ccdeaa Mon Sep 17 00:00:00 2001 From: Fe-Pi Date: Wed, 1 Mar 2017 04:42:43 -0700 -Subject: [PATCH 084/156] Add support for Fe-Pi audio sound card. (#1867) +Subject: [PATCH 084/170] Add support for Fe-Pi audio sound card. (#1867) Fe-Pi Audio Sound Card is based on NXP SGTL5000 codec. Mechanical specification of the board is the same the Raspberry Pi Zero. @@ -108852,10 +108852,10 @@ index 0000000000000000000000000000000000000000..015b56fd73cc36be5b5eecd17548fd03 +MODULE_DESCRIPTION("ASoC Driver for Fe-Pi Audio"); +MODULE_LICENSE("GPL v2"); -From 499c5e2918e1bb1ec400694d87b06791c1bb20ef Mon Sep 17 00:00:00 2001 +From b008fbe4a8cc5829e805f305045a45ca481c5cd4 Mon Sep 17 00:00:00 2001 From: Matt Flax Date: Wed, 8 Mar 2017 20:04:13 +1100 -Subject: [PATCH 085/156] Add support for the AudioInjector.net Octo sound card +Subject: [PATCH 085/170] Add support for the AudioInjector.net Octo sound card AudioInjector Octo: sample rates, regulators, reset @@ -109264,10 +109264,10 @@ index 0000000000000000000000000000000000000000..5e79f4eff93a21ed3495c77a90f73525 +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:audioinjector-octo-soundcard"); -From fe48405b4cc8003578e5dfc9b9a15fa1bb519ac4 Mon Sep 17 00:00:00 2001 +From 90b22ac354d2e412c7a1aad5c19cc20ac46ef82a Mon Sep 17 00:00:00 2001 From: Peter Malkin Date: Mon, 27 Mar 2017 16:38:21 -0700 -Subject: [PATCH 086/156] Driver support for Google voiceHAT soundcard. +Subject: [PATCH 086/170] Driver support for Google voiceHAT soundcard. --- sound/soc/bcm/Kconfig | 7 ++ @@ -109658,10 +109658,10 @@ index 0000000000000000000000000000000000000000..225854b8e5298b3c3018f59a49404354 +MODULE_DESCRIPTION("ASoC Driver for Google voiceHAT SoundCard"); +MODULE_LICENSE("GPL v2"); -From b210cfdea11900e15789c98ea13d46336f463ec7 Mon Sep 17 00:00:00 2001 +From f2aef5b67e61ebd5b40211b2d7d8720b874c326c Mon Sep 17 00:00:00 2001 From: sandeepal Date: Fri, 2 Jun 2017 18:59:46 +0530 -Subject: [PATCH 087/156] Allo Digione Driver (#2048) +Subject: [PATCH 087/170] Allo Digione Driver (#2048) Driver for the Allo Digione soundcard @@ -109984,10 +109984,10 @@ index 0000000000000000000000000000000000000000..9387b055875fdf92a13dc4a9d2727f95 +MODULE_DESCRIPTION("ASoC Driver for Allo DigiOne"); +MODULE_LICENSE("GPL v2"); -From 6113ead5b49f159bf453e0a86d925dfe1ddf35f5 Mon Sep 17 00:00:00 2001 +From 1160bdbfc4ea2c4a725fb8af8411e1a300dcf25d Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 088/156] rpi_display: add backlight driver and overlay +Subject: [PATCH 088/170] rpi_display: add backlight driver and overlay Add a mailbox-driven backlight controller for the Raspberry Pi DSI touchscreen display. Requires updated GPU firmware to recognise the @@ -110156,10 +110156,10 @@ index 0000000000000000000000000000000000000000..14a0d9b037395497c1fdae2961feccd5 +MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver"); +MODULE_LICENSE("GPL"); -From e2fb27c47d95c61ade6dda988c396dbb17e45569 Mon Sep 17 00:00:00 2001 +From cfba43482f46d808fd02a43e9175fcde7d37aa69 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 089/156] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 089/170] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -110420,10 +110420,10 @@ index 0000000000000000000000000000000000000000..c3725546def9d4a6264fbb1f6b9814d0 +MODULE_DESCRIPTION("brcmvirt GPIO driver"); +MODULE_ALIAS("platform:brcmvirt-gpio"); -From b24bf7884dc36cb13e5fcc8ac6041fa0bbdf9f12 Mon Sep 17 00:00:00 2001 +From d77d0f64deb5c3c36c49ce530442c56bda218eb3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Feb 2017 17:01:21 +0000 -Subject: [PATCH 090/156] bcm2835-gpio-exp: Driver for GPIO expander via +Subject: [PATCH 090/170] bcm2835-gpio-exp: Driver for GPIO expander via mailbox service Pi3 and Compute Module 3 have a GPIO expander that the @@ -110732,10 +110732,10 @@ index 0000000000000000000000000000000000000000..d68adafaee4ad406f45f4ff0d6b7c1ad +MODULE_DESCRIPTION("brcm-exp GPIO driver"); +MODULE_ALIAS("platform:brcmexp-gpio"); -From 8c825b2fb64f1fb5b740391d0cc43e5066e84240 Mon Sep 17 00:00:00 2001 +From 70562b4ede7a2f643d7830c1bac2efb2bd8603a2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 091/156] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 091/170] amba_pl011: Don't use DT aliases for numbering The pl011 driver looks for DT aliases of the form "serial", and if found uses as the device ID. This can cause @@ -110764,10 +110764,10 @@ index 111e6a95077978c2c30bfe2a2de4a0d095e8d76e..584471add0962c0e26eb814fc0ef43ee uap->old_cr = 0; uap->port.dev = dev; -From 0cae01eacc85085e805d67783397770a915618ce Mon Sep 17 00:00:00 2001 +From fefca61ea56d35bb022f88cb69bfb206ea1890f0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 092/156] amba_pl011: Round input clock up +Subject: [PATCH 092/170] amba_pl011: Round input clock up The UART clock is initialised to be as close to the requested frequency as possible without exceeding it. Now that there is a @@ -110853,10 +110853,10 @@ index 584471add0962c0e26eb814fc0ef43eea99b2d29..bfbc845d7be9ef804468d0a82da18d9b /* unregisters the driver also if no more ports are left */ static void pl011_unregister_port(struct uart_amba_port *uap) -From 58c109fde8bd6c10eba2d06170be70bbb850608f Mon Sep 17 00:00:00 2001 +From 8076ccb7ea1fc2202a12387c16d1295fcf2add61 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 093/156] OF: DT-Overlay configfs interface +Subject: [PATCH 093/170] OF: DT-Overlay configfs interface This is a port of Pantelis Antoniou's v3 port that makes use of the new upstreamed configfs support for binary attributes. @@ -111289,10 +111289,10 @@ index 0000000000000000000000000000000000000000..0037e6868a6cda8706c88194c6a4454b +} +late_initcall(of_cfs_init); -From 491abb48ce9479c3e6c13ac6d4455bc10af832a5 Mon Sep 17 00:00:00 2001 +From 9e0f44234bf24e309ee4e383112dbbe12f8ceb65 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 094/156] brcm: adds support for BCM43341 wifi +Subject: [PATCH 094/170] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -111424,10 +111424,10 @@ index b3fa8ae804650f7ea838ff59ca84dfb6ca24da90..c1e86df297edf2fa7f641e36ccbfc733 BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, 43362), BRCMF_FW_NVRAM_ENTRY(BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, 4339), -From 3100c83ffbdcf00b740a194677eec30f852f11d2 Mon Sep 17 00:00:00 2001 +From dee5a231b34108ea54160ff2a8dc141e46b18a11 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Feb 2017 15:26:13 +0000 -Subject: [PATCH 095/156] brcmfmac: Mute expected startup 'errors' +Subject: [PATCH 095/170] brcmfmac: Mute expected startup 'errors' The brcmfmac WiFi driver always complains about the '00' country code. Modify the driver to ignore '00' silently. @@ -111451,10 +111451,10 @@ index 2d3b5e2a3ef7cd6186487b48665b401249380d18..e417454f5d6ec136cda29e65af5449f2 req->alpha2[0], req->alpha2[1]); return; -From 90beb38bf6d1347e07868024894576de8de2c6c4 Mon Sep 17 00:00:00 2001 +From 81ff667abb2240ebaece2ff1c7e690d339964d5a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 096/156] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 096/170] hci_h5: Don't send conf_req when ACTIVE Without this patch, a modem and kernel can continuously bombard each other with conf_req and conf_rsp messages, in a demented game of tag. @@ -111477,10 +111477,10 @@ index c0e4e26dc30d7c3c6a771b7b86df88c8cf763646..7308287259eedcaf229f8a496a0e3826 if (H5_HDR_LEN(hdr) > 2) h5->tx_win = (data[2] & 0x07); -From 470aee76e0fe145b6f40f8fd1541344823af32a0 Mon Sep 17 00:00:00 2001 +From 935dc6c7740fa51240f2702ee8e4936a68dba0ab Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 097/156] config: Add default configs +Subject: [PATCH 097/170] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1339 +++++++++++++++++++++++++++++++++++ @@ -114185,10 +114185,10 @@ index 0000000000000000000000000000000000000000..c1da808d40bc8e867b41d3566bd60a75 +CONFIG_CRC_ITU_T=y +CONFIG_LIBCRC32C=y -From e61e26039df463fdd354f24877075bd38f97f9b8 Mon Sep 17 00:00:00 2001 +From b3891f561bf601014c1ba70509a0f4415eb1940f Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Wed, 24 Aug 2016 03:35:56 -0700 -Subject: [PATCH 098/156] Add arm64 configuration and device tree differences. +Subject: [PATCH 098/170] Add arm64 configuration and device tree differences. Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing at the moment. @@ -115602,10 +115602,10 @@ index 0000000000000000000000000000000000000000..e6b09fafa27eed2b762e3d53b55041f7 +CONFIG_LIBCRC32C=y +CONFIG_BCM2835_VCHIQ=n -From fd72f89ad8fd95ecf834c089d0484f6e57f348d2 Mon Sep 17 00:00:00 2001 +From a85d866bf2514b86829734ec59e33ebd5f65f5d2 Mon Sep 17 00:00:00 2001 From: Electron752 Date: Thu, 12 Jan 2017 07:07:08 -0800 -Subject: [PATCH 099/156] ARM64: Make it work again on 4.9 (#1790) +Subject: [PATCH 099/170] ARM64: Make it work again on 4.9 (#1790) * Invoke the dtc compiler with the same options used in arm mode. * ARM64 now uses the bcm2835 platform just like ARM32. @@ -116016,10 +116016,10 @@ index e6b09fafa27eed2b762e3d53b55041f793683d27..c7e891d72969a388d9b135a36dbfc9c9 CONFIG_LIBCRC32C=y -CONFIG_BCM2835_VCHIQ=n -From bde5ef54989937f9c0637186b2d3b88c2d4222b6 Mon Sep 17 00:00:00 2001 +From 648c1d011a01121a3c5d62b53d2d23424b735a2d Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Thu, 12 Jan 2017 19:10:07 -0800 -Subject: [PATCH 100/156] ARM64: Enable HDMI audio and vc04_services in +Subject: [PATCH 100/170] ARM64: Enable HDMI audio and vc04_services in bcmrpi3_defconfig Signed-off-by: Michael Zoran @@ -116048,10 +116048,10 @@ index c7e891d72969a388d9b135a36dbfc9c9cb609bf8..4b90f9b64abe9f089ba56b13d5a00de3 CONFIG_BCM2835_MBOX=y # CONFIG_IOMMU_SUPPORT is not set -From b356db8cc8a1158020502d5d602b1d8a3ed781e5 Mon Sep 17 00:00:00 2001 +From ea6bfdc99658b2f7ef9b7d269b57cdb708888837 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Thu, 12 Jan 2017 19:14:03 -0800 -Subject: [PATCH 101/156] ARM64: Run bcmrpi3_defconfig through savedefconfig. +Subject: [PATCH 101/170] ARM64: Run bcmrpi3_defconfig through savedefconfig. Signed-off-by: Michael Zoran --- @@ -116096,10 +116096,10 @@ index 4b90f9b64abe9f089ba56b13d5a00de33343bfb9..dac962ca1634662ce7d966f1ffb53b5b CONFIG_FB_TFT_AGM1264K_FL=m CONFIG_FB_TFT_BD663474=m -From b1b97d16f0c098451d2716033d6095ade5ba05de Mon Sep 17 00:00:00 2001 +From 0292e521e77b7fbeec22e96de9d688fa492d9d91 Mon Sep 17 00:00:00 2001 From: Electron752 Date: Sat, 14 Jan 2017 02:54:26 -0800 -Subject: [PATCH 102/156] ARM64: Enable Kernel Address Space Randomization +Subject: [PATCH 102/170] ARM64: Enable Kernel Address Space Randomization (#1792) Randomization allows the mapping between virtual addresses and physical @@ -116131,10 +116131,10 @@ index dac962ca1634662ce7d966f1ffb53b5bfa27c506..aae33b4b3c3e736ea7cd3ca242158ad6 CONFIG_BINFMT_MISC=y CONFIG_COMPAT=y -From 3b19ee8423411688908b4b5996f667f9c2248828 Mon Sep 17 00:00:00 2001 +From c359956c08f4992256d5b8c4c88fbab2bd73d5c7 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sun, 15 Jan 2017 07:31:59 -0800 -Subject: [PATCH 103/156] ARM64: Enable RTL8187/RTL8192CU wifi in build config +Subject: [PATCH 103/170] ARM64: Enable RTL8187/RTL8192CU wifi in build config These drivers build now, so they can be enabled back in the build configuration just like they are for @@ -116159,10 +116159,10 @@ index aae33b4b3c3e736ea7cd3ca242158ad6ba558aff..b7d762df19b85e369a32cd823dfd0621 CONFIG_ZD1211RW=m CONFIG_MAC80211_HWSIM=m -From c7cc24b2d32fad6c665c4d084c801483acb9b982 Mon Sep 17 00:00:00 2001 +From 6762cf208b3ee6d3a38aa4f1c690772396a72a73 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:33:51 -0800 -Subject: [PATCH 104/156] ARM64/DWC_OTG: Port dwc_otg driver to ARM64 +Subject: [PATCH 104/170] ARM64/DWC_OTG: Port dwc_otg driver to ARM64 In ARM64, the FIQ mechanism used by this driver is not current implemented. As a workaround, reqular IRQ is used instead @@ -116505,10 +116505,10 @@ index 6b2c7d0c93f36a63863ff4b0ecc1f3eab77e058b..d7b700ff17821ad1944e36721fe6b2db /** The OS page size */ #define DWC_OS_PAGE_SIZE PAGE_SIZE -From 59994acd0c5ee2690597b92d2c943bbb9c686812 Mon Sep 17 00:00:00 2001 +From 50431d70da7df7f3d6cd7ff6c5835d7e1e55005d Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 105/156] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 105/170] ARM64: Round-Robin dispatch IRQs between CPUs. IRQ-CPU mapping is round robined on ARM64 to increase concurrency and allow multiple interrupts to be serviced @@ -116582,10 +116582,10 @@ index 86b357ae027bf8ba1ac32cd150a8cf21e36597e2..05b17ca993f405c4c8e61a782ec58149 .name = "bcm2836-gpu", .irq_mask = bcm2836_arm_irqchip_mask_gpu_irq, -From 6599dc008b0a0c2e8f944b5f400c6f2ff2d99d07 Mon Sep 17 00:00:00 2001 +From 7f80ce4624add32aaffa809acfa908209a1da0f2 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:45:03 -0800 -Subject: [PATCH 106/156] ARM64: Enable DWC_OTG Driver In ARM64 Build +Subject: [PATCH 106/170] ARM64: Enable DWC_OTG Driver In ARM64 Build Config(bcmrpi3_defconfig) Signed-off-by: Michael Zoran @@ -116606,10 +116606,10 @@ index b7d762df19b85e369a32cd823dfd062145bdefa7..4d85c231c5ea0244e1b05fb4a5e3c8fd CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE_REALTEK=m -From 505a6f0d7fa2ca0ed200e742f74976b46ad850ea Mon Sep 17 00:00:00 2001 +From ece5895a229e3bc868c08880e00087fe270ae319 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 107/156] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 107/170] ARM64: Force hardware emulation of deprecated instructions. --- @@ -116637,10 +116637,10 @@ index d06fbe4cd38d7423c900aff64b0e728f995478d3..877b7c90f9555203d5d55d739359a256 case INSN_OBSOLETE: insn->current_mode = INSN_UNDEF; -From efaa6d619eb4ce1691a89154e5b5e4a305764e98 Mon Sep 17 00:00:00 2001 +From 4712446bfdb0f531b1a7e482bfdf25344fcd72ca Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 10 Feb 2017 17:57:08 -0800 -Subject: [PATCH 108/156] build/arm64: Add rules for .dtbo files for dts +Subject: [PATCH 108/170] build/arm64: Add rules for .dtbo files for dts overlays We now create overlays as .dtbo files. @@ -116665,10 +116665,10 @@ index 7318165cfc90b5b4e36048fbafd9287a1cf3516f..f6f5df3f262b0baf1338bea188d78883 dtbs: prepare scripts -From 348ca83c2f655e80e913aac4e52f58f15237b032 Mon Sep 17 00:00:00 2001 +From 73118e643dfbe780d698a8bfa811cbb32e9f1490 Mon Sep 17 00:00:00 2001 From: Bilal Amarni Date: Wed, 24 May 2017 10:52:50 +0200 -Subject: [PATCH 109/156] enable drivers for GPIO expander and vcio +Subject: [PATCH 109/170] enable drivers for GPIO expander and vcio --- arch/arm64/configs/bcmrpi3_defconfig | 3 +++ @@ -116696,10 +116696,10 @@ index 4d85c231c5ea0244e1b05fb4a5e3c8fd3e651ddf..9dcb58a519d041fadae99c81a7bda621 CONFIG_GPIO_ARIZONA=m CONFIG_GPIO_STMPE=y -From cc63d5bf3ea73206058fcf93da6e434381988c3a Mon Sep 17 00:00:00 2001 +From fb34caf3ac99c6acbfabfcc304dc1ae9a863b246 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 23 Mar 2017 16:34:46 +0000 -Subject: [PATCH 110/156] bcm2835-aux: Add aux interrupt controller +Subject: [PATCH 110/170] bcm2835-aux: Add aux interrupt controller The AUX block has a shared interrupt line with a register indicating which devices have active IRQs. Expose this as a nested interrupt @@ -116863,10 +116863,10 @@ index bd750cf2238d61489811e7d7bd3b5f9950ed53c8..41e0702fae4692221980b0d02aed1ba6 BCM2835_AUX_CLOCK_COUNT, GFP_KERNEL); if (!onecell) -From afd78fe5da78e4f0f681fefb1f252d89ef9f11e1 Mon Sep 17 00:00:00 2001 +From 6b52689c0cdd949e802359902b71351236704f3c Mon Sep 17 00:00:00 2001 From: Yasunari Takiguchi Date: Fri, 14 Apr 2017 10:43:57 +0100 -Subject: [PATCH 111/156] This is the driver for Sony CXD2880 DVB-T2/T tuner + +Subject: [PATCH 111/170] This is the driver for Sony CXD2880 DVB-T2/T tuner + demodulator. It includes the CXD2880 driver and the CXD2880 SPI adapter. The current CXD2880 driver version is 1.4.1 - 1.0.1 released on April 13, 2017. @@ -132998,10 +132998,10 @@ index 0000000000000000000000000000000000000000..82e122349055be817eb74ed5bbcd7560 +MODULE_AUTHOR("Sony Semiconductor Solutions Corporation"); +MODULE_LICENSE("GPL v2"); -From 5dbe955ec48ef44648e94451318750bb6df81ab7 Mon Sep 17 00:00:00 2001 +From 8f5cf6bb86329cebb320a8afb5f1de41d4adcf52 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 09:16:19 +0100 -Subject: [PATCH 112/156] raspberrypi-firmware: Export the general transaction +Subject: [PATCH 112/170] raspberrypi-firmware: Export the general transaction function. The vc4-firmware-kms module is going to be doing the MBOX FB call. @@ -133033,10 +133033,10 @@ index 3f070bd38a91511c986e3fb114b15bd4ac32634c..f261b64d1657c02290904d841e1f087c /** * rpi_firmware_property_list - Submit firmware property list -From c3937409b87dfca100acf60068a4c56059ab4721 Mon Sep 17 00:00:00 2001 +From 965372ef50a7875da7ac37aece8b6809f2fcf75d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 08:39:33 +0100 -Subject: [PATCH 113/156] drm/vc4: Add a mode for using the closed firmware for +Subject: [PATCH 113/170] drm/vc4: Add a mode for using the closed firmware for display. Signed-off-by: Eric Anholt @@ -133807,10 +133807,10 @@ index 0000000000000000000000000000000000000000..78c34305935501248b1ca548a1ee0175 + }, +}; -From 19f8ac2c5d3ef969dafd1a40b332b9d62bf972f6 Mon Sep 17 00:00:00 2001 +From 87113204779914fbb60deb59fdbeb8d2e4cf5c6d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Feb 2017 17:09:18 -0800 -Subject: [PATCH 114/156] drm/vc4: Name the primary and cursor planes in fkms. +Subject: [PATCH 114/170] drm/vc4: Name the primary and cursor planes in fkms. This makes debugging nicer, compared to trying to remember what the IDs are. @@ -133834,10 +133834,10 @@ index 78c34305935501248b1ca548a1ee01753b8fa099..d9a5551d01a2155e3df1bbbd78a1ee2b if (type == DRM_PLANE_TYPE_PRIMARY) { vc4_plane->fbinfo = -From 9db72b7db374334f1dde969128cf93c20bafe392 Mon Sep 17 00:00:00 2001 +From bf123f24251108301e1a1e457a11be0a7cf1f7b1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 1 Feb 2017 17:10:09 -0800 -Subject: [PATCH 115/156] drm/vc4: Add DRM_DEBUG_ATOMIC for the insides of +Subject: [PATCH 115/170] drm/vc4: Add DRM_DEBUG_ATOMIC for the insides of fkms. Trying to debug weston on fkms involved figuring out what calls I was @@ -133907,10 +133907,10 @@ index d9a5551d01a2155e3df1bbbd78a1ee2b961be946..e372666af0119b1876bad5167e6d0ff8 RPI_FIRMWARE_SET_CURSOR_STATE, &packet_state, -From d4b7579168512d1f3388492ab6b38524d30b7f61 Mon Sep 17 00:00:00 2001 +From f9de1f4218540becca452a0195aeaaced7a0c637 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 Feb 2017 09:42:18 -0800 -Subject: [PATCH 116/156] drm/vc4: Fix sending of page flip completion events +Subject: [PATCH 116/170] drm/vc4: Fix sending of page flip completion events in FKMS mode. In the rewrite of vc4_crtc.c for fkms, I dropped the part of the @@ -133952,10 +133952,10 @@ index e372666af0119b1876bad5167e6d0ff8945d1b80..4d7b7f218cbbc9e7abcaa37743978060 static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) -From 95d3f4df4cb6e31ece205afb16c159a23dea0276 Mon Sep 17 00:00:00 2001 +From 213b5cb326f9d0475fdc620d0a519cfea3d8751b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 18 Apr 2017 21:43:46 +0100 -Subject: [PATCH 117/156] vc4_fkms: Apply firmware overscan offset to hardware +Subject: [PATCH 117/170] vc4_fkms: Apply firmware overscan offset to hardware cursor --- @@ -134012,10 +134012,10 @@ index 4d7b7f218cbbc9e7abcaa37743978060b73fbdd1..d170775ccc985637ff018804f510a500 return 0; -From 71d68a2a2dd549fdc5887f05226490e4e87b57ca Mon Sep 17 00:00:00 2001 +From 055d3dc7d1074ec670a2477f45f32a5d7803748b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 11:34:26 +0200 -Subject: [PATCH 118/156] ASoC: bcm2835: Add support for TDM modes +Subject: [PATCH 118/170] ASoC: bcm2835: Add support for TDM modes bcm2835 supports arbitrary positioning of channel data within a frame and thus is capable of supporting TDM modes. Since @@ -134417,10 +134417,10 @@ index 56df7d8a43d0aac055a91b0d24aca8e1b4e308e4..dcacf7f83c9371df539a788ea33fedcf dev->dev = &pdev->dev; dev_set_drvdata(&pdev->dev, dev); -From 7bb2e3cc51efdd7f5e3916296635d3ca2786668a Mon Sep 17 00:00:00 2001 +From 864a8cc2b58e80d0eddff494b35137936229ad85 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 15:30:50 +0200 -Subject: [PATCH 119/156] ASoC: bcm2835: Support left/right justified and DSP +Subject: [PATCH 119/170] ASoC: bcm2835: Support left/right justified and DSP modes DSP modes and left/right justified modes can be supported @@ -134666,10 +134666,10 @@ index dcacf7f83c9371df539a788ea33fedcf97d64690..3a706fda4f39e42efbe12f19d87af9b1 } -From 228d120aa69bc4d61a03809e719f227b7761ba58 Mon Sep 17 00:00:00 2001 +From f9e608621437c51fbf7071cdbb7ff359995d0cbe Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 16:19:54 +0200 -Subject: [PATCH 120/156] ASoC: bcm2835: Support additional samplerates up to +Subject: [PATCH 120/170] ASoC: bcm2835: Support additional samplerates up to 384kHz Sample rates are only restricted by the capabilities of the @@ -134712,10 +134712,10 @@ index 3a706fda4f39e42efbe12f19d87af9b100a348a5..43f5715a0d5dda851731ecf7ff27e76c | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE -From 8e8081ac8312b0391d415346b72e1509b6dc1b3a Mon Sep 17 00:00:00 2001 +From 9c1af7298d5e31017b9ce2e4110ee36685a012fb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 7 May 2017 16:24:57 +0200 -Subject: [PATCH 121/156] ASoC: bcm2835: Enforce full symmetry +Subject: [PATCH 121/170] ASoC: bcm2835: Enforce full symmetry bcm2835's configuration registers can't be changed when a stream is running, which means asymmetric configurations aren't supported. @@ -134751,10 +134751,10 @@ index 43f5715a0d5dda851731ecf7ff27e76c48fb6e57..2e449d7173fcecbcd647f90a26bd58b6 static bool bcm2835_i2s_volatile_reg(struct device *dev, unsigned int reg) -From 9ebc779b64bc4bbbdc9c19f3787d31fd3b9cf103 Mon Sep 17 00:00:00 2001 +From 3e179344ec1064810fbcfd08fe002f01fabde6b2 Mon Sep 17 00:00:00 2001 From: Andrei Gherzan Date: Mon, 5 Jun 2017 16:40:38 +0100 -Subject: [PATCH 122/156] dma-bcm2708: Fix module compilation of +Subject: [PATCH 122/170] dma-bcm2708: Fix module compilation of CONFIG_DMA_BCM2708 bcm2708-dmaengine.c defines functions like bcm_dma_start which are @@ -134797,10 +134797,10 @@ index c5bfff2765be4606077e6c8af73040ec13ee8974..6ca874d332a8bc666b1c9576ac51f479 #endif /* _PLAT_BCM2708_DMA_H */ -From 2a6bf09a2232c1588f4b8a0712fc86df947c9c68 Mon Sep 17 00:00:00 2001 +From 5a7418a09d6776a7b3945a0f17e67048428053a4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 123/156] cache: export clean and invalidate +Subject: [PATCH 123/170] cache: export clean and invalidate --- arch/arm/mm/cache-v6.S | 4 ++-- @@ -134852,10 +134852,10 @@ index de78109d002db1a5e7c94a6c1bc8bb94161d07b8..4c850aa3af2b2439fced4e130441329a sub r3, r2, #1 bic r0, r0, r3 -From 0f6ee1e7341758bbde9a4e2b19b5ce1638d77955 Mon Sep 17 00:00:00 2001 +From eec91ab0ebc2e28c7f0432ee234412ce721bebc6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 124/156] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 124/170] amba_pl011: Insert mb() for correct FIFO handling The pl011 register accessor functions use the _relaxed versions of the standard readl() and writel() functions, meaning that there are no @@ -134882,10 +134882,10 @@ index bfbc845d7be9ef804468d0a82da18d9b67857216..424bdc500864a86e5d431763ba416b52 return true; -From aad20fc7926f677e910a370ac660003fe8f3241f Mon Sep 17 00:00:00 2001 +From f905bf1839d50da1be6760fbd76ef3b355cbea20 Mon Sep 17 00:00:00 2001 From: Chung-Hsien Hsu Date: Sun, 14 May 2017 20:11:05 -0500 -Subject: [PATCH 125/156] brcmfmac: add CLM download support +Subject: [PATCH 125/170] brcmfmac: add CLM download support Future firmwares will be provided with minimal built-in CLM - the NULL region (#n/0) becomes the initial country. It cannot be changed @@ -135313,10 +135313,10 @@ index 11ffaa01599eb4b343b7f675dc275fc8572d127e..b27170c12482de0ca4115b4bc9484c21 static int brcmf_usb_bus_setup(struct brcmf_usbdev_info *devinfo) -From 44c8dcbd1a4cc0c4a4797794237be24e2cb658bd Mon Sep 17 00:00:00 2001 +From 0ea940037a80cf9de67b0cb7601dc2c1a5a26fae Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Oct 2017 13:23:32 +0100 -Subject: [PATCH 126/156] brcmfmac: request_firmware_direct is quieter +Subject: [PATCH 126/170] brcmfmac: request_firmware_direct is quieter Since we don't have any CLM-capable firmware yet, silence the warning of its absence by using request_firmware_direct, which should also @@ -135341,10 +135341,10 @@ index f0309e039592ba6e388084a13f052c03f99cf1ef..b5889360da96096775db6425337a7215 if (err == -ENOENT) return 0; -From 03ac58aaac6152c4a81295521371ea1572254c2d Mon Sep 17 00:00:00 2001 +From b1094a771b64a75df2b155580d3d3c2e1421d6c9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 127/156] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 127/170] amba_pl011: Add cts-event-workaround DT property The BCM2835 PL011 implementation seems to have a bug that can lead to a transmission lockup if CTS changes frequently. A workaround was added to @@ -135393,10 +135393,10 @@ index 424bdc500864a86e5d431763ba416b5298c777dc..b224306633f62c398ef904734a903d4e uap->vendor = vendor; uap->fifosize = vendor->get_fifosize(dev); -From 9530f6a5885ef00c32dc20522e77aacc8d413c02 Mon Sep 17 00:00:00 2001 +From f33d9c751ab634e489cfb80931f17c0de3398dcf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Oct 2017 13:48:04 +0100 -Subject: [PATCH 128/156] amba-pl011: Report AUTOCTS capability to framework +Subject: [PATCH 128/170] amba-pl011: Report AUTOCTS capability to framework The PL011 has full hardware RTS/CTS support which is enabled by the driver when flow control is requested. However, it doesn't @@ -135439,10 +135439,10 @@ index b224306633f62c398ef904734a903d4e75df65c3..3b743cf8a94c279ff8d0b747f98062d0 if (uap->vendor->oversampling) { -From c4d190af43e28a3395d5a4a24e09c03e60ec1227 Mon Sep 17 00:00:00 2001 +From c017b2c796604bb6439b2a208b138b2cf896f3ae Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Oct 2017 09:20:56 +0100 -Subject: [PATCH 129/156] scripts: Update mkknlimg, just in case +Subject: [PATCH 129/170] scripts: Update mkknlimg, just in case With the removal of the vc_cma driver, mkknlimg lost an indication that the user had built a downstream kernel. Update the script, adding a few @@ -135485,10 +135485,10 @@ index 84be2593ec1de8f97b0167ff06b3e05d231c4ba0..d72e15224232d5164374e93be48949bf my $res = try_extract($kernel_file, $tmpfile1); -From 70673bcc7449d767000171b2166278414386f3f1 Mon Sep 17 00:00:00 2001 +From 57e9299bbd3eb73676ad728276177c8201070239 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 14 Nov 2017 15:13:15 +0000 -Subject: [PATCH 130/156] AXI performance monitor driver (#2222) +Subject: [PATCH 130/170] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -136174,10 +136174,10 @@ index 0000000000000000000000000000000000000000..bafe03b6c000060e78404d65a0aa96d8 +MODULE_LICENSE("GPL"); + -From d85feabb73680e9c78a34c78551a19685fd57351 Mon Sep 17 00:00:00 2001 +From 3aae361330c0a1700c359854018238f602180d22 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Fri, 21 Jul 2017 09:55:12 +0100 -Subject: [PATCH 131/156] Sets the BCDC priority to constant 0 +Subject: [PATCH 131/170] Sets the BCDC priority to constant 0 This is to workaround for a possible issue in the wireless chip firmware where some packets with @@ -136203,10 +136203,10 @@ index 9f2d0b0cf6e5c452ad85a3caef58cf16a8cdad46..b009f3083490c2bc2733424f08f81b9f h->data_offset = offset; BCDC_SET_IF_IDX(h, ifidx); -From 4deb646df815e8fde6af12cdc4aef28e36adf000 Mon Sep 17 00:00:00 2001 +From 274281e46c09d72eaa7102e1786172a210076eb1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 26 Apr 2016 13:46:13 -0700 -Subject: [PATCH 132/156] drm/panel: Add support for the Raspberry Pi 7" +Subject: [PATCH 132/170] drm/panel: Add support for the Raspberry Pi 7" Touchscreen. This driver communicates with the Atmel microcontroller for sequencing @@ -136787,10 +136787,10 @@ index 0000000000000000000000000000000000000000..1a536fe4d040f5fafe324baee110a622 +MODULE_DESCRIPTION("Raspberry Pi 7-inch touchscreen driver"); +MODULE_LICENSE("GPL v2"); -From dc92e8e5c8ef7358b372e9a4c40bff3b633f8233 Mon Sep 17 00:00:00 2001 +From 54cafaeee64f2336046a0514fdc2a32eaae1be91 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 12 Apr 2017 17:52:56 -0700 -Subject: [PATCH 133/156] panel-raspberrypi-touchscreen: Fix NULL deref if +Subject: [PATCH 133/170] panel-raspberrypi-touchscreen: Fix NULL deref if probe order goes wrong. If the i2c driver hadn't pobed before the panel driver probes, then @@ -136817,10 +136817,10 @@ index 1a536fe4d040f5fafe324baee110a6225dd0be08..5d6bfd81b07a11a0cb407f4301d22931 } -From 158eda085c7617a38a8a5c7f3a42731a0fe5a74e Mon Sep 17 00:00:00 2001 +From c5f6a779e8260215f48baec9b588c797ec20ddab Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 6 Mar 2017 12:17:16 -0800 -Subject: [PATCH 134/156] panel-raspberrypi-touchscreen: Round up clk rate to +Subject: [PATCH 134/170] panel-raspberrypi-touchscreen: Round up clk rate to fix DSI panel. Commit 488f9bc8e3def93e0baef53cee2026c2cb0d8956 slightly increased the @@ -136855,10 +136855,10 @@ index 5d6bfd81b07a11a0cb407f4301d22931705fb8b1..b57b7ad9aa4c5048186e98553af59ec9 .hsync_start = HACT + HFP, .hsync_end = HACT + HFP + HSW, -From c3a47a768b4ed30fd3b5999150600196c4d22bfc Mon Sep 17 00:00:00 2001 +From 39d6a1e38f0b4db2da6fdfbf9d27e894d45e3301 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 Jun 2016 12:29:45 -0700 -Subject: [PATCH 135/156] BCM270X: Add the DSI panel to the defconfig. +Subject: [PATCH 135/170] BCM270X: Add the DSI panel to the defconfig. Signed-off-by: Eric Anholt --- @@ -136879,10 +136879,10 @@ index 9dcb58a519d041fadae99c81a7bda621b2a49f12..003209bf2362c2a136ab987b2f20065e CONFIG_DRM_VC4=m CONFIG_FB=y -From 6dead55502acbb495dc2374ba6bfe24009924cf2 Mon Sep 17 00:00:00 2001 +From ef0035125d78054b7bb993e535486b7a68582864 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 6 Jul 2017 11:45:48 -0700 -Subject: [PATCH 136/156] drm/vc4: Add support for setting DPMS in firmwarekms. +Subject: [PATCH 136/170] drm/vc4: Add support for setting DPMS in firmwarekms. This ensures that the screen goes blank during DPMS (screensaver), including the cursor. Planes don't necessarily get disabled during @@ -136985,10 +136985,10 @@ index d170775ccc985637ff018804f510a5003933c9ec..766f700417f7194d6b01fa1bc18dad40 if (!vc4_encoder) return -ENOMEM; -From 02d392a5e011d75ed2256949f4490b6a4181090d Mon Sep 17 00:00:00 2001 +From cc33959bffb1442fa5804f5682c4a47fcbc2af37 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 14 Jul 2017 17:33:08 -0700 -Subject: [PATCH 137/156] drm/vc4: Fix pitch setup for T-format scanout. +Subject: [PATCH 137/170] drm/vc4: Fix pitch setup for T-format scanout. The documentation said to use src_w here, and I didn't consider that we actually needed to be using pitch somewhere in our setup. Fixes @@ -137036,10 +137036,10 @@ index 2968b3ebb895714cb8c8faeaf40dff1c996f2259..4ad0b9fcae99f74fb89d09dd52d9ffe5 DRM_DEBUG_KMS("Unsupported FB tiling flag 0x%16llx", (long long)fb->modifier); -From 82ce9961759e6f26e5623e604a20b3320485220d Mon Sep 17 00:00:00 2001 +From 82d76164f91126ae68096f7e48bdead4d30114c7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 24 Aug 2017 16:16:16 +0100 -Subject: [PATCH 138/156] brcmfmac: Disable ARP offloading when promiscuous +Subject: [PATCH 138/170] brcmfmac: Disable ARP offloading when promiscuous This is a test patch for brcmfmac from Franky Lin at Broadcom to disable ARP offloading when in promiscuous mode, re-enabling the ability to @@ -137176,10 +137176,10 @@ index a4dd313140f37dc1fbb6955e1148f48bccf22f44..b9a96cbc70f0865ee8c9cff3c6164144 bool is_p2pdev, const char *name, u8 *mac_addr); void brcmf_remove_interface(struct brcmf_if *ifp, bool rtnl_locked); -From 6bda342d69a5607eb020a0ce5f3c07c5e57b3373 Mon Sep 17 00:00:00 2001 +From 3f56f347c8a56b4a010450a597a314e0449d40b9 Mon Sep 17 00:00:00 2001 From: Kevin Cernekee Date: Sat, 16 Sep 2017 21:08:22 -0700 -Subject: [PATCH 139/156] brcmfmac: Avoid possible out-of-bounds read +Subject: [PATCH 139/170] brcmfmac: Avoid possible out-of-bounds read In brcmf_p2p_notify_rx_mgmt_p2p_probereq(), chanspec is assigned before the length of rxframe is validated. This could lead to uninitialized @@ -137217,10 +137217,10 @@ index 2ce675ab40ef867cf6a86ca5257a6db7ef76e80a..1c450c0727cb577f7dae25a1ce82b2db return 0; } -From f8aed552b1faa6e9252a26daea3b38ab22f92120 Mon Sep 17 00:00:00 2001 +From 09731dd50c0e9a1bab8e3c5b188b2d53d0113f8b Mon Sep 17 00:00:00 2001 From: Kevin Cernekee Date: Sat, 16 Sep 2017 21:08:23 -0700 -Subject: [PATCH 140/156] brcmfmac: Delete redundant length check +Subject: [PATCH 140/170] brcmfmac: Delete redundant length check brcmf_fweh_process_event() sets event->datalen to the endian-swapped value of event_packet->msg.datalen, which is the @@ -137251,10 +137251,10 @@ index ef72baf6dd969c2478a2138ea57b9f691fdf12d8..e7eaa57d11d98f61280bd99013e649aa /* special handling of interface event */ if (event->code == BRCMF_E_IF) { -From c30f1eb84049bff85c4e7107fbb48a3c2165db63 Mon Sep 17 00:00:00 2001 +From e8319e62eaf41e66e2f6a6f1479795c0bd52f8e9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Nov 2017 11:03:22 +0000 -Subject: [PATCH 141/156] mcp2515: Use DT-supplied interrupt flags +Subject: [PATCH 141/170] mcp2515: Use DT-supplied interrupt flags The MCP2515 datasheet clearly describes a level-triggered interrupt pin. Therefore the receiving interrupt controller must also be @@ -137290,10 +137290,10 @@ index f3f05fea8e1f8e0ad3a1ebd7461d2019835e1d47..6c2d3aba25918f5536b2d67292334e74 flags | IRQF_ONESHOT, DEVICE_NAME, priv); if (ret) { -From d8b1f87abe7997d0168d088d4411cd63ae61ce8c Mon Sep 17 00:00:00 2001 +From 0a37de8db6eba28047daaefa9a4fa02512e0fcd6 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 16 Nov 2017 15:56:17 +0000 -Subject: [PATCH 142/156] Tidy up of the ft5406 driver to use DT (#2189) +Subject: [PATCH 142/170] Tidy up of the ft5406 driver to use DT (#2189) Driver was using a fixed resolution, this commit adds touchscreen size, and coordinate flip and swap @@ -137677,10 +137677,10 @@ index 9d7d05482355d168c5c0c42508cd978979ee5f14..40bbde9ce1bc4c51be50f47fc359c74f } -From c12fd1fd4cef21c82d7acef3e03f81d41cfc1a6b Mon Sep 17 00:00:00 2001 +From 7353f03e936a713e8cb57a5416b7194569b0541d Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 143/156] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 143/170] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -137702,10 +137702,10 @@ index ff782445dfb75d1a8af9eed775b8e8f7b275fee3..786efcddb5e56a06baf67cb91ddbbd8e .can_sleep = false, }; -From 3ff0bb2bc2e25a4ba8016aa943a111591491a885 Mon Sep 17 00:00:00 2001 +From 79dc1dfb0cbd621db0e7c9f5ca40c8e63d2d73ca Mon Sep 17 00:00:00 2001 From: P33M Date: Fri, 24 Nov 2017 13:49:26 +0000 -Subject: [PATCH 144/156] fiq_fsm: rewind DMA pointer for OUT transactions that +Subject: [PATCH 144/170] fiq_fsm: rewind DMA pointer for OUT transactions that fail (#2288) See: https://github.com/raspberrypi/linux/issues/2140 @@ -137749,10 +137749,10 @@ index e47d5b6de3ada73896ff9a81abd223d345e0de4f..ec804c7cd06d2db897ce6f72fce29733 if (st->nr_errors >= 3) { st->fsm = FIQ_NP_SPLIT_HS_ABORTED; -From 23cb26d966f3a608ee425de9f8bb271aef7682b3 Mon Sep 17 00:00:00 2001 +From 15a544dc74e104c852122644968fc9470af34c8a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 21 Jul 2017 11:30:18 +0100 -Subject: [PATCH 145/156] lan78xx: Read MAC address from DT if present +Subject: [PATCH 145/170] lan78xx: Read MAC address from DT if present There is a standard mechanism for locating and using a MAC address from the Device Tree. Use this facility in the lan78xx driver to support @@ -137799,10 +137799,10 @@ index 0161f77641fac8eafc1284a5457a7ccb273efc39..01e72b267de8f2a82fbe1ab4557dcaab (addr[2] << 16) | (addr[3] << 24); addr_hi = addr[4] | (addr[5] << 8); -From 467bf7dc624b0feeff16c8e6535b8c3e906f5a6f Mon Sep 17 00:00:00 2001 +From 905fd7d52f4caa78aa524638662bd8992b2f16a0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 28 Nov 2017 12:02:37 +0000 -Subject: [PATCH 146/156] lan78xx: Correctly indicate invalid OTP +Subject: [PATCH 146/170] lan78xx: Correctly indicate invalid OTP lan78xx_read_otp tries to return -EINVAL in the event of invalid OTP content, but the value gets overwritten before it is returned and the @@ -137829,10 +137829,10 @@ index 01e72b267de8f2a82fbe1ab4557dcaab67532da9..126fe75e75b19c1076a7dd4415a90403 return ret; -From fa449b32d938fa8be904fdb37b424cf67040c2bd Mon Sep 17 00:00:00 2001 +From 78b6c12542824a4571bc10887cdb1f83168676ec Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Oct 2017 15:04:29 +0100 -Subject: [PATCH 147/156] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 147/170] lan78xx: Enable LEDs and auto-negotiation For applications of the LAN78xx that don't have valid programmed EEPROMs or OTPs, enabling both LEDs and auto-negotiation by default @@ -137880,10 +137880,10 @@ index 126fe75e75b19c1076a7dd4415a904035ba95402..26e04c732df49d09939d470c61a9ab46 ret = lan78xx_read_reg(dev, MAC_TX, &buf); -From 8ed86c94c82b04849f230d355d43b110f8e2becf Mon Sep 17 00:00:00 2001 +From b47bdb7e1ff1f10ce99a477e7e032bc059fed850 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH 148/156] cgroup: Disable cgroup "memory" by default +Subject: [PATCH 148/170] cgroup: Disable cgroup "memory" by default Some Raspberry Pis have limited RAM and most users won't use the cgroup memory support so it is disabled by default. Enable with: @@ -137953,10 +137953,10 @@ index 44857278eb8aa6a2bbf27b7eb12137ef42628170..8f86a3d88d84ccf4b055e6d36835fffa * css_tryget_online_from_dir - get corresponding css from a cgroup dentry * @dentry: directory dentry of interest -From 05accdcc0fd34d6fad79cc9351ed144cef19ad70 Mon Sep 17 00:00:00 2001 +From f13f26def4fdf80786a27186ecf524ecdf284079 Mon Sep 17 00:00:00 2001 From: Allen Wild Date: Tue, 26 Sep 2017 19:37:44 +0200 -Subject: [PATCH 149/156] thermal: enable broadcom menu for arm64 bcm2835 +Subject: [PATCH 149/170] thermal: enable broadcom menu for arm64 bcm2835 Moving the bcm2835 thermal driver to the broadcom directory prevented it from getting enabled for arm64 builds, since the broadcom directory is only @@ -137987,10 +137987,10 @@ index 07002df4f83acdde2efdf3f51299976ef25d2e1e..e3f0d1fd1720355bc601e766356ac528 endmenu -From 9f2a63187f992954e0719694b5a5f2fc235cbb45 Mon Sep 17 00:00:00 2001 +From 7f4963c2b6c1c29968e06ff1cb60dec92d3b41a2 Mon Sep 17 00:00:00 2001 From: Gottfried Haider Date: Tue, 26 Sep 2017 11:59:51 +0000 -Subject: [PATCH 150/156] pwm: Set class for exported channels in sysfs +Subject: [PATCH 150/170] pwm: Set class for exported channels in sysfs [ Upstream commit 7e5d1fd75c3dde9fc10c4472b9368089d1b81d00 ] @@ -138026,10 +138026,10 @@ index a813239300c3d46bba1320caac77ec7adc8363a8..83f2b0b15712bf5745a0dc3a231c5ed0 export->child.parent = parent; export->child.devt = MKDEV(0, 0); -From 6b05daddf30bfee14f96b8edaed959e170ae6a96 Mon Sep 17 00:00:00 2001 +From 3e91e52f2075d759f954a42b205013ebe9d8df21 Mon Sep 17 00:00:00 2001 From: Giedrius Trainavicius Date: Tue, 25 Oct 2016 01:47:20 +0300 -Subject: [PATCH 151/156] Updates for Pisound module code: +Subject: [PATCH 151/170] Updates for Pisound module code: * Merged 'Fix a warning in DEBUG builds' (1c8b82b). * Updating some strings and copyright information. @@ -138454,10 +138454,10 @@ index 06ff1e53dc9d860946965b6303577762f958fae2..09739d51b70b877e24e4f74f6aaadebd +MODULE_DESCRIPTION("ASoC Driver for Pisound, https://blokas.io/pisound"); MODULE_LICENSE("GPL v2"); -From 553c00f4d0c206db850747bdda8e09b032bbcc0a Mon Sep 17 00:00:00 2001 +From 5a8a3234bac8eab5f4d49e4ee141931832018cd3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 9 Dec 2017 21:45:12 +0000 -Subject: [PATCH 152/156] overlays: Add applepi-dac overlay +Subject: [PATCH 152/170] overlays: Add applepi-dac overlay See: https://github.com/raspberrypi/linux/issues/2302 @@ -138562,10 +138562,10 @@ index 0000000000000000000000000000000000000000..fc02b295470efce41d61be241ba55022 + dtc -@ -H epapr -O dtb -o ApplePi-DAC.dtbo -W no-unit_address_vs_reg ApplePi-DAC.dts +*/ -From 833b3504358cdedd79bd4bb2635a77aacb30e858 Mon Sep 17 00:00:00 2001 +From 6b77ea7e092b739dd12cdc6046a6aeb105976b92 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Dec 2017 12:12:46 +0000 -Subject: [PATCH 153/156] staging: vchiq_arm: Make debugfs failure non-fatal +Subject: [PATCH 153/170] staging: vchiq_arm: Make debugfs failure non-fatal It can be useful to be able to open multiple vchiq instances in a single process. This currently fails due to a debugfs collision, @@ -138594,10 +138594,10 @@ index 314ffac50bb8303971ca71a5f702f07fb8ed6639..e4bad872b7e547de268648fae690524f sema_init(&instance->insert_event, 0); sema_init(&instance->remove_event, 0); -From a629763c410ffd15f909fbddef94f35329c088ef Mon Sep 17 00:00:00 2001 +From f64a4146364308905d7373871cb9685893f9e235 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 23 Dec 2017 22:10:37 +0000 -Subject: [PATCH 154/156] config: Add PINCTRL_MCP23S08 +Subject: [PATCH 154/170] config: Add PINCTRL_MCP23S08 As of Linux 4.12, the mcp23s08 driver moved from drivers/gpio to drivers/pinctrl. At the same time, the Kconfig symbols changed @@ -138638,10 +138638,10 @@ index c1da808d40bc8e867b41d3566bd60a758d052bdb..4cfd4e6a339009536d6ebaaff36e4007 CONFIG_GPIO_PCF857X=m CONFIG_GPIO_ARIZONA=m -From 1a8c4ce941c8a8d9865bd86546660b6ff68938f5 Mon Sep 17 00:00:00 2001 +From 3fe3a681b9a67bec6cab7c3704997f2269d55c24 Mon Sep 17 00:00:00 2001 From: Alex Riesen Date: Thu, 21 Dec 2017 09:29:39 +0100 -Subject: [PATCH 155/156] Add Raspberry Pi firmware driver to the dependencies +Subject: [PATCH 155/170] Add Raspberry Pi firmware driver to the dependencies of backlight driver Otherwise the backlight driver fails to build if the firmware @@ -138665,10 +138665,10 @@ index e345a32945b7ec0712cebd0ac8e62c9e8955e24f..9244f2f7b642c6fe5725f0b3b841cece If you have the Raspberry Pi DSI touchscreen display, say Y to enable the mailbox-controlled backlight driver. -From a02f735a7abbf857a7630e0c7a8723747192a6b1 Mon Sep 17 00:00:00 2001 +From 96fe56f780636875b896db4e55d8d32d0bee0705 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sun, 24 Dec 2017 21:57:05 +0000 -Subject: [PATCH 156/156] overlays: Add media center HAT overlay (#2313) +Subject: [PATCH 156/170] overlays: Add media center HAT overlay (#2313) --- arch/arm/boot/dts/overlays/Makefile | 1 + @@ -138862,3 +138862,1383 @@ index 0000000000000000000000000000000000000000..a42b8e2a846c6e614ca807f798bef238 + invert = <&lirc_rpi>,"rpi,invert:0"; + }; +}; + +From 0d710b5381bb2aee93240f2ce33f5cc0a05b953c Mon Sep 17 00:00:00 2001 +From: Aaron Shaw +Date: Thu, 28 Dec 2017 17:31:52 +0000 +Subject: [PATCH 157/170] add backlight control to rpi-display overlay + +--- + arch/arm/boot/dts/overlays/README | 1 + + arch/arm/boot/dts/overlays/rpi-display-overlay.dts | 14 ++++++++------ + 2 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 6e43bbdd4ef26ee93ce45e045e2c7ebafc261ef1..e0f29ec6627a87f2edd1fff9f696713115fa4386 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1329,6 +1329,7 @@ Params: speed Display SPI bus speed + debug Debug output level {0-7} + xohms Touchpanel sensitivity (X-plate resistance) + swapxy Swap x and y axis ++ backlight Change backlight GPIO pin {e.g. 12, 18} + + + Name: rpi-ft5406 +diff --git a/arch/arm/boot/dts/overlays/rpi-display-overlay.dts b/arch/arm/boot/dts/overlays/rpi-display-overlay.dts +index d7e72eef594e08b309ffbaa04f43c68909c08f36..533b5c140b5447a0bcf426fee0a8b321074edb66 100644 +--- a/arch/arm/boot/dts/overlays/rpi-display-overlay.dts ++++ b/arch/arm/boot/dts/overlays/rpi-display-overlay.dts +@@ -79,11 +79,13 @@ + }; + }; + __overrides__ { +- speed = <&rpidisplay>,"spi-max-frequency:0"; +- rotate = <&rpidisplay>,"rotate:0"; +- fps = <&rpidisplay>,"fps:0"; +- debug = <&rpidisplay>,"debug:0"; +- xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0"; +- swapxy = <&rpidisplay_ts>,"ti,swap-xy?"; ++ speed = <&rpidisplay>,"spi-max-frequency:0"; ++ rotate = <&rpidisplay>,"rotate:0"; ++ fps = <&rpidisplay>,"fps:0"; ++ debug = <&rpidisplay>,"debug:0"; ++ xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0"; ++ swapxy = <&rpidisplay_ts>,"ti,swap-xy?"; ++ backlight = <&rpidisplay>,"led-gpios:4", ++ <&rpi_display_pins>,"brcm,pins:0"; + }; + }; + +From 1dcc84c36d90896b994847d44a12bda5f1d65dda Mon Sep 17 00:00:00 2001 +From: Aaron Shaw +Date: Thu, 28 Dec 2017 17:34:54 +0000 +Subject: [PATCH 158/170] add backlight control to media-center overlay + +--- + arch/arm/boot/dts/overlays/README | 1 + + arch/arm/boot/dts/overlays/media-center-overlay.dts | 16 +++++++++------- + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index e0f29ec6627a87f2edd1fff9f696713115fa4386..2024a28e9bbff8ec9c6f56ee45c2def3591b75a2 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1002,6 +1002,7 @@ Params: speed Display SPI bus speed + fps Delay between frame updates + xohms Touchpanel sensitivity (X-plate resistance) + swapxy Swap x and y axis ++ backlight Change backlight GPIO pin {e.g. 12, 18} + gpio_out_pin GPIO for output (default "17") + gpio_in_pin GPIO for input (default "18") + gpio_in_pull Pull up/down/off on the input pin +diff --git a/arch/arm/boot/dts/overlays/media-center-overlay.dts b/arch/arm/boot/dts/overlays/media-center-overlay.dts +index a42b8e2a846c6e614ca807f798bef238ad002535..ce4db35228e9f68e3f3f40f0f9c02f89912c11d3 100644 +--- a/arch/arm/boot/dts/overlays/media-center-overlay.dts ++++ b/arch/arm/boot/dts/overlays/media-center-overlay.dts +@@ -113,13 +113,15 @@ + }; + + __overrides__ { +- speed = <&rpidisplay>,"spi-max-frequency:0"; +- rotate = <&rpidisplay>,"rotate:0"; +- fps = <&rpidisplay>,"fps:0"; +- debug = <&rpidisplay>,"debug:0", +- <&lirc_rpi>,"rpi,debug:0"; +- xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0"; +- swapxy = <&rpidisplay_ts>,"ti,swap-xy?"; ++ speed = <&rpidisplay>,"spi-max-frequency:0"; ++ rotate = <&rpidisplay>,"rotate:0"; ++ fps = <&rpidisplay>,"fps:0"; ++ debug = <&rpidisplay>,"debug:0", ++ <&lirc_rpi>,"rpi,debug:0"; ++ xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0"; ++ swapxy = <&rpidisplay_ts>,"ti,swap-xy?"; ++ backlight = <&rpidisplay>,"led-gpios:4", ++ <&rpi_display_pins>,"brcm,pins:0"; + + gpio_out_pin = <&lirc_pins>,"brcm,pins:0"; + gpio_in_pin = <&lirc_pins>,"brcm,pins:4"; + +From 72458d16072515f3abd3394e6fa78363310e329c Mon Sep 17 00:00:00 2001 +From: penfold42 +Date: Tue, 2 Jan 2018 00:15:19 +1100 +Subject: [PATCH 159/170] Add overlay for mcp3202 12 bit ADC + +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 9 ++ + arch/arm/boot/dts/overlays/mcp3202-overlay.dts | 205 +++++++++++++++++++++++++ + 3 files changed, 215 insertions(+) + create mode 100755 arch/arm/boot/dts/overlays/mcp3202-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index e07c87e2dcbd4d1b7146cec2e53a762a4b283800..7aa703e938c0bb1d5659052f6899d0a6d3be5a4c 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -61,6 +61,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + mcp2515-can0.dtbo \ + mcp2515-can1.dtbo \ + mcp3008.dtbo \ ++ mcp3202.dtbo \ + media-center.dtbo \ + midi-uart0.dtbo \ + midi-uart1.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 2024a28e9bbff8ec9c6f56ee45c2def3591b75a2..b8a2f3fdf73299346482c9e7d2a1133a73fe93ba 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -994,6 +994,15 @@ Params: spi--present boolean, configure device at spi, cs + spi--speed integer, set the spi bus speed for this device + + ++Name: mcp3202 ++Info: Configures MCP3202 A/D converters ++ For devices on spi1 or spi2, the interfaces should be enabled ++ with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays. ++Load: dtoverlay=mcp3202,[=] ++Params: spi--present boolean, configure device at spi, cs ++ spi--speed integer, set the spi bus speed for this device ++ ++ + Name: media-center + Info: Media Center HAT - 2.83" Touch Display + extras by Pi Supply + Load: dtoverlay=media-center,= +diff --git a/arch/arm/boot/dts/overlays/mcp3202-overlay.dts b/arch/arm/boot/dts/overlays/mcp3202-overlay.dts +new file mode 100755 +index 0000000000000000000000000000000000000000..9902c4614ea1f9e5725b3c4a2e62429a1213009a +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/mcp3202-overlay.dts +@@ -0,0 +1,205 @@ ++/* ++ * Device tree overlay for Microchip mcp3202 12-Bit A/D Converters ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; ++ ++ fragment@0 { ++ target = <&spidev0>; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&spidev1>; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@2 { ++ target-path = "spi1/spidev@0"; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@3 { ++ target-path = "spi1/spidev@1"; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@4 { ++ target-path = "spi1/spidev@2"; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@5 { ++ target-path = "spi2/spidev@0"; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@6 { ++ target-path = "spi2/spidev@1"; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@7 { ++ target-path = "spi2/spidev@2"; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@8 { ++ target = <&spi0>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_00: mcp3202@0 { ++ compatible = "mcp3202"; ++ reg = <0>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ fragment@9 { ++ target = <&spi0>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_01: mcp3202@1 { ++ compatible = "mcp3202"; ++ reg = <1>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ fragment@10 { ++ target = <&spi1>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_10: mcp3202@0 { ++ compatible = "mcp3202"; ++ reg = <0>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ fragment@11 { ++ target = <&spi1>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_11: mcp3202@1 { ++ compatible = "mcp3202"; ++ reg = <1>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ fragment@12 { ++ target = <&spi1>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_12: mcp3202@2 { ++ compatible = "mcp3202"; ++ reg = <2>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ fragment@13 { ++ target = <&spi2>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_20: mcp3202@0 { ++ compatible = "mcp3202"; ++ reg = <0>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ fragment@14 { ++ target = <&spi2>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_21: mcp3202@1 { ++ compatible = "mcp3202"; ++ reg = <1>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ fragment@15 { ++ target = <&spi2>; ++ __dormant__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mcp3202_22: mcp3202@2 { ++ compatible = "mcp3202"; ++ reg = <2>; ++ spi-max-frequency = <1600000>; ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ spi0-0-present = <0>, "+0+8"; ++ spi0-1-present = <0>, "+1+9"; ++ spi1-0-present = <0>, "+2+10"; ++ spi1-1-present = <0>, "+3+11"; ++ spi1-2-present = <0>, "+4+12"; ++ spi2-0-present = <0>, "+5+13"; ++ spi2-1-present = <0>, "+6+14"; ++ spi2-2-present = <0>, "+7+15"; ++ spi0-0-speed = <&mcp3202_00>, "spi-max-frequency:0"; ++ spi0-1-speed = <&mcp3202_01>, "spi-max-frequency:0"; ++ spi1-0-speed = <&mcp3202_10>, "spi-max-frequency:0"; ++ spi1-1-speed = <&mcp3202_11>, "spi-max-frequency:0"; ++ spi1-2-speed = <&mcp3202_12>, "spi-max-frequency:0"; ++ spi2-0-speed = <&mcp3202_20>, "spi-max-frequency:0"; ++ spi2-1-speed = <&mcp3202_21>, "spi-max-frequency:0"; ++ spi2-2-speed = <&mcp3202_22>, "spi-max-frequency:0"; ++ }; ++}; + +From 8a4605bcbbfc9824e7235e51feedc29014ed5576 Mon Sep 17 00:00:00 2001 +From: Stefan Schake +Date: Sat, 2 Dec 2017 18:40:39 +0100 +Subject: [PATCH 160/170] drm/vc4: Release fence after signalling + +[ Upstream commit babc8110057cb9ca542c3c1666cbda4e8ccf9250 ] + +We were never releasing the initial fence reference that is obtained +through dma_fence_init. + +Link: https://github.com/anholt/linux/issues/122 +Fixes: cdec4d361323 ("drm/vc4: Expose dma-buf fences for V3D rendering.") +Signed-off-by: Stefan Schake +Signed-off-by: Eric Anholt +Reviewed-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/1512236444-301-1-git-send-email-stschake@gmail.com +--- + drivers/gpu/drm/vc4/vc4_gem.c | 4 +++- + drivers/gpu/drm/vc4/vc4_irq.c | 1 + + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c +index d0c6bfb68c4ee9d88c2a026e5908915d331733db..e554cbf18a55c30e6dce1ef8bf3a5a60a6b73407 100644 +--- a/drivers/gpu/drm/vc4/vc4_gem.c ++++ b/drivers/gpu/drm/vc4/vc4_gem.c +@@ -829,8 +829,10 @@ vc4_complete_exec(struct drm_device *dev, struct vc4_exec_info *exec) + /* If we got force-completed because of GPU reset rather than + * through our IRQ handler, signal the fence now. + */ +- if (exec->fence) ++ if (exec->fence) { + dma_fence_signal(exec->fence); ++ dma_fence_put(exec->fence); ++ } + + if (exec->bo) { + for (i = 0; i < exec->bo_count; i++) +diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c +index 7d7af3a93d941bb9552afc1140c408c8da86be37..fc1fc43a924dcc0c44a7a13858bfb53ccdf8fe32 100644 +--- a/drivers/gpu/drm/vc4/vc4_irq.c ++++ b/drivers/gpu/drm/vc4/vc4_irq.c +@@ -139,6 +139,7 @@ vc4_irq_finish_render_job(struct drm_device *dev) + list_move_tail(&exec->head, &vc4->job_done_list); + if (exec->fence) { + dma_fence_signal_locked(exec->fence); ++ dma_fence_put(exec->fence); + exec->fence = NULL; + } + vc4_submit_next_render_job(dev); + +From 5c138e2fa37950a5295d189a4cfa0715b0b19d5a Mon Sep 17 00:00:00 2001 +From: P33M +Date: Tue, 9 Jan 2018 15:16:35 +0000 +Subject: [PATCH 161/170] dwc_otg: don't unconditionally force host mode in + dwc_otg_cil_init() + +Add the ability to disable force_host_mode for those that want to use +dwc_otg in both device and host modes. +--- + drivers/usb/host/dwc_otg/dwc_otg_cil.c | 7 ++++++- + drivers/usb/host/dwc_otg/dwc_otg_driver.c | 7 +++++++ + 2 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil.c b/drivers/usb/host/dwc_otg/dwc_otg_cil.c +index 38abd0b1f0341b50a2d7ad7493e2d09b6b8a55a9..14300ad0f2af7bfa89127ea113a36651aae44187 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_cil.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_cil.c +@@ -61,6 +61,8 @@ + #include "dwc_otg_regs.h" + #include "dwc_otg_cil.h" + ++extern bool cil_force_host; ++ + static int dwc_otg_setup_params(dwc_otg_core_if_t * core_if); + + /** +@@ -192,7 +194,10 @@ dwc_otg_core_if_t *dwc_otg_cil_init(const uint32_t * reg_base_addr) + core_if->hptxfsiz.d32 = + DWC_READ_REG32(&core_if->core_global_regs->hptxfsiz); + gusbcfg.d32 = DWC_READ_REG32(&core_if->core_global_regs->gusbcfg); +- gusbcfg.b.force_host_mode = 1; ++ if (cil_force_host) ++ gusbcfg.b.force_host_mode = 1; ++ else ++ gusbcfg.b.force_host_mode = 0; + DWC_WRITE_REG32(&core_if->core_global_regs->gusbcfg, gusbcfg.d32); + dwc_mdelay(100); + } +diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c +index af123d01f3ef9f99450c78efdf766ca35e15cbc9..e945900c503cb383d754381b055955b1740e10b5 100644 +--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c +@@ -247,6 +247,9 @@ bool fiq_fsm_enable = true; + //Bulk split-transaction NAK holdoff in microframes + uint16_t nak_holdoff = 8; + ++//Force host mode during CIL re-init ++bool cil_force_host = true; ++ + unsigned short fiq_fsm_mask = 0x0F; + + unsigned short int_ep_interval_min = 0; +@@ -1403,6 +1406,10 @@ MODULE_PARM_DESC(int_ep_interval_min, "Clamp high-speed Interrupt endpoints to a + "0..1 = Use endpoint default\n" + "2..n = Minimum interval n microframes. Use powers of 2.\n"); + ++module_param(cil_force_host, bool, 0644); ++MODULE_PARM_DESC(cil_force_host, "On a connector-ID status change, " ++ "force Host Mode regardless of OTG state."); ++ + /** @page "Module Parameters" + * + * The following parameters may be specified when starting the module. + +From f47a576a2d9f13cd962b80d4c1633ce906403695 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Thu, 4 Jan 2018 23:58:06 +0900 +Subject: [PATCH 162/170] vcsm: Define cache operation constants in user header + +Without this change, users have to use raw values (1, 2, 3) to specify +cache operation. + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vc_sm_knl.h | 5 ----- + include/linux/broadcom/vmcs_sm_ioctl.h | 5 +++++ + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/char/broadcom/vc_sm/vc_sm_knl.h b/drivers/char/broadcom/vc_sm/vc_sm_knl.h +index 4f120421c2d11f7ae46752c38b073a4dfdf712c6..f7f74750d8358779c61dfcd6fc841aa1789a2c5e 100644 +--- a/drivers/char/broadcom/vc_sm/vc_sm_knl.h ++++ b/drivers/char/broadcom/vc_sm/vc_sm_knl.h +@@ -27,11 +27,6 @@ enum vc_sm_lock_cache_mode { + VC_SM_LOCK_NON_CACHED, + }; + +-/* Cache functions */ +-#define VCSM_CACHE_OP_INV 0x01 +-#define VCSM_CACHE_OP_CLEAN 0x02 +-#define VCSM_CACHE_OP_FLUSH 0x03 +- + /* Allocate a shared memory handle and block. */ + int vc_sm_alloc(struct vc_sm_alloc_t *alloc, int *handle); + +diff --git a/include/linux/broadcom/vmcs_sm_ioctl.h b/include/linux/broadcom/vmcs_sm_ioctl.h +index b75729d762f25aace133f7a008633b4094ae2de2..ddbeebc71ada82e88a1668fbdfd9821a39d7cd22 100644 +--- a/include/linux/broadcom/vmcs_sm_ioctl.h ++++ b/include/linux/broadcom/vmcs_sm_ioctl.h +@@ -79,6 +79,11 @@ enum vmcs_sm_cache_e { + VMCS_SM_CACHE_BOTH, + }; + ++/* Cache functions */ ++#define VCSM_CACHE_OP_INV 0x01 ++#define VCSM_CACHE_OP_CLEAN 0x02 ++#define VCSM_CACHE_OP_FLUSH 0x03 ++ + /* IOCTL Data structures */ + struct vmcs_sm_ioctl_alloc { + /* user -> kernel */ + +From 2629d4c9fac78f2b87bd635be087be8ab3795030 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Fri, 5 Jan 2018 00:01:30 +0900 +Subject: [PATCH 163/170] vcsm: Support for finding user/vc handle in memory + pool + +vmcs_sm_{usr,vc}_handle_from_pid_and_address() were failing to find +handle if specified user pointer is not exactly the one that the memory +locking call returned even if the pointer is in range of map/resource. +So fixed the functions to match the range. + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c +index 53843054d7617716761b74d8a3d91551b91ffb75..abd770566ed30102b95a01cec6a3825b23afcd9d 100644 +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -276,7 +276,10 @@ static unsigned int vmcs_sm_vc_handle_from_pid_and_address(unsigned int pid, + /* Lookup the resource. */ + if (!list_empty(&sm_state->map_list)) { + list_for_each_entry(map, &sm_state->map_list, map_list) { +- if (map->res_pid != pid || map->res_addr != addr) ++ if (map->res_pid != pid) ++ continue; ++ if (!(map->res_addr <= addr && ++ addr < map->res_addr + map->resource->res_size)) + continue; + + pr_debug("[%s]: global map %p (pid %u, addr %lx) -> vc-hdl %x (usr-hdl %x)\n", +@@ -326,7 +329,10 @@ static unsigned int vmcs_sm_usr_handle_from_pid_and_address(unsigned int pid, + /* Lookup the resource. */ + if (!list_empty(&sm_state->map_list)) { + list_for_each_entry(map, &sm_state->map_list, map_list) { +- if (map->res_pid != pid || map->res_addr != addr) ++ if (map->res_pid != pid) ++ continue; ++ if (!(map->res_addr <= addr && ++ addr < map->res_addr + map->resource->res_size)) + continue; + + pr_debug("[%s]: global map %p (pid %u, addr %lx) -> usr-hdl %x (vc-hdl %x)\n", + +From 4b2a4cae9b01516518dc85cfe4110105bd843edc Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Fri, 5 Jan 2018 00:44:00 +0900 +Subject: [PATCH 164/170] vcsm: Unify cache manipulating functions + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 309 +++++++++++++++------------------- + 1 file changed, 132 insertions(+), 177 deletions(-) + +diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c +index abd770566ed30102b95a01cec6a3825b23afcd9d..b6cdc1934ad2092892898559f6f0d481a7744fa9 100644 +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -1256,61 +1256,106 @@ static const struct vm_operations_struct vcsm_vm_ops = { + .fault = vcsm_vma_fault, + }; + +-/* Walks a VMA and clean each valid page from the cache */ +-static void vcsm_vma_cache_clean_page_range(unsigned long addr, +- unsigned long end) ++static int clean_invalid_mem_2d(const void __user *addr, ++ const size_t block_count, const size_t block_size, const size_t stride, ++ const unsigned cache_op) + { +- pgd_t *pgd; +- pud_t *pud; +- pmd_t *pmd; +- pte_t *pte; +- unsigned long pgd_next, pud_next, pmd_next; ++ size_t i; ++ void (*op_fn)(const void*, const void*); + +- if (addr >= end) +- return; ++ if (block_size <= 0) { ++ pr_err("[%s]: size cannot be 0\n", __func__); ++ return -EINVAL; ++ } + +- /* Walk PGD */ +- pgd = pgd_offset(current->mm, addr); +- do { +- pgd_next = pgd_addr_end(addr, end); ++ switch (cache_op) { ++ case VCSM_CACHE_OP_INV: ++ op_fn = dmac_inv_range; ++ break; ++ case VCSM_CACHE_OP_CLEAN: ++ op_fn = dmac_clean_range; ++ break; ++ case VCSM_CACHE_OP_FLUSH: ++ op_fn = dmac_flush_range; ++ break; ++ default: ++ pr_err("[%s]: Invalid cache_op: 0x%08x\n", __func__, cache_op); ++ return -EINVAL; ++ } + +- if (pgd_none(*pgd) || pgd_bad(*pgd)) +- continue; ++ for (i = 0; i < block_count; i ++, addr += stride) ++ op_fn(addr, addr + block_size); + +- /* Walk PUD */ +- pud = pud_offset(pgd, addr); +- do { +- pud_next = pud_addr_end(addr, pgd_next); +- if (pud_none(*pud) || pud_bad(*pud)) +- continue; ++ return 0; ++} ++ ++static int clean_invalid_mem(const void __user *addr, const size_t size, ++ const unsigned cache_op) ++{ ++ return clean_invalid_mem_2d(addr, 1, size, 0, cache_op); ++} ++ ++static int clean_invalid_resource(const void __user *addr, const size_t size, ++ const unsigned cache_op, const int usr_hdl, ++ struct sm_resource_t *resource) ++{ ++ int err; ++ enum sm_stats_t stat_attempt, stat_failure; ++ void __user *res_addr; ++ ++ if (resource == NULL) { ++ pr_err("[%s]: resource is NULL\n", __func__); ++ return -EINVAL; ++ } ++ if (resource->res_cached != VMCS_SM_CACHE_HOST && ++ resource->res_cached != VMCS_SM_CACHE_BOTH) ++ return 0; ++ ++ switch (cache_op) { ++ case VCSM_CACHE_OP_INV: ++ stat_attempt = INVALID; ++ stat_failure = INVALID_FAIL; ++ break; ++ case VCSM_CACHE_OP_CLEAN: ++ /* Like the original VMCS_SM_CMD_CLEAN_INVALID ioctl handler does. */ ++ stat_attempt = FLUSH; ++ stat_failure = FLUSH_FAIL; ++ break; ++ case VCSM_CACHE_OP_FLUSH: ++ stat_attempt = FLUSH; ++ stat_failure = FLUSH_FAIL; ++ break; ++ default: ++ pr_err("[%s]: Invalid cache_op: 0x%08x\n", __func__, cache_op); ++ return -EINVAL; ++ } ++ resource->res_stats[stat_attempt]++; ++ ++ if (size > resource->res_size) { ++ pr_err("[%s]: size (0x%08zu) is larger than res_size (0x%08zu)\n", ++ __func__, size, resource->res_size); ++ return -EFAULT; ++ } ++ res_addr = (void __user*) vmcs_sm_usr_address_from_pid_and_usr_handle( ++ current->tgid, usr_hdl); ++ if (res_addr == NULL) { ++ pr_err("[%s]: Failed to get user address " ++ "from pid (%d) and user handle (%d)\n", __func__, current->tgid, ++ resource->res_handle); ++ return -EINVAL; ++ } ++ if (!(res_addr <= addr && addr + size <= res_addr + resource->res_size)) { ++ pr_err("[%s]: Addr (0x%p-0x%p) out of range (0x%p-0x%p)\n", ++ __func__, addr, addr + size, res_addr, ++ res_addr + resource->res_size); ++ return -EFAULT; ++ } ++ ++ err = clean_invalid_mem(addr, size, cache_op); ++ if (err) ++ resource->res_stats[stat_failure]++; + +- /* Walk PMD */ +- pmd = pmd_offset(pud, addr); +- do { +- pmd_next = pmd_addr_end(addr, pud_next); +- if (pmd_none(*pmd) || pmd_bad(*pmd)) +- continue; +- +- /* Walk PTE */ +- pte = pte_offset_map(pmd, addr); +- do { +- if (pte_none(*pte) +- || !pte_present(*pte)) +- continue; +- +- /* Clean + invalidate */ +- dmac_flush_range((const void *) addr, +- (const void *) +- (addr + PAGE_SIZE)); +- +- } while (pte++, addr += +- PAGE_SIZE, addr != pmd_next); +- pte_unmap(pte); +- +- } while (pmd++, addr = pmd_next, addr != pud_next); +- +- } while (pud++, addr = pud_next, addr != pgd_next); +- } while (pgd++, addr = pgd_next, addr != end); ++ return err; + } + + /* Map an allocated data into something that the user space. */ +@@ -1952,14 +1997,13 @@ static int vc_sm_ioctl_unlock(struct sm_priv_data_t *private, + list_for_each_entry(map, &resource->map_list, + resource_map_list) { + if (map->vma) { +- unsigned long start; +- unsigned long end; +- +- start = map->vma->vm_start; +- end = map->vma->vm_end; ++ const unsigned long start = map->vma->vm_start; ++ const unsigned long end = map->vma->vm_end; + +- vcsm_vma_cache_clean_page_range( +- start, end); ++ ret = clean_invalid_mem((void __user*) start, end - start, ++ VCSM_CACHE_OP_FLUSH); ++ if (ret) ++ goto error; + } + } + up_read(¤t->mm->mmap_sem); +@@ -2833,41 +2877,17 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + /* Locate resource from GUID. */ + resource = + vmcs_sm_acquire_resource(file_data, ioparam.handle); +- +- if ((resource != NULL) && resource->res_cached) { +- dma_addr_t phys_addr = 0; +- +- resource->res_stats[FLUSH]++; +- +- phys_addr = +- (dma_addr_t)((uint32_t) +- resource->res_base_mem & +- 0x3FFFFFFF); +- phys_addr += (dma_addr_t)mm_vc_mem_phys_addr; +- +- /* L1 cache flush */ +- down_read(¤t->mm->mmap_sem); +- vcsm_vma_cache_clean_page_range((unsigned long) +- ioparam.addr, +- (unsigned long) +- ioparam.addr + +- ioparam.size); +- up_read(¤t->mm->mmap_sem); +- +- /* L2 cache flush */ +- outer_clean_range(phys_addr, +- phys_addr + +- (size_t) ioparam.size); +- } else if (resource == NULL) { ++ if (resource == NULL) { + ret = -EINVAL; + goto out; + } + +- if (resource) +- vmcs_sm_release_resource(resource, 0); +- +- /* Done. */ +- goto out; ++ ret = clean_invalid_resource((void __user*) ioparam.addr, ++ ioparam.size, VCSM_CACHE_OP_FLUSH, ioparam.handle, ++ resource); ++ vmcs_sm_release_resource(resource, 0); ++ if (ret) ++ goto out; + } + break; + +@@ -2888,41 +2908,16 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + /* Locate resource from GUID. */ + resource = + vmcs_sm_acquire_resource(file_data, ioparam.handle); +- +- if ((resource != NULL) && resource->res_cached) { +- dma_addr_t phys_addr = 0; +- +- resource->res_stats[INVALID]++; +- +- phys_addr = +- (dma_addr_t)((uint32_t) +- resource->res_base_mem & +- 0x3FFFFFFF); +- phys_addr += (dma_addr_t)mm_vc_mem_phys_addr; +- +- /* L2 cache invalidate */ +- outer_inv_range(phys_addr, +- phys_addr + +- (size_t) ioparam.size); +- +- /* L1 cache invalidate */ +- down_read(¤t->mm->mmap_sem); +- vcsm_vma_cache_clean_page_range((unsigned long) +- ioparam.addr, +- (unsigned long) +- ioparam.addr + +- ioparam.size); +- up_read(¤t->mm->mmap_sem); +- } else if (resource == NULL) { ++ if (resource == NULL) { + ret = -EINVAL; + goto out; + } + +- if (resource) +- vmcs_sm_release_resource(resource, 0); +- +- /* Done. */ +- goto out; ++ ret = clean_invalid_resource((void __user*) ioparam.addr, ++ ioparam.size, VCSM_CACHE_OP_INV, ioparam.handle, resource); ++ vmcs_sm_release_resource(resource, 0); ++ if (ret) ++ goto out; + } + break; + +@@ -2941,43 +2936,27 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + goto out; + } + for (i = 0; i < sizeof(ioparam.s) / sizeof(*ioparam.s); i++) { +- switch (ioparam.s[i].cmd) { +- case VCSM_CACHE_OP_INV: /* L1/L2 invalidate virtual range */ +- case VCSM_CACHE_OP_FLUSH: /* L1/L2 clean physical range */ +- case VCSM_CACHE_OP_CLEAN: /* L1/L2 clean+invalidate all */ +- /* Locate resource from GUID. */ +- resource = +- vmcs_sm_acquire_resource(file_data, ioparam.s[i].handle); +- +- if ((resource != NULL) && resource->res_cached) { +- unsigned long base = ioparam.s[i].addr & ~(PAGE_SIZE - 1); +- unsigned long end = (ioparam.s[i].addr + ioparam.s[i].size + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1); +- +- resource->res_stats[ioparam.s[i].cmd == 1 ? INVALID : FLUSH]++; +- +- /* L1/L2 cache flush */ +- down_read(¤t->mm->mmap_sem); +- vcsm_vma_cache_clean_page_range(base, end); +- up_read(¤t->mm->mmap_sem); +- } else if (resource == NULL) { +- ret = -EINVAL; +- goto out; +- } +- +- if (resource) +- vmcs_sm_release_resource(resource, 0); +- +- break; +- default: +- break; /* NOOP */ ++ /* Locate resource from GUID. */ ++ resource = ++ vmcs_sm_acquire_resource(file_data, ioparam.s[i].handle); ++ if (resource == NULL) { ++ ret = -EINVAL; ++ goto out; + } ++ ++ ret = clean_invalid_resource((void __user*) ioparam.s[i].addr, ++ ioparam.s[i].size, ioparam.s[i].cmd, ++ ioparam.s[i].handle, resource); ++ vmcs_sm_release_resource(resource, 0); ++ if (ret) ++ goto out; + } + } + break; + /* Flush/Invalidate the cache for a given mapping. */ + case VMCS_SM_CMD_CLEAN_INVALID2: + { +- int i, j; ++ int i; + struct vmcs_sm_ioctl_clean_invalid2 ioparam; + struct vmcs_sm_ioctl_clean_invalid_block *block = NULL; + +@@ -3006,36 +2985,12 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + + for (i = 0; i < ioparam.op_count; i++) { + const struct vmcs_sm_ioctl_clean_invalid_block * const op = block + i; +- void (*op_fn)(const void *, const void *); +- +- switch(op->invalidate_mode & 3) { +- case VCSM_CACHE_OP_INV: +- op_fn = dmac_inv_range; +- break; +- case VCSM_CACHE_OP_CLEAN: +- op_fn = dmac_clean_range; +- break; +- case VCSM_CACHE_OP_FLUSH: +- op_fn = dmac_flush_range; +- break; +- default: +- op_fn = 0; +- break; +- } +- +- if ((op->invalidate_mode & ~3) != 0) { +- ret = -EINVAL; +- break; +- } +- +- if (op_fn == 0) +- continue; + +- for (j = 0; j < op->block_count; ++j) { +- const char * const base = (const char *)op->start_address + j * op->inter_block_stride; +- const char * const end = base + op->block_size; +- op_fn(base, end); +- } ++ ret = clean_invalid_mem_2d((void __user*) op->start_address, ++ op->block_count, op->block_size, ++ op->inter_block_stride, op->invalidate_mode); ++ if (ret) ++ goto out; + } + kfree(block); + } + +From db8e4449871b29ee6ffc4776b6a7bc907d1d69f1 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Mon, 8 Jan 2018 21:07:17 +0900 +Subject: [PATCH 165/170] vcsm: Fix obscure conditions + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c +index b6cdc1934ad2092892898559f6f0d481a7744fa9..95963ffba51afdbdfec26a8c75eec0f5e0c2f4e1 100644 +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -278,8 +278,8 @@ static unsigned int vmcs_sm_vc_handle_from_pid_and_address(unsigned int pid, + list_for_each_entry(map, &sm_state->map_list, map_list) { + if (map->res_pid != pid) + continue; +- if (!(map->res_addr <= addr && +- addr < map->res_addr + map->resource->res_size)) ++ if (addr < map->res_addr || ++ addr >= (map->res_addr + map->resource->res_size)) + continue; + + pr_debug("[%s]: global map %p (pid %u, addr %lx) -> vc-hdl %x (usr-hdl %x)\n", +@@ -1263,7 +1263,7 @@ static int clean_invalid_mem_2d(const void __user *addr, + size_t i; + void (*op_fn)(const void*, const void*); + +- if (block_size <= 0) { ++ if (!block_size) { + pr_err("[%s]: size cannot be 0\n", __func__); + return -EINVAL; + } + +From 44539876f7062c7342b3b025c71d09974594eb79 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Mon, 8 Jan 2018 21:11:23 +0900 +Subject: [PATCH 166/170] vcsm: Fix memory leaking on clean_invalid2 ioctl + handler + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c +index 95963ffba51afdbdfec26a8c75eec0f5e0c2f4e1..380437f41cc64902c9576e53d0beaf76ccdc1551 100644 +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -2990,7 +2990,7 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + op->block_count, op->block_size, + op->inter_block_stride, op->invalidate_mode); + if (ret) +- goto out; ++ break; + } + kfree(block); + } + +From 38f5c30a2a166f6387dfdedce4ae34d4995378c0 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Mon, 8 Jan 2018 21:15:13 +0900 +Subject: [PATCH 167/170] vcsm: Describe the use of cache operation constants + +Signed-off-by: Sugizaki Yukimasa +--- + include/linux/broadcom/vmcs_sm_ioctl.h | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/include/linux/broadcom/vmcs_sm_ioctl.h b/include/linux/broadcom/vmcs_sm_ioctl.h +index ddbeebc71ada82e88a1668fbdfd9821a39d7cd22..e881fa8ee8e1474cdaa0759b742a5f67c122c9eb 100644 +--- a/include/linux/broadcom/vmcs_sm_ioctl.h ++++ b/include/linux/broadcom/vmcs_sm_ioctl.h +@@ -79,11 +79,6 @@ enum vmcs_sm_cache_e { + VMCS_SM_CACHE_BOTH, + }; + +-/* Cache functions */ +-#define VCSM_CACHE_OP_INV 0x01 +-#define VCSM_CACHE_OP_CLEAN 0x02 +-#define VCSM_CACHE_OP_FLUSH 0x03 +- + /* IOCTL Data structures */ + struct vmcs_sm_ioctl_alloc { + /* user -> kernel */ +@@ -173,6 +168,14 @@ struct vmcs_sm_ioctl_cache { + unsigned int size; + }; + ++/* ++ * Cache functions to be set to struct vmcs_sm_ioctl_clean_invalid cmd and ++ * vmcs_sm_ioctl_clean_invalid2 invalidate_mode. ++ */ ++#define VCSM_CACHE_OP_INV 0x01 ++#define VCSM_CACHE_OP_CLEAN 0x02 ++#define VCSM_CACHE_OP_FLUSH 0x03 ++ + struct vmcs_sm_ioctl_clean_invalid { + /* user -> kernel */ + struct { + +From d48cf46d3951d9244866d79437e1c5d89071dcee Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Tue, 9 Jan 2018 12:33:24 +0900 +Subject: [PATCH 168/170] vcsm: Fix obscure conditions again + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c +index 380437f41cc64902c9576e53d0beaf76ccdc1551..0d14c511da2ab8f542d51ad87746be854d5180dc 100644 +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -331,8 +331,8 @@ static unsigned int vmcs_sm_usr_handle_from_pid_and_address(unsigned int pid, + list_for_each_entry(map, &sm_state->map_list, map_list) { + if (map->res_pid != pid) + continue; +- if (!(map->res_addr <= addr && +- addr < map->res_addr + map->resource->res_size)) ++ if (addr < map->res_addr || ++ addr >= (map->res_addr + map->resource->res_size)) + continue; + + pr_debug("[%s]: global map %p (pid %u, addr %lx) -> usr-hdl %x (vc-hdl %x)\n", + +From e443d90b683a8e44ccaff305d8134ea21d506702 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Wed, 10 Jan 2018 04:32:20 +0900 +Subject: [PATCH 169/170] vcsm: Add no-op cache operation constant + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 10 ++++++++++ + include/linux/broadcom/vmcs_sm_ioctl.h | 1 + + 2 files changed, 11 insertions(+) + +diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c +index 0d14c511da2ab8f542d51ad87746be854d5180dc..122ea149790b549aa7550ddb9cff64dc2195fc61 100644 +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -1269,6 +1269,8 @@ static int clean_invalid_mem_2d(const void __user *addr, + } + + switch (cache_op) { ++ case VCSM_CACHE_OP_NOP: ++ return 0; + case VCSM_CACHE_OP_INV: + op_fn = dmac_inv_range; + break; +@@ -1312,6 +1314,8 @@ static int clean_invalid_resource(const void __user *addr, const size_t size, + return 0; + + switch (cache_op) { ++ case VCSM_CACHE_OP_NOP: ++ return 0; + case VCSM_CACHE_OP_INV: + stat_attempt = INVALID; + stat_failure = INVALID_FAIL; +@@ -2936,6 +2940,9 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + goto out; + } + for (i = 0; i < sizeof(ioparam.s) / sizeof(*ioparam.s); i++) { ++ if (ioparam.s[i].cmd == VCSM_CACHE_OP_NOP) ++ break; ++ + /* Locate resource from GUID. */ + resource = + vmcs_sm_acquire_resource(file_data, ioparam.s[i].handle); +@@ -2989,6 +2996,9 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + ret = clean_invalid_mem_2d((void __user*) op->start_address, + op->block_count, op->block_size, + op->inter_block_stride, op->invalidate_mode); ++ if (op->invalidate_mode == VCSM_CACHE_OP_NOP) ++ continue; ++ + if (ret) + break; + } +diff --git a/include/linux/broadcom/vmcs_sm_ioctl.h b/include/linux/broadcom/vmcs_sm_ioctl.h +index e881fa8ee8e1474cdaa0759b742a5f67c122c9eb..a4492b921b48e2c7fdd2745f2d2bad4846a15cdc 100644 +--- a/include/linux/broadcom/vmcs_sm_ioctl.h ++++ b/include/linux/broadcom/vmcs_sm_ioctl.h +@@ -172,6 +172,7 @@ struct vmcs_sm_ioctl_cache { + * Cache functions to be set to struct vmcs_sm_ioctl_clean_invalid cmd and + * vmcs_sm_ioctl_clean_invalid2 invalidate_mode. + */ ++#define VCSM_CACHE_OP_NOP 0x00 + #define VCSM_CACHE_OP_INV 0x01 + #define VCSM_CACHE_OP_CLEAN 0x02 + #define VCSM_CACHE_OP_FLUSH 0x03 + +From fc66fc5705db7642cbbdf2111e89b920e5e57f22 Mon Sep 17 00:00:00 2001 +From: Sugizaki Yukimasa +Date: Wed, 10 Jan 2018 06:25:51 +0900 +Subject: [PATCH 170/170] vcsm: Revert to do page-table-walk-based cache + manipulating on some ioctl calls + +On FLUSH, INVALID, CLEAN_INVALID ioctl calls, cache operations based on +page table walk were used in case that the buffer of the cache is not +pinned. So reverted to do page-table-based cache manipulating. + +Signed-off-by: Sugizaki Yukimasa +--- + drivers/char/broadcom/vc_sm/vmcs_sm.c | 141 ++++++++++++++++++++++++++-------- + 1 file changed, 110 insertions(+), 31 deletions(-) + +diff --git a/drivers/char/broadcom/vc_sm/vmcs_sm.c b/drivers/char/broadcom/vc_sm/vmcs_sm.c +index 122ea149790b549aa7550ddb9cff64dc2195fc61..1bc37ee882255c0d05beac58bb3b9e31c62e9e42 100644 +--- a/drivers/char/broadcom/vc_sm/vmcs_sm.c ++++ b/drivers/char/broadcom/vc_sm/vmcs_sm.c +@@ -1256,7 +1256,33 @@ static const struct vm_operations_struct vcsm_vm_ops = { + .fault = vcsm_vma_fault, + }; + +-static int clean_invalid_mem_2d(const void __user *addr, ++/* Converts VCSM_CACHE_OP_* to an operating function. */ ++static void (*cache_op_to_func(const unsigned cache_op)) ++ (const void*, const void*) ++{ ++ switch (cache_op) { ++ case VCSM_CACHE_OP_NOP: ++ return NULL; ++ ++ case VCSM_CACHE_OP_INV: ++ return dmac_inv_range; ++ ++ case VCSM_CACHE_OP_CLEAN: ++ return dmac_clean_range; ++ ++ case VCSM_CACHE_OP_FLUSH: ++ return dmac_flush_range; ++ ++ default: ++ pr_err("[%s]: Invalid cache_op: 0x%08x\n", __func__, cache_op); ++ return NULL; ++ } ++} ++ ++/* ++ * Clean/invalid/flush cache of which buffer is already pinned (i.e. accessed). ++ */ ++static int clean_invalid_contiguous_mem_2d(const void __user *addr, + const size_t block_count, const size_t block_size, const size_t stride, + const unsigned cache_op) + { +@@ -1268,22 +1294,9 @@ static int clean_invalid_mem_2d(const void __user *addr, + return -EINVAL; + } + +- switch (cache_op) { +- case VCSM_CACHE_OP_NOP: +- return 0; +- case VCSM_CACHE_OP_INV: +- op_fn = dmac_inv_range; +- break; +- case VCSM_CACHE_OP_CLEAN: +- op_fn = dmac_clean_range; +- break; +- case VCSM_CACHE_OP_FLUSH: +- op_fn = dmac_flush_range; +- break; +- default: +- pr_err("[%s]: Invalid cache_op: 0x%08x\n", __func__, cache_op); ++ op_fn = cache_op_to_func(cache_op); ++ if (op_fn == NULL) + return -EINVAL; +- } + + for (i = 0; i < block_count; i ++, addr += stride) + op_fn(addr, addr + block_size); +@@ -1291,14 +1304,73 @@ static int clean_invalid_mem_2d(const void __user *addr, + return 0; + } + +-static int clean_invalid_mem(const void __user *addr, const size_t size, ++/* Clean/invalid/flush cache of which buffer may be non-pinned. */ ++/* The caller must lock current->mm->mmap_sem for read. */ ++static int clean_invalid_mem_walk(unsigned long addr, const size_t size, + const unsigned cache_op) + { +- return clean_invalid_mem_2d(addr, 1, size, 0, cache_op); ++ pgd_t *pgd; ++ pud_t *pud; ++ pmd_t *pmd; ++ pte_t *pte; ++ unsigned long pgd_next, pud_next, pmd_next; ++ const unsigned long end = ALIGN(addr + size, PAGE_SIZE); ++ void (*op_fn)(const void*, const void*); ++ ++ addr &= PAGE_MASK; ++ ++ if (addr >= end) ++ return 0; ++ ++ op_fn = cache_op_to_func(cache_op); ++ if (op_fn == NULL) ++ return -EINVAL; ++ ++ /* Walk PGD */ ++ pgd = pgd_offset(current->mm, addr); ++ do { ++ pgd_next = pgd_addr_end(addr, end); ++ ++ if (pgd_none(*pgd) || pgd_bad(*pgd)) ++ continue; ++ ++ /* Walk PUD */ ++ pud = pud_offset(pgd, addr); ++ do { ++ pud_next = pud_addr_end(addr, pgd_next); ++ if (pud_none(*pud) || pud_bad(*pud)) ++ continue; ++ ++ /* Walk PMD */ ++ pmd = pmd_offset(pud, addr); ++ do { ++ pmd_next = pmd_addr_end(addr, pud_next); ++ if (pmd_none(*pmd) || pmd_bad(*pmd)) ++ continue; ++ ++ /* Walk PTE */ ++ pte = pte_offset_map(pmd, addr); ++ do { ++ if (pte_none(*pte) || !pte_present(*pte)) ++ continue; ++ ++ op_fn((const void __user*) addr, ++ (const void __user*) (addr + PAGE_SIZE)); ++ } while (pte++, addr += PAGE_SIZE, addr != pmd_next); ++ pte_unmap(pte); ++ ++ } while (pmd++, addr = pmd_next, addr != pud_next); ++ ++ } while (pud++, addr = pud_next, addr != pgd_next); ++ ++ } while (pgd++, addr = pgd_next, addr != end); ++ ++ return 0; + } + +-static int clean_invalid_resource(const void __user *addr, const size_t size, +- const unsigned cache_op, const int usr_hdl, ++/* Clean/invalid/flush cache of buffer in resource */ ++static int clean_invalid_resource_walk(const void __user *addr, ++ const size_t size, const unsigned cache_op, const int usr_hdl, + struct sm_resource_t *resource) + { + int err; +@@ -1355,7 +1427,10 @@ static int clean_invalid_resource(const void __user *addr, const size_t size, + return -EFAULT; + } + +- err = clean_invalid_mem(addr, size, cache_op); ++ down_read(¤t->mm->mmap_sem); ++ err = clean_invalid_mem_walk((unsigned long) addr, size, cache_op); ++ up_read(¤t->mm->mmap_sem); ++ + if (err) + resource->res_stats[stat_failure]++; + +@@ -2004,7 +2079,7 @@ static int vc_sm_ioctl_unlock(struct sm_priv_data_t *private, + const unsigned long start = map->vma->vm_start; + const unsigned long end = map->vma->vm_end; + +- ret = clean_invalid_mem((void __user*) start, end - start, ++ ret = clean_invalid_mem_walk(start, end - start, + VCSM_CACHE_OP_FLUSH); + if (ret) + goto error; +@@ -2886,7 +2961,7 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + goto out; + } + +- ret = clean_invalid_resource((void __user*) ioparam.addr, ++ ret = clean_invalid_resource_walk((void __user*) ioparam.addr, + ioparam.size, VCSM_CACHE_OP_FLUSH, ioparam.handle, + resource); + vmcs_sm_release_resource(resource, 0); +@@ -2917,7 +2992,7 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + goto out; + } + +- ret = clean_invalid_resource((void __user*) ioparam.addr, ++ ret = clean_invalid_resource_walk((void __user*) ioparam.addr, + ioparam.size, VCSM_CACHE_OP_INV, ioparam.handle, resource); + vmcs_sm_release_resource(resource, 0); + if (ret) +@@ -2951,16 +3026,19 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + goto out; + } + +- ret = clean_invalid_resource((void __user*) ioparam.s[i].addr, +- ioparam.s[i].size, ioparam.s[i].cmd, +- ioparam.s[i].handle, resource); ++ ret = clean_invalid_resource_walk( ++ (void __user*) ioparam.s[i].addr, ioparam.s[i].size, ++ ioparam.s[i].cmd, ioparam.s[i].handle, resource); + vmcs_sm_release_resource(resource, 0); + if (ret) + goto out; + } + } + break; +- /* Flush/Invalidate the cache for a given mapping. */ ++ /* ++ * Flush/Invalidate the cache for a given mapping. ++ * Blocks must be pinned (i.e. accessed) before this call. ++ */ + case VMCS_SM_CMD_CLEAN_INVALID2: + { + int i; +@@ -2993,12 +3071,13 @@ static long vc_sm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + for (i = 0; i < ioparam.op_count; i++) { + const struct vmcs_sm_ioctl_clean_invalid_block * const op = block + i; + +- ret = clean_invalid_mem_2d((void __user*) op->start_address, +- op->block_count, op->block_size, +- op->inter_block_stride, op->invalidate_mode); + if (op->invalidate_mode == VCSM_CACHE_OP_NOP) + continue; + ++ ret = clean_invalid_contiguous_mem_2d( ++ (void __user*) op->start_address, op->block_count, ++ op->block_size, op->inter_block_stride, ++ op->invalidate_mode); + if (ret) + break; + }