From 86fe0ad3b0a961481a7fd888ff0d23677f836097 Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: May 23 2021 11:02:32 +0000 Subject: Update to 5.10.38 --- diff --git a/SOURCES/rpi-5.10.x.patch b/SOURCES/rpi-5.10.x.patch index 0641112..4761455 100644 --- a/SOURCES/rpi-5.10.x.patch +++ b/SOURCES/rpi-5.10.x.patch @@ -1,7 +1,7 @@ -From 92c96deebde64d4b60dcec7ef6e01a187da9f9a9 Mon Sep 17 00:00:00 2001 +From 6c19a1fa66e99a42b71033e40bb3bb1b9ef7a0a3 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 001/661] arm: partially revert +Subject: [PATCH 001/693] arm: partially revert 702b94bff3c50542a6e4ab9a4f4cef093262fe65 * Re-expose some dmi APIs for use in VCSM @@ -109,10 +109,10 @@ index e21249548e9f..33e4a9b8f1ba 100644 2.18.4 -From 7b437e03db09e1b7591cd252940a339cdd8a77c6 Mon Sep 17 00:00:00 2001 +From d229506a9b6c1323e7ea10830a4e8207049ab8f7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Oct 2018 14:45:45 +0000 -Subject: [PATCH 002/661] Revert "rtc: pcf8523: properly handle oscillator stop +Subject: [PATCH 002/693] Revert "rtc: pcf8523: properly handle oscillator stop bit" This reverts commit ede44c908d44b166a5b6bd7caacd105c2ff5a70f. @@ -171,10 +171,10 @@ index 57d351dfe272..0aa1e8f9ee75 100644 2.18.4 -From 58c9965d7406a8035a71d08e4ac5fd24265ac9ab Mon Sep 17 00:00:00 2001 +From 1eb83bcf8c38ae18bc2420ec453464c2f5dfe139 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 15 Mar 2019 21:11:10 +0000 -Subject: [PATCH 003/661] Revert "staging: bcm2835-audio: Drop DT dependency" +Subject: [PATCH 003/693] Revert "staging: bcm2835-audio: Drop DT dependency" This reverts commit b7491a9fca2dc2535b9dc922550a37c5baae9d3d. --- @@ -273,10 +273,10 @@ index c250fbef2fa3..b42917c25050 100644 2.18.4 -From c8eaf9019028945b0eadfa7307329c5471a79666 Mon Sep 17 00:00:00 2001 +From 976119a79be2f29dc3a659f99290e635fdcfe0bd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 13:41:10 +0100 -Subject: [PATCH 004/661] Revert "spi: spidev: Fix CS polarity if GPIO +Subject: [PATCH 004/693] Revert "spi: spidev: Fix CS polarity if GPIO descriptors are used" This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28. @@ -311,10 +311,10 @@ index 859910ec8d9f..225577709c03 100644 2.18.4 -From e17f64d33f584b592ccfad7ba1db0acceec81612 Mon Sep 17 00:00:00 2001 +From d5b2121b0239ed0263c48af37dc68250bd0d181c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Nov 2020 11:49:53 +0000 -Subject: [PATCH 005/661] Revert "mailbox: avoid timer start from callback" +Subject: [PATCH 005/693] Revert "mailbox: avoid timer start from callback" This reverts commit c7dacf5b0f32957b24ef29df1207dc2cd8307743. @@ -375,10 +375,10 @@ index 3e7d4b20ab34..0b821a5b2db8 100644 2.18.4 -From 5d15dacd850e0d8220c4349253072a77f4b961ef Mon Sep 17 00:00:00 2001 +From 92e19dcb2746a0bd195f76e842854b7984d19404 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 006/661] smsx95xx: fix crimes against truesize +Subject: [PATCH 006/693] 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. @@ -428,10 +428,10 @@ index ea0d5f04dc3a..a7591ceca30f 100644 2.18.4 -From 2426bdac66f4dc1924a6c191eeb0262a45b7dd15 Mon Sep 17 00:00:00 2001 +From 9d5f8d9f1efcea8fd5f05a84add30db10ed04fc9 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 007/661] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 007/693] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -477,10 +477,10 @@ index a7591ceca30f..d16620941d76 100644 2.18.4 -From f93f9d880a36c913e099e5779df7eefdf5078986 Mon Sep 17 00:00:00 2001 +From b0e101cd6d083ad5752cd41e4459e6192bf29061 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 008/661] Allow mac address to be set in smsc95xx +Subject: [PATCH 008/693] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -579,10 +579,10 @@ index d16620941d76..09d4c1963b2c 100644 2.18.4 -From 50a5fc955768f1513e33e11d710789da96fc0a63 Mon Sep 17 00:00:00 2001 +From 79052106e2f0992ceefdf8539e493c2314c1b37f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 009/661] Protect __release_resource against resources without +Subject: [PATCH 009/693] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -593,7 +593,7 @@ Signed-off-by: Phil Elwell 1 file changed, 6 insertions(+) diff --git a/kernel/resource.c b/kernel/resource.c -index 3ae2f56cc79d..2f1a85c23e8b 100644 +index 817545ff80b9..375a43d99b28 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -214,6 +214,12 @@ static int __release_resource(struct resource *old, bool release_child) @@ -613,10 +613,10 @@ index 3ae2f56cc79d..2f1a85c23e8b 100644 2.18.4 -From c84d7b934972bd8131dfc4c3c5be3eeb6dd725fb Mon Sep 17 00:00:00 2001 +From 8c8202ed0daf723e4d5181146fdc73d1d29dd5c0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 010/661] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 010/693] irq-bcm2836: Avoid "Invalid trigger warning" Initialise the level for each IRQ to avoid a warning from the arm arch timer code. @@ -643,10 +643,10 @@ index cbc7c740e4dc..f4247c257581 100644 2.18.4 -From 5c7e0bb6d34dd5b2106be9bde0259003aa4184cb Mon Sep 17 00:00:00 2001 +From ae0d7b1119f66c6865a2f64da1443b8dfdfca318 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 011/661] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 011/693] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -778,10 +778,10 @@ index a1e004af23e7..50a03f8c9c57 100644 2.18.4 -From b18418489ead08a427f8d896ae9502c3fe16b490 Mon Sep 17 00:00:00 2001 +From f3e308a9e1832c1ee713f7dacf1ba7a9db7afdcc 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 012/661] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 012/693] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -883,10 +883,10 @@ index 50a03f8c9c57..b3219aa763a6 100644 2.18.4 -From 9b30ab661010002bfa11073e0be886b1a14285ea Mon Sep 17 00:00:00 2001 +From 061e36d0d2455022ff19aeb50f2c9fc87eae8881 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 013/661] spi: spidev: Completely disable the spidev warning +Subject: [PATCH 013/693] spi: spidev: Completely disable the spidev warning An alternative strategy would be to use "rpi,spidev" instead, but that would require many Raspberry Pi Device Tree changes. @@ -913,10 +913,10 @@ index 225577709c03..a262479f0a92 100644 2.18.4 -From 4e5f446c9b9ce542cd457c93b9ce15f379bba3aa Mon Sep 17 00:00:00 2001 +From 47ab7188e6358f97397077eca60790e5f36f9711 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 014/661] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 014/693] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1022,10 +1022,10 @@ index 630dfbb01a40..bf7ba96a39f9 100644 2.18.4 -From f171a612eba6bb998beab40d275683991fc569c7 Mon Sep 17 00:00:00 2001 +From bc2d85a57ea12da3a7486174afe8a428d59d8393 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 015/661] firmware: Updated mailbox header +Subject: [PATCH 015/693] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 3 +++ @@ -1055,10 +1055,10 @@ index cc9cdbc66403..212cceffcc5c 100644 2.18.4 -From 256a7220aa57acfcb2cf6c9a303e14e76489541d Mon Sep 17 00:00:00 2001 +From 73edd0c757b2093c55203052ccd691254542aed7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 016/661] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 016/693] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -1081,10 +1081,10 @@ index c3691fa4210e..ead1fd376d2d 100644 2.18.4 -From cd110cfebb665580114872c37a1a1105cf2af1f4 Mon Sep 17 00:00:00 2001 +From 1d9c245eeb73f3d7966a5967ad7ecff0490be158 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 017/661] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 017/693] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1189,10 +1189,10 @@ index dec6ca019bea..62937e6f83ca 100644 2.18.4 -From 108c7397eab1d9c50c261e543af007cc032d854f Mon Sep 17 00:00:00 2001 +From 578662ea4bc94764fcc68e3ed6094f3912a32311 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 018/661] reboot: Use power off rather than busy spinning when +Subject: [PATCH 018/693] reboot: Use power off rather than busy spinning when halt is requested --- @@ -1218,10 +1218,10 @@ index 0ce388f15422..63373adab475 100644 2.18.4 -From f50dd7efd7210aeee747c69ce89e17bc592d5d60 Mon Sep 17 00:00:00 2001 +From 3b473aa905ded6ec55c051c60bec7e6fed0114ce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 019/661] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 019/693] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -1243,10 +1243,10 @@ index 24f92a6e882a..a6a705ec30c7 100644 2.18.4 -From 8e3b337df359e1439c5935904d897ab91e417056 Mon Sep 17 00:00:00 2001 +From 1815f9944228589fc968a20b5231397a7b984dd2 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 020/661] Register the clocks early during the boot process, so +Subject: [PATCH 020/693] 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. @@ -1294,10 +1294,10 @@ index 1ac803e14fa3..2482458795c2 100644 2.18.4 -From 5c3ce0bee18e801ad47ab5ff30545d1c799ca006 Mon Sep 17 00:00:00 2001 +From 1942f1aa6d4f2a38138b69501d0c2c489b207b69 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 021/661] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 021/693] bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it --- @@ -1325,10 +1325,10 @@ index 1a7c43b43c6b..ee47667d0710 100644 2.18.4 -From b488c8bdfa75e1abda8a30fe63fec01fb9bf2655 Mon Sep 17 00:00:00 2001 +From e447b06124dc58aead65a96c68f71177b40fb073 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 022/661] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 022/693] 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 @@ -1359,10 +1359,10 @@ index 2482458795c2..0f716cb070a7 100644 2.18.4 -From 49c159236afb951abe488b3e813be6d14622324d Mon Sep 17 00:00:00 2001 +From 5cc34bad3775a848ebd37c49969a48c984af79fd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 023/661] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 023/693] 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, @@ -1485,10 +1485,10 @@ index 0f716cb070a7..50f018fbb562 100644 2.18.4 -From 5f5e451bffd8162b907fd80f788bb567872ff45d Mon Sep 17 00:00:00 2001 +From 9c953848f339029d7be4ec12d3f21a404ebd4169 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 024/661] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 024/693] 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 @@ -1606,10 +1606,10 @@ index 50f018fbb562..f1ef788c1194 100644 2.18.4 -From b67e3fa54a64f568fd0b7a78e1cdcc3dc8ed12c2 Mon Sep 17 00:00:00 2001 +From 5427f3ffd2814f5db73479ce43ef496f54804034 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 025/661] sound: Demote deferral errors to INFO level +Subject: [PATCH 025/693] 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. @@ -1647,10 +1647,10 @@ index bf65cba232e6..a6c553de5e72 100644 2.18.4 -From 90f7e340743bb856ee4047b81409c0699234a234 Mon Sep 17 00:00:00 2001 +From fc342d22fd9c6f562b28dbe959ba6457e98f70a5 Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 026/661] Update vfpmodule.c +Subject: [PATCH 026/693] 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 @@ -1790,10 +1790,10 @@ index 2cb355c1b5b7..1e2dcf81aefa 100644 2.18.4 -From 7aaa5b0f57dadd34bec1f85e5315e71d0e9984bf Mon Sep 17 00:00:00 2001 +From 86f4735bf3bfa8a8122a012df0f6fb4a33a57b83 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 027/661] i2c: bcm2835: Add debug support +Subject: [PATCH 027/693] i2c: bcm2835: Add debug support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -1985,10 +1985,10 @@ index 37443edbf754..18b2e9e3d752 100644 2.18.4 -From 2fd90c156486328abecdd6be58a7b22b37d3e8d2 Mon Sep 17 00:00:00 2001 +From 4eee1e12b86147fd68aee478d712844e50e67de1 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 028/661] mm: Remove the PFN busy warning +Subject: [PATCH 028/693] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -2016,10 +2016,10 @@ index 7ffa706e5c30..72014a592036 100644 2.18.4 -From ae3aea0c474ee84e00316f1e189ee8d38f89463e Mon Sep 17 00:00:00 2001 +From 83318de3fa37b3af446163cf5f374c5c0c496c9d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Jan 2018 16:52:45 +0000 -Subject: [PATCH 029/661] irqchip: irq-bcm2836: Remove regmap and syscon use +Subject: [PATCH 029/693] irqchip: irq-bcm2836: Remove regmap and syscon use The syscon node defines a register range that duplicates that used by the local_intc node on bcm2836/7. Since irq-bcm2835 and irq-bcm2836 are @@ -2136,10 +2136,10 @@ index f4247c257581..2187672e5be3 100644 2.18.4 -From 9d0a2d50172710fa4f5befcceaea8152fca2bd70 Mon Sep 17 00:00:00 2001 +From c1868e43cf0c8e043952090ed629756c029386f7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Oct 2017 15:04:29 +0100 -Subject: [PATCH 030/661] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 030/693] 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 @@ -2190,10 +2190,10 @@ index 65b315bc60ab..306bf917d4ed 100644 2.18.4 -From 96cd7f2210babb1c00e4ac7f3b7e35af420179f2 Mon Sep 17 00:00:00 2001 +From 8580c61549cbf28059a85fd5ecc454b18eea4172 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 031/661] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 031/693] 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 @@ -2225,10 +2225,10 @@ index 87dc3fc15694..fe48193de094 100644 2.18.4 -From 8b7d1ec6558a018e77663c4873ab328ce23bf256 Mon Sep 17 00:00:00 2001 +From b05e1b4682c94956eb6e017334128aca04730278 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 032/661] amba_pl011: Round input clock up +Subject: [PATCH 032/693] 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 @@ -2317,10 +2317,10 @@ index fe48193de094..339ecce1ad0d 100644 2.18.4 -From a496e2b095c24115416540b6f3f6bde34c44b373 Mon Sep 17 00:00:00 2001 +From c6b1d840d7ee659637c30b1be0c611d56c9d7735 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 033/661] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 033/693] 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 @@ -2350,10 +2350,10 @@ index 339ecce1ad0d..afb0175bf592 100644 2.18.4 -From 8cbc03c2e19ed15c029cf67bc536ece5a013b819 Mon Sep 17 00:00:00 2001 +From 0e16b518b1bf17572742638a112947965fa7f477 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 034/661] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 034/693] 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 @@ -2408,10 +2408,10 @@ index afb0175bf592..17ef9c2a4d72 100644 2.18.4 -From ee50da3c469ae04c4c47b892b79d6aa0bced5f9a Mon Sep 17 00:00:00 2001 +From f9c3e04e5e63adbbce25e9683ae1ae9b04015207 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jul 2019 13:13:39 +0100 -Subject: [PATCH 035/661] tty: amba-pl011: Make TX optimisation conditional +Subject: [PATCH 035/693] tty: amba-pl011: Make TX optimisation conditional pl011_tx_chars takes a "from_irq" parameter to reduce the number of register accesses. When from_irq is true the function assumes that the @@ -2499,10 +2499,10 @@ index 17ef9c2a4d72..8b1f8167c85d 100644 2.18.4 -From b78c1b2bde1ba984803fa209f49d8f44dd44db1d Mon Sep 17 00:00:00 2001 +From 3ec1593876c57be9d587abbbe120ebb5e6a3be7f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jan 2020 11:38:28 +0000 -Subject: [PATCH 036/661] tty: amba-pl011: Add un/throttle support +Subject: [PATCH 036/693] tty: amba-pl011: Add un/throttle support The PL011 driver lacks throttle and unthrottle methods. As a result, sending more data to the Pi than it can immediately sink while CRTSCTS @@ -2566,10 +2566,10 @@ index 8b1f8167c85d..9df9bc8f9dfd 100644 2.18.4 -From e9f16bea03537ef0aaa0f8fb3b10fe126f828bba Mon Sep 17 00:00:00 2001 +From 719c05c701aeeb9e5a71e2d8daee636b28b7e4cb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jan 2020 09:35:19 +0000 -Subject: [PATCH 037/661] tty: amba-pl011: Avoid rare write-when-full error +Subject: [PATCH 037/693] tty: amba-pl011: Avoid rare write-when-full error Under some circumstances on BCM283x processors data loss can be observed - a single byte missing from the TX output stream. These bytes @@ -2614,10 +2614,10 @@ index 9df9bc8f9dfd..760301512509 100644 2.18.4 -From f1f54b650da2c95b858449ba4a224e230ddafd54 Mon Sep 17 00:00:00 2001 +From 7342e7e4e4f37248360583106e4c31887f412f96 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 038/661] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 038/693] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -2642,10 +2642,10 @@ index 1d21129f7751..bbf761c41dc5 100644 2.18.4 -From e8a22fbd175db884e42d1eacec605e750dc6bc1e Mon Sep 17 00:00:00 2001 +From 2b6b7112d349b381dfb56feae25db363893f4624 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 039/661] Main bcm2708/bcm2709 linux port +Subject: [PATCH 039/693] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -2804,10 +2804,10 @@ index 39761d190545..9766d8b50778 100644 2.18.4 -From bbe7955a5d1d2d51ad6c16f1e36caf100d35e0d6 Mon Sep 17 00:00:00 2001 +From c81da1840a211b35bb4baa08ad7b6810d35b1601 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 040/661] Add dwc_otg driver +Subject: [PATCH 040/693] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -3936,7 +3936,7 @@ index 26f9fb9f67ca..fe8c7a85e141 100644 return i; } diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 17202b2ee063..b4b0bb640118 100644 +index 228e3d4e1a9f..8bb0087ad5d5 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -5444,7 +5444,7 @@ static void port_event(struct usb_hub *hub, int port1) @@ -64627,10 +64627,10 @@ index 000000000000..cdc9963176e5 2.18.4 -From 2bdf626f24c19d1dc59cc477e27e3d843e21052c Mon Sep 17 00:00:00 2001 +From 54369efc514e0e71ffa9f2cf76c270481b5817e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 041/661] bcm2708 framebuffer driver +Subject: [PATCH 041/693] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -68201,10 +68201,10 @@ index 212cceffcc5c..2f5509d53fc3 100644 2.18.4 -From 309383af22fd7113227534d387060390b665ae42 Mon Sep 17 00:00:00 2001 +From cc91a0f1f4f784183bbfeb98bdb2885e905a162b Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 14 Mar 2019 13:27:54 +0000 -Subject: [PATCH 042/661] Pulled in the multi frame buffer support from the Pi3 +Subject: [PATCH 042/693] Pulled in the multi frame buffer support from the Pi3 repo --- @@ -69036,10 +69036,10 @@ index 2f5509d53fc3..16253b6875c9 100644 2.18.4 -From e1b9459595a1ab195d4f5499a0ea4eacce61ff1a Mon Sep 17 00:00:00 2001 +From 25082386491e6e4b19d0a4599d292d0c8af699fd Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 043/661] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 043/693] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -69383,10 +69383,10 @@ index 4c14e8be7267..3c6f12b76214 100644 2.18.4 -From 8b06a53b6d2acf11bda6cb5fcc27b8301cec1a1b Mon Sep 17 00:00:00 2001 +From 15745ca49edc23c8c860cfa09453f2279bf52d3c Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 044/661] Speed up console framebuffer imageblit function +Subject: [PATCH 044/693] 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 @@ -69598,10 +69598,10 @@ index a2bb276a8b24..436494fba15a 100644 2.18.4 -From ad2b13be43a5d85342428f30f3c27b412a8a3f63 Mon Sep 17 00:00:00 2001 +From 36fb1ffdef1817789ce85c0f5fa00077468820c2 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 045/661] dmaengine: Add support for BCM2708 +Subject: [PATCH 045/693] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70252,10 +70252,10 @@ index 000000000000..6ca874d332a8 2.18.4 -From 441f1efa8f530d76296210c643627613a08ebfcd Mon Sep 17 00:00:00 2001 +From b8710ad4cc7f636d48f1a4519b6d37be04af3737 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 046/661] MMC: added alternative MMC driver +Subject: [PATCH 046/693] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70460,7 +70460,7 @@ Signed-off-by: Yaroslav Rosomakho create mode 100644 drivers/mmc/host/bcm2835-mmc.c diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c -index 42e27a298218..c29d7c74c112 100644 +index 3246598e4d7e..5ab9b118805b 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -165,6 +165,13 @@ static DEFINE_MUTEX(open_lock); @@ -70477,7 +70477,7 @@ index 42e27a298218..c29d7c74c112 100644 static inline int mmc_blk_part_switch(struct mmc_card *card, unsigned int part_type); static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, -@@ -2874,6 +2881,7 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2890,6 +2897,7 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md, *part_md; char cap_str[10]; @@ -70485,7 +70485,7 @@ index 42e27a298218..c29d7c74c112 100644 /* * Check that the card supports the command class(es) we need. -@@ -2881,7 +2889,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2897,7 +2905,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -70503,7 +70503,7 @@ index 42e27a298218..c29d7c74c112 100644 card->complete_wq = alloc_workqueue("mmc_complete", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); -@@ -2896,9 +2913,14 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2912,9 +2929,14 @@ static int mmc_blk_probe(struct mmc_card *card) string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, cap_str, sizeof(cap_str)); @@ -70521,7 +70521,7 @@ index 42e27a298218..c29d7c74c112 100644 if (mmc_blk_alloc_parts(card, md)) goto out; diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c -index d42037f0f10d..1c240fe55614 100644 +index eaf4810fe656..df3b8ade6cd8 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -1871,7 +1871,8 @@ EXPORT_SYMBOL(mmc_erase); @@ -72204,10 +72204,10 @@ index 42df06c6b19c..e7f45a2b0c72 100644 2.18.4 -From 53bc279720c62d220b91fe92fce1c70d32212ce6 Mon Sep 17 00:00:00 2001 +From 909fb20dfb4a41e442ebdf4e3a8e249683cc1cdf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 047/661] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 047/693] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -74696,10 +74696,10 @@ index 000000000000..7caba5e12f79 2.18.4 -From 5a4785388cb9c3452b85b58a2bfc6e3bcca6ef02 Mon Sep 17 00:00:00 2001 +From 88deb455b80a2b6d5f17964b0df06fe1033072a4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 048/661] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 048/693] vc_mem: Add vc_mem driver for querying firmware memory addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -75200,10 +75200,10 @@ index 000000000000..3c7079237496 2.18.4 -From 5b0b8049238066ebeb3521ce32ce4ec5f632ecdd Mon Sep 17 00:00:00 2001 +From 56742a1270900d54ab41db9db95a7a9d88ade808 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 049/661] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 049/693] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -75510,10 +75510,10 @@ index 000000000000..f5e7f1ba8fb6 2.18.4 -From af0aa51a4c02c97c1a3262a23e39fc64838c5200 Mon Sep 17 00:00:00 2001 +From 535422d53dc92f25583c2d97750d20d23676e720 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 050/661] Add SMI driver +Subject: [PATCH 050/693] Add SMI driver Signed-off-by: Luke Wren @@ -77447,10 +77447,10 @@ index 000000000000..ee3a75edfc03 2.18.4 -From bf67646a4f62be24e0ba9c8ef9961660dbd7f2a3 Mon Sep 17 00:00:00 2001 +From 095f81ea872c366aac66a37521d382c222b79cac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 051/661] Add Chris Boot's i2c driver +Subject: [PATCH 051/693] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -78118,10 +78118,10 @@ index 000000000000..962f2e5c7455 2.18.4 -From e019c5221c04ffe3fa7868c0a11c1718f4c9b4f1 Mon Sep 17 00:00:00 2001 +From 331132e8e73f5663388e8d6be4c80de4aaa4873c 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 052/661] char: broadcom: Add vcio module +Subject: [PATCH 052/693] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -78383,10 +78383,10 @@ index 000000000000..d2598663a2b5 2.18.4 -From 6654ddf3a27982d4950a92a4342a6c3c80b70cb9 Mon Sep 17 00:00:00 2001 +From 65ffd292040ddccb48078a2146532e2d5248b41b 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 053/661] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 053/693] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -78472,10 +78472,10 @@ index 2371d08bdd17..5fec4accb24f 100644 2.18.4 -From 3a7295f474d8719ac123e8afbb6bc54abf73451b Mon Sep 17 00:00:00 2001 +From fc7fa98149a81124183c2a2c32fe46e7a49b46b0 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 054/661] BCM2708: Add core Device Tree support +Subject: [PATCH 054/693] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -79199,7 +79199,7 @@ Signed-off-by: Phil Elwell create mode 120000 arch/arm64/boot/dts/overlays diff --git a/.gitignore b/.gitignore -index d01cda8e1177..bb65fa253e58 100644 +index 67d2f3503128..8b0b16eeca88 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ @@ -104958,10 +104958,10 @@ index 94133708889d..9c0df5bde46c 100644 2.18.4 -From bab1bb2ac8d5e03057702f37b09a715e6e9b6e0d Mon Sep 17 00:00:00 2001 +From bc01fc9dc0fe6bfd9e9308e638b0dbac7a6742f1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 055/661] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 055/693] BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support @@ -105142,10 +105142,10 @@ index 6a8d6409c993..aefab0783075 100644 2.18.4 -From 4bc52b7807cbd42ff35955a5222f2a070121aec7 Mon Sep 17 00:00:00 2001 +From 24337674d13d879ad239b073bb3eec0cdaa4eaae Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:54:08 +0100 -Subject: [PATCH 056/661] Added Device IDs for August DVB-T 205 +Subject: [PATCH 056/693] Added Device IDs for August DVB-T 205 --- drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++ @@ -105170,10 +105170,10 @@ index 91460e4d0c30..637cf99d81ed 100644 2.18.4 -From 7f725929ff594dd69d454225d57ff2d167ac2629 Mon Sep 17 00:00:00 2001 +From b2db5740946329f143380e5a0fc4cfe6318ba2c5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 057/661] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 057/693] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -106793,10 +106793,10 @@ index 084734d3da5c..6af65533dbea 100644 2.18.4 -From 2ecd8e2341da03b4d426814cae01fa00f45ed20c Mon Sep 17 00:00:00 2001 +From 2553291b64eea18a90d8232edf38cc1df8318c1d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 058/661] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 058/693] 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 @@ -106834,10 +106834,10 @@ index c5067eb75370..e458fa7b8848 100644 2.18.4 -From dd21a9001810a48720f490b70e051ba5d90515af Mon Sep 17 00:00:00 2001 +From 5c172db12f40e0be59b200bd26e6038816758df5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 059/661] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 059/693] mfd: Add Raspberry Pi Sense HAT core driver mfd: Add rpi_sense_core of compatible string --- @@ -107720,10 +107720,10 @@ index 000000000000..56196dc2af10 2.18.4 -From 9886136bcf805fbcbecfccdee7d4e4cc5021704d Mon Sep 17 00:00:00 2001 +From bcf6aba99643aec5f39745731b2773a7ba713965 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 060/661] Add support for all the downstream rpi sound card +Subject: [PATCH 060/693] Add support for all the downstream rpi sound card drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -122966,10 +122966,10 @@ index a6c553de5e72..3e9b1fb29826 100644 2.18.4 -From c244682d48b6b66322785cfbbdbe6d46b2b8585d Mon Sep 17 00:00:00 2001 +From 3c6b2c9264802ba0140f2c48b89c99de4d7e87b6 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 16 Oct 2020 15:17:07 +0200 -Subject: [PATCH 061/661] Fixes a problem when module probes before i2c module +Subject: [PATCH 061/693] Fixes a problem when module probes before i2c module is available The driver crashed while a NULL pointer returned by i2c_get_adapter() @@ -123018,10 +123018,10 @@ index a6d078bc4a9a..157ab4c2cc85 100644 2.18.4 -From d062ad29dde982efcd1ede34f10dc06fd2a896db Mon Sep 17 00:00:00 2001 +From dac3e47e98885075b46ffb17e68f2ba65230f3d8 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 062/661] rpi_display: add backlight driver and overlay +Subject: [PATCH 062/693] 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 @@ -123201,10 +123201,10 @@ index 000000000000..14a0d9b03739 2.18.4 -From 2f0ea67b20bc513e43ca7dafc93517b967da13de Mon Sep 17 00:00:00 2001 +From 833fec3576b803f30c1245393193b26ab6a00877 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 063/661] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 063/693] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -123468,10 +123468,10 @@ index 000000000000..49e28ad9760e 2.18.4 -From b633d58ea5a86bea892d74e689129ffb8c8d6093 Mon Sep 17 00:00:00 2001 +From e6f5521c892a3012f7b1b25ab84ad6a4719d6f51 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 064/661] OF: DT-Overlay configfs interface +Subject: [PATCH 064/693] 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. @@ -123909,10 +123909,10 @@ index 000000000000..178f0629b0f0 2.18.4 -From dbe31d5adfb82743c4b00ed66a92645b4f8c7f01 Mon Sep 17 00:00:00 2001 +From fc412b6c393add4eb972b2cea3d9f53fc76c7320 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 065/661] brcm: adds support for BCM43341 wifi +Subject: [PATCH 065/693] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -124060,10 +124060,10 @@ index 59c2b2b6027d..2b642886430d 100644 2.18.4 -From e816b5fc47f8e31f6c10227cff3b434deee19640 Mon Sep 17 00:00:00 2001 +From cbd6320cf5ac704fa2c1d726519b5f5d8dcb8c71 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 066/661] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 066/693] 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. @@ -124089,10 +124089,10 @@ index 996729e78105..6d179e455721 100644 2.18.4 -From bd9496e341ab54b312d09c3a6b146b48b7115c41 Mon Sep 17 00:00:00 2001 +From 3ea2a1c8efd0bb6c9abcfd8f77f27548623fb983 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 067/661] config: Add default configs +Subject: [PATCH 067/693] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1473 +++++++++++++++++++++++++ @@ -131467,10 +131467,10 @@ index 000000000000..d542d2522076 2.18.4 -From 73a97e8756319f5aad6b916904ce04a13d6400ab Mon Sep 17 00:00:00 2001 +From 6d02b45bdb2301f5fac0eaab389090e7129e6441 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 068/661] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 068/693] 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 @@ -131547,10 +131547,10 @@ index 2187672e5be3..0b2af88b69a0 100644 2.18.4 -From 0a36a2c055bca0765e01609abb932d791416f4e9 Mon Sep 17 00:00:00 2001 +From 547bd31ef3eaf9e69118184a1cc25abd8e409bbf Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 069/661] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 069/693] ARM64: Force hardware emulation of deprecated instructions. --- @@ -131581,10 +131581,10 @@ index 7364de008bab..a11467132346 100644 2.18.4 -From 7e5f8f168e2567d71ac11f0dd5ea9086c96ec401 Mon Sep 17 00:00:00 2001 +From b009c490a62f4b1461e01322a29ebdd53f639a2c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 070/661] cache: export clean and invalidate +Subject: [PATCH 070/693] cache: export clean and invalidate hack: cache: Fix linker error --- @@ -131642,10 +131642,10 @@ index dc8f152f3556..536df5db66e4 100644 2.18.4 -From 370e537d9cf3d9b7c1d886ebe3a319dc35414100 Mon Sep 17 00:00:00 2001 +From 0bdd133c40d71e3235cb486b070e20cbbb1a2826 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 14 Nov 2017 15:13:15 +0000 -Subject: [PATCH 071/661] AXI performance monitor driver (#2222) +Subject: [PATCH 071/693] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -132344,10 +132344,10 @@ index 000000000000..5ae2bdaa88b4 2.18.4 -From dd5e14a481ede7707c2f86cd5031d8fa0bf1ac9c Mon Sep 17 00:00:00 2001 +From a9f1ce5231fcd6f7773a378ff520ef1b08be4c2c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH 072/661] cgroup: Disable cgroup "memory" by default +Subject: [PATCH 072/693] 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: @@ -132420,10 +132420,10 @@ index 5d1fdf7c3ec6..ea5a1ea68dd8 100644 2.18.4 -From 9c706ad1e89960ca75cee4b46818b1d2720bca2b Mon Sep 17 00:00:00 2001 +From 723ca06e11f9161b51b3f286616c4c74b4d9e073 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 073/661] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 073/693] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -132489,10 +132489,10 @@ index bfc556f76720..73ec2427fbcf 100644 2.18.4 -From cd1f6e89dbd07f5d1cd20f4147669c676333dc3e Mon Sep 17 00:00:00 2001 +From 20ca4f963176258da0215bea2f03fe2346624840 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 16 Jul 2018 14:40:13 +0100 -Subject: [PATCH 074/661] dwc-otg: FIQ: Fix "bad mode in data abort handler" +Subject: [PATCH 074/693] dwc-otg: FIQ: Fix "bad mode in data abort handler" Create a semi-static mapping for the USB registers early in the boot process, before additional kernel threads are started, so all threads @@ -132611,10 +132611,10 @@ index 73ec2427fbcf..9b6c921106b5 100644 2.18.4 -From 1ec1ee56de6a2d36a98f5e9d1ba55e9bee37a399 Mon Sep 17 00:00:00 2001 +From 3acf5f67ff48cd2d90a303ad17ffecba33478de0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Dec 2017 09:18:32 +0000 -Subject: [PATCH 075/661] ARM: Activate FIQs to avoid __irq_startup warnings +Subject: [PATCH 075/693] ARM: Activate FIQs to avoid __irq_startup warnings There is a new test in __irq_startup that the IRQ is activated, which hasn't been the case for FIQs since they bypass some of the usual setup. @@ -132653,10 +132653,10 @@ index 98ca3e3fa847..c3fe7d3cf482 100644 2.18.4 -From 5b8a49ef1feb91437bfc52c89b548149af610a54 Mon Sep 17 00:00:00 2001 +From e45b000d2b392c3bbc0206d297adbcd7eb6d6e48 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 09:16:19 +0100 -Subject: [PATCH 076/661] raspberrypi-firmware: Export the general transaction +Subject: [PATCH 076/693] raspberrypi-firmware: Export the general transaction function. The vc4-firmware-kms module is going to be doing the MBOX FB call. @@ -132691,10 +132691,10 @@ index 5fec4accb24f..abb16e80a36c 100644 2.18.4 -From 571e344697898ac89a419bff4bbdf4baf6366d50 Mon Sep 17 00:00:00 2001 +From 2d2f3ef03b2fb0307297d913878fe6ece94d323e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 20 Feb 2018 10:07:27 +0000 -Subject: [PATCH 077/661] i2c-gpio: Also set bus numbers from reg property +Subject: [PATCH 077/693] i2c-gpio: Also set bus numbers from reg property I2C busses can be assigned specific bus numbers using aliases in Device Tree - string properties where the name is the alias and the @@ -132732,10 +132732,10 @@ index a4a6825c8758..cfbcf3952ddc 100644 2.18.4 -From 500846b1ea454708d9adacfe654e2180bd552727 Mon Sep 17 00:00:00 2001 +From 0da0c507c8404edb3d0192620bde80847617f4ce Mon Sep 17 00:00:00 2001 From: hdoverobinson Date: Tue, 13 Mar 2018 06:58:39 -0400 -Subject: [PATCH 078/661] added capture_clear option to pps-gpio via dtoverlay +Subject: [PATCH 078/693] added capture_clear option to pps-gpio via dtoverlay (#2433) --- @@ -132759,10 +132759,10 @@ index e0de1df2ede0..ee7d8f4e7f2e 100644 2.18.4 -From 77b9bea2a08dab0341845cafdf2b2a8975e7b840 Mon Sep 17 00:00:00 2001 +From da3523d2d27bd48d326fd88f00f275fe569c9839 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Mar 2018 12:01:00 +0000 -Subject: [PATCH 079/661] lan78xx: Read initial EEE status from DT +Subject: [PATCH 079/693] lan78xx: Read initial EEE status from DT Add two new DT properties: * microchip,eee-enabled - a boolean to enable EEE @@ -132805,10 +132805,10 @@ index 306bf917d4ed..8e234a7c84ef 100644 2.18.4 -From 8438a2736d8633b1afd46420ec990cdd035e73e7 Mon Sep 17 00:00:00 2001 +From dbcffc73dd7d7bbba782b6dca0620de122c2a924 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 080/661] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 080/693] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -132843,10 +132843,10 @@ index 17a29ee0ac6c..1134d543e5d6 100644 2.18.4 -From 573b317bc9d2be2f0a6d3abaa753f3295331ce3a Mon Sep 17 00:00:00 2001 +From 3a4dacb740be81edb31e7c2df514a10fa2e3444f Mon Sep 17 00:00:00 2001 From: Nick Bulleid Date: Thu, 10 May 2018 21:57:02 +0100 -Subject: [PATCH 081/661] Add ability to export gpio used by gpio-poweroff +Subject: [PATCH 081/693] Add ability to export gpio used by gpio-poweroff Signed-off-by: Nick Bulleid @@ -132908,10 +132908,10 @@ index e458fa7b8848..3acbe711b792 100644 2.18.4 -From 191bfd593174a88c95cb36c53f244530453c662f Mon Sep 17 00:00:00 2001 +From 00ef47270620b8e06ae62c3d3ba60f085c024358 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 12 May 2018 21:35:43 +0100 -Subject: [PATCH 082/661] firmware/raspberrypi: Notify firmware of a reboot +Subject: [PATCH 082/693] firmware/raspberrypi: Notify firmware of a reboot Register for reboot notifications, sending RPI_FIRMWARE_NOTIFY_REBOOT over the mailbox interface on reception. @@ -132998,10 +132998,10 @@ index abb16e80a36c..05a0ae2a8eb7 100644 2.18.4 -From 3d595dee36806cf3d8ab6571aecf993cdcd5745e Mon Sep 17 00:00:00 2001 +From 3e93d37ad4f8945d8a851da97aceedf4d1d13faf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 11:21:04 +0100 -Subject: [PATCH 083/661] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time +Subject: [PATCH 083/693] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time ad83c7cb2f37 ("irqchip/irq-bcm2836: Add support for DT interrupt polarity") changed the way that the BCM2836/7 local interrupts are mapped; instead @@ -133070,10 +133070,10 @@ index 18b7483588c2..0e6c0811dc1e 100644 2.18.4 -From 54ab3313493667658946f271a11eda4f5e90f2fe Mon Sep 17 00:00:00 2001 +From f4db05497eeb435b68fd95816d6c837ec0599125 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 15:07:26 +0100 -Subject: [PATCH 084/661] of: configfs: Use of_overlay_fdt_apply API call +Subject: [PATCH 084/693] of: configfs: Use of_overlay_fdt_apply API call The published API to the dynamic overlay application mechanism now takes a Flattened Device Tree blob as input so that it can manage the @@ -133190,10 +133190,10 @@ index 178f0629b0f0..ac04301dabe1 100644 2.18.4 -From efec49e86b6f84f9e87765e9abe68fada39b9922 Mon Sep 17 00:00:00 2001 +From f5567f104a03f2de18def8445229321dd8b2804e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Jun 2018 15:21:10 +0100 -Subject: [PATCH 085/661] net: lan78xx: Disable TCP Segmentation Offload (TSO) +Subject: [PATCH 085/693] net: lan78xx: Disable TCP Segmentation Offload (TSO) TSO seems to be having issues when packets are dropped and the remote end uses Selective Acknowledge (SACK) to denote that @@ -133252,10 +133252,10 @@ index 8e234a7c84ef..681a6b949140 100644 2.18.4 -From 357b4f647d5e10f98748fad243e441a93f4e2575 Mon Sep 17 00:00:00 2001 +From 1f320c02f35eba7fad311a9446524d063fa57a5d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Jun 2018 12:20:01 +0100 -Subject: [PATCH 086/661] brcmfmac: Re-enable firmware roaming support +Subject: [PATCH 086/693] brcmfmac: Re-enable firmware roaming support As of 4.18, a firmware that implements the update_connect_params method but doesn't claim to support roaming causes an error. We @@ -133287,10 +133287,10 @@ index 591dcd04b4b4..e3758bd86acf 100644 2.18.4 -From 6436a4936f6ed96f04d62fe4bbd1e61be71143e4 Mon Sep 17 00:00:00 2001 +From 1cd038709fe864ee33ed99b10582c579181752c9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Apr 2018 14:46:11 +0100 -Subject: [PATCH 087/661] lan78xx: Move enabling of EEE into PHY init code +Subject: [PATCH 087/693] lan78xx: Move enabling of EEE into PHY init code Enable EEE mode as soon as possible after connecting to the PHY, and before phy_start. This avoids a second link negotiation, which speeds @@ -133357,10 +133357,10 @@ index 681a6b949140..68d0aec53f3a 100644 2.18.4 -From 854ed05952a4e26e8fff3b8d47ff32c3642a4183 Mon Sep 17 00:00:00 2001 +From febfd952ae255e6ed999e02e4180ef52c2f51e24 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 9 Jul 2018 12:54:25 +0100 -Subject: [PATCH 088/661] Add rpi-poe-fan driver +Subject: [PATCH 088/693] Add rpi-poe-fan driver Signed-off-by: Serge Schneider @@ -133955,10 +133955,10 @@ index 000000000000..c9654e9e9f2d 2.18.4 -From f6d88636e7b18303f7fe3b0e3f02012ad8e20ab9 Mon Sep 17 00:00:00 2001 +From 8b27bdd0552de6963f53137ade07622554e3ebc1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 17 Sep 2018 17:31:18 +0100 -Subject: [PATCH 089/661] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 +Subject: [PATCH 089/693] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT --- @@ -133981,10 +133981,10 @@ index 857ef4ace6e9..deae75ea3c44 100644 2.18.4 -From 3a65d0c4117ce48da93930521081b2ffe9549150 Mon Sep 17 00:00:00 2001 +From 37ef0c283430441037534f46121311fc79824b83 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 6 Oct 2018 16:46:18 +0200 -Subject: [PATCH 090/661] hwmon: raspberrypi: Prevent voltage low warnings from +Subject: [PATCH 090/693] hwmon: raspberrypi: Prevent voltage low warnings from filling log Although the correct fix for low voltage warnings is to @@ -134062,10 +134062,10 @@ index d3a64a35f7a9..db3b03438dd0 100644 2.18.4 -From 974bee89789941bd9af7ac83eb1a63cc559ddba7 Mon Sep 17 00:00:00 2001 +From 012557ba095a47574941c1858a0f0ffd1da97fc1 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 13 Oct 2018 13:31:21 +0200 -Subject: [PATCH 091/661] firmware: raspberrypi: Add backward compatible +Subject: [PATCH 091/693] firmware: raspberrypi: Add backward compatible get_throttled Avoid a hard userspace ABI change by adding a compatible get_throttled @@ -134147,10 +134147,10 @@ index 05a0ae2a8eb7..f7d605a62801 100644 2.18.4 -From 46cd2661b2dad8f7f287b78353ae5ea1911a584c Mon Sep 17 00:00:00 2001 +From a0a2e454b1c6f623120f269494202b7446ffbfdc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 6 Nov 2018 12:57:48 +0000 -Subject: [PATCH 092/661] sc16is7xx: Don't spin if no data received +Subject: [PATCH 092/693] sc16is7xx: Don't spin if no data received See: https://github.com/raspberrypi/linux/issues/2676 @@ -134160,7 +134160,7 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c -index f86ec2d2635b..ae48749d72fd 100644 +index 9adb8362578c..f64e051c0030 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -696,6 +696,8 @@ static bool sc16is7xx_port_irq(struct sc16is7xx_port *s, int portno) @@ -134176,10 +134176,10 @@ index f86ec2d2635b..ae48749d72fd 100644 2.18.4 -From 9069c8e71b3bf84a69bf8a9ee33a2981abf034ab Mon Sep 17 00:00:00 2001 +From b9ecca10cc1d23573d565e980725befd798634b2 Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Mon, 7 May 2018 11:54:08 -0600 -Subject: [PATCH 093/661] drivers: thermal: step_wise: add support for +Subject: [PATCH 093/693] drivers: thermal: step_wise: add support for hysteresis Step wise governor increases the mitigation level when the temperature @@ -134276,10 +134276,10 @@ index 2ae7198d3067..abe34cfe21fe 100644 2.18.4 -From 31e077e44fcb9a988a5168b63794e64245326723 Mon Sep 17 00:00:00 2001 +From 679a394b6c2ab9ff0f8cb6a5d56af96d55c30541 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 2 Oct 2018 11:14:15 +0100 -Subject: [PATCH 094/661] drivers: thermal: step_wise: avoid throttling at +Subject: [PATCH 094/693] drivers: thermal: step_wise: avoid throttling at hysteresis temperature after dropping below it Signed-off-by: Serge Schneider @@ -134304,10 +134304,10 @@ index abe34cfe21fe..5c8602933201 100644 2.18.4 -From 8e7f1974cc09778b5979ec1297827b2362292fd9 Mon Sep 17 00:00:00 2001 +From 73e9d69526297be44502b132922227a7737f59a3 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Fri, 2 Nov 2018 11:55:49 +0000 -Subject: [PATCH 095/661] Update issue templates (#2736) +Subject: [PATCH 095/693] Update issue templates (#2736) --- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++++++++++++++++++ @@ -134358,10 +134358,10 @@ index 000000000000..09bdc4a96838 2.18.4 -From c736a3b5c9c3b6fd075da40dc44e3a393bd9b990 Mon Sep 17 00:00:00 2001 +From 203dcef32fb1265150b116fc4ef91c6fd493a467 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Nov 2018 19:46:58 +0000 -Subject: [PATCH 096/661] net: lan78xx: Support auto-downshift to 100Mb/s +Subject: [PATCH 096/693] net: lan78xx: Support auto-downshift to 100Mb/s Ethernet cables with faulty or missing pairs (specifically pairs C and D) allow auto-negotiation to 1000Mbs, but do not support the successful @@ -134459,10 +134459,10 @@ index 517288da19fd..626c450d71f4 100644 2.18.4 -From adadcf2c40ac229da4fca30b49952e140684c950 Mon Sep 17 00:00:00 2001 +From 51c9210e676b70d33e57969dba6a5d71c82c31c9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 10 Jan 2019 17:58:06 +0000 -Subject: [PATCH 097/661] firmware: raspberrypi: Report the fw variant during +Subject: [PATCH 097/693] firmware: raspberrypi: Report the fw variant during probe The driver already reported the firmware build date during probe. @@ -134568,10 +134568,10 @@ index 16253b6875c9..d0c827064999 100644 2.18.4 -From 42f20e452c35d60422ee29f3e9be2ee9488e2d2b Mon Sep 17 00:00:00 2001 +From 11c854ba290a2323c6d11152a1331e8627c75162 Mon Sep 17 00:00:00 2001 From: Joshua Emele Date: Wed, 7 Nov 2018 16:07:40 -0800 -Subject: [PATCH 098/661] lan78xx: Debounce link events to minimize poll storm +Subject: [PATCH 098/693] lan78xx: Debounce link events to minimize poll storm The bInterval is set to 4 (i.e. 8 microframes => 1ms) and the only bit that the driver pays attention to is "link was reset". If there's a @@ -134619,10 +134619,10 @@ index 68d0aec53f3a..e5bd18aa1cfa 100644 2.18.4 -From 2d94ce61611c67adf1800fb3173c9483a3c83a0f Mon Sep 17 00:00:00 2001 +From 2b98603090b37549d08bdb20323276b5bec6b2e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 Mar 2019 09:51:22 +0000 -Subject: [PATCH 099/661] lan78xx: EEE support is now a PHY property +Subject: [PATCH 099/693] lan78xx: EEE support is now a PHY property Now that EEE support is a property of the PHY, use the PHY's DT node when querying the EEE-related properties. @@ -134651,10 +134651,10 @@ index e5bd18aa1cfa..a03bcbdd04f3 100644 2.18.4 -From 205f55f9b32338ed5d5eaeb1883ef7892d5ecec9 Mon Sep 17 00:00:00 2001 +From d6ed8287d2fce9217b21de8b7fa0b5920eef67ed Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 20 Jul 2018 22:03:41 +0100 -Subject: [PATCH 100/661] bcm2835-dma: Add support for per-channel flags +Subject: [PATCH 100/693] bcm2835-dma: Add support for per-channel flags Add the ability to interpret the high bits of the dreq specifier as flags to be included in the DMA_CS register. The motivation for this @@ -134705,10 +134705,10 @@ index bf7ba96a39f9..87b5d0bef355 100644 2.18.4 -From 78e2449308c86192eb76a94e928ec3c4ac38e9fc Mon Sep 17 00:00:00 2001 +From 8f6c25a31406bac39e8b4c924f916375102447da Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 29 Mar 2019 10:53:14 +0000 -Subject: [PATCH 101/661] rtc: rv3028: Add backup switchover mode support +Subject: [PATCH 101/693] rtc: rv3028: Add backup switchover mode support Signed-off-by: Phil Howard --- @@ -134761,10 +134761,10 @@ index fa226f0fe67d..20baf2257631 100644 2.18.4 -From b12cba49514c439845f36ae63ad0cc01e86a98d2 Mon Sep 17 00:00:00 2001 +From 6f63c9d6bc5549d2775c85102a2868a661627943 Mon Sep 17 00:00:00 2001 From: P33M Date: Thu, 2 May 2019 11:53:45 +0100 -Subject: [PATCH 102/661] lan78xx: use default alignment for rx buffers +Subject: [PATCH 102/693] lan78xx: use default alignment for rx buffers The lan78xx uses a 12-byte hardware rx header, so there is no need to allocate SKBs with NET_IP_ALIGN set. Removes alignment faults @@ -134790,10 +134790,10 @@ index a03bcbdd04f3..58f5b90f11d4 100644 2.18.4 -From 20095597e77336e0cbdfa9765c718e0aea706156 Mon Sep 17 00:00:00 2001 +From 08769e5cf437dc472f17c433c6bfb33288a4e770 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:55:37 +0000 -Subject: [PATCH 103/661] media: ov5647: Add set_fmt and get_fmt calls. +Subject: [PATCH 103/693] media: ov5647: Add set_fmt and get_fmt calls. There's no way to query the subdevice for the supported resolutions. @@ -134843,10 +134843,10 @@ index e7d2e5b4ad4b..3e587eb0a30e 100644 2.18.4 -From 4a6b528f79ae4edbcd26c876196aadc122c14c92 Mon Sep 17 00:00:00 2001 +From e6b5183566333ff0ee8344ab356e1ac34d3e7509 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:33 +0000 -Subject: [PATCH 104/661] media: ov5647: Add support for PWDN GPIO. +Subject: [PATCH 104/693] media: ov5647: Add support for PWDN GPIO. Add support for an optional GPIO connected to PWDN on the sensor. @@ -134941,10 +134941,10 @@ index 3e587eb0a30e..c39e3d20e3ef 100644 2.18.4 -From ea7e8f816de481992181efc072936db773fc9710 Mon Sep 17 00:00:00 2001 +From 0c8ad2e9d302cd01f39feaf50c3669d49317c37f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:47 +0000 -Subject: [PATCH 105/661] media: ov5647: Add support for non-continuous clock +Subject: [PATCH 105/693] media: ov5647: Add support for non-continuous clock mode The driver was only supporting continuous clock mode @@ -135026,10 +135026,10 @@ index c39e3d20e3ef..8a1a515388e0 100644 2.18.4 -From 5665b9b439b9e83d41c3761891863db060da3b33 Mon Sep 17 00:00:00 2001 +From 584d0c879a46e9e70963c1c17c671f470b2f9c4f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:59 +0000 -Subject: [PATCH 106/661] media: tc358743: Increase FIFO level to 374. +Subject: [PATCH 106/693] media: tc358743: Increase FIFO level to 374. The existing fixed value of 16 worked for UYVY 720P60 over 2 lanes at 594MHz, or UYVY 1080P60 over 4 lanes. (RGB888 @@ -135047,7 +135047,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index 831b5b54fd78..8ca6d67a2b3e 100644 +index 1b309bb743c7..0550a443356d 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -1950,7 +1950,7 @@ static int tc358743_probe_of(struct tc358743_state *state) @@ -135063,10 +135063,10 @@ index 831b5b54fd78..8ca6d67a2b3e 100644 2.18.4 -From 9cfe977004a3245984dc5bf7365b94e597d61bd1 Mon Sep 17 00:00:00 2001 +From b5f0340013bafaec578491280031ce23ee96eb2d Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Thu, 21 Sep 2017 17:30:24 +0200 -Subject: [PATCH 107/661] media: tc358743: fix connected/active CSI-2 lane +Subject: [PATCH 107/693] media: tc358743: fix connected/active CSI-2 lane reporting g_mbus_config was supposed to indicate all supported lane numbers, not @@ -135088,7 +135088,7 @@ Signed-off-by: Philipp Zabel 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index 8ca6d67a2b3e..46ea2d034580 100644 +index 0550a443356d..f895737279b2 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -1609,11 +1609,20 @@ static int tc358743_get_mbus_config(struct v4l2_subdev *sd, @@ -135145,10 +135145,10 @@ index c20e2dc6d432..396fb88266be 100644 2.18.4 -From 4414e3c2387b1cf5f1daa2894bfe5106ca34f941 Mon Sep 17 00:00:00 2001 +From 8d4ce0537226d8bd04e78309cf42881dc844a66c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:21 +0000 -Subject: [PATCH 108/661] media: tc358743: Add support for 972Mbit/s link freq. +Subject: [PATCH 108/693] media: tc358743: Add support for 972Mbit/s link freq. Adds register setups for running the CSI lanes at 972Mbit/s, which allows 1080P50 UYVY down 2 lanes. @@ -135159,7 +135159,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index 46ea2d034580..0856a711ee33 100644 +index f895737279b2..5e65a03c2de7 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -1979,6 +1979,7 @@ static int tc358743_probe_of(struct tc358743_state *state) @@ -135230,10 +135230,10 @@ index 46ea2d034580..0856a711ee33 100644 2.18.4 -From 277bba934fe69e4fb9ab7c603b7e5305d43452dc Mon Sep 17 00:00:00 2001 +From 41bc9a0865625b67d712c131e610c5b39c6e5074 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:34 +0000 -Subject: [PATCH 109/661] media: tc358743: Check I2C succeeded during probe. +Subject: [PATCH 109/693] media: tc358743: Check I2C succeeded during probe. The probe for the TC358743 reads the CHIPID register from the device and compares it to the expected value of 0. @@ -135251,7 +135251,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index 0856a711ee33..056fc6b884dd 100644 +index 5e65a03c2de7..b0dc72e8196c 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -110,7 +110,7 @@ static inline struct tc358743_state *to_state(struct v4l2_subdev *sd) @@ -135334,10 +135334,10 @@ index 0856a711ee33..056fc6b884dd 100644 2.18.4 -From 3770c7fd387151a2ed12c53ae50017abe6ee4bd5 Mon Sep 17 00:00:00 2001 +From b6f7b203e6dd7fbdf6f4c83f230a5513f7cc4af8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:46 +0000 -Subject: [PATCH 110/661] media: adv7180: Default to the first valid input +Subject: [PATCH 110/693] media: adv7180: Default to the first valid input The hardware default is differential CVBS on AIN1 & 2, which isn't very useful. @@ -135385,10 +135385,10 @@ index 4498d14d3429..e98dd2bee1e5 100644 2.18.4 -From 87b2825e8bd6cca458c243d6dcb609b63c14630f Mon Sep 17 00:00:00 2001 +From eb9f9610814ee2c89d32a740de3f1725b3a886f0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:56 +0000 -Subject: [PATCH 111/661] media: adv7180: Add YPrPb support for ADV7282M +Subject: [PATCH 111/693] media: adv7180: Add YPrPb support for ADV7282M The ADV7282M can support YPbPr on AIN1-3, but this was not selectable from the driver. Add it to the list of @@ -135415,10 +135415,10 @@ index e98dd2bee1e5..4103690a71df 100644 2.18.4 -From 9ea54b1ad12358d908cf6dc8cd7ce7a7423df297 Mon Sep 17 00:00:00 2001 +From 1bb25dd01299914b745b39e2a63e643fced02ec8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:58:08 +0000 -Subject: [PATCH 112/661] media: videodev2: Add helper defines for printing +Subject: [PATCH 112/693] media: videodev2: Add helper defines for printing FOURCCs New helper defines that allow printing of a FOURCC using @@ -135449,10 +135449,10 @@ index 534eaa4d39bc..56c443cc2c3d 100644 2.18.4 -From ff06c2ba52730e7f478017d0cfcf461f89b3e000 Mon Sep 17 00:00:00 2001 +From ff9f04d8917e665c04774ab45362c791f78e000b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:06 +0000 -Subject: [PATCH 113/661] dt-bindings: Document BCM283x CSI2/CCP2 receiver +Subject: [PATCH 113/693] dt-bindings: Document BCM283x CSI2/CCP2 receiver Document the DT bindings for the CSI2/CCP2 receiver peripheral (known as Unicam) on BCM283x SoCs. @@ -135559,10 +135559,10 @@ index 000000000000..7714fb374b34 2.18.4 -From dd197999a1dd5517f9693fa45db9b97e40572807 Mon Sep 17 00:00:00 2001 +From eb7fb49c8c556ac9b3b7534ed109ca4fc90f1332 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:40 +0000 -Subject: [PATCH 114/661] MAINTAINERS: Add entry for BCM2835 Unicam driver +Subject: [PATCH 114/693] MAINTAINERS: Add entry for BCM2835 Unicam driver Adds entry for the new BCM2835 Unicam (CSI-2 receiver) driver @@ -135572,7 +135572,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS -index 24cdfcf334ea..4b0478749279 100644 +index 4fef10dd2975..cbfee297e9f9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3417,6 +3417,13 @@ N: bcm113* @@ -135593,10 +135593,10 @@ index 24cdfcf334ea..4b0478749279 100644 2.18.4 -From d1f7ea46034148d198208e7ea57fbbcbc3b038bb Mon Sep 17 00:00:00 2001 +From 3718cbd04739dd31a03d4bed1bcbc011b7a399c7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Nov 2018 17:31:06 +0000 -Subject: [PATCH 115/661] media: tc358743: Return an appropriate colorspace +Subject: [PATCH 115/693] media: tc358743: Return an appropriate colorspace from tc358743_set_fmt When calling tc358743_set_fmt, the code was calling tc358743_get_fmt @@ -135620,7 +135620,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index 056fc6b884dd..0a8a25ff7872 100644 +index b0dc72e8196c..96de74bf6b5c 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -1691,12 +1691,23 @@ static int tc358743_enum_mbus_code(struct v4l2_subdev *sd, @@ -135697,10 +135697,10 @@ index 056fc6b884dd..0a8a25ff7872 100644 2.18.4 -From 88397dc4035420032fbf9f979b7d333a56ba3a32 Mon Sep 17 00:00:00 2001 +From d70a8e021010ad71b5dbcfdd74d3954499e07f64 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 16:20:46 +0000 -Subject: [PATCH 116/661] staging: mmal-vchiq: Avoid use of bool in structures +Subject: [PATCH 116/693] staging: mmal-vchiq: Avoid use of bool in structures Fixes up a checkpatch error "Avoid using bool structure members because of possible alignment issues". @@ -135727,10 +135727,10 @@ index 9097bcbd67d8..8734a09498b1 100644 2.18.4 -From dcf5e54cbe083092d6c04d6b3c449b2d51b641d9 Mon Sep 17 00:00:00 2001 +From 1da7c4169e5bff3ce46c11d5db295110029cea84 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:15:38 +0100 -Subject: [PATCH 117/661] staging: mmal-vchiq: Add support for event callbacks. +Subject: [PATCH 117/693] staging: mmal-vchiq: Add support for event callbacks. (Preparation for the codec driver). The codec uses the event mechanism to report things such as @@ -136095,10 +136095,10 @@ index 1dc81ecf9268..e87f88f99338 100644 2.18.4 -From 9a19800cb21dd544acdd2e39f7f1231c939cc5ab Mon Sep 17 00:00:00 2001 +From 469cf9aec3ad2abcf99068385bc43cd5b9283710 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:26:02 +0100 -Subject: [PATCH 118/661] staging: vc04_services: Support sending data to MMAL +Subject: [PATCH 118/693] staging: vc04_services: Support sending data to MMAL ports Add the ability to send data to ports. This only supports @@ -136143,10 +136143,10 @@ index 1a66c9484aa7..2361a11f1e20 100644 2.18.4 -From d50816bd70e56cde897a329060121bafde5c5d9c Mon Sep 17 00:00:00 2001 +From 3051a56d4e1ccfab3efea741ae360acda20ec5c7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 17:57:45 +0000 -Subject: [PATCH 119/661] media: videobuf2: Allow exporting of a struct dmabuf +Subject: [PATCH 119/693] media: videobuf2: Allow exporting of a struct dmabuf videobuf2 only allowed exporting a dmabuf as a file descriptor, but there are instances where having the struct dma_buf is @@ -136234,10 +136234,10 @@ index bbb3f26fbde9..7a4aa9cb28c9 100644 2.18.4 -From 4c32b208fb6a001671e97a6bebfb8bb7a9fa7d40 Mon Sep 17 00:00:00 2001 +From 1ce580f3076bed3010d7e031d4437d49ac45202a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 22 Jan 2019 12:04:09 +0000 -Subject: [PATCH 120/661] staging: mmal-vchiq: Fix client_component for 64 bit +Subject: [PATCH 120/693] staging: mmal-vchiq: Fix client_component for 64 bit kernel The MMAL client_component field is used with the event @@ -136275,10 +136275,10 @@ index 2361a11f1e20..3e2209847761 100644 2.18.4 -From f86af9adb3fc17a37559660dafa54cdfbf3497d5 Mon Sep 17 00:00:00 2001 +From eb7d1b937e06412e269145e633c9fc52ba07f624 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 24 Jan 2019 15:09:28 +0000 -Subject: [PATCH 121/661] clk: clk-bcm2835: Use %zd when printing size_t +Subject: [PATCH 121/693] clk: clk-bcm2835: Use %zd when printing size_t The debug text for how many clocks have been registered uses "%d" with a size_t. Correct it to "%zd". @@ -136305,10 +136305,10 @@ index f1ef788c1194..2674b979a072 100644 2.18.4 -From 2f84baf730239774566c5126ebea0da8bc5db282 Mon Sep 17 00:00:00 2001 +From 0f4dd3be28402144556e05285feb42d61ae2f3d2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Sep 2018 11:08:51 +0100 -Subject: [PATCH 122/661] media: ov5647: Use gpiod_set_value_cansleep +Subject: [PATCH 122/693] media: ov5647: Use gpiod_set_value_cansleep All calls to the gpio library are in contexts that can sleep, therefore there is no issue with having those GPIOs controlled @@ -136365,10 +136365,10 @@ index 8a1a515388e0..07550377be2e 100644 2.18.4 -From 6595a3a6c3ef230d248a9187991727bf1e86fb73 Mon Sep 17 00:00:00 2001 +From 62e14bdf348f563a21c40b3fdaa592ea79bbfb7e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Feb 2019 12:33:29 +0000 -Subject: [PATCH 123/661] staging: mmal_vchiq: Add in the Bayer encoding +Subject: [PATCH 123/693] staging: mmal_vchiq: Add in the Bayer encoding formats The list of formats was copied before Bayer support was added. @@ -136422,10 +136422,10 @@ index 2be9941a1f30..44ba91aa6d47 100644 2.18.4 -From eb21349446a8173f794687493184f212dc3e67dd Mon Sep 17 00:00:00 2001 +From 2351109bd45c94413c21afa7b55f6fe4de391c53 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 18 Feb 2019 15:52:29 +0000 -Subject: [PATCH 124/661] staging: mmal-vchiq: Update mmal_parameters.h with +Subject: [PATCH 124/693] staging: mmal-vchiq: Update mmal_parameters.h with recently defined params mmal_parameters.h hasn't been updated to reflect additions made @@ -136484,10 +136484,10 @@ index a1e39b1b1701..1793103b18fd 100644 2.18.4 -From c8b9c453dd3a6b6bd04c68ff9ce6436516743788 Mon Sep 17 00:00:00 2001 +From 82d449b17a32e604fcfb499c833d1d75203a4b3e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 May 2019 13:27:23 +0100 -Subject: [PATCH 125/661] staging: mmal-vchiq: Free the event context for +Subject: [PATCH 125/693] staging: mmal-vchiq: Free the event context for control ports vchiq_mmal_component_init calls init_event_context for the @@ -136518,10 +136518,10 @@ index 3e2209847761..d4d9ad3500b6 100644 2.18.4 -From f129021dba498354373c89402025491fea3e73e4 Mon Sep 17 00:00:00 2001 +From 60d8e52530b5e04dd84fa00271fe77f2e27c40da Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 May 2019 15:50:01 +0100 -Subject: [PATCH 126/661] staging: mmal-vchiq: Fix memory leak in error path +Subject: [PATCH 126/693] staging: mmal-vchiq: Fix memory leak in error path On error, vchiq_mmal_component_init could leave the event context allocated for ports. @@ -136600,10 +136600,10 @@ index d4d9ad3500b6..14bdfdea5770 100644 2.18.4 -From 565a2db331ad18290989546cc481f739581c4503 Mon Sep 17 00:00:00 2001 +From a72e589b151a089c1f0ae99fa41024a366b832b5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jun 2019 17:15:05 +0100 -Subject: [PATCH 127/661] w1: w1-gpio: Make GPIO an output for strong pullup +Subject: [PATCH 127/693] w1: w1-gpio: Make GPIO an output for strong pullup The logic to drive the data line high to implement a strong pullup assumed that the pin was already an output - setting a value does @@ -136633,10 +136633,10 @@ index d4632aace402..4832cd8c2596 100644 2.18.4 -From 5b9b952111a6f473b612ac2b7563174898b62c03 Mon Sep 17 00:00:00 2001 +From 413db03b648720a725bb07c2561dcb4c3af683a9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Feb 2019 08:49:39 +0000 -Subject: [PATCH 128/661] arm: bcm2835: Fix FIQ early ioremap +Subject: [PATCH 128/693] arm: bcm2835: Fix FIQ early ioremap The ioremapping creates mappings within the vmalloc area. The equivalent early function, create_mapping, now checks that the @@ -136712,10 +136712,10 @@ index 9b6c921106b5..9bd9842da59f 100644 2.18.4 -From 24c3b163b9549cb5a37707d48c0c899665633363 Mon Sep 17 00:00:00 2001 +From 6dda53f7b561df9254baf69cf4d020db79f9d7db Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 May 2019 15:47:42 +0100 -Subject: [PATCH 129/661] arm: bcm2835: DMA can only address 1GB +Subject: [PATCH 129/693] arm: bcm2835: DMA can only address 1GB The legacy peripherals can only address the first gigabyte of RAM, so ensure that DMA allocations are restricted to that region. @@ -136743,10 +136743,10 @@ index 9bd9842da59f..7d59a9364175 100644 2.18.4 -From c39bfe55330c514ffe2abfad9369a2668832c458 Mon Sep 17 00:00:00 2001 +From 718f230ad463fc5cf5003e7bd2e4a1756f6209dc Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 4 May 2019 17:06:15 +0200 -Subject: [PATCH 130/661] hwrng: iproc-rng200: Add BCM2838 support +Subject: [PATCH 130/693] hwrng: iproc-rng200: Add BCM2838 support The HWRNG on the BCM2838 is compatible to iproc-rng200, so add the support to this driver instead of bcm2835-rng. @@ -136904,10 +136904,10 @@ index 01583faf9893..2a92ea658096 100644 2.18.4 -From 05779d335ed70dabd793c3b91855076114013dac Mon Sep 17 00:00:00 2001 +From 13a967ef760877d8b88f0f53a1e9bb9e8cd6263d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 2 Aug 2019 15:20:11 +0100 -Subject: [PATCH 131/661] mmc: sdhci-iproc: Fix vmmc regulators on iProc +Subject: [PATCH 131/693] mmc: sdhci-iproc: Fix vmmc regulators on iProc The Linux support for controlling card power via regulators appears to be contentious. I would argue that the default behaviour is contrary to @@ -136956,10 +136956,10 @@ index ddeaf8e1f72f..57257a014022 100644 2.18.4 -From 7fae3c44dbe4d2245dd21e451c294813410c3580 Mon Sep 17 00:00:00 2001 +From 00fbd2462b74ef19b33290bcda2b066e70aec8fa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 1 Nov 2018 17:31:37 +0000 -Subject: [PATCH 132/661] vchiq: Add 36-bit address support +Subject: [PATCH 132/693] vchiq: Add 36-bit address support Conditional on a new compatible string, change the pagelist encoding such that the top 24 bits are the pfn, leaving 8 bits for run length @@ -137168,10 +137168,10 @@ index 0784c5002417..f8b1c005af62 100644 2.18.4 -From dde231abb9380cfff8b65876b0a907e2efb8f624 Mon Sep 17 00:00:00 2001 +From 7a037f5561bc4394333900378446daf376ca5f9b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 30 Apr 2019 19:15:30 +0100 -Subject: [PATCH 133/661] bcm2835-pcm.c: Support multichannel audio +Subject: [PATCH 133/693] bcm2835-pcm.c: Support multichannel audio --- .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 17 +++++++++-------- @@ -137220,10 +137220,10 @@ index 096f2c54258a..3c0033101e6e 100644 2.18.4 -From d3f909c85c634b64b3b46b5281a24b07077cd37e Mon Sep 17 00:00:00 2001 +From d26602554ba7002378c31513d0ad15e53202794a Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 12 Sep 2018 14:44:53 +0100 -Subject: [PATCH 134/661] bcmgenet: constrain max DMA burst length +Subject: [PATCH 134/693] bcmgenet: constrain max DMA burst length --- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- @@ -137246,10 +137246,10 @@ index f6ca01da141d..45ea07829b8c 100644 2.18.4 -From c3954688518b96d63baea32a54e8b84dc664fb1e Mon Sep 17 00:00:00 2001 +From 6160b9e735634a40f33980b71421a976bd99a0b2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 Mar 2019 13:45:46 +0000 -Subject: [PATCH 135/661] bcmgenet: Better coalescing parameter defaults +Subject: [PATCH 135/693] bcmgenet: Better coalescing parameter defaults Set defaults for TX and RX packet coalescing to be equivalent to: @@ -137295,10 +137295,10 @@ index fcca023f22e5..848c29c5c33d 100644 2.18.4 -From 948bea7966a217c118e84794b99dc72ff059172e Mon Sep 17 00:00:00 2001 +From aec4f83c27cabba66d31a75b6fdfbafa38134090 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:17:59 +0100 -Subject: [PATCH 136/661] net: genet: enable link energy detect powerdown for +Subject: [PATCH 136/693] net: genet: enable link energy detect powerdown for external PHYs There are several warts surrounding bcmgenet_mii_probe() as this @@ -137332,10 +137332,10 @@ index 6fb6c3556285..2e516f4c435e 100644 2.18.4 -From 4b11d84b57599c3cce6ded0fc5d4e1591e8a65de Mon Sep 17 00:00:00 2001 +From c376f4cb44b4e52f9cce274e6787d6e80be9912b Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Fri, 22 Mar 2019 09:47:14 +0000 -Subject: [PATCH 137/661] usb: xhci: Disable the XHCI 5 second timeout +Subject: [PATCH 137/693] usb: xhci: Disable the XHCI 5 second timeout If the VL805 EEPROM has not been programmed then boot will hang for five seconds. The timeout seems to be arbitrary and is an unecessary @@ -137349,7 +137349,7 @@ on the first boot. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index c449de6164b1..b9ce60af9696 100644 +index a8d97e23f601..d61b0ef94a2f 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -196,8 +196,9 @@ int xhci_reset(struct xhci_hcd *xhci) @@ -137367,10 +137367,10 @@ index c449de6164b1..b9ce60af9696 100644 2.18.4 -From e0c6f57e815598bd621967cba87be0d212ff6063 Mon Sep 17 00:00:00 2001 +From 70b2c3b68928265eeb9f78d7183661711f34d608 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Mon, 13 May 2019 11:05:27 +0000 -Subject: [PATCH 138/661] spi: bcm2835: enable shared interrupt support +Subject: [PATCH 138/693] spi: bcm2835: enable shared interrupt support Add shared interrupt support for this driver. @@ -137408,10 +137408,10 @@ index 197485f2c2b2..5c7aa77f504e 100644 2.18.4 -From 9a55e775b844d6eb34c113cfa9524605e8a9a898 Mon Sep 17 00:00:00 2001 +From a54ce10e16121001557c09ba3103829dfa3ca1ff Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Jan 2019 16:11:50 +0000 -Subject: [PATCH 139/661] clk-bcm2835: Don't wait for pllh lock +Subject: [PATCH 139/693] clk-bcm2835: Don't wait for pllh lock Signed-off-by: Phil Elwell --- @@ -137452,10 +137452,10 @@ index 2674b979a072..38f97f1707d2 100644 2.18.4 -From f79fa5e04fa6ce34eddc92627567cf186ff3b9a0 Mon Sep 17 00:00:00 2001 +From a5e2bbbf4eb916d9296e4cbfbbeadfb145095540 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Jan 2019 17:31:07 -0800 -Subject: [PATCH 140/661] soc: bcm: bcm2835-pm: Add support for 2711. +Subject: [PATCH 140/693] soc: bcm: bcm2835-pm: Add support for 2711. Without the actual power management part any more, there's a lot less to set up for V3D. We just need to clear the RSTN field for the power @@ -137564,10 +137564,10 @@ index ed37dc40e82a..b2d157091e12 100644 2.18.4 -From a1df5d33fac6550038e99867479453ddc2cb4511 Mon Sep 17 00:00:00 2001 +From df61ad69a6533a6182d809363e4568f867268676 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:11:05 -0700 -Subject: [PATCH 141/661] clk: bcm2835: Add support for setting leaf clock +Subject: [PATCH 141/693] clk: bcm2835: Add support for setting leaf clock rates while running. As long as you wait for !BUSY, you can do glitch-free updates of clock @@ -137623,10 +137623,10 @@ index 38f97f1707d2..4cf4f5e12fe2 100644 2.18.4 -From b3da43cd116f848ca6aecdc1423fb239a3828513 Mon Sep 17 00:00:00 2001 +From 943fb73bc4e1470b11f0493ae48c2911e8a29a12 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:24:04 -0700 -Subject: [PATCH 142/661] clk: bcm2835: Allow reparenting leaf clocks while +Subject: [PATCH 142/693] clk: bcm2835: Allow reparenting leaf clocks while they're running. This falls under the same "we can reprogram glitch-free as long as we @@ -137700,10 +137700,10 @@ index 4cf4f5e12fe2..3c55594684cd 100644 2.18.4 -From ad6a772be658ec4bd742bfb1e15c7e0dba027511 Mon Sep 17 00:00:00 2001 +From 996a3b495b21726581ea016e90378f3b786f777f Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 10:55:00 +0100 -Subject: [PATCH 143/661] usb: add plumbing for updating interrupt endpoint +Subject: [PATCH 143/693] usb: add plumbing for updating interrupt endpoint interval state xHCI caches device and endpoint data after the interface is configured, @@ -137816,10 +137816,10 @@ index 3dbb42c637c1..a60b7fc02fce 100644 2.18.4 -From 8c97b1ea97c5d9a426dafe42bdcc296aff3fb845 Mon Sep 17 00:00:00 2001 +From 7b9cc43678c37c7351c51280b1595a5e8294d254 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:33:39 +0100 -Subject: [PATCH 144/661] xhci: implement xhci_fixup_endpoint for interval +Subject: [PATCH 144/693] xhci: implement xhci_fixup_endpoint for interval adjustments Must be called in a non-atomic context, after the endpoint @@ -137832,10 +137832,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 98 insertions(+) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index b9ce60af9696..2c31bfbf6b93 100644 +index d61b0ef94a2f..494a059f2f5b 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1463,6 +1463,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1467,6 +1467,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -137939,7 +137939,7 @@ index b9ce60af9696..2c31bfbf6b93 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5350,6 +5447,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5362,6 +5459,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -137951,10 +137951,10 @@ index b9ce60af9696..2c31bfbf6b93 100644 2.18.4 -From 729ebac60c001821dd9ae590d85b7e1df432aa6f Mon Sep 17 00:00:00 2001 +From a58121c67a068990785718af3b745f3ecd55a515 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:42:03 +0100 -Subject: [PATCH 145/661] usbhid: call usb_fixup_endpoint after mangling +Subject: [PATCH 145/693] usbhid: call usb_fixup_endpoint after mangling intervals Lets the mousepoll override mechanism work with xhci. @@ -137980,10 +137980,10 @@ index 1134d543e5d6..3d5d82f7176f 100644 2.18.4 -From 9b8154757b65416ab61989509fb85bb95d31c651 Mon Sep 17 00:00:00 2001 +From ac041563429e425cbabc9efa7f9d6d2cdaf54e0c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Jun 2019 17:38:28 +0100 -Subject: [PATCH 146/661] arm: bcm2835: Add bcm2838 compatible string. +Subject: [PATCH 146/693] arm: bcm2835: Add bcm2838 compatible string. Signed-off-by: Phil Elwell --- @@ -138006,10 +138006,10 @@ index 7d59a9364175..282a023027fc 100644 2.18.4 -From 96eb1905a745535b03ba07f60dd61969cc600b7e Mon Sep 17 00:00:00 2001 +From 7b2595f086be7fb3a6a0e22d3a748e2596964289 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Oct 2018 17:22:43 -0700 -Subject: [PATCH 147/661] drm/v3d: Add support for 2711. +Subject: [PATCH 147/693] drm/v3d: Add support for 2711. Signed-off-by: Eric Anholt --- @@ -138032,10 +138032,10 @@ index 9f7c26193831..a463f8c0ad4c 100644 2.18.4 -From b6da5e3d1d23de81d07a444b10641325a995c74b Mon Sep 17 00:00:00 2001 +From 64bd2147a5ea4704c81d257820249a49fa8a92c2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 12:35:43 -0800 -Subject: [PATCH 148/661] drm/v3d: Skip MMU flush if the device is currently +Subject: [PATCH 148/693] drm/v3d: Skip MMU flush if the device is currently off. If it's off, we know it will be reset on poweron, so the MMU won't @@ -138090,10 +138090,10 @@ index 5a453532901f..8986e7b96461 100644 2.18.4 -From 25194bcb1a8f0d869f70a2f7dc403d6338c87264 Mon Sep 17 00:00:00 2001 +From 754054800a49912cf5376aaf2a9db3c966e97f89 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 14:47:57 -0800 -Subject: [PATCH 149/661] drm/v3d: Hook up the runtime PM ops. +Subject: [PATCH 149/693] drm/v3d: Hook up the runtime PM ops. In translating the runtime PM code from vc4, I missed the ".pm" assignment to actually connect them up. Fixes missing MMU setup if @@ -138130,10 +138130,10 @@ index a463f8c0ad4c..5f581fe8c918 100644 2.18.4 -From 6120b9adee5fce241642e3deb1092ff4e74b4a61 Mon Sep 17 00:00:00 2001 +From b5771082e8a9cc68bfe471b9f70614e8dbddfe4f Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 11 Jul 2019 17:55:43 +0100 -Subject: [PATCH 150/661] xhci: add quirk for host controllers that don't +Subject: [PATCH 150/693] xhci: add quirk for host controllers that don't update endpoint DCS Seen on a VLI VL805 PCIe to USB controller. For non-stream endpoints @@ -138154,10 +138154,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 5bbccc9a0179..96e37f60c7c2 100644 +index 7bc18cf8042c..d7c948f569be 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -270,8 +270,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -274,8 +274,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) pdev->device == 0x3432) xhci->quirks |= XHCI_BROKEN_STREAMS; @@ -138230,10 +138230,10 @@ index d01241f1daf3..03e4280dbb5a 100644 2.18.4 -From 16215bf90ef3a0733db9d3b49ab80763130d3826 Mon Sep 17 00:00:00 2001 +From 57265aa8112f69a69a78645d8f8ac1e2fb7030c7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Jul 2019 15:38:35 +0100 -Subject: [PATCH 151/661] i2c: bcm2835: Set clock-stretch timeout to 35ms +Subject: [PATCH 151/693] i2c: bcm2835: Set clock-stretch timeout to 35ms The BCM2835 I2C blocks have a register to set the clock-stretch timeout - how long the device is allowed to hold SCL low - in bus @@ -138283,10 +138283,10 @@ index 18b2e9e3d752..5b2589b6b9cc 100644 2.18.4 -From 9fb39990205281276695a4b1eaa0ed359dac35e1 Mon Sep 17 00:00:00 2001 +From 4964e86ad2c64b35edd4a72dc8faaa883a59b581 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Aug 2019 15:23:14 +0100 -Subject: [PATCH 152/661] clk-bcm2835: Avoid null pointer exception +Subject: [PATCH 152/693] clk-bcm2835: Avoid null pointer exception clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating @@ -138318,10 +138318,10 @@ index 3c55594684cd..d686c51a68a9 100644 2.18.4 -From faa58ad015352095578b15e7476f0d17e54052f4 Mon Sep 17 00:00:00 2001 +From 0bf78fc0bc837443c94bcc96223e83f369c1c5f5 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 15:13:17 -0800 -Subject: [PATCH 153/661] drm/v3d: HACK: gut runtime pm for now. +Subject: [PATCH 153/693] drm/v3d: HACK: gut runtime pm for now. Something is still unstable -- on starting a new glxgears from an idle X11, I get an MMU violation in high addresses. The CTS also failed @@ -138435,10 +138435,10 @@ index 5f581fe8c918..e6dffb116eb3 100644 2.18.4 -From 4b328f46067ed30c3cbfefc1e0075cd6ef124b57 Mon Sep 17 00:00:00 2001 +From 9bd626ee842332018f7649d8b49b4dc728f11e9c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 13:22:53 -0700 -Subject: [PATCH 154/661] drm/v3d: Clock V3D down when not in use. +Subject: [PATCH 154/693] drm/v3d: Clock V3D down when not in use. My various attempts at re-enabling runtime PM have failed, so just crank the clock down when V3D is idle to reduce power consumption. @@ -138606,10 +138606,10 @@ index 182c586525eb..b7b439de8660 100644 2.18.4 -From 245a024c4e205296c5206bf300618d338f5eb33d Mon Sep 17 00:00:00 2001 +From d88aa9987844d727915c3e71ed54e8b254f9aceb Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 9 May 2019 14:30:37 +0100 -Subject: [PATCH 155/661] drivers: char: add chardev for mmap'ing the RPiVid +Subject: [PATCH 155/693] drivers: char: add chardev for mmap'ing the RPiVid control registers Based on the gpiomem driver, allow mapping of the decoder register @@ -139064,10 +139064,10 @@ index b2d157091e12..f70a810c55f7 100644 2.18.4 -From d1c079470dca9df827ddec65b1c7ce88076d50fc Mon Sep 17 00:00:00 2001 +From 74a59579be6f584cb476209451e3a663573f05b6 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 1 Aug 2019 16:41:20 +0100 -Subject: [PATCH 156/661] hid: usb: Add device quirks for Freeway Airmouse T3 +Subject: [PATCH 156/693] hid: usb: Add device quirks for Freeway Airmouse T3 and MX3 These wireless mouse/keyboard combo remote control devices specify @@ -139088,7 +139088,7 @@ Signed-off-by: Jonathan Bell 2 files changed, 8 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index b93ce0d475e0..8e3be9ec73cb 100644 +index e220a05a05b4..00112131bf61 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -220,6 +220,9 @@ @@ -139101,7 +139101,7 @@ index b93ce0d475e0..8e3be9ec73cb 100644 #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1264,6 +1267,9 @@ +@@ -1265,6 +1268,9 @@ #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 @@ -139135,10 +139135,10 @@ index 2e38340e19df..bdc135f029bd 100644 2.18.4 -From 17baa5a1e9879c4fe8aca7a81187d45c92d9723d Mon Sep 17 00:00:00 2001 +From e2c9a74bcdd22474f05ec725157f8d4392d6e220 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 16 Jul 2019 12:18:21 +0100 -Subject: [PATCH 157/661] Add HDMI1 facility to the driver. +Subject: [PATCH 157/693] Add HDMI1 facility to the driver. For generic ALSA, all you need is the bcm2835.h change, but have also added structures for IEC958 HDMI. Not sure how to @@ -139228,10 +139228,10 @@ index 1b36475872d6..02f50768af96 100644 2.18.4 -From 5c8a8cea0ee920723c3bddb074f969676184dfc1 Mon Sep 17 00:00:00 2001 +From c0a4d378912ad6a831741f38a5c7eb0ef4537b15 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Aug 2019 08:51:43 +0100 -Subject: [PATCH 158/661] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail +Subject: [PATCH 158/693] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail Some combinations of Pi 4Bs and Ethernet switches don't reliably get a DCHP-assigned IP address, leaving the unit with a self=assigned 169.254 @@ -139285,10 +139285,10 @@ index 848c29c5c33d..8336558e4738 100644 2.18.4 -From cdc11e6c6601aaa101b7a45703a1f1d6d44aadac Mon Sep 17 00:00:00 2001 +From c0084ce5cc4f29876d467b983f704ca5391e5ed2 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 13 Aug 2019 15:53:29 +0100 -Subject: [PATCH 159/661] xhci: Use more event ring segment table entries +Subject: [PATCH 159/693] xhci: Use more event ring segment table entries Users have reported log spam created by "Event Ring Full" xHC event TRBs. These are caused by interrupt latency in conjunction with a very @@ -139308,10 +139308,10 @@ Signed-off-by: Jonathan Bell 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 138ba4528dd3..994e13c11a3a 100644 +index 8ce043e6ed87..7f1fd3512233 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -2512,9 +2512,11 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) +@@ -2524,9 +2524,11 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) * Event ring setup: Allocate a normal ring, but also setup * the event ring segment table (ERST). Section 4.9.3. */ @@ -139325,7 +139325,7 @@ index 138ba4528dd3..994e13c11a3a 100644 if (!xhci->event_ring) goto fail; if (xhci_check_trb_in_td_math(xhci) < 0) -@@ -2527,7 +2529,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) +@@ -2539,7 +2541,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) /* set ERST count with the number of entries in the segment table */ val = readl(&xhci->ir_set->erst_size); val &= ERST_SIZE_MASK; @@ -139353,10 +139353,10 @@ index 03e4280dbb5a..4f24ad7eccd9 100644 2.18.4 -From 029317be81cf893b1abeef3bf37c773bd459d9bf Mon Sep 17 00:00:00 2001 +From aed980a3f2e3588da315c14964ebff4c7d8e322f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 15 Aug 2019 12:02:34 +0100 -Subject: [PATCH 160/661] configs: arm64/bcm2711: Enable V3D +Subject: [PATCH 160/693] configs: arm64/bcm2711: Enable V3D Enable the V3D driver, which depends on BCM2835_POWER. @@ -139387,10 +139387,10 @@ index 9a5c44606337..b0e048697964 100644 2.18.4 -From e9074653f10ec1acf58526b786e75bdb30c69709 Mon Sep 17 00:00:00 2001 +From 86847643d0a13c500984d177426f841b4f7aa1df Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:16:56 +0100 -Subject: [PATCH 161/661] arch/arm: Add model string to cpuinfo +Subject: [PATCH 161/693] arch/arm: Add model string to cpuinfo Signed-off-by: Phil Elwell --- @@ -139398,10 +139398,10 @@ Signed-off-by: Phil Elwell 1 file changed, 10 insertions(+) diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c -index 3f65d0ac9f63..6f39d21f4254 100644 +index f90479d8b50c..cd6db47752fa 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c -@@ -1244,6 +1244,8 @@ static int c_show(struct seq_file *m, void *v) +@@ -1253,6 +1253,8 @@ static int c_show(struct seq_file *m, void *v) { int i, j; u32 cpuid; @@ -139410,7 +139410,7 @@ index 3f65d0ac9f63..6f39d21f4254 100644 for_each_online_cpu(i) { /* -@@ -1303,6 +1305,14 @@ static int c_show(struct seq_file *m, void *v) +@@ -1312,6 +1314,14 @@ static int c_show(struct seq_file *m, void *v) seq_printf(m, "Revision\t: %04x\n", system_rev); seq_printf(m, "Serial\t\t: %s\n", system_serial); @@ -139429,10 +139429,10 @@ index 3f65d0ac9f63..6f39d21f4254 100644 2.18.4 -From 2c6fc2316b77aa6c4683ce2249334012a0b48fce Mon Sep 17 00:00:00 2001 +From c40ad59472f062d92417d3a6eae2341782d3e5af Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:17:25 +0100 -Subject: [PATCH 162/661] arch/arm64: Add Revision, Serial, Model to cpuinfo +Subject: [PATCH 162/693] arch/arm64: Add Revision, Serial, Model to cpuinfo Signed-off-by: Phil Elwell --- @@ -139493,10 +139493,10 @@ index 77605aec25fe..721350d21074 100644 2.18.4 -From 52dc4e95d8dbca68bfbcef2f2a2f8a1ec414168b Mon Sep 17 00:00:00 2001 +From 14693a2a1e278a4f4e8f0e8ed60531dc9c3be1d9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Aug 2019 13:34:30 +0100 -Subject: [PATCH 163/661] media: dt-bindings: Add binding for the Sony IMX219 +Subject: [PATCH 163/693] media: dt-bindings: Add binding for the Sony IMX219 sensor The IMX219 is an 8MPix CSI2 sensor, supporting 2 or 4 data lanes. @@ -139577,10 +139577,10 @@ index 000000000000..a02f1ce1e120 2.18.4 -From 67ff8dce253f4ce670831b27a6266c6d351b720b Mon Sep 17 00:00:00 2001 +From 9d1d1b38cbcfb8b8671ae3edca0b326f6f5f2dd3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:04:51 +0100 -Subject: [PATCH 164/661] v4l2: Add a Greyworld AWB mode. +Subject: [PATCH 164/693] v4l2: Add a Greyworld AWB mode. Adds a simple greyworld white balance preset, mainly for use with cameras without an IR filter (eg Raspberry Pi NoIR) @@ -139592,7 +139592,7 @@ Signed-off-by: Dave Stevenson 2 files changed, 2 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c -index cfe422d9f439..8d73cab469d1 100644 +index 41f8410d08d6..fb87c8295da4 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -275,6 +275,7 @@ const char * const *v4l2_ctrl_get_menu(u32 id) @@ -139619,10 +139619,10 @@ index a184c4939438..fbe96b80a748 100644 2.18.4 -From 983b0f5502983a5e84436b906265749a71dca26b Mon Sep 17 00:00:00 2001 +From 9c68acd4f210924b043fc0d3df7e7abd6e701e22 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:13:06 +0100 -Subject: [PATCH 165/661] staging: bcm2835-camera: Add greyworld AWB mode +Subject: [PATCH 165/693] staging: bcm2835-camera: Add greyworld AWB mode This is mainly used for the NoIR camera which has no IR filter and can completely confuse normal AWB presets. @@ -139664,10 +139664,10 @@ index 1793103b18fd..27bafc5f01d2 100644 2.18.4 -From df50164310e15efb0efee801bdcb12dcb865e7e7 Mon Sep 17 00:00:00 2001 +From 04e463790e3fdb4e05b0c1e17479103e31bfafd0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 18 Sep 2019 17:22:36 +0100 -Subject: [PATCH 166/661] drm/v3d: Delete pm_runtime support +Subject: [PATCH 166/693] drm/v3d: Delete pm_runtime support The pm_runtime was blocking changelist submission, so delete it as a temporary workaround. @@ -139734,10 +139734,10 @@ index 8986e7b96461..618503f2f2f1 100644 2.18.4 -From 928da51deeeba38358ddf39e033397aefb679398 Mon Sep 17 00:00:00 2001 +From fc3f7c7a5bca0dc25752bfef668beda683809541 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Sep 2019 09:26:41 +0100 -Subject: [PATCH 167/661] kbuild: Allow .dtbo overlays to be built piecemeal +Subject: [PATCH 167/693] kbuild: Allow .dtbo overlays to be built piecemeal Before 4.20, it was possible to build an arbitrary overlay by copying it to arm/boot/dts/overlays/mytest-overlay.dts and running: @@ -139759,7 +139759,7 @@ Signed-off-by: Phil Elwell 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile -index fd5c8b5c013b..3f857f7615ae 100644 +index 6e4e536a0d20..732b650b77ff 100644 --- a/Makefile +++ b/Makefile @@ -1353,6 +1353,9 @@ ifneq ($(dtstree),) @@ -139776,10 +139776,10 @@ index fd5c8b5c013b..3f857f7615ae 100644 2.18.4 -From 4f58f212c7c3158dab5383bbbdd84c4e2fcfd189 Mon Sep 17 00:00:00 2001 +From de9e6f02c72ad938791f4698ebc53333bbb054ab Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Thu, 19 Sep 2019 20:45:30 +0200 -Subject: [PATCH 168/661] ARM: bcm: Switch board, clk and pinctrl to bcm2711 +Subject: [PATCH 168/693] ARM: bcm: Switch board, clk and pinctrl to bcm2711 compatible After the decision to use bcm2711 compatible for upstream, we should @@ -139808,10 +139808,10 @@ index 282a023027fc..e538e0f899a5 100644 2.18.4 -From f3596a87ac8bfed81bcc97b8d58c3f590e58725b Mon Sep 17 00:00:00 2001 +From 8a7b0dac0ad20c7547b1837bc6299322942fbbac Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 24 Sep 2019 18:26:55 +0100 -Subject: [PATCH 169/661] Rename HDMI ALSA device names, check for enable state +Subject: [PATCH 169/693] Rename HDMI ALSA device names, check for enable state HDMI Alsa devices renamed to match names used by DRM, to HDMI 1 and HDMI 2 @@ -139953,10 +139953,10 @@ index eb8a8a5b7ec8..f926784c622d 100644 2.18.4 -From 8732fafcbe83021d570a86c8e3086a8d432f72f8 Mon Sep 17 00:00:00 2001 +From ed3e4777306fcd664b2311fa4a10f03218934b8c Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:08 +0200 -Subject: [PATCH 170/661] dt-bindings: Add binding for the Infineon IRS1125 +Subject: [PATCH 170/693] dt-bindings: Add binding for the Infineon IRS1125 sensor Adds a binding for the Infineon IRS1125 time-of-flight depth @@ -140026,10 +140026,10 @@ index 000000000000..25a48028c957 2.18.4 -From 0ea6abe9251b65ec77126690fb6b80be90932c91 Mon Sep 17 00:00:00 2001 +From 101e6b2d49956bcbfae35b4f2444c7b6c0ed2c74 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:36 +0200 -Subject: [PATCH 171/661] media: i2c: Add a driver for the Infineon IRS1125 +Subject: [PATCH 171/693] media: i2c: Add a driver for the Infineon IRS1125 depth sensor The Infineon IRS1125 is a time of flight depth sensor that @@ -141271,10 +141271,10 @@ index 000000000000..dccaca23aa76 2.18.4 -From 907ddc076fef420080b8b64a3453281af0026538 Mon Sep 17 00:00:00 2001 +From 8d3c7f00686477029404315e4afe36d296ca842a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 14:01:41 +0000 -Subject: [PATCH 172/661] drm/v3d: Don't clear MMU control bits on exception +Subject: [PATCH 172/693] drm/v3d: Don't clear MMU control bits on exception MMU exception conditions are reported in the V3D_MMU_CTRL register as write-1-to-clear (W1C) bits. The MMU interrupt handling code clears any @@ -141311,10 +141311,10 @@ index c88686489b88..b804783e2795 100644 2.18.4 -From 098d62153613f43fc6d9421da2f7f7f58f38a72b Mon Sep 17 00:00:00 2001 +From aaa03d308c6b8d9c4d8fc31f907eb014344503af Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 20:18:08 +0000 -Subject: [PATCH 173/661] drm/v3d: Suppress all but the first MMU error +Subject: [PATCH 173/693] drm/v3d: Suppress all but the first MMU error The v3d driver currently encounters a lot of MMU PTE exceptions, so only log the first to avoid swamping the kernel log. @@ -141356,10 +141356,10 @@ index b804783e2795..063418907a19 100644 2.18.4 -From d74948a67acd41a3e5b59624bf7d4c0616c06f95 Mon Sep 17 00:00:00 2001 +From 2614d0b30c7018507e61336098c04c30d299fa25 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Nov 2019 16:41:21 +0000 -Subject: [PATCH 174/661] drm/v3d: Plug dma_fence leak +Subject: [PATCH 174/693] drm/v3d: Plug dma_fence leak The irq_fence and done_fence are given a reference that is never released. The necessary dma_fence_put()s seem to have been @@ -141390,10 +141390,10 @@ index 49c7920608e2..bfbe33a9492d 100644 2.18.4 -From 24d4b639c24bc92a0d90dff7c9dac176c813f4aa Mon Sep 17 00:00:00 2001 +From 2c4e124f4dbd4635abcf4ee30a70172a1d3eba0b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:48 +0000 -Subject: [PATCH 175/661] staging: vchiq_arm: Register vcsm-cma as a platform +Subject: [PATCH 175/693] staging: vchiq_arm: Register vcsm-cma as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -141436,10 +141436,10 @@ index b8579af3948c..5d4b976820fa 100644 2.18.4 -From 9519bec20f68ea1745034d23e891e7e5e7d36a54 Mon Sep 17 00:00:00 2001 +From c7933bcb08450969e1e680e3e82f26bb689ffe85 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:58 +0000 -Subject: [PATCH 176/661] staging: vchiq_arm: Register bcm2835-codec as a +Subject: [PATCH 176/693] staging: vchiq_arm: Register bcm2835-codec as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -141482,10 +141482,10 @@ index 5d4b976820fa..3bbe533007e5 100644 2.18.4 -From aaf961fbfc680e04fd669384c9347433a5535211 Mon Sep 17 00:00:00 2001 +From e7b7c89a6508e15c9cbab3fdceb9b220670ecaaa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Nov 2019 11:59:01 +0000 -Subject: [PATCH 177/661] net: bcmgenet: The second IRQ is optional +Subject: [PATCH 177/693] net: bcmgenet: The second IRQ is optional As of 5.4, the kernel logs errors for absent IRQs unless requested with platform_get_irq_optional. @@ -141512,10 +141512,10 @@ index 063418907a19..0f7a23f051df 100644 2.18.4 -From 5cf9e4ec540380b39d8440d0661c88b67d002b17 Mon Sep 17 00:00:00 2001 +From 4cba69a77e63686402f395aa8b28fd369facf7c1 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 31 Oct 2019 14:39:44 +0000 -Subject: [PATCH 178/661] net:phy:2711 Allow ethernet LED mode to be set via +Subject: [PATCH 178/693] net:phy:2711 Allow ethernet LED mode to be set via device tree Add device tree entries and code to allow the specification of @@ -141564,10 +141564,10 @@ index dbed15dc0fe7..10d70bde381c 100644 2.18.4 -From 65f828f3f0409c7d674c36905a06bce8ba85cf85 Mon Sep 17 00:00:00 2001 +From 6350516737499a2ace685d2e1bcc7f0fcc5070d5 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 7 Nov 2019 14:59:59 +0000 -Subject: [PATCH 179/661] net:phy:2711 Change the default ethernet LED actions +Subject: [PATCH 179/693] net:phy:2711 Change the default ethernet LED actions This should return default behaviour back to that of previous releases. @@ -141603,10 +141603,10 @@ index 10d70bde381c..6de9b072b6b9 100644 2.18.4 -From d9a3728376a9c08a031394c58804c3d1db4be60e Mon Sep 17 00:00:00 2001 +From 689c8a707e1b4e05aa4b75dddccfcb9354c1c490 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 23 Aug 2019 16:34:38 +0100 -Subject: [PATCH 180/661] v3d_drv: Handle missing clock more gracefully +Subject: [PATCH 180/693] v3d_drv: Handle missing clock more gracefully Signed-off-by: popcornmix --- @@ -141636,10 +141636,10 @@ index 065fb20cc4a8..bfbea29c6c1f 100644 2.18.4 -From 7fb434676f33da110185b03c64cfa302c6c4cf59 Mon Sep 17 00:00:00 2001 +From bd93f8eddbcbcbad5656978715b26250eacfbd51 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Sep 2019 17:59:14 +0100 -Subject: [PATCH 181/661] v3d_gem: Kick the clock so firmware knows we are +Subject: [PATCH 181/693] v3d_gem: Kick the clock so firmware knows we are using firmware clock interface Setting the v3d clock to low value allows firmware to handle dvfs in case @@ -141669,10 +141669,10 @@ index bfbe33a9492d..b4fb899a9409 100644 2.18.4 -From a3749ff875125cc25996aefc931f8ab83cf864c0 Mon Sep 17 00:00:00 2001 +From 19ffd30964f9f3ba913db43e4e80e55eb6197727 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 9 Sep 2019 15:49:56 +0100 -Subject: [PATCH 182/661] clk-raspberrypi: Allow cpufreq driver to also adjust +Subject: [PATCH 182/693] clk-raspberrypi: Allow cpufreq driver to also adjust gpu clocks For performance/power it is beneficial to adjust gpu clocks with arm clock. @@ -141700,10 +141700,10 @@ index f89b9cfc4309..f4884a5b598a 100644 2.18.4 -From 04a666cf18eadf39790696584876599bd0b4738c Mon Sep 17 00:00:00 2001 +From dff06d1455c968dc4fe7d87a1c718d9611e0ddc3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 3 Sep 2019 20:28:00 +0100 -Subject: [PATCH 183/661] clk-bcm2835: Disable v3d clock +Subject: [PATCH 183/693] clk-bcm2835: Disable v3d clock This is controlled by firmware, see clk-raspberrypi.c @@ -141764,10 +141764,10 @@ index d686c51a68a9..84f24244d1b5 100644 2.18.4 -From 5a372e8f5e1e93b6373faa53bda2c61372bbe900 Mon Sep 17 00:00:00 2001 +From bde7e1c2e324d068d3186f6c8e48714965aa07e2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Nov 2019 16:23:32 +0000 -Subject: [PATCH 184/661] drm/v3d: Set dma_mask as well as coherent_dma_mask +Subject: [PATCH 184/693] drm/v3d: Set dma_mask as well as coherent_dma_mask Both coherent_dma_mask and dma_mask act as constraints on allocations and bounce buffer usage, so be sure to set dma_mask to the appropriate @@ -141797,10 +141797,10 @@ index bfbea29c6c1f..3237f47a4792 100644 2.18.4 -From b8be5f6c9f4aaab5fccccabd7d7b3be586590b2e Mon Sep 17 00:00:00 2001 +From 32b5aa1efe0df13c4ac643097cffe51112079405 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 29 Jan 2019 16:13:25 +0000 -Subject: [PATCH 185/661] staging: vchiq_arm: Set up dma ranges on child +Subject: [PATCH 185/693] staging: vchiq_arm: Set up dma ranges on child devices The VCHIQ driver now loads the audio, camera, codec, and vc-sm @@ -141836,10 +141836,10 @@ index 3bbe533007e5..ed6c1747be64 100644 2.18.4 -From 5bd2ccb7880cb0191c83861347cb24c954062268 Mon Sep 17 00:00:00 2001 +From 07e2c944d0cec3b454a998232717b41eab305c61 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Jun 2019 12:15:50 +0100 -Subject: [PATCH 186/661] staging: vchiq: Use the old dma controller for OF +Subject: [PATCH 186/693] staging: vchiq: Use the old dma controller for OF config on platform devices vchiq on Pi4 is no longer under the soc node, therefore it @@ -141893,10 +141893,10 @@ index ed6c1747be64..5e704b366676 100644 2.18.4 -From fcb09cfc820c1d97730664eba3b0938e4bf80d66 Mon Sep 17 00:00:00 2001 +From 8a018bff118a4fb77029150dd0be0ced32d16ca1 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Fri, 27 Dec 2019 11:40:56 +0100 -Subject: [PATCH 187/661] ARM: bcm: Backport BCM2711 support from upstream +Subject: [PATCH 187/693] ARM: bcm: Backport BCM2711 support from upstream Make the BCM2711 a different machine, but keep it in board_bcm2835. @@ -141946,10 +141946,10 @@ index e538e0f899a5..91a758c61f48 100644 2.18.4 -From 93aa75b2d62fa28e23940c34857d066e85c9e4c8 Mon Sep 17 00:00:00 2001 +From 713ee8d593145c1775c4f50643855fe31be2b8a5 Mon Sep 17 00:00:00 2001 From: Luke Hinds <7058938+lukehinds@users.noreply.github.com> Date: Wed, 22 Jan 2020 16:03:00 +0000 -Subject: [PATCH 188/661] Initialise rpi-firmware before clk-bcm2835 +Subject: [PATCH 188/693] Initialise rpi-firmware before clk-bcm2835 The IMA (Integrity Measurement Architecture) looks for a TPM (Trusted Platform Module) having been registered when it initialises; otherwise @@ -142001,10 +142001,10 @@ index e7df000f8b2c..8da5be17b906 100644 2.18.4 -From 65ed0af31a71af3a23db04df6140ca1e7a268ce2 Mon Sep 17 00:00:00 2001 +From 1903efea6c0481322f58857f95191a37068d922e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 17:30:46 +0000 -Subject: [PATCH 189/661] staging: vchiq_arm: Give vchiq children DT nodes +Subject: [PATCH 189/693] staging: vchiq_arm: Give vchiq children DT nodes vchiq kernel clients are now instantiated as platform drivers rather than using DT, but the children of the vchiq interface may still @@ -142046,10 +142046,10 @@ index 5e704b366676..8d518bd9a6cd 100644 2.18.4 -From 904e5aa4c3188dcd6068d506499c2f1536eafdb6 Mon Sep 17 00:00:00 2001 +From 61d6c66d41524211dc96144e5c62777ad67e510b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 16:04:30 +0000 -Subject: [PATCH 190/661] pinctrl: bcm2835: Remove gpiochip on error +Subject: [PATCH 190/693] pinctrl: bcm2835: Remove gpiochip on error A failure in gpiochip_irqchip_add leads to a leak of a gpiochip. Fix the leak with the use of devm_gpiochip_add_data. @@ -142077,10 +142077,10 @@ index bbf761c41dc5..2696029e1689 100644 2.18.4 -From bb7733d4276ac5110a15fdd501b42bc415a48a0b Mon Sep 17 00:00:00 2001 +From 1a0ae110a882b6cf0101e49d0d491809865c8c7a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 14:05:42 +0000 -Subject: [PATCH 191/661] pinctrl: bcm2835: Change init order for gpio hogs +Subject: [PATCH 191/693] pinctrl: bcm2835: Change init order for gpio hogs pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio side is registered first, but this breaks gpio hogs (which are @@ -142161,10 +142161,10 @@ index 2696029e1689..edb3a863871d 100644 2.18.4 -From c89f5de219d3a0f54b8655f5a56ff4e737e481f1 Mon Sep 17 00:00:00 2001 +From c78f45ba8ca688bba25c8b25b3185d728597e1be Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 25 Feb 2020 17:38:20 +0000 -Subject: [PATCH 192/661] pinctrl: bcm2835: Accept fewer than expected IRQs +Subject: [PATCH 192/693] pinctrl: bcm2835: Accept fewer than expected IRQs The downstream .dts files only request two GPIO IRQs. Truncate the array of parent IRQs when irq_of_parse_and_map returns 0. @@ -142198,10 +142198,10 @@ index edb3a863871d..bda29f421e78 100644 2.18.4 -From 53b054d1bf51dcc1f6511f3c07a67e3c24214988 Mon Sep 17 00:00:00 2001 +From 334dc8b84bb038c50cbc8f01f9d8fd295aef0125 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:40:19 +0000 -Subject: [PATCH 193/661] drivers: char: vcio: Use common compat header +Subject: [PATCH 193/693] drivers: char: vcio: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -142227,10 +142227,10 @@ index d2598663a2b5..a39155a94fb7 100644 2.18.4 -From b556156adc9c21ccae0e28d02eb16bfd2ecc2b43 Mon Sep 17 00:00:00 2001 +From e228ecacfc665467d97c1df4d9df7cec1280f514 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:42:23 +0000 -Subject: [PATCH 194/661] video: fbdev: bcm2708_fb: Use common compat header +Subject: [PATCH 194/693] video: fbdev: bcm2708_fb: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -142256,10 +142256,10 @@ index 0e9ec3f593b8..17e9260655e4 100644 2.18.4 -From 0febefac2b5d263b6d1efcb216e8c5aaeb4e3114 Mon Sep 17 00:00:00 2001 +From 82e7a436a19fe1974adf4d70ce87ee01e617a3db Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 6 Feb 2020 12:23:15 +0000 -Subject: [PATCH 195/661] of: overlay: Correct symbol path fixups +Subject: [PATCH 195/693] of: overlay: Correct symbol path fixups When symbols from overlays are added to the live tree their paths must be rebased. The translated symbol is normally the result of joining @@ -142283,7 +142283,7 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+) diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c -index 50bbe0edf538..7e585d201ba0 100644 +index 43a77d720008..bccef312f4c3 100644 --- a/drivers/of/overlay.c +++ b/drivers/of/overlay.c @@ -245,6 +245,8 @@ static struct property *dup_and_fixup_symbol_prop( @@ -142299,10 +142299,10 @@ index 50bbe0edf538..7e585d201ba0 100644 2.18.4 -From 9b0da362c293203d219e32583e5e1f062bdd6b75 Mon Sep 17 00:00:00 2001 +From 34582b30c54faecad20e7d593d09c7e0820e0743 Mon Sep 17 00:00:00 2001 From: Jim Quinlan Date: Mon, 15 Jan 2018 18:28:39 -0500 -Subject: [PATCH 196/661] dt-bindings: pci: Add DT docs for Brcmstb PCIe device +Subject: [PATCH 196/693] dt-bindings: pci: Add DT docs for Brcmstb PCIe device The DT bindings description of the Brcmstb PCIe device is described. This node can be used by almost all Broadcom settop box chips, using @@ -142383,10 +142383,10 @@ index 000000000000..a1a9ad5e70ca 2.18.4 -From 5c6ac96f33566ce54eb160bca9b5b49ed0ac23f0 Mon Sep 17 00:00:00 2001 +From a8b0d944310f6cdd8db1db8b450f1198a73c275d Mon Sep 17 00:00:00 2001 From: Nataliya Korovkina Date: Thu, 12 Mar 2020 17:22:53 -0400 -Subject: [PATCH 197/661] Kbuild: Allow .dtbo overlays to be built, adjust. +Subject: [PATCH 197/693] Kbuild: Allow .dtbo overlays to be built, adjust. This is adjustment to commit d368ceaacdccd7732dc97d1d7987bdf7149d62e3 "kbuild: Allow .dtbo overlays to be built piecemeal" @@ -142399,7 +142399,7 @@ Signed-off-by: Nataliya Korovkina 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 3f857f7615ae..59b06068330a 100644 +index 732b650b77ff..b28ddf4f0165 100644 --- a/Makefile +++ b/Makefile @@ -1353,7 +1353,7 @@ ifneq ($(dtstree),) @@ -142415,10 +142415,10 @@ index 3f857f7615ae..59b06068330a 100644 2.18.4 -From 0deb873ccafe51969dd9915757c9b76820ab1ec1 Mon Sep 17 00:00:00 2001 +From c8e160d1ec8bf7efac82befbae0dfe11022ddfd7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 Apr 2020 11:22:44 +0100 -Subject: [PATCH 198/661] bcmgenet: Disable skip_umac_reset by default +Subject: [PATCH 198/693] bcmgenet: Disable skip_umac_reset by default Possible fixed upstream by 'net: bcmgenet: keep MAC in reset until PHY is up' @@ -142444,10 +142444,10 @@ index 8336558e4738..ae7011c1e1f7 100644 2.18.4 -From 87ddc02e0c949b7d8aa04fa7185fcc98ecba8225 Mon Sep 17 00:00:00 2001 +From 903ed1f316fad01ffaf843c2fb9c24a1ca38a0d9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:22:06 +0000 -Subject: [PATCH 199/661] drm/fourcc: Add packed 10bit YUV 4:2:0 format +Subject: [PATCH 199/693] drm/fourcc: Add packed 10bit YUV 4:2:0 format Adds a format that is 3 10bit YUV 4:2:0 samples packed into a 32bit work (with 2 spare bits). @@ -142507,10 +142507,10 @@ index 5498d7a6556a..3aeab2680295 100644 2.18.4 -From 379fa40727c5a755bf9ba8643ce61be52dd69490 Mon Sep 17 00:00:00 2001 +From 8e529b5f99a95d4ba1122a85de6fb9d1c2eeb8ca Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:25 +0100 -Subject: [PATCH 200/661] media: uapi: hevc: Add scaling matrix control +Subject: [PATCH 200/693] media: uapi: hevc: Add scaling matrix control Taken from https://patchwork.linuxtv.org/patch/60728/ Changes (mainly documentation) have been requested. @@ -142590,7 +142590,7 @@ index d585909bc4e2..f817c643761b 100644 Buffers associated with this pixel format must contain the appropriate number of macroblocks to decode a full corresponding frame. diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c -index 8d73cab469d1..653b0040a5f7 100644 +index fb87c8295da4..517c4499f56d 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -1022,6 +1022,7 @@ const char *v4l2_ctrl_get_name(u32 id) @@ -142621,7 +142621,7 @@ index 8d73cab469d1..653b0040a5f7 100644 case V4L2_CTRL_TYPE_AREA: area = p; if (!area->width || !area->height) -@@ -2628,6 +2635,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl, +@@ -2645,6 +2652,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl, case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params); break; @@ -142669,10 +142669,10 @@ index 1009cf0891cc..1592e52c3614 100644 2.18.4 -From 32cbe72e86eba60ecb525bdf630b3f65f8dbe412 Mon Sep 17 00:00:00 2001 +From e5cd3a65ae21c7b76a965f7eeecfe8c69313b486 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:27 +0100 -Subject: [PATCH 201/661] media: uapi: hevc: Add segment address field +Subject: [PATCH 201/693] media: uapi: hevc: Add segment address field From https://patchwork.linuxtv.org/patch/60725/ Changes requested, but mainly docs. @@ -142738,10 +142738,10 @@ index 1592e52c3614..3e2e32098312 100644 2.18.4 -From 7f67985618821ea0cd31180be1ff61d52f10b0dd Mon Sep 17 00:00:00 2001 +From 0eccfa1d2fd1ee88de52f93e5c708e836db66f22 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 23 Mar 2020 18:34:01 +0000 -Subject: [PATCH 202/661] media: hevc_ctrls: Add slice param dependent slice +Subject: [PATCH 202/693] media: hevc_ctrls: Add slice param dependent slice segment Adds V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT define. @@ -142767,10 +142767,10 @@ index 3e2e32098312..0ba7735465a2 100644 2.18.4 -From 018cc19ff37f39cda511334001ffa3ccd6e0fe9e Mon Sep 17 00:00:00 2001 +From e37107bfdab79091c83df420f772adc22508e9d5 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 23 Mar 2020 19:00:17 +0000 -Subject: [PATCH 203/661] media: uapi: Add hevc ctrls for WPP decoding +Subject: [PATCH 203/693] media: uapi: Add hevc ctrls for WPP decoding WPP can allow greater parallelism within the decode, but needs offset information to be passed in. @@ -142813,10 +142813,10 @@ index 0ba7735465a2..9c976b3cf092 100644 2.18.4 -From 675c379c56654389841c00dcd273af45edb471f3 Mon Sep 17 00:00:00 2001 +From 9dd004ab9008bb5c16635d3a8740da8824795665 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:28:21 +0000 -Subject: [PATCH 204/661] media: videodev2.h: Add a format for column YUV4:2:0 +Subject: [PATCH 204/693] media: videodev2.h: Add a format for column YUV4:2:0 modes Some of the Broadcom codec blocks use a column based YUV4:2:0 image @@ -143130,10 +143130,10 @@ index 56c443cc2c3d..568801746d2d 100644 2.18.4 -From b8a6cf793b3852d95f8a840aaca464fedd5d1242 Mon Sep 17 00:00:00 2001 +From b4d50031bef01b23eae248700371bac494ccc9cc Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 14:46:54 +0000 -Subject: [PATCH 205/661] media: v4l2-mem2mem: allow request job buffer +Subject: [PATCH 205/693] media: v4l2-mem2mem: allow request job buffer processing after job finish Allow the capture buffer to be detached from a v4l2 request job such @@ -143412,10 +143412,10 @@ index c203047eb834..260593fffbc8 100644 2.18.4 -From 2db18e5714a066f27693ddfced6ab59487124efe Mon Sep 17 00:00:00 2001 +From 0434dafd2f214e60489809d194c11af3632d68a1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Mar 2020 10:53:16 +0000 -Subject: [PATCH 206/661] media: dt-bindings: media: Add binding for the +Subject: [PATCH 206/693] media: dt-bindings: media: Add binding for the Raspberry PI HEVC decoder Adds a binding for the HEVC decoder found on the BCM2711 / Raspberry Pi 4. @@ -143506,7 +143506,7 @@ index 000000000000..ce6b81a10303 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 4b0478749279..da6f87b1f53e 100644 +index cbfee297e9f9..b5113e381d78 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3417,6 +3417,13 @@ N: bcm113* @@ -143527,10 +143527,10 @@ index 4b0478749279..da6f87b1f53e 100644 2.18.4 -From 52579dde542e217ab0588463b424187ed6a72b06 Mon Sep 17 00:00:00 2001 +From 1a5707c9269bb76daa9c86ffa13c948e615f9312 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 18:30:41 +0000 -Subject: [PATCH 207/661] staging: media: Add Raspberry Pi V4L2 H265 decoder +Subject: [PATCH 207/693] staging: media: Add Raspberry Pi V4L2 H265 decoder This driver is for the HEVC/H265 decoder block on the Raspberry Pi 4, and conforms to the V4L2 stateless decoder API. @@ -147909,10 +147909,10 @@ index 000000000000..9c4f3fb2f9f6 2.18.4 -From 14d1a4462e67541d423ea5a00f8c1c6d806a1a96 Mon Sep 17 00:00:00 2001 +From 1aec5704750ac437028a1e8116a9c21f129f73fb Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 6 Dec 2019 13:05:27 +0100 -Subject: [PATCH 208/661] mmc: sdhci: Silence MMC warnings +Subject: [PATCH 208/693] mmc: sdhci: Silence MMC warnings When the MMC isn't plugged in, the driver will spam the console which is pretty annoying when using NFS. @@ -147923,7 +147923,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c -index 6edf9fffd934..a72823b45f77 100644 +index 58c977d581e7..a1af2f5c0998 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -41,7 +41,7 @@ @@ -147935,7 +147935,7 @@ index 6edf9fffd934..a72823b45f77 100644 #define MAX_TUNING_LOOP 40 -@@ -3120,7 +3120,7 @@ static void sdhci_timeout_timer(struct timer_list *t) +@@ -3122,7 +3122,7 @@ static void sdhci_timeout_timer(struct timer_list *t) spin_lock_irqsave(&host->lock, flags); if (host->cmd && !sdhci_data_line_cmd(host->cmd)) { @@ -147944,7 +147944,7 @@ index 6edf9fffd934..a72823b45f77 100644 mmc_hostname(host->mmc)); sdhci_dumpregs(host); -@@ -3142,7 +3142,7 @@ static void sdhci_timeout_data_timer(struct timer_list *t) +@@ -3144,7 +3144,7 @@ static void sdhci_timeout_data_timer(struct timer_list *t) if (host->data || host->data_cmd || (host->cmd && sdhci_data_line_cmd(host->cmd))) { @@ -147957,10 +147957,10 @@ index 6edf9fffd934..a72823b45f77 100644 2.18.4 -From 215dba7630412398498373a2666f9521570c277b Mon Sep 17 00:00:00 2001 +From 49f1a37d2530f9c2d5a7a1bc86a64c301d9ae55a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 17:51:09 +0100 -Subject: [PATCH 209/661] dt-bindings: clock: Add a binding for the RPi +Subject: [PATCH 209/693] dt-bindings: clock: Add a binding for the RPi Firmware clocks The firmare running on the RPi VideoCore can be used to discover and @@ -148027,10 +148027,10 @@ index 000000000000..d37bc311321d 2.18.4 -From 1cd2409f00292f09a8a5223f7751f9faecfbd51e Mon Sep 17 00:00:00 2001 +From 7447c3f6a46cf1c2163fcc46df06673c35e51fdf Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 16:45:24 +0100 -Subject: [PATCH 210/661] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI +Subject: [PATCH 210/693] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI controllers bindings The HDMI controllers found in the BCM2711 SoC need some adjustments to the @@ -148207,10 +148207,10 @@ index f54b4e4808f0..899d8cfa1731 100644 2.18.4 -From bb4e56123f9d31a3b0fe10cf56f22b00214dd449 Mon Sep 17 00:00:00 2001 +From 7031be735e7378b9201339bd8674c3ee3b96242a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 27 Jan 2020 10:22:44 +0000 -Subject: [PATCH 211/661] drm: Checking of the pitch is only valid for linear +Subject: [PATCH 211/693] drm: Checking of the pitch is only valid for linear formats framebuffer_check was computing a minimum pitch value and ensuring @@ -148253,10 +148253,10 @@ index 2f5b0c2bb0fe..89ced6af9c5c 100644 2.18.4 -From 9a5cb13970802bec2cba74fe4a027226935700ab Mon Sep 17 00:00:00 2001 +From c67828ae3b37538c763ec67f1977037b44205cd6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Apr 2020 11:59:39 +0100 -Subject: [PATCH 212/661] overlays: Fix dtc warnings in i2c-gpio +Subject: [PATCH 212/693] overlays: Fix dtc warnings in i2c-gpio Better late than never. @@ -148283,10 +148283,10 @@ index 63231b5d7c0c..2323a61edf07 100644 2.18.4 -From 4bc791120920fbefdefebcf85d66eb1432fc329f Mon Sep 17 00:00:00 2001 +From 02f2b026207d6be114baf6655b8846fb4907de24 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 22:18:52 +0100 -Subject: [PATCH 213/661] driver: char: rpivid: Remove legacy name support +Subject: [PATCH 213/693] driver: char: rpivid: Remove legacy name support Signed-off-by: Phil Elwell --- @@ -148342,10 +148342,10 @@ index fbf3d4f3fe0c..5f4c91924ec1 100644 2.18.4 -From ba587dc09a368855be89a53ea14ddc38610443e5 Mon Sep 17 00:00:00 2001 +From 5801b0908028a01515da39593f3fa6334f6a8058 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Apr 2020 10:46:19 +0100 -Subject: [PATCH 214/661] spi: Force CS_HIGH if GPIO descriptors are used +Subject: [PATCH 214/693] spi: Force CS_HIGH if GPIO descriptors are used Commit f3186dd87669 ("spi: Optionally use GPIO descriptors for CS GPIOs") amended of_spi_parse_dt() to always set SPI_CS_HIGH for SPI slaves whose @@ -148375,10 +148375,10 @@ Signed-off-by: Phil Elwell 1 file changed, 9 insertions(+) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c -index 4257a2d368f7..8b283b2c1668 100644 +index 419de3d40481..aad1b16a750e 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -3322,6 +3322,7 @@ static int __spi_validate_bits_per_word(struct spi_controller *ctlr, +@@ -3317,6 +3317,7 @@ static int __spi_validate_bits_per_word(struct spi_controller *ctlr, */ int spi_setup(struct spi_device *spi) { @@ -148386,7 +148386,7 @@ index 4257a2d368f7..8b283b2c1668 100644 unsigned bad_bits, ugly_bits; int status; -@@ -3339,6 +3340,14 @@ int spi_setup(struct spi_device *spi) +@@ -3334,6 +3335,14 @@ int spi_setup(struct spi_device *spi) (SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL | SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL))) return -EINVAL; @@ -148405,10 +148405,10 @@ index 4257a2d368f7..8b283b2c1668 100644 2.18.4 -From 98401632df75084a044600ce6e50c011b49f89b6 Mon Sep 17 00:00:00 2001 +From 6d0f6449822871f23af0f0016ed9df77aba03d7a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Apr 2020 11:30:23 +0100 -Subject: [PATCH 215/661] driver: char: rpivid: Don't map more than wanted +Subject: [PATCH 215/693] driver: char: rpivid: Don't map more than wanted Limit mappings to the permitted range, but don't map more than asked for otherwise we walk off the end of the allocated VMA. @@ -148462,10 +148462,10 @@ index 5f4c91924ec1..9f38083f4cb6 100644 2.18.4 -From 6b22b62c61bdfcb72ec7e3db784e3c83fbb3c59b Mon Sep 17 00:00:00 2001 +From 060d9ef34ac2212de53d14939c9e322e8f60fe6f Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:39:49 +0100 -Subject: [PATCH 216/661] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 216/693] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add driver for the Unicam camera receiver block on @@ -148491,7 +148491,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index da6f87b1f53e..8cecd3fd5dad 100644 +index b5113e381d78..95f16069bdc4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3425,7 +3425,7 @@ F: Documentation/devicetree/bindings/media/rpivid_hevc.jaml @@ -151193,10 +151193,10 @@ index 000000000000..ae059a171d0f 2.18.4 -From 05d4e3577c57abc3d8c869e99488d3edf5a27c4f Mon Sep 17 00:00:00 2001 +From a989d440ccb7e8a4d155dc6e6987a43d0768d231 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:46:29 +0100 -Subject: [PATCH 217/661] media: uapi: v4l2-core: Add sensor ancillary data +Subject: [PATCH 217/693] media: uapi: v4l2-core: Add sensor ancillary data V4L2 foucc type. Add V4L2_META_FMT_SENSOR_DATA format 4CC. @@ -151291,10 +151291,10 @@ index 568801746d2d..d93d5bb7059b 100644 2.18.4 -From 8f404b25ec74bb18cb03b95ffc6deae650980bdd Mon Sep 17 00:00:00 2001 +From f79d77dc76962d3617ae743469c8342b4ea79e58 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Jan 2020 14:06:47 +0000 -Subject: [PATCH 218/661] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus +Subject: [PATCH 218/693] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus format This patch adds MEDIA_BUS_FMT_SENSOR_DATA used by the bcm2835-unicam @@ -151307,7 +151307,7 @@ Signed-off-by: Naushir Patuck 2 files changed, 36 insertions(+) diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst -index c9b7bb3ca089..ab33a3a53881 100644 +index eff6727c69d3..60e1df0dd3ee 100644 --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst @@ -7899,3 +7899,36 @@ formats. @@ -151363,10 +151363,10 @@ index 84fa53ffb13f..3c2848e91c1b 100644 2.18.4 -From 8323aaed598ef2ec0b83429f9c8f45c6214bde0e Mon Sep 17 00:00:00 2001 +From fc4a7a54bbd56aead542a1f98729d2aa46eb0ddb Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 7 Apr 2020 10:42:14 +0100 -Subject: [PATCH 219/661] media: bcm2835-unicam: Add support for mulitple +Subject: [PATCH 219/693] media: bcm2835-unicam: Add support for mulitple device nodes. Move device node specific state out of the device state structure and @@ -152452,10 +152452,10 @@ index 9da9f22c3db5..b34551a3f44b 100644 2.18.4 -From 8149f09361a999aebefb37758193695ab1170037 Mon Sep 17 00:00:00 2001 +From 869146d7d57d2bb711a1910f5729d2ef51fcdbd6 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 16 Apr 2020 11:35:41 +0100 -Subject: [PATCH 220/661] media: bcm2835-unicam: Add embedded data node. +Subject: [PATCH 220/693] media: bcm2835-unicam: Add embedded data node. This patch adds a new node in the bcm2835-unicam driver to support CSI-2 embedded data streams. The subdevice is queried to see if @@ -153626,10 +153626,10 @@ index b34551a3f44b..d5e0f70b600c 100644 2.18.4 -From e3cecc4a319d81a31edd2da9eda83c6457694eec Mon Sep 17 00:00:00 2001 +From 7ee4e9ac1dcda8534cd86c4c1854e93a8d597c00 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 2 Apr 2020 16:08:51 +0100 -Subject: [PATCH 221/661] media: bcm2835-unicam: Use dummy buffer if none have +Subject: [PATCH 221/693] media: bcm2835-unicam: Use dummy buffer if none have been queued If no buffer has been queued by a userland application, we use an @@ -153940,10 +153940,10 @@ index d5e0f70b600c..933f1ba49e3d 100644 2.18.4 -From d3c0678f353bb1af68721d22c569b9e8a8d7d3d9 Mon Sep 17 00:00:00 2001 +From ef1194adafc040e6c93075f3b88f9d5e1b171795 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 222/661] media: bcm2835-unicam: Disable event-related ioctls +Subject: [PATCH 222/693] media: bcm2835-unicam: Disable event-related ioctls on metadata node The unicam driver supports both the SOURCE_CHANGE and CTRL events. Both @@ -153977,10 +153977,10 @@ index 933f1ba49e3d..2d4c7a247fc5 100644 2.18.4 -From 8eab2602b59585756deadcf6af85fdbfa253be8f Mon Sep 17 00:00:00 2001 +From 136e5ae22e3d59ed8db7934ce499cd2a1d74b2cf Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 223/661] media: bcm2835-unicam: Add support for the FRAME_SYNC +Subject: [PATCH 223/693] media: bcm2835-unicam: Add support for the FRAME_SYNC event The FRAME_SYNC event is useful for userspace image processing algorithms @@ -154038,10 +154038,10 @@ index 2d4c7a247fc5..21d3a8585118 100644 2.18.4 -From 288b6de4030dddb6377061a8af27a02c542ade78 Mon Sep 17 00:00:00 2001 +From 5caa4e2e76a6c54c4d1bba05d3879ea1a3d25fa1 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 12 Mar 2020 14:09:38 +0000 -Subject: [PATCH 224/661] media: imx219: Advertise embedded data node on media +Subject: [PATCH 224/693] media: imx219: Advertise embedded data node on media pad 1 This commit updates the imx219 driver to adverise support for embedded @@ -154059,7 +154059,7 @@ Signed-off-by: Naushir Patuck 1 file changed, 155 insertions(+), 71 deletions(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c -index 0ae66091a696..aec43b602649 100644 +index 4771d0ef2c46..5af610f7fc08 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -118,6 +118,16 @@ @@ -154358,7 +154358,7 @@ index 0ae66091a696..aec43b602649 100644 } mutex_unlock(&imx219->mutex); -@@ -1502,13 +1585,14 @@ static int imx219_probe(struct i2c_client *client) +@@ -1511,13 +1594,14 @@ static int imx219_probe(struct i2c_client *client) imx219->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; imx219->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; @@ -154380,10 +154380,10 @@ index 0ae66091a696..aec43b602649 100644 2.18.4 -From 7d45f7bc8c6b2942d37e073fb109e436ed7e0345 Mon Sep 17 00:00:00 2001 +From df2215ebd82b5088ac38f44428b8f3099cc5ab8d Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 16:26:03 +0100 -Subject: [PATCH 225/661] media: bcm2835-unicam: Re-fetch mbus code from subdev +Subject: [PATCH 225/693] media: bcm2835-unicam: Re-fetch mbus code from subdev on a g_fmt call The sensor subdevice may change the Bayer order if a H/V flip is @@ -154435,10 +154435,10 @@ index 21d3a8585118..d4684fb2797f 100644 2.18.4 -From 76c1c41b0931fb71a69cb4e894900b7f35bd7f6a Mon Sep 17 00:00:00 2001 +From d78a3db877556ecddc7a1862b563f55d6eca0fc6 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:20:26 +0100 -Subject: [PATCH 226/661] media: uapi: v4l2-core: Add ISP statistics output +Subject: [PATCH 226/693] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Add V4L2_META_FMT_BCM2835_ISP_STATS V4L2 format type. @@ -154542,10 +154542,10 @@ index d93d5bb7059b..e9fbb04a3519 100644 2.18.4 -From 226b50fb93d5284fc0851efb84e404a8ad7b873c Mon Sep 17 00:00:00 2001 +From a10e011e95c55a8a75c4d5b980a8de8a009644fb Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 15:06:19 +0100 -Subject: [PATCH 227/661] media: uapi: v4l-ctrls: Add CID base for the +Subject: [PATCH 227/693] media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver We are reserving controls for the new bcm2835-isp driver. @@ -154722,10 +154722,10 @@ index fbe96b80a748..0b8ae128b961 100644 2.18.4 -From 076c6262697e719e0dead50df3e7a7ee9a6001fd Mon Sep 17 00:00:00 2001 +From 664b770090f7fee4f6c63f49113cce6f395e4818 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 22 Apr 2020 08:32:32 +0100 -Subject: [PATCH 228/661] staging: vchiq: Load bcm2835_isp driver from vchiq +Subject: [PATCH 228/693] staging: vchiq: Load bcm2835_isp driver from vchiq bcmn2835_isp is a platform driver dependent on vchiq, therefore add the load/unload functions for it to vchiq. @@ -154767,10 +154767,10 @@ index 8d518bd9a6cd..08083aa61808 100644 2.18.4 -From 8089846b5e253507bd1cb3d4dc2d16103885c430 Mon Sep 17 00:00:00 2001 +From 0c90c736e1d055cbfe99838bd113eb8f4a9743d3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 4 Apr 2019 13:33:47 +0100 -Subject: [PATCH 229/661] bcm2835-dma: Add proper 40-bit DMA support +Subject: [PATCH 229/693] bcm2835-dma: Add proper 40-bit DMA support BCM2711 has 4 DMA channels with a 40-bit address range, allowing them to access the full 4GB of memory on a Pi 4. @@ -155573,10 +155573,10 @@ index 87b5d0bef355..ac0458a8027f 100644 2.18.4 -From 35c5e8152f921eee2c14e2f339e0a65d7e445f3c Mon Sep 17 00:00:00 2001 +From 5fa69f3f09d4231158efdc35416e53f3b067a315 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 May 2020 17:56:13 +0100 -Subject: [PATCH 230/661] overlays: Make the i2c-gpio overlay safe again +Subject: [PATCH 230/693] overlays: Make the i2c-gpio overlay safe again Like many overlays, the i2c-gpio overlay goes to efforts to avoid generating warnings about #address-cells and #size-cells not @@ -155611,10 +155611,10 @@ index 2323a61edf07..63231b5d7c0c 100644 2.18.4 -From 0588f8e0dc20a50be8038fad04bc62359faea0ff Mon Sep 17 00:00:00 2001 +From d4b3a51e3a93c00e13147e0881935b2d3ac6f4bd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Apr 2020 11:01:21 +0100 -Subject: [PATCH 231/661] media: i2c: imx219: Declare that the driver can +Subject: [PATCH 231/693] media: i2c: imx219: Declare that the driver can create events The flag V4L2_SUBDEV_FL_HAS_EVENTS is required if the subdev can @@ -155627,10 +155627,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c -index aec43b602649..473134c1e40f 100644 +index 5af610f7fc08..79faa8cce94e 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c -@@ -1582,7 +1582,8 @@ static int imx219_probe(struct i2c_client *client) +@@ -1591,7 +1591,8 @@ static int imx219_probe(struct i2c_client *client) /* Initialize subdev */ imx219->sd.internal_ops = &imx219_internal_ops; @@ -155644,10 +155644,10 @@ index aec43b602649..473134c1e40f 100644 2.18.4 -From a04ead416412ad58af6005ce56314941744a7703 Mon Sep 17 00:00:00 2001 +From e6c361983c6e664d37b481561bc9a873ee91956c Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 15 Jan 2020 13:40:38 +0000 -Subject: [PATCH 232/661] media: ov5647: Fix return codes from +Subject: [PATCH 232/693] media: ov5647: Fix return codes from ov5647_write/ov5647_read functions. Previously they were returning positive non-zero codes for success, @@ -155724,10 +155724,10 @@ index 07550377be2e..6ecc018ac431 100644 2.18.4 -From 632d5e80fe106bc19328969b1dc1da1aa517e1df Mon Sep 17 00:00:00 2001 +From cbb130cb5c04bc6308e6f6823f42ade750613d7b Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:30:53 +0000 -Subject: [PATCH 233/661] media: ov5647: Add basic support for multiple sensor +Subject: [PATCH 233/693] media: ov5647: Add basic support for multiple sensor modes. Specifically: @@ -156137,10 +156137,10 @@ index 6ecc018ac431..0d84b7640cf3 100644 2.18.4 -From e850aa48609278402458d7825e018a63dae42fb4 Mon Sep 17 00:00:00 2001 +From 764a22e8b81a940729e806e1dd9e04162b47cb23 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:23 +0000 -Subject: [PATCH 234/661] media: ov5647: Add V4L2 controls for analogue gain, +Subject: [PATCH 234/693] media: ov5647: Add V4L2 controls for analogue gain, exposure and AWB Added basic v4l2_ctrl_handler infrastructure (there was none @@ -156420,10 +156420,10 @@ index 0d84b7640cf3..16cfafc9cf9c 100644 2.18.4 -From db3e0e06414be106727dcfe6de1a3ac788e6fa89 Mon Sep 17 00:00:00 2001 +From 4609f565a807415a37465ccda332f605209f7d6b Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:28 +0000 -Subject: [PATCH 235/661] media: ov5647: Add extra 10-bit sensor modes. +Subject: [PATCH 235/693] media: ov5647: Add extra 10-bit sensor modes. The 8-bit VGA mode remains, we add the following 10-bit modes: @@ -156975,10 +156975,10 @@ index 16cfafc9cf9c..fc6c5d9c4532 100644 2.18.4 -From 811b8bb6beee62b9a532eeab3931cec839b646de Mon Sep 17 00:00:00 2001 +From 3be41ad1243948633bc1997d4fa8f17f6030352c Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:32 +0000 -Subject: [PATCH 236/661] media: ov5647: change defaults to better match raw +Subject: [PATCH 236/693] media: ov5647: change defaults to better match raw camera applications. Specifically: @@ -157040,10 +157040,10 @@ index fc6c5d9c4532..66b3ee5cc190 100644 2.18.4 -From b9730fca628d5ef5143f9828db22e3bb2b0aeb6c Mon Sep 17 00:00:00 2001 +From 65994af1e4f1c48d76b344e7155c05a53b6a5a26 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 11:46:07 +0100 -Subject: [PATCH 237/661] media: i2c: ov5647: Add support for g_selection to +Subject: [PATCH 237/693] media: i2c: ov5647: Add support for g_selection to reflect cropping/binning In order to apply lens shading correctly the client needs to know how @@ -157252,10 +157252,10 @@ index 66b3ee5cc190..e7c7e3ab4b38 100644 2.18.4 -From ca80327047e24f5b561646f3254737e1ce65d12f Mon Sep 17 00:00:00 2001 +From 1d3f7675b2ba4edb122518624ec8dc7bae61fec2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 11:50:52 +0100 -Subject: [PATCH 238/661] media: i2c: ov5467: Fixup error path to release mutex +Subject: [PATCH 238/693] media: i2c: ov5467: Fixup error path to release mutex "87f3ab9 media: ov5647: Add basic support for multiple sensor modes." added a return path ov5647_set_fmt that didn't release the device @@ -157287,10 +157287,10 @@ index e7c7e3ab4b38..09d68b0b4a13 100644 2.18.4 -From fb441124dcc0cc19788e6e7a895a076593aa21dc Mon Sep 17 00:00:00 2001 +From 8d8fd5f752152ec98322717bb0163381dea3df27 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 12:25:13 +0100 -Subject: [PATCH 239/661] media: i2c: ov5647: Support V4L2_CID_PIXEL_RATE +Subject: [PATCH 239/693] media: i2c: ov5647: Support V4L2_CID_PIXEL_RATE Clients need to know the pixel rate in order to compute exposure and frame rate values. @@ -157424,10 +157424,10 @@ index 09d68b0b4a13..02d72feb837e 100644 2.18.4 -From 363fde9789042a936e969ca2470750c2afef91c1 Mon Sep 17 00:00:00 2001 +From bf02f368a46b0fa9b38a4c1befc2b862c76355d1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 17:25:56 +0100 -Subject: [PATCH 240/661] media: i2c: ov5647: Set V4L2_SUBDEV_FL_HAS_EVENTS +Subject: [PATCH 240/693] media: i2c: ov5647: Set V4L2_SUBDEV_FL_HAS_EVENTS flag The ov5647 subdev can generate control events, therefore set @@ -157573,10 +157573,10 @@ index 02d72feb837e..c012e0b3d68b 100644 2.18.4 -From 95fd9db22470457c74076544a203ca631cf28b7e Mon Sep 17 00:00:00 2001 +From be5437d703b678a9b700176e4636d89df1fe7a9c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 21:39:58 +0100 -Subject: [PATCH 241/661] media: i2c: ov5647: Add support for V4L2_CID_VBLANK +Subject: [PATCH 241/693] media: i2c: ov5647: Add support for V4L2_CID_VBLANK Adds vblank control to allow for frame rate control. @@ -157784,10 +157784,10 @@ index c012e0b3d68b..445a0ce186ec 100644 2.18.4 -From f8875d68cd6cb0f1f521aa6be09d7973229b713d Mon Sep 17 00:00:00 2001 +From 40cb4c1d3d44d0f53c7bad30e667a6a4270d7abd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 21:47:25 +0100 -Subject: [PATCH 242/661] media: i2c: ov5647: Neither analogue gain nor +Subject: [PATCH 242/693] media: i2c: ov5647: Neither analogue gain nor exposure need EXECUTE_ON_WRITE The controls for analogue gain and exposure were defined with @@ -157848,10 +157848,10 @@ index 445a0ce186ec..49247711221c 100644 2.18.4 -From 3b05d17fe70f5b7d549a0a32ae0e4b7f12e5f289 Mon Sep 17 00:00:00 2001 +From 415baf527bd50c24870b3a30d8c1c5ace619c4dc Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 22:11:01 +0100 -Subject: [PATCH 243/661] media: i2c: ov5647: Use member names in mode tables +Subject: [PATCH 243/693] media: i2c: ov5647: Use member names in mode tables To make adding new members to the mode structures easier, use the member names in the initialisers. @@ -157965,10 +157965,10 @@ index 49247711221c..da4ef30d8f32 100644 2.18.4 -From a1288dbca4bdaad86a78857cc510b86a5c3acc1b Mon Sep 17 00:00:00 2001 +From d9fa67e130f6ab07ff3000b6f59fc0e39195b0eb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 11:03:00 +0100 -Subject: [PATCH 244/661] media: i2c: ov5647: Advertise the correct exposure +Subject: [PATCH 244/693] media: i2c: ov5647: Advertise the correct exposure range Exposure is clipped by the VTS of the mode, so needs to be updated as @@ -158090,10 +158090,10 @@ index da4ef30d8f32..6d84d2785f74 100644 2.18.4 -From e5d92c66cf4217eab0eef3bc8e4ea874cc3ad096 Mon Sep 17 00:00:00 2001 +From 2d12096b7eade891f6f74baa08fec75a96c8ae2e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 16:45:02 +0100 -Subject: [PATCH 245/661] media: bcm2835-unicam: Add support for +Subject: [PATCH 245/693] media: bcm2835-unicam: Add support for VIDIOC_[S|G]_SELECTION Sensors are now reflecting cropping and scaling parameters through @@ -158178,10 +158178,10 @@ index d4684fb2797f..0e1d525a0b35 100644 2.18.4 -From 8b1d09302cdfc0a9333df8169ffe0a015b58a8ec Mon Sep 17 00:00:00 2001 +From 1e72d8dfbfedf9984a4180ac44d3c98246cc0f1c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 22:05:09 +0100 -Subject: [PATCH 246/661] media: bcm2835-unicam: Do not stop streaming in +Subject: [PATCH 246/693] media: bcm2835-unicam: Do not stop streaming in unicam_release unicam_release calls _vb2_fop_release, which will call stop_streaming @@ -158212,10 +158212,10 @@ index 0e1d525a0b35..c7e211d04ed3 100644 2.18.4 -From a98ffacacda856d6e06c351bf3faba69e52f4586 Mon Sep 17 00:00:00 2001 +From 6e2304709acf052074502def79c58ca3ddf71226 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 09:52:50 +0100 -Subject: [PATCH 247/661] media: bcm2835-unicam: Fix reference counting in +Subject: [PATCH 247/693] media: bcm2835-unicam: Fix reference counting in unicam_open The reference counting of node->open was only incremented after @@ -158256,10 +158256,10 @@ index c7e211d04ed3..a79fc4d99d36 100644 2.18.4 -From 65e5a2dba14edfa3ebfa0f5c2d985c92d1f8e0b7 Mon Sep 17 00:00:00 2001 +From 49ab077b55dd9ce384335caeed8d96de101769d3 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:28:14 +0200 -Subject: [PATCH 248/661] media: i2c: tc358743: Fix fallthrough warning +Subject: [PATCH 248/693] media: i2c: tc358743: Fix fallthrough warning Signed-off-by: Jacko Dirks --- @@ -158267,7 +158267,7 @@ Signed-off-by: Jacko Dirks 1 file changed, 1 insertion(+) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index 0a8a25ff7872..b3b8d6e15ea2 100644 +index 96de74bf6b5c..b69eb9fd02c8 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -2005,6 +2005,7 @@ static int tc358743_probe_of(struct tc358743_state *state) @@ -158282,10 +158282,10 @@ index 0a8a25ff7872..b3b8d6e15ea2 100644 2.18.4 -From ea4439c266220f3c616aeb4e0c2cda0992334ce4 Mon Sep 17 00:00:00 2001 +From 28a71609681d5b353509a1baea2e7cf75414d6aa Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 249/661] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 249/693] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -158309,10 +158309,10 @@ index a79fc4d99d36..92e5deb4c6fd 100644 2.18.4 -From f14b0248978ceae09624fc722bd86ba900ce812e Mon Sep 17 00:00:00 2001 +From 7fcf079dc5264ff53d739f63fe82d2422d0600d4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 19:45:41 +0100 -Subject: [PATCH 250/661] video: bcm2708_fb: Disable FB if no displays found +Subject: [PATCH 250/693] video: bcm2708_fb: Disable FB if no displays found If the firmware hasn't detected a display, the driver would assume one display was available, but because it had failed to retrieve the @@ -158349,10 +158349,10 @@ index 17e9260655e4..dac5c021ce52 100644 2.18.4 -From b5904c4b4b01171271c68a430c48098e9039229d Mon Sep 17 00:00:00 2001 +From 6f52463e351c25f66bb75aa84c8ed28f1296eadf Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 7 May 2020 15:50:54 +0100 -Subject: [PATCH 251/661] dt-bindings: media: i2c: Add IMX477 CMOS sensor +Subject: [PATCH 251/693] dt-bindings: media: i2c: Add IMX477 CMOS sensor binding Add YAML device tree binding for IMX477 CMOS image sensor. @@ -158486,10 +158486,10 @@ index 000000000000..0994e13e67f6 2.18.4 -From 64deb844ce08fdf6b17049dd47ec3ef19851fdbe Mon Sep 17 00:00:00 2001 +From 086a9351cf001ef1bb7a856b89910504e050edd8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 252/661] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 252/693] media: bcm2835-unicam: Always service interrupts From when bringing up the driver, there was a check in the isr to ignore interrupts (claiming them handled) should the driver @@ -158543,10 +158543,10 @@ index 92e5deb4c6fd..52a534d932bf 100644 2.18.4 -From 942977e60eba360ff2436beeb43f60118ef73eb4 Mon Sep 17 00:00:00 2001 +From a9f5945ab20b283c64ad9abbfc400e9104145368 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 May 2020 20:10:15 +0100 -Subject: [PATCH 253/661] sc16is7xx: Fix for hardware flow control +Subject: [PATCH 253/693] sc16is7xx: Fix for hardware flow control The SC16IS7XX hardware flow control is mishandled by the driver in a number of ways: @@ -158570,7 +158570,7 @@ Signed-off-by: Phil Elwell 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c -index ae48749d72fd..f6ce041d0c3d 100644 +index f64e051c0030..8e3b83fac33c 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -523,8 +523,9 @@ static int sc16is7xx_set_baud(struct uart_port *port, int baud) @@ -158619,10 +158619,10 @@ index ae48749d72fd..f6ce041d0c3d 100644 2.18.4 -From 4571fea32ca31f159e16b38a0db2a54ac70ee9b3 Mon Sep 17 00:00:00 2001 +From 0314269c4710df87fedec1622ba10a7f774f4316 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:42:10 +0100 -Subject: [PATCH 254/661] staging: vc04_services: mmal-vchiq: Update parameters +Subject: [PATCH 254/693] staging: vc04_services: mmal-vchiq: Update parameters list Adds in a couple of new MMAL parameter defines. @@ -158653,10 +158653,10 @@ index 27bafc5f01d2..89059bca0b77 100644 2.18.4 -From c276d9d935aa9985ce14ec88fb528410017b5eaa Mon Sep 17 00:00:00 2001 +From 09851d062adad768ae0fb7884c00a10cb360defd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:48:59 +0100 -Subject: [PATCH 255/661] staging:vc04_services: bcm2835-camera: Request +Subject: [PATCH 255/693] staging:vc04_services: bcm2835-camera: Request headers with I-frame V4L2 wishes to have the codec header bytes in the same buffer as the @@ -158689,10 +158689,10 @@ index df90c1f9d148..bea37cb163fc 100644 2.18.4 -From 196e3c72df4e7f2fc2c92c7c9a75c4a8fd7bea71 Mon Sep 17 00:00:00 2001 +From 2fc32acb6969d33fa46453de1eb01bc3217a0e82 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Apr 2020 15:23:56 +0100 -Subject: [PATCH 256/661] kbuild: Disable gcc plugins +Subject: [PATCH 256/693] kbuild: Disable gcc plugins The GCC plugin feature leads to different kernel configurations on what ought to be equivalent build systems because they depend on the build @@ -158723,10 +158723,10 @@ index b79fd0bea838..c3d0c8fedbdd 100755 2.18.4 -From 7af5a7f599d0a7e528e79745603482427a355b3a Mon Sep 17 00:00:00 2001 +From 214f2728c682ab1cf524890ccb39c41256dc03ec Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 257/661] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 257/693] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -158777,10 +158777,10 @@ index 52a534d932bf..b32b2d33a4e2 100644 2.18.4 -From cc41dd64cefd613a14fa95ca0d52b28b26da8752 Mon Sep 17 00:00:00 2001 +From 920c46937c260bd1d2c5086d81ad1a6fbb3d7604 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 15:23:32 +0100 -Subject: [PATCH 258/661] zswap: Defer zswap initialisation +Subject: [PATCH 258/693] zswap: Defer zswap initialisation Enabling zswap support in the kernel configuration costs about 1.5MB of RAM, even when zswap is not enabled at runtime. This cost can be @@ -158908,10 +158908,10 @@ index fbb782924ccc..0ca7f6a68d20 100644 2.18.4 -From 39f376d3f2f9bd151acc2629756c1249ae33c480 Mon Sep 17 00:00:00 2001 +From 41036191159e8d5a5fb68b1bc4b631c23cca1ab0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 May 2020 11:35:33 +0100 -Subject: [PATCH 259/661] SQUASH: pinctrl: bcm2835: Set base for bcm2711 GPIO +Subject: [PATCH 259/693] SQUASH: pinctrl: bcm2835: Set base for bcm2711 GPIO to 0 Without this patch GPIOs don't seem to work properly, primarily @@ -158941,10 +158941,10 @@ index bda29f421e78..c5d88157f4b2 100644 2.18.4 -From 4425be349b414dac6a9fc86059f3426343a991ea Mon Sep 17 00:00:00 2001 +From ca4c39362ea71a0d517e29d570bca6282b15c4e7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 May 2020 16:36:33 +0100 -Subject: [PATCH 260/661] staging: vchiq_arm: Clean up 40-bit DMA support +Subject: [PATCH 260/693] staging: vchiq_arm: Clean up 40-bit DMA support Manage the split between addresses for the VPU and addresses for the 40-bit DMA controller with a dedicated DMA device pointer that on non- @@ -159123,10 +159123,10 @@ index 08083aa61808..c3ca18e4e85c 100644 2.18.4 -From ce1ba742a1d761a2e44939c12a25ec0522329272 Mon Sep 17 00:00:00 2001 +From 8552659d6317d108bd02f93d68aa2c84fef6da38 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 261/661] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 261/693] media: bcm2835-unicam: change minimum number of vb2_queue buffers to 1 Since the unicam driver was modified to write to a dummy buffer when no @@ -159157,10 +159157,10 @@ index b32b2d33a4e2..e76323af0952 100644 2.18.4 -From 02361ac4424af444eca9662c1480641863319f6f Mon Sep 17 00:00:00 2001 +From c4e251feeef7d5fdbaf0b8204df0a4932a741b82 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 May 2020 09:46:12 +0100 -Subject: [PATCH 262/661] brcmfmac: BCM43436 needs dedicated firmware +Subject: [PATCH 262/693] brcmfmac: BCM43436 needs dedicated firmware Signed-off-by: Phil Elwell --- @@ -159193,10 +159193,10 @@ index 2b642886430d..dce241d99684 100644 2.18.4 -From c3f49fd4e526e74b5e72b5730697e74b5f273260 Mon Sep 17 00:00:00 2001 +From 91f007c81948fade6663a6ce5c33778eb20965b6 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Fri, 5 Jun 2020 09:22:49 +0000 -Subject: [PATCH 263/661] snd_bcm2835: disable HDMI audio when vc4 is used +Subject: [PATCH 263/693] snd_bcm2835: disable HDMI audio when vc4 is used (#3640) Things don't work too well when both the vc4 driver and the firmware @@ -159232,10 +159232,10 @@ index f926784c622d..31968fec297f 100644 2.18.4 -From c24669a9534090d770d7c4e91887b8d2a27db0a3 Mon Sep 17 00:00:00 2001 +From 053aa1a518261a393385ba9d70c1577f2b9a8340 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Apr 2018 14:42:27 +0100 -Subject: [PATCH 264/661] gpiolib: Don't prevent IRQ usage of output GPIOs +Subject: [PATCH 264/693] gpiolib: Don't prevent IRQ usage of output GPIOs Upstream Linux deems using output GPIOs to generate IRQs as a bogus use case, even though the BCM2835 GPIO controller is capable of doing @@ -159288,10 +159288,10 @@ index af5bb8fedfea..2bd26c985246 100644 2.18.4 -From 57e540c89457cce2e4d65f91a1f98e0b8f0b3332 Mon Sep 17 00:00:00 2001 +From 1626aa3ddfcdaec9af0d1bd4c35404d5f326b3d6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jun 2020 09:57:03 +0100 -Subject: [PATCH 265/661] PCI: brcmstb: Add DT property to control L1SS +Subject: [PATCH 265/693] PCI: brcmstb: Add DT property to control L1SS The BRCM PCIe block has controls to enable control of the CLKREQ# signal by the L1SS, and to gate the refclk with the CLKREQ# input. @@ -159373,10 +159373,10 @@ index 9c3d2982248d..fea54f6fb7b1 100644 2.18.4 -From dd83d09b1f4e5cf253342684f80941175e10ba2c Mon Sep 17 00:00:00 2001 +From b67e56f2c537319036791520d16c1be7666aba6f Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:24:31 +0200 -Subject: [PATCH 266/661] media: irs1125: Using i2c_transfer for ic2 reads +Subject: [PATCH 266/693] media: irs1125: Using i2c_transfer for ic2 reads Reading data over i2c is done by using i2c_transfer to ensure that this operation can't be interrupted. @@ -159444,10 +159444,10 @@ index 25e1dd5a08ef..6680afea5894 100644 2.18.4 -From 15e0717554e844c10b51cd191aa18bcb90cdbdb5 Mon Sep 17 00:00:00 2001 +From 436c49965b6613c0da1b3b110e05ed891262510b Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:27:42 +0200 -Subject: [PATCH 267/661] media: irs1125: Refactoring and debug messages +Subject: [PATCH 267/693] media: irs1125: Refactoring and debug messages Changed some variable names to comply with checkpatch --strict mode. Debug messages added. @@ -159573,10 +159573,10 @@ index 6680afea5894..289f0c25b141 100644 2.18.4 -From 29694e5667c26547ee2e5ab3bd7b94b991189593 Mon Sep 17 00:00:00 2001 +From 03b86b25bed29ccbfd3200962554a00c49a0dc3b Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:31:36 +0200 -Subject: [PATCH 268/661] media: irs1125: Atomic access to imager +Subject: [PATCH 268/693] media: irs1125: Atomic access to imager reconfiguration Instead of changing the exposure and framerate settings for all sequences, @@ -159962,10 +159962,10 @@ index dccaca23aa76..96d676123d5e 100644 2.18.4 -From f732b18937879ed491711c13db5189c7e4f9f780 Mon Sep 17 00:00:00 2001 +From 480da5b2dbb642648cdb9ffaebe2e3b1c8cb7449 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:33:56 +0200 -Subject: [PATCH 269/661] media: irs1125: Keep HW in sync after imager reset +Subject: [PATCH 269/693] media: irs1125: Keep HW in sync after imager reset When closing the video device, the irs1125 is put in power down state. To keep V4L2 ctrls and the HW in sync, v4l2_ctrl_handler_setup is @@ -160149,10 +160149,10 @@ index d59e05004a03..30c3d2640386 100644 2.18.4 -From 6703d81c09584ba587bcee5fe97457adab3cc1a0 Mon Sep 17 00:00:00 2001 +From 864a8c71fe4a322532c90effc742966b87291075 Mon Sep 17 00:00:00 2001 From: Maxim Mikityanskiy Date: Sat, 20 Jun 2020 15:40:00 +0300 -Subject: [PATCH 270/661] staging: bcm2835-audio: Add missing MODULE_ALIAS +Subject: [PATCH 270/693] staging: bcm2835-audio: Add missing MODULE_ALIAS Commit 8353fe6f1e0f ("Revert "staging: bcm2835-audio: Drop DT dependency"") reverts the upstream change and makes bcm2835-audio use @@ -160185,10 +160185,10 @@ index 31968fec297f..a0cba3823e5e 100644 2.18.4 -From 28e470992f0421e459c7ff4519880f2878746927 Mon Sep 17 00:00:00 2001 +From 9297af2fc0a1652c4b130dc5eaefa83b4379a0c3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2020 11:51:05 +0100 -Subject: [PATCH 271/661] brcmfmac: Prefer a ccode from OTP over nvram file +Subject: [PATCH 271/693] brcmfmac: Prefer a ccode from OTP over nvram file Allow the nvram file to set a default ccode (regulatory domain) without overriding one set in OTP. @@ -160322,10 +160322,10 @@ index d821a4758f8c..adfea97c9a43 100644 2.18.4 -From 8d58fd4f94edd31021d81a07e2440cb9ca6cdb22 Mon Sep 17 00:00:00 2001 +From c1a655c2c6139421b11f0ccbfdb7814e5b3551e4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 10:05:57 +0100 -Subject: [PATCH 272/661] drivers: media: Remove the downstream version of +Subject: [PATCH 272/693] drivers: media: Remove the downstream version of bcm2835-unicam About to be replaced by the upstream version. @@ -163513,10 +163513,10 @@ index ae059a171d0f..000000000000 2.18.4 -From 7adc829a11bf57afdbd52709c611235fb5d7fad8 Mon Sep 17 00:00:00 2001 +From e5bdf5b0397e5da40351d2376de48d02155452c5 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 4 May 2020 12:25:41 +0300 -Subject: [PATCH 273/661] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 273/693] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add a driver for the Unicam camera receiver block on BCM283x processors. @@ -163545,7 +163545,7 @@ Reported-by: kbuild test robot create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index 8cecd3fd5dad..349b2abe4152 100644 +index 95f16069bdc4..78fd5dd08269 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3429,7 +3429,7 @@ M: Raspberry Pi Kernel Maintenance @@ -166681,10 +166681,10 @@ index 000000000000..ae059a171d0f 2.18.4 -From e61567e26dc47424fe73edef5efa7a5f4e2626d2 Mon Sep 17 00:00:00 2001 +From 612f6d4dbaa9e4f0cffb5f5fba37f8747abe03f3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 14:32:51 +0100 -Subject: [PATCH 274/661] media: bcm2835-unicam: Add support for +Subject: [PATCH 274/693] media: bcm2835-unicam: Add support for get_mbus_config to set num lanes Use the get_mbus_config pad subdev call to allow a source to use @@ -166743,10 +166743,10 @@ index 2e9387cbc1e0..9adfb2d217af 100644 2.18.4 -From 249d88400bf428f282cf43299a300d765c4983cb Mon Sep 17 00:00:00 2001 +From 00a617c73984fae3b9e0bf5c57f2f895edce8cf4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 15:53:44 +0100 -Subject: [PATCH 275/661] media: bcm2835-unicam: Avoid gcc warning over {0} on +Subject: [PATCH 275/693] media: bcm2835-unicam: Avoid gcc warning over {0} on endpoint Older gcc versions object to = { 0 } initialisation if the first @@ -166776,10 +166776,10 @@ index 9adfb2d217af..a65e1da55142 100644 2.18.4 -From 7e5c9dec1450731c2caf08fbf7b4116865cb223b Mon Sep 17 00:00:00 2001 +From 17237a1e8f90cd37822ba6eb37953a2bf862e7d1 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 12 Jun 2020 15:53:46 +0200 -Subject: [PATCH 276/661] media: i2c: imx290: set the format before +Subject: [PATCH 276/693] media: i2c: imx290: set the format before VIDIOC_SUBDEV_G_FMT is called Commit d46cfdc86c30d5ec768924f0b1e2683c8d20b671 upstream. @@ -166822,10 +166822,10 @@ index adcddf3204f7..ad2318390678 100644 2.18.4 -From 1078196d167180ae956246a06c8c949748cfefa5 Mon Sep 17 00:00:00 2001 +From 698e854c05daa70a4a698a70eafa20b559bcc8f4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 08:28:51 +0100 -Subject: [PATCH 277/661] media: i2c: imx290: Add support for 74.25MHz clock +Subject: [PATCH 277/693] media: i2c: imx290: Add support for 74.25MHz clock The existing driver only supported a clock of 37.125MHz, but the sensor also supports 74.25MHz. @@ -167092,10 +167092,10 @@ index ad2318390678..fe1078f7721e 100644 2.18.4 -From acdbe6f33629c877e2700312bdd6b537874bb1ae Mon Sep 17 00:00:00 2001 +From e7b6b20a83a08199fe16c83d201eb56c37f03c40 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 13:41:43 +0100 -Subject: [PATCH 278/661] media: i2c: imx290: Correct range for V4L2_CID_GAIN +Subject: [PATCH 278/693] media: i2c: imx290: Correct range for V4L2_CID_GAIN to 0-238 The datasheet lists the gain as being 0.0 to 72.0dB in 0.3dB steps, which @@ -167124,10 +167124,10 @@ index fe1078f7721e..c193b7b8d8e5 100644 2.18.4 -From a9d0ef0da8e28b36abcaf6e464cd2531c8ab5b94 Mon Sep 17 00:00:00 2001 +From dd542ff12809684cb59b5003448ee29f8356b33b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 14:36:40 +0100 -Subject: [PATCH 279/661] media: i2c: imx290: Convert HMAX setting into +Subject: [PATCH 279/693] media: i2c: imx290: Convert HMAX setting into V4L2_CID_HBLANK Userspace needs to know HBLANK if it is to work out exposure times @@ -167289,10 +167289,10 @@ index c193b7b8d8e5..b12213f6355b 100644 2.18.4 -From de909eba3286d6f778b2d8ccc25aa3f35fc2a3ff Mon Sep 17 00:00:00 2001 +From ce1d2571fec4c0e064f42ba978b3095a95fdd376 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:09:12 +0100 -Subject: [PATCH 280/661] media: i2c: imx290: Add support for V4L2_CID_VBLANK +Subject: [PATCH 280/693] media: i2c: imx290: Add support for V4L2_CID_VBLANK In order to calculate framerate and durations userspace needs the vertical blanking information. This can be configurable, @@ -167436,10 +167436,10 @@ index b12213f6355b..357614af64f7 100644 2.18.4 -From 14922bfeb159fd0ac5415f84ad2cece7227e83d9 Mon Sep 17 00:00:00 2001 +From 6cd298d21ce1cb3f7ba329fedd000484bb571a3e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:19:13 +0100 -Subject: [PATCH 281/661] media: i2c: imx290: Add exposure control to the +Subject: [PATCH 281/693] media: i2c: imx290: Add exposure control to the driver. Adds support for V4L2_CID_EXPOSURE so that userspace can control @@ -167535,10 +167535,10 @@ index 357614af64f7..2eae36b0ad5c 100644 2.18.4 -From c85ab24735a0c7cfbd6fbd34e0ead863650cec76 Mon Sep 17 00:00:00 2001 +From a6393354a6779d8f96139fa76886177cc70666da Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:34:16 +0100 -Subject: [PATCH 282/661] media: i2c: imx290: Add H and V flip controls +Subject: [PATCH 282/693] media: i2c: imx290: Add H and V flip controls The sensor supports horizontal and vertical flips, so support them through V4L2_CID_HFLIP and V4L2_CID_VFLIP. @@ -167624,10 +167624,10 @@ index 2eae36b0ad5c..3d6734da7d64 100644 2.18.4 -From ad09faa4f7df2fa3e4329f8d1438e3a5100e14f4 Mon Sep 17 00:00:00 2001 +From 8df54fb7b2c8ed5f2a22c6f55b3b3498c97778af Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 16:52:14 +0100 -Subject: [PATCH 283/661] media: dt-bindings: media: i2c: Add mono version to +Subject: [PATCH 283/693] media: dt-bindings: media: i2c: Add mono version to IMX290 bindings The IMX290 module is available as either monochrome or colour and @@ -167666,10 +167666,10 @@ index a3cc21410f7c..294e63650d9e 100644 2.18.4 -From 7d67245163974c7e1ed2231b589937e653680290 Mon Sep 17 00:00:00 2001 +From b3bda0ceec14cefaad4274cbb97d8118d149edac Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:03:11 +0100 -Subject: [PATCH 284/661] media : i2c: imx290: Add support for the mono sensor +Subject: [PATCH 284/693] media : i2c: imx290: Add support for the mono sensor variant. The IMX290 module is available as either mono or colour (Bayer). @@ -167857,10 +167857,10 @@ index 3d6734da7d64..09df70849928 100644 2.18.4 -From d5b78ae810f4057a6a1883f60384b7573eaf3430 Mon Sep 17 00:00:00 2001 +From 9a1d019bc97fec8dbed7b845c2ac87906be6a6b5 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 18:11:49 +0100 -Subject: [PATCH 285/661] media: i2c: imx290: Switch set_hmax to use +Subject: [PATCH 285/693] media: i2c: imx290: Switch set_hmax to use imx290_write_buffered_reg imx290_set_hmax was using two independent writes to set up hmax, @@ -167906,10 +167906,10 @@ index 09df70849928..b824dfe29bbd 100644 2.18.4 -From adc773235066f20cd4a488813f26c1aba24c01e2 Mon Sep 17 00:00:00 2001 +From eec9953f7486c51291b2f56661bdafca6154f211 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 2 Jul 2020 13:53:20 +0100 -Subject: [PATCH 286/661] serial: 8250: bcm2835aux - defer if clock is zero +Subject: [PATCH 286/693] serial: 8250: bcm2835aux - defer if clock is zero See: https://github.com/raspberrypi/linux/issues/3700 @@ -167940,10 +167940,10 @@ index fd95860cd661..fc36e5963e30 100644 2.18.4 -From a85c82bdd048ee865f097ab68f8f5b5fa83f94f8 Mon Sep 17 00:00:00 2001 +From a98c25a07f5a5d3b4cdccc8f87ceac72da3a5556 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 May 2020 16:59:03 +0100 -Subject: [PATCH 287/661] media: Add a pixel format for MIPI packed 12bit luma +Subject: [PATCH 287/693] media: Add a pixel format for MIPI packed 12bit luma only. This is the format used by monochrome 12bit image sensors. @@ -168048,10 +168048,10 @@ index e9fbb04a3519..e72c28ea0235 100644 2.18.4 -From d652687da7341c6a744cd3d006147354c4306c5b Mon Sep 17 00:00:00 2001 +From 41c6f07569ca9555872111a16f986f71cdd96a01 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:51:03 +0100 -Subject: [PATCH 288/661] media: Add a pixel format for MIPI packed 14bit luma +Subject: [PATCH 288/693] media: Add a pixel format for MIPI packed 14bit luma only. This is the format used by monochrome 14bit image sensors. @@ -168165,10 +168165,10 @@ index e72c28ea0235..53d526dbe004 100644 2.18.4 -From 891f602d65076694f374798aab39f774f4bf5734 Mon Sep 17 00:00:00 2001 +From 82b28ec2a327ad292084def66798ab860fd4d971 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:53:32 +0100 -Subject: [PATCH 289/661] media: bcm2835-unicam: Add support for 12bit mono +Subject: [PATCH 289/693] media: bcm2835-unicam: Add support for 12bit mono packed format Now that V4L2_PIX_FMT_Y12P is defined, allow passing raw 12bit @@ -168196,10 +168196,10 @@ index a65e1da55142..5edb58cc9f03 100644 2.18.4 -From 2756b34cc346525bf8f864caa3926def155a6a43 Mon Sep 17 00:00:00 2001 +From d4a544b9680137083894d559e4019d88a8d0f731 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 18:03:47 +0100 -Subject: [PATCH 290/661] media: bcm2835-unicam: Add support for 14bit mono +Subject: [PATCH 290/693] media: bcm2835-unicam: Add support for 14bit mono sources Now that V4L2_PIX_FMT_Y14 and V4L2_PIX_FMT_Y14P are defined, @@ -168231,10 +168231,10 @@ index 5edb58cc9f03..778153943160 100644 2.18.4 -From 94e7173e2e50f59d0ef7499711a3cf5f34beb14b Mon Sep 17 00:00:00 2001 +From 58ae195f56e33f7b64c9f2bb31590638eb0d6a93 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 Jul 2020 10:57:57 +0100 -Subject: [PATCH 291/661] media: bcm2835-unicam: Add support for unpacked 14bit +Subject: [PATCH 291/693] media: bcm2835-unicam: Add support for unpacked 14bit Bayer formats Now that the 14bit non-packed Bayer formats are defined, add them @@ -168279,10 +168279,10 @@ index 778153943160..c97ecfc0e55b 100644 2.18.4 -From 21da7cf3c5dd9bf13a7a9c05d57d71efbd3c5eca Mon Sep 17 00:00:00 2001 +From 968b733924461e31f1eaeb61dfab3c69fda2e6da Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Jul 2020 20:28:27 +0100 -Subject: [PATCH 292/661] bcm2835-dma: Add NO_WAIT_RESP flag +Subject: [PATCH 292/693] bcm2835-dma: Add NO_WAIT_RESP flag Use bit 27 of the dreq value (the second cell of the DT DMA descriptor) to request that the WAIT_RESP bit is not set. @@ -168339,10 +168339,10 @@ index ac0458a8027f..84b1009da23b 100644 2.18.4 -From afe8de8ca9f9f7887f542214028167c6fcc35994 Mon Sep 17 00:00:00 2001 +From 9e22be095804f95a570d4e99f16dead484fdd781 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Fri, 17 May 2019 18:23:03 +0800 -Subject: [PATCH 293/661] media: i2c: add ov9281 driver. +Subject: [PATCH 293/693] media: i2c: add ov9281 driver. Change-Id: I7b77250bbc56d2f861450cf77271ad15f9b88ab1 Signed-off-by: Zefa Chen @@ -169568,10 +169568,10 @@ index 000000000000..4a6324a3e5da 2.18.4 -From 594cac1ac0a2ba77297534cdfb337b0b7f141db5 Mon Sep 17 00:00:00 2001 +From f234464666d83f55e392cdced017345939bd86ac Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:47:09 +0100 -Subject: [PATCH 294/661] media: i2c: ov9281: fix mclk issue when probe +Subject: [PATCH 294/693] media: i2c: ov9281: fix mclk issue when probe multiple camera. Takes the ov9281 part only from the Rockchip's patch. @@ -169634,10 +169634,10 @@ index 4a6324a3e5da..0d6759942f79 100644 2.18.4 -From 83ef482ba603e0481477388a630fc7b65828cf43 Mon Sep 17 00:00:00 2001 +From a2067964d536f0b4abf50cb873d930974b8a45eb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:51:50 +0100 -Subject: [PATCH 295/661] media: i2c: ov9281: add enum_frame_interval function +Subject: [PATCH 295/693] media: i2c: ov9281: add enum_frame_interval function for iq tool 2.2 and hal3 Adds the ov9281 parts of the Rockchip patch adding enum_frame_interval to @@ -169737,10 +169737,10 @@ index 0d6759942f79..273aa904683c 100644 2.18.4 -From 9b60871e4687256a7e4444f0a7919f1afbc16a91 Mon Sep 17 00:00:00 2001 +From 85d87519715ca8b9b4f5503a846ecc7e480b0f86 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 16:12:33 +0100 -Subject: [PATCH 296/661] media: i2c: ov9281: Fixup for recent kernel releases, +Subject: [PATCH 296/693] media: i2c: ov9281: Fixup for recent kernel releases, and remove custom code The Rockchip driver was based on a 4.4 kernel, and had several custom @@ -170420,10 +170420,10 @@ index 273aa904683c..7b9bea476cfb 100644 2.18.4 -From 1f26ebf8e966d1c66104abd0d7995e923cd4700f Mon Sep 17 00:00:00 2001 +From 2891fbc43807b8b05f4f690d9a894ea674a35ec6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 6 Jul 2020 17:51:32 +0100 -Subject: [PATCH 297/661] media: i2c: ov9281: Read chip ID via 2 reads +Subject: [PATCH 297/693] media: i2c: ov9281: Read chip ID via 2 reads Vision Components have made an OV9281 module which blocks reading back the majority of registers to comply with NDAs, and in doing @@ -170468,10 +170468,10 @@ index 7b9bea476cfb..bb8efc3d3cba 100644 2.18.4 -From 8f367a8a81de9e109e3b5056bac9ef19e1a40fe3 Mon Sep 17 00:00:00 2001 +From 5103ed831b0f5ef2d3a8634dbad7e61f8941b339 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 10:31:53 +0100 -Subject: [PATCH 298/661] media: i2c: imx290: Explicitly set v&h blank on mode +Subject: [PATCH 298/693] media: i2c: imx290: Explicitly set v&h blank on mode change __v4l2_ctrl_modify_range only updates the current value should @@ -170520,10 +170520,10 @@ index b824dfe29bbd..b28834823f86 100644 2.18.4 -From f74267a44152d35f6c616b77a7b03a6c3d95d51e Mon Sep 17 00:00:00 2001 +From 740d6d02a30b6087c71ae08933db548aedf96e8a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:23:48 +0100 -Subject: [PATCH 299/661] media: i2c: imx290: Add support for g_selection to +Subject: [PATCH 299/693] media: i2c: imx290: Add support for g_selection to report cropping Userspace needs to know the cropping arrangements for each mode, @@ -170682,10 +170682,10 @@ index b28834823f86..24bf40d729b7 100644 2.18.4 -From 97ec35eb2d982a8067c2ddc97c38fa01fa279af2 Mon Sep 17 00:00:00 2001 +From 0b4d642053c446873c9b0a31c142c235b6b3fcdf Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:51:26 +0100 -Subject: [PATCH 300/661] media: i2c: imx290: Set the colorspace fields in the +Subject: [PATCH 300/693] media: i2c: imx290: Set the colorspace fields in the format The colorspace fields were left untouched in imx290_set_fmt @@ -170719,10 +170719,10 @@ index 24bf40d729b7..2e646fb01856 100644 2.18.4 -From eab3237c57cc51133551b9eb773b13e5ffd8c43a Mon Sep 17 00:00:00 2001 +From bf980b19efcb06a6b46e797b815b8bc5d8235ac9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:23:40 +0100 -Subject: [PATCH 301/661] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE +Subject: [PATCH 301/693] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE in the caps v4l2-compliance throws a failure if the device doesn't advertise @@ -170753,10 +170753,10 @@ index c97ecfc0e55b..20b46a9e04c3 100644 2.18.4 -From 6422b5ecac7ae4758896b1fbbf8f1a3a1691568f Mon Sep 17 00:00:00 2001 +From 87c3a3af3e65814697ad1895e077a862ec725dda Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:52:43 +0100 -Subject: [PATCH 302/661] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE +Subject: [PATCH 302/693] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE in [g|s]_selection [g|s]_selection pass in a buffer type that needs to be validated @@ -170795,10 +170795,10 @@ index 20b46a9e04c3..de288f87ff2f 100644 2.18.4 -From 2ed554a5a89ccf693feb95cc7ee9988af89d0498 Mon Sep 17 00:00:00 2001 +From 46c390497c5e8da83a0dcc521c1fe7bb410e0f97 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:02:22 +0100 -Subject: [PATCH 303/661] media: bcm2835: unicam: Set VPU min clock freq to +Subject: [PATCH 303/693] media: bcm2835: unicam: Set VPU min clock freq to 250Mhz. When streaming with Unicam, the VPU must have a clock frequency of at @@ -170928,10 +170928,10 @@ index de288f87ff2f..295db7564614 100644 2.18.4 -From 1a5e68099947ab99d164a69e3e5724cabf9f56fd Mon Sep 17 00:00:00 2001 +From 2c6e9f3f32fc2f660fad8620edae6e7ca2e8df20 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:06:27 +0100 -Subject: [PATCH 304/661] dt-bindings: bcm2835-unicam: Update documentation +Subject: [PATCH 304/693] dt-bindings: bcm2835-unicam: Update documentation with new clock params Update the documentation to reflect the new "VPU" clock needed @@ -170972,10 +170972,10 @@ index 7714fb374b34..164d0377dcd2 100644 2.18.4 -From 22b34e2de27c9ba2ac58214030561ffd72c8abe1 Mon Sep 17 00:00:00 2001 +From 04f4d63cb6f2ebb212df2c79523e3c582c03c331 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 305/661] media: i2c: ov5647: Parse and register properties +Subject: [PATCH 305/693] media: i2c: ov5647: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -171027,10 +171027,10 @@ index 6d84d2785f74..86a821a172b3 100644 2.18.4 -From f6089549199d859e4cf87252c5ca139db1efb2d9 Mon Sep 17 00:00:00 2001 +From cd1740858a9777c67d629cd8e87ab6f043d1095d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Jul 2020 10:33:19 +0100 -Subject: [PATCH 306/661] leds: Add the actpwr trigger +Subject: [PATCH 306/693] leds: Add the actpwr trigger The actpwr trigger is a meta trigger that cycles between an inverted mmc0 and default-on. It is written in a way that could fairly easily @@ -171273,10 +171273,10 @@ index 000000000000..1a52107ceb03 2.18.4 -From 5442cb00ab166aa9b9e41288fdb00511a1d41d15 Mon Sep 17 00:00:00 2001 +From a155d3c430d88c491f26e3e144eae9debdb5162f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Jul 2020 17:34:09 +0100 -Subject: [PATCH 307/661] staging: vchiq_arm: children inherit DMA config +Subject: [PATCH 307/693] staging: vchiq_arm: children inherit DMA config Although it is no longer necessary for vchiq's children to have a different DMA configuration to the parent, they do still need to @@ -171315,10 +171315,10 @@ index c3ca18e4e85c..a936102dbc34 100644 2.18.4 -From a81fde1b1a91c2c05666585cff0b1faac891f071 Mon Sep 17 00:00:00 2001 +From f82aa2b3c85941981e7610c4c3f3ba672e7c0379 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Jul 2020 17:59:31 +0100 -Subject: [PATCH 308/661] bcm2835-dma: Advertise the full DMA range +Subject: [PATCH 308/693] bcm2835-dma: Advertise the full DMA range Unless the DMA mask is set wider than 32 bits, DMA mapping will use a bounce buffer. @@ -171398,10 +171398,10 @@ index 84b1009da23b..d1127b9058a4 100644 2.18.4 -From f906bfb73f64acd863e3f1306223c910f837e28a Mon Sep 17 00:00:00 2001 +From 6baffc4cb1512d234cd22ce13aaf4de90e7ea33f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jul 2020 13:47:55 +0100 -Subject: [PATCH 309/661] ARM: proc-v7: Force misalignment of early stmia +Subject: [PATCH 309/693] ARM: proc-v7: Force misalignment of early stmia In an attempt to prevent the problem of CPUn not starting, explicitly misalign the scratch space used to save registers acros the cache @@ -171464,10 +171464,10 @@ index 28c9d32fa99a..3e77e8982df3 100644 2.18.4 -From d8a7a3253962a196e141b28fb9c4eca53a1aba33 Mon Sep 17 00:00:00 2001 +From 650ff83bfeef1deb0eea56e74d825df5c763fb89 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:02:22 +0300 -Subject: [PATCH 310/661] media: bcm2835: unicam: Select MEDIA_CONTROLLER and +Subject: [PATCH 310/693] media: bcm2835: unicam: Select MEDIA_CONTROLLER and VIDEO_V4L2_SUBDEV_API That is what almost all other drivers appear to be doing. @@ -171497,10 +171497,10 @@ index ec46e3ef053c..7d5a0e6ba762 100644 2.18.4 -From 3d931e5b46053304527beff63c5e8cb3478b4a04 Mon Sep 17 00:00:00 2001 +From fc5fa158e24ca426b5d985b257bae4d020c20840 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:05:53 +0300 -Subject: [PATCH 311/661] staging: media: rpivid: Select MEDIA_CONTROLLER and +Subject: [PATCH 311/693] staging: media: rpivid: Select MEDIA_CONTROLLER and MEDIA_CONTROLLER_REQUEST_API MEDIA_CONTROLLER_REQUEST_API is a hidden option. If rpivid depends on it, @@ -171535,10 +171535,10 @@ index 58b470c80db1..304c3edf0e71 100644 2.18.4 -From 6634cb6c8ee80d687eeb8df684dceb5aa1d193cb Mon Sep 17 00:00:00 2001 +From d29cced84de3788a748556ccada6a4b47d24f274 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 27 Aug 2020 16:30:26 +0100 -Subject: [PATCH 312/661] media: bcm2835-unicam: Drop WARN on uing direct cache +Subject: [PATCH 312/693] media: bcm2835-unicam: Drop WARN on uing direct cache alias Pi 0&1 pass all ARM accesses through the VPU L2 cache, therefore @@ -171575,10 +171575,10 @@ index 295db7564614..35ddb97f7f75 100644 2.18.4 -From 1187d463754589f92c2933f3f359926bca2bcf05 Mon Sep 17 00:00:00 2001 +From 542e54e2079442521135650cacdc65c830355205 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Jul 2020 12:40:50 +0100 -Subject: [PATCH 313/661] media: i2c: tc358743: Only allow supported pixel fmts +Subject: [PATCH 313/693] media: i2c: tc358743: Only allow supported pixel fmts in set_fmt Fix commit "media: tc358743: Return an appropriate colorspace from @@ -171591,7 +171591,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c -index b3b8d6e15ea2..eef6ab823c6c 100644 +index b69eb9fd02c8..3c62eb3b3a1d 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -1731,8 +1731,10 @@ static int tc358743_set_fmt(struct v4l2_subdev *sd, @@ -171611,10 +171611,10 @@ index b3b8d6e15ea2..eef6ab823c6c 100644 2.18.4 -From d8f379f8b8bd12d1e44e9fd919a6a08036efd51c Mon Sep 17 00:00:00 2001 +From f2c40b799886dc5567a0653124e636b76d82b746 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 18:29:10 +0100 -Subject: [PATCH 314/661] media: i2c: ov9281: Add support for 8 bit readout +Subject: [PATCH 314/693] media: i2c: ov9281: Add support for 8 bit readout The sensor supports 8 bit mode as well as 10bit, so add the relevant code to allow selection of this. @@ -171805,10 +171805,10 @@ index bb8efc3d3cba..9610c24ceff1 100644 2.18.4 -From 228bfab357812a6cff67d53c4f9b73155c26a22b Mon Sep 17 00:00:00 2001 +From ea2243d6cdb0f01a648a7355d7dae4b66168159a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 3 Sep 2020 14:02:21 +0100 -Subject: [PATCH 315/661] bcm2835-mmc: uninitialized_var is no more +Subject: [PATCH 315/693] bcm2835-mmc: uninitialized_var is no more --- drivers/mmc/host/bcm2835-mmc.c | 2 +- @@ -171831,10 +171831,10 @@ index caf46be8eb0d..cdc1318e5936 100644 2.18.4 -From bc69c9566d2a3045b99f38b5249b43ab1c0db152 Mon Sep 17 00:00:00 2001 +From 1e90706e6d05dc9075477e8cc1987e7b6642e906 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 3 Sep 2020 14:02:41 +0100 -Subject: [PATCH 316/661] dwc_otg: whitelist_table is now productlist_table +Subject: [PATCH 316/693] dwc_otg: whitelist_table is now productlist_table --- drivers/usb/core/otg_productlist.h | 2 +- @@ -171857,10 +171857,10 @@ index 1839e169469b..b16e528859a8 100644 2.18.4 -From e854e22bd6ed473a4c84ce4c55b7e7c22ff9ac71 Mon Sep 17 00:00:00 2001 +From 9144bf05b39aa58a7b8efd9884108072f798c8eb Mon Sep 17 00:00:00 2001 From: detule Date: Tue, 2 Oct 2018 04:10:08 -0400 -Subject: [PATCH 317/661] vchiq_2835_arm: Implement a DMA pool for small bulk +Subject: [PATCH 317/693] vchiq_2835_arm: Implement a DMA pool for small bulk transfers (#2699) During a bulk transfer we request a DMA allocation to hold the @@ -171985,10 +171985,10 @@ index 76179739de12..2a1d8d6541b2 100644 2.18.4 -From 0e02ea1c2118f644b2c448295b8c4bd25802fb70 Mon Sep 17 00:00:00 2001 +From b6abee8790b018edac8f89107efc064791bbe1fd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Sep 2020 17:09:07 +0100 -Subject: [PATCH 318/661] include/firmware: Add enum for +Subject: [PATCH 318/693] include/firmware: Add enum for RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_ID Used by audio and FKMS. @@ -172014,10 +172014,10 @@ index d0c827064999..d0ee609a9043 100644 2.18.4 -From 1ec60c492e0408571c1c6b5de4fbce27a3a7be4e Mon Sep 17 00:00:00 2001 +From 73ffe407ea792dcf909d98b4b3bf9c544a023260 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Apr 2020 19:07:50 +0100 -Subject: [PATCH 319/661] vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC +Subject: [PATCH 319/693] vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC to work Signed-off-by: popcornmix @@ -172137,10 +172137,10 @@ index 0526a9cf608a..32d09132fb44 100644 2.18.4 -From bde1a9d6df4f6fcb4b9592980bb4bc9811bd32c0 Mon Sep 17 00:00:00 2001 +From 3f3d2a339dfb55025091bc95ae92adc5832b48b9 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:07 +0100 -Subject: [PATCH 320/661] vc4_hdmi_regs: Add Intr2 register block +Subject: [PATCH 320/693] vc4_hdmi_regs: Add Intr2 register block Signed-off-by: Dom Cobley --- @@ -172241,10 +172241,10 @@ index 6c0dfbbe1a7e..10dd6097f2b5 100644 2.18.4 -From 4d677cf1770d9d78b518548efb6b2fe957408ef3 Mon Sep 17 00:00:00 2001 +From ff1c4785c3c31c8a11573b9f1d4639bab3842442 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:08 +0100 -Subject: [PATCH 321/661] vc4_hdmi_regs: Make interrupt mask variant specific +Subject: [PATCH 321/693] vc4_hdmi_regs: Make interrupt mask variant specific Signed-off-by: Dom Cobley --- @@ -172352,10 +172352,10 @@ index be2c32a519b3..39630e9de1b0 100644 2.18.4 -From 14935f92444c301caec0c93ffa5f9bd50b0c1b5e Mon Sep 17 00:00:00 2001 +From d1f69d78920007700eb1baece2e826c6d03b43f4 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:08 +0100 -Subject: [PATCH 322/661] vc4_hdmi: Make irq shared +Subject: [PATCH 322/693] vc4_hdmi: Make irq shared Signed-off-by: Dom Cobley --- @@ -172380,10 +172380,10 @@ index 727619248923..e8a20404fe9b 100644 2.18.4 -From 1ee688fc669b7a19cf114785fbefa60ba4149e29 Mon Sep 17 00:00:00 2001 +From 07bd72a9a1a87220f7da33f8cb717048b2990ddb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 14:54:28 +0100 -Subject: [PATCH 323/661] drm/vc4: Adopt the dma configuration from the HVS or +Subject: [PATCH 323/693] drm/vc4: Adopt the dma configuration from the HVS or V3D component vc4_drv isn't necessarily under the /soc node in DT as it is a @@ -172440,10 +172440,10 @@ index 839610f8092a..de02c57ed276 100644 2.18.4 -From 30c5f189305ed429e422c4c6bae4c281bc507b53 Mon Sep 17 00:00:00 2001 +From b864b8f640005c6be6aaea3354dea01ac85f0d71 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 23 Jun 2020 18:37:01 +0100 -Subject: [PATCH 324/661] vc4_hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET +Subject: [PATCH 324/693] vc4_hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET Symptom is random switching of speakers when using multichannel. @@ -172488,10 +172488,10 @@ index e8a20404fe9b..dd7c15bcce6d 100644 2.18.4 -From f3392087053dc7ee6c6287b295d817568a3d53ac Mon Sep 17 00:00:00 2001 +From 9b0b744488b2d97b22bbb8e3973b021f16736399 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Mar 2020 22:21:15 +0000 -Subject: [PATCH 325/661] vc4_hdmi: Set HDMI_MAI_FMT +Subject: [PATCH 325/693] vc4_hdmi: Set HDMI_MAI_FMT The hardware uses this for generating the right audio data island packets when using formats other than PCM @@ -172620,10 +172620,10 @@ index 39630e9de1b0..c10402e103d6 100644 2.18.4 -From 761f30bd20fb44e1878dcedb731c900b05004bbb Mon Sep 17 00:00:00 2001 +From 61685cfd420264a379aa66d7db4added0c10ccfb Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 17 Mar 2020 12:12:22 +0100 -Subject: [PATCH 326/661] drm/vc4: add iec958 controls to vc4_hdmi +Subject: [PATCH 326/693] drm/vc4: add iec958 controls to vc4_hdmi Although vc4 get an IEC958 formatted stream passed in from userspace the driver needs the info from the channel status bits to properly @@ -172747,10 +172747,10 @@ index 16cc0e9abc36..c75d4c9e1515 100644 2.18.4 -From 6549d9c4553d3ec6b9b8c3d1751d0060ea90a326 Mon Sep 17 00:00:00 2001 +From aa2677b7296b70fe1aefab4ad323d86f4cc4a610 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 19 Mar 2020 20:00:35 +0100 -Subject: [PATCH 327/661] drm/vc4: move setup from hw_params to prepare +Subject: [PATCH 327/693] drm/vc4: move setup from hw_params to prepare Configuring HDMI audio registers in prepare allows us to take IEC958 bits into account which are set by the alsa hook after @@ -172811,10 +172811,10 @@ index 866f9e083ae4..b0780168e574 100644 2.18.4 -From 3812f217623880efad4fc4a6a057abb8411d7351 Mon Sep 17 00:00:00 2001 +From e972a96d4a9255bed6057a24304a30fe259c942c Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 10 Jul 2020 11:51:16 +0100 -Subject: [PATCH 328/661] drm/vc4: enable HBR MAI format on HBR streams +Subject: [PATCH 328/693] drm/vc4: enable HBR MAI format on HBR streams Signed-off-by: Matthias Reichl --- @@ -172842,10 +172842,10 @@ index b0780168e574..08cc24f23675 100644 2.18.4 -From eafa7da26f1e3c6f2ac9b568cd82e29cc80d9297 Mon Sep 17 00:00:00 2001 +From e2b0a0e858cf7ebf7e7cb3399ccca66860735fbb Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 25 Jun 2020 18:48:40 +0100 -Subject: [PATCH 329/661] vc4_hdmi: Remove firmware logic for MAI threshold +Subject: [PATCH 329/693] vc4_hdmi: Remove firmware logic for MAI threshold setting This was a workaround for bugs in hardware on earlier Pi models @@ -172895,10 +172895,10 @@ index 08cc24f23675..156d9e8ad869 100644 2.18.4 -From b2a7826a0d0c9c9df31953c87dbd924775d7d395 Mon Sep 17 00:00:00 2001 +From 4c81702c758df8082ce7acd724983644e952911a Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 30 Jun 2020 11:23:49 +0100 -Subject: [PATCH 330/661] vc_hdmi: Set VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE +Subject: [PATCH 330/693] vc_hdmi: Set VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE Without this bit set, HDMI_MAI_FORMAT doesn't pick up the format and samplerate from DVP_CFG_MAI0_FMT and you @@ -172925,10 +172925,10 @@ index 156d9e8ad869..69b16d4d3e25 100644 2.18.4 -From b4d65d996d075ff2b3ec3b5534e25b790947930e Mon Sep 17 00:00:00 2001 +From 2b53488d073e40c021aef869dff13f8d57b380fc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 20 Apr 2020 18:00:38 +0100 -Subject: [PATCH 331/661] vc4: Report channel mapping back to userspace +Subject: [PATCH 331/693] vc4: Report channel mapping back to userspace This follows logic in hdmi-codec.c to use speaker layout from ELD to choose a suitable speaker mapping based on @@ -173437,10 +173437,10 @@ index c75d4c9e1515..1680e1a56149 100644 2.18.4 -From e8b1710f5ed1fb691bfed8c378753c3668cb3878 Mon Sep 17 00:00:00 2001 +From ac38d82bcdd369c2f0bad572028052398c67c57e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:25:41 +0000 -Subject: [PATCH 332/661] drm/vc4: Add support for DRM_FORMAT_P030 to vc4 +Subject: [PATCH 332/693] drm/vc4: Add support for DRM_FORMAT_P030 to vc4 planes This currently doesn't handle non-zero source rectangles correctly, @@ -173606,10 +173606,10 @@ index af4b8944a603..ec591839810a 100644 2.18.4 -From 7df746f4bf559c50e2e528d8d20379f90ff5ba1d Mon Sep 17 00:00:00 2001 +From 4db014f44c00587828723105aa018bfad4cfcaf4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Sep 2019 18:28:17 +0100 -Subject: [PATCH 333/661] drm/vc4: Add support for YUV color encodings and +Subject: [PATCH 333/693] drm/vc4: Add support for YUV color encodings and ranges The BT601/BT709 color encoding and limited vs full @@ -173753,10 +173753,10 @@ index c10402e103d6..1f1ed7efaff7 100644 2.18.4 -From 875e24e1fdc0271e2b336076362b66e9a12cec8e Mon Sep 17 00:00:00 2001 +From cc56326502a3b0b60a5ba4983669f05a6f762842 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Sep 2020 17:32:27 +0100 -Subject: [PATCH 334/661] drm/vc4: Add firmware-kms mode +Subject: [PATCH 334/693] drm/vc4: Add firmware-kms mode This is a squash of all firmware-kms related patches from previous branches, up to and including @@ -176137,10 +176137,10 @@ index d0ee609a9043..05c6989ec4c6 100644 2.18.4 -From fb9fc4735002c1948491bd765528b3899e8a920b Mon Sep 17 00:00:00 2001 +From 2985731a49127864fe5317319e63792ce25ea0a7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 16:20:30 +0100 -Subject: [PATCH 335/661] drm/vc4: Add FKMS as an acceptable node for dma +Subject: [PATCH 335/693] drm/vc4: Add FKMS as an acceptable node for dma ranges. Under FKMS, the firmware (via FKMS) also requires the VideoCore cache @@ -176170,10 +176170,10 @@ index c8f9031fa946..d6576841d0fe 100644 2.18.4 -From ce712c030a4672cb72b9e16a47f114d3934fd199 Mon Sep 17 00:00:00 2001 +From 944aa558aa7d8e3a2407247041819f199559987b Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 10:00:12 +0100 -Subject: [PATCH 336/661] media: i2c: Add driver for Sony IMX477 sensor +Subject: [PATCH 336/693] media: i2c: Add driver for Sony IMX477 sensor Adds a driver for the 12MPix Sony IMX477 CSI2 sensor. Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver @@ -176196,10 +176196,10 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/i2c/imx477.c diff --git a/MAINTAINERS b/MAINTAINERS -index 349b2abe4152..ba4dc85810dd 100644 +index 78fd5dd08269..a0448741417a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -16345,6 +16345,14 @@ S: Maintained +@@ -16346,6 +16346,14 @@ S: Maintained T: git git://linuxtv.org/media_tree.git F: drivers/media/i2c/imx355.c @@ -178449,10 +178449,10 @@ index 000000000000..ec56b0cfd57b 2.18.4 -From 76d8a6eac60ab046a11de538e484a857d6be11d8 Mon Sep 17 00:00:00 2001 +From d1ff26dbea2d7f3813830cd267565c6d394a28f1 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 09:41:17 +0100 -Subject: [PATCH 337/661] media: i2c: imx477: Add support for adaptive frame +Subject: [PATCH 337/693] media: i2c: imx477: Add support for adaptive frame control Use V4L2_CID_EXPOSURE_AUTO_PRIORITY to control if the driver should @@ -178637,10 +178637,10 @@ index ec56b0cfd57b..bd0e2c291a32 100644 2.18.4 -From 85395990ce7e1a8cc7da6ee90846e11ec8117a1e Mon Sep 17 00:00:00 2001 +From 1f1d7afe44640159594b8b1dea8e152848367da9 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 19 May 2020 16:56:33 +0100 -Subject: [PATCH 338/661] media: i2c: imx477: Return correct result on sensor +Subject: [PATCH 338/693] media: i2c: imx477: Return correct result on sensor id verification The test should return -EIO if the register read id does not match @@ -178668,10 +178668,10 @@ index bd0e2c291a32..e42a8633087d 100644 2.18.4 -From f8adeb3f85a654dd29c1c77a2bbc01c2b259c073 Mon Sep 17 00:00:00 2001 +From e7a0998dd93a1165972b1bcba791369bb85c6d96 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 339/661] media: i2c: imx477: Parse and register properties +Subject: [PATCH 339/693] media: i2c: imx477: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -178719,10 +178719,10 @@ index e42a8633087d..3fbb173fa079 100644 2.18.4 -From 55ab38d511f50132b956ed5459836a06fe90ce9b Mon Sep 17 00:00:00 2001 +From 3be2df04d24b228cfe5317b83a3788cc39724f3a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 340/661] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 340/693] media: bcm2835-unicam: Always service interrupts From when bringing up the driver, there was a check in the isr to ignore interrupts (claiming them handled) should the driver @@ -178776,10 +178776,10 @@ index 35ddb97f7f75..d4ba911fe7e7 100644 2.18.4 -From a0ccdb178e6b55c7057a0bd10f4e159feb151407 Mon Sep 17 00:00:00 2001 +From d9b8570da8d4d99dc81963ea4cab63e909770a15 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 341/661] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 341/693] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -178803,10 +178803,10 @@ index d4ba911fe7e7..8b091d3a0d15 100644 2.18.4 -From 584eef173dbff81d4bb97f8d36ef739599940353 Mon Sep 17 00:00:00 2001 +From b34bd378222e4f34536526f0fe152fbf4aa04d91 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 15:14:05 +0100 -Subject: [PATCH 342/661] media: bcm2835-unicam: Fixup review comments from +Subject: [PATCH 342/693] media: bcm2835-unicam: Fixup review comments from Hans. Updates the driver based on the upstream review comments from @@ -179055,10 +179055,10 @@ index 8b091d3a0d15..7dc96c3e8e83 100644 2.18.4 -From 2d8026bc2171348373666eaad7c981ed5ffe4c78 Mon Sep 17 00:00:00 2001 +From d7936a55add4ec555ccfc7bfc480531cb3c5c3a5 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 343/661] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 343/693] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -179109,10 +179109,10 @@ index 7dc96c3e8e83..98ae97c367ea 100644 2.18.4 -From bd0959ec03b5454d035d160d810da2538fbae08d Mon Sep 17 00:00:00 2001 +From ce9dc4f4233fb84c644508d6e500dfc8c2cc53cb Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 344/661] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 344/693] media: bcm2835-unicam: change minimum number of vb2_queue buffers to 1 Since the unicam driver was modified to write to a dummy buffer when no @@ -179143,10 +179143,10 @@ index 98ae97c367ea..6501fb205e20 100644 2.18.4 -From f62ca5dae1c50a8af5457779568dacb54f5493f6 Mon Sep 17 00:00:00 2001 +From baeec6e892d7a84f7b254739a4e389346c38de2d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 1 Sep 2020 18:15:27 +0100 -Subject: [PATCH 345/661] staging/fbtft: Add support for display variants +Subject: [PATCH 345/693] staging/fbtft: Add support for display variants Display variants are intended as a replacement for the now-deleted fbtft_device drivers. Drivers can register additional compatible @@ -179358,10 +179358,10 @@ index 76f8c090a837..f4f5ff0dc0c0 100644 2.18.4 -From 8c432e357adf8046d6d8ac385b79e4bd6e9a862b Mon Sep 17 00:00:00 2001 +From bbbbcb5d9df11731ce021f57009d5fca62c744cd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 09:32:22 +0000 -Subject: [PATCH 346/661] brcmfmac: Increase power saving delay to 2s +Subject: [PATCH 346/693] brcmfmac: Increase power saving delay to 2s Increase the delay before entering the lower power state to 2 seconds (the maximum allowed) in order to reduce the packet latencies, @@ -179397,10 +179397,10 @@ index 38ef415cfbba..380a5ece63da 100644 2.18.4 -From 43641ae26ab0b993dfadefdce7881896ebebcc4d Mon Sep 17 00:00:00 2001 +From 8f7a114d09cb4878eea4944d7829cc0593c4706e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Sep 2020 14:02:44 +0100 -Subject: [PATCH 347/661] rpivid_h265: Fix width/height typo +Subject: [PATCH 347/693] rpivid_h265: Fix width/height typo Signed-off-by: popcornmix --- @@ -179424,10 +179424,10 @@ index 47d4de42c584..b677910e237c 100644 2.18.4 -From 926caedc555c2c062bdbdd656d269f93e9e17bea Mon Sep 17 00:00:00 2001 +From 2bf3ae984de1e7e094080cfae3a8cf8163db0094 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 25 Sep 2020 15:07:23 +0100 -Subject: [PATCH 348/661] net: bcmgenet: Reset RBUF on first open +Subject: [PATCH 348/693] net: bcmgenet: Reset RBUF on first open If the RBUF logic is not reset when the kernel starts then there may be some data left over from any network boot loader. If the @@ -179500,10 +179500,10 @@ index ae7011c1e1f7..3cbfe5bebc57 100644 2.18.4 -From c290e68eac4c36358064e0d55f03fc3a40618c2d Mon Sep 17 00:00:00 2001 +From 35d270e3018144212d0cb39d9c5984484c3e201d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2020 20:23:30 +0100 -Subject: [PATCH 349/661] char: Add broadcom char drivers back to build files +Subject: [PATCH 349/693] char: Add broadcom char drivers back to build files See: https://github.com/raspberrypi/linux/issues/3875 Signed-off-by: popcornmix @@ -179538,10 +179538,10 @@ index ffce287ef415..463ff9f136e4 100644 2.18.4 -From 072de597c2d7a0e47ec30ca6cacfeb5ee014f978 Mon Sep 17 00:00:00 2001 +From de4931c6af9600d785d95a5ec331f1427b3a2141 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 19:23:43 +0100 -Subject: [PATCH 350/661] USB: gadget: f_hid: avoid crashes and log spam +Subject: [PATCH 350/693] USB: gadget: f_hid: avoid crashes and log spam Disconnecting and reconnecting the USB cable can lead to crashes and a variety of kernel log spam. Try to fix or minimise both. @@ -179604,10 +179604,10 @@ index 1125f4715830..8315fca29cff 100644 2.18.4 -From 202442ba77ed5ebe61727b71b79874a261bf5d6a Mon Sep 17 00:00:00 2001 +From f9af28d6252522f578464f6e5dee8003b7ad7d54 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 7 Oct 2020 15:09:29 +0100 -Subject: [PATCH 351/661] dwc_otg: initialise sched_frame for periodic QHs that +Subject: [PATCH 351/693] dwc_otg: initialise sched_frame for periodic QHs that were parked If a periodic QH has no remaining QTDs, then it is removed from all @@ -179643,10 +179643,10 @@ index 2823dc9af63f..4503af692aef 100644 2.18.4 -From e352819843a6a65c7215bf487b286f691d392d17 Mon Sep 17 00:00:00 2001 +From 3b508109a6e2349b0ec4d9bb721f025454542792 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 15:35:14 +0100 -Subject: [PATCH 352/661] staging: bcm2835-camera: Replace deprecated +Subject: [PATCH 352/693] staging: bcm2835-camera: Replace deprecated V4L2_PIX_FMT_BGR32 V4L2_PIX_FMT_BGR32 is deprecated as it is ambiguous over where @@ -179679,10 +179679,10 @@ index bea37cb163fc..e0a96dbb843d 100644 2.18.4 -From 264168a8603bfb40e679d0a1829a460e1086a059 Mon Sep 17 00:00:00 2001 +From ffb8b283b598a26fb012852c26fc0986ff4e65dc Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 18:49:52 +0100 -Subject: [PATCH 353/661] staging: vc04_services: Add new vc-sm-cma driver +Subject: [PATCH 353/693] staging: vc04_services: Add new vc-sm-cma driver Add Broadcom VideoCore Shared Memory support. @@ -182643,10 +182643,10 @@ index 000000000000..988fdd967922 2.18.4 -From c838123ef705a804a049eb70dacb83826faa0259 Mon Sep 17 00:00:00 2001 +From 8559a2f954e7542c5238c9332b9b9ddcc995454b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:09:04 +0100 -Subject: [PATCH 354/661] staging: vchiq-mmal: Add support for 14bit Bayer +Subject: [PATCH 354/693] staging: vchiq-mmal: Add support for 14bit Bayer Add in the missing defines. @@ -182676,10 +182676,10 @@ index 44ba91aa6d47..be8af09a6c80 100644 2.18.4 -From 08b33fb05293f69f3067709c20fad93b2f919e00 Mon Sep 17 00:00:00 2001 +From d25dee1c0cd528b69c289fcf29ed8233758b62af Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:11:14 +0100 -Subject: [PATCH 355/661] staging: mmal-vchiq: Add monochrome image formats +Subject: [PATCH 355/693] staging: mmal-vchiq: Add monochrome image formats Adds support for monochrome image formats in the various MIPI packings. @@ -182711,10 +182711,10 @@ index be8af09a6c80..897e6cdf8dd9 100644 2.18.4 -From 62644d7ab13de868759e6f60d008724395d9828a Mon Sep 17 00:00:00 2001 +From 9332285b8de1432883128b8bed7a5001ca3a60fb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 25 Sep 2018 16:07:55 +0100 -Subject: [PATCH 356/661] staging: mmal-vchiq: Use vc-sm-cma to support zero +Subject: [PATCH 356/693] staging: mmal-vchiq: Use vc-sm-cma to support zero copy With the vc-sm-cma driver we can support zero copy of buffers between @@ -182885,10 +182885,10 @@ index e87f88f99338..247521fbcc1d 100644 2.18.4 -From 19599d31f23664640a265b7afaebfc25bee4c195 Mon Sep 17 00:00:00 2001 +From f951893c3c9395c38a1b5fd1b3225809dccb1832 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 20:24:12 +0100 -Subject: [PATCH 357/661] staging: vc04_services: Add a V4L2 M2M codec driver +Subject: [PATCH 357/693] staging: vc04_services: Add a V4L2 M2M codec driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -185975,10 +185975,10 @@ index 000000000000..d490ff67f747 2.18.4 -From ea8bd5bf21d124d163d973ae1f35c376b408d81a Mon Sep 17 00:00:00 2001 +From ffe7525a4ea2d3f29f2c3696a810cc8ef7674115 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2020 00:48:55 +0200 -Subject: [PATCH 358/661] bcm2835-dma: only reserve channel 0 if legacy dma +Subject: [PATCH 358/693] bcm2835-dma: only reserve channel 0 if legacy dma driver is enabled If CONFIG_DMA_BCM2708 isn't enabled there's no need to mask out @@ -186013,10 +186013,10 @@ index d1127b9058a4..0cbfa9d559a2 100644 2.18.4 -From fd078dcd42eed8ef1865248d0c9e0e8501917539 Mon Sep 17 00:00:00 2001 +From 5e40adeca2f5173f704d3e692e4a4ef9e4488f10 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 12 Oct 2020 17:03:14 +0100 -Subject: [PATCH 359/661] uapi: bcm2835-isp: Add bcm2835-isp uapi header file +Subject: [PATCH 359/693] uapi: bcm2835-isp: Add bcm2835-isp uapi header file This file defines the userland interface to the bcm2835-isp driver that will follow in a separate commit. @@ -186358,10 +186358,10 @@ index 000000000000..cf8c0437f159 2.18.4 -From 8547b002e6a4b4542e2de3360fca11448c7bf283 Mon Sep 17 00:00:00 2001 +From 8d0db7669b3849af68b8056c84f7607f7349b746 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:17:37 +0100 -Subject: [PATCH 360/661] staging: vc04_services: ISP: Add a more complex ISP +Subject: [PATCH 360/693] staging: vc04_services: ISP: Add a more complex ISP processing component Driver for the BCM2835 ISP hardware block. This driver uses the MMAL @@ -186394,7 +186394,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c diff --git a/MAINTAINERS b/MAINTAINERS -index ba4dc85810dd..efee3d01475d 100644 +index a0448741417a..937b6a1f99ec 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3431,6 +3431,15 @@ S: Maintained @@ -188793,10 +188793,10 @@ index 89059bca0b77..5b596b5c057f 100644 2.18.4 -From 323c2e9181893d7a26bd0a828f2d7feacef752b6 Mon Sep 17 00:00:00 2001 +From 21a50596ab1504059bbd942e1075612fc4cc7d0c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Jul 2019 17:36:34 +0100 -Subject: [PATCH 361/661] drm/vc4: A present but empty dmas disables audio +Subject: [PATCH 361/693] drm/vc4: A present but empty dmas disables audio Overlays are unable to remove properties in the base DTB, but they can overwrite them. Allow a present but empty 'dmas' property @@ -188832,10 +188832,10 @@ index 69994693c23d..05f841ff4f19 100644 2.18.4 -From e3cad57f028e7251e9e71f1d406ef6ae8cbec532 Mon Sep 17 00:00:00 2001 +From b72a16e2419f3df2273d3f1a74af6cb51557f951 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 6 Oct 2020 18:44:42 +0100 -Subject: [PATCH 362/661] drm/vc4: Add debugfs node that dumps the current +Subject: [PATCH 362/693] drm/vc4: Add debugfs node that dumps the current display lists This allows easy analysis of display lists when debugging. @@ -188908,10 +188908,10 @@ index ad691571d759..b5015d036d46 100644 2.18.4 -From 60e0cce5fd51cfb68984598e9093f129fed0d098 Mon Sep 17 00:00:00 2001 +From 72abed6ce332a2c67042b9091d20998886dfaca2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 12:00:54 +0100 -Subject: [PATCH 363/661] gpio: Add gpio-fsm driver +Subject: [PATCH 363/693] gpio: Add gpio-fsm driver The gpio-fsm driver implements simple state machines that allow GPIOs to be controlled in response to inputs from other GPIOs - real and @@ -190104,10 +190104,10 @@ index 000000000000..eb40cfdc71df 2.18.4 -From 2445297d49a048ac3bb828704d16eb64a83e39ad Mon Sep 17 00:00:00 2001 +From 9f92165528f49d4ef4a6d9ad81c1ef49f9abd9c2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 21 Oct 2020 18:34:56 +0100 -Subject: [PATCH 364/661] drm/vc4: Add all the HDMI registers into the debugfs +Subject: [PATCH 364/693] drm/vc4: Add all the HDMI registers into the debugfs dumps The vc5 HDMI registers hadn't been added into the debugfs @@ -190215,10 +190215,10 @@ index 1680e1a56149..1eb1fc0d95a3 100644 2.18.4 -From a4f48a7bd74cee568d25bfee7cb575584bf59bdb Mon Sep 17 00:00:00 2001 +From 91ced1555f26a104e39c90a2ff963cedf639e49c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 19 Mar 2020 10:04:46 +0000 -Subject: [PATCH 365/661] ARM: dts: bcm271x: Use a53 pmu, drop RPI364 +Subject: [PATCH 365/693] ARM: dts: bcm271x: Use a53 pmu, drop RPI364 The upstream bcm2837.dtsi uses cortex-a53-pmu, so we can do the same but with a fallback to the cortex-a7-pmu which is supported by the @@ -190298,10 +190298,10 @@ index 1fd86f81f542..bf69a4b0b172 100644 2.18.4 -From 07e9c2b8073e9c871563d0c909f33142092ce081 Mon Sep 17 00:00:00 2001 +From d394cfad6eb8e34d4bf3983064e0b63eefb86964 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 23 Oct 2020 14:15:41 +0100 -Subject: [PATCH 366/661] overlays: Add option to disable composite to +Subject: [PATCH 366/693] overlays: Add option to disable composite to vc4-kms-v3d Composite gets enabled automatically if HDMI isn't detected, @@ -190342,10 +190342,10 @@ index 6d34a2bff49b..5a4efdeed663 100644 2.18.4 -From cdf0f9c6bf25596278d19748792d5fb51e766827 Mon Sep 17 00:00:00 2001 +From b6cac5867a6085e8bf02dcf4407d59604ef10e80 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 11 Mar 2020 12:07:57 +0000 -Subject: [PATCH 367/661] overlays: imx219: Correct link frequency to match the +Subject: [PATCH 367/693] overlays: imx219: Correct link frequency to match the upstream driver The upstream driver is checking the link frequency parameter, and @@ -190373,10 +190373,10 @@ index 3484bde5a9e8..dce07b335c4e 100644 2.18.4 -From 50fc5a7b774a828c55a5dead95e392885ac3874c Mon Sep 17 00:00:00 2001 +From 5c685fc94b43a65dae3dc3ad48f1d865cc9e991d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 23 Oct 2020 15:45:11 +0100 -Subject: [PATCH 368/661] dts: Add CM4 to arm64 dt files +Subject: [PATCH 368/693] dts: Add CM4 to arm64 dt files Signed-off-by: Dave Stevenson --- @@ -190410,10 +190410,10 @@ index 000000000000..8064a58155f1 2.18.4 -From c9f1375d82973aec19cae66f5c5146ee274f29e5 Mon Sep 17 00:00:00 2001 +From af97bf71a0803517c67e488e6e2a2e7000b24728 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 26 Oct 2020 12:38:27 +0000 -Subject: [PATCH 369/661] drm/vc4: Add the 2711 HVS as a suitable DMA node +Subject: [PATCH 369/693] drm/vc4: Add the 2711 HVS as a suitable DMA node With vc4-drv node not being under /soc on Pi4, we need to adopt the correct DMA parameters from a suitable sub-component. @@ -190440,10 +190440,10 @@ index d6576841d0fe..617c113b033f 100644 2.18.4 -From 970a2c930de7bfe4ba58cba84da2d2135d5700b0 Mon Sep 17 00:00:00 2001 +From 2d643e381fd2d317bbaa00504e2a4ce1e70c45b8 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 26 Oct 2020 14:03:35 +0000 -Subject: [PATCH 370/661] xhci: quirks: add link TRB quirk for VL805 +Subject: [PATCH 370/693] xhci: quirks: add link TRB quirk for VL805 The VL805 controller can't cope with the TR Dequeue Pointer for an endpoint being set to a Link TRB. The hardware-maintained endpoint context ends up @@ -190463,10 +190463,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 12 insertions(+) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 96e37f60c7c2..d4e3941bfee9 100644 +index d7c948f569be..b1fa78304d49 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -273,6 +273,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -277,6 +277,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; @@ -190511,10 +190511,10 @@ index 4f24ad7eccd9..2cc777f66cdf 100644 2.18.4 -From 55f54458b41731b2cd3245d6096a1fcac49b6ca3 Mon Sep 17 00:00:00 2001 +From 5f2592ad8e70f865b6d5f02807e6be6f5acff58c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 15:01:21 +0000 -Subject: [PATCH 371/661] dts: Tidy the Raspberry Pi Makefile entries +Subject: [PATCH 371/693] dts: Tidy the Raspberry Pi Makefile entries Signed-off-by: Phil Elwell --- @@ -190562,10 +190562,10 @@ index 1e861e2bf2e0..996e670a6018 100644 2.18.4 -From 30d4cabd4a209385100895fe84cd9793ad0dcaff Mon Sep 17 00:00:00 2001 +From a92fc6128301c43021a94a011a0aa408da2ffadf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:23:22 +0000 -Subject: [PATCH 372/661] staging: bcm2835-audio: Add disable-headphones flag +Subject: [PATCH 372/693] staging: bcm2835-audio: Add disable-headphones flag Add a property to allow the headphone output to be disabled. Use an integer property rather than a boolean so that an overlay can clear it. @@ -190602,10 +190602,10 @@ index a0cba3823e5e..ccda115ab9e0 100644 2.18.4 -From 09217414c92b9854c4e03afd617c42d7d3ce9953 Mon Sep 17 00:00:00 2001 +From feeac148e4ce6f8de3c9158b06140516841d99cd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:18:50 +0000 -Subject: [PATCH 373/661] ARM: dts: Disable headphone audio on Zeroes, CM4 +Subject: [PATCH 373/693] ARM: dts: Disable headphone audio on Zeroes, CM4 Signed-off-by: Phil Elwell --- @@ -190654,10 +190654,10 @@ index 0ca3a0126220..fa7b16040f36 100644 2.18.4 -From 6b0aebc021ff88b58d394d96f7277a1a6df74e39 Mon Sep 17 00:00:00 2001 +From 4c42033c4dd70b345efe07a819063fc09a1edfb5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:21:23 +0000 -Subject: [PATCH 374/661] overlays: Enable headphone audio in audremap +Subject: [PATCH 374/693] overlays: Enable headphone audio in audremap Signed-off-by: Phil Elwell --- @@ -190686,10 +190686,10 @@ index d624bb3a3fea..7324890ead86 100644 2.18.4 -From 29a96fbd2b7f4fdd0df8f0af43e14e50d6ec5bb8 Mon Sep 17 00:00:00 2001 +From 3e4b5f618429a4f60064ecced34f35839067c780 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 26 Oct 2020 16:38:21 +0000 -Subject: [PATCH 375/661] rpisense-fb: Set pseudo_pallete to prevent crash on +Subject: [PATCH 375/693] rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover Signed-off-by: Serge Schneider @@ -190722,10 +190722,10 @@ index 26432a5a0b4b..325977def531 100644 2.18.4 -From 11aba9c4a83f20c486689ed564ec4162aae135dd Mon Sep 17 00:00:00 2001 +From 100efbaa6dacb12832185f4ce913db0f74dd53c6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:35:43 +0000 -Subject: [PATCH 376/661] ARM: dts: Expand PCIe space on BCM2711 +Subject: [PATCH 376/693] ARM: dts: Expand PCIe space on BCM2711 Attempts to connect external GPUs to Compute Module 4's PCIe bus have highlighted that the existing "outbound window" - the fraction of the @@ -190758,10 +190758,10 @@ index b4a18b627359..8ad6c3012fe3 100644 2.18.4 -From 8e63c5d11705cd4d7297fb16d5863dddfff14b76 Mon Sep 17 00:00:00 2001 +From 75a712cd796620acb3f7e95acf1a5f85bf387ca7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 21:51:29 +0000 -Subject: [PATCH 377/661] configs: Set RASPBERRYPI_FIRMWARE for arm64 bcm2711 +Subject: [PATCH 377/693] configs: Set RASPBERRYPI_FIRMWARE for arm64 bcm2711 RASPBERRYPI_FIRMWARE was missing from the arm64 bcm2711_defconfig. bcmrpi3_defconfig was also missing a few options. Add the misssing @@ -190912,10 +190912,10 @@ index d542d2522076..6247c74639f7 100644 2.18.4 -From 48b52d116783c96e0a1e387e87c7a9ad99ea0947 Mon Sep 17 00:00:00 2001 +From c8553029b599b221060c152e66be025cb508f0dc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 09:59:49 +0000 -Subject: [PATCH 378/661] dwc_otg: Minimise header and fix build warnings +Subject: [PATCH 378/693] dwc_otg: Minimise header and fix build warnings Delete a large amount of unused declaration from "usb.h", some of which were causing build warnings, and get the module building cleanly. @@ -191817,10 +191817,10 @@ index e55ea9c74be4..76e94b4ebb43 100644 2.18.4 -From cb095882eba2bd76bbb609e7f43c7f52bfcc9c56 Mon Sep 17 00:00:00 2001 +From a9731dd1e53e3757f20d659402a7604d3cd351a1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:10:04 +0000 -Subject: [PATCH 379/661] gpio-fsm: Fix a build warning +Subject: [PATCH 379/693] gpio-fsm: Fix a build warning Signed-off-by: Phil Elwell --- @@ -191845,10 +191845,10 @@ index eb8b4d58d2d0..2cab50e51315 100644 2.18.4 -From d22cbaa4db4467d631049b9736b182bc71bdf397 Mon Sep 17 00:00:00 2001 +From 3be6d3359337bfd23f3635fe2844a6b229a7b0bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:10:40 +0000 -Subject: [PATCH 380/661] rpivid_h625: Fix build warnings +Subject: [PATCH 380/693] rpivid_h625: Fix build warnings Signed-off-by: Phil Elwell --- @@ -191919,10 +191919,10 @@ index b677910e237c..fc3caed58187 100644 2.18.4 -From d520a313f14f546f1bb885cf13d3bf81820b07ec Mon Sep 17 00:00:00 2001 +From 45db52cc96ca7aa53960d8eb9a5234b8cfcf1852 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:12:22 +0000 -Subject: [PATCH 381/661] bcm2708_fb: Fix a build warning +Subject: [PATCH 381/693] bcm2708_fb: Fix a build warning Signed-off-by: Phil Elwell --- @@ -191947,10 +191947,10 @@ index dac5c021ce52..365c5b96b8a0 100644 2.18.4 -From 6569602273d4f58775cdaa8ea9c056ab478a0d2b Mon Sep 17 00:00:00 2001 +From 7d0b60fc74d6f0da4161942cbd35d3250c6e8636 Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:18:42 +0000 -Subject: [PATCH 382/661] PiFi-40 defconfigs +Subject: [PATCH 382/693] PiFi-40 defconfigs Signed-off-by: David Knell --- @@ -192025,10 +192025,10 @@ index 6247c74639f7..bc02ce537715 100644 2.18.4 -From 93c1dc6b55d4e96ccaeb6c38154e663062f77320 Mon Sep 17 00:00:00 2001 +From 0542c18c02063cc17f54e9d11d00a4f8aefa5e64 Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:20:56 +0000 -Subject: [PATCH 383/661] PiFi-40 Devicetree files +Subject: [PATCH 383/693] PiFi-40 Devicetree files Signed-off-by: David Knell --- @@ -192127,10 +192127,10 @@ index 000000000000..51a20e54977f 2.18.4 -From bab570b9a9953695157a74dca2f839a052096c92 Mon Sep 17 00:00:00 2001 +From 79fa4dfe2ec1b119a09ec3442d01ac12bbafdb28 Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:21:37 +0000 -Subject: [PATCH 384/661] PiFi-40 driver, Makefile and Kconfig +Subject: [PATCH 384/693] PiFi-40 driver, Makefile and Kconfig Signed-off-by: David Knell --- @@ -192470,10 +192470,10 @@ index 000000000000..ae699fb0485c 2.18.4 -From 8416452410edfde08bd2e784178cddcfc857a5ed Mon Sep 17 00:00:00 2001 +From 66a9defad09b4c71061bdb1735c424e7a3e54079 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 27 Oct 2020 12:24:14 +0000 -Subject: [PATCH 385/661] bcm2835-pcm: Fix up multichannel pcm audio +Subject: [PATCH 385/693] bcm2835-pcm: Fix up multichannel pcm audio Fixes: a9c1660ff5f02d048c5f31abf1fd1108ccf9ef87 Signed-off-by: Dom Cobley @@ -192531,10 +192531,10 @@ index 3c0033101e6e..fa5cf5b9550f 100644 2.18.4 -From 32746a97aeb8e88b3fbe6c53ac5646ae559b215a Mon Sep 17 00:00:00 2001 +From 27a28344c55767300be8016be681650d5c6c66db Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Thu, 22 Oct 2020 15:30:55 +0100 -Subject: [PATCH 386/661] watchdog: bcm2835: Ignore params after the partition +Subject: [PATCH 386/693] watchdog: bcm2835: Ignore params after the partition number Use sscanf to extract the partition number and ignore extra parameters @@ -192566,10 +192566,10 @@ index 62937e6f83ca..de25e3682f03 100644 2.18.4 -From 74b067eb56da02d16bef51127f0a6a41e86c59c8 Mon Sep 17 00:00:00 2001 +From 8e45ae8126484919d1183d192aa9a09bb286a8a8 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 20 Oct 2020 11:55:37 +0100 -Subject: [PATCH 387/661] firmware: raspberrypi: Add support for tryonce reboot +Subject: [PATCH 387/693] firmware: raspberrypi: Add support for tryonce reboot flag Define a new mailbox (SET_REBOOT_FLAGS) which may be used to @@ -192646,10 +192646,10 @@ index 05c6989ec4c6..6b393bbe7f52 100644 2.18.4 -From 282223c12442b9128678f7dacfe861620fa92ef6 Mon Sep 17 00:00:00 2001 +From 98fce1e70a3d2b2e189672a72d8cd3664adc25b4 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:00:41 +0100 -Subject: [PATCH 388/661] phy: broadcom: split out the BCM54213PE from the +Subject: [PATCH 388/693] phy: broadcom: split out the BCM54213PE from the BCM54210E IDs The last nibble is a revision ID, and the 54213pe is a later rev @@ -192724,10 +192724,10 @@ index 54665952d6ad..92948c26da2a 100644 2.18.4 -From 4bd679a032ce807ae9de2dcebecf901ec44d7c12 Mon Sep 17 00:00:00 2001 +From 8ca4f6fe52499ec32fbe24fac85fa077a151e3b5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 29 Oct 2020 14:10:56 +0000 -Subject: [PATCH 389/661] phy: broadcom: Add bcm54213pe configuration +Subject: [PATCH 389/693] phy: broadcom: Add bcm54213pe configuration Signed-off-by: Phil Elwell --- @@ -192764,10 +192764,10 @@ index 671517aae345..8b0ac38742d0 100644 2.18.4 -From 3b86b9e787571a692506cb1356f2ad6c4a054cd1 Mon Sep 17 00:00:00 2001 +From 03a743bd9683b69454299a6225650f2aad673a8d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Nov 2020 14:56:18 +0000 -Subject: [PATCH 390/661] configs: Add CONFIG_MAX31856=m +Subject: [PATCH 390/693] configs: Add CONFIG_MAX31856=m Enable support for MAX31856 temperature sensors. @@ -192846,10 +192846,10 @@ index bc02ce537715..680b51ab0642 100644 2.18.4 -From d0c9fc81d5ed5904b0a9811eabe863feaf173301 Mon Sep 17 00:00:00 2001 +From b27f4f161d4e394b4f5fce6ef29885c6e096d947 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 22 Oct 2020 17:11:12 +0100 -Subject: [PATCH 391/661] overlays: Add MAX31856 support to maxtherm overlay +Subject: [PATCH 391/693] overlays: Add MAX31856 support to maxtherm overlay Extend the maxtherm overlay with support for the MAX31856. The driver reads the thermocouple type from a property, which is much @@ -192956,10 +192956,10 @@ index 34d5727069ec..9964e246c14f 100644 2.18.4 -From e014bfa676797988c395c6bb7888afb7b202c89f Mon Sep 17 00:00:00 2001 +From 2a9210b9fa6e5b6d081972353cd8ac0b5273ec28 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2020 14:21:33 +0100 -Subject: [PATCH 392/661] ARM: dts: Add bcm2711-rpi-400.dts +Subject: [PATCH 392/693] ARM: dts: Add bcm2711-rpi-400.dts Signed-off-by: Phil Elwell --- @@ -193627,10 +193627,10 @@ index 000000000000..90c2b5a195d4 2.18.4 -From 394ca7c3379dec80c366d6bc32a67ba5a696a25b Mon Sep 17 00:00:00 2001 +From 03b6485443c86e672d9a60bf6519e3d915d2b01b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 4 Nov 2020 11:25:02 +0000 -Subject: [PATCH 393/661] overlays: Deprecate and delete the sdtweak overlay +Subject: [PATCH 393/693] overlays: Deprecate and delete the sdtweak overlay The sdtweak overlay has been superseded by the board-specific sd_* parameters such as sd_poll_once, sd_overclock etc. @@ -193752,10 +193752,10 @@ index 38157d2f9bf3..000000000000 2.18.4 -From e356cab033e5921e124abb4d410eb541e7aa14d0 Mon Sep 17 00:00:00 2001 +From 51622c2afdfbb442980d667c8a00976d8cafae9b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Nov 2020 11:39:35 +0000 -Subject: [PATCH 394/661] ARM: dts: bcm27xx: Remove enable_headphones setting +Subject: [PATCH 394/693] ARM: dts: bcm27xx: Remove enable_headphones setting The enable_headphones parameter of the snd_bcm2835 module is forced to 1 if enable_compat_alsa is 0, so setting them both on the kernel @@ -193882,10 +193882,10 @@ index fa7b16040f36..49c69fdaef49 100644 2.18.4 -From 04275f8e1c9cd4f1256712405aa1263f6dd2985b Mon Sep 17 00:00:00 2001 +From bcf0ab521c37fee7a2f8009736c912be5381addb Mon Sep 17 00:00:00 2001 From: menschel Date: Fri, 6 Nov 2020 23:32:22 +0100 -Subject: [PATCH 395/661] configs: Add CAN_MCP251XFD=m and CAN_ISOTP=m +Subject: [PATCH 395/693] configs: Add CAN_MCP251XFD=m and CAN_ISOTP=m * Add mcp251xfd driver module to the RPi kernel builds. * Add isotp can protocol module to the RPi kernel builds. @@ -193977,10 +193977,10 @@ index 680b51ab0642..ff74c23ef24e 100644 2.18.4 -From 0d984c0250e11a8886fcd66e2a7b3866772c4287 Mon Sep 17 00:00:00 2001 +From 2a848ca1f5947016c24780e284eb2092099861aa Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 9 Nov 2020 19:49:32 +0000 -Subject: [PATCH 396/661] vc4_hdmi: Report that 3d/stereo is allowed +Subject: [PATCH 396/693] vc4_hdmi: Report that 3d/stereo is allowed Signed-off-by: Dom Cobley --- @@ -194003,10 +194003,10 @@ index c04e54752991..63e9dd62cde8 100644 2.18.4 -From 2294daf6d9536b14e739ee8d5f7a61017db6342b Mon Sep 17 00:00:00 2001 +From 419a68f224cc4dee3114ca5fdf5303364c1a2046 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2020 17:08:33 +0000 -Subject: [PATCH 397/661] PCI: brcmstb: Restore initial fundamental reset +Subject: [PATCH 397/693] PCI: brcmstb: Restore initial fundamental reset [1] replaced a single reset function with a pointer to one of two implementations, but also removed the call asserting the reset @@ -194044,10 +194044,10 @@ index fea54f6fb7b1..bd0263d739c9 100644 2.18.4 -From f018b6e548a19a86519ff711e9c3999e423eb435 Mon Sep 17 00:00:00 2001 +From 08e89ad90f9b5a3dafdbc01b6dd38c78facdabcf Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 10 Nov 2020 20:04:08 +0000 -Subject: [PATCH 398/661] vc4: Clear unused infoframe packet RAM registers +Subject: [PATCH 398/693] vc4: Clear unused infoframe packet RAM registers Using a hdmi analyser the bytes in packet ram registers beyond the length were visible in the @@ -194095,10 +194095,10 @@ index 63e9dd62cde8..4a3e020364af 100644 2.18.4 -From 625e714fb23f845432bfb4928827800a2bf2c7d8 Mon Sep 17 00:00:00 2001 +From 08c69a4f9e5a6efdbdf1ed5910ad7a902dc6556b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:45:10 +0000 -Subject: [PATCH 399/661] Input: edt-ft5x06: Poll the device if no interrupt is +Subject: [PATCH 399/693] Input: edt-ft5x06: Poll the device if no interrupt is configured. Not all systems have the interrupt line wired up, so switch to @@ -194198,10 +194198,10 @@ index 6ff81d48da86..7e8acc0c19be 100644 2.18.4 -From 30938288c8ca9034af62ddd388772bfbd305ca48 Mon Sep 17 00:00:00 2001 +From a5fe8d27f4dbcd98f1177406fb93880c2db6498b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:52:25 +0000 -Subject: [PATCH 400/661] dtoverlays: Add an overlay for the EDT FT5406 +Subject: [PATCH 400/693] dtoverlays: Add an overlay for the EDT FT5406 touchscreen This touchscreen controller is used by the 7" DSI panel, and @@ -194305,10 +194305,10 @@ index 000000000000..407af59bf468 2.18.4 -From a87c5ed6e2b6cacfc30e3f57e1b70d24db527028 Mon Sep 17 00:00:00 2001 +From 866ddbb08d32a719ddbf54e70accfd2518286b0d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 23 Apr 2020 10:17:18 +0100 -Subject: [PATCH 401/661] drm/panel/raspberrypi-touchscreen: Use independent +Subject: [PATCH 401/693] drm/panel/raspberrypi-touchscreen: Use independent I2C actions with delay. We now have the hardware I2C controller pinmuxed to the drive the @@ -194369,10 +194369,10 @@ index 5e9ccefb88f6..7ebb5ee2a47d 100644 2.18.4 -From 3d06e177da7d66b36e005d4f61bab35a895a7afe Mon Sep 17 00:00:00 2001 +From 2160cf3ebd14df63e0f86dec599618c06bcbe721 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 11:21:56 +0000 -Subject: [PATCH 402/661] drm/panel/raspberrypi-ts: Insert delay before polling +Subject: [PATCH 402/693] drm/panel/raspberrypi-ts: Insert delay before polling for startup state In switching to the hardware I2C controller there is an issue @@ -194401,10 +194401,10 @@ index 7ebb5ee2a47d..abb8a8586b6f 100644 2.18.4 -From 6e7a3b274fe9415a4792332ffa3540547ba49dbc Mon Sep 17 00:00:00 2001 +From 37a8a21e33a4dae5a6ea7a78e121547d09e034ed Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 17:49:35 +0000 -Subject: [PATCH 403/661] Add devicetree support for RaspberryPi 7" panel over +Subject: [PATCH 403/693] Add devicetree support for RaspberryPi 7" panel over DSI I2C Signed-off-by: Dave Stevenson @@ -194512,10 +194512,10 @@ index 000000000000..086f4ffd633a 2.18.4 -From 58eb297facde5887c239c9927579f83e484433dc Mon Sep 17 00:00:00 2001 +From 833596052b02318bafe317b2136556ba036f8e86 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Fri, 15 Nov 2019 00:54:07 +0100 -Subject: [PATCH 404/661] mcp251xfd: add overlay +Subject: [PATCH 404/693] mcp251xfd: add overlay Signed-off-by: Marc Kleine-Budde --- @@ -194806,10 +194806,10 @@ index 000000000000..65c861bbd340 2.18.4 -From cd8e5a04f02cd519d748dc30e16a4a0aa9da0304 Mon Sep 17 00:00:00 2001 +From 6ac533d7eceda9e8e25298e42870f37b91e0f335 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Nov 2020 14:53:14 +0000 -Subject: [PATCH 405/661] configs: Regenerate the defconfigs +Subject: [PATCH 405/693] configs: Regenerate the defconfigs The CAN_ISOTP setting was in the wrong position, and it's better for bisecting and reverting if this doesn't get rolled into the next @@ -194921,10 +194921,10 @@ index ff74c23ef24e..6939accc59bf 100644 2.18.4 -From baef4cb9b6bf742ea739d74ebb4da894aeedf84e Mon Sep 17 00:00:00 2001 +From c97c2cc4bb06f2fa8ae9a42fae70ce3726fcc65e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Nov 2020 14:56:18 +0000 -Subject: [PATCH 406/661] configs: Restore BRIDGE_NETFILTER=m +Subject: [PATCH 406/693] configs: Restore BRIDGE_NETFILTER=m CONFIG_BRIDGE_NETFILTER=m used to be the default when CONFIG_NETFILTER was enabled, but that was removed in 5.9. The way that defconfigs work @@ -195006,10 +195006,10 @@ index 6939accc59bf..88ae301afcb4 100644 2.18.4 -From cb6cf6a020a8e1a47e5359d367410aa4278c7cb6 Mon Sep 17 00:00:00 2001 +From 531a5fedf71e0abf233e8114e71afdc9811187a2 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 23 Nov 2020 16:17:31 +0100 -Subject: [PATCH 407/661] configs: Enable WireGuard kernel module on armhf +Subject: [PATCH 407/693] configs: Enable WireGuard kernel module on armhf configs CONFIG_WIREGUARD=m implies CONFIG_ARM_CRYPTO=y, hence the latter is removed. @@ -195085,10 +195085,10 @@ index d8484c28caed..77c400a1ecd9 100644 2.18.4 -From 86c9a2178a3fa809960f86aaaf99bcef8e34d39c Mon Sep 17 00:00:00 2001 +From ff5f9f40aabe4d4e9fb16d3f2bb6fc4d907b332b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 22 Nov 2020 11:01:08 +0000 -Subject: [PATCH 408/661] media: ov9281: Add 1280x720 and 640x480 modes +Subject: [PATCH 408/693] media: ov9281: Add 1280x720 and 640x480 modes Breaks out common register set and adds the different registers for 1280x720 (cropped) and 640x480 (skipped) modes @@ -195300,10 +195300,10 @@ index 9610c24ceff1..12621c2dccd5 100644 2.18.4 -From b2b43f21760ac56b31f0c8d50185e9625cb97400 Mon Sep 17 00:00:00 2001 +From b3c3bdfb4b0463522896e76c6add4973f8615ff2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 11 Nov 2020 17:18:01 +0000 -Subject: [PATCH 409/661] drm/vc4: Add support for DSI0 +Subject: [PATCH 409/693] drm/vc4: Add support for DSI0 DSI0 was partially supported, but didn't register with the main driver, and the code was inconsistent as to whether it checked @@ -195381,10 +195381,10 @@ index eaf276978ee7..1680adf9fe31 100644 2.18.4 -From 6658d61b1de033e202bb74e4a58e6dd18bce219c Mon Sep 17 00:00:00 2001 +From 45ae79d94a9b0a1467dace1bf43d5617b33a3586 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:01:52 +0000 -Subject: [PATCH 410/661] dt-bindings: Add compatible for BCM2711 DSI1 +Subject: [PATCH 410/693] dt-bindings: Add compatible for BCM2711 DSI1 DSI1 on BCM2711 doesn't require the DMA workaround that is used on BCM2835/6/7, therefore it needs a new compatible string. @@ -195410,10 +195410,10 @@ index eb44e072b6e5..90ee069ada8d 100644 2.18.4 -From 7eedbb6c2f586e7908ad58eb11badddc676a74d8 Mon Sep 17 00:00:00 2001 +From ae62e23f8bd0a52f81217e8b8759eedc3a285802 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:18:13 +0000 -Subject: [PATCH 411/661] drm/vc4: Add configuration for BCM2711 DSI1. +Subject: [PATCH 411/693] drm/vc4: Add configuration for BCM2711 DSI1. BCM2711 DSI1 doesn't have the issue with the ARM not being able to write to the registers, therefore remove the DMA @@ -195455,10 +195455,10 @@ index 1680adf9fe31..0cd40d31e82d 100644 2.18.4 -From 8e2fa8ed5a5f45ca06ef1030e30de37df16add10 Mon Sep 17 00:00:00 2001 +From eb6a236a6f36325872222541b592a2d58ae07f42 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 18:42:30 +0000 -Subject: [PATCH 412/661] dt: Use compatible string for BCM2711 DSI1 +Subject: [PATCH 412/693] dt: Use compatible string for BCM2711 DSI1 Updates the compatible string for DSI1 on BCM2711 to differentiate it from BCM2835. @@ -195484,10 +195484,10 @@ index 8ad6c3012fe3..7c2d374cb749 100644 2.18.4 -From 698dcf29714d248902d0c342b2b198ef21ca9cb7 Mon Sep 17 00:00:00 2001 +From 961b52549207b11f44890497b50695bbbf9b09f0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 30 Nov 2020 16:16:03 +0000 -Subject: [PATCH 413/661] drm/vc4: Correct DSI register definition +Subject: [PATCH 413/693] drm/vc4: Correct DSI register definition The DSI1_PHY_AFEC0_PD_DLANE1 and DSI1_PHY_AFEC0_PD_DLANE3 register definitions were swapped, so trying to use more than a single data @@ -195524,10 +195524,10 @@ index 0cd40d31e82d..bac5e07c05de 100644 2.18.4 -From 072045bf71fcb81b339272285f398e81501f28c2 Mon Sep 17 00:00:00 2001 +From f077d61a6229f0b519c3cadbff85a43a1148aec0 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:47:17 +0530 -Subject: [PATCH 414/661] Allo boss2 driver +Subject: [PATCH 414/693] Allo boss2 driver Signed-off-by: Sudeep --- @@ -196720,10 +196720,10 @@ index 000000000000..5ad7f16964aa 2.18.4 -From 4f245437694860dd14f4019fc29b6aeaf17aac44 Mon Sep 17 00:00:00 2001 +From 9a4b4bb9ac4e9c5736c3ae19f2099dd1fd59f2b4 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:51:15 +0530 -Subject: [PATCH 415/661] Add allo boss2 overlay +Subject: [PATCH 415/693] Add allo boss2 overlay Signed-off-by: Sudeep --- @@ -196829,10 +196829,10 @@ index 000000000000..a6adfb495eb9 2.18.4 -From 764698a25a4b3da8b9773a01434fa5cf7f4d12a5 Mon Sep 17 00:00:00 2001 +From b14193bc46c6c9307a079afd68a2b0b1cf6a8905 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:52:38 +0530 -Subject: [PATCH 416/661] Add allo boss2 config +Subject: [PATCH 416/693] Add allo boss2 config Signed-off-by: Sudeep --- @@ -196907,10 +196907,10 @@ index 88ae301afcb4..2359f9c08650 100644 2.18.4 -From c1fb5547373a418a3b23655bfedb00e7b5db948d Mon Sep 17 00:00:00 2001 +From c544c00859ccb9b0e0b737436ae9e6e0fb77feee Mon Sep 17 00:00:00 2001 From: paul-1 <6473457+paul-1@users.noreply.github.com> Date: Wed, 4 Nov 2020 19:17:48 -0500 -Subject: [PATCH 417/661] Overlay: Update Allo Piano Plus dac driver for 5.4.y +Subject: [PATCH 417/693] Overlay: Update Allo Piano Plus dac driver for 5.4.y kernels. Create unique names for the two instances of the codec driver. @@ -196943,10 +196943,10 @@ index 374c553db062..d47a35def4f7 100644 2.18.4 -From d62c2a367f2721793cb75e8ffe5db3d254923822 Mon Sep 17 00:00:00 2001 +From 91378b1c53b1642130fd2ca4489d073c7c241bb3 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:22:23 +0000 -Subject: [PATCH 418/661] media: bcm2835-unicam: Correctly handle error +Subject: [PATCH 418/693] media: bcm2835-unicam: Correctly handle error propagation for stream on On a failure in start_streaming(), the error code would not propagate to @@ -196976,10 +196976,10 @@ index 6501fb205e20..c13a0a20fd12 100644 2.18.4 -From e7dcad10de52c4b8177ae3b384ae69c46d5175e3 Mon Sep 17 00:00:00 2001 +From 952930dc3112e8387fe3bb6240d8e6e227001897 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:26:09 +0000 -Subject: [PATCH 419/661] media: bcm2835-unicam: Return early from +Subject: [PATCH 419/693] media: bcm2835-unicam: Return early from stop_streaming() if stopped clk_disable_unprepare() is called unconditionally in stop_streaming(). @@ -197046,10 +197046,10 @@ index c13a0a20fd12..60309de02369 100644 2.18.4 -From c7c1802c872351ed8f37d4d301a2ece1fc900cc4 Mon Sep 17 00:00:00 2001 +From a311cb9719f1836eeadbfb0af315800f4244c0b8 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 16:48:41 +0000 -Subject: [PATCH 420/661] media: bcm2835-unicam: Clear clock state when +Subject: [PATCH 420/693] media: bcm2835-unicam: Clear clock state when stopping streaming Commit 65e08c465020d4c5b51afb452efc2246d80fd66f failed to clear the @@ -197077,10 +197077,10 @@ index 60309de02369..a8b3f5433f04 100644 2.18.4 -From 53af4969ef43805a3728c283a724db75656c5db7 Mon Sep 17 00:00:00 2001 +From 66e5d08b55a9a41ba7da9d47b883a2082dae02f1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 3 Dec 2020 13:44:42 +0000 -Subject: [PATCH 421/661] PCI: brcmstb: Advertise MSI-X support +Subject: [PATCH 421/693] PCI: brcmstb: Advertise MSI-X support Although the BRCMSTB PCIe interface doesn't technically support the MSI-X spec, in practise it seems to work provided no more than 32 @@ -197110,10 +197110,10 @@ index bd0263d739c9..840f264f7a9b 100644 2.18.4 -From 71c470840045f1dda1b04ad3c82a706b546a235c Mon Sep 17 00:00:00 2001 +From cf475420b70a10b23e5d29def095778d6954a988 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 09:35:57 +0000 -Subject: [PATCH 422/661] ARM: dts: CM4 audio pins are not connected +Subject: [PATCH 422/693] ARM: dts: CM4 audio pins are not connected Signed-off-by: Phil Elwell --- @@ -197137,10 +197137,10 @@ index 49c69fdaef49..dbe8afe9ac5f 100644 2.18.4 -From 712ad29acc2fb2a739fcc7aba7d5b9b5fe92225e Mon Sep 17 00:00:00 2001 +From 837b1de60c30414d294daa52744c7d413ea29690 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 08:33:19 +0000 -Subject: [PATCH 423/661] configs: Add RTC_DRV_PCF85063=m +Subject: [PATCH 423/693] configs: Add RTC_DRV_PCF85063=m Include the driver module for the PCF85063 and PCF85063A RTC devices. @@ -197217,10 +197217,10 @@ index 2359f9c08650..5d6f27ec87f6 100644 2.18.4 -From 0a9bceb0c93210e33006769810f395b18353253f Mon Sep 17 00:00:00 2001 +From cd4958529c385f079e738c2cefe092d5fb521b26 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 08:49:53 +0000 -Subject: [PATCH 424/661] overlays: Add PCF85063 and PCF85063A to i2c-rtc +Subject: [PATCH 424/693] overlays: Add PCF85063 and PCF85063A to i2c-rtc Add support for the PCF85063 and PCF85063A RTC devices to the i2c-rtc overlay. @@ -197564,10 +197564,10 @@ index 735ca303e4fa..759f532d5be1 100644 2.18.4 -From d4ddb6ca4a4677996dccb2d2c71aa46b79773730 Mon Sep 17 00:00:00 2001 +From f4dbd17e81f306daacdf0249151cff6316398f81 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 17:18:39 +0000 -Subject: [PATCH 425/661] overlays: Fix cut-and-paste error in README +Subject: [PATCH 425/693] overlays: Fix cut-and-paste error in README Signed-off-by: Phil Elwell --- @@ -197594,10 +197594,10 @@ index d4cf4176a54b..2fa2bbb943cd 100644 2.18.4 -From 8cf4124521b3775653d117fca990704a8994736f Mon Sep 17 00:00:00 2001 +From 17f4c6b105e194913e0d5863217d141b7bd62dd8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 4 Nov 2020 18:31:02 +0000 -Subject: [PATCH 426/661] staging/bcm2835-codec: Ensure OUTPUT timestamps are +Subject: [PATCH 426/693] staging/bcm2835-codec: Ensure OUTPUT timestamps are always forwarded The firmware by default tries to ensure that decoded frame @@ -197655,10 +197655,10 @@ index 5b596b5c057f..efda4dc039c3 100644 2.18.4 -From 12eb4a120d9c12b5ad0733f7f8b78209b95189e1 Mon Sep 17 00:00:00 2001 +From 317dae8655fc13b6f80a3ffd1c348dee99a497f2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 16:38:37 +0000 -Subject: [PATCH 427/661] net: lan78xx: Ack pending PHY ints when resetting +Subject: [PATCH 427/693] net: lan78xx: Ack pending PHY ints when resetting lan78xx_link_reset explicitly clears the MAC's view of the PHY's IRQ status. In doing so it potentially leaves the PHY with a pending @@ -197693,10 +197693,10 @@ index 58f5b90f11d4..3cf5ad0bf0c1 100644 2.18.4 -From 0dd81f6d2ea41cb929e5a3f188aea71c7d0ba901 Mon Sep 17 00:00:00 2001 +From 53969b308abd5e2ecb4f1ccae7127bb001831244 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 17:02:17 +0000 -Subject: [PATCH 428/661] overlays: mpu6050: Add 'addr' parameter +Subject: [PATCH 428/693] overlays: mpu6050: Add 'addr' parameter The mpu6050 starts up at address 0x68 by default, but can be set to 0x69 if the ADO pin is pulled high. Give the overlay an addr parameter @@ -197737,10 +197737,10 @@ index 3109d90562ae..1b4c06535687 100644 2.18.4 -From 4e21765e35f139ec4d7ac6000ddce13b3be6a922 Mon Sep 17 00:00:00 2001 +From 34364593c0499b2297336b422d9311f603b53aac Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 15 Dec 2020 16:26:51 +0000 -Subject: [PATCH 429/661] drm/vc4: Make normalize_zpos conditional on using +Subject: [PATCH 429/693] drm/vc4: Make normalize_zpos conditional on using fkms Eric's view was that there was no point in having zpos @@ -197772,10 +197772,10 @@ index 65513a90d606..5d0974cdeaaa 100644 2.18.4 -From a5a0365f6d0db893c9693279a92d4def70689db1 Mon Sep 17 00:00:00 2001 +From 3416707cc88478e530d34fbf19e80f5f9bd8780d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Dec 2020 09:28:17 +0000 -Subject: [PATCH 430/661] overlays: Add missing addresses to ads1015/ads1115 +Subject: [PATCH 430/693] overlays: Add missing addresses to ads1015/ads1115 The overlays for the ads1015 and ads1115 I2C ADCs omitted the addresses in the main device node names. As well as breaking the conventions for @@ -197821,10 +197821,10 @@ index 4fc571c2db33..e44ced704ee2 100644 2.18.4 -From 3befdf38391a06704c8ba136b92d2cf6e4677151 Mon Sep 17 00:00:00 2001 +From b31690c5f7e9f311c38d3b04e51fe7a10e2c8522 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 9 Dec 2020 11:30:12 +0000 -Subject: [PATCH 431/661] media: i2c: imx477: Selection compliance fixes +Subject: [PATCH 431/693] media: i2c: imx477: Selection compliance fixes To comply with the intended usage of the V4L2 selection target when used to retrieve a sensor image properties, adjust the rectangles @@ -197907,10 +197907,10 @@ index 3fbb173fa079..f68e7718b09c 100644 2.18.4 -From b8745a0aa88adf542e60662f8f67a6fcc76d7aa3 Mon Sep 17 00:00:00 2001 +From 1438d2fbad2d314b2e1a12c6ee9bbb42c0a89620 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 13 Dec 2020 16:45:58 +0000 -Subject: [PATCH 432/661] staging/vc04_services/codec: Add support for CID +Subject: [PATCH 432/693] staging/vc04_services/codec: Add support for CID MPEG_HEADER_MODE Control V4L2_CID_MPEG_VIDEO_HEADER_MODE controls whether the encoder @@ -197977,10 +197977,10 @@ index 3791ab4b4244..c368246cbb6a 100644 2.18.4 -From ff6e057f7b44f0307bdf9355b78f3307a5c65cc7 Mon Sep 17 00:00:00 2001 +From a4125201f36ee0bc99262fa669f3cad88634e160 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 13 Dec 2020 16:54:43 +0000 -Subject: [PATCH 433/661] staging/vc04_services/codec: Clear last buf dequeued +Subject: [PATCH 433/693] staging/vc04_services/codec: Clear last buf dequeued flag on START It appears that the V4L2 M2M framework requires the driver to manually @@ -198020,10 +198020,10 @@ index c368246cbb6a..9673d807ca67 100644 2.18.4 -From d06ab564bb1d5e033881fbb71b287201427f956d Mon Sep 17 00:00:00 2001 +From b49d0138ffb67768659f3a0e79af525767693254 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 14:44:08 +0200 -Subject: [PATCH 434/661] drm/atomic: Pass the full state to CRTC atomic +Subject: [PATCH 434/693] drm/atomic: Pass the full state to CRTC atomic enable/disable Commit 351f950db4ab28c321a1bd4b92e4bb03e34c4703 upstream. @@ -198355,7 +198355,7 @@ index a887b6a5f8bd..e0fbfc9ce386 100644 DRM_DEBUG_KMS("[CRTC:%d:%s]\n", crtc->base.id, crtc->name); diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c -index 0a1e1cf57e19..bd03a8a67e3a 100644 +index a3c2f76668ab..f926c7d5221c 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -793,7 +793,7 @@ ast_crtc_helper_atomic_flush(struct drm_crtc *crtc, struct drm_crtc_state *old_c @@ -198805,7 +198805,7 @@ index 328a4a74f534..fef3b0032fd8 100644 struct omap_drm_private *priv = crtc->dev->dev_private; struct omap_crtc *omap_crtc = to_omap_crtc(crtc); diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index 862ef59d4d03..25a3eb7fb5f8 100644 +index f22a1b776f4b..9791c8c6cf3e 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -445,13 +445,13 @@ static const struct drm_framebuffer_funcs qxl_fb_funcs = { @@ -198897,7 +198897,7 @@ index 6f37c104c46f..5726746f6d18 100644 struct sti_mixer *mixer = to_sti_mixer(crtc); diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c -index 6e28f707092f..e9af92d4a74b 100644 +index 62488ac14923..909de3507ad9 100644 --- a/drivers/gpu/drm/stm/ltdc.c +++ b/drivers/gpu/drm/stm/ltdc.c @@ -420,7 +420,7 @@ static void ltdc_crtc_update_clut(struct drm_crtc *crtc) @@ -199001,7 +199001,7 @@ index 3c5744a91d4a..848b9c7b553d 100644 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); struct drm_device *ddev = crtc->dev; diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -index 518220bd092a..cf4ead0dc2e3 100644 +index 0aaa4a26b5db..f44cb49b0c48 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c @@ -484,7 +484,7 @@ static void tilcdc_crtc_enable(struct drm_crtc *crtc) @@ -199013,7 +199013,7 @@ index 518220bd092a..cf4ead0dc2e3 100644 { tilcdc_crtc_enable(crtc); } -@@ -532,7 +532,7 @@ static void tilcdc_crtc_disable(struct drm_crtc *crtc) +@@ -541,7 +541,7 @@ static void tilcdc_crtc_disable(struct drm_crtc *crtc) } static void tilcdc_crtc_atomic_disable(struct drm_crtc *crtc, @@ -199123,10 +199123,10 @@ index f84b7e61311b..48b3194ee051 100644 struct drm_device *dev = crtc->dev; struct virtio_gpu_device *vgdev = dev->dev_private; diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c -index 09c012d54d58..e43e4e1b268a 100644 +index 1ae5cd47d954..49905bcfdf9e 100644 --- a/drivers/gpu/drm/vkms/vkms_crtc.c +++ b/drivers/gpu/drm/vkms/vkms_crtc.c -@@ -214,13 +214,13 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc, +@@ -215,13 +215,13 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc, } static void vkms_crtc_atomic_enable(struct drm_crtc *crtc, @@ -199293,10 +199293,10 @@ index 4efec30f8bad..bde42988c4b5 100644 2.18.4 -From a17e958c72599013aa87a5786ba9e29ecf1513c7 Mon Sep 17 00:00:00 2001 +From ece3563e9eb01927ef32c1f72b3686e725eb1c89 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 28 Oct 2020 13:32:21 +0100 -Subject: [PATCH 435/661] drm/atomic: Pass the full state to CRTC atomic_check +Subject: [PATCH 435/693] drm/atomic: Pass the full state to CRTC atomic_check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -199495,10 +199495,10 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max 30 files changed, 168 insertions(+), 110 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -index c07737c45677..3562dac4b55f 100644 +index 8180894bbd1e..ccd199c47524 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -@@ -5558,17 +5558,19 @@ static void dm_update_crtc_active_planes(struct drm_crtc *crtc, +@@ -5584,17 +5584,19 @@ static void dm_update_crtc_active_planes(struct drm_crtc *crtc, } static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, @@ -199522,7 +199522,7 @@ index c07737c45677..3562dac4b55f 100644 WARN_ON(1); return ret; } -@@ -5579,8 +5581,8 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, +@@ -5605,8 +5607,8 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, * planes are disabled, which is not supported by the hardware. And there is legacy * userspace which stops using the HW cursor altogether in response to the resulting EINVAL. */ @@ -199646,7 +199646,7 @@ index e0fbfc9ce386..d22ca1496c43 100644 return 0; } diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c -index bd03a8a67e3a..346dce2d654f 100644 +index f926c7d5221c..c80fe2a9a7d1 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c @@ -751,24 +751,26 @@ static void ast_crtc_dpms(struct drm_crtc *crtc, int mode) @@ -200169,10 +200169,10 @@ index 848b9c7b553d..6739f489dfdf 100644 /* diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -index cf4ead0dc2e3..091b1fa25756 100644 +index f44cb49b0c48..2a2932f9c073 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -@@ -660,15 +660,17 @@ static bool tilcdc_crtc_mode_fixup(struct drm_crtc *crtc, +@@ -669,15 +669,17 @@ static bool tilcdc_crtc_mode_fixup(struct drm_crtc *crtc, } static int tilcdc_crtc_atomic_check(struct drm_crtc *crtc, @@ -200266,10 +200266,10 @@ index 48b3194ee051..e81183ab87e0 100644 return 0; } diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c -index e43e4e1b268a..6a49e70bdf18 100644 +index 49905bcfdf9e..730b0978fa75 100644 --- a/drivers/gpu/drm/vkms/vkms_crtc.c +++ b/drivers/gpu/drm/vkms/vkms_crtc.c -@@ -168,9 +168,11 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = { +@@ -169,9 +169,11 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = { }; static int vkms_crtc_atomic_check(struct drm_crtc *crtc, @@ -200283,7 +200283,7 @@ index e43e4e1b268a..6a49e70bdf18 100644 struct drm_plane *plane; struct drm_plane_state *plane_state; int i = 0, ret; -@@ -178,12 +180,12 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc, +@@ -179,12 +181,12 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc, if (vkms_state->active_planes) return 0; @@ -200299,7 +200299,7 @@ index e43e4e1b268a..6a49e70bdf18 100644 plane); WARN_ON(!plane_state); -@@ -199,8 +201,8 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc, +@@ -200,8 +202,8 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc, vkms_state->num_active_planes = i; i = 0; @@ -200384,10 +200384,10 @@ index bde42988c4b5..b97441deaf93 100644 2.18.4 -From 1baf43844efe26e35f12689a099b56d894e9a19c Mon Sep 17 00:00:00 2001 +From 2323dc7a8b37776fec22af20ce0457b6ecb10d3b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 28 Oct 2020 13:32:22 +0100 -Subject: [PATCH 436/661] drm/atomic: Pass the full state to CRTC atomic begin +Subject: [PATCH 436/693] drm/atomic: Pass the full state to CRTC atomic begin and flush MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -201131,7 +201131,7 @@ index 69a0770ba38e..d7442aa55f89 100644 struct omap_drm_private *priv = crtc->dev->dev_private; struct omap_crtc *omap_crtc = to_omap_crtc(crtc); diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index 25a3eb7fb5f8..c64a836d5d4a 100644 +index 9791c8c6cf3e..5c9e28fdb6ad 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -373,7 +373,7 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc, @@ -201207,10 +201207,10 @@ index 5726746f6d18..409795786f03 100644 struct drm_device *drm_dev = crtc->dev; struct sti_mixer *mixer = to_sti_mixer(crtc); diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c -index e9af92d4a74b..3980677435cb 100644 +index 909de3507ad9..949511a0a24f 100644 --- a/drivers/gpu/drm/stm/ltdc.c +++ b/drivers/gpu/drm/stm/ltdc.c -@@ -596,7 +596,7 @@ static void ltdc_crtc_mode_set_nofb(struct drm_crtc *crtc) +@@ -625,7 +625,7 @@ static void ltdc_crtc_mode_set_nofb(struct drm_crtc *crtc) } static void ltdc_crtc_atomic_flush(struct drm_crtc *crtc, @@ -201296,10 +201296,10 @@ index 6739f489dfdf..2218da3b3ca3 100644 struct drm_device *ddev = crtc->dev; struct tidss_device *tidss = to_tidss(ddev); diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -index 091b1fa25756..3b44291fab11 100644 +index 2a2932f9c073..c0814cb1a296 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -@@ -538,7 +538,7 @@ static void tilcdc_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -547,7 +547,7 @@ static void tilcdc_crtc_atomic_disable(struct drm_crtc *crtc, } static void tilcdc_crtc_atomic_flush(struct drm_crtc *crtc, @@ -201365,10 +201365,10 @@ index e81183ab87e0..4bf74836bd53 100644 struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc); diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c -index 6a49e70bdf18..0443b7deeaef 100644 +index 730b0978fa75..758d8a98d96b 100644 --- a/drivers/gpu/drm/vkms/vkms_crtc.c +++ b/drivers/gpu/drm/vkms/vkms_crtc.c -@@ -228,7 +228,7 @@ static void vkms_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -229,7 +229,7 @@ static void vkms_crtc_atomic_disable(struct drm_crtc *crtc, } static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, @@ -201377,7 +201377,7 @@ index 6a49e70bdf18..0443b7deeaef 100644 { struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc); -@@ -239,7 +239,7 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, +@@ -240,7 +240,7 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, } static void vkms_crtc_atomic_flush(struct drm_crtc *crtc, @@ -201482,10 +201482,10 @@ index b97441deaf93..f2de050085be 100644 2.18.4 -From 86fdfcb60628b43d6ffd63d4c1cb745872858fda Mon Sep 17 00:00:00 2001 +From 1bbf0f7f2368f7e4bbc096375fe5c5ac26319d99 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 7 Dec 2020 16:57:11 +0100 -Subject: [PATCH 437/661] drm/vc4: hvs: Align the HVS atomic hooks to the new +Subject: [PATCH 437/693] drm/vc4: hvs: Align the HVS atomic hooks to the new API Since the CRTC setup in vc4 is split between the PixelValves/TXP and the @@ -201603,10 +201603,10 @@ index 34612edcabbd..4a26750b5e93 100644 2.18.4 -From e535a0f27d03002d9b75ebff1524d6847d12a3c5 Mon Sep 17 00:00:00 2001 +From 8242310eec36b6daf9a7e619c8e7d0daf7d0091a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:36 +0100 -Subject: [PATCH 438/661] drm/vc4: Pass the atomic state to encoder hooks +Subject: [PATCH 438/693] drm/vc4: Pass the atomic state to encoder hooks We'll need to access the connector state in our encoder setup, so let's just pass the whole DRM state to our private encoder hooks. @@ -201774,10 +201774,10 @@ index 4a3e020364af..8a93a584bc2a 100644 2.18.4 -From cce7bf3f3fa8cffbc1f3ad4fd0b15aab0449a4a5 Mon Sep 17 00:00:00 2001 +From 0af789d68291c19afc6a2c78e99a313a70df7655 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:38 +0100 -Subject: [PATCH 439/661] drm/vc4: hdmi: Don't access the connector state in +Subject: [PATCH 439/693] drm/vc4: hdmi: Don't access the connector state in reset if kmalloc fails drm_atomic_helper_connector_reset uses kmalloc which, from an API @@ -201815,10 +201815,10 @@ index 8a93a584bc2a..b14f7bd5a014 100644 2.18.4 -From 4d5179680f3ff4ad3dd04001b09dede205c657a2 Mon Sep 17 00:00:00 2001 +From f58d04d7838c327f031ee338912fa6edf4d0c5aa Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:39 +0100 -Subject: [PATCH 440/661] drm/vc4: hdmi: Create a custom connector state +Subject: [PATCH 440/693] drm/vc4: hdmi: Create a custom connector state When run with a higher bpc than 8, the clock of the HDMI controller needs to be adjusted. Let's create a connector state that will be used at @@ -201911,10 +201911,10 @@ index 1eb1fc0d95a3..c4f24e1f1b20 100644 2.18.4 -From 47d33807cf6a9e40ac1f68a31b531ef96911b6b9 Mon Sep 17 00:00:00 2001 +From 59bcc86ea7a6d2d33d0edad3921151561bf1fff1 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:40 +0100 -Subject: [PATCH 441/661] drm/vc4: hdmi: Store pixel frequency in the connector +Subject: [PATCH 441/693] drm/vc4: hdmi: Store pixel frequency in the connector state The pixel rate is for now quite simple to compute, but with more features @@ -202016,10 +202016,10 @@ index c4f24e1f1b20..71816aba852b 100644 2.18.4 -From 9b70cd66bac9132f08587c6aa74910b532f73f23 Mon Sep 17 00:00:00 2001 +From 3ca54e8a1287ec61031d761e316676cf206423ca Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:41 +0100 -Subject: [PATCH 442/661] drm/vc4: hdmi: Use the connector state pixel rate for +Subject: [PATCH 442/693] drm/vc4: hdmi: Use the connector state pixel rate for the PHY The PHY initialisation parameters are not based on the pixel clock but @@ -202128,10 +202128,10 @@ index 057796b54c51..36535480f8e2 100644 2.18.4 -From 400c23824013f1719fa8323b6cff695cc2a7996e Mon Sep 17 00:00:00 2001 +From bc6801f55b44fd84d796c7fb8d4c11f3b18a9de6 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:43 +0100 -Subject: [PATCH 443/661] drm/vc4: hdmi: Enable 10/12 bpc output +Subject: [PATCH 443/693] drm/vc4: hdmi: Enable 10/12 bpc output The BCM2711 supports higher bpc count than just 8, so let's support it in our driver. @@ -202341,10 +202341,10 @@ index 10dd6097f2b5..9e85266e53f5 100644 2.18.4 -From ed46db17af041e31373e2267699a15cdc9ce1745 Mon Sep 17 00:00:00 2001 +From 0e0a70f9690076e05d5a99d80bad8a20d17d572c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Dec 2020 14:57:41 +0000 -Subject: [PATCH 444/661] drm/vc4: Fixup fkms for API change +Subject: [PATCH 444/693] drm/vc4: Fixup fkms for API change Atomic flush and check changed API, so fix up the downstream-only FKMS driver. @@ -202397,10 +202397,10 @@ index f83efe013a5b..44b1addeb22e 100644 2.18.4 -From 97addf2ae543861f3e324cbe2f1e0fa7c30bf98b Mon Sep 17 00:00:00 2001 +From 0fe68e7c4cc98af6f3d143d78d85346f92050a31 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Dec 2020 20:00:38 +0000 -Subject: [PATCH 445/661] overlays: Rebuild "upstream" with latest ovmerge +Subject: [PATCH 445/693] overlays: Rebuild "upstream" with latest ovmerge The latest ovmerge drops disabled fragments, causing the "upstream" overlay to change. @@ -202696,10 +202696,10 @@ index 6195e02bf9ff..e0f7cc8ba9ea 100644 2.18.4 -From 9390eadcad6da05c21e7ced7de96eb5b8c701790 Mon Sep 17 00:00:00 2001 +From 45c84344b880327b80af7f31ff8589b7f871429b Mon Sep 17 00:00:00 2001 From: menschel Date: Wed, 30 Dec 2020 21:55:34 +0100 -Subject: [PATCH 446/661] Add overlay for Seeed Studio CAN BUS FD HAT (#4034) +Subject: [PATCH 446/693] Add overlay for Seeed Studio CAN BUS FD HAT (#4034) This patch adds the overlay for the Seeed Studio CAN BUS FD HAT with two CAN FD Channels and an RTC. @@ -202924,10 +202924,10 @@ index 000000000000..e843d0b19745 2.18.4 -From f004956d80e4f54b2f214338e7c7560b82bc082a Mon Sep 17 00:00:00 2001 +From 0915ebd6de50eddd9823857e7cd655371ed8d9d4 Mon Sep 17 00:00:00 2001 From: gesangtome Date: Fri, 1 Jan 2021 18:03:17 +0800 -Subject: [PATCH 447/661] vc-sm-cma: fixed kbuild problem +Subject: [PATCH 447/693] vc-sm-cma: fixed kbuild problem error logs: drivers/staging/vc04_services/vc-sm-cma/Kconfig:1:error: recursive dependency detected! @@ -202960,10 +202960,10 @@ index a7c1a7bf516e..5df9198cdab1 100644 2.18.4 -From a99330998ca7c786179a17db51ba9c8e6ac72cde Mon Sep 17 00:00:00 2001 +From 9e5629564d367dd8ea41b4d55ed41e8a1ac658b3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 2 Jan 2021 10:51:58 +0000 -Subject: [PATCH 448/661] staging/vc04-services/codec: Fix logical precedence +Subject: [PATCH 448/693] staging/vc04-services/codec: Fix logical precedence issue Two issues identified with operator precedence in logical @@ -203002,10 +203002,10 @@ index 9673d807ca67..8a8f1e8db7d0 100644 2.18.4 -From 4f3359fd6d553e4f5e5af13d1492063b3d2c3010 Mon Sep 17 00:00:00 2001 +From 5fbf34ab15a094bbdf9dd6d6f4818dda57fd6d71 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 5 Jan 2021 14:34:20 +0000 -Subject: [PATCH 449/661] staging/mmal-vchiq: Fix incorrect static +Subject: [PATCH 449/693] staging/mmal-vchiq: Fix incorrect static vchiq_instance. For some reason lost in history function vchiq_mmal_init used @@ -203041,10 +203041,10 @@ index 0f98494812c8..014fbace54cd 100644 2.18.4 -From 393adacf4fb89caf0cef8e2807667d417896e284 Mon Sep 17 00:00:00 2001 +From fc35b2c91c2f437e0750d6ad9747f2e85a8a910c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:43:20 +0000 -Subject: [PATCH 450/661] staging/vc04_services: Add additional unpacked raw +Subject: [PATCH 450/693] staging/vc04_services: Add additional unpacked raw formats Support has been added for the unpacked (16bpp) versions of @@ -203098,10 +203098,10 @@ index 8eb6334ee055..59f7ad3a5b3b 100644 2.18.4 -From 15071125839f695be336ec72a6802ac1bca3107f Mon Sep 17 00:00:00 2001 +From a35b235bd43b87c837446fcaefa1a14d59621b3f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:45:16 +0000 -Subject: [PATCH 451/661] staging/bcm2835-codec: Add the unpacked (16bpp) raw +Subject: [PATCH 451/693] staging/bcm2835-codec: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -203271,10 +203271,10 @@ index 8a8f1e8db7d0..c883db63808f 100644 2.18.4 -From 7ae1b4565638a07e9a344436845df59cc82fbad2 Mon Sep 17 00:00:00 2001 +From df495ed596eff084f064da00a46c839838f00c41 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:41:26 +0000 -Subject: [PATCH 452/661] staging/bcm2835-codec: Log the number of excess +Subject: [PATCH 452/693] staging/bcm2835-codec: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -203320,10 +203320,10 @@ index c883db63808f..94691ab7175a 100644 2.18.4 -From a519ae2533ae8f3c45751580c4262a5f9801396c Mon Sep 17 00:00:00 2001 +From 96e6b13dd440ffd3be0c2239588d83899300ad10 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:37:10 +0000 -Subject: [PATCH 453/661] staging/bcm2835-isp: Add the unpacked (16bpp) raw +Subject: [PATCH 453/693] staging/bcm2835-isp: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -203502,10 +203502,10 @@ index 8bb3d115b27a..9a313ffcabf5 100644 2.18.4 -From 084be10afb457d5eb497bc2ea66930a306d9c827 Mon Sep 17 00:00:00 2001 +From aae4ca3930a4075cda66823b7f4e83a23d1e1d9e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:43:22 +0000 -Subject: [PATCH 454/661] staging/bcm2835-isp: Log the number of excess +Subject: [PATCH 454/693] staging/bcm2835-isp: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -203537,10 +203537,10 @@ index 9a313ffcabf5..afac2ad65790 100644 2.18.4 -From 9e8fc7566bfb046b283f8545be339058e1bfe7b2 Mon Sep 17 00:00:00 2001 +From 6f533032c9d7989bd2d15cf6772cdd9dfe0f4111 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 30 Dec 2020 14:51:29 +0000 -Subject: [PATCH 455/661] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and +Subject: [PATCH 455/693] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and DMA_WIDE_DEST flags Use (reserved) bits 24 and 25 of the dreq value @@ -203607,10 +203607,10 @@ index 0cbfa9d559a2..5517d2135168 100644 2.18.4 -From 88e593087ad536068d6b689d463b8f417a87f336 Mon Sep 17 00:00:00 2001 +From e979ce40f4da06c70ec19fe8f8a6d18e694f7d00 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 11 Jan 2021 14:49:33 +0000 -Subject: [PATCH 456/661] bcm2835-dma: Move WAIT_RESP from extra to info +Subject: [PATCH 456/693] bcm2835-dma: Move WAIT_RESP from extra to info Questionable: Might want to drop Signed-off-by: popcornmix @@ -203638,10 +203638,10 @@ index 5517d2135168..8b97b9f10a1a 100644 2.18.4 -From 96859af7360bbd94675c6c05b32c3b68c58bca16 Mon Sep 17 00:00:00 2001 +From 0a75caa60fc85f49d121cc0e1afb743f4d644b0d Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:10 +0000 -Subject: [PATCH 457/661] bcm2835-dma: Avoid losing CS flags after interrupt +Subject: [PATCH 457/693] bcm2835-dma: Avoid losing CS flags after interrupt Signed-off-by: Dom Cobley --- @@ -203665,10 +203665,10 @@ index 8b97b9f10a1a..94a1b40b1645 100644 2.18.4 -From 8e8a98cd9e086b59fb67c48d9463c6bc39d85907 Mon Sep 17 00:00:00 2001 +From 11f438cfd386955c5c52be55e9fa0cd259315de0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 11 Jan 2021 13:06:23 +0000 -Subject: [PATCH 458/661] dt: Enable DMA_WIDE_SOURCE and DMA_WIDE_DEST for hdmi +Subject: [PATCH 458/693] dt: Enable DMA_WIDE_SOURCE and DMA_WIDE_DEST for hdmi audio Signed-off-by: popcornmix @@ -203716,10 +203716,10 @@ index bd77ba3a3562..47b958428d0c 100644 2.18.4 -From 4ad19b2d474d947cff74ead9571b25baf6dbbf76 Mon Sep 17 00:00:00 2001 +From 99d13c8ec96a2f6450d3dd631f4f37d72389eabd Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:29 +0000 -Subject: [PATCH 459/661] bcm2711-rpi.dtsi: Bump hdmi audio dma panic priority +Subject: [PATCH 459/693] bcm2711-rpi.dtsi: Bump hdmi audio dma panic priority to max Set panic priority to 15 and leave normal priority at 0 @@ -203755,10 +203755,10 @@ index 3dbfd601ca39..8053ef54acc8 100644 2.18.4 -From 73db49fae57a6af51cf043ea1b4ab70f7669ceec Mon Sep 17 00:00:00 2001 +From b4c694944d1224aea6a6ef186e267007d17fe747 Mon Sep 17 00:00:00 2001 From: Paul Elder Date: Tue, 22 Dec 2020 14:27:46 +0900 -Subject: [PATCH 460/661] media: i2c: ov5647: Selection compliance fixes +Subject: [PATCH 460/693] media: i2c: ov5647: Selection compliance fixes To comply with the intended usage of the V4L2 selection target when used to retrieve a sensor image properties, adjust the rectangles @@ -203849,10 +203849,10 @@ index 86a821a172b3..40d0d45a2481 100644 2.18.4 -From a7990066094f7a29f0ba0e1de040b199f9cb846a Mon Sep 17 00:00:00 2001 +From b6d28faa0ec4095e9d8625440ad9bd37fc4b585d Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 2 Jan 2021 21:08:59 +0100 -Subject: [PATCH 461/661] overlays: give Seeed Studio CAN BUS FD HAT a -v2 +Subject: [PATCH 461/693] overlays: give Seeed Studio CAN BUS FD HAT a -v2 postfix There are several versions of the Seeed Studio CAN BUS FD HAT. This is the @@ -203907,10 +203907,10 @@ rename to arch/arm/boot/dts/overlays/seeed-can-fd-hat-v2-overlay.dts 2.18.4 -From 4e18b2313b125e086a89e89143ca17fea2d0b8f2 Mon Sep 17 00:00:00 2001 +From f10037a081a8273e9cfaadbc4f63314799467e4c Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 2 Jan 2021 21:38:58 +0100 -Subject: [PATCH 462/661] overlays: Add overlay for Seeed Studio CAN BUS FD HAT +Subject: [PATCH 462/693] overlays: Add overlay for Seeed Studio CAN BUS FD HAT v1 (based on mcp2517fd) This patch adds the overlay for the Seeed Studio CAN BUS FD HAT v1 with two CAN @@ -204110,10 +204110,10 @@ index 000000000000..210d027a073e 2.18.4 -From bd3e04653ebd98bf98b5e20bc256be4cca454102 Mon Sep 17 00:00:00 2001 +From 0c0a8d0db29220a86042ed6674ae5569bc6315fe Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sat, 2 Jan 2021 02:34:03 +0000 -Subject: [PATCH 463/661] overlays: add wm8960-soundcard overlay +Subject: [PATCH 463/693] overlays: add wm8960-soundcard overlay add overlay for waveshare wm8960 simple-audio-card @@ -204250,10 +204250,10 @@ index 000000000000..289fa4dacdf1 2.18.4 -From 9fdaea72f88511fd284710112c009500d7d232cf Mon Sep 17 00:00:00 2001 +From 8a688c96dc7b17e26619ebe3875a2b9159c03c04 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sat, 26 Dec 2020 03:13:14 +0000 -Subject: [PATCH 464/661] overlays: add spi override to merus-amp overlay +Subject: [PATCH 464/693] overlays: add spi override to merus-amp overlay adds an override to the merus-amp overlay to turn the spi bus off @@ -204302,10 +204302,10 @@ index 4501fbdc253d..bbffd7d26324 100644 2.18.4 -From da2ad4ea6ede2eb9b9550cfe2161e3cde6ec91fe Mon Sep 17 00:00:00 2001 +From 652dc1c6ea9c739c77921c521380930cd0107e08 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Jan 2021 17:28:57 +0000 -Subject: [PATCH 465/661] dt: Add a camera regulator node to all downstream Pi +Subject: [PATCH 465/693] dt: Add a camera regulator node to all downstream Pi platforms The current firmware fixup of camera sensor overlays is not @@ -204663,10 +204663,10 @@ index 000000000000..55237d03ed94 2.18.4 -From 3cc40efd1e555a035848a906bea55868b1a39d55 Mon Sep 17 00:00:00 2001 +From a6ef91094f83b66c47dd2e021eb4fb629ade060c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Jan 2021 17:42:31 +0000 -Subject: [PATCH 466/661] dtoverlays: Update sensor overlays to use cam1_reg +Subject: [PATCH 466/693] dtoverlays: Update sensor overlays to use cam1_reg where possible Update those overlays that use the regulator framework to use the @@ -204920,10 +204920,10 @@ index 40b298d3dd86..b7a9c8c539da 100644 2.18.4 -From b94570f3c51d53f49bbd4c982fabc3947c01f644 Mon Sep 17 00:00:00 2001 +From e7ac831a16c5fb708381e911ba27f2bd210ec97e Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 9 Jan 2021 17:03:32 +0100 -Subject: [PATCH 467/661] overlays: seeed-can-fd-hat: clarify how to identify +Subject: [PATCH 467/693] overlays: seeed-can-fd-hat: clarify how to identify HAT version It turns out the used CAN SPI chip is not a good way to identify the version of @@ -204971,10 +204971,10 @@ index 5076ca440742..bc889782a30b 100644 2.18.4 -From f9921fce97f06396cbeb263b3b062bc93b908a86 Mon Sep 17 00:00:00 2001 +From e055ecb2e4fc6cbda9aa94e590914a67f88936ad Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 Jan 2021 21:25:38 +0000 -Subject: [PATCH 468/661] SQUASH: Revert: "overlays: Make the i2c-gpio overlay +Subject: [PATCH 468/693] SQUASH: Revert: "overlays: Make the i2c-gpio overlay safe again" This revert and its neighbour are opposites. When squashing, delete @@ -205003,10 +205003,10 @@ index 63231b5d7c0c..2323a61edf07 100644 2.18.4 -From 3d99477665638f23a99f58bee33ab0b8b8b04e7d Mon Sep 17 00:00:00 2001 +From 95c4d1a72e7aeb46002cb7ee4c3dfec0c08f7521 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 Jan 2021 21:27:56 +0000 -Subject: [PATCH 469/661] SQUASH: Revert "overlays: Fix dtc warnings in +Subject: [PATCH 469/693] SQUASH: Revert "overlays: Fix dtc warnings in i2c-gpio" This reverts commit 1c15edc0dca002c8536e9f1f5e1ec43017815018. @@ -205037,10 +205037,10 @@ index 2323a61edf07..63231b5d7c0c 100644 2.18.4 -From cf69fbdbf405bab3353aed7ccf15c2c742affb6f Mon Sep 17 00:00:00 2001 +From fa67c71995832cc7ad2a75615966830d72f774e8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2021 08:57:21 +0000 -Subject: [PATCH 470/661] configs: Enable BCM2835 thermal driver in kernel8 +Subject: [PATCH 470/693] configs: Enable BCM2835 thermal driver in kernel8 The arm64 version of bcm2711_defconfig is intended for Pi 4, but the Raspberry Pi OS kernel8.img built from it is also used for Pi 3. It is @@ -205071,10 +205071,10 @@ index 325ff25a243d..eeb52d96e26b 100644 2.18.4 -From 7a07c58599860316068586e60deee4ee5a1681d0 Mon Sep 17 00:00:00 2001 +From be6a8e043d1723e89cf000f513688ffbd1471147 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:18:42 +0000 -Subject: [PATCH 471/661] uapi: bcm2835-isp: Add colour denoise configuration +Subject: [PATCH 471/693] uapi: bcm2835-isp: Add colour denoise configuration Add a configuration structure for colour denoise to the bcm2835_isp driver. @@ -205133,10 +205133,10 @@ index cf8c0437f159..c50e3ca81565 100644 2.18.4 -From 0d25d00f50ba52d38553bb61dee06426f06d4a9f Mon Sep 17 00:00:00 2001 +From 06d14787b7de152745bf8d3e18cb835cfe89776d Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:20:52 +0000 -Subject: [PATCH 472/661] staging: vc04_services: ISP: Add colour denoise +Subject: [PATCH 472/693] staging: vc04_services: ISP: Add colour denoise control Add colour denoise control to the bcm2835 driver through a new v4l2 @@ -205218,10 +205218,10 @@ index efda4dc039c3..79438d23912f 100644 2.18.4 -From 28d434949ca439ca075d4e64f5c8dde4eaf1a5cb Mon Sep 17 00:00:00 2001 +From e935e15293939af5f03549be7343eade5320fe54 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Jan 2021 18:27:08 +0000 -Subject: [PATCH 473/661] configs: Add CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +Subject: [PATCH 473/693] configs: Add CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m Signed-off-by: popcornmix --- @@ -205296,10 +205296,10 @@ index 5d6f27ec87f6..5b6a5d59b394 100644 2.18.4 -From 1dd088532322e0160a0bb75ccc12048f7913f7e2 Mon Sep 17 00:00:00 2001 +From c314aa62b59dc0796276656e6dc38f0b9fe0aab4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 09:28:06 +0000 -Subject: [PATCH 474/661] configs: Add CONFIG_USB_NET_AQC111=m +Subject: [PATCH 474/693] configs: Add CONFIG_USB_NET_AQC111=m See: https://github.com/raspberrypi/linux/pull/4086 @@ -205376,10 +205376,10 @@ index 5b6a5d59b394..655b1d87720b 100644 2.18.4 -From 8a67f4e20590788eea7edc111441c1bfb0488bdb Mon Sep 17 00:00:00 2001 +From 7e0ca186e75ec5f200eaf457dd3e7411f775a1b2 Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Thu, 10 Dec 2020 19:22:45 +0100 -Subject: [PATCH 475/661] dt-bindings: nvmem: Add bindings for rmem driver +Subject: [PATCH 475/693] dt-bindings: nvmem: Add bindings for rmem driver Firmware/co-processors might use reserved memory areas in order to pass data stemming from an nvmem device otherwise non accessible to Linux. @@ -205458,10 +205458,10 @@ index 000000000000..29b53871aa02 2.18.4 -From 8b9918445e62857f80a7d55787d8062a4d529476 Mon Sep 17 00:00:00 2001 +From 91dcc6ad1b0d6575075e6c6812dfdeed7c9c237d Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Thu, 10 Dec 2020 12:13:49 +0100 -Subject: [PATCH 476/661] nvmem: Add driver to expose reserved memory as nvmem +Subject: [PATCH 476/693] nvmem: Add driver to expose reserved memory as nvmem Firmware/co-processors might use reserved memory areas in order to pass data stemming from an nvmem device otherwise non accessible to Linux. @@ -205634,10 +205634,10 @@ index b557a0fcd4ba..281856ac1988 100644 2.18.4 -From 004e57d4573aebf34230135e2407e48a065edf2b Mon Sep 17 00:00:00 2001 +From 94cdcdd77447f050f6c463a161731dbe391afc46 Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 12:22:01 +0100 -Subject: [PATCH 477/661] ARM: dts: bcm2711: Add reserved memory template to +Subject: [PATCH 477/693] ARM: dts: bcm2711: Add reserved memory template to hold firmware configuration RPi4's co-processor will copy the board's bootloader[1] configuration @@ -205700,10 +205700,10 @@ index dae841ce309f..22c562d4196a 100644 2.18.4 -From 345495d299d97475fc6ea42093d770cc442f18b3 Mon Sep 17 00:00:00 2001 +From 7bc6f88ef8846b2167149b0f46a3b0b6813a8fa0 Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 13:04:37 +0100 -Subject: [PATCH 478/661] arm64: defconfig: Enable nvmem's rmem driver +Subject: [PATCH 478/693] arm64: defconfig: Enable nvmem's rmem driver It'll be used by the RPi4 family of boards to access its bootloader configuration. @@ -205729,10 +205729,10 @@ index 5cfe3cf6f2ac..a9f496d74639 100644 2.18.4 -From ae20846a2376975ffddd89f40d34854b6d9fe839 Mon Sep 17 00:00:00 2001 +From e3f648e698ba2ce7f22be5f535a6d3bec584391f Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 13:15:41 +0100 -Subject: [PATCH 479/661] ARM: multi_v7_defconfig: Enable nvmem's rmem driver +Subject: [PATCH 479/693] ARM: multi_v7_defconfig: Enable nvmem's rmem driver It'll be used by the RPi4 family of boards to access its bootloader configuration. @@ -205758,10 +205758,10 @@ index a611b0c1e540..ea2715c9f923 100644 2.18.4 -From f7ac0e4ea3cdc573d6b67a48d24cb8f21fcd8f24 Mon Sep 17 00:00:00 2001 +From 4afdd48ac966a6a3b72b5e2aafe7771be9519ede Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 12:08:19 +0000 -Subject: [PATCH 480/661] configs: Add NVMEM_RMEM=m for 2711 +Subject: [PATCH 480/693] configs: Add NVMEM_RMEM=m for 2711 Signed-off-by: Phil Elwell --- @@ -205797,10 +205797,10 @@ index 590a235f9e25..4c4068953a97 100644 2.18.4 -From 852b735773bb68914167457f8a1ba2afaa1e8ffb Mon Sep 17 00:00:00 2001 +From 7de2cd395d5548347f8c63894783ff7a65e82c98 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 16:15:06 +0000 -Subject: [PATCH 481/661] configs: Add CRYPTO_ADIANTUM=m +Subject: [PATCH 481/693] configs: Add CRYPTO_ADIANTUM=m See: https://github.com/raspberrypi/linux/issues/3648 @@ -205877,10 +205877,10 @@ index 655b1d87720b..1ca2f13a2af5 100644 2.18.4 -From 2bd98fbc53f3c0c7410a8746d69106f5818c352c Mon Sep 17 00:00:00 2001 +From eecf9602008b1791fc7e4f29980fcaea4ace1f14 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Jan 2021 11:30:04 +0000 -Subject: [PATCH 482/661] spi: bcm2835: Workaround/fix for zero-length +Subject: [PATCH 482/693] spi: bcm2835: Workaround/fix for zero-length transfers A relatively recent commit ([1]) contained optimisation for the PIO @@ -205933,10 +205933,10 @@ index 5c7aa77f504e..aab6c7e5c114 100644 2.18.4 -From 649be800500c8c0160b0ca8332556875aef400a1 Mon Sep 17 00:00:00 2001 +From 54a08b602128c24ff79022d832dc9bf6fac91d0e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Jan 2021 10:34:11 +0000 -Subject: [PATCH 483/661] kbuild: Silence unavoidable dtc overlay warnings +Subject: [PATCH 483/693] kbuild: Silence unavoidable dtc overlay warnings Much effort has been put into finding ways to avoid warnings from dtc about overlays, usually to do with the presence of #address-cells and @@ -205970,10 +205970,10 @@ index 9c0df5bde46c..43758c8d4b68 100644 2.18.4 -From 17e6a7a88cca6eb53bb2d19cb5ed85eebdddf0d1 Mon Sep 17 00:00:00 2001 +From 4dc101bf52513c2e7f30f9f9f01c2a25f018556e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 1 Feb 2021 12:45:29 +0000 -Subject: [PATCH 484/661] configs: Enable CONFIG_MEDIA_CEC_RC +Subject: [PATCH 484/693] configs: Enable CONFIG_MEDIA_CEC_RC See: https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=301072 --- @@ -206056,10 +206056,10 @@ index 1ca2f13a2af5..aa89eb5704cb 100644 2.18.4 -From 43e14d4d4a858ce59252698f36620a9cf66d9909 Mon Sep 17 00:00:00 2001 +From 83614f3333a7be39db204d67d370166ef19cb708 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 29 Jan 2021 08:26:44 +0100 -Subject: [PATCH 485/661] Adds the DT-overlays to support Hifiberry AMP100 +Subject: [PATCH 485/693] Adds the DT-overlays to support Hifiberry AMP100 Adds new DT-overlay to control AMP100. @@ -206199,10 +206199,10 @@ index 000000000000..ebdef55d6110 2.18.4 -From 9c85e9c9caacbae9b987e67bec2c60211e8aa1ef Mon Sep 17 00:00:00 2001 +From fc61095b74c1632536b6e28a201c3b57d68bd71a Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 29 Jan 2021 16:16:39 +0100 -Subject: [PATCH 486/661] Enhances the Hifiberry DAC+ driver for Hifiberry +Subject: [PATCH 486/693] Enhances the Hifiberry DAC+ driver for Hifiberry AMP100 support Adds the necessary GPIO handling and ALSA mixer extensions. @@ -206443,10 +206443,10 @@ index 157ab4c2cc85..bdcac1b6992c 100644 2.18.4 -From 36a24f928eb07822d31d0e1730b5d745a3310c3e Mon Sep 17 00:00:00 2001 +From 1db7b9f0f4571aa00376afdf1962d7f302845b33 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 3 Feb 2021 16:23:43 +0000 -Subject: [PATCH 487/661] ARM: dts: Declare Pi400 and CM4 have no audio pins +Subject: [PATCH 487/693] ARM: dts: Declare Pi400 and CM4 have no audio pins The audio_pins node is left as a placeholder for the audremap overlay, and it must have (empty) brcm,function and brcm,pins properties @@ -206492,10 +206492,10 @@ index 7ab0aba5f1a3..9ab2feb4424f 100644 2.18.4 -From 346dbf9042712c7a21620ba186db842073455f8b Mon Sep 17 00:00:00 2001 +From 2bd271b0a559ef10371c7a168a553c3804998c0a Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 17:29:32 +0000 -Subject: [PATCH 488/661] media: i2c: imx290: Replace V4L2_CID_GAIN with +Subject: [PATCH 488/693] media: i2c: imx290: Replace V4L2_CID_GAIN with V4L2_CID_ANALOGUE_GAIN Most software (including libcamera) requires V4L2_CID_ANALOGUE_GAIN, @@ -206536,10 +206536,10 @@ index 2e646fb01856..a2df46e4aabc 100644 2.18.4 -From 6096a62b2a1e415aa41d2182ca0d31c872a0ab9d Mon Sep 17 00:00:00 2001 +From 95e8df1a83626e489c56c268552f187f5f426f0e Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 21:21:44 +0000 -Subject: [PATCH 489/661] media: i2c: imx290: Fix number of controls in +Subject: [PATCH 489/693] media: i2c: imx290: Fix number of controls in v4l2_ctrl_handler_init The number is only a hint, but may as well be correct. @@ -206570,10 +206570,10 @@ index a2df46e4aabc..33ce80686163 100644 2.18.4 -From fe769473fcb63e2646f8dab35d326b61af94ac77 Mon Sep 17 00:00:00 2001 +From 1190f72a481261ab594d70a1d12205a3698c1b40 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Feb 2021 09:20:31 +0000 -Subject: [PATCH 490/661] i2c: bcm2835: Handle untimely DONE signal +Subject: [PATCH 490/693] i2c: bcm2835: Handle untimely DONE signal Under certain circumstance the DONE flag can appear to be set early. Fortunately the TA flag is often still set at that time, and it can be @@ -206639,10 +206639,10 @@ index 5b2589b6b9cc..90ca593d8ae3 100644 2.18.4 -From 9ba055d24fa738397bbbda528e463368662f82c3 Mon Sep 17 00:00:00 2001 +From af6d82d957c546f4d5eec7b0d02fab5ddf922e4a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Feb 2021 12:04:06 +0000 -Subject: [PATCH 491/661] configs: Add MICREL_PHY=y +Subject: [PATCH 491/693] configs: Add MICREL_PHY=y Signed-off-by: Phil Elwell --- @@ -206678,10 +206678,10 @@ index 6acc0dbe9187..a2531896a8b6 100644 2.18.4 -From 1ec55407010433d08b0be8e5443c90da8eeb2bfb Mon Sep 17 00:00:00 2001 +From fdc4466bef066eae4d2566ffc24024c3838c7fd3 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:11:26 +0100 -Subject: [PATCH 492/661] Revert "vc4_hdmi: Move hdmi reset to bind" +Subject: [PATCH 492/693] Revert "vc4_hdmi: Move hdmi reset to bind" This reverts commit fdb112d44c1b0659aec1ef841939dff0f0dee49e. --- @@ -206716,10 +206716,10 @@ index 4dd0951f4ab1..24f1d8386db7 100644 2.18.4 -From 0da617888d882da2f8321fb185367fd13fbcb126 Mon Sep 17 00:00:00 2001 +From f8f15be85f27d2d02960e206715c1bb84b5d8058 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:32 +0100 -Subject: [PATCH 493/661] Revert "vc4_hdmi: Make irq shared" +Subject: [PATCH 493/693] Revert "vc4_hdmi: Make irq shared" This reverts commit cd59e087d8bba4ba834565b4d48ba983143b5f27. --- @@ -206744,10 +206744,10 @@ index 24f1d8386db7..6aa97ac11a7c 100644 2.18.4 -From 82e7b855c6b218ce742b353f9e35a45171bd4f69 Mon Sep 17 00:00:00 2001 +From b869abc31e58df160d90847123fdc167cfdb489c Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:33 +0100 -Subject: [PATCH 494/661] Revert "vc4_hdmi_regs: Make interrupt mask variant +Subject: [PATCH 494/693] Revert "vc4_hdmi_regs: Make interrupt mask variant specific" This reverts commit 37c74a07cf22a7385c93170a723d22b95ff20a51. @@ -206856,10 +206856,10 @@ index 1f1ed7efaff7..78fd28599aeb 100644 2.18.4 -From 401d86ee5b4d1b703e64ca3fca93c847b56c0a90 Mon Sep 17 00:00:00 2001 +From c7d709ad74f15f141910cfa990a0ef8e1f072f82 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:35 +0100 -Subject: [PATCH 495/661] Revert "vc4_hdmi_regs: Add Intr2 register block" +Subject: [PATCH 495/693] Revert "vc4_hdmi_regs: Add Intr2 register block" This reverts commit c865bb1bb6b481acfa4157e4331db278a176f887. --- @@ -206987,10 +206987,10 @@ index 9e85266e53f5..20a1438a72cb 100644 2.18.4 -From a9692ca025ad6ccf911b45a8fab86f948b2b8d1e Mon Sep 17 00:00:00 2001 +From 02bc0030756bad01ebd9f2b6151b301763874b29 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:38 +0100 -Subject: [PATCH 496/661] Revert "vc4_hdmi: BCM2835 requires a fixed hsm clock +Subject: [PATCH 496/693] Revert "vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC to work" This reverts commit 1cad24365e9f4325d68d4a16025f77abe3eda2f7. @@ -207110,10 +207110,10 @@ index b0ba2421cc04..f18f1d775241 100644 2.18.4 -From 533579ae01560c10888a31db3f8da0a3dce74a86 Mon Sep 17 00:00:00 2001 +From 3c0f5f735bdc82485468d35805d90e2de585f5d2 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:22:55 +0100 -Subject: [PATCH 497/661] ARM: bcm: Select BRCMSTB_L2_IRQ for bcm2835 +Subject: [PATCH 497/693] ARM: bcm: Select BRCMSTB_L2_IRQ for bcm2835 The BCM2711 has a number of instances of interrupt controllers handled by the driver behind the BRCMSTB_L2_IRQ Kconfig option (irq-brcmstb-l2). @@ -207155,10 +207155,10 @@ index 5c4ac1c9f4e0..2c5620822895 100644 2.18.4 -From 64d344c5500993bd2f263686afbe3d1c55d9ac6b Mon Sep 17 00:00:00 2001 +From 642c9c9b8e142f826154b4c263c0f45493834d2d Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 15:22:56 +0100 -Subject: [PATCH 498/661] drm/vc4: hdmi: Move hdmi reset to bind +Subject: [PATCH 498/693] drm/vc4: hdmi: Move hdmi reset to bind The hdmi reset got moved to a later point in the commit 9045e91a476b ("drm/vc4: hdmi: Add reset callback"). @@ -207205,10 +207205,10 @@ index 9c943fc99c0c..83693ad916d3 100644 2.18.4 -From 73fde75e5b56713a1e92d59a74f2a36866cd2a5e Mon Sep 17 00:00:00 2001 +From c26bef6ddeba935aaa1ca4958e4a5d10612ac555 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:02 +0100 -Subject: [PATCH 499/661] drm/vc4: hdmi: Introduce a CEC clock +Subject: [PATCH 499/693] drm/vc4: hdmi: Introduce a CEC clock While the BCM2835 had the CEC clock derived from the HSM clock, the BCM2711 has a dedicated parent clock for it. @@ -207273,10 +207273,10 @@ index f18f1d775241..c9b4b7678df4 100644 2.18.4 -From 3e0b717ff54c4d9fc93b977c2d1b024aef25244a Mon Sep 17 00:00:00 2001 +From 9aabf95fc26f645a079890809ac60b3283aaf6c0 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:03 +0100 -Subject: [PATCH 500/661] drm/vc4: hdmi: Split the interrupt handlers +Subject: [PATCH 500/693] drm/vc4: hdmi: Split the interrupt handlers The BCM2711 has two different interrupt sources to transmit and receive CEC messages, provided through an external interrupt chip shared between @@ -207420,10 +207420,10 @@ index e1862ffbc5e6..5643a4fb5b98 100644 2.18.4 -From e17bd166fc979f9a3e71e7293718c4aa1f4d97f7 Mon Sep 17 00:00:00 2001 +From b2dee7cc7d17159494c34a7fa5f4e9b4ef6efc67 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:04 +0100 -Subject: [PATCH 501/661] drm/vc4: hdmi: Support BCM2711 CEC interrupt setup +Subject: [PATCH 501/693] drm/vc4: hdmi: Support BCM2711 CEC interrupt setup The HDMI controller found in the BCM2711 has an external interrupt controller for the CEC and hotplug interrupt shared between the two @@ -207544,10 +207544,10 @@ index c9b4b7678df4..ae1be14812b8 100644 2.18.4 -From 2e0b5b87fb8a3205b34fbb17299621173a5cf7de Mon Sep 17 00:00:00 2001 +From ae539b00c17cda02efccdf718667256436a89cb1 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 15:23:05 +0100 -Subject: [PATCH 502/661] drm/vc4: hdmi: Remove cec_available flag +Subject: [PATCH 502/693] drm/vc4: hdmi: Remove cec_available flag Now that our HDMI controller supports CEC for the BCM2711, let's remove that flag. @@ -207600,10 +207600,10 @@ index ae1be14812b8..cb2af9f144df 100644 2.18.4 -From e1114fd069a16d0c5d2f669761d2537f51faded9 Mon Sep 17 00:00:00 2001 +From 48a25c5fabad255dc0f59769b25c3c7e57287255 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:06 +0100 -Subject: [PATCH 503/661] drm/vc4: hdmi: Don't register the CEC adapter if +Subject: [PATCH 503/693] drm/vc4: hdmi: Don't register the CEC adapter if there's no interrupts We introduced the BCM2711 support to the vc4 HDMI controller with 5.10, @@ -207643,10 +207643,10 @@ index 66963eeb4db0..e0cff1935fbd 100644 2.18.4 -From e515ac157519b1ecfc275846a5b3226ffc2e7ad1 Mon Sep 17 00:00:00 2001 +From d5cdee0f68d4a9a68bb23e3af5c57bb5f399c5c3 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:07 +0100 -Subject: [PATCH 504/661] dt-binding: display: bcm2711-hdmi: Add CEC and +Subject: [PATCH 504/693] dt-binding: display: bcm2711-hdmi: Add CEC and hotplug interrupts The CEC and hotplug interrupts were missing when that binding was @@ -207700,10 +207700,10 @@ index 7ce06f9f9f8e..6e8ac910bdd8 100644 2.18.4 -From 2f060e7d43142979db9e5b3934d8a2ade37cf98f Mon Sep 17 00:00:00 2001 +From 4adfaae82be80e2d7580c9fb9daf5c9a6d5383bc Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:08 +0100 -Subject: [PATCH 505/661] ARM: dts: bcm2711: Add the BSC interrupt controller +Subject: [PATCH 505/693] ARM: dts: bcm2711: Add the BSC interrupt controller The BSC controllers used for the HDMI DDC have an interrupt controller shared between both instances. Let's add it to avoid polling. @@ -207755,10 +207755,10 @@ index 7c2d374cb749..786faf7050fc 100644 2.18.4 -From 5231248e823727df9a01f962b6a613f7264da4c7 Mon Sep 17 00:00:00 2001 +From cd0e445ff64d914ed5c7d1fe4d55f81f3fdd4d71 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:09 +0100 -Subject: [PATCH 506/661] ARM: dts: bcm2711: Add the CEC interrupt controller +Subject: [PATCH 506/693] ARM: dts: bcm2711: Add the CEC interrupt controller The CEC and hotplug interrupts go through an interrupt controller shared between the two HDMI controllers. @@ -207819,10 +207819,10 @@ index 786faf7050fc..9e0d9b2ca586 100644 2.18.4 -From 42c87dc71d81fef923c9bc1f0b328c2606706ff9 Mon Sep 17 00:00:00 2001 +From 9ad6af8e9225ecebd0812466ece5ecf97ee07d80 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 9 Dec 2020 16:37:01 +0000 -Subject: [PATCH 507/661] bcm2711: Disable bsc_intr and aon_intr by default and +Subject: [PATCH 507/693] bcm2711: Disable bsc_intr and aon_intr by default and enable in overlay Signed-off-by: Dom Cobley @@ -207880,10 +207880,10 @@ index f721f12d729d..8e9220f303f0 100644 2.18.4 -From 94f5b49ddeb64215cbd337f322cd62a27e54da0b Mon Sep 17 00:00:00 2001 +From c974cc498c5dd18734ca41f3dbd4373e8cabde22 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:42 +0100 -Subject: [PATCH 508/661] drm/vc4: hdmi: Limit the BCM2711 to the max without +Subject: [PATCH 508/693] drm/vc4: hdmi: Limit the BCM2711 to the max without scrambling Unlike the previous generations, the HSM clock limitation is way above @@ -207931,10 +207931,10 @@ index e0cff1935fbd..2d1359b1cb38 100644 2.18.4 -From 01097729c651b7ad7ead208bb81dc7c2e75c9f4b Mon Sep 17 00:00:00 2001 +From f4ce4c18ca4246e7ee5d5efc0e06096edf2bf8c0 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 17:08:20 +0000 -Subject: [PATCH 509/661] bcm2711: Remove old GIC interrupt +Subject: [PATCH 509/693] bcm2711: Remove old GIC interrupt Now handled through aon_intr @@ -207967,10 +207967,10 @@ index 0ef7bde01555..9d2730c27637 100644 2.18.4 -From dd97e9f0480c2582b358f1cce2a780c3860735a4 Mon Sep 17 00:00:00 2001 +From 47f9221fedd39646e31a77cee2ba7ec89f18c648 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:48:35 +0000 -Subject: [PATCH 510/661] staging:bcm2835-camera: Fix the cherry-pick of AWB +Subject: [PATCH 510/693] staging:bcm2835-camera: Fix the cherry-pick of AWB Greyworld The cherry-pick of the patch that added the greyworld AWB mode @@ -208001,10 +208001,10 @@ index a7af25f90449..f73daa38fa66 100644 2.18.4 -From 07e7178247942f1ed78ae1ec2c487197feee9300 Mon Sep 17 00:00:00 2001 +From d95e2a23760cd840bcb7adf589b72d803e05f946 Mon Sep 17 00:00:00 2001 From: David Knell Date: Mon, 8 Feb 2021 03:33:30 +0000 -Subject: [PATCH 511/661] Overlays for PiFi-Mini amp +Subject: [PATCH 511/693] Overlays for PiFi-Mini amp Signed-off-by: David Knell --- @@ -208095,10 +208095,10 @@ index 000000000000..963597d611b5 2.18.4 -From fc7912ea38cbe43f75c229c91c706a1131f29242 Mon Sep 17 00:00:00 2001 +From 6ae2776bad2614e5d12cb73b8e5d0b29defffcd7 Mon Sep 17 00:00:00 2001 From: David Knell Date: Mon, 8 Feb 2021 03:35:15 +0000 -Subject: [PATCH 512/661] Added PiFi-Mini to rpi-simple-soundcard.c +Subject: [PATCH 512/693] Added PiFi-Mini to rpi-simple-soundcard.c Signed-off-by: David Knell --- @@ -208245,10 +208245,10 @@ index bf61a4239073..c25351e6ee90 100644 2.18.4 -From 35b84ad5f34dbb690184b5a78801c070b0c58e23 Mon Sep 17 00:00:00 2001 +From 995392229b5d9245ee9f6be3665c21d1a22c9b2f Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 12 Jan 2021 13:55:39 +0000 -Subject: [PATCH 513/661] bcm2835-isp: Allow formats with different colour +Subject: [PATCH 513/693] bcm2835-isp: Allow formats with different colour spaces. Each supported format now includes a mask showing the allowed colour @@ -208965,10 +208965,10 @@ index 4d24aec7203d..5cca8bdd1d65 100644 2.18.4 -From bc499d589b94577ae0982de125042ae05ca43baa Mon Sep 17 00:00:00 2001 +From 0bf76859907dfc9e03a2a7118eaa30becd23bfc7 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Mon, 1 Feb 2021 16:53:46 +0100 -Subject: [PATCH 514/661] Hifiberry DAC+ADC Pro fix for the PLL when changing +Subject: [PATCH 514/693] Hifiberry DAC+ADC Pro fix for the PLL when changing sample rates Adds 2 msecs delay when switching between oscillators to allow @@ -209027,10 +209027,10 @@ index 4c03927107e3..8b04d30bcbee 100644 2.18.4 -From 2ef332660ef28d001158f71eed501034e5fc92d4 Mon Sep 17 00:00:00 2001 +From 5c30e1c8a5442d9c17f4823714c86829c9642ffd Mon Sep 17 00:00:00 2001 From: Mathias Anhalt Date: Sun, 24 Jan 2021 15:15:01 +0100 -Subject: [PATCH 515/661] Fixed picture line bug in all ov9281 modes +Subject: [PATCH 515/693] Fixed picture line bug in all ov9281 modes Signed-off-by: Mathias Anhalt --- @@ -209071,10 +209071,10 @@ index 12621c2dccd5..c646f11ef1d5 100644 2.18.4 -From a00b71659bb999eaa5ed498a71e187d041352818 Mon Sep 17 00:00:00 2001 +From 9b7a98e4434eb90aea78c109924128da1420d624 Mon Sep 17 00:00:00 2001 From: Mathias Anhalt Date: Wed, 3 Feb 2021 20:34:09 +0100 -Subject: [PATCH 516/661] Added hflip and vflip controls to ov9281 +Subject: [PATCH 516/693] Added hflip and vflip controls to ov9281 Signed-off-by: Mathias Anhalt --- @@ -209189,10 +209189,10 @@ index c646f11ef1d5..16777b6f8e14 100644 2.18.4 -From 2e62e4a472b5bb4e5dc2f7b545b9170519f642d8 Mon Sep 17 00:00:00 2001 +From 1a39fe49c8a5af434db218a9335cb8b660b4f5b8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:45:57 +0000 -Subject: [PATCH 517/661] Partial revert "bcm2711: Disable bsc_intr and +Subject: [PATCH 517/693] Partial revert "bcm2711: Disable bsc_intr and aon_intr by default and enable in overlay" This reverts commit c765fd45856a34b9e46daa9263faeafe006c3985. @@ -209239,10 +209239,10 @@ index 8e9220f303f0..6a11260a4f1a 100644 2.18.4 -From 2cc30af747528bd2262643266b95fed790fe0b35 Mon Sep 17 00:00:00 2001 +From 6dd641f39c377e81a19639541cbc591f226df5b2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:49:25 +0000 -Subject: [PATCH 518/661] Revert "ARM: dts: bcm2711: Add the BSC interrupt +Subject: [PATCH 518/693] Revert "ARM: dts: bcm2711: Add the BSC interrupt controller" This reverts commit 93a3b097c467bd5efc1ae3a271c336fdad3b2108. @@ -209301,10 +209301,10 @@ index be2f9ba08ea8..b4bca5af95e1 100644 2.18.4 -From d1af4a75d7bd21aadc7a8607c0a89bcc0b3000f7 Mon Sep 17 00:00:00 2001 +From d0658fbfbc37ba89cdf0472c3fbc64a0fda2ffb7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2021 10:25:35 +0000 -Subject: [PATCH 519/661] gpio-fsm: Rename 'num-soft-gpios' to avoid warning +Subject: [PATCH 519/693] gpio-fsm: Rename 'num-soft-gpios' to avoid warning As of 5.10, the Device Tree parser warns about properties that look like references to "suppliers" of various services. "num-soft-gpios" @@ -209339,10 +209339,10 @@ index 2cab50e51315..708f258fda35 100644 2.18.4 -From 5bf7b8bb22f6c60d96db9cf0ae4195f498c7910b Mon Sep 17 00:00:00 2001 +From 84ffebef6176e2291e44773cb4f1aa04cef6d227 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2021 10:32:18 +0000 -Subject: [PATCH 520/661] overlays: Rename gpio-fsm property num-soft-gpios +Subject: [PATCH 520/693] overlays: Rename gpio-fsm property num-soft-gpios The gpio-fsm property "num-soft-gpios" triggers a kernel DT checker that warns about the lack of #gpio-cells on a random node with the @@ -209385,10 +209385,10 @@ index afc9f034b5fc..3c997266a67d 100644 2.18.4 -From 8c765fe1fbc0e5e4fd8f3705ee88099133969d7e Mon Sep 17 00:00:00 2001 +From 26f1054345ba896a279a32c68cb4b93043692b66 Mon Sep 17 00:00:00 2001 From: Laurentiu Palcu Date: Wed, 27 Nov 2019 14:42:35 +0000 -Subject: [PATCH 521/661] drm: fix HDR static metadata type field numbering +Subject: [PATCH 521/693] drm: fix HDR static metadata type field numbering According to CTA-861 specification, HDR static metadata data block allows a sink to indicate which HDR metadata types it supports by setting the SM_0 to @@ -209422,10 +209422,10 @@ index 9850d59d6f1c..c8ec982ff498 100644 2.18.4 -From 2f4bd788e16bfc92d0735618a83d53c99ec87dbe Mon Sep 17 00:00:00 2001 +From cf06a8022d3757a8fe10a13b68d3adee894b6009 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 2 Dec 2020 18:36:24 +0000 -Subject: [PATCH 522/661] drm/vc4: Add HDR metadata property to the VC5 HDMI +Subject: [PATCH 522/693] drm/vc4: Add HDR metadata property to the VC5 HDMI connectors Now that we can export deeper colour depths, add in the signalling @@ -209529,10 +209529,10 @@ index cb2af9f144df..33b5f120bbeb 100644 2.18.4 -From 3bb58e54fa256d261435d1242cc5f7b81edb8782 Mon Sep 17 00:00:00 2001 +From c6a9e916a4e614e6e13b5003d0e39f5baba01842 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 5 Feb 2021 14:07:12 +0000 -Subject: [PATCH 523/661] drm/vc4: Add connector check to trigger mode_change +Subject: [PATCH 523/693] drm/vc4: Add connector check to trigger mode_change when hdr metadata changes Signed-off-by: Dom Cobley @@ -209602,10 +209602,10 @@ index 905e5595dd8d..2eda64df7351 100644 2.18.4 -From 1614876de3a7954ae5f89d0935a8345d7eab9305 Mon Sep 17 00:00:00 2001 +From 63b021f2890a9432349bb4ca70b533993c8e387f Mon Sep 17 00:00:00 2001 From: John Cox Date: Mon, 8 Feb 2021 16:01:37 +0000 -Subject: [PATCH 524/661] staging: rpivid: Fix crash when CMA alloc fails +Subject: [PATCH 524/693] staging: rpivid: Fix crash when CMA alloc fails If realloc to increase coeff size fails then attempt to re-allocate the original size. If that also fails then flag a fatal error to abort @@ -209728,10 +209728,10 @@ index fc3caed58187..e6b07920aa8c 100644 2.18.4 -From 67b1639b3526a2e59a4613ac381ed5e135af071c Mon Sep 17 00:00:00 2001 +From b5948727234fbb6026d95c981c702435e5e41097 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 14:23:58 +0000 -Subject: [PATCH 525/661] dt: Add option for dpi without DE and PCLK (for +Subject: [PATCH 525/693] dt: Add option for dpi without DE and PCLK (for VGA666) VGA666 doesn't use the DE or PCLK signals, therefore there is @@ -209764,10 +209764,10 @@ index e657affae46f..12c7b0b2bb5f 100644 2.18.4 -From f2dcc4701f0d563753a52306195d0a5b46a8115f Mon Sep 17 00:00:00 2001 +From 167c198d906b97882d70bdf2f4b928ce19a741aa Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 14:50:59 +0000 -Subject: [PATCH 526/661] defconfigs: Add DRM_DISPLAY_CONNECTOR and +Subject: [PATCH 526/693] defconfigs: Add DRM_DISPLAY_CONNECTOR and DRM_SIMPLE_BRIDGE for VGA666 VGA666 uses "vga-connector" from DRM_DISPLAY_CONNECTOR, and @@ -209852,10 +209852,10 @@ index aa89eb5704cb..f0a791a03abd 100644 2.18.4 -From 99aff40e07a8c6ed487feb80bcc4fea617fbfb3c Mon Sep 17 00:00:00 2001 +From e368053a9c539534b5a98f126bb459f2ea8b4721 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 14:41:10 +0000 -Subject: [PATCH 527/661] dtoverlays: Add an overlay for the VGA666 when used +Subject: [PATCH 527/693] dtoverlays: Add an overlay for the VGA666 when used with vc4-kms-v3d Includes optional use of GPIOs 0&1 / BSC0 for DDC to read the EDID @@ -210016,10 +210016,10 @@ index 000000000000..6e787099e861 2.18.4 -From 5dabb2f5bc0784d091d41b953afae4fa095d6e51 Mon Sep 17 00:00:00 2001 +From daa7ff3854e7e70af3a86122793ab0b3601fce67 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:31:37 +0000 -Subject: [PATCH 528/661] drm/vc4: Change the default DPI format to being +Subject: [PATCH 528/693] drm/vc4: Change the default DPI format to being 18bpp, not 24. DPI hasn't really been used up until now, so the default has @@ -210056,10 +210056,10 @@ index a90f2545baee..db63f4e11b17 100644 2.18.4 -From a3c3d5335199df37bd7421797f046a333c718bc6 Mon Sep 17 00:00:00 2001 +From f39e4dffe0f1051233a622880ddc8baba36bb092 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 17 Oct 2020 15:42:54 +0100 -Subject: [PATCH 529/661] gpio-fsm: Show state info in /sys/class/gpio-fsm +Subject: [PATCH 529/693] gpio-fsm: Show state info in /sys/class/gpio-fsm Add gpio-fsm sysfs entries under /sys/class/gpio-fsm. For each state machine show the current state, which state (if any) will be entered @@ -210246,10 +210246,10 @@ index 708f258fda35..d71a81d9b669 100644 2.18.4 -From 08968794dd22b346435bba96d83d3fce8a1ea420 Mon Sep 17 00:00:00 2001 +From e05acee794a573571bbcd80e996b85f59fe1ff7c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Feb 2021 09:21:30 +0000 -Subject: [PATCH 530/661] gpio-fsm: Fix shutdown timeout handling +Subject: [PATCH 530/693] gpio-fsm: Fix shutdown timeout handling The driver is intended to jump directly to a shutdown state in the event of a timeout during shutdown, but the sense of the test was @@ -210278,10 +210278,10 @@ index d71a81d9b669..306f5123546c 100644 2.18.4 -From 831a6ad1cd28ec71856cdb7084ed4fd5aa09322c Mon Sep 17 00:00:00 2001 +From 103eb271aac2302f691ad5ae0b0b62b602b3f2ca Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Feb 2021 09:29:26 +0000 -Subject: [PATCH 531/661] overlays: fsm-demo: Ensure all LEDs are turned off +Subject: [PATCH 531/693] overlays: fsm-demo: Ensure all LEDs are turned off If the shutdown process is delayed enough to trigger the shutdown timeout then one or more states in the shutdown sequence might be @@ -210310,10 +210310,10 @@ index 9b5da179914f..e9944f5cd258 100644 2.18.4 -From f3c17103e5615297137c48012f95d88b7142f973 Mon Sep 17 00:00:00 2001 +From a07ca1968fe5c0e8d35341bbef1343f934ead396 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Feb 2021 09:52:27 +0000 -Subject: [PATCH 532/661] configs: Add various missing IPV6 modules +Subject: [PATCH 532/693] configs: Add various missing IPV6 modules See: https://github.com/raspberrypi/linux/issues/4144 @@ -210545,10 +210545,10 @@ index f0a791a03abd..60bda75b6965 100644 2.18.4 -From 25555bc3b91f4f8c31fd0ff78ef52f0c0f70aafb Mon Sep 17 00:00:00 2001 +From ae16d3f8522dc715270aff2f0f86e335f53631c9 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 10 Feb 2021 10:18:53 +0000 -Subject: [PATCH 533/661] media: i2c: imx477: Remove auto frame length +Subject: [PATCH 533/693] media: i2c: imx477: Remove auto frame length adjusting The V4L2_CID_EXPOSURE_AUTO_PRIORITY was used to let the sensor control @@ -210693,10 +210693,10 @@ index f68e7718b09c..30055244166b 100644 2.18.4 -From 19ae0846eb926b6a6855da5c5b2e61a7e7175259 Mon Sep 17 00:00:00 2001 +From 6d4a10ca32e0eccf6777602aec3bc3da235122f4 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 10 Feb 2021 10:50:32 +0000 -Subject: [PATCH 534/661] media: i2c: imx477: Add very long exposure control to +Subject: [PATCH 534/693] media: i2c: imx477: Add very long exposure control to the driver Add support for very long exposures by using the exposure multiplier @@ -210825,10 +210825,10 @@ index 30055244166b..0143e3129258 100644 2.18.4 -From c6ab2777a549a950541b4ab4c8463e275986e77a Mon Sep 17 00:00:00 2001 +From ac21f548a49ab2cf4bbf3dee6c1700ba78787804 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 17 Feb 2021 18:08:12 +0000 -Subject: [PATCH 535/661] media: i2c: imx290: Fix up exposure calcuations and +Subject: [PATCH 535/693] media: i2c: imx290: Fix up exposure calcuations and ranges Should now correspond exactly to the datasheet. @@ -210890,10 +210890,10 @@ index 33ce80686163..43e2f294a53b 100644 2.18.4 -From 62cbc211339c0ece7cfd05816718c818841d8e20 Mon Sep 17 00:00:00 2001 +From 63b87d58aa2e5fb8be400b0d0286c9a0e215902d Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 18 Feb 2021 11:58:29 +0000 -Subject: [PATCH 536/661] media: i2c: imx290: Handle exposure correctly when +Subject: [PATCH 536/693] media: i2c: imx290: Handle exposure correctly when vblank changes When vblank changes we must modify the exposure range. Also, with this @@ -210938,10 +210938,10 @@ index 43e2f294a53b..255f66985306 100644 2.18.4 -From c2cb1262a7f91955c1691c8de02d64439af22a38 Mon Sep 17 00:00:00 2001 +From 241b986f81f8ab566338931ba2ce967b61937aba Mon Sep 17 00:00:00 2001 From: pifi-bz <73530753+pifi-bz@users.noreply.github.com> Date: Fri, 19 Feb 2021 13:14:32 +0200 -Subject: [PATCH 537/661] DAC overlays (#4154) +Subject: [PATCH 537/693] DAC overlays (#4154) Adding overlays for PiFi DAC Zero and PiFi DAC HD. @@ -211105,10 +211105,10 @@ index 000000000000..645ea74cb435 2.18.4 -From 3166b3f424a282ca18b5b045f825b1f56c9e3353 Mon Sep 17 00:00:00 2001 +From c285b71a8197b02d726596bcbeb5129ee5a77a53 Mon Sep 17 00:00:00 2001 From: Peter Harper Date: Mon, 22 Feb 2021 12:34:20 +0000 -Subject: [PATCH 538/661] configs: Change CONFIG_BLK_DEV_NVME=y for 2711 +Subject: [PATCH 538/693] configs: Change CONFIG_BLK_DEV_NVME=y for 2711 See https://github.com/raspberrypi/linux/issues/4163 --- @@ -211146,10 +211146,10 @@ index b5dce7480cff..8a643571a458 100644 2.18.4 -From c95c1ec5c45b5e1442d7a26619a2fd75ae88c896 Mon Sep 17 00:00:00 2001 +From 363ed5c4e5499cc5ce03da7a4b563e80d10d1fab Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 18 Feb 2021 15:05:57 +0000 -Subject: [PATCH 539/661] media: i2c: imx477: Fix crop height for 2028x1080 +Subject: [PATCH 539/693] media: i2c: imx477: Fix crop height for 2028x1080 mode The crop height for this mode was set at 2600 lines, it should be 2160 @@ -211177,10 +211177,10 @@ index 0143e3129258..e3d164555b09 100644 2.18.4 -From 490997cc87892ac304266333b646305f24b4dba8 Mon Sep 17 00:00:00 2001 +From 9429ed9dba80c3159d0815539bedf9a2502e5fc1 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 18 Feb 2021 15:23:11 +0000 -Subject: [PATCH 540/661] media: i2c: imx477: Replace existing 1012x760 mode +Subject: [PATCH 540/693] media: i2c: imx477: Replace existing 1012x760 mode The existing 1012x760 120 fps mode has significant IQ problem using the internal sensor scaler. Replace this mode with a 1332x990 120 fps @@ -211380,10 +211380,10 @@ index e3d164555b09..0c552b9d54c5 100644 2.18.4 -From cf2f6b245c2c7ed1c424f37a684ac72d57173bca Mon Sep 17 00:00:00 2001 +From 1a82d72968cbf47e1cf555467007108fb0087cec Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 19 Feb 2021 10:30:49 +0000 -Subject: [PATCH 541/661] media: i2c: imx477: Remove internal +Subject: [PATCH 541/693] media: i2c: imx477: Remove internal v4l2_mbus_framefmt from the state The only field in this struct that is used is the format code, so @@ -211456,10 +211456,10 @@ index 0c552b9d54c5..f43c86407d97 100644 2.18.4 -From 0f3b11557d9ebbd568d0c82e6433dfbaef43dd30 Mon Sep 17 00:00:00 2001 +From aa6d01ec343bc367aeaf5ac20363916da5b1cde2 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 19 Feb 2021 11:06:40 +0000 -Subject: [PATCH 542/661] media: i2c: imx477: Remove unused function parameter +Subject: [PATCH 542/693] media: i2c: imx477: Remove unused function parameter The struct imx477 *ctrl parameter is not used in the function imx477_adjust_exposure_range(), so remove it. @@ -211496,10 +211496,10 @@ index f43c86407d97..34bfd22cadc6 100644 2.18.4 -From 8e09d9d5041661078f9083adcc55c2cf4569dcbb Mon Sep 17 00:00:00 2001 +From 7d776c5a8ad0f6df5a8c84db0b9a6c7d8c868a5f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Feb 2021 14:19:00 +0000 -Subject: [PATCH 543/661] overlays: i2c-rtc: Add the Dallas DS1340 +Subject: [PATCH 543/693] overlays: i2c-rtc: Add the Dallas DS1340 See: https://github.com/raspberrypi/linux/issues/4180 @@ -211567,10 +211567,10 @@ index 759f532d5be1..408b71ec97b5 100644 2.18.4 -From 43e4c4aaa1c3a5f6f500d644299429e21aeb240b Mon Sep 17 00:00:00 2001 +From b2ece71748b29bba243a1c7dbad30eb212353bf0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Feb 2021 14:20:05 +0000 -Subject: [PATCH 544/661] overlays: Update the upstream overlay +Subject: [PATCH 544/693] overlays: Update the upstream overlay Signed-off-by: Phil Elwell --- @@ -211598,10 +211598,10 @@ index e0f7cc8ba9ea..f73a1879e690 100644 2.18.4 -From 596685fb6c31a7f5224305f9d5db5aa42513a0ed Mon Sep 17 00:00:00 2001 +From 800f6f6b5a4da198a6b6c3d363ef799fc177b2c3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:12:44 +0000 -Subject: [PATCH 545/661] Revert "Bluetooth: Always request for user +Subject: [PATCH 545/693] Revert "Bluetooth: Always request for user confirmation for Just Works (LE SC)" This reverts commit ffee202a78c2980688bc5d2f7d56480e69a5e0c9. @@ -211649,10 +211649,10 @@ index bf4bef13d935..248cdaf77a5f 100644 2.18.4 -From 9ac88bc63ddd6987587b75e58a6662111454fb70 Mon Sep 17 00:00:00 2001 +From a7fca4d9a44e70b83c6b4656e4169e9670b819bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:14:35 +0000 -Subject: [PATCH 546/661] Revert "Bluetooth: Always request for user +Subject: [PATCH 546/693] Revert "Bluetooth: Always request for user confirmation for Just Works" This reverts commit 92516cd97fd4d8ad5b1421a0d51771044f453a5f. @@ -211698,10 +211698,10 @@ index 248cdaf77a5f..0f820decf511 100644 2.18.4 -From bfc51fda42b19de04ca5fe104a558024a6390335 Mon Sep 17 00:00:00 2001 +From ea26396128239742d6b27d91645bd8dd32138d86 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 5 Mar 2021 15:40:45 +0000 -Subject: [PATCH 547/661] media: bcm2835-unicam: Fix bug in buffer swapping +Subject: [PATCH 547/693] media: bcm2835-unicam: Fix bug in buffer swapping logic If multiple sets of interrupts occur simultaneously, it may be unsafe @@ -211780,10 +211780,10 @@ index a8b3f5433f04..234f0eaf9c8c 100644 2.18.4 -From 43a7eaebf2cb443ff262563ede802b6dea95ba17 Mon Sep 17 00:00:00 2001 +From 3d720b577c08584e106582ba0efa5d0c79b8b1ff Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 8 Mar 2021 15:32:25 +0000 -Subject: [PATCH 548/661] Assign crypto aliases to different AES implementation +Subject: [PATCH 548/693] Assign crypto aliases to different AES implementation modules The kernel modules aes-neon-blk and aes-neon-bs perform poorly, at least on @@ -211895,10 +211895,10 @@ index fb507d569922..cc52829d426a 100644 2.18.4 -From dd36fac2e85984d6eb8880aade990fde0c605c7c Mon Sep 17 00:00:00 2001 +From 498801183c27896b2b02b0fc43470978ba7e2613 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Mar 2021 16:11:46 +0000 -Subject: [PATCH 549/661] overlays: Improve the i2c-rtc,i2c_csi_dsi option +Subject: [PATCH 549/693] overlays: Improve the i2c-rtc,i2c_csi_dsi option The i2c_csi_dsi parameter of the i2c-rtc overlay (added for the CM4IO board) causes the RTC devices to be probed on the I2C0 bus appearing @@ -211951,10 +211951,10 @@ index 408b71ec97b5..b9842e11b5e0 100644 2.18.4 -From e69bdb5272c7fff69c1a1a06f915c72c61d55a45 Mon Sep 17 00:00:00 2001 +From db11d0ef30d87984de6dc603958d8237622d13fd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Mar 2021 16:59:05 +0000 -Subject: [PATCH 550/661] configs: Add CONFIG_RTS_HCTOSYS=y +Subject: [PATCH 550/693] configs: Add CONFIG_RTS_HCTOSYS=y The recently improved RTC_HCTOSYS option now works with RTC drivers in modules, making it much more useful in that it removes the need to run @@ -212035,10 +212035,10 @@ index 60bda75b6965..584e82f7de99 100644 2.18.4 -From a23f3d9699bb49207b9cf7cf73cc79772bd7ba02 Mon Sep 17 00:00:00 2001 +From f1d73324ee135a1befd6621311167c0f58e63c2b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:48:47 +0000 -Subject: [PATCH 551/661] media/v4l2_m2m: In buffered mode run jobs if either +Subject: [PATCH 551/693] media/v4l2_m2m: In buffered mode run jobs if either port is streaming In order to get the intended behaviour of the stateful video @@ -212074,10 +212074,10 @@ index 34dd8ba5469f..329dc316934e 100644 2.18.4 -From 235be64e54051b8d410b78cb046c51333405e555 Mon Sep 17 00:00:00 2001 +From 396adfa94c5659b000a333bbe4c8b8d555780cfa Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:55:37 +0000 -Subject: [PATCH 552/661] staging/bcm2835-codec: Correct logging of size_t to +Subject: [PATCH 552/693] staging/bcm2835-codec: Correct logging of size_t to %zu Fixes: "staging/bcm2835-codec: Log the number of excess supported formats" @@ -212114,10 +212114,10 @@ index 94691ab7175a..0c4d8bf77b91 100644 2.18.4 -From b3532d4685b81d27565d2fccfc60de3c71bfd5ec Mon Sep 17 00:00:00 2001 +From 3ffc253b1bc95515be2ad606a7994904043dba56 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Feb 2021 15:50:18 +0000 -Subject: [PATCH 553/661] staging/bcm2835-codec: Add support for pixel aspect +Subject: [PATCH 553/693] staging/bcm2835-codec: Add support for pixel aspect ratio If the format is detected by the driver and a V4L2_EVENT_SOURCE_CHANGE @@ -212202,10 +212202,10 @@ index 0c4d8bf77b91..46f659e55f18 100644 2.18.4 -From 3cfef57a23ddb68e817b622e1742dfd58d5bb800 Mon Sep 17 00:00:00 2001 +From 14cca278518c1fefc20f127025d2b9ae1486c35b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Feb 2021 16:46:39 +0000 -Subject: [PATCH 554/661] staging/bcm2835-codec: Implement additional +Subject: [PATCH 554/693] staging/bcm2835-codec: Implement additional g_selection calls for decode v4l_cropcap calls our vidioc_g_pixelaspect function to get the pixel @@ -212243,10 +212243,10 @@ index 46f659e55f18..7aa6c53e279e 100644 2.18.4 -From 868c65449c1e15ca37f36523810fae59a5e41649 Mon Sep 17 00:00:00 2001 +From bc02169f517c760d688c25d5b34f9e5a002462d4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Mar 2021 19:07:48 +0000 -Subject: [PATCH 555/661] staging/bcm2835-codec: Add VC-1 support. +Subject: [PATCH 555/693] staging/bcm2835-codec: Add VC-1 support. Providing the relevant licence has been purchased, then Pi0-3 can decode VC-1. @@ -212278,10 +212278,10 @@ index 7aa6c53e279e..5729a8a7d94e 100644 2.18.4 -From ddf7c685df5e29060896f6d10e45fab48fc8b2f0 Mon Sep 17 00:00:00 2001 +From 5dc36aca2984c0192683c567b9256600f6e622fa Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Sun, 24 Jan 2021 15:44:10 +0000 -Subject: [PATCH 556/661] vc4/drm: Avoid full hdmi audio fifo writes +Subject: [PATCH 556/693] vc4/drm: Avoid full hdmi audio fifo writes We are getting occasional VC4_HD_MAI_CTL_ERRORF in HDMI_MAI_CTL which seem to correspond with audio dropouts. @@ -212316,10 +212316,10 @@ index 2eda64df7351..f9eb6a557a4d 100644 2.18.4 -From f538170bd276232412176e9f8f9e4895ecc6073a Mon Sep 17 00:00:00 2001 +From 325b5cfcaaad98e4904b12e47ec64e86036d260e Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 12 Mar 2021 11:26:29 +0000 -Subject: [PATCH 557/661] vc4/drm: Increase hdmi audio axi priority to avoid +Subject: [PATCH 557/693] vc4/drm: Increase hdmi audio axi priority to avoid lost samples With HBR audio (8 channel 192kHz) we get occasional VC4_HD_MAI_CTL_DLATE error flags in @@ -212358,10 +212358,10 @@ index 8053ef54acc8..20581ee97827 100644 2.18.4 -From aec06310fc33d74d3dde2f84048e7b65cc2cbe49 Mon Sep 17 00:00:00 2001 +From 4f4c6f3cb8a74b2d61b06707c795feaea60e347f Mon Sep 17 00:00:00 2001 From: Assaf Gordon Date: Fri, 12 Mar 2021 00:13:07 -0700 -Subject: [PATCH 558/661] overlays: gpio-led: new overlay +Subject: [PATCH 558/693] overlays: gpio-led: new overlay Add generic connection between the kernel's LED framework and RPI's GPIO pins. @@ -212560,10 +212560,10 @@ index 000000000000..d8e9d53f1b61 2.18.4 -From d0154e0beba7703b01c964e29b60692a617a47ae Mon Sep 17 00:00:00 2001 +From 5e3438595c09541701d9bc0ae6af4dec0565b0bf Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Mon, 15 Mar 2021 17:25:02 +0100 -Subject: [PATCH 559/661] overlays: Add pcie-32bit-dma overlay +Subject: [PATCH 559/693] overlays: Add pcie-32bit-dma overlay In order to accommodate full PCI DMA access to memory on newer BCM2711 revisions, we're forced to map PCIe's view of physical memory with an @@ -212659,10 +212659,10 @@ index 000000000000..cca3e83721b7 2.18.4 -From a721a613f0e9e4c6d627ddfb9e923851884f34ee Mon Sep 17 00:00:00 2001 +From 64fc545fd41e0f67adf22169ca615560d03eb2c1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Mar 2021 09:13:28 +0000 -Subject: [PATCH 560/661] Revert "i2c: bcm2835: Handle untimely DONE signal" +Subject: [PATCH 560/693] Revert "i2c: bcm2835: Handle untimely DONE signal" This reverts commit 431ac1d21b5e842c5a564bc0bab31d7dc11611f5. @@ -212726,10 +212726,10 @@ index 90ca593d8ae3..5b2589b6b9cc 100644 2.18.4 -From 2a2c859ed2617fab75248e37e3d23b6c00ab721d Mon Sep 17 00:00:00 2001 +From dfa0f692f8dacc7e507fa01815e4fdb0e1fe4524 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Mar 2021 09:27:16 +0000 -Subject: [PATCH 561/661] ARM: dts: bcm2711: Add aliases for additional SPIs +Subject: [PATCH 561/693] ARM: dts: bcm2711: Add aliases for additional SPIs Without aliases for the new SPI interfaces in BCM2711, spidev instances will be allocated sequential numbers that may not match the number of @@ -212791,10 +212791,10 @@ index 9ab2feb4424f..9a999405ab85 100644 2.18.4 -From 1c1a0c5f7fb128992cba08a8cf7d0b4f1f6cacce Mon Sep 17 00:00:00 2001 +From bfacd6b5444c3c0ac50979794f7eb6f2d0b02023 Mon Sep 17 00:00:00 2001 From: ProBackup-nl <515451+ProBackup-nl@users.noreply.github.com> Date: Thu, 18 Mar 2021 18:21:43 +0100 -Subject: [PATCH 562/661] Make rpi poe fan less noisy in cool environments +Subject: [PATCH 562/693] Make rpi poe fan less noisy in cool environments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -212821,10 +212821,10 @@ index 544038b614e1..af812132a8f7 100644 2.18.4 -From 7b2404a72191ed8938633858aaef429f142c0141 Mon Sep 17 00:00:00 2001 +From f032e0b06bf19474dfbc8485787935a8402e2033 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Mar 2021 19:43:48 +0000 -Subject: [PATCH 563/661] vc4/drm: Fix source offsets with DRM_FORMAT_P030 +Subject: [PATCH 563/693] vc4/drm: Fix source offsets with DRM_FORMAT_P030 Spec says: bits [31:4] of the given address should point to the 128-bit word containing the desired starting pixel, @@ -212898,10 +212898,10 @@ index 3d33fe3dacea..4198eb81e62d 100644 2.18.4 -From e4f2efd69af8fe7a19842a4a00d2c5082ffe1e30 Mon Sep 17 00:00:00 2001 +From d1931ec034c9120bbc313c3c9350694625381fba Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 15 Mar 2021 13:28:06 +0000 -Subject: [PATCH 564/661] vc4/drm: vc4_plane: Remove subpixel positioning check +Subject: [PATCH 564/693] vc4/drm: vc4_plane: Remove subpixel positioning check There is little harm in ignoring fractional coordinates (they just get truncated). @@ -212966,10 +212966,10 @@ index 4198eb81e62d..5a268ac6d6fc 100644 2.18.4 -From c263ab0bead1e68a1d3c4f6781e73b070cdf4295 Mon Sep 17 00:00:00 2001 +From 961d39d3b5ce4998ae316989bcb0b102f2a62d7e Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:47:19 +0000 -Subject: [PATCH 565/661] clk-raspberrypi: Also support HEVC clock +Subject: [PATCH 565/693] clk-raspberrypi: Also support HEVC clock Signed-off-by: Dom Cobley --- @@ -212992,10 +212992,10 @@ index f4884a5b598a..94ce38a2d5aa 100644 2.18.4 -From ea04cd2270c4ee9213f7368acd14ade7fdc66dd4 Mon Sep 17 00:00:00 2001 +From 73bae49895a8f3a1b4b3e91be70f80029fcd0388 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:47:43 +0000 -Subject: [PATCH 566/661] dt: Switch hevc clock from fixed to firmware driver +Subject: [PATCH 566/693] dt: Switch hevc clock from fixed to firmware driver Signed-off-by: Dom Cobley --- @@ -213035,10 +213035,10 @@ index 0a611b31b9d4..bdd1c0e5a915 100644 2.18.4 -From 2a85c86e975c46f6b2ba843258b507651356dc50 Mon Sep 17 00:00:00 2001 +From 0413154ea790b9efb07fa4e639566f667520f2d1 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:50:50 +0000 -Subject: [PATCH 567/661] rpivid: Request maximum hevc clock +Subject: [PATCH 567/693] rpivid: Request maximum hevc clock Query maximum and minimum clock from driver and use those @@ -213092,10 +213092,10 @@ index 3b9e51ca05b3..b377c17dfb21 100644 2.18.4 -From ebadfee1e050a2414c98fd18612eb606f5fad0ae Mon Sep 17 00:00:00 2001 +From 824f2b4aa5b7d82e18fffafa9f0d5f74721f41ab Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 17 Mar 2021 12:34:57 +0000 -Subject: [PATCH 568/661] staging/bcm2835-camera: Add support for DMABUFs +Subject: [PATCH 568/693] staging/bcm2835-camera: Add support for DMABUFs DMABUFs are all handled by videobuf2, so there is no reason not to enable support for them. @@ -213135,10 +213135,10 @@ index e0a96dbb843d..7bee6e1bc69a 100644 2.18.4 -From 9f25e89aaff0dbe6c4a7fb1d3a6880ccbd6146d1 Mon Sep 17 00:00:00 2001 +From b9858f48b99c21c8822316c056bd244826922753 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2021 10:25:01 +0000 -Subject: [PATCH 569/661] staging: fbtft: Add minipitft13 variant +Subject: [PATCH 569/693] staging: fbtft: Add minipitft13 variant The Adafruit Mini-PiTFT13 display needs offsets applying when rotated, so use the "variant" mechanism to select a custom set_addr_win method @@ -213246,10 +213246,10 @@ index 3a280cc1892c..af4e975e7b30 100644 2.18.4 -From ad7301b48069e5598295ec34f924a8ff88a2fdc1 Mon Sep 17 00:00:00 2001 +From 9fa4960730b428c191ae085dd8b6f762f2261efc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Feb 2021 21:05:44 +0000 -Subject: [PATCH 570/661] overlays: Add minipitft13 overlay +Subject: [PATCH 570/693] overlays: Add minipitft13 overlay minipitft13 is an overlay for the Adafruit 1.3" 240x240 display (code 4484). @@ -213355,10 +213355,10 @@ index 000000000000..b1a0a2a41f72 2.18.4 -From f27ffe8ae362f54f26dc89604b084618870a2534 Mon Sep 17 00:00:00 2001 +From 3beebdd371cb0bf93c7c63bb789fb4df072e5759 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 3 Mar 2021 10:31:13 +0000 -Subject: [PATCH 571/661] overlays: ghost-amp: Minor tweaks +Subject: [PATCH 571/693] overlays: ghost-amp: Minor tweaks 1. Reduce the delay between RELAY1 and RELAY2 to 1000ms. 2. Rename the states to simplify LED control by an external script. @@ -213433,10 +213433,10 @@ index 3c997266a67d..f051dfb0879f 100644 2.18.4 -From 96f59c0c646cd0bf69d7db170a7f7c3b8d224410 Mon Sep 17 00:00:00 2001 +From 4cff31c8c8d69398a9c751c2ae896a6e9ad04024 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Mar 2021 12:05:06 +0100 -Subject: [PATCH 572/661] overlays: Add README entry for minipitft13 +Subject: [PATCH 572/693] overlays: Add README entry for minipitft13 Signed-off-by: Phil Elwell --- @@ -213469,10 +213469,10 @@ index d8a9ba5e9955..a5f1913d0367 100644 2.18.4 -From b70c58a074a2905f2237a6442ebd9d2b4995b365 Mon Sep 17 00:00:00 2001 +From 06d2dd4c5150704c840a7e382c327109891aa4d2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Mar 2021 10:22:30 +0100 -Subject: [PATCH 573/661] ARM: dts: update bcm2711-rpi-cm4.dts and -400 +Subject: [PATCH 573/693] ARM: dts: update bcm2711-rpi-cm4.dts and -400 Neither CM4 nor Pi 400 have appeared upstream yet, and as a result they have missed out on improvements to the Pi 4B platform. @@ -213682,10 +213682,10 @@ index 9a999405ab85..a39e5c216e63 100644 2.18.4 -From 30e1f4364b9dbb0e93ce816f275596a917d3358c Mon Sep 17 00:00:00 2001 +From d1493a5d97aca7c6ff2732983522243104bfebf5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Mar 2021 10:33:35 +0100 -Subject: [PATCH 574/661] Revert "usb: xhci: Disable the XHCI 5 second timeout" +Subject: [PATCH 574/693] Revert "usb: xhci: Disable the XHCI 5 second timeout" This reverts commit 0b387d58aacc006b3cb24415c7c62baa99edf743. --- @@ -213693,7 +213693,7 @@ This reverts commit 0b387d58aacc006b3cb24415c7c62baa99edf743. 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 2c31bfbf6b93..10547411cb44 100644 +index 494a059f2f5b..a04c4756eb74 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -196,9 +196,8 @@ int xhci_reset(struct xhci_hcd *xhci) @@ -213711,10 +213711,10 @@ index 2c31bfbf6b93..10547411cb44 100644 2.18.4 -From 4ef0071521281eddce5551f4b35dbf8c3f97caa3 Mon Sep 17 00:00:00 2001 +From 5219bbf9542b6e8aa1f50b26e9afda458938b610 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 31 Mar 2021 18:12:55 +0100 -Subject: [PATCH 575/661] vc4/drm: SQUASH: Fix source offsets with +Subject: [PATCH 575/693] vc4/drm: SQUASH: Fix source offsets with DRM_FORMAT_P030 x_off should only be within current stripe @@ -213747,10 +213747,10 @@ index 5a268ac6d6fc..dc3581470261 100644 2.18.4 -From f6db9bd40a2911a53bfff659f50b10c2e022e875 Mon Sep 17 00:00:00 2001 +From 5cf97eea7c2ea1916389d1ad1918458e5131a577 Mon Sep 17 00:00:00 2001 From: Jo Henke <37883863+jo-he@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:21:35 +0000 -Subject: [PATCH 576/661] dwc-otg: fix clang -Wignored-attributes warning +Subject: [PATCH 576/693] dwc-otg: fix clang -Wignored-attributes warning warning: attribute declaration must precede definition --- @@ -213789,10 +213789,10 @@ index 537cc237b4bc..86b4aaf977fb 100644 2.18.4 -From 40c5a3e0a12b550a4e838b2f463c0a7166589180 Mon Sep 17 00:00:00 2001 +From b6d2e526d8a2cfa983f356f1e31b5734eb2de7e8 Mon Sep 17 00:00:00 2001 From: Jo Henke <37883863+jo-he@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:38:28 +0000 -Subject: [PATCH 577/661] dwc-otg: fix clang -Wsometimes-uninitialized warning +Subject: [PATCH 577/693] dwc-otg: fix clang -Wsometimes-uninitialized warning warning: variable 'retval' is used uninitialized whenever 'if' condition is false --- @@ -213816,10 +213816,10 @@ index 799ab14b9eda..e1c1e3804095 100644 2.18.4 -From c5e12cce06358442f17e7c894667ae4f210bb212 Mon Sep 17 00:00:00 2001 +From 6e40a05bcdb905a519eccdd862054ef462aeb08e Mon Sep 17 00:00:00 2001 From: Jo Henke <37883863+jo-he@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:45:14 +0000 -Subject: [PATCH 578/661] dwc-otg: fix clang -Wpointer-bool-conversion warning +Subject: [PATCH 578/693] dwc-otg: fix clang -Wpointer-bool-conversion warning warning: address of array 'desc->wMaxPacketSize' will always evaluate to 'true' @@ -213846,10 +213846,10 @@ index 9dabbe5c9791..2ffd4f11d0bf 100644 2.18.4 -From 506c5b48d86fc4d4d78f68443102926adc32984e Mon Sep 17 00:00:00 2001 +From 7133b7044cf438dd097561ff77ca19f5e772704d Mon Sep 17 00:00:00 2001 From: paul-1 <6473457+paul-1@users.noreply.github.com> Date: Fri, 2 Apr 2021 10:56:19 -0400 -Subject: [PATCH 579/661] Update Allo Piano Dac Driver +Subject: [PATCH 579/693] Update Allo Piano Dac Driver Add unique names to the individual dac coded drivers Remove some of the codec controls that are not used. @@ -214129,151 +214129,10 @@ index 0e04c4739858..fd0fe58421b0 100644 2.18.4 -From 783f812165a241570d2a95a0aaa5096fe6487175 Mon Sep 17 00:00:00 2001 -From: Annaliese McDermond -Date: Mon, 29 Mar 2021 20:10:49 +0000 -Subject: [PATCH 580/661] sc16is7xx: Defer probe if device read fails - -Commit 158e800e0fde upstream - -A test was added to the probe function to ensure the device was -actually connected and working before successfully completing a -probe. If the device was actually there, but the I2C bus was not -ready yet for whatever reason, the probe fails permanently. - -Change the probe so that we defer the probe on a regmap read -failure so that we try the probe again when the dependent drivers -are potentially loaded. This should not affect the case where the -device truly isn't present because the probe will never successfully -complete. - -Fixes: 2aa916e67db3 ("sc16is7xx: Read the LSR register for basic device presence check") -Cc: stable@vger.kernel.org -Signed-off-by: Annaliese McDermond -Link: https://lore.kernel.org/r/010101787f9c3fd8-c1815c00-2d6b-4c85-a96a-a13e68597fda-000000@us-west-2.amazonses.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/tty/serial/sc16is7xx.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c -index f6ce041d0c3d..8e3b83fac33c 100644 ---- a/drivers/tty/serial/sc16is7xx.c -+++ b/drivers/tty/serial/sc16is7xx.c -@@ -1204,7 +1204,7 @@ static int sc16is7xx_probe(struct device *dev, - ret = regmap_read(regmap, - SC16IS7XX_LSR_REG << SC16IS7XX_REG_SHIFT, &val); - if (ret < 0) -- return ret; -+ return -EPROBE_DEFER; - - /* Alloc port structure */ - s = devm_kzalloc(dev, struct_size(s, p, devtype->nr_uart), GFP_KERNEL); --- -2.18.4 - - -From 553f10560a8ef296c0fa28cd3a76dfdb9adc781f Mon Sep 17 00:00:00 2001 -From: Annaliese McDermond -Date: Wed, 31 Mar 2021 18:21:38 +0000 -Subject: [PATCH 581/661] ASoC: tlv320aic32x4: Register clocks before - registering component - -Commit 1ca1156cfd69 upstream - -Clock registration must be performed before the component is -registered. aic32x4_component_probe attempts to get all the -clocks right off the bat. If the component is registered before -the clocks there is a race condition where the clocks may not -be registered by the time aic32x4_componet_probe actually runs. - -Fixes: d1c859d314d8 ("ASoC: codec: tlv3204: Increased maximum supported channels") -Cc: stable@vger.kernel.org -Signed-off-by: Annaliese McDermond -Link: https://lore.kernel.org/r/0101017889850206-dcac4cce-8cc8-4a21-80e9-4e4bef44b981-000000@us-west-2.amazonses.com -Signed-off-by: Mark Brown ---- - sound/soc/codecs/tlv320aic32x4.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c -index 9e3de9ded0ef..e0dbedb88e50 100644 ---- a/sound/soc/codecs/tlv320aic32x4.c -+++ b/sound/soc/codecs/tlv320aic32x4.c -@@ -1243,6 +1243,10 @@ int aic32x4_probe(struct device *dev, struct regmap *regmap) - if (ret) - goto err_disable_regulators; - -+ ret = aic32x4_register_clocks(dev, aic32x4->mclk_name); -+ if (ret) -+ goto err_disable_regulators; -+ - ret = devm_snd_soc_register_component(dev, - &soc_component_dev_aic32x4, &aic32x4_dai, 1); - if (ret) { -@@ -1250,10 +1254,6 @@ int aic32x4_probe(struct device *dev, struct regmap *regmap) - goto err_disable_regulators; - } - -- ret = aic32x4_register_clocks(dev, aic32x4->mclk_name); -- if (ret) -- goto err_disable_regulators; -- - return 0; - - err_disable_regulators: --- -2.18.4 - - -From 80f0992f37f83bd63365e0c185526541e03fb81f Mon Sep 17 00:00:00 2001 -From: Annaliese McDermond -Date: Wed, 31 Mar 2021 18:21:45 +0000 -Subject: [PATCH 582/661] ASoC: tlv320aic32x4: Increase maximum register in - regmap - -Commit 29654ed8384e upstream - -AIC32X4_REFPOWERUP was added as a register, but the maximum register value -in the regmap and regmap range was not correspondingly increased. This -caused an error when this register was attempted to be written. - -Fixes: ec96690de82c ("ASoC: tlv320aic32x4: Enable fast charge") -Cc: stable@vger.kernel.org -Signed-off-by: Annaliese McDermond -Link: https://lore.kernel.org/r/0101017889851cab-ce60cfdb-d88c-43d8-bbd2-7fbf34a0c912-000000@us-west-2.amazonses.com -Signed-off-by: Mark Brown ---- - sound/soc/codecs/tlv320aic32x4.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c -index e0dbedb88e50..b8950758471f 100644 ---- a/sound/soc/codecs/tlv320aic32x4.c -+++ b/sound/soc/codecs/tlv320aic32x4.c -@@ -577,12 +577,12 @@ static const struct regmap_range_cfg aic32x4_regmap_pages[] = { - .window_start = 0, - .window_len = 128, - .range_min = 0, -- .range_max = AIC32X4_RMICPGAVOL, -+ .range_max = AIC32X4_REFPOWERUP, - }, - }; - - const struct regmap_config aic32x4_regmap_config = { -- .max_register = AIC32X4_RMICPGAVOL, -+ .max_register = AIC32X4_REFPOWERUP, - .ranges = aic32x4_regmap_pages, - .num_ranges = ARRAY_SIZE(aic32x4_regmap_pages), - }; --- -2.18.4 - - -From d53467901217bb3488ba14d25c5f8cc9638ba9eb Mon Sep 17 00:00:00 2001 +From f6c0002a68a3ac08a583e4b6c4012be3bfd5438d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 19 Mar 2021 11:21:41 +0100 -Subject: [PATCH 583/661] drm/connector: Create a helper to attach the +Subject: [PATCH 580/693] drm/connector: Create a helper to attach the hdr_output_metadata property All the drivers that implement HDR output call pretty much the same @@ -214293,10 +214152,10 @@ Signed-off-by: Maxime Ripard 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -index 3562dac4b55f..fbff8c72f711 100644 +index ccd199c47524..30d7419be95e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -@@ -6481,9 +6481,7 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm, +@@ -6507,9 +6507,7 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm, if (connector_type == DRM_MODE_CONNECTOR_HDMIA || connector_type == DRM_MODE_CONNECTOR_DisplayPort || connector_type == DRM_MODE_CONNECTOR_eDP) { @@ -214383,10 +214242,10 @@ index 928136556174..7954234b7fdc 100644 2.18.4 -From 6eb74ee6f09628f4f1ff3579fd8c65ac8413cdd8 Mon Sep 17 00:00:00 2001 +From 2c8d6d21a0066e4dceae9de86bc8f1b520470827 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 19 Mar 2021 13:05:53 +0100 -Subject: [PATCH 584/661] drm/connector: Add helper to compare HDR metadata +Subject: [PATCH 581/693] drm/connector: Add helper to compare HDR metadata All the drivers that support the HDR metadata property have a similar function to compare the metadata from one connector state to the next, @@ -214405,10 +214264,10 @@ Signed-off-by: Maxime Ripard 5 files changed, 33 insertions(+), 48 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -index fbff8c72f711..9b749fa827a4 100644 +index 30d7419be95e..6b726b074567 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -@@ -5429,25 +5429,6 @@ static int fill_hdr_info_packet(const struct drm_connector_state *state, +@@ -5455,25 +5455,6 @@ static int fill_hdr_info_packet(const struct drm_connector_state *state, return 0; } @@ -214434,7 +214293,7 @@ index fbff8c72f711..9b749fa827a4 100644 static int amdgpu_dm_connector_atomic_check(struct drm_connector *conn, struct drm_atomic_state *state) -@@ -5463,7 +5444,7 @@ amdgpu_dm_connector_atomic_check(struct drm_connector *conn, +@@ -5489,7 +5470,7 @@ amdgpu_dm_connector_atomic_check(struct drm_connector *conn, if (!crtc) return 0; @@ -214565,10 +214424,10 @@ index 7954234b7fdc..ca94c7ae20eb 100644 2.18.4 -From 459562d418e7caee7eb0d9e2033fd5a304ce11f4 Mon Sep 17 00:00:00 2001 +From a464927bc1b69588ad9b12516e5979be53777360 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 9 Apr 2021 17:31:55 +0200 -Subject: [PATCH 585/661] drm/vc4: Use the new helpers +Subject: [PATCH 582/693] drm/vc4: Use the new helpers We just introduced new helpers, so let's use them. @@ -214633,10 +214492,10 @@ index f9eb6a557a4d..507eff98cc36 100644 2.18.4 -From f1b59f735159a1dbf11731bda07de51725cbd31e Mon Sep 17 00:00:00 2001 +From 5f99ae8b1a96b090e185ec0d482a7dc72e810ab7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 9 Apr 2021 17:07:32 +0200 -Subject: [PATCH 586/661] drm/connector: Add a helper to attach the colorspace +Subject: [PATCH 583/693] drm/connector: Add a helper to attach the colorspace property The intel driver uses the same logic to attach the Colorspace property @@ -214709,10 +214568,10 @@ index ca94c7ae20eb..42cbacd1acb5 100644 2.18.4 -From 5da766565b18acd6a497a87ebc52035b1fdfa37e Mon Sep 17 00:00:00 2001 +From a84a7c01a359649ccdbc2196282559aa426a3e14 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 9 Apr 2021 17:16:42 +0200 -Subject: [PATCH 587/661] drm/vc4: hdmi: Signal the proper colorimetry info in +Subject: [PATCH 584/693] drm/vc4: hdmi: Signal the proper colorimetry info in the infoframe Our driver while supporting HDR didn't send the proper colorimetry info @@ -214765,10 +214624,10 @@ index 507eff98cc36..2816a1d3ee24 100644 2.18.4 -From 168710248c100701c50f735677d6dc7f26ade400 Mon Sep 17 00:00:00 2001 +From 2de738c1a99318c077c57957d96ce88965d2f968 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 4 Nov 2020 18:54:20 +0000 -Subject: [PATCH 588/661] staging: vcsm-cma: Fix memory leak from not detaching +Subject: [PATCH 585/693] staging: vcsm-cma: Fix memory leak from not detaching dmabuf When importing there was a missing call to detach the buffer, @@ -214848,10 +214707,10 @@ index 40ce67f06fac..88c4df822922 100644 2.18.4 -From a8a620f15d93e025e36c52e895974932ab13e113 Mon Sep 17 00:00:00 2001 +From 28f3c1509bac7d80b311dbb8d5d0f59189418157 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 12 Apr 2021 17:27:43 +0100 -Subject: [PATCH 589/661] vc4/kms: vc4_plane: Support 2020 colourspace for yuv +Subject: [PATCH 586/693] vc4/kms: vc4_plane: Support 2020 colourspace for yuv planes https://gist.github.com/popcornmix/6b3e23103c60170b02b148e0ba5d6ed7 @@ -214961,10 +214820,10 @@ index 78fd28599aeb..7538b84a6dca 100644 2.18.4 -From c75e6aa78c1074422448a75ee80d8d9baee849f3 Mon Sep 17 00:00:00 2001 +From 0a3ba6df27039711e753a8a5435c6a80bcc19b60 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 15 Apr 2021 13:15:14 +0100 -Subject: [PATCH 590/661] sound/usb: add device quirks for A4Tech FHD 1080p +Subject: [PATCH 587/693] sound/usb: add device quirks for A4Tech FHD 1080p webcams These devices use a type of Sonix chipset that produces broken microphone @@ -214979,7 +214838,7 @@ Signed-off-by: Jonathan Bell 2 files changed, 10 insertions(+) diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h -index 3c1697f6b60c..02dbbda0b1e8 100644 +index 5728bf722c88..18e5cec82bc2 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h @@ -46,6 +46,15 @@ @@ -214999,10 +214858,10 @@ index 3c1697f6b60c..02dbbda0b1e8 100644 /* Creative BT-D1 */ USB_DEVICE(0x041e, 0x0005), diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c -index 5ab2a4580bfb..065ef7c6e67c 100644 +index bddef8ad5778..23ce3ce3928a 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -1522,6 +1522,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip) +@@ -1530,6 +1530,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip) case USB_ID(0x2912, 0x30c8): /* Audioengine D1 */ case USB_ID(0x413c, 0xa506): /* Dell AE515 sound bar */ case USB_ID(0x046d, 0x084c): /* Logitech ConferenceCam Connect */ @@ -215014,10 +214873,10 @@ index 5ab2a4580bfb..065ef7c6e67c 100644 2.18.4 -From 2e8d2b97a2d50b46af43f7d65745976544d7a551 Mon Sep 17 00:00:00 2001 +From bc6a61d9068afcbffcb29d8cc650131a580d8e61 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 16 Apr 2021 11:40:23 +0100 -Subject: [PATCH 591/661] sound/usb: call usb_autopm_get_interface() for +Subject: [PATCH 588/693] sound/usb: call usb_autopm_get_interface() for devices that should not be suspended Webcams with microphones are composite devices, and autosuspend is set @@ -215034,10 +214893,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 5 insertions(+) diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c -index 065ef7c6e67c..3f9ecc709705 100644 +index 23ce3ce3928a..4e90c99c62c2 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -523,6 +523,11 @@ static int setup_disable_autosuspend(struct snd_usb_audio *chip, +@@ -531,6 +531,11 @@ static int setup_disable_autosuspend(struct snd_usb_audio *chip, struct usb_driver *driver, const struct snd_usb_audio_quirk *quirk) { @@ -215053,10 +214912,10 @@ index 065ef7c6e67c..3f9ecc709705 100644 2.18.4 -From 4bb70d7cd49cb96fa1daefa7e1ebe71ccb089326 Mon Sep 17 00:00:00 2001 +From cbcb6aff3cf5b0c98e24107b2faabd93a2230968 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 16 Apr 2021 09:31:17 +0100 -Subject: [PATCH 592/661] overlays: ghost-amp: Add DAC mute control +Subject: [PATCH 589/693] overlays: ghost-amp: Add DAC mute control Signed-off-by: Phil Elwell --- @@ -215145,10 +215004,10 @@ index f051dfb0879f..dbedb4b76c74 100644 2.18.4 -From 25624c7f7cc52471afe3c59e1958cf00c94a998c Mon Sep 17 00:00:00 2001 +From 4834dc63ac9163e4e54adb3bcab929bd24882b5a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 13 Apr 2021 11:00:01 +0200 -Subject: [PATCH 593/661] clk: Introduce a clock request API +Subject: [PATCH 590/693] clk: Introduce a clock request API It's not unusual to find clocks being shared across multiple devices that need to change the rate depending on what the device is doing at a @@ -215437,10 +215296,10 @@ index 7fd6a1febcf4..ab53a0873c8d 100644 2.18.4 -From c50575130b7725fb181a20f8eb7a7d809735e9e9 Mon Sep 17 00:00:00 2001 +From 1b672c70bd45e1da3c5399ca3871944c107057d5 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 13 Apr 2021 11:55:55 +0200 -Subject: [PATCH 594/661] drm/vc4: hdmi: Convert to the new clock request API +Subject: [PATCH 591/693] drm/vc4: hdmi: Convert to the new clock request API The new clock request API allows us to increase the rate of the HSM clock to match our pixel rate requirements while decreasing it when @@ -215522,10 +215381,10 @@ index 33b5f120bbeb..11a4b737d0ab 100644 2.18.4 -From 62c1611d4bf14d5d1c383387e377b515e0dfe51f Mon Sep 17 00:00:00 2001 +From b94327e6476eb0913f44e13f066e2acfc4270d1c Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 13 Apr 2021 14:10:03 +0100 -Subject: [PATCH 595/661] drm/vc4: hdmi: Convert to the new clock request API +Subject: [PATCH 592/693] drm/vc4: hdmi: Convert to the new clock request API The new clock request API allows us to increase the rate of the core clock as required during mode set while decreasing it when @@ -215570,10 +215429,10 @@ index 5d0974cdeaaa..48e3dc11c493 100644 2.18.4 -From 3652cdb4c994aaa641c9390245dbc240c8df278f Mon Sep 17 00:00:00 2001 +From 60357ea66e38939bb8691258e653108e6401b12e Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 13 Apr 2021 16:48:35 +0100 -Subject: [PATCH 596/661] bcm2835-unicam: Switch to new clock api +Subject: [PATCH 593/693] bcm2835-unicam: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -215629,10 +215488,10 @@ index 234f0eaf9c8c..0d737e0c7f52 100644 2.18.4 -From db23165938d5ed95e53b4f3a8f2aace36c28dc8d Mon Sep 17 00:00:00 2001 +From 8059b2c2b1d329e346a68ea9646cc0dc7f50f09e Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 19 Apr 2021 19:30:26 +0100 -Subject: [PATCH 597/661] rpivid: Switch to new clock api +Subject: [PATCH 594/693] rpivid: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -215691,10 +215550,10 @@ index b377c17dfb21..def891a86e55 100644 2.18.4 -From 0705a4720a0bf74fcefce96ad151f81689315bae Mon Sep 17 00:00:00 2001 +From b36b819378d6e4a660cc216968f0bd9d998ee00e Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Mon, 2 Nov 2020 11:45:04 +0000 -Subject: [PATCH 598/661] net: usb: r8152: Provide missing documentation for +Subject: [PATCH 595/693] net: usb: r8152: Provide missing documentation for some struct members commit 34e653efb602e0651867fb5ab14369b555a61dcd upstream. @@ -215769,10 +215628,10 @@ index f5010f8ac1ec..e14771001aad 100644 2.18.4 -From 6689dc4261ad8d2eb0186a92c2e423b213bcb5fb Mon Sep 17 00:00:00 2001 +From 05972f6ec97eef7bfda3993564858899436f1932 Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Mon, 2 Nov 2020 11:45:09 +0000 -Subject: [PATCH 599/661] net: usb: r8152: Fix a couple of spelling errors in +Subject: [PATCH 596/693] net: usb: r8152: Fix a couple of spelling errors in fw_phy_nc's docs commit 9f07814d01ad085b2d9f1d55b4ce532fb2c27110 upstream. @@ -215809,10 +215668,10 @@ index e14771001aad..a07cede5c69c 100644 2.18.4 -From 82c23b5bfbf4e6bdd2926e284699d8ed138be701 Mon Sep 17 00:00:00 2001 +From 39547b84228c14997e5a12e2ad0214e64606da0a Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Wed, 4 Nov 2020 10:19:22 +0800 -Subject: [PATCH 600/661] net/usb/r8153_ecm: support ECM mode for RTL8153 +Subject: [PATCH 597/693] net/usb/r8153_ecm: support ECM mode for RTL8153 commit c1aedf015ebdd0232757a66e2daccf1246bd609c upstream. @@ -216143,10 +216002,10 @@ index 000000000000..20d88b1defc3 2.18.4 -From d3052f7fdc9edf59cf26c462c42059211f439007 Mon Sep 17 00:00:00 2001 +From 2f0be200f4eca77e86afc8e24928f5c7b5139055 Mon Sep 17 00:00:00 2001 From: Emil Renner Berthing Date: Sun, 31 Jan 2021 00:47:29 +0100 -Subject: [PATCH 601/661] net: usb: r8152: use new tasklet API +Subject: [PATCH 598/693] net: usb: r8152: use new tasklet API commit f3163f1cb87141c7a41a15a5d4c98b353f807b04 upstream. @@ -216190,10 +216049,10 @@ index 390d9e1fa7fe..4770167ade91 100644 2.18.4 -From 2bae59d30ddb1320d02b76c349a701bf62dc8185 Mon Sep 17 00:00:00 2001 +From b990ab69f6f2bb4f51fd1519fa05cf43310896a8 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Wed, 3 Feb 2021 17:14:28 +0800 -Subject: [PATCH 602/661] r8152: replace several functions about phy patch +Subject: [PATCH 599/693] r8152: replace several functions about phy patch request commit a08c0d309d8c078d22717d815cf9853f6f2c07bd upstream. @@ -216394,10 +216253,10 @@ index 4770167ade91..cd413ecb493c 100644 2.18.4 -From c24a163a5a5b8e7fe2b3951fa6e81e6aaa21ef73 Mon Sep 17 00:00:00 2001 +From b16964db7838b75fc5e95e57d181bcfcf69617c3 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Wed, 3 Feb 2021 17:14:29 +0800 -Subject: [PATCH 603/661] r8152: adjust the flow of power cut for RTL8153B +Subject: [PATCH 600/693] r8152: adjust the flow of power cut for RTL8153B commit 80fd850b31f09263ad175b2f640d5c5c6f76ed41 upstream. @@ -216534,10 +216393,10 @@ index cd413ecb493c..779176c9b13b 100644 2.18.4 -From 6c1b4b48308c2de1298434ae889670fc93fda27c Mon Sep 17 00:00:00 2001 +From d72cf86bb761604a0b4b47f9ced55c31de5ea7ee Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:40 +0800 -Subject: [PATCH 604/661] r8152: enable U1/U2 for USB_SPEED_SUPER +Subject: [PATCH 601/693] r8152: enable U1/U2 for USB_SPEED_SUPER commit 7a0ae61acde2cebd69665837170405eced86a6c7 upstream. @@ -216587,10 +216446,10 @@ index 779176c9b13b..b59958950339 100644 2.18.4 -From 6ca76180797963dbbf906bf6b93dd774a24f911d Mon Sep 17 00:00:00 2001 +From 6cc8485e758239570bffa3eb553e8664c766c225 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:41 +0800 -Subject: [PATCH 605/661] r8152: check if the pointer of the function exists +Subject: [PATCH 602/693] r8152: check if the pointer of the function exists commit c79515e47935c747282c6ed2ee5b2ef039756eeb upstream. @@ -216644,10 +216503,10 @@ index b59958950339..a1990525e849 100644 2.18.4 -From dfff00a8bf8f90c59b754dfeb717b71748f7b5ae Mon Sep 17 00:00:00 2001 +From fb5b4bece42d622459ddd9aa48fb2d913dd2557d Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:42 +0800 -Subject: [PATCH 606/661] r8152: replace netif_err with dev_err +Subject: [PATCH 603/693] r8152: replace netif_err with dev_err commit 156c3207611262266f0eea589ac3f00c5657320e upstream. @@ -216686,10 +216545,10 @@ index a1990525e849..8a479eb6ddea 100644 2.18.4 -From 8bf01f9c04f8ff61d5df58d7204c18bffc82b51a Mon Sep 17 00:00:00 2001 +From c00c25ae0a81fae9d1ce1bc5d02f84d56f52321e Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:43 +0800 -Subject: [PATCH 607/661] r8152: spilt rtl_set_eee_plus and r8153b_green_en +Subject: [PATCH 604/693] r8152: spilt rtl_set_eee_plus and r8153b_green_en commit 40fa7568ac230446d888b7ad402cff9e20fe3ad5 upstream. @@ -216781,10 +216640,10 @@ index 8a479eb6ddea..20fb5638ac65 100644 2.18.4 -From 32b26f73f7cb57e7a9285044068499a48a16895b Mon Sep 17 00:00:00 2001 +From 74634791621885c6c1f8989c6660aff3b80b385a Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:32 +0800 -Subject: [PATCH 608/661] r8152: set inter fram gap time depending on speed +Subject: [PATCH 605/693] r8152: set inter fram gap time depending on speed commit 5133bcc7481528e36fff0a3b056601efb704fb32 upstream. @@ -216862,10 +216721,10 @@ index 20fb5638ac65..10db48f4ed77 100644 2.18.4 -From fece7fdd2f70f1415dd3619729b14f61cfe6a4d2 Mon Sep 17 00:00:00 2001 +From 784e0846024d1ee66da23a8518043112a1bf66db Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:33 +0800 -Subject: [PATCH 609/661] r8152: adjust rtl8152_check_firmware function +Subject: [PATCH 606/693] r8152: adjust rtl8152_check_firmware function commit a8a7be178e81a3d4b6972cbeb0ccd091ca2f9f89 upstream. @@ -217020,10 +216879,10 @@ index 10db48f4ed77..28c9b4dc1a60 100644 2.18.4 -From 0af5b09511daa171dfc2305161dba4215d5c80c4 Mon Sep 17 00:00:00 2001 +From 54d8dcfb2f9809ace74fe3660757a792023d6a09 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:34 +0800 -Subject: [PATCH 610/661] r8152: add help function to change mtu +Subject: [PATCH 607/693] r8152: add help function to change mtu commit 67ce1a806f164e59a074fea8809725d3411eaa20 upstream. @@ -217183,10 +217042,10 @@ index 28c9b4dc1a60..3f465242a4f0 100644 2.18.4 -From eb672651da818d2be3e6aaa006aaf15467f5457b Mon Sep 17 00:00:00 2001 +From 13ab51eb2a3d5fe37d8ad113219a035e3fbe0e6c Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:35 +0800 -Subject: [PATCH 611/661] r8152: support new chips +Subject: [PATCH 608/693] r8152: support new chips commit 195aae321c829dd1945900d75561e6aa79cce208 upstream. @@ -220572,10 +220431,10 @@ index 3f465242a4f0..72b8ef0ad5a1 100644 2.18.4 -From 5c80ec1c729ec50288984f653c986a036b9eba4e Mon Sep 17 00:00:00 2001 +From 2e9e047dec48a847558967921f5792660c2b43bd Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:36 +0800 -Subject: [PATCH 612/661] r8152: support PHY firmware for RTL8156 series +Subject: [PATCH 609/693] r8152: support PHY firmware for RTL8156 series commit 4a51b0e8a0143b0e83d51d9c58c6416c3818a9f2 upstream. @@ -221269,10 +221128,10 @@ index 72b8ef0ad5a1..34c1ee61af01 100644 2.18.4 -From 6cec5a0d9576f5fdee7e1129e692457c80eac5eb Mon Sep 17 00:00:00 2001 +From e01e9ec9c2ce4a3a6f8a07a892e6b9ceeac622f8 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:37 +0800 -Subject: [PATCH 613/661] r8152: search the configuration of vendor mode +Subject: [PATCH 610/693] r8152: search the configuration of vendor mode commit c2198943e33b100ed21dfb636c8fa6baef841e9d upstream. @@ -221354,10 +221213,10 @@ index 34c1ee61af01..9119a860e9bd 100644 2.18.4 -From b503b7e132588cd915e84109f0ab342ed13b49e9 Mon Sep 17 00:00:00 2001 +From 3a95a42cf40423bcfb3419f49162ef004606c18a Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 20 Apr 2021 13:34:18 +0100 -Subject: [PATCH 614/661] rpivid: Only clk_request_done once +Subject: [PATCH 611/693] rpivid: Only clk_request_done once Fixes: 25486f49bfe2e3ae13b90478d1eebd91413136ad Signed-off-by: Dom Cobley @@ -221386,10 +221245,10 @@ index def891a86e55..37c8f62649d6 100644 2.18.4 -From dea885e2bc2aa3d7aef62eabc7465025fe83fee6 Mon Sep 17 00:00:00 2001 +From 4009115f8686944bae96fbb5b60bfcc06e568570 Mon Sep 17 00:00:00 2001 From: wangzx <593074943@qq.com> Date: Tue, 20 Apr 2021 22:33:26 +0800 -Subject: [PATCH 615/661] dwc_otg: fix an undeclared variable Replace an +Subject: [PATCH 612/693] dwc_otg: fix an undeclared variable Replace an undeclared variable used by DWC_DEBUGPL with the real endpoint address. DWC_DEBUGPL does nothing with DEBUG undefined so it did not go wrong before. Signed-off-by: Zixuan Wang @@ -221416,10 +221275,10 @@ index 50c8705185ad..2ee27450c6f6 100644 2.18.4 -From 35a4d639212b6764639a3afa8f9e4de2f67cacea Mon Sep 17 00:00:00 2001 +From cbfb73b683c7f3266f1ab5ab116fb1ab797ce23b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:40:51 +0000 -Subject: [PATCH 616/661] Revert "drm/vc4: Add configuration for BCM2711 DSI1." +Subject: [PATCH 613/693] Revert "drm/vc4: Add configuration for BCM2711 DSI1." This reverts commit 10faa28e1474e6cf33cb0809d2a6d5b7a8351a28. @@ -221461,10 +221320,10 @@ index bac5e07c05de..ce4db68827c8 100644 2.18.4 -From 361868b872bb251d5fda9b30e2fb75f9690c262b Mon Sep 17 00:00:00 2001 +From 17c54e728c19667f6f14fc104b6c85a5e9e22c56 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:46:23 +0000 -Subject: [PATCH 617/661] Revert "drm/vc4: Add support for DSI0" +Subject: [PATCH 614/693] Revert "drm/vc4: Add support for DSI0" This reverts commit d704a3c965783ed51476031206b2120676418672. @@ -221540,10 +221399,10 @@ index ce4db68827c8..2646a6dbf584 100644 2.18.4 -From 23ebf38c473ddfb8c5bc469929ba930acc8b3097 Mon Sep 17 00:00:00 2001 +From 498f1a3f0705bb1eaa8a8f8aeb832829223ef2ca Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 3 Dec 2020 14:25:36 +0100 -Subject: [PATCH 618/661] drm/vc4: drv: Remove the DSI pointer in vc4_drv +Subject: [PATCH 615/693] drm/vc4: drv: Remove the DSI pointer in vc4_drv Commit 51f4fcd9c4ea867c3b4fe58111f342ad0e80642a upstream. @@ -221614,10 +221473,10 @@ index 2646a6dbf584..8c413d21f752 100644 2.18.4 -From d21d9f8b97ad41398fff9d8b50687cc4535863ba Mon Sep 17 00:00:00 2001 +From ee625c276f990f9e77c2405cb2aa2ddfd3304011 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 3 Dec 2020 14:25:38 +0100 -Subject: [PATCH 619/661] drm/vc4: dsi: Use snprintf for the PHY clocks instead +Subject: [PATCH 616/693] drm/vc4: dsi: Use snprintf for the PHY clocks instead of an array Commit dc0bf36401e891c853e0a25baeb4e0b4e6f3626d upstream. @@ -221686,10 +221545,10 @@ index 8c413d21f752..2727ad61989f 100644 2.18.4 -From 6dcee514499c4f0fd8ac06d53e9cbd4f3a7503ba Mon Sep 17 00:00:00 2001 +From 447800bf76683690b6787b9401b0d8c342a9f315 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 3 Dec 2020 14:25:39 +0100 -Subject: [PATCH 620/661] drm/vc4: dsi: Introduce a variant structure +Subject: [PATCH 617/693] drm/vc4: dsi: Introduce a variant structure Commit d1d195ce26a14ec0a87816c09ae514e1c40e97f7 upstream. @@ -221883,10 +221742,10 @@ index 2727ad61989f..ea4cd8284454 100644 2.18.4 -From 5f51ec3dfb5285e8d9083ab6d88f51abd86b8b2d Mon Sep 17 00:00:00 2001 +From b4cb78151f515435f66aa463b5e4593cff5c30ea Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Dec 2020 14:25:40 +0100 -Subject: [PATCH 621/661] drm/vc4: dsi: Add support for DSI0 +Subject: [PATCH 618/693] drm/vc4: dsi: Add support for DSI0 Commit 4b265fe11fad4234b12d92dd8091f9aa0c878eea upstream. @@ -221933,10 +221792,10 @@ index ea4cd8284454..c2ed98013f9d 100644 2.18.4 -From 468e9e6cbc2f52d9059b9f10f913b2c075e93d4c Mon Sep 17 00:00:00 2001 +From 1e65b07cdd35282e1ef6b3c99f55ef7c1b2ae835 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Dec 2020 14:25:42 +0100 -Subject: [PATCH 622/661] drm/vc4: dsi: Add configuration for BCM2711 DSI1 +Subject: [PATCH 619/693] drm/vc4: dsi: Add configuration for BCM2711 DSI1 Commit d0666be8ef9e8e65d4b7fabc1606ec51f61384c0 upstream. @@ -221992,10 +221851,10 @@ index c2ed98013f9d..6dfcbd9e234e 100644 2.18.4 -From 1037305bc6b965a6cd6b56e54839674cc6e0080b Mon Sep 17 00:00:00 2001 +From bf4fbd60600c004b99bbe7a4c88cc4feac89d6d7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Feb 2021 18:37:04 +0000 -Subject: [PATCH 623/661] drm/vc4: Correct pixel order for DSI0 +Subject: [PATCH 620/693] drm/vc4: Correct pixel order for DSI0 For slightly unknown reasons, dsi0 takes a different pixel format to dsi1, and that has to be set in the pixel valve. @@ -222025,10 +221884,10 @@ index 339567dd015c..bee11bb2cbf5 100644 2.18.4 -From 393ca387d3748c48245c6cab330ac785c0dc86a7 Mon Sep 17 00:00:00 2001 +From 29aa28c1a64a44fefcd0a35c901986b89e51bc8a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:22:01 +0000 -Subject: [PATCH 624/661] drm/vc4: Register dsi0 as the correct vc4 encoder +Subject: [PATCH 621/693] drm/vc4: Register dsi0 as the correct vc4 encoder type vc4_dsi was registering both dsi0 and dsi1 as VC4_ENCODER_TYPE_DSI1 @@ -222060,10 +221919,10 @@ index 6dfcbd9e234e..053930eaa48f 100644 2.18.4 -From 509ca1479387d4f733de2d96e7c5baab8f3cd8f6 Mon Sep 17 00:00:00 2001 +From 974cfac7b4d0755ab897e25c03a4c8575988204f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Feb 2021 18:46:22 +0000 -Subject: [PATCH 625/661] drm/vc4: Fix dsi0 interrupt support. +Subject: [PATCH 622/693] drm/vc4: Fix dsi0 interrupt support. DSI0 seemingly had very little or no testing as a load of the register mappings were incorrect/missing, so host @@ -222254,10 +222113,10 @@ index 053930eaa48f..fb0efc67d31d 100644 2.18.4 -From fe0267044aafaae2d42ee68db99484307f449fa3 Mon Sep 17 00:00:00 2001 +From 6f7b8615d1d3e8f18194d792fde7915b819a7943 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 16:18:16 +0100 -Subject: [PATCH 626/661] drm/vc4: Add correct stop condition to +Subject: [PATCH 623/693] drm/vc4: Add correct stop condition to vc4_dsi_encoder_disable iteration vc4_dsi_encoder_disable is partially an open coded version of @@ -222290,10 +222149,10 @@ index fb0efc67d31d..9861e2d2c05d 100644 2.18.4 -From 23169310a067d23970c1334a102911ce09722f29 Mon Sep 17 00:00:00 2001 +From 6b4ae8fd1852525f5a7c7978292bfb712f2ab864 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 16:30:55 +0000 -Subject: [PATCH 627/661] drm/atomic: Don't fixup modes that haven't been reset +Subject: [PATCH 624/693] drm/atomic: Don't fixup modes that haven't been reset Signed-off-by: Dave Stevenson --- @@ -222320,10 +222179,10 @@ index 134d3000fb18..172144627c59 100644 2.18.4 -From 5a1997af8a41dcc921d7ec34b9732bf332cdede4 Mon Sep 17 00:00:00 2001 +From 0fb10abfe0ea2873960b28b1eac75bec57831529 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 17:30:35 +0100 -Subject: [PATCH 628/661] drm/panel: jdi-lt070me05000: Use +Subject: [PATCH 625/693] drm/panel: jdi-lt070me05000: Use gpiod_set_value_cansleep There is no reason why the control GPIOs for the panel can not @@ -222393,10 +222252,10 @@ index 733010b5e4f5..7fb4d98e166d 100644 2.18.4 -From 050a238cd93a100fc65220119b412b29f160a7dd Mon Sep 17 00:00:00 2001 +From 9e77a3856784cc5b9a235b7e79a50a75e76df99b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 18:09:56 +0100 -Subject: [PATCH 629/661] defconfigs: Add PANEL_JDI_LT070ME05000 DSI panel +Subject: [PATCH 626/693] defconfigs: Add PANEL_JDI_LT070ME05000 DSI panel Used by the 2013 Nexus 7" tablet, and working via an adapter board on Compute Modules. @@ -222474,10 +222333,10 @@ index 584e82f7de99..ff857505902b 100644 2.18.4 -From 8d8dcdadf04ab941e5db6465088a6b7beb322265 Mon Sep 17 00:00:00 2001 +From 133547db15b7a3b0e5a6496e14a52a2ca351f74a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 16:46:34 +0100 -Subject: [PATCH 630/661] dtoverlays: Add overlays for JDI LT070ME05000 +Subject: [PATCH 627/693] dtoverlays: Add overlays for JDI LT070ME05000 1200x1920 DSI panel Credit to forum member gizmomouse on @@ -222704,10 +222563,10 @@ index 000000000000..5dcd0f2243e2 2.18.4 -From 94b8afbb5c408471de1c2bb79126b377938f6cc2 Mon Sep 17 00:00:00 2001 +From eaa3e32a6ce23cd4378080ba6b35984057f2f538 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 21 Apr 2021 12:14:44 +0200 -Subject: [PATCH 631/661] clk: requests: Ignore if the pointer is null +Subject: [PATCH 628/693] clk: requests: Ignore if the pointer is null Signed-off-by: Maxime Ripard --- @@ -222732,10 +222591,10 @@ index 031627757b11..af0f638d1769 100644 2.18.4 -From 27609635d4ead043f9a60c6d3ec26016c11a0a83 Mon Sep 17 00:00:00 2001 +From 0eaf270865f90d339a33c55ceca0ffb1ba26c9e8 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 16 Mar 2021 13:42:01 +0100 -Subject: [PATCH 632/661] drm/vc4: txp: Properly set the possible_crtcs mask +Subject: [PATCH 629/693] drm/vc4: txp: Properly set the possible_crtcs mask The current code does a binary OR on the possible_crtcs variable of the TXP encoder, while we want to set it to that value instead. @@ -222765,10 +222624,10 @@ index 4a26750b5e93..22430640786f 100644 2.18.4 -From b794d8eba572634794dad907240af5ff518412c1 Mon Sep 17 00:00:00 2001 +From d98b1cd08d31b6abd6a223b018b369ecf4adc023 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 16 Mar 2021 13:42:19 +0100 -Subject: [PATCH 633/661] drm/vc4: crtc: Skip the TXP +Subject: [PATCH 630/693] drm/vc4: crtc: Skip the TXP The vc4_set_crtc_possible_masks is meant to run over all the encoders and then set their possible_crtcs mask to their associated pixelvalve. @@ -222808,10 +222667,10 @@ index bee11bb2cbf5..4efd3892192a 100644 2.18.4 -From 8d31f467b18fe2861e0a5ce248ec321d88d2d89b Mon Sep 17 00:00:00 2001 +From 795fed89200c530ba4141015889f6fb439e3724a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 16 Mar 2021 13:51:52 +0100 -Subject: [PATCH 634/661] drm/vc4: Rework the encoder retrieval code +Subject: [PATCH 631/693] drm/vc4: Rework the encoder retrieval code Due to a FIFO that cannot be flushed between the pixelvalve and the HDMI controllers on BCM2711, we need to carefully disable both at boot time @@ -222965,10 +222824,10 @@ index 7a70838595b2..ff4e71f79e49 100644 2.18.4 -From 8821b5b72dfef5fe1db1ef9c9cd915541db6c617 Mon Sep 17 00:00:00 2001 +From 29f633b7d3aab17473d58b43d17d6d9b39967686 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 25 Mar 2021 10:37:38 +0100 -Subject: [PATCH 635/661] drm/vc4: hdmi: Prevent clock unbalance +Subject: [PATCH 632/693] drm/vc4: hdmi: Prevent clock unbalance Since we fixed the hooks to disable the encoder at boot, we now have an unbalanced clk_disable call at boot since we never enabled them in the @@ -223007,10 +222866,10 @@ index 1872b3a2bb51..3a0ac5a9c027 100644 2.18.4 -From a645d20fa9dd8ea3a22e8d360b645cac22da8e7d Mon Sep 17 00:00:00 2001 +From 590f9be31789e310aa2424fa83049c435e982810 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 25 Feb 2021 14:42:03 +0100 -Subject: [PATCH 636/661] drm/vc4: hvs: Make the HVS bind first +Subject: [PATCH 633/693] drm/vc4: hvs: Make the HVS bind first We'll need to have the HVS binding before the HDMI controllers so that we can check whether the firmware allows to run in 4kp60. Reorder a bit @@ -223054,10 +222913,10 @@ index 8baa90837e9e..c404ef49f420 100644 2.18.4 -From e9b2f2322eb806c4c45dc445f67fd96138c68ce1 Mon Sep 17 00:00:00 2001 +From 5bef9fb33427ff96f33e06aec935807251a5819e Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 16:06:08 +0200 -Subject: [PATCH 637/661] drm/vc4: hdmi: Properly compute the BVB clock rate +Subject: [PATCH 634/693] drm/vc4: hdmi: Properly compute the BVB clock rate The BVB clock rate computation doesn't take into account a mode clock of 594MHz that we're going to need to support 4k60. @@ -223115,10 +222974,10 @@ index 3a0ac5a9c027..ca6651607acd 100644 2.18.4 -From 3707d96b7a19d3a0c267710458c7d69afd385b91 Mon Sep 17 00:00:00 2001 +From 8e74a3a6432f608b32b791c007fe6c78ca1fc9f1 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 25 Feb 2021 15:35:02 +0100 -Subject: [PATCH 638/661] drm/vc4: hdmi: Check and warn if we can't reach 4kp60 +Subject: [PATCH 635/693] drm/vc4: hdmi: Check and warn if we can't reach 4kp60 frequencies In order to reach the frequencies needed to output at 594MHz, the @@ -223229,10 +223088,10 @@ index 11a4b737d0ab..23e8cfc22c4d 100644 2.18.4 -From aba8a43f1ed56720927eeb72a1a7badb65a434cc Mon Sep 17 00:00:00 2001 +From d8ace973cdb65a90574606abf8ab7aaef2d0da65 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 16:06:58 +0200 -Subject: [PATCH 639/661] drm/vc4: hdmi: Enable the scrambler +Subject: [PATCH 636/693] drm/vc4: hdmi: Enable the scrambler The HDMI controller on the BCM2711 includes a scrambler in order to reach the HDMI 2.0 modes that require it. Let's add the support for it. @@ -223379,10 +223238,10 @@ index 20a1438a72cb..a81fdf90f66b 100644 2.18.4 -From 08b2f3b59807fbd61c5c50f0c12067f44ef111f7 Mon Sep 17 00:00:00 2001 +From cbaee329b96fb50ac93fb8ae869f170d38b2cb8d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 16:08:06 +0200 -Subject: [PATCH 640/661] drm/vc4: hdmi: Raise the maximum clock rate +Subject: [PATCH 637/693] drm/vc4: hdmi: Raise the maximum clock rate Now that we have the infrastructure in place, we can raise the maximum pixel rate we can reach for HDMI0 on the BCM2711. @@ -223415,10 +223274,10 @@ index b8785dc9f4f3..7d0d1da47609 100644 2.18.4 -From aaf8f4b251cb605782dd969e935ef5d9da5d08b6 Mon Sep 17 00:00:00 2001 +From 254987c176f79c6e75f414547c6fe8a5d38b92bf Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 21 Apr 2021 15:15:42 +0100 -Subject: [PATCH 641/661] vc4/drm: hdmi: Handle case when bvb clock is null +Subject: [PATCH 638/693] vc4/drm: hdmi: Handle case when bvb clock is null Pi2/3 have no bvb clock but want the other clocks to remain enabled here @@ -223466,10 +223325,10 @@ index 7d0d1da47609..c785923f2294 100644 2.18.4 -From 934d27288f0ef1639daa617d87f461af96a398d9 Mon Sep 17 00:00:00 2001 +From 3ea6865fafec0f2c8000cd772f8c986e110641e8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 19 Apr 2021 10:33:24 +0100 -Subject: [PATCH 642/661] overlays: spi-rtc: Add ds3232 and ds3234 +Subject: [PATCH 639/693] overlays: spi-rtc: Add ds3232 and ds3234 Extend the spi-rtc overlay to support the ds3232 and ds3234 RTCs, as well as adding parameters to select difference SPI controllers and @@ -223599,10 +223458,10 @@ index 9664afc9845c..51b7fec281c0 100644 2.18.4 -From b4a8f470aa21c32b95c4f9108ef863e5bb0ab242 Mon Sep 17 00:00:00 2001 +From cae93f7cda0f5a981e6b9112c08842a1609fd5f3 Mon Sep 17 00:00:00 2001 From: kFYatek <4499762+kFYatek@users.noreply.github.com> Date: Sat, 27 Mar 2021 21:43:33 +0100 -Subject: [PATCH 643/661] drm/vc4: Fix VEC address for BCM2711 in the +Subject: [PATCH 640/693] drm/vc4: Fix VEC address for BCM2711 in the devicetrees The VEC has a different address (0x7ec13000) on the BCM2711 (used in @@ -223681,10 +223540,10 @@ index 346838ee9d21..b95e0cf827d3 100644 2.18.4 -From b9ed8f889f5f32eadb0241bfb0135e6f615ca5cb Mon Sep 17 00:00:00 2001 +From 95254992b7c12b4f9e7c3d6e584add47f6c32786 Mon Sep 17 00:00:00 2001 From: kFYatek <4499762+kFYatek@users.noreply.github.com> Date: Sat, 27 Mar 2021 21:43:38 +0100 -Subject: [PATCH 644/661] drm/vc4: Fix clock source for VEC PixelValve on +Subject: [PATCH 641/693] drm/vc4: Fix clock source for VEC PixelValve on BCM2711 On the BCM2711 (Raspberry Pi 4), the VEC is actually connected to @@ -223715,10 +223574,10 @@ index 133c96ee4829..d6a932246240 100644 2.18.4 -From 1198ea4a3399d6c8a2583ebe68107e3deb5cfff2 Mon Sep 17 00:00:00 2001 +From aa6b747c751cc5b4df2f9bd9e480207045f2c7db Mon Sep 17 00:00:00 2001 From: kFYatek <4499762+kFYatek@users.noreply.github.com> Date: Sat, 27 Mar 2021 21:43:40 +0100 -Subject: [PATCH 645/661] drm/vc4: Separate VEC compatible variants +Subject: [PATCH 642/693] drm/vc4: Separate VEC compatible variants The VEC's DAC on BCM2711 is slightly different compared to the one on BCM283x and needs different configuration. In particular, bit 3 @@ -223831,10 +223690,10 @@ index bd5b8eb58b18..a467ceba75e4 100644 2.18.4 -From 1b04aef7754994e21ab3f51cc60fd9dc8eba327b Mon Sep 17 00:00:00 2001 +From c0fce505b6b539188d58a93af1e28c56ee10e21b Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Thu, 1 Apr 2021 10:34:27 -0500 -Subject: [PATCH 646/661] configs: Enable ATA and AHCI for SATA drive support. +Subject: [PATCH 643/693] configs: Enable ATA and AHCI for SATA drive support. --- arch/arm/configs/bcm2711_defconfig | 3 +++ @@ -223873,10 +223732,10 @@ index 93159a7a2d9b..b90bcc5b6ef8 100644 2.18.4 -From 521928c7278d7b27eb25470938ffcc22c7cfc912 Mon Sep 17 00:00:00 2001 +From 4654ab8351c1fd9fa198f39b765fdc0f8faa0bfd Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 22 Apr 2021 10:45:37 +0200 -Subject: [PATCH 647/661] clk: requests: Dereference the request pointer after +Subject: [PATCH 644/693] clk: requests: Dereference the request pointer after the check The current code will first dereference the req pointer and then test if @@ -223909,10 +223768,10 @@ index af0f638d1769..1b9a76c7dafa 100644 2.18.4 -From 96cb7a7097c6f0029d15a7d4735d6c1c95ab7bb5 Mon Sep 17 00:00:00 2001 +From 7d771db66e7213e796caf45d957a9e3cd9013fed Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:28:40 +0000 -Subject: [PATCH 648/661] staging/bcm2835-codec: Fix support for levels 4.1 and +Subject: [PATCH 645/693] staging/bcm2835-codec: Fix support for levels 4.1 and 4.2 The driver said it supported H264 levels 4.1 and 4.2, but @@ -223951,10 +223810,10 @@ index 5729a8a7d94e..4622057e71cb 100644 2.18.4 -From 214c7fd002cbd44b6c6e1b7239ccb7af56feb72e Mon Sep 17 00:00:00 2001 +From 16bc52497d86eb3d0bc8df0ca1b5410431f1adc8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 19:08:23 +0000 -Subject: [PATCH 649/661] staging/bcm2835-codec: Set the colourspace +Subject: [PATCH 646/693] staging/bcm2835-codec: Set the colourspace appropriately for RGB formats Video decode supports YUV and RGB formats. YUV needs to report SMPTE170M @@ -224041,10 +223900,10 @@ index 4622057e71cb..08429a42c847 100644 2.18.4 -From c13708dfc31787ee55b276846d2822e65b560048 Mon Sep 17 00:00:00 2001 +From 9f3895c48eebaea6da95883012450108e63eddde Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 9 Dec 2020 18:53:56 +0000 -Subject: [PATCH 650/661] staging/bcm2835-codec: Pass corrupt frame flag. +Subject: [PATCH 647/693] staging/bcm2835-codec: Pass corrupt frame flag. MMAL has the flag MMAL_BUFFER_HEADER_FLAG_CORRUPTED but that wasn't being passed through, so add it. @@ -224089,10 +223948,10 @@ index 08429a42c847..3ed9f47a37fe 100644 2.18.4 -From 3ec1ad06517437c54e8149a7ad17333c0e55ed88 Mon Sep 17 00:00:00 2001 +From d2facee5071372a048c7aa2d70e325e744754fea Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:34:50 +0000 -Subject: [PATCH 651/661] staging/bcm2835-camera: Add support for H264 levels +Subject: [PATCH 648/693] staging/bcm2835-camera: Add support for H264 levels 4.1 and 4.2 Whilst the hardware can't achieve the limits of level 4.2 under @@ -224153,10 +224012,10 @@ index f73daa38fa66..f3480a5c5170 100644 2.18.4 -From 04389ff7c74ddac12395a68e555d27aac308813a Mon Sep 17 00:00:00 2001 +From 52cac2c12d0696e920713086a85844d843f2743b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 11:07:55 +0100 -Subject: [PATCH 652/661] staging/bcm2835-codec: Do not update crop from S_FMT +Subject: [PATCH 649/693] staging/bcm2835-codec: Do not update crop from S_FMT after res change During decode, setting the CAPTURE queue format was setting the crop @@ -224195,10 +224054,10 @@ index 3ed9f47a37fe..a97666a1a4be 100644 2.18.4 -From 9584422718b0ac0afb0e17b38295d39f6ee845dc Mon Sep 17 00:00:00 2001 +From 4f2639eb0a51bebd0a84dc6053dfbb91698c0133 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Apr 2021 16:16:49 +0100 -Subject: [PATCH 653/661] staging/bcm2835-isp: Fix compiler warning +Subject: [PATCH 650/693] staging/bcm2835-isp: Fix compiler warning The result of dividing a u32 by a size_t is an unsigned int on arm32 and a long unsigned int on arm64. Use "%zu" (the size_t format) to @@ -224226,10 +224085,10 @@ index 5cca8bdd1d65..08dce8bba9bb 100644 2.18.4 -From a934e1128941818705d1d03ce190a593debb3b82 Mon Sep 17 00:00:00 2001 +From 53cbb0b359c7a5bee92b11974c48c6504d3242d1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 25 Apr 2021 21:07:03 +0100 -Subject: [PATCH 654/661] overlays: Allow multiple gpio-shutdown instances +Subject: [PATCH 651/693] overlays: Allow multiple gpio-shutdown instances There is no reason not to support multiple gpio-shutdown signals, so add the necessary __override__ magic. @@ -224274,10 +224133,10 @@ index 0a27595143ec..da148064aedd 100644 2.18.4 -From 0d2d4c6802cebcb3a04dbd21bcf47e9abadf335d Mon Sep 17 00:00:00 2001 +From 47128307c461b8aa1168bb226fee782a36b1262c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Apr 2021 09:58:14 +0100 -Subject: [PATCH 655/661] overlays: README - improve the gpio-poweroff guide +Subject: [PATCH 652/693] overlays: README - improve the gpio-poweroff guide Signed-off-by: Phil Elwell --- @@ -224310,10 +224169,10 @@ index 17521568cee5..b9be3bece19b 100644 2.18.4 -From c291b7877a6a0386a165facaf9f3c0de4e0bc666 Mon Sep 17 00:00:00 2001 +From 3cf68884fdd1332e5611b861b695d1d64cf8d358 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Apr 2021 10:08:21 +0100 -Subject: [PATCH 656/661] SQUASH: overlays: Fix typo in README +Subject: [PATCH 653/693] SQUASH: overlays: Fix typo in README Signed-off-by: Phil Elwell --- @@ -224337,10 +224196,10 @@ index b9be3bece19b..79878f4f30e6 100644 2.18.4 -From 41066759aed55614ed395ea64ca28e4ab519a45d Mon Sep 17 00:00:00 2001 +From 551599697fdd335664eefefda7c5963f2afba349 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Apr 2021 08:59:01 +0100 -Subject: [PATCH 657/661] gpio-poweroff: Remember the old poweroff handler +Subject: [PATCH 654/693] gpio-poweroff: Remember the old poweroff handler Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the @@ -224396,10 +224255,10 @@ index 3acbe711b792..1b18dbf3deff 100644 2.18.4 -From d9379d2337d90c433bd0151a758c476b86054d20 Mon Sep 17 00:00:00 2001 +From 4fba66e0106cc31d190bf634beb74d4f97cf6365 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Apr 2021 16:14:21 +0100 -Subject: [PATCH 658/661] drm/vc4: Allow DBLCLK modes even if horz timing is +Subject: [PATCH 655/693] drm/vc4: Allow DBLCLK modes even if horz timing is odd. The 2711 pixel valve can't produce odd horizontal timings, and @@ -224444,10 +224303,10 @@ index c785923f2294..0a786803c320 100644 2.18.4 -From d77ebc01428d76ac2eabd616440702a972db6529 Mon Sep 17 00:00:00 2001 +From 616e8e177fbd2d2b5b0e6f1030faa710e1d3f66f Mon Sep 17 00:00:00 2001 From: Christoph Date: Wed, 28 Apr 2021 20:30:44 +0200 -Subject: [PATCH 659/661] overlays: Add ugreen-dabboard overlay +Subject: [PATCH 656/693] overlays: Add ugreen-dabboard overlay This is a simple overlay based on the simple-audio-card and the dmic codec. It has the speciality that it is configured to use the codec @@ -224556,10 +224415,10 @@ index 000000000000..fc8d9b118068 2.18.4 -From a7335f2d83b250d8e41c8dd2b0f97fa8eb020353 Mon Sep 17 00:00:00 2001 +From edfe153f323f4620ca2ce1af2fdec0209feaaec5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Apr 2021 15:02:58 +0100 -Subject: [PATCH 660/661] ARM: dts: bcm2711-rpi-400: Limit MDIO clock speed +Subject: [PATCH 657/693] ARM: dts: bcm2711-rpi-400: Limit MDIO clock speed Signed-off-by: Phil Elwell --- @@ -224585,10 +224444,10 @@ index 1bb8854e69d6..4ffd5e04ccf1 100644 2.18.4 -From 108ea0d859cddc9cfda8794fd801ee4776e15324 Mon Sep 17 00:00:00 2001 +From 964e7a8c3429a12f87d05fc5e3bd573edfd32cc8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 30 Apr 2021 08:34:36 +0100 -Subject: [PATCH 661/661] spi: bcm2835: Increase the CS limit to 24 +Subject: [PATCH 658/693] spi: bcm2835: Increase the CS limit to 24 Increase the maximum number of CS lines to 24, and ensure this limit is not exceeded. @@ -224637,3 +224496,5532 @@ index aab6c7e5c114..ae74d86b2ee8 100644 -- 2.18.4 + +From 6314d6192a48efdd1f38cd2a6ece7935377d569e Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 4 May 2021 13:57:21 +0100 +Subject: [PATCH 659/693] configs: Regenerate defconfigs + +GENERIC_PHY=m is now implied by other settings on bcm2711. + +Signed-off-by: Phil Elwell +--- + arch/arm/configs/bcm2711_defconfig | 1 - + arch/arm64/configs/bcm2711_defconfig | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index b03546d12299..2a20873a30e9 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -1374,7 +1374,6 @@ CONFIG_MAXIM_THERMOCOUPLE=m + CONFIG_MAX31856=m + CONFIG_PWM_BCM2835=m + CONFIG_PWM_PCA9685=m +-CONFIG_GENERIC_PHY=y + CONFIG_RPI_AXIPERF=m + CONFIG_NVMEM_RMEM=m + CONFIG_EXT4_FS=y +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index b90bcc5b6ef8..5fb890f90233 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -1376,7 +1376,6 @@ CONFIG_MAXIM_THERMOCOUPLE=m + CONFIG_MAX31856=m + CONFIG_PWM_BCM2835=m + CONFIG_PWM_PCA9685=m +-CONFIG_GENERIC_PHY=y + CONFIG_RPI_AXIPERF=m + CONFIG_NVMEM_RMEM=m + CONFIG_EXT4_FS=y +-- +2.18.4 + + +From 3dc7186515f887a1bed7e394c6f9ef6c106fb27e Mon Sep 17 00:00:00 2001 +From: Michael Heimpold +Date: Tue, 4 May 2021 15:14:16 +0200 +Subject: [PATCH 660/693] configs: add CONFIG_QCA7000_UART=m (#4322) + +This allows to use the UART interface instead of SPI +of QCA7000 Ethernet over powerline chips. + +Signed-off-by: Michael Heimpold +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index ca05d73516e2..073877ae2974 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -498,6 +498,7 @@ CONFIG_VETH=m + CONFIG_NET_VRF=m + CONFIG_ENC28J60=m + CONFIG_QCA7000_SPI=m ++CONFIG_QCA7000_UART=m + CONFIG_WIZNET_W5100=m + CONFIG_WIZNET_W5100_SPI=m + CONFIG_MDIO_BITBANG=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 2a20873a30e9..ca0c73831827 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -509,6 +509,7 @@ CONFIG_NET_VRF=m + CONFIG_BCMGENET=y + CONFIG_ENC28J60=m + CONFIG_QCA7000_SPI=m ++CONFIG_QCA7000_UART=m + CONFIG_WIZNET_W5100=m + CONFIG_WIZNET_W5100_SPI=m + CONFIG_MICREL_PHY=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 554f87044043..c71640dd0ce2 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -492,6 +492,7 @@ CONFIG_VETH=m + CONFIG_NET_VRF=m + CONFIG_ENC28J60=m + CONFIG_QCA7000_SPI=m ++CONFIG_QCA7000_UART=m + CONFIG_WIZNET_W5100=m + CONFIG_WIZNET_W5100_SPI=m + CONFIG_MDIO_BITBANG=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 5fb890f90233..23d951e4034f 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -503,6 +503,7 @@ CONFIG_NET_VRF=m + CONFIG_BCMGENET=y + CONFIG_ENC28J60=m + CONFIG_QCA7000_SPI=m ++CONFIG_QCA7000_UART=m + CONFIG_WIZNET_W5100=m + CONFIG_WIZNET_W5100_SPI=m + CONFIG_MICREL_PHY=y +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index ff857505902b..c38726720f27 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -488,6 +488,7 @@ CONFIG_VETH=m + CONFIG_NET_VRF=m + CONFIG_ENC28J60=m + CONFIG_QCA7000_SPI=m ++CONFIG_QCA7000_UART=m + CONFIG_WIZNET_W5100=m + CONFIG_WIZNET_W5100_SPI=m + CONFIG_MDIO_BITBANG=m +-- +2.18.4 + + +From df5ca4c22b63fbbcc1c5159085a883896ff18543 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 5 May 2021 15:35:34 +0200 +Subject: [PATCH 661/693] clk: Always clamp the rounded rate + +The current core while setting the min and max rate properly in the +clk_request structure will not make sure that the requested rate is +within these boundaries, leaving it to each and every driver to make +sure it is. + +Add a clamp call to make sure it's always done. + +Signed-off-by: Maxime Ripard +--- + drivers/clk/clk.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c +index 1b9a76c7dafa..f4695bac4cec 100644 +--- a/drivers/clk/clk.c ++++ b/drivers/clk/clk.c +@@ -1316,6 +1316,8 @@ static int clk_core_determine_round_nolock(struct clk_core *core, + if (!core) + return 0; + ++ req->rate = clamp(req->rate, req->min_rate, req->max_rate); ++ + /* + * At this point, core protection will be disabled if + * - if the provider is not protected at all +-- +2.18.4 + + +From 4103fb6d4db281ada1e74098d781f38399392274 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 5 May 2021 14:06:21 +0200 +Subject: [PATCH 662/693] Revert "drm/vc4: Rework the encoder retrieval code" + +This reverts commit 3cf3d39b754a78c67134da7b8109eb968129ef8d. + +This commit was making the assumption that we had a 1:1 mapping between +the encoders and their CRTC. While this is true for the HDMI controllers +on the BCM2711, this isn't true for the other encoders (DSI0 and DPI +share the PixelValve 0, and DSI1 and SMI share the PixelValve1), and +this isn't true at all on the older SoCs, effectively breaking the +encoder retrieval logic. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 25 ++--------------------- + drivers/gpu/drm/vc4/vc4_drv.c | 36 ---------------------------------- + drivers/gpu/drm/vc4/vc4_drv.h | 10 ---------- + 3 files changed, 2 insertions(+), 69 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index d6a932246240..1d1ae0d9e48f 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -272,19 +272,6 @@ static u32 vc4_crtc_get_fifo_full_level_bits(struct vc4_crtc *vc4_crtc, + PV_CONTROL_FIFO_LEVEL); + } + +-static struct drm_encoder *vc4_get_connector_encoder(struct drm_connector *connector) +-{ +- struct drm_encoder *encoder; +- +- if (drm_WARN_ON(connector->dev, hweight32(connector->possible_encoders) != 1)) +- return NULL; +- +- drm_connector_for_each_possible_encoder(connector, encoder) +- return encoder; +- +- return NULL; +-} +- + /* + * Returns the encoder attached to the CRTC. + * +@@ -299,17 +286,9 @@ static struct drm_encoder *vc4_get_crtc_encoder(struct drm_crtc *crtc) + + drm_connector_list_iter_begin(crtc->dev, &conn_iter); + drm_for_each_connector_iter(connector, &conn_iter) { +- struct drm_encoder *encoder; +- struct vc4_encoder *vc4_encoder; +- +- encoder = vc4_get_connector_encoder(connector); +- if (!encoder) +- continue; +- +- vc4_encoder = to_vc4_encoder(encoder); +- if (vc4_encoder->crtc == crtc) { ++ if (connector->state->crtc == crtc) { + drm_connector_list_iter_end(&conn_iter); +- return encoder; ++ return connector->encoder; + } + } + drm_connector_list_iter_end(&conn_iter); +diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c +index c404ef49f420..3683780b9de8 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.c ++++ b/drivers/gpu/drm/vc4/vc4_drv.c +@@ -226,41 +226,6 @@ static int compare_dev(struct device *dev, void *data) + return dev == data; + } + +-static struct drm_crtc *vc4_drv_find_crtc(struct drm_device *drm, +- struct drm_encoder *encoder) +-{ +- struct drm_crtc *crtc; +- +- if (WARN_ON(hweight32(encoder->possible_crtcs) != 1)) +- return NULL; +- +- drm_for_each_crtc(crtc, drm) { +- if (!drm_encoder_crtc_ok(encoder, crtc)) +- continue; +- +- return crtc; +- } +- +- return NULL; +-} +- +-static void vc4_drv_set_encoder_data(struct drm_device *drm) +-{ +- struct drm_encoder *encoder; +- +- drm_for_each_encoder(encoder, drm) { +- struct vc4_encoder *vc4_encoder; +- struct drm_crtc *crtc; +- +- crtc = vc4_drv_find_crtc(drm, encoder); +- if (WARN_ON(!crtc)) +- return; +- +- vc4_encoder = to_vc4_encoder(encoder); +- vc4_encoder->crtc = crtc; +- } +-} +- + static void vc4_match_add_drivers(struct device *dev, + struct component_match **match, + struct platform_driver *const *drivers, +@@ -343,7 +308,6 @@ static int vc4_drm_bind(struct device *dev) + ret = component_bind_all(dev, drm); + if (ret) + return ret; +- vc4_drv_set_encoder_data(drm); + + if (!vc4->firmware_kms) { + ret = vc4_plane_create_additional_planes(drm); +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index ff4e71f79e49..7a70838595b2 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -445,16 +445,6 @@ enum vc4_encoder_type { + + struct vc4_encoder { + struct drm_encoder base; +- +- /* +- * At boot time, we need to be able to retrieve the CRTC for a given +- * connector in order to run the disable hooks below to avoid the stuck +- * pixel issue. Unfortunately the drm_connector->encoder pointer is +- * NULL at that time so we can't move up the chain, so we'll store it +- * ourselves here. +- */ +- struct drm_crtc *crtc; +- + enum vc4_encoder_type type; + u32 clock_select; + +-- +2.18.4 + + +From 1d55a1ab405606bab270fc38035f58c0eecf0c80 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 6 May 2021 17:01:46 +0200 +Subject: [PATCH 663/693] drm/vc4: crtc: Pass the drm_atomic_state to config_pv + +The vc4_crtc_config_pv will need to access the drm_atomic_state +structure and its only parent function, vc4_crtc_atomic_enable already +has access to it. Let's pass it as a parameter. + +Fixes: 792c3132bc1b ("drm/vc4: encoder: Add finer-grained encoder callbacks") +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index 1d1ae0d9e48f..513c75288131 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -305,7 +305,7 @@ static void vc4_crtc_pixelvalve_reset(struct drm_crtc *crtc) + CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_FIFO_CLR); + } + +-static void vc4_crtc_config_pv(struct drm_crtc *crtc) ++static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_atomic_state *state) + { + struct drm_device *dev = crtc->dev; + struct vc4_dev *vc4 = to_vc4_dev(dev); +@@ -313,8 +313,8 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc) + struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); + const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); +- struct drm_crtc_state *state = crtc->state; +- struct drm_display_mode *mode = &state->adjusted_mode; ++ struct drm_crtc_state *crtc_state = crtc->state; ++ struct drm_display_mode *mode = &crtc_state->adjusted_mode; + bool interlace = mode->flags & DRM_MODE_FLAG_INTERLACE; + u32 pixel_rep = (mode->flags & DRM_MODE_FLAG_DBLCLK) ? 2 : 1; + bool is_dsi = (vc4_encoder->type == VC4_ENCODER_TYPE_DSI0 || +@@ -540,7 +540,7 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, + if (vc4_encoder->pre_crtc_configure) + vc4_encoder->pre_crtc_configure(encoder, state); + +- vc4_crtc_config_pv(crtc); ++ vc4_crtc_config_pv(crtc, state); + + CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_EN); + +-- +2.18.4 + + +From 41eb4bacc60ba6aed0f8d64c384e921017a0cdf7 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 6 May 2021 17:07:07 +0200 +Subject: [PATCH 664/693] drm/vc4: crtc: Fix vc4_get_crtc_encoder logic + +The vc4_get_crtc_encoder function currently only works when the +connector->state->crtc pointer is set, which is only true when the +connector is currently enabled. + +However, we use it as part of the disable path as well, and our lookup +will fail in that case, resulting in it returning a null pointer we +can't act on. + +We can access the connector that used to be connected to that crtc +though using the old connector state in the disable path. + +Since we want to support both the enable and disable path, we can +support it by passing the state accessor variant as a function pointer, +together with the atomic state. + +Fixes: 792c3132bc1b ("drm/vc4: encoder: Add finer-grained encoder callbacks") +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 21 ++++++++++++++++----- + 1 file changed, 16 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index 513c75288131..a813b7de60ef 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -279,14 +279,22 @@ static u32 vc4_crtc_get_fifo_full_level_bits(struct vc4_crtc *vc4_crtc, + * allows drivers to push pixels to more than one encoder from the + * same CRTC. + */ +-static struct drm_encoder *vc4_get_crtc_encoder(struct drm_crtc *crtc) ++static struct drm_encoder *vc4_get_crtc_encoder(struct drm_crtc *crtc, ++ struct drm_atomic_state *state, ++ struct drm_connector_state *(*get_state)(struct drm_atomic_state *state, ++ struct drm_connector *connector)) + { + struct drm_connector *connector; + struct drm_connector_list_iter conn_iter; + + drm_connector_list_iter_begin(crtc->dev, &conn_iter); + drm_for_each_connector_iter(connector, &conn_iter) { +- if (connector->state->crtc == crtc) { ++ struct drm_connector_state *conn_state = get_state(state, connector); ++ ++ if (!conn_state) ++ continue; ++ ++ if (conn_state->crtc == crtc) { + drm_connector_list_iter_end(&conn_iter); + return connector->encoder; + } +@@ -309,7 +317,8 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_atomic_state *s + { + struct drm_device *dev = crtc->dev; + struct vc4_dev *vc4 = to_vc4_dev(dev); +- struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc); ++ struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, ++ drm_atomic_get_new_connector_state); + struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); + const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); +@@ -425,7 +434,8 @@ static int vc4_crtc_disable(struct drm_crtc *crtc, + struct drm_atomic_state *state, + unsigned int channel) + { +- struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc); ++ struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, ++ drm_atomic_get_old_connector_state); + struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); + struct drm_device *dev = crtc->dev; +@@ -525,7 +535,8 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, + { + struct drm_device *dev = crtc->dev; + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); +- struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc); ++ struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, ++ drm_atomic_get_new_connector_state); + struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); + + require_hvs_enabled(dev); +-- +2.18.4 + + +From 7461c8f10bccac1168f63b3860fb74b5dc3e29fe Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 6 May 2021 17:15:57 +0200 +Subject: [PATCH 665/693] drm/vc4: crtc: Lookup the encoder from the register + at boot + +At boot, we can't rely on the vc4_get_crtc_encoder since we don't have a +state yet and thus will not be able to figure out which connector is +attached to our CRTC. + +However, we have a muxing bit in the CRTC register we can use to get the +encoder currently connected to the pixelvalve. We can thus read that +register, lookup the associated register through the vc4_pv_data +structure, and then pass it to vc4_crtc_disable so that we can perform +the proper operations. + +Fixes: 875a4d536842 ("drm/vc4: drv: Disable the CRTC at boot time") +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 38 ++++++++++++++++++++++++++++++---- + 1 file changed, 34 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index a813b7de60ef..a0b5503928df 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -431,11 +431,10 @@ static void require_hvs_enabled(struct drm_device *dev) + } + + static int vc4_crtc_disable(struct drm_crtc *crtc, ++ struct drm_encoder *encoder, + struct drm_atomic_state *state, + unsigned int channel) + { +- struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, +- drm_atomic_get_old_connector_state); + struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); + struct drm_device *dev = crtc->dev; +@@ -476,10 +475,29 @@ static int vc4_crtc_disable(struct drm_crtc *crtc, + return 0; + } + ++static struct drm_encoder *vc4_crtc_get_encoder_by_type(struct drm_crtc *crtc, ++ enum vc4_encoder_type type) ++{ ++ struct drm_encoder *encoder; ++ ++ drm_for_each_encoder(encoder, crtc->dev) { ++ struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); ++ ++ if (vc4_encoder->type == type) ++ return encoder; ++ } ++ ++ return NULL; ++} ++ + int vc4_crtc_disable_at_boot(struct drm_crtc *crtc) + { + struct drm_device *drm = crtc->dev; + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); ++ enum vc4_encoder_type encoder_type; ++ const struct vc4_pv_data *pv_data; ++ struct drm_encoder *encoder; ++ unsigned encoder_sel; + int channel; + + if (!(of_device_is_compatible(vc4_crtc->pdev->dev.of_node, +@@ -498,7 +516,17 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc) + if (channel < 0) + return 0; + +- return vc4_crtc_disable(crtc, NULL, channel); ++ encoder_sel = VC4_GET_FIELD(CRTC_READ(PV_CONTROL), PV_CONTROL_CLK_SELECT); ++ if (WARN_ON(encoder_sel != 0)) ++ return 0; ++ ++ pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); ++ encoder_type = pv_data->encoder_types[encoder_sel]; ++ encoder = vc4_crtc_get_encoder_by_type(crtc, encoder_type); ++ if (WARN_ON(!encoder)) ++ return 0; ++ ++ return vc4_crtc_disable(crtc, encoder, NULL, channel); + } + + static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -507,6 +535,8 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, + struct drm_crtc_state *old_state = drm_atomic_get_old_crtc_state(state, + crtc); + struct vc4_crtc_state *old_vc4_state = to_vc4_crtc_state(old_state); ++ struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, ++ drm_atomic_get_old_connector_state); + struct drm_device *dev = crtc->dev; + + require_hvs_enabled(dev); +@@ -514,7 +544,7 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, + /* Disable vblank irq handling before crtc is disabled. */ + drm_crtc_vblank_off(crtc); + +- vc4_crtc_disable(crtc, state, old_vc4_state->assigned_channel); ++ vc4_crtc_disable(crtc, encoder, state, old_vc4_state->assigned_channel); + + /* + * Make sure we issue a vblank event after disabling the CRTC if +-- +2.18.4 + + +From da931a40dee18ea03d1351f0f620dfc9c154ca1c Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 6 May 2021 16:37:26 +0200 +Subject: [PATCH 666/693] drm/vc4: hdmi: Switch to pm_runtime_resume_and_get + +pm_runtime_get_sync increases the PM usage counter even if it fails, and +forgetting to do so will result in a reference leak. We can't really do +anything in atomic_enable in case of a failure though, and we probably +can't recover either, but at least switching to +pm_runtime_resume_and_get makes us play nice with the PM subsystem. + +Fixes: 4f6e3d66ac52 ("drm/vc4: Add runtime PM support to the HDMI encoder driver") +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 0a786803c320..2db4af7a1cb3 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -1203,8 +1203,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, + unsigned long bvb_rate, pixel_rate, hsm_rate; + int ret; + +- ret = pm_runtime_get_sync(&vc4_hdmi->pdev->dev); +- if (ret < 0) { ++ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev); ++ if (ret) { + DRM_ERROR("Failed to retain power domain: %d\n", ret); + return; + } +-- +2.18.4 + + +From 51a9e9c1a14a0168e876bc17aa8eef0e314b3d59 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 6 May 2021 16:40:19 +0200 +Subject: [PATCH 667/693] drm/vc4: hdmi: Make sure the controller is powered in + detect + +If the HPD GPIO is not available and drm_probe_ddc fails, we end up +reading the HDMI_HOTPLUG register, but the controller might be powered +off resulting in a CPU hang. Make sure we have the power domain and the +HSM clock powered during the detect cycle to prevent the hang from +happening. + +Fixes: 4f6e3d66ac52 ("drm/vc4: Add runtime PM support to the HDMI encoder driver") +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 2db4af7a1cb3..5db4971a9220 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -477,8 +477,12 @@ static enum drm_connector_status + vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) + { + struct vc4_hdmi *vc4_hdmi = connector_to_vc4_hdmi(connector); ++ enum drm_connector_status ret = connector_status_disconnected; + bool connected = false; + ++ WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev)); ++ WARN_ON(clk_prepare_enable(vc4_hdmi->hsm_clock)); ++ + if (vc4_hdmi->hpd_gpio) { + if (gpio_get_value_cansleep(vc4_hdmi->hpd_gpio) ^ + vc4_hdmi->hpd_active_low) +@@ -500,11 +504,16 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) + } + } + +- return connector_status_connected; ++ ret = connector_status_connected; ++ goto out; + } + + cec_phys_addr_invalidate(vc4_hdmi->cec_adap); +- return connector_status_disconnected; ++ ++out: ++ clk_disable_unprepare(vc4_hdmi->hsm_clock); ++ pm_runtime_put(&vc4_hdmi->pdev->dev); ++ return ret; + } + + static void vc4_hdmi_connector_destroy(struct drm_connector *connector) +-- +2.18.4 + + +From e2e4011c503a20271336ab039373608cfa44e069 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 29 Apr 2021 21:58:27 +0200 +Subject: [PATCH 668/693] drm/vc4: hdmi: Simplify the connector state retrieval + +When we have the entire DRM state, retrieving the connector state only +requires the drm_connector pointer. Fortunately for us, we have +allocated it as a part of the vc4_hdmi structure, so we can retrieve get +a pointer by simply accessing our field in that structure. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 21 +++------------------ + 1 file changed, 3 insertions(+), 18 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 5db4971a9220..81c2c957183f 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -1184,31 +1184,16 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) + "VC4_HDMI_FIFO_CTL_RECENTER_DONE"); + } + +-static struct drm_connector_state * +-vc4_hdmi_encoder_get_connector_state(struct drm_encoder *encoder, +- struct drm_atomic_state *state) +-{ +- struct drm_connector_state *conn_state; +- struct drm_connector *connector; +- unsigned int i; +- +- for_each_new_connector_in_state(state, connector, conn_state, i) { +- if (conn_state->best_encoder == encoder) +- return conn_state; +- } +- +- return NULL; +-} +- + static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, + struct drm_atomic_state *state) + { ++ struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); ++ struct drm_connector *connector = &vc4_hdmi->connector; + struct drm_connector_state *conn_state = +- vc4_hdmi_encoder_get_connector_state(encoder, state); ++ drm_atomic_get_new_connector_state(state, connector); + struct vc4_hdmi_connector_state *vc4_conn_state = + conn_state_to_vc4_hdmi_conn_state(conn_state); + struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; +- struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); + unsigned long bvb_rate, pixel_rate, hsm_rate; + int ret; + +-- +2.18.4 + + +From 9d8c9821024c5307aed0f3d868283db60607502f Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 29 Apr 2021 11:08:52 +0200 +Subject: [PATCH 669/693] drm/vc4: hdmi: Rely on interrupts to handle hotplug + +DRM currently polls for the HDMI connector status every 10s, which can +be an issue when we connect/disconnect a display quickly or the device +on the other end only issues a hotplug pulse (for example on EDID +change). + +Switch the driver to rely on the internal controller logic for the +BCM2711/RPi4. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 44 ++++++++++++++++++++++++++++++++++ + 1 file changed, 44 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 81c2c957183f..13886a536736 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -2139,6 +2139,46 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + + } + ++static irqreturn_t vc4_hdmi_hpd_irq_thread(int irq, void *priv) ++{ ++ struct vc4_hdmi *vc4_hdmi = priv; ++ struct drm_device *dev = vc4_hdmi->connector.dev; ++ ++ if (dev) ++ drm_kms_helper_hotplug_event(dev); ++ ++ return IRQ_HANDLED; ++} ++ ++static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi) ++{ ++ struct platform_device *pdev = vc4_hdmi->pdev; ++ struct device *dev = &pdev->dev; ++ int ret; ++ ++ if (vc4_hdmi->variant->external_irq_controller) { ++ ret = devm_request_threaded_irq(dev, ++ platform_get_irq_byname(pdev, "hpd-connected"), ++ NULL, ++ vc4_hdmi_hpd_irq_thread, IRQF_ONESHOT, ++ "vc4 hdmi hpd connected", vc4_hdmi); ++ if (ret) ++ return ret; ++ ++ ret = devm_request_threaded_irq(dev, ++ platform_get_irq_byname(pdev, "hpd-removed"), ++ NULL, ++ vc4_hdmi_hpd_irq_thread, IRQF_ONESHOT, ++ "vc4 hdmi hpd disconnected", vc4_hdmi); ++ if (ret) ++ return ret; ++ ++ connector->polled = DRM_CONNECTOR_POLL_HPD; ++ } ++ ++ return 0; ++} ++ + #ifdef CONFIG_DRM_VC4_HDMI_CEC + static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv) + { +@@ -2738,6 +2778,10 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) + if (ret) + goto err_destroy_encoder; + ++ ret = vc4_hdmi_hotplug_init(vc4_hdmi); ++ if (ret) ++ goto err_destroy_conn; ++ + ret = vc4_hdmi_cec_init(vc4_hdmi); + if (ret) + goto err_destroy_conn; +-- +2.18.4 + + +From dc182eaed40717cb775db2c1b8856c4571d019ef Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Fri, 7 May 2021 15:28:21 +0200 +Subject: [PATCH 670/693] drm/vc4: hdmi: Add a workqueue to set scrambling + +It looks like some displays (like the LG 27UL850-W) don't enable the +scrambling when the HDMI driver enables it. However, if we set later the +scrambler enable bit, the display will work as expected. + +Let's create delayed work queue to periodically look at the display +scrambling status, and if it's not set yet try to enable it again. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 25 +++++++++++++++++++++++++ + drivers/gpu/drm/vc4/vc4_hdmi.h | 2 ++ + 2 files changed, 27 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 13886a536736..f84c8257bd7e 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -870,6 +870,8 @@ static bool vc4_hdmi_supports_scrambling(struct drm_encoder *encoder, + return true; + } + ++#define SCRAMBLING_POLLING_DELAY_MS 1000 ++ + static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) + { + struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; +@@ -886,6 +888,9 @@ static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) + + HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) | + VC5_HDMI_SCRAMBLER_CTL_ENABLE); ++ ++ queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work, ++ msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS)); + } + + static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) +@@ -904,6 +909,9 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) + if (crtc && !vc4_hdmi_mode_needs_scrambling(&crtc->mode)) + return; + ++ if (delayed_work_pending(&vc4_hdmi->scrambling_work)) ++ cancel_delayed_work_sync(&vc4_hdmi->scrambling_work); ++ + HDMI_WRITE(HDMI_SCRAMBLER_CTL, HDMI_READ(HDMI_SCRAMBLER_CTL) & + ~VC5_HDMI_SCRAMBLER_CTL_ENABLE); + +@@ -911,6 +919,22 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) + drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false); + } + ++static void vc4_hdmi_scrambling_wq(struct work_struct *work) ++{ ++ struct vc4_hdmi *vc4_hdmi = container_of(to_delayed_work(work), ++ struct vc4_hdmi, ++ scrambling_work); ++ ++ if (drm_scdc_get_scrambling_status(vc4_hdmi->ddc)) ++ return; ++ ++ drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true); ++ drm_scdc_set_scrambling(vc4_hdmi->ddc, true); ++ ++ queue_delayed_work(system_wq, &vc4_hdmi->scrambling_work, ++ msecs_to_jiffies(SCRAMBLING_POLLING_DELAY_MS)); ++} ++ + static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, + struct drm_atomic_state *state) + { +@@ -2701,6 +2725,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) + vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL); + if (!vc4_hdmi) + return -ENOMEM; ++ INIT_DELAYED_WORK(&vc4_hdmi->scrambling_work, vc4_hdmi_scrambling_wq); + + dev_set_drvdata(dev, vc4_hdmi); + encoder = &vc4_hdmi->encoder.base.base; +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h +index 23e8cfc22c4d..67c372d743cb 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.h ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.h +@@ -134,6 +134,8 @@ struct vc4_hdmi { + struct vc4_hdmi_encoder encoder; + struct drm_connector connector; + ++ struct delayed_work scrambling_work; ++ + struct i2c_adapter *ddc; + void __iomem *hdmicore_regs; + void __iomem *hd_regs; +-- +2.18.4 + + +From 5e4cd7b4bc4e2afd74c874b5082d365f81f67d54 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 7 May 2021 17:22:53 +0100 +Subject: [PATCH 671/693] vc4/drm: hdmi: Fix missing declaration + +Fixes: 671a8068ee5feae1d92e6d48027fa8de062e2af2 +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index f84c8257bd7e..f75c176dde09 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -2178,6 +2178,7 @@ static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi) + { + struct platform_device *pdev = vc4_hdmi->pdev; + struct device *dev = &pdev->dev; ++ struct drm_connector *connector = &vc4_hdmi->connector; + int ret; + + if (vc4_hdmi->variant->external_irq_controller) { +-- +2.18.4 + + +From a7b996539e0e1d4c9146f2021ca3a140fc37d26c Mon Sep 17 00:00:00 2001 +From: AMuszkat +Date: Sun, 28 Mar 2021 21:46:09 +0200 +Subject: [PATCH 672/693] overlays: merus-amp: remove spi override + +Signed-off-by: AMuszkat +--- + arch/arm/boot/dts/overlays/merus-amp-overlay.dts | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/merus-amp-overlay.dts b/arch/arm/boot/dts/overlays/merus-amp-overlay.dts +index bbffd7d26324..4501fbdc253d 100644 +--- a/arch/arm/boot/dts/overlays/merus-amp-overlay.dts ++++ b/arch/arm/boot/dts/overlays/merus-amp-overlay.dts +@@ -57,14 +57,4 @@ + status = "okay"; + }; + }; +- +- fragment@4 { +- target = <&spi0>; +- frag4: __overlay__ { +- }; +- }; +- +- __overrides__ { +- spioff = <&frag4>, "status=disabled"; +- }; + }; +-- +2.18.4 + + +From 5850f843f7638f53c739f558a51b582776f880b5 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 10 May 2021 22:04:44 +0100 +Subject: [PATCH 673/693] configs: Add NF_LOG_ARP=m and NF_LOG_NETDEV=m + +See: https://github.com/raspberrypi/linux/issues/3615 + +Signed-off-by: Phil Elwell +--- + arch/arm/configs/bcm2709_defconfig | 2 ++ + arch/arm/configs/bcm2711_defconfig | 2 ++ + arch/arm/configs/bcmrpi_defconfig | 2 ++ + arch/arm64/configs/bcm2711_defconfig | 2 ++ + arch/arm64/configs/bcmrpi3_defconfig | 2 ++ + 5 files changed, 10 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 073877ae2974..dd718c111532 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -123,6 +123,7 @@ CONFIG_IPV6_PIMSM_V2=y + CONFIG_NETFILTER=y + CONFIG_BRIDGE_NETFILTER=m + CONFIG_NF_CONNTRACK=m ++CONFIG_NF_LOG_NETDEV=m + CONFIG_NF_CONNTRACK_ZONES=y + CONFIG_NF_CONNTRACK_EVENTS=y + CONFIG_NF_CONNTRACK_TIMESTAMP=y +@@ -258,6 +259,7 @@ CONFIG_NFT_DUP_IPV4=m + CONFIG_NFT_FIB_IPV4=m + CONFIG_NF_TABLES_ARP=y + CONFIG_NF_FLOW_TABLE_IPV4=m ++CONFIG_NF_LOG_ARP=m + CONFIG_IP_NF_IPTABLES=m + CONFIG_IP_NF_MATCH_AH=m + CONFIG_IP_NF_MATCH_ECN=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index ca0c73831827..01ef252e33a5 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -124,6 +124,7 @@ CONFIG_IPV6_PIMSM_V2=y + CONFIG_NETFILTER=y + CONFIG_BRIDGE_NETFILTER=m + CONFIG_NF_CONNTRACK=m ++CONFIG_NF_LOG_NETDEV=m + CONFIG_NF_CONNTRACK_ZONES=y + CONFIG_NF_CONNTRACK_EVENTS=y + CONFIG_NF_CONNTRACK_TIMESTAMP=y +@@ -259,6 +260,7 @@ CONFIG_NFT_DUP_IPV4=m + CONFIG_NFT_FIB_IPV4=m + CONFIG_NF_TABLES_ARP=y + CONFIG_NF_FLOW_TABLE_IPV4=m ++CONFIG_NF_LOG_ARP=m + CONFIG_IP_NF_IPTABLES=m + CONFIG_IP_NF_MATCH_AH=m + CONFIG_IP_NF_MATCH_ECN=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index c71640dd0ce2..e625ac03f354 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -117,6 +117,7 @@ CONFIG_IPV6_PIMSM_V2=y + CONFIG_NETFILTER=y + CONFIG_BRIDGE_NETFILTER=m + CONFIG_NF_CONNTRACK=m ++CONFIG_NF_LOG_NETDEV=m + CONFIG_NF_CONNTRACK_ZONES=y + CONFIG_NF_CONNTRACK_EVENTS=y + CONFIG_NF_CONNTRACK_TIMESTAMP=y +@@ -252,6 +253,7 @@ CONFIG_NFT_DUP_IPV4=m + CONFIG_NFT_FIB_IPV4=m + CONFIG_NF_TABLES_ARP=y + CONFIG_NF_FLOW_TABLE_IPV4=m ++CONFIG_NF_LOG_ARP=m + CONFIG_IP_NF_IPTABLES=m + CONFIG_IP_NF_MATCH_AH=m + CONFIG_IP_NF_MATCH_ECN=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 23d951e4034f..ad3c5538483a 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -121,6 +121,7 @@ CONFIG_IPV6_PIMSM_V2=y + CONFIG_NETFILTER=y + CONFIG_BRIDGE_NETFILTER=m + CONFIG_NF_CONNTRACK=m ++CONFIG_NF_LOG_NETDEV=m + CONFIG_NF_CONNTRACK_ZONES=y + CONFIG_NF_CONNTRACK_EVENTS=y + CONFIG_NF_CONNTRACK_TIMESTAMP=y +@@ -256,6 +257,7 @@ CONFIG_NFT_DUP_IPV4=m + CONFIG_NFT_FIB_IPV4=m + CONFIG_NF_TABLES_ARP=y + CONFIG_NF_FLOW_TABLE_IPV4=m ++CONFIG_NF_LOG_ARP=m + CONFIG_IP_NF_IPTABLES=m + CONFIG_IP_NF_MATCH_AH=m + CONFIG_IP_NF_MATCH_ECN=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index c38726720f27..e10614d666dd 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -120,6 +120,7 @@ CONFIG_IPV6_PIMSM_V2=y + CONFIG_NETFILTER=y + CONFIG_BRIDGE_NETFILTER=m + CONFIG_NF_CONNTRACK=m ++CONFIG_NF_LOG_NETDEV=m + CONFIG_NF_CONNTRACK_ZONES=y + CONFIG_NF_CONNTRACK_EVENTS=y + CONFIG_NF_CONNTRACK_TIMESTAMP=y +@@ -255,6 +256,7 @@ CONFIG_NFT_DUP_IPV4=m + CONFIG_NFT_FIB_IPV4=m + CONFIG_NF_TABLES_ARP=y + CONFIG_NF_FLOW_TABLE_IPV4=m ++CONFIG_NF_LOG_ARP=m + CONFIG_IP_NF_IPTABLES=m + CONFIG_IP_NF_MATCH_AH=m + CONFIG_IP_NF_MATCH_ECN=m +-- +2.18.4 + + +From 5ea74809c8d668df19f36d3b19e837a92697e79e Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Tue, 11 May 2021 12:52:26 +0100 +Subject: [PATCH 674/693] media: i2c: ov5647: Correct pixel array offset + +The top offset in the pixel array is actually 6 (see page 3-1 of the +OV5647 data sheet). + +Fixes: f2f7ad5ce5e52 ("media: i2c: ov5647: Selection compliance fixes") +Signed-off-by: David Plowman +--- + drivers/media/i2c/ov5647.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c +index 40d0d45a2481..90486b528908 100644 +--- a/drivers/media/i2c/ov5647.c ++++ b/drivers/media/i2c/ov5647.c +@@ -77,7 +77,7 @@ + #define OV5647_NATIVE_HEIGHT 1956U + + #define OV5647_PIXEL_ARRAY_LEFT 16U +-#define OV5647_PIXEL_ARRAY_TOP 16U ++#define OV5647_PIXEL_ARRAY_TOP 6U + #define OV5647_PIXEL_ARRAY_WIDTH 2592U + #define OV5647_PIXEL_ARRAY_HEIGHT 1944U + +-- +2.18.4 + + +From d9bc2a4ad6eec04891b3e328ecd962f0bfd274ff Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Tue, 11 May 2021 12:57:22 +0100 +Subject: [PATCH 675/693] media: i2c: ov5647: Correct minimum VBLANK value + +Trial and error reveals that the minimum vblank value appears to be 24 +(the OV5647 data sheet does not give any clues). This fixes streaming +lock-ups in full resolution mode. + +Fixes: 9b5a5ebedc303 ("media: i2c: ov5647: Add support for V4L2_CID_VBLANK") +Signed-off-by: David Plowman +--- + drivers/media/i2c/ov5647.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c +index 90486b528908..0437ae2d8dbe 100644 +--- a/drivers/media/i2c/ov5647.c ++++ b/drivers/media/i2c/ov5647.c +@@ -81,7 +81,7 @@ + #define OV5647_PIXEL_ARRAY_WIDTH 2592U + #define OV5647_PIXEL_ARRAY_HEIGHT 1944U + +-#define OV5647_VBLANK_MIN 4 ++#define OV5647_VBLANK_MIN 24 + #define OV5647_VTS_MAX 32767 + + #define OV5647_EXPOSURE_MIN 4 +-- +2.18.4 + + +From 034d8cae2470eeda0a21628336550aec43bcaa78 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Wed, 12 May 2021 07:39:21 +0100 +Subject: [PATCH 676/693] media: i2c: ov5647: Fix v4l2-compliance failure + subscribing to events + +Fixes the following v4l2-compliance failure: + +fail: v4l2-test-controls.cpp(871): subscribe event for control 'User Controls' failed test + +Signed-off-by: David Plowman +--- + drivers/media/i2c/ov5647.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c +index 0437ae2d8dbe..98a5329d68fb 100644 +--- a/drivers/media/i2c/ov5647.c ++++ b/drivers/media/i2c/ov5647.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1039,6 +1040,8 @@ static const struct v4l2_subdev_core_ops ov5647_subdev_core_ops = { + .g_register = ov5647_sensor_get_register, + .s_register = ov5647_sensor_set_register, + #endif ++ .subscribe_event = v4l2_ctrl_subdev_subscribe_event, ++ .unsubscribe_event = v4l2_event_subdev_unsubscribe, + }; + + static const struct v4l2_rect * +-- +2.18.4 + + +From 0b9f6954cb7f1fdccc95a7f96c1df958d57d2ac7 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 12 May 2021 16:44:11 +0100 +Subject: [PATCH 677/693] dtoverlays: Add pinctrl-names to i2c0 overlay. + +Using dtoverlay=i2c0 failed to set up the pinctrl nodes as +pinctrl-name = "default"; was missing from the i2c0if node. + +https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=311686&p=1864112 + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/i2c0-overlay.dts | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/arm/boot/dts/overlays/i2c0-overlay.dts b/arch/arm/boot/dts/overlays/i2c0-overlay.dts +index 7c6771f84d8e..058f1cb76c69 100644 +--- a/arch/arm/boot/dts/overlays/i2c0-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c0-overlay.dts +@@ -8,6 +8,7 @@ + target = <&i2c0if>; + __overlay__ { + status = "okay"; ++ pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + }; + }; +-- +2.18.4 + + +From da42a044025f557f9e7668d194afdb592fb7c98c Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 12 May 2021 16:47:05 +0100 +Subject: [PATCH 678/693] dtoverlays: Update /__symbols__/i2c0 from i2c0 + overlay + +Update the symbol as well as the alias so that other overlays will +then be applied against the right node. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/i2c0-overlay.dts | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/i2c0-overlay.dts b/arch/arm/boot/dts/overlays/i2c0-overlay.dts +index 058f1cb76c69..46bf1bf2dc5c 100644 +--- a/arch/arm/boot/dts/overlays/i2c0-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c0-overlay.dts +@@ -65,6 +65,14 @@ + i2c0 = "/soc/i2c@7e205000"; + }; + }; ++ ++ fragment@8 { ++ target-path = "/__symbols__"; ++ __overlay__ { ++ i2c0 = "/soc/i2c@7e205000"; ++ }; ++ }; ++ + __overrides__ { + pins_0_1 = <0>,"+1-2-3-4"; + pins_28_29 = <0>,"-1+2-3-4"; +-- +2.18.4 + + +From 0c83e2e7e73a3d5a2fb4b3dcb42be01a0d05f57f Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Thu, 21 May 2020 11:49:37 +0100 +Subject: [PATCH 679/693] media: rpivid: Remove the need to have + num_entry_points set + +VAAPI H265 has num entry points but never sets it. Allow a VAAPI +shim to work without requiring rewriting the VAAPI driver. +num_entry_points can be calculated from the slice_segment_addr +of the next slice so delay processing until we have that. + +Also includes some minor cosmetics. + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid_h265.c | 699 +++++++++++---------- + 1 file changed, 365 insertions(+), 334 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index e6b07920aa8c..434a366ecfc2 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -202,8 +202,17 @@ struct rpivid_dec_env { + unsigned int dpbno_col; + u32 reg_slicestart; + int collocated_from_l0_flag; +- unsigned int wpp_entry_x; +- unsigned int wpp_entry_y; ++ /* ++ * Last CTB/Tile X,Y processed by (wpp_)entry_point ++ * Could be in _state as P0 only but needs updating where _state ++ * is const ++ */ ++ unsigned int entry_ctb_x; ++ unsigned int entry_ctb_y; ++ unsigned int entry_tile_x; ++ unsigned int entry_tile_y; ++ unsigned int entry_qp; ++ u32 entry_slice; + + u32 rpi_config2; + u32 rpi_framesize; +@@ -239,22 +248,17 @@ struct rpivid_dec_state { + struct v4l2_ctrl_hevc_pps pps; + + // Helper vars & tables derived from sps/pps +- unsigned int log2_ctb_size; /* log2 width of a CTB */ +- unsigned int ctb_width; /* Width in CTBs */ +- unsigned int ctb_height; /* Height in CTBs */ +- unsigned int ctb_size; /* Pic area in CTBs */ +- unsigned int num_tile_columns; +- unsigned int num_tile_rows; +- u8 column_width[member_size(struct v4l2_ctrl_hevc_pps, +- column_width_minus1)]; +- u8 row_height[member_size(struct v4l2_ctrl_hevc_pps, +- row_height_minus1)]; ++ unsigned int log2_ctb_size; /* log2 width of a CTB */ ++ unsigned int ctb_width; /* Width in CTBs */ ++ unsigned int ctb_height; /* Height in CTBs */ ++ unsigned int ctb_size; /* Pic area in CTBs */ ++ unsigned int tile_width; /* Width in tiles */ ++ unsigned int tile_height; /* Height in tiles */ + + int *col_bd; + int *row_bd; + int *ctb_addr_rs_to_ts; + int *ctb_addr_ts_to_rs; +- int *tile_id; + + // Aux starage for DPB + // Hold refs +@@ -274,6 +278,12 @@ struct rpivid_dec_state { + unsigned int slice_qp; + unsigned int max_num_merge_cand; // 0 if I-slice + bool dependent_slice_segment_flag; ++ ++ unsigned int start_ts; /* slice_segment_addr -> ts */ ++ unsigned int start_ctb_x; /* CTB X,Y of start_ts */ ++ unsigned int start_ctb_y; ++ unsigned int prev_ctb_x; /* CTB X,Y of start_ts - 1 */ ++ unsigned int prev_ctb_y; + }; + + static inline int clip_int(const int x, const int lo, const int hi) +@@ -319,15 +329,16 @@ static int ctb_to_tile(unsigned int ctb, unsigned int *bd, int num) + return i - 1; + } + +-static int ctb_to_slice_w_h(unsigned int ctb, int ctb_size, int width, +- unsigned int *bd, int num) ++static unsigned int ctb_to_tile_x(const struct rpivid_dec_state *const s, ++ const unsigned int ctb_x) + { +- if (ctb < bd[num - 1]) +- return ctb_size; +- else if (width % ctb_size) +- return width % ctb_size; +- else +- return ctb_size; ++ return ctb_to_tile(ctb_x, s->col_bd, s->tile_width); ++} ++ ++static unsigned int ctb_to_tile_y(const struct rpivid_dec_state *const s, ++ const unsigned int ctb_y) ++{ ++ return ctb_to_tile(ctb_y, s->row_bd, s->tile_height); + } + + static void aux_q_free(struct rpivid_ctx *const ctx, +@@ -532,6 +543,15 @@ static void write_prob(struct rpivid_dec_env *const de, + p1_apb_write(de, 0x1000 + i, + dst[i] + (dst[i + 1] << 8) + (dst[i + 2] << 16) + + (dst[i + 3] << 24)); ++ ++ /* ++ * Having written the prob array back it up ++ * This is not always needed but is a small overhead that simplifies ++ * (and speeds up) some multi-tile & WPP scenarios ++ * There are no scenarios where having written a prob we ever want ++ * a previous (non-initial) state back ++ */ ++ p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); + } + + static void write_scaling_factors(struct rpivid_dec_env *const de) +@@ -552,8 +572,8 @@ static inline __u32 dma_to_axi_addr(dma_addr_t a) + static void write_bitstream(struct rpivid_dec_env *const de, + const struct rpivid_dec_state *const s) + { +- // Note that FFmpeg removes emulation prevention bytes, so this is +- // matched in the configuration here. ++ // Note that FFmpeg V4L2 does not remove emulation prevention bytes, ++ // so this is matched in the configuration here. + // Whether that is the correct behaviour or not is not clear in the + // spec. + const int rpi_use_emu = 1; +@@ -579,78 +599,26 @@ static void write_bitstream(struct rpivid_dec_env *const de, + + ////////////////////////////////////////////////////////////////////////////// + +-static void write_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- const unsigned int slice_w, +- const unsigned int slice_h) +-{ +- u32 u32 = (s->sh->slice_type << 12) + +- (((s->sh->flags & +- V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA) != 0) +- << 14) + +- (((s->sh->flags & +- V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA) != 0) +- << 15) + +- (slice_w << 17) + (slice_h << 24); +- +- u32 |= (s->max_num_merge_cand << 0) + (s->nb_refs[L0] << 4) + +- (s->nb_refs[L1] << 8); +- +- if (s->sh->slice_type == HEVC_SLICE_B) +- u32 |= ((s->sh->flags & +- V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO) != 0) +- << 16; +- p1_apb_write(de, RPI_SLICE, u32); +-} +- +-////////////////////////////////////////////////////////////////////////////// +-// Tiles mode +- +-static void new_entry_point(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- const int do_bte, +- const int reset_qp_y, const int ctb_addr_ts) ++/* ++ * The slice constant part of the slice register - width and height need to ++ * be ORed in later as they are per-tile / WPP-row ++ */ ++static u32 slice_reg_const(const struct rpivid_dec_state *const s) + { +- int ctb_col = s->ctb_addr_ts_to_rs[ctb_addr_ts] % +- de->pic_width_in_ctbs_y; +- int ctb_row = s->ctb_addr_ts_to_rs[ctb_addr_ts] / +- de->pic_width_in_ctbs_y; +- +- int tile_x = ctb_to_tile(ctb_col, s->col_bd, s->num_tile_columns); +- int tile_y = ctb_to_tile(ctb_row, s->row_bd, s->num_tile_rows); +- +- int endx = s->col_bd[tile_x + 1] - 1; +- int endy = s->row_bd[tile_y + 1] - 1; +- +- u8 slice_w = ctb_to_slice_w_h(ctb_col, 1 << s->log2_ctb_size, +- s->sps.pic_width_in_luma_samples, +- s->col_bd, s->num_tile_columns); +- u8 slice_h = ctb_to_slice_w_h(ctb_row, 1 << s->log2_ctb_size, +- s->sps.pic_height_in_luma_samples, +- s->row_bd, s->num_tile_rows); +- +- p1_apb_write(de, RPI_TILESTART, +- s->col_bd[tile_x] + (s->row_bd[tile_y] << 16)); +- p1_apb_write(de, RPI_TILEEND, endx + (endy << 16)); +- +- if (do_bte) +- p1_apb_write(de, RPI_BEGINTILEEND, endx + (endy << 16)); +- +- write_slice(de, s, slice_w, slice_h); +- +- if (reset_qp_y) { +- unsigned int sps_qp_bd_offset = +- 6 * s->sps.bit_depth_luma_minus8; +- +- p1_apb_write(de, RPI_QP, sps_qp_bd_offset + s->slice_qp); +- } +- +- p1_apb_write(de, RPI_MODE, +- (0xFFFF << 0) + (0x0 << 16) + +- ((tile_x == s->num_tile_columns - 1) << 17) + +- ((tile_y == s->num_tile_rows - 1) << 18)); +- +- p1_apb_write(de, RPI_CONTROL, (ctb_col << 0) + (ctb_row << 16)); ++ u32 x = (s->max_num_merge_cand << 0) | ++ (s->nb_refs[L0] << 4) | ++ (s->nb_refs[L1] << 8) | ++ (s->sh->slice_type << 12); ++ ++ if (s->sh->flags & V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA) ++ x |= BIT(14); ++ if (s->sh->flags & V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA) ++ x |= BIT(15); ++ if (s->sh->slice_type == HEVC_SLICE_B && ++ (s->sh->flags & V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO)) ++ x |= BIT(16); ++ ++ return x; + } + + ////////////////////////////////////////////////////////////////////////////// +@@ -934,197 +902,256 @@ static void pre_slice_decode(struct rpivid_dec_env *const de, + (sh->slice_cb_qp_offset & 31)); // CMD_QPOFF + } + +-////////////////////////////////////////////////////////////////////////////// +-// Write STATUS register with expected end CTU address of previous slice +- +-static void end_previous_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- const int ctb_addr_ts) +-{ +- int last_x = +- s->ctb_addr_ts_to_rs[ctb_addr_ts - 1] % de->pic_width_in_ctbs_y; +- int last_y = +- s->ctb_addr_ts_to_rs[ctb_addr_ts - 1] / de->pic_width_in_ctbs_y; +- +- p1_apb_write(de, RPI_STATUS, 1 + (last_x << 5) + (last_y << 18)); +-} +- +-static void wpp_pause(struct rpivid_dec_env *const de, int ctb_row) +-{ +- p1_apb_write(de, RPI_STATUS, (ctb_row << 18) + 0x25); +- p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); +- p1_apb_write(de, RPI_MODE, +- ctb_row == de->pic_height_in_ctbs_y - 1 ? +- 0x70000 : 0x30000); +- p1_apb_write(de, RPI_CONTROL, (ctb_row << 16) + 2); +-} +- +-static void wpp_end_previous_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- int ctb_addr_ts) ++static void write_slice(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s, ++ const u32 slice_const, ++ const unsigned int ctb_col, ++ const unsigned int ctb_row) + { +- int new_x = s->sh->slice_segment_addr % de->pic_width_in_ctbs_y; +- int new_y = s->sh->slice_segment_addr / de->pic_width_in_ctbs_y; +- int last_x = +- s->ctb_addr_ts_to_rs[ctb_addr_ts - 1] % de->pic_width_in_ctbs_y; +- int last_y = +- s->ctb_addr_ts_to_rs[ctb_addr_ts - 1] / de->pic_width_in_ctbs_y; +- +- if (de->wpp_entry_x < 2 && (de->wpp_entry_y < new_y || new_x > 2) && +- de->pic_width_in_ctbs_y > 2) +- wpp_pause(de, last_y); +- p1_apb_write(de, RPI_STATUS, 1 + (last_x << 5) + (last_y << 18)); +- if (new_x == 2 || (de->pic_width_in_ctbs_y == 2 && +- de->wpp_entry_y < new_y)) +- p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); ++ const unsigned int cs = (1 << s->log2_ctb_size); ++ const unsigned int w_last = s->sps.pic_width_in_luma_samples & (cs - 1); ++ const unsigned int h_last = s->sps.pic_height_in_luma_samples & (cs - 1); ++ ++ p1_apb_write(de, RPI_SLICE, ++ slice_const | ++ ((ctb_col + 1 < s->ctb_width || !w_last ? ++ cs : w_last) << 17) | ++ ((ctb_row + 1 < s->ctb_height || !h_last ? ++ cs : h_last) << 24)); + } + +-////////////////////////////////////////////////////////////////////////////// +-// Wavefront mode ++#define PAUSE_MODE_WPP 1 ++#define PAUSE_MODE_TILE 0xffff + +-static void wpp_entry_point(struct rpivid_dec_env *const de, ++/* ++ * N.B. This can be called to fill in data from the previous slice so must not ++ * use any state data that may change from slice to slice (e.g. qp) ++ */ ++static void new_entry_point(struct rpivid_dec_env *const de, + const struct rpivid_dec_state *const s, +- const int do_bte, +- const int reset_qp_y, const int ctb_addr_ts) ++ const bool do_bte, ++ const bool reset_qp_y, ++ const u32 pause_mode, ++ const unsigned int tile_x, ++ const unsigned int tile_y, ++ const unsigned int ctb_col, ++ const unsigned int ctb_row, ++ const unsigned int slice_qp, ++ const u32 slice_const) + { +- int ctb_size = 1 << s->log2_ctb_size; +- int ctb_addr_rs = s->ctb_addr_ts_to_rs[ctb_addr_ts]; +- +- int ctb_col = de->wpp_entry_x = ctb_addr_rs % de->pic_width_in_ctbs_y; +- int ctb_row = de->wpp_entry_y = ctb_addr_rs / de->pic_width_in_ctbs_y; +- +- int endx = de->pic_width_in_ctbs_y - 1; +- int endy = ctb_row; ++ const unsigned int endx = s->col_bd[tile_x + 1] - 1; ++ const unsigned int endy = (pause_mode == PAUSE_MODE_WPP) ? ++ ctb_row : s->row_bd[tile_y + 1] - 1; + +- u8 slice_w = ctb_to_slice_w_h(ctb_col, ctb_size, +- s->sps.pic_width_in_luma_samples, +- s->col_bd, s->num_tile_columns); +- u8 slice_h = ctb_to_slice_w_h(ctb_row, ctb_size, +- s->sps.pic_height_in_luma_samples, +- s->row_bd, s->num_tile_rows); +- +- p1_apb_write(de, RPI_TILESTART, 0); +- p1_apb_write(de, RPI_TILEEND, endx + (endy << 16)); ++ p1_apb_write(de, RPI_TILESTART, ++ s->col_bd[tile_x] | (s->row_bd[tile_y] << 16)); ++ p1_apb_write(de, RPI_TILEEND, endx | (endy << 16)); + + if (do_bte) +- p1_apb_write(de, RPI_BEGINTILEEND, endx + (endy << 16)); ++ p1_apb_write(de, RPI_BEGINTILEEND, endx | (endy << 16)); + +- write_slice(de, s, slice_w, +- ctb_row == de->pic_height_in_ctbs_y - 1 ? +- slice_h : ctb_size); ++ write_slice(de, s, slice_const, endx, endy); + + if (reset_qp_y) { + unsigned int sps_qp_bd_offset = + 6 * s->sps.bit_depth_luma_minus8; + +- p1_apb_write(de, RPI_QP, sps_qp_bd_offset + s->slice_qp); ++ p1_apb_write(de, RPI_QP, sps_qp_bd_offset + slice_qp); + } + + p1_apb_write(de, RPI_MODE, +- ctb_row == de->pic_height_in_ctbs_y - 1 ? +- 0x60001 : 0x20001); +- p1_apb_write(de, RPI_CONTROL, (ctb_col << 0) + (ctb_row << 16)); ++ pause_mode | ++ ((endx == s->ctb_width - 1) << 17) | ++ ((endy == s->ctb_height - 1) << 18)); ++ ++ p1_apb_write(de, RPI_CONTROL, (ctb_col << 0) | (ctb_row << 16)); ++ ++ de->entry_tile_x = tile_x; ++ de->entry_tile_y = tile_y; ++ de->entry_ctb_x = ctb_col; ++ de->entry_ctb_y = ctb_row; ++ de->entry_qp = slice_qp; ++ de->entry_slice = slice_const; + } + + ////////////////////////////////////////////////////////////////////////////// + // Wavefront mode + ++static void wpp_pause(struct rpivid_dec_env *const de, int ctb_row) ++{ ++ p1_apb_write(de, RPI_STATUS, (ctb_row << 18) | 0x25); ++ p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); ++ p1_apb_write(de, RPI_MODE, ++ ctb_row == de->pic_height_in_ctbs_y - 1 ? ++ 0x70000 : 0x30000); ++ p1_apb_write(de, RPI_CONTROL, (ctb_row << 16) + 2); ++} ++ ++static void wpp_entry_fill(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s, ++ const unsigned int last_y) ++{ ++ const unsigned int last_x = s->ctb_width - 1; ++ ++ while (de->entry_ctb_y < last_y) { ++ /* wpp_entry_x/y set by wpp_entry_point */ ++ if (s->ctb_width > 2) ++ wpp_pause(de, de->entry_ctb_y); ++ p1_apb_write(de, RPI_STATUS, ++ (de->entry_ctb_y << 18) | (last_x << 5) | 2); ++ ++ /* if width == 1 then the saved state is the init one */ ++ if (s->ctb_width == 2) ++ p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); ++ else ++ p1_apb_write(de, RPI_TRANSFER, PROB_RELOAD); ++ ++ new_entry_point(de, s, false, true, PAUSE_MODE_WPP, ++ 0, 0, 0, de->entry_ctb_y + 1, ++ de->entry_qp, de->entry_slice); ++ } ++} ++ ++static void wpp_end_previous_slice(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) ++{ ++ wpp_entry_fill(de, s, s->prev_ctb_y); ++ ++ if (de->entry_ctb_x < 2 && ++ (de->entry_ctb_y < s->start_ctb_y || s->start_ctb_x > 2) && ++ s->ctb_width > 2) ++ wpp_pause(de, s->prev_ctb_y); ++ p1_apb_write(de, RPI_STATUS, ++ 1 | (s->prev_ctb_x << 5) | (s->prev_ctb_y << 18)); ++ if (s->start_ctb_x == 2 || ++ (s->ctb_width == 2 && de->entry_ctb_y < s->start_ctb_y)) ++ p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); ++} ++ ++/* Only main profile supported so WPP => !Tiles which makes some of the ++ * next chunk code simpler ++ */ + static void wpp_decode_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- const struct v4l2_ctrl_hevc_slice_params *sh, +- int ctb_addr_ts) ++ const struct rpivid_dec_state *const s) + { +- int i, reset_qp_y = 1; +- int indep = !s->dependent_slice_segment_flag; +- int ctb_col = s->sh->slice_segment_addr % de->pic_width_in_ctbs_y; ++ bool reset_qp_y = true; ++ const bool indep = !s->dependent_slice_segment_flag; + +- if (ctb_addr_ts) +- wpp_end_previous_slice(de, s, ctb_addr_ts); ++ if (s->start_ts) ++ wpp_end_previous_slice(de, s); + pre_slice_decode(de, s); + write_bitstream(de, s); +- if (ctb_addr_ts == 0 || indep || de->pic_width_in_ctbs_y == 1) ++ ++ if (!s->start_ts || indep || s->ctb_width == 1) + write_prob(de, s); +- else if (ctb_col == 0) ++ else if (!s->start_ctb_x) + p1_apb_write(de, RPI_TRANSFER, PROB_RELOAD); + else +- reset_qp_y = 0; ++ reset_qp_y = false; ++ + program_slicecmds(de, s->slice_idx); + new_slice_segment(de, s); +- wpp_entry_point(de, s, indep, reset_qp_y, ctb_addr_ts); ++ new_entry_point(de, s, indep, reset_qp_y, PAUSE_MODE_WPP, ++ 0, 0, s->start_ctb_x, s->start_ctb_y, ++ s->slice_qp, slice_reg_const(s)); ++ ++ if (s->frame_end) { ++ wpp_entry_fill(de, s, s->ctb_height - 1); + +- for (i = 0; i < s->sh->num_entry_point_offsets; i++) { +- int ctb_addr_rs = s->ctb_addr_ts_to_rs[ctb_addr_ts]; +- int ctb_row = ctb_addr_rs / de->pic_width_in_ctbs_y; +- int last_x = de->pic_width_in_ctbs_y - 1; ++ if (de->entry_ctb_x < 2 && s->ctb_width > 2) ++ wpp_pause(de, s->ctb_height - 1); + +- if (de->pic_width_in_ctbs_y > 2) +- wpp_pause(de, ctb_row); + p1_apb_write(de, RPI_STATUS, +- (ctb_row << 18) + (last_x << 5) + 2); +- if (de->pic_width_in_ctbs_y == 2) +- p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); +- if (de->pic_width_in_ctbs_y == 1) +- write_prob(de, s); +- else +- p1_apb_write(de, RPI_TRANSFER, PROB_RELOAD); +- ctb_addr_ts += s->column_width[0]; +- wpp_entry_point(de, s, 0, 1, ctb_addr_ts); ++ 1 | ((s->ctb_width - 1) << 5) | ++ ((s->ctb_height - 1) << 18)); + } ++ + } + + ////////////////////////////////////////////////////////////////////////////// + // Tiles mode + ++static void tile_entry_fill(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s, ++ const unsigned int last_tile_x, ++ const unsigned int last_tile_y) ++{ ++ while (de->entry_tile_y < last_tile_y || ++ (de->entry_tile_y == last_tile_y && ++ de->entry_tile_x < last_tile_x)) { ++ unsigned int t_x = de->entry_tile_x; ++ unsigned int t_y = de->entry_tile_y; ++ const unsigned int last_x = s->col_bd[t_x + 1] - 1; ++ const unsigned int last_y = s->row_bd[t_y + 1] - 1; ++ ++ p1_apb_write(de, RPI_STATUS, ++ 2 | (last_x << 5) | (last_y << 18)); ++ p1_apb_write(de, RPI_TRANSFER, PROB_RELOAD); ++ ++ // Inc tile ++ if (++t_x >= s->tile_width) { ++ t_x = 0; ++ ++t_y; ++ } ++ ++ new_entry_point(de, s, false, true, PAUSE_MODE_TILE, ++ t_x, t_y, s->col_bd[t_x], s->row_bd[t_y], ++ de->entry_qp, de->entry_slice); ++ } ++} ++ ++/* ++ * Write STATUS register with expected end CTU address of previous slice ++ */ ++static void end_previous_slice(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) ++{ ++ tile_entry_fill(de, s, ++ ctb_to_tile_x(s, s->prev_ctb_x), ++ ctb_to_tile_y(s, s->prev_ctb_y)); ++ p1_apb_write(de, RPI_STATUS, ++ 1 | (s->prev_ctb_x << 5) | (s->prev_ctb_y << 18)); ++} ++ + static void decode_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- const struct v4l2_ctrl_hevc_slice_params *const sh, +- int ctb_addr_ts) ++ const struct rpivid_dec_state *const s) + { +- int i, reset_qp_y; ++ bool reset_qp_y; ++ unsigned int tile_x = ctb_to_tile_x(s, s->start_ctb_x); ++ unsigned int tile_y = ctb_to_tile_y(s, s->start_ctb_y); + +- if (ctb_addr_ts) +- end_previous_slice(de, s, ctb_addr_ts); ++ if (s->start_ts) ++ end_previous_slice(de, s); + + pre_slice_decode(de, s); + write_bitstream(de, s); + +-#if DEBUG_TRACE_P1_CMD +- if (p1_z < 256) { +- v4l2_info(&de->ctx->dev->v4l2_dev, +- "TS=%d, tile=%d/%d, dss=%d, flags=%#llx\n", +- ctb_addr_ts, s->tile_id[ctb_addr_ts], +- s->tile_id[ctb_addr_ts - 1], +- s->dependent_slice_segment_flag, sh->flags); +- } +-#endif +- +- reset_qp_y = ctb_addr_ts == 0 || +- s->tile_id[ctb_addr_ts] != s->tile_id[ctb_addr_ts - 1] || +- !s->dependent_slice_segment_flag; ++ reset_qp_y = !s->start_ts || ++ !s->dependent_slice_segment_flag || ++ tile_x != ctb_to_tile_x(s, s->prev_ctb_x) || ++ tile_y != ctb_to_tile_y(s, s->prev_ctb_y); + if (reset_qp_y) + write_prob(de, s); + + program_slicecmds(de, s->slice_idx); + new_slice_segment(de, s); + new_entry_point(de, s, !s->dependent_slice_segment_flag, reset_qp_y, +- ctb_addr_ts); +- +- for (i = 0; i < s->sh->num_entry_point_offsets; i++) { +- int ctb_addr_rs = s->ctb_addr_ts_to_rs[ctb_addr_ts]; +- int ctb_col = ctb_addr_rs % de->pic_width_in_ctbs_y; +- int ctb_row = ctb_addr_rs / de->pic_width_in_ctbs_y; +- int tile_x = ctb_to_tile(ctb_col, s->col_bd, +- s->num_tile_columns - 1); +- int tile_y = +- ctb_to_tile(ctb_row, s->row_bd, s->num_tile_rows - 1); +- int last_x = s->col_bd[tile_x + 1] - 1; +- int last_y = s->row_bd[tile_y + 1] - 1; ++ PAUSE_MODE_TILE, ++ tile_x, tile_y, s->start_ctb_x, s->start_ctb_y, ++ s->slice_qp, slice_reg_const(s)); + ++ /* ++ * If this is the last slice then fill in the other tile entries ++ * now, otherwise this will be done at the start of the next slice ++ * when it will be known where this slice finishes ++ */ ++ if (s->frame_end) { ++ tile_entry_fill(de, s, ++ s->tile_width - 1, ++ s->tile_height - 1); + p1_apb_write(de, RPI_STATUS, +- 2 + (last_x << 5) + (last_y << 18)); +- write_prob(de, s); +- ctb_addr_ts += s->column_width[tile_x] * s->row_height[tile_y]; +- new_entry_point(de, s, 0, 1, ctb_addr_ts); ++ 1 | ((s->ctb_width - 1) << 5) | ++ ((s->ctb_height - 1) << 18)); + } + } + +@@ -1132,13 +1159,12 @@ static void decode_slice(struct rpivid_dec_env *const de, + // Scaling factors + + static void expand_scaling_list(const unsigned int size_id, +- const unsigned int matrix_id, u8 *const dst0, ++ u8 *const dst0, + const u8 *const src0, uint8_t dc) + { + u8 *d; + unsigned int x, y; + +- // FIXME: matrix_id is unused ? + switch (size_id) { + case 0: + memcpy(dst0, src0, 16); +@@ -1199,24 +1225,20 @@ static void populate_scaling_factors(const struct rpivid_run *const run, + unsigned int mid; + + for (mid = 0; mid < 6; mid++) +- expand_scaling_list(0, mid, +- de->scaling_factors + ++ expand_scaling_list(0, de->scaling_factors + + scaling_factor_offsets[0][mid], + sl->scaling_list_4x4[mid], 0); + for (mid = 0; mid < 6; mid++) +- expand_scaling_list(1, mid, +- de->scaling_factors + ++ expand_scaling_list(1, de->scaling_factors + + scaling_factor_offsets[1][mid], + sl->scaling_list_8x8[mid], 0); + for (mid = 0; mid < 6; mid++) +- expand_scaling_list(2, mid, +- de->scaling_factors + ++ expand_scaling_list(2, de->scaling_factors + + scaling_factor_offsets[2][mid], + sl->scaling_list_16x16[mid], + sl->scaling_list_dc_coef_16x16[mid]); +- for (mid = 0; mid < 2; mid += 1) +- expand_scaling_list(3, mid, +- de->scaling_factors + ++ for (mid = 0; mid < 2; mid++) ++ expand_scaling_list(3, de->scaling_factors + + scaling_factor_offsets[3][mid], + sl->scaling_list_32x32[mid], + sl->scaling_list_dc_coef_32x32[mid]); +@@ -1228,8 +1250,6 @@ static void free_ps_info(struct rpivid_dec_state *const s) + s->ctb_addr_rs_to_ts = NULL; + kfree(s->ctb_addr_ts_to_rs); + s->ctb_addr_ts_to_rs = NULL; +- kfree(s->tile_id); +- s->tile_id = NULL; + + kfree(s->col_bd); + s->col_bd = NULL; +@@ -1237,10 +1257,52 @@ static void free_ps_info(struct rpivid_dec_state *const s) + s->row_bd = NULL; + } + ++static unsigned int tile_width(const struct rpivid_dec_state *const s, ++ const unsigned int t_x) ++{ ++ return s->col_bd[t_x + 1] - s->col_bd[t_x]; ++} ++ ++static unsigned int tile_height(const struct rpivid_dec_state *const s, ++ const unsigned int t_y) ++{ ++ return s->row_bd[t_y + 1] - s->row_bd[t_y]; ++} ++ ++static void fill_rs_to_ts(struct rpivid_dec_state *const s) ++{ ++ unsigned int ts = 0; ++ unsigned int t_y; ++ unsigned int tr_rs = 0; ++ ++ for (t_y = 0; t_y != s->tile_height; ++t_y) { ++ const unsigned int t_h = tile_height(s, t_y); ++ unsigned int t_x; ++ unsigned int tc_rs = tr_rs; ++ ++ for (t_x = 0; t_x != s->tile_width; ++t_x) { ++ const unsigned int t_w = tile_width(s, t_x); ++ unsigned int y; ++ unsigned int rs = tc_rs; ++ ++ for (y = 0; y != t_h; ++y) { ++ unsigned int x; ++ ++ for (x = 0; x != t_w; ++x) { ++ s->ctb_addr_rs_to_ts[rs + x] = ts; ++ s->ctb_addr_ts_to_rs[ts] = rs + x; ++ ++ts; ++ } ++ rs += s->ctb_width; ++ } ++ tc_rs += t_w; ++ } ++ tr_rs += t_h * s->ctb_width; ++ } ++} ++ + static int updated_ps(struct rpivid_dec_state *const s) + { +- unsigned int ctb_addr_rs; +- int j, x, y, tile_id; + unsigned int i; + + free_ps_info(s); +@@ -1259,104 +1321,49 @@ static int updated_ps(struct rpivid_dec_state *const s) + + // Inferred parameters + +- if (!(s->pps.flags & V4L2_HEVC_PPS_FLAG_TILES_ENABLED)) { +- s->num_tile_columns = 1; +- s->num_tile_rows = 1; +- s->column_width[0] = s->ctb_width; +- s->row_height[0] = s->ctb_height; +- } else { +- s->num_tile_columns = s->pps.num_tile_columns_minus1 + 1; +- s->num_tile_rows = s->pps.num_tile_rows_minus1 + 1; +- for (i = 0; i < s->num_tile_columns; ++i) +- s->column_width[i] = s->pps.column_width_minus1[i] + 1; +- for (i = 0; i < s->num_tile_rows; ++i) +- s->row_height[i] = s->pps.row_height_minus1[i] + 1; +- } +- +- s->col_bd = kmalloc((s->num_tile_columns + 1) * sizeof(*s->col_bd), +- GFP_KERNEL); +- s->row_bd = kmalloc((s->num_tile_rows + 1) * sizeof(*s->row_bd), +- GFP_KERNEL); +- +- s->col_bd[0] = 0; +- for (i = 0; i < s->num_tile_columns; i++) +- s->col_bd[i + 1] = s->col_bd[i] + s->column_width[i]; +- +- s->row_bd[0] = 0; +- for (i = 0; i < s->num_tile_rows; i++) +- s->row_bd[i + 1] = s->row_bd[i] + s->row_height[i]; +- + s->ctb_addr_rs_to_ts = kmalloc_array(s->ctb_size, + sizeof(*s->ctb_addr_rs_to_ts), + GFP_KERNEL); + s->ctb_addr_ts_to_rs = kmalloc_array(s->ctb_size, + sizeof(*s->ctb_addr_ts_to_rs), + GFP_KERNEL); +- s->tile_id = kmalloc_array(s->ctb_size, sizeof(*s->tile_id), +- GFP_KERNEL); +- +- for (ctb_addr_rs = 0; ctb_addr_rs < s->ctb_size; ctb_addr_rs++) { +- int tb_x = ctb_addr_rs % s->ctb_width; +- int tb_y = ctb_addr_rs / s->ctb_width; +- int tile_x = 0; +- int tile_y = 0; +- int val = 0; +- +- for (i = 0; i < s->num_tile_columns; i++) { +- if (tb_x < s->col_bd[i + 1]) { +- tile_x = i; +- break; +- } +- } + +- for (i = 0; i < s->num_tile_rows; i++) { +- if (tb_y < s->row_bd[i + 1]) { +- tile_y = i; +- break; +- } +- } ++ if (!(s->pps.flags & V4L2_HEVC_PPS_FLAG_TILES_ENABLED)) { ++ s->tile_width = 1; ++ s->tile_height = 1; ++ } else { ++ s->tile_width = s->pps.num_tile_columns_minus1 + 1; ++ s->tile_height = s->pps.num_tile_rows_minus1 + 1; ++ } + +- for (i = 0; i < tile_x; i++) +- val += s->row_height[tile_y] * s->column_width[i]; +- for (i = 0; i < tile_y; i++) +- val += s->ctb_width * s->row_height[i]; ++ s->col_bd = kmalloc((s->tile_width + 1) * sizeof(*s->col_bd), ++ GFP_KERNEL); ++ s->row_bd = kmalloc((s->tile_height + 1) * sizeof(*s->row_bd), ++ GFP_KERNEL); + +- val += (tb_y - s->row_bd[tile_y]) * s->column_width[tile_x] + +- tb_x - s->col_bd[tile_x]; ++ s->col_bd[0] = 0; ++ for (i = 1; i < s->tile_width; i++) ++ s->col_bd[i] = s->col_bd[i - 1] + ++ s->pps.column_width_minus1[i - 1] + 1; ++ s->col_bd[s->tile_width] = s->ctb_width; + +- s->ctb_addr_rs_to_ts[ctb_addr_rs] = val; +- s->ctb_addr_ts_to_rs[val] = ctb_addr_rs; +- } ++ s->row_bd[0] = 0; ++ for (i = 1; i < s->tile_height; i++) ++ s->row_bd[i] = s->row_bd[i - 1] + ++ s->pps.row_height_minus1[i - 1] + 1; ++ s->row_bd[s->tile_height] = s->ctb_height; + +- for (j = 0, tile_id = 0; j < s->num_tile_rows; j++) +- for (i = 0; i < s->num_tile_columns; i++, tile_id++) +- for (y = s->row_bd[j]; y < s->row_bd[j + 1]; y++) +- for (x = s->col_bd[i]; +- x < s->col_bd[i + 1]; +- x++) +- s->tile_id[s->ctb_addr_rs_to_ts +- [y * s->ctb_width + +- x]] = tile_id; ++ fill_rs_to_ts(s); + + return 0; + } + +-static int frame_end(struct rpivid_dev *const dev, +- struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s) ++static int write_cmd_buffer(struct rpivid_dev *const dev, ++ struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) + { +- const unsigned int last_x = s->col_bd[s->num_tile_columns] - 1; +- const unsigned int last_y = s->row_bd[s->num_tile_rows] - 1; +- size_t cmd_size; +- +- if (s->pps.flags & V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED) { +- if (de->wpp_entry_x < 2 && de->pic_width_in_ctbs_y > 2) +- wpp_pause(de, last_y); +- } +- p1_apb_write(de, RPI_STATUS, 1 + (last_x << 5) + (last_y << 18)); +- + // Copy commands out to dma buf +- cmd_size = de->cmd_len * sizeof(de->cmd_fifo[0]); ++ const size_t cmd_size = de->cmd_len * sizeof(de->cmd_fifo[0]); + + if (!de->cmd_copy_gptr->ptr || cmd_size > de->cmd_copy_gptr->size) { + size_t cmd_alloc = round_up_size(cmd_size); +@@ -1521,18 +1528,19 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + struct rpivid_q_aux *dpb_q_aux[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; + struct rpivid_dec_state *const s = ctx->state; + struct vb2_queue *vq; +- struct rpivid_dec_env *de; +- int ctb_addr_ts; ++ struct rpivid_dec_env *de = ctx->dec0; ++ unsigned int prev_rs; + unsigned int i; + int use_aux; + bool slice_temporal_mvp; + ++ xtrace_in(dev, de); ++ + pred_weight_table = &sh->pred_weight_table; + + s->frame_end = + ((run->src->flags & V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF) == 0); + +- de = ctx->dec0; + slice_temporal_mvp = (sh->flags & + V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED); + +@@ -1662,6 +1670,13 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + s->sps.pic_height_in_luma_samples); + goto fail; + } ++ if ((s->tile_width != 1 || s->tile_height != 1) && ++ (s->pps.flags & ++ V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED)) { ++ v4l2_warn(&dev->v4l2_dev, ++ "Tiles + WPP not supported\n"); ++ goto fail; ++ } + + // Fill in ref planes with our address s.t. if we mess + // up refs somehow then we still have a valid address +@@ -1760,15 +1775,24 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + if (s->sps.flags & V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED) + populate_scaling_factors(run, de, s); + +- ctb_addr_ts = s->ctb_addr_rs_to_ts[sh->slice_segment_addr]; ++ // Calc all the random coord info to avoid repeated conversion in/out ++ s->start_ts = s->ctb_addr_rs_to_ts[sh->slice_segment_addr]; ++ s->start_ctb_x = sh->slice_segment_addr % de->pic_width_in_ctbs_y; ++ s->start_ctb_y = sh->slice_segment_addr / de->pic_width_in_ctbs_y; ++ // Last CTB of previous slice ++ prev_rs = !s->start_ts ? 0 : s->ctb_addr_ts_to_rs[s->start_ts - 1]; ++ s->prev_ctb_x = prev_rs % de->pic_width_in_ctbs_y; ++ s->prev_ctb_y = prev_rs / de->pic_width_in_ctbs_y; + + if ((s->pps.flags & V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED)) +- wpp_decode_slice(de, s, sh, ctb_addr_ts); ++ wpp_decode_slice(de, s); + else +- decode_slice(de, s, sh, ctb_addr_ts); ++ decode_slice(de, s); + +- if (!s->frame_end) ++ if (!s->frame_end) { ++ xtrace_ok(dev, de); + return; ++ } + + // Frame end + memset(dpb_q_aux, 0, +@@ -1776,8 +1800,9 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + /* + * Need Aux ents for all (ref) DPB ents if temporal MV could + * be enabled for any pic +- * ** At the moment we have aux ents for all pics whether or not +- * they are ref ++ * ** At the moment we create aux ents for all pics whether or not ++ * they are ref - they should then be discarded by the DPB-aux ++ * garbage collection code + */ + use_aux = ((s->sps.flags & + V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED) != 0); +@@ -1795,7 +1820,7 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + } + + // v4l2_info(&dev->v4l2_dev, "rpivid_h265_end of frame\n"); +- if (frame_end(dev, de, s)) ++ if (write_cmd_buffer(dev, de, s)) + goto fail; + + for (i = 0; i < sh->num_active_dpb_entries; ++i) { +@@ -1876,6 +1901,7 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + } + + de->state = RPIVID_DECODE_PHASE1; ++ xtrace_ok(dev, de); + return; + + fail: +@@ -1883,6 +1909,7 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + // Actual error reporting happens in Trigger + de->state = s->frame_end ? RPIVID_DECODE_ERROR_DONE : + RPIVID_DECODE_ERROR_CONTINUE; ++ xtrace_fail(dev, de); + } + + ////////////////////////////////////////////////////////////////////////////// +@@ -2210,6 +2237,10 @@ static int rpivid_h265_start(struct rpivid_ctx *ctx) + size_t pu_alloc; + size_t coeff_alloc; + ++#if DEBUG_TRACE_P1_CMD ++ p1_z = 0; ++#endif ++ + // Generate a sanitised WxH for memory alloc + // Assume HD if unset + if (w == 0) +-- +2.18.4 + + +From a657309b7aa49c54b037dc0b532cf2fc0ff0ec74 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Thu, 11 Mar 2021 12:51:00 +0000 +Subject: [PATCH 680/693] media: rpivid: Convert to MPLANE + +Use multi-planar interface rather than single plane interface. This +allows dmabufs holding compressed data to be resized. + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid.c | 2 +- + drivers/staging/media/rpivid/rpivid.h | 4 +- + drivers/staging/media/rpivid/rpivid_h265.c | 9 ++- + drivers/staging/media/rpivid/rpivid_video.c | 88 ++++++++++----------- + drivers/staging/media/rpivid/rpivid_video.h | 4 +- + 5 files changed, 52 insertions(+), 55 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid.c b/drivers/staging/media/rpivid/rpivid.c +index 4e28c9d91192..08c838fcb577 100644 +--- a/drivers/staging/media/rpivid/rpivid.c ++++ b/drivers/staging/media/rpivid/rpivid.c +@@ -283,7 +283,7 @@ static const struct video_device rpivid_video_device = { + .ioctl_ops = &rpivid_ioctl_ops, + .minor = -1, + .release = video_device_release_empty, +- .device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING, ++ .device_caps = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_STREAMING, + }; + + static const struct v4l2_m2m_ops rpivid_m2m_ops = { +diff --git a/drivers/staging/media/rpivid/rpivid.h b/drivers/staging/media/rpivid/rpivid.h +index f85cf9d08926..1987a11dd0be 100644 +--- a/drivers/staging/media/rpivid/rpivid.h ++++ b/drivers/staging/media/rpivid/rpivid.h +@@ -85,8 +85,8 @@ struct rpivid_ctx { + struct v4l2_fh fh; + struct rpivid_dev *dev; + +- struct v4l2_pix_format src_fmt; +- struct v4l2_pix_format dst_fmt; ++ struct v4l2_pix_format_mplane src_fmt; ++ struct v4l2_pix_format_mplane dst_fmt; + int dst_fmt_set; + // fatal_err is set if an error has occurred s.t. decode cannot + // continue (such as running out of CMA) +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index 434a366ecfc2..4244532fca77 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -1613,7 +1613,7 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + de->cmd_copy_gptr = ctx->cmdbufs + 0; + + de->frame_c_offset = ctx->dst_fmt.height * 128; +- de->frame_stride = ctx->dst_fmt.bytesperline * 128; ++ de->frame_stride = ctx->dst_fmt.plane_fmt[0].bytesperline * 128; + de->frame_addr = + vb2_dma_contig_plane_dma_addr(&run->dst->vb2_buf, 0); + de->frame_aux = NULL; +@@ -1654,11 +1654,11 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + goto fail; + } + if (run->dst->planes[0].length < +- ctx->dst_fmt.sizeimage) { ++ ctx->dst_fmt.plane_fmt[0].sizeimage) { + v4l2_warn(&dev->v4l2_dev, + "Capture plane[0] length (%d) < sizeimage (%d)\n", + run->dst->planes[0].length, +- ctx->dst_fmt.sizeimage); ++ ctx->dst_fmt.plane_fmt[0].sizeimage); + goto fail; + } + +@@ -1812,7 +1812,8 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + // slices. If this changes we will need idx mapping code. + // Uses sh so here rather than trigger + +- vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE); ++ vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, ++ V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); + + if (!vq) { + v4l2_err(&dev->v4l2_dev, "VQ gone!\n"); +diff --git a/drivers/staging/media/rpivid/rpivid_video.c b/drivers/staging/media/rpivid/rpivid_video.c +index 37c8f62649d6..30fa77652790 100644 +--- a/drivers/staging/media/rpivid/rpivid_video.c ++++ b/drivers/staging/media/rpivid/rpivid_video.c +@@ -42,25 +42,27 @@ static inline unsigned int constrain2x(unsigned int x, unsigned int y) + (x > y * 2) ? y : x; + } + +-int rpivid_prepare_src_format(struct v4l2_pix_format *pix_fmt) ++int rpivid_prepare_src_format(struct v4l2_pix_format_mplane *pix_fmt) + { + if (pix_fmt->pixelformat != V4L2_PIX_FMT_HEVC_SLICE) + return -EINVAL; + + /* Zero bytes per line for encoded source. */ +- pix_fmt->bytesperline = 0; ++ pix_fmt->plane_fmt[0].bytesperline = 0; + /* Choose some minimum size since this can't be 0 */ +- pix_fmt->sizeimage = max_t(u32, SZ_1K, pix_fmt->sizeimage); ++ pix_fmt->plane_fmt[0].sizeimage = max_t(u32, SZ_1K, ++ pix_fmt->plane_fmt[0].sizeimage); ++ pix_fmt->num_planes = 1; + pix_fmt->field = V4L2_FIELD_NONE; + return 0; + } + +-int rpivid_prepare_dst_format(struct v4l2_pix_format *pix_fmt) ++int rpivid_prepare_dst_format(struct v4l2_pix_format_mplane *pix_fmt) + { + unsigned int width = pix_fmt->width; + unsigned int height = pix_fmt->height; +- unsigned int sizeimage = pix_fmt->sizeimage; +- unsigned int bytesperline = pix_fmt->bytesperline; ++ unsigned int sizeimage = pix_fmt->plane_fmt[0].sizeimage; ++ unsigned int bytesperline = pix_fmt->plane_fmt[0].bytesperline; + + switch (pix_fmt->pixelformat) { + /* For column formats set bytesperline to column height (stride2) */ +@@ -112,8 +114,9 @@ int rpivid_prepare_dst_format(struct v4l2_pix_format *pix_fmt) + pix_fmt->height = height; + + pix_fmt->field = V4L2_FIELD_NONE; +- pix_fmt->bytesperline = bytesperline; +- pix_fmt->sizeimage = sizeimage; ++ pix_fmt->plane_fmt[0].bytesperline = bytesperline; ++ pix_fmt->plane_fmt[0].sizeimage = sizeimage; ++ pix_fmt->num_planes = 1; + return 0; + } + +@@ -222,12 +225,12 @@ static u32 pixelformat_from_sps(const struct v4l2_ctrl_hevc_sps * const sps, + return pf; + } + +-static struct v4l2_pix_format ++static struct v4l2_pix_format_mplane + rpivid_hevc_default_dst_fmt(struct rpivid_ctx * const ctx) + { + const struct v4l2_ctrl_hevc_sps * const sps = + rpivid_find_control_data(ctx, V4L2_CID_MPEG_VIDEO_HEVC_SPS); +- struct v4l2_pix_format pix_fmt = { ++ struct v4l2_pix_format_mplane pix_fmt = { + .width = sps->pic_width_in_luma_samples, + .height = sps->pic_height_in_luma_samples, + .pixelformat = pixelformat_from_sps(sps, 0) +@@ -267,7 +270,7 @@ static int rpivid_g_fmt_vid_cap(struct file *file, void *priv, + + if (!ctx->dst_fmt_set) + ctx->dst_fmt = rpivid_hevc_default_dst_fmt(ctx); +- f->fmt.pix = ctx->dst_fmt; ++ f->fmt.pix_mp = ctx->dst_fmt; + return 0; + } + +@@ -276,12 +279,12 @@ static int rpivid_g_fmt_vid_out(struct file *file, void *priv, + { + struct rpivid_ctx *ctx = rpivid_file2ctx(file); + +- f->fmt.pix = ctx->src_fmt; ++ f->fmt.pix_mp = ctx->src_fmt; + return 0; + } + +-static inline void copy_color(struct v4l2_pix_format *d, +- const struct v4l2_pix_format *s) ++static inline void copy_color(struct v4l2_pix_format_mplane *d, ++ const struct v4l2_pix_format_mplane *s) + { + d->colorspace = s->colorspace; + d->xfer_func = s->xfer_func; +@@ -298,12 +301,8 @@ static int rpivid_try_fmt_vid_cap(struct file *file, void *priv, + u32 pixelformat; + int i; + +- /* Reject format types we don't support */ +- if (f->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) +- return -EINVAL; +- + for (i = 0; (pixelformat = pixelformat_from_sps(sps, i)) != 0; i++) { +- if (f->fmt.pix.pixelformat == pixelformat) ++ if (f->fmt.pix_mp.pixelformat == pixelformat) + break; + } + +@@ -317,23 +316,20 @@ static int rpivid_try_fmt_vid_cap(struct file *file, void *priv, + + // We don't have any way of finding out colourspace so believe + // anything we are told - take anything set in src as a default +- if (f->fmt.pix.colorspace == V4L2_COLORSPACE_DEFAULT) +- copy_color(&f->fmt.pix, &ctx->src_fmt); ++ if (f->fmt.pix_mp.colorspace == V4L2_COLORSPACE_DEFAULT) ++ copy_color(&f->fmt.pix_mp, &ctx->src_fmt); + +- f->fmt.pix.pixelformat = pixelformat; +- return rpivid_prepare_dst_format(&f->fmt.pix); ++ f->fmt.pix_mp.pixelformat = pixelformat; ++ return rpivid_prepare_dst_format(&f->fmt.pix_mp); + } + + static int rpivid_try_fmt_vid_out(struct file *file, void *priv, + struct v4l2_format *f) + { +- if (f->type != V4L2_BUF_TYPE_VIDEO_OUTPUT) +- return -EINVAL; +- +- if (rpivid_prepare_src_format(&f->fmt.pix)) { ++ if (rpivid_prepare_src_format(&f->fmt.pix_mp)) { + // Set default src format +- f->fmt.pix.pixelformat = RPIVID_SRC_PIXELFORMAT_DEFAULT; +- rpivid_prepare_src_format(&f->fmt.pix); ++ f->fmt.pix_mp.pixelformat = RPIVID_SRC_PIXELFORMAT_DEFAULT; ++ rpivid_prepare_src_format(&f->fmt.pix_mp); + } + return 0; + } +@@ -353,7 +349,7 @@ static int rpivid_s_fmt_vid_cap(struct file *file, void *priv, + if (ret) + return ret; + +- ctx->dst_fmt = f->fmt.pix; ++ ctx->dst_fmt = f->fmt.pix_mp; + ctx->dst_fmt_set = 1; + + return 0; +@@ -374,14 +370,14 @@ static int rpivid_s_fmt_vid_out(struct file *file, void *priv, + if (ret) + return ret; + +- ctx->src_fmt = f->fmt.pix; ++ ctx->src_fmt = f->fmt.pix_mp; + ctx->dst_fmt_set = 0; // Setting src invalidates dst + + vq->subsystem_flags |= + VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF; + + /* Propagate colorspace information to capture. */ +- copy_color(&ctx->dst_fmt, &f->fmt.pix); ++ copy_color(&ctx->dst_fmt, &f->fmt.pix_mp); + return 0; + } + +@@ -389,14 +385,14 @@ const struct v4l2_ioctl_ops rpivid_ioctl_ops = { + .vidioc_querycap = rpivid_querycap, + + .vidioc_enum_fmt_vid_cap = rpivid_enum_fmt_vid_cap, +- .vidioc_g_fmt_vid_cap = rpivid_g_fmt_vid_cap, +- .vidioc_try_fmt_vid_cap = rpivid_try_fmt_vid_cap, +- .vidioc_s_fmt_vid_cap = rpivid_s_fmt_vid_cap, ++ .vidioc_g_fmt_vid_cap_mplane = rpivid_g_fmt_vid_cap, ++ .vidioc_try_fmt_vid_cap_mplane = rpivid_try_fmt_vid_cap, ++ .vidioc_s_fmt_vid_cap_mplane = rpivid_s_fmt_vid_cap, + + .vidioc_enum_fmt_vid_out = rpivid_enum_fmt_vid_out, +- .vidioc_g_fmt_vid_out = rpivid_g_fmt_vid_out, +- .vidioc_try_fmt_vid_out = rpivid_try_fmt_vid_out, +- .vidioc_s_fmt_vid_out = rpivid_s_fmt_vid_out, ++ .vidioc_g_fmt_vid_out_mplane = rpivid_g_fmt_vid_out, ++ .vidioc_try_fmt_vid_out_mplane = rpivid_try_fmt_vid_out, ++ .vidioc_s_fmt_vid_out_mplane = rpivid_s_fmt_vid_out, + + .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs, + .vidioc_querybuf = v4l2_m2m_ioctl_querybuf, +@@ -421,7 +417,7 @@ static int rpivid_queue_setup(struct vb2_queue *vq, unsigned int *nbufs, + struct device *alloc_devs[]) + { + struct rpivid_ctx *ctx = vb2_get_drv_priv(vq); +- struct v4l2_pix_format *pix_fmt; ++ struct v4l2_pix_format_mplane *pix_fmt; + + if (V4L2_TYPE_IS_OUTPUT(vq->type)) + pix_fmt = &ctx->src_fmt; +@@ -429,10 +425,10 @@ static int rpivid_queue_setup(struct vb2_queue *vq, unsigned int *nbufs, + pix_fmt = &ctx->dst_fmt; + + if (*nplanes) { +- if (sizes[0] < pix_fmt->sizeimage) ++ if (sizes[0] < pix_fmt->plane_fmt[0].sizeimage) + return -EINVAL; + } else { +- sizes[0] = pix_fmt->sizeimage; ++ sizes[0] = pix_fmt->plane_fmt[0].sizeimage; + *nplanes = 1; + } + +@@ -471,17 +467,17 @@ static int rpivid_buf_prepare(struct vb2_buffer *vb) + { + struct vb2_queue *vq = vb->vb2_queue; + struct rpivid_ctx *ctx = vb2_get_drv_priv(vq); +- struct v4l2_pix_format *pix_fmt; ++ struct v4l2_pix_format_mplane *pix_fmt; + + if (V4L2_TYPE_IS_OUTPUT(vq->type)) + pix_fmt = &ctx->src_fmt; + else + pix_fmt = &ctx->dst_fmt; + +- if (vb2_plane_size(vb, 0) < pix_fmt->sizeimage) ++ if (vb2_plane_size(vb, 0) < pix_fmt->plane_fmt[0].sizeimage) + return -EINVAL; + +- vb2_set_plane_payload(vb, 0, pix_fmt->sizeimage); ++ vb2_set_plane_payload(vb, 0, pix_fmt->plane_fmt[0].sizeimage); + + return 0; + } +@@ -567,7 +563,7 @@ int rpivid_queue_init(void *priv, struct vb2_queue *src_vq, + struct rpivid_ctx *ctx = priv; + int ret; + +- src_vq->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; ++ src_vq->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; + src_vq->io_modes = VB2_MMAP | VB2_DMABUF; + src_vq->drv_priv = ctx; + src_vq->buf_struct_size = sizeof(struct rpivid_buffer); +@@ -584,7 +580,7 @@ int rpivid_queue_init(void *priv, struct vb2_queue *src_vq, + if (ret) + return ret; + +- dst_vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ++ dst_vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; + dst_vq->io_modes = VB2_MMAP | VB2_DMABUF; + dst_vq->drv_priv = ctx; + dst_vq->buf_struct_size = sizeof(struct rpivid_buffer); +diff --git a/drivers/staging/media/rpivid/rpivid_video.h b/drivers/staging/media/rpivid/rpivid_video.h +index 9c4f3fb2f9f6..5c0fd9c8a6d7 100644 +--- a/drivers/staging/media/rpivid/rpivid_video.h ++++ b/drivers/staging/media/rpivid/rpivid_video.h +@@ -24,7 +24,7 @@ extern const struct v4l2_ioctl_ops rpivid_ioctl_ops; + + int rpivid_queue_init(void *priv, struct vb2_queue *src_vq, + struct vb2_queue *dst_vq); +-int rpivid_prepare_src_format(struct v4l2_pix_format *pix_fmt); +-int rpivid_prepare_dst_format(struct v4l2_pix_format *pix_fmt); ++int rpivid_prepare_src_format(struct v4l2_pix_format_mplane *pix_fmt); ++int rpivid_prepare_dst_format(struct v4l2_pix_format_mplane *pix_fmt); + + #endif +-- +2.18.4 + + +From cce2c345bb8fd9dfed8622dc7924024ebe2fa5b9 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Thu, 11 Mar 2021 18:43:15 +0000 +Subject: [PATCH 681/693] media: rpivid: Add an enable count to irq claim Qs + +Add an enable count to the irq Q structures to allow the irq logic to +block further callbacks if resources associated with the irq are not +yet available. + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid.h | 2 + + drivers/staging/media/rpivid/rpivid_hw.c | 118 +++++++++++++++-------- + drivers/staging/media/rpivid/rpivid_hw.h | 3 + + 3 files changed, 85 insertions(+), 38 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid.h b/drivers/staging/media/rpivid/rpivid.h +index 1987a11dd0be..544bc9411a91 100644 +--- a/drivers/staging/media/rpivid/rpivid.h ++++ b/drivers/staging/media/rpivid/rpivid.h +@@ -151,6 +151,8 @@ struct rpivid_hw_irq_ctrl { + struct rpivid_hw_irq_ent *irq; + /* Non-zero => do not start a new job - outer layer sched pending */ + int no_sched; ++ /* Enable count. -1 always OK, 0 do not sched, +ve shed & count down */ ++ int enable; + /* Thread CB requested */ + bool thread_reqed; + }; +diff --git a/drivers/staging/media/rpivid/rpivid_hw.c b/drivers/staging/media/rpivid/rpivid_hw.c +index 5f86bbed8c1c..ada6107ab675 100644 +--- a/drivers/staging/media/rpivid/rpivid_hw.c ++++ b/drivers/staging/media/rpivid/rpivid_hw.c +@@ -42,35 +42,62 @@ static void pre_irq(struct rpivid_dev *dev, struct rpivid_hw_irq_ent *ient, + ient->cb = cb; + ient->v = v; + +- // Not sure this lock is actually required + spin_lock_irqsave(&ictl->lock, flags); + ictl->irq = ient; ++ ictl->no_sched++; + spin_unlock_irqrestore(&ictl->lock, flags); + } + +-static void sched_claim(struct rpivid_dev * const dev, +- struct rpivid_hw_irq_ctrl * const ictl) ++/* Should be called from inside ictl->lock */ ++static inline bool sched_enabled(const struct rpivid_hw_irq_ctrl * const ictl) + { +- for (;;) { +- struct rpivid_hw_irq_ent *ient = NULL; +- unsigned long flags; ++ return ictl->no_sched <= 0 && ictl->enable; ++} + +- spin_lock_irqsave(&ictl->lock, flags); ++/* Should be called from inside ictl->lock & after checking sched_enabled() */ ++static inline void set_claimed(struct rpivid_hw_irq_ctrl * const ictl) ++{ ++ if (ictl->enable > 0) ++ --ictl->enable; ++ ictl->no_sched = 1; ++} + +- if (--ictl->no_sched <= 0) { +- ient = ictl->claim; +- if (!ictl->irq && ient) { +- ictl->claim = ient->next; +- ictl->no_sched = 1; +- } +- } ++/* Should be called from inside ictl->lock */ ++static struct rpivid_hw_irq_ent *get_sched(struct rpivid_hw_irq_ctrl * const ictl) ++{ ++ struct rpivid_hw_irq_ent *ient; + +- spin_unlock_irqrestore(&ictl->lock, flags); ++ if (!sched_enabled(ictl)) ++ return NULL; ++ ++ ient = ictl->claim; ++ if (!ient) ++ return NULL; ++ ictl->claim = ient->next; ++ ++ set_claimed(ictl); ++ return ient; ++} + +- if (!ient) +- break; ++/* Run a callback & check to see if there is anything else to run */ ++static void sched_cb(struct rpivid_dev * const dev, ++ struct rpivid_hw_irq_ctrl * const ictl, ++ struct rpivid_hw_irq_ent *ient) ++{ ++ while (ient) { ++ unsigned long flags; + + ient->cb(dev, ient->v); ++ ++ spin_lock_irqsave(&ictl->lock, flags); ++ ++ /* Always dec no_sched after cb exec - must have been set ++ * on entry to cb ++ */ ++ --ictl->no_sched; ++ ient = get_sched(ictl); ++ ++ spin_unlock_irqrestore(&ictl->lock, flags); + } + } + +@@ -84,7 +111,7 @@ static void pre_thread(struct rpivid_dev *dev, + ient->v = v; + ictl->irq = ient; + ictl->thread_reqed = true; +- ictl->no_sched++; ++ ictl->no_sched++; /* This is unwound in do_thread */ + } + + // Called in irq context +@@ -96,17 +123,10 @@ static void do_irq(struct rpivid_dev * const dev, + + spin_lock_irqsave(&ictl->lock, flags); + ient = ictl->irq; +- if (ient) { +- ictl->no_sched++; +- ictl->irq = NULL; +- } ++ ictl->irq = NULL; + spin_unlock_irqrestore(&ictl->lock, flags); + +- if (ient) { +- ient->cb(dev, ient->v); +- +- sched_claim(dev, ictl); +- } ++ sched_cb(dev, ictl, ient); + } + + static void do_claim(struct rpivid_dev * const dev, +@@ -127,7 +147,7 @@ static void do_claim(struct rpivid_dev * const dev, + ictl->tail->next = ient; + ictl->tail = ient; + ient = NULL; +- } else if (ictl->no_sched || ictl->irq) { ++ } else if (!sched_enabled(ictl)) { + // Empty Q but other activity in progress so Q + ictl->claim = ient; + ictl->tail = ient; +@@ -135,16 +155,34 @@ static void do_claim(struct rpivid_dev * const dev, + } else { + // Nothing else going on - schedule immediately and + // prevent anything else scheduling claims +- ictl->no_sched = 1; ++ set_claimed(ictl); + } + + spin_unlock_irqrestore(&ictl->lock, flags); + +- if (ient) { +- ient->cb(dev, ient->v); ++ sched_cb(dev, ictl, ient); ++} + +- sched_claim(dev, ictl); +- } ++/* Enable n claims. ++ * n < 0 set to unlimited (default on init) ++ * n = 0 if previously unlimited then disable otherwise nop ++ * n > 0 if previously unlimited then set to n enables ++ * otherwise add n enables ++ * The enable count is automatically decremented every time a claim is run ++ */ ++static void do_enable_claim(struct rpivid_dev * const dev, ++ int n, ++ struct rpivid_hw_irq_ctrl * const ictl) ++{ ++ unsigned long flags; ++ struct rpivid_hw_irq_ent *ient; ++ ++ spin_lock_irqsave(&ictl->lock, flags); ++ ictl->enable = n < 0 ? -1 : ictl->enable <= 0 ? n : ictl->enable + n; ++ ient = get_sched(ictl); ++ spin_unlock_irqrestore(&ictl->lock, flags); ++ ++ sched_cb(dev, ictl, ient); + } + + static void ictl_init(struct rpivid_hw_irq_ctrl * const ictl) +@@ -154,6 +192,8 @@ static void ictl_init(struct rpivid_hw_irq_ctrl * const ictl) + ictl->tail = NULL; + ictl->irq = NULL; + ictl->no_sched = 0; ++ ictl->enable = -1; ++ ictl->thread_reqed = false; + } + + static void ictl_uninit(struct rpivid_hw_irq_ctrl * const ictl) +@@ -203,11 +243,7 @@ static void do_thread(struct rpivid_dev * const dev, + + spin_unlock_irqrestore(&ictl->lock, flags); + +- if (ient) { +- ient->cb(dev, ient->v); +- +- sched_claim(dev, ictl); +- } ++ sched_cb(dev, ictl, ient); + } + + static irqreturn_t rpivid_irq_thread(int irq, void *data) +@@ -231,6 +267,12 @@ void rpivid_hw_irq_active1_thread(struct rpivid_dev *dev, + pre_thread(dev, ient, thread_cb, ctx, &dev->ic_active1); + } + ++void rpivid_hw_irq_active1_enable_claim(struct rpivid_dev *dev, ++ int n) ++{ ++ do_enable_claim(dev, n, &dev->ic_active1); ++} ++ + void rpivid_hw_irq_active1_claim(struct rpivid_dev *dev, + struct rpivid_hw_irq_ent *ient, + rpivid_irq_callback ready_cb, void *ctx) +diff --git a/drivers/staging/media/rpivid/rpivid_hw.h b/drivers/staging/media/rpivid/rpivid_hw.h +index cf4cc8be8a55..ec73a2332b73 100644 +--- a/drivers/staging/media/rpivid/rpivid_hw.h ++++ b/drivers/staging/media/rpivid/rpivid_hw.h +@@ -272,6 +272,9 @@ static inline void apb_write_vc_len(const struct rpivid_dev * const dev, + ARG_IC_ICTRL_ACTIVE1_INT_SET |\ + ARG_IC_ICTRL_ACTIVE2_INT_SET) + ++/* Regulate claim Q */ ++void rpivid_hw_irq_active1_enable_claim(struct rpivid_dev *dev, ++ int n); + /* Auto release once all CBs called */ + void rpivid_hw_irq_active1_claim(struct rpivid_dev *dev, + struct rpivid_hw_irq_ent *ient, +-- +2.18.4 + + +From 0d8dc6d3d3ee9fb455de98bdec948a2a05239fa5 Mon Sep 17 00:00:00 2001 +From: Ezequiel Garcia +Date: Sun, 21 Mar 2021 16:38:54 -0300 +Subject: [PATCH 682/693] RFC: media: Add media_request_{pin,unpin} API + +This is probably not the API we will want to add, but it +should show what semantics are needed by drivers. + +The goal is to allow the OUTPUT (aka source) buffer and the +controls associated to a request to be released from the request, +and in particular return the OUTPUT buffer back to userspace, +without signalling the media request fd. + +This is useful for devices that are able to pre-process +the OUTPUT buffer, therefore able to release it before +the decoding is finished. These drivers should signal +the media request fd only after the CAPTURE buffer is done. + +Tested-by: John Cox +Signed-off-by: Ezequiel Garcia +--- + drivers/media/mc/mc-request.c | 35 +++++++++++++++++++++++++++++++++++ + include/media/media-request.h | 12 ++++++++++++ + 2 files changed, 47 insertions(+) + +diff --git a/drivers/media/mc/mc-request.c b/drivers/media/mc/mc-request.c +index c0782fd96c59..88a167fc830e 100644 +--- a/drivers/media/mc/mc-request.c ++++ b/drivers/media/mc/mc-request.c +@@ -504,3 +504,38 @@ void media_request_object_complete(struct media_request_object *obj) + media_request_put(req); + } + EXPORT_SYMBOL_GPL(media_request_object_complete); ++ ++void media_request_pin(struct media_request *req) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&req->lock, flags); ++ if (WARN_ON(req->state != MEDIA_REQUEST_STATE_QUEUED)) ++ goto unlock; ++ req->num_incomplete_objects++; ++unlock: ++ spin_unlock_irqrestore(&req->lock, flags); ++} ++EXPORT_SYMBOL_GPL(media_request_pin); ++ ++void media_request_unpin(struct media_request *req) ++{ ++ unsigned long flags; ++ bool completed = false; ++ ++ spin_lock_irqsave(&req->lock, flags); ++ if (WARN_ON(!req->num_incomplete_objects) || ++ WARN_ON(req->state != MEDIA_REQUEST_STATE_QUEUED)) ++ goto unlock; ++ ++ if (!--req->num_incomplete_objects) { ++ req->state = MEDIA_REQUEST_STATE_COMPLETE; ++ wake_up_interruptible_all(&req->poll_wait); ++ completed = true; ++ } ++unlock: ++ spin_unlock_irqrestore(&req->lock, flags); ++ if (completed) ++ media_request_put(req); ++} ++EXPORT_SYMBOL_GPL(media_request_unpin); +diff --git a/include/media/media-request.h b/include/media/media-request.h +index 3cd25a2717ce..0de5c2c94188 100644 +--- a/include/media/media-request.h ++++ b/include/media/media-request.h +@@ -189,6 +189,10 @@ static inline void media_request_get(struct media_request *req) + */ + void media_request_put(struct media_request *req); + ++void media_request_pin(struct media_request *req); ++ ++void media_request_unpin(struct media_request *req); ++ + /** + * media_request_get_by_fd - Get a media request by fd + * +@@ -228,6 +232,14 @@ static inline void media_request_put(struct media_request *req) + { + } + ++static inline void media_request_pin(struct media_request *req) ++{ ++} ++ ++static inline void media_request_unpin(struct media_request *req) ++{ ++} ++ + static inline struct media_request * + media_request_get_by_fd(struct media_device *mdev, int request_fd) + { +-- +2.18.4 + + +From 237bd395a3480e5fb7c9d3cbaa212517881a11e8 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Thu, 11 Mar 2021 19:08:00 +0000 +Subject: [PATCH 683/693] media: rpivid: Add a Pass0 to accumulate slices and + rework job finish + +Due to overheads in assembling controls and requests it is worth having +the slice assembly phase separate from the h/w pass1 processing. Create +a queue to service pass1 rather than have the pass1 finished callback +trigger the next slice job. + +This requires a rework of the logic that splits up the buffer and +request done events. This code contains two ways of doing that, we use +Ezequiel Garcias solution, but expect that +in the future this will be handled by the framework in a cleaner manner. + +Fix up the handling of some of the memory exhaustion crashes uncovered +in the process of writing this code. + +Signed-off-by: John Cox +--- + drivers/media/v4l2-core/v4l2-mem2mem.c | 2 - + drivers/staging/media/rpivid/rpivid.c | 11 +- + drivers/staging/media/rpivid/rpivid.h | 20 +- + drivers/staging/media/rpivid/rpivid_dec.c | 32 +- + drivers/staging/media/rpivid/rpivid_h265.c | 432 ++++++++++++++++----- + drivers/staging/media/rpivid/rpivid_hw.c | 8 +- + 6 files changed, 374 insertions(+), 131 deletions(-) + +diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c +index 329dc316934e..1d41c4ea28d5 100644 +--- a/drivers/media/v4l2-core/v4l2-mem2mem.c ++++ b/drivers/media/v4l2-core/v4l2-mem2mem.c +@@ -501,8 +501,6 @@ void v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev, + * holding capture buffers. Those should use + * v4l2_m2m_buf_done_and_job_finish() instead. + */ +- WARN_ON(m2m_ctx->out_q_ctx.q.subsystem_flags & +- VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF); + spin_lock_irqsave(&m2m_dev->job_spinlock, flags); + schedule_next = _v4l2_m2m_job_finish(m2m_dev, m2m_ctx); + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags); +diff --git a/drivers/staging/media/rpivid/rpivid.c b/drivers/staging/media/rpivid/rpivid.c +index 08c838fcb577..56a6f87a8bbd 100644 +--- a/drivers/staging/media/rpivid/rpivid.c ++++ b/drivers/staging/media/rpivid/rpivid.c +@@ -79,17 +79,24 @@ static const struct rpivid_control rpivid_ctrls[] = { + + #define rpivid_ctrls_COUNT ARRAY_SIZE(rpivid_ctrls) + +-void *rpivid_find_control_data(struct rpivid_ctx *ctx, u32 id) ++struct v4l2_ctrl *rpivid_find_ctrl(struct rpivid_ctx *ctx, u32 id) + { + unsigned int i; + + for (i = 0; ctx->ctrls[i]; i++) + if (ctx->ctrls[i]->id == id) +- return ctx->ctrls[i]->p_cur.p; ++ return ctx->ctrls[i]; + + return NULL; + } + ++void *rpivid_find_control_data(struct rpivid_ctx *ctx, u32 id) ++{ ++ struct v4l2_ctrl *const ctrl = rpivid_find_ctrl(ctx, id); ++ ++ return !ctrl ? NULL : ctrl->p_cur.p; ++} ++ + static int rpivid_init_ctrls(struct rpivid_dev *dev, struct rpivid_ctx *ctx) + { + struct v4l2_ctrl_handler *hdl = &ctx->hdl; +diff --git a/drivers/staging/media/rpivid/rpivid.h b/drivers/staging/media/rpivid/rpivid.h +index 544bc9411a91..992098099039 100644 +--- a/drivers/staging/media/rpivid/rpivid.h ++++ b/drivers/staging/media/rpivid/rpivid.h +@@ -24,6 +24,10 @@ + + #define OPT_DEBUG_POLL_IRQ 0 + ++#define RPIVID_DEC_ENV_COUNT 6 ++#define RPIVID_P1BUF_COUNT 3 ++#define RPIVID_P2BUF_COUNT 3 ++ + #define RPIVID_NAME "rpivid" + + #define RPIVID_CAPABILITY_UNTILED BIT(0) +@@ -45,6 +49,7 @@ struct rpivid_control { + }; + + struct rpivid_h265_run { ++ u32 slice_ents; + const struct v4l2_ctrl_hevc_sps *sps; + const struct v4l2_ctrl_hevc_pps *pps; + const struct v4l2_ctrl_hevc_slice_params *slice_params; +@@ -64,7 +69,6 @@ struct rpivid_buffer { + + struct rpivid_dec_state; + struct rpivid_dec_env; +-#define RPIVID_DEC_ENV_COUNT 3 + + struct rpivid_gptr { + size_t size; +@@ -79,7 +83,6 @@ typedef void (*rpivid_irq_callback)(struct rpivid_dev *dev, void *ctx); + struct rpivid_q_aux; + #define RPIVID_AUX_ENT_COUNT VB2_MAX_FRAME + +-#define RPIVID_P2BUF_COUNT 2 + + struct rpivid_ctx { + struct v4l2_fh fh; +@@ -108,11 +111,13 @@ struct rpivid_ctx { + + struct rpivid_dec_env *dec_pool; + +- /* Some of these should be in dev */ +- struct rpivid_gptr bitbufs[1]; /* Will be 2 */ +- struct rpivid_gptr cmdbufs[1]; /* Will be 2 */ ++ unsigned int p1idx; ++ atomic_t p1out; ++ struct rpivid_gptr bitbufs[RPIVID_P1BUF_COUNT]; ++ struct rpivid_gptr cmdbufs[RPIVID_P1BUF_COUNT]; ++ ++ /* *** Should be in dev *** */ + unsigned int p2idx; +- atomic_t p2out; + struct rpivid_gptr pu_bufs[RPIVID_P2BUF_COUNT]; + struct rpivid_gptr coeff_bufs[RPIVID_P2BUF_COUNT]; + +@@ -141,6 +146,8 @@ struct rpivid_variant { + + struct rpivid_hw_irq_ent; + ++#define RPIVID_ICTL_ENABLE_UNLIMITED (-1) ++ + struct rpivid_hw_irq_ctrl { + /* Spinlock protecting claim and tail */ + spinlock_t lock; +@@ -182,6 +189,7 @@ struct rpivid_dev { + + extern struct rpivid_dec_ops rpivid_dec_ops_h265; + ++struct v4l2_ctrl *rpivid_find_ctrl(struct rpivid_ctx *ctx, u32 id); + void *rpivid_find_control_data(struct rpivid_ctx *ctx, u32 id); + + #endif +diff --git a/drivers/staging/media/rpivid/rpivid_dec.c b/drivers/staging/media/rpivid/rpivid_dec.c +index d81aa46de017..fa8af01d753b 100644 +--- a/drivers/staging/media/rpivid/rpivid_dec.c ++++ b/drivers/staging/media/rpivid/rpivid_dec.c +@@ -21,8 +21,8 @@ + + void rpivid_device_run(void *priv) + { +- struct rpivid_ctx *ctx = priv; +- struct rpivid_dev *dev = ctx->dev; ++ struct rpivid_ctx *const ctx = priv; ++ struct rpivid_dev *const dev = ctx->dev; + struct rpivid_run run = {}; + struct media_request *src_req; + +@@ -32,19 +32,17 @@ void rpivid_device_run(void *priv) + if (!run.src || !run.dst) { + v4l2_err(&dev->v4l2_dev, "%s: Missing buffer: src=%p, dst=%p\n", + __func__, run.src, run.dst); +- /* We are stuffed - this probably won't dig us out of our +- * current situation but it is better than nothing +- */ +- v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, +- VB2_BUF_STATE_ERROR); +- return; ++ goto fail; + } + +- /* Apply request(s) controls if needed. */ ++ /* Apply request(s) controls */ + src_req = run.src->vb2_buf.req_obj.req; ++ if (!src_req) { ++ v4l2_err(&dev->v4l2_dev, "%s: Missing request\n", __func__); ++ goto fail; ++ } + +- if (src_req) +- v4l2_ctrl_request_setup(src_req, &ctx->hdl); ++ v4l2_ctrl_request_setup(src_req, &ctx->hdl); + + switch (ctx->src_fmt.pixelformat) { + case V4L2_PIX_FMT_HEVC_SLICE: +@@ -70,10 +68,14 @@ void rpivid_device_run(void *priv) + + dev->dec_ops->setup(ctx, &run); + +- /* Complete request(s) controls if needed. */ +- +- if (src_req) +- v4l2_ctrl_request_complete(src_req, &ctx->hdl); ++ /* Complete request(s) controls */ ++ v4l2_ctrl_request_complete(src_req, &ctx->hdl); + + dev->dec_ops->trigger(ctx); ++ return; ++ ++fail: ++ /* We really shouldn't get here but tidy up what we can */ ++ v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, ++ VB2_BUF_STATE_ERROR); + } +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index 4244532fca77..a2cb2b547c50 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -22,6 +22,8 @@ + #define DEBUG_TRACE_P1_CMD 0 + #define DEBUG_TRACE_EXECUTION 0 + ++#define USE_REQUEST_PIN 1 ++ + #if DEBUG_TRACE_EXECUTION + #define xtrace_in(dev_, de_)\ + v4l2_info(&(dev_)->v4l2_dev, "%s[%d]: in\n", __func__,\ +@@ -192,8 +194,6 @@ struct rpivid_dec_env { + unsigned int decode_order; + int p1_status; /* P1 status - what to realloc */ + +- struct rpivid_dec_env *phase_wait_q_next; +- + struct rpi_cmd *cmd_fifo; + unsigned int cmd_len, cmd_max; + unsigned int num_slice_msgs; +@@ -219,6 +219,7 @@ struct rpivid_dec_env { + u32 rpi_currpoc; + + struct vb2_v4l2_buffer *frame_buf; // Detached dest buffer ++ struct vb2_v4l2_buffer *src_buf; // Detached src buffer + unsigned int frame_c_offset; + unsigned int frame_stride; + dma_addr_t frame_addr; +@@ -235,9 +236,15 @@ struct rpivid_dec_env { + size_t bit_copy_len; + struct rpivid_gptr *cmd_copy_gptr; + +- u16 slice_msgs[2 * HEVC_MAX_REFS * 8 + 3]; ++#define SLICE_MSGS_MAX (2 * HEVC_MAX_REFS * 8 + 3) ++ u16 slice_msgs[SLICE_MSGS_MAX]; + u8 scaling_factors[NUM_SCALING_FACTORS]; + ++#if USE_REQUEST_PIN ++ struct media_request *req_pin; ++#else ++ struct media_request_object *req_obj; ++#endif + struct rpivid_hw_irq_ent irq_ent; + }; + +@@ -286,6 +293,17 @@ struct rpivid_dec_state { + unsigned int prev_ctb_y; + }; + ++#if !USE_REQUEST_PIN ++static void dst_req_obj_release(struct media_request_object *object) ++{ ++ kfree(object); ++} ++ ++static const struct media_request_object_ops dst_req_obj_ops = { ++ .release = dst_req_obj_release, ++}; ++#endif ++ + static inline int clip_int(const int x, const int lo, const int hi) + { + return x < lo ? lo : x > hi ? hi : x; +@@ -298,15 +316,48 @@ static inline int clip_int(const int x, const int lo, const int hi) + static int p1_z; + #endif + ++static int cmds_check_space(struct rpivid_dec_env *const de, unsigned int n) ++{ ++ struct rpi_cmd *a; ++ unsigned int newmax; ++ ++ if (n > 0x100000) { ++ v4l2_err(&de->ctx->dev->v4l2_dev, ++ "%s: n %u implausible\n", __func__, n); ++ return -ENOMEM; ++ } ++ ++ if (de->cmd_len + n <= de->cmd_max) ++ return 0; ++ ++ newmax = 2 << log2_size(de->cmd_len + n); ++ ++ a = krealloc(de->cmd_fifo, newmax * sizeof(struct rpi_cmd), ++ GFP_KERNEL); ++ if (!a) { ++ v4l2_err(&de->ctx->dev->v4l2_dev, ++ "Failed cmd buffer realloc from %u to %u\n", ++ de->cmd_max, newmax); ++ return -ENOMEM; ++ } ++ v4l2_info(&de->ctx->dev->v4l2_dev, ++ "cmd buffer realloc from %u to %u\n", de->cmd_max, newmax); ++ ++ de->cmd_fifo = a; ++ de->cmd_max = newmax; ++ return 0; ++} ++ + // ???? u16 addr - put in u32 +-static int p1_apb_write(struct rpivid_dec_env *const de, const u16 addr, +- const u32 data) +-{ +- if (de->cmd_len == de->cmd_max) +- de->cmd_fifo = +- krealloc(de->cmd_fifo, +- (de->cmd_max *= 2) * sizeof(struct rpi_cmd), +- GFP_KERNEL); ++static void p1_apb_write(struct rpivid_dec_env *const de, const u16 addr, ++ const u32 data) ++{ ++ if (de->cmd_len >= de->cmd_max) { ++ v4l2_err(&de->ctx->dev->v4l2_dev, ++ "%s: Overflow @ %d\n", __func__, de->cmd_len); ++ return; ++ } ++ + de->cmd_fifo[de->cmd_len].addr = addr; + de->cmd_fifo[de->cmd_len].data = data; + +@@ -316,8 +367,7 @@ static int p1_apb_write(struct rpivid_dec_env *const de, const u16 addr, + de->cmd_len, addr, data); + } + #endif +- +- return de->cmd_len++; ++ de->cmd_len++; + } + + static int ctb_to_tile(unsigned int ctb, unsigned int *bd, int num) +@@ -511,6 +561,7 @@ static const u8 prob_init[3][156] = { + }, + }; + ++#define CMDS_WRITE_PROB ((RPI_PROB_ARRAY_SIZE / 4) + 1) + static void write_prob(struct rpivid_dec_env *const de, + const struct rpivid_dec_state *const s) + { +@@ -554,6 +605,7 @@ static void write_prob(struct rpivid_dec_env *const de, + p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); + } + ++#define CMDS_WRITE_SCALING_FACTORS NUM_SCALING_FACTORS + static void write_scaling_factors(struct rpivid_dec_env *const de) + { + int i; +@@ -569,8 +621,9 @@ static inline __u32 dma_to_axi_addr(dma_addr_t a) + return (__u32)(a >> 6); + } + +-static void write_bitstream(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s) ++#define CMDS_WRITE_BITSTREAM 4 ++static int write_bitstream(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) + { + // Note that FFmpeg V4L2 does not remove emulation prevention bytes, + // so this is matched in the configuration here. +@@ -584,6 +637,13 @@ static void write_bitstream(struct rpivid_dec_env *const de, + if (s->src_addr != 0) { + addr = s->src_addr + offset; + } else { ++ if (len + de->bit_copy_len > de->bit_copy_gptr->size) { ++ v4l2_warn(&de->ctx->dev->v4l2_dev, ++ "Bit copy buffer overflow: size=%zu, offset=%zu, len=%u\n", ++ de->bit_copy_gptr->size, ++ de->bit_copy_len, len); ++ return -ENOMEM; ++ } + memcpy(de->bit_copy_gptr->ptr + de->bit_copy_len, + s->src_buf + offset, len); + addr = de->bit_copy_gptr->addr + de->bit_copy_len; +@@ -595,6 +655,7 @@ static void write_bitstream(struct rpivid_dec_env *const de, + p1_apb_write(de, RPI_BFNUM, len); + p1_apb_write(de, RPI_BFCONTROL, offset + (1 << 7)); // Stop + p1_apb_write(de, RPI_BFCONTROL, offset + (rpi_use_emu << 6)); ++ return 0; + } + + ////////////////////////////////////////////////////////////////////////////// +@@ -623,6 +684,7 @@ static u32 slice_reg_const(const struct rpivid_dec_state *const s) + + ////////////////////////////////////////////////////////////////////////////// + ++#define CMDS_NEW_SLICE_SEGMENT (4 + CMDS_WRITE_SCALING_FACTORS) + static void new_slice_segment(struct rpivid_dec_env *const de, + const struct rpivid_dec_state *const s) + { +@@ -706,6 +768,7 @@ static void msg_slice(struct rpivid_dec_env *const de, const u16 msg) + de->slice_msgs[de->num_slice_msgs++] = msg; + } + ++#define CMDS_PROGRAM_SLICECMDS (1 + SLICE_MSGS_MAX) + static void program_slicecmds(struct rpivid_dec_env *const de, + const int sliceid) + { +@@ -902,6 +965,7 @@ static void pre_slice_decode(struct rpivid_dec_env *const de, + (sh->slice_cb_qp_offset & 31)); // CMD_QPOFF + } + ++#define CMDS_WRITE_SLICE 1 + static void write_slice(struct rpivid_dec_env *const de, + const struct rpivid_dec_state *const s, + const u32 slice_const, +@@ -927,6 +991,7 @@ static void write_slice(struct rpivid_dec_env *const de, + * N.B. This can be called to fill in data from the previous slice so must not + * use any state data that may change from slice to slice (e.g. qp) + */ ++#define CMDS_NEW_ENTRY_POINT (6 + CMDS_WRITE_SLICE) + static void new_entry_point(struct rpivid_dec_env *const de, + const struct rpivid_dec_state *const s, + const bool do_bte, +@@ -977,6 +1042,7 @@ static void new_entry_point(struct rpivid_dec_env *const de, + ////////////////////////////////////////////////////////////////////////////// + // Wavefront mode + ++#define CMDS_WPP_PAUSE 4 + static void wpp_pause(struct rpivid_dec_env *const de, int ctb_row) + { + p1_apb_write(de, RPI_STATUS, (ctb_row << 18) | 0x25); +@@ -987,12 +1053,19 @@ static void wpp_pause(struct rpivid_dec_env *const de, int ctb_row) + p1_apb_write(de, RPI_CONTROL, (ctb_row << 16) + 2); + } + +-static void wpp_entry_fill(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- const unsigned int last_y) ++#define CMDS_WPP_ENTRY_FILL_1 (CMDS_WPP_PAUSE + 2 + CMDS_NEW_ENTRY_POINT) ++static int wpp_entry_fill(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s, ++ const unsigned int last_y) + { ++ int rv; + const unsigned int last_x = s->ctb_width - 1; + ++ rv = cmds_check_space(de, CMDS_WPP_ENTRY_FILL_1 * ++ (last_y - de->entry_ctb_y)); ++ if (rv) ++ return rv; ++ + while (de->entry_ctb_y < last_y) { + /* wpp_entry_x/y set by wpp_entry_point */ + if (s->ctb_width > 2) +@@ -1010,12 +1083,21 @@ static void wpp_entry_fill(struct rpivid_dec_env *const de, + 0, 0, 0, de->entry_ctb_y + 1, + de->entry_qp, de->entry_slice); + } ++ return 0; + } + +-static void wpp_end_previous_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s) ++static int wpp_end_previous_slice(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) + { +- wpp_entry_fill(de, s, s->prev_ctb_y); ++ int rv; ++ ++ rv = wpp_entry_fill(de, s, s->prev_ctb_y); ++ if (rv) ++ return rv; ++ ++ rv = cmds_check_space(de, CMDS_WPP_PAUSE + 2); ++ if (rv) ++ return rv; + + if (de->entry_ctb_x < 2 && + (de->entry_ctb_y < s->start_ctb_y || s->start_ctb_x > 2) && +@@ -1026,21 +1108,38 @@ static void wpp_end_previous_slice(struct rpivid_dec_env *const de, + if (s->start_ctb_x == 2 || + (s->ctb_width == 2 && de->entry_ctb_y < s->start_ctb_y)) + p1_apb_write(de, RPI_TRANSFER, PROB_BACKUP); ++ return 0; + } + + /* Only main profile supported so WPP => !Tiles which makes some of the + * next chunk code simpler + */ +-static void wpp_decode_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s) ++static int wpp_decode_slice(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) + { + bool reset_qp_y = true; + const bool indep = !s->dependent_slice_segment_flag; ++ int rv; + +- if (s->start_ts) +- wpp_end_previous_slice(de, s); ++ if (s->start_ts) { ++ rv = wpp_end_previous_slice(de, s); ++ if (rv) ++ return rv; ++ } + pre_slice_decode(de, s); +- write_bitstream(de, s); ++ ++ rv = cmds_check_space(de, ++ CMDS_WRITE_BITSTREAM + ++ CMDS_WRITE_PROB + ++ CMDS_PROGRAM_SLICECMDS + ++ CMDS_NEW_SLICE_SEGMENT + ++ CMDS_NEW_ENTRY_POINT); ++ if (rv) ++ return rv; ++ ++ rv = write_bitstream(de, s); ++ if (rv) ++ return rv; + + if (!s->start_ts || indep || s->ctb_width == 1) + write_prob(de, s); +@@ -1056,7 +1155,13 @@ static void wpp_decode_slice(struct rpivid_dec_env *const de, + s->slice_qp, slice_reg_const(s)); + + if (s->frame_end) { +- wpp_entry_fill(de, s, s->ctb_height - 1); ++ rv = wpp_entry_fill(de, s, s->ctb_height - 1); ++ if (rv) ++ return rv; ++ ++ rv = cmds_check_space(de, CMDS_WPP_PAUSE + 1); ++ if (rv) ++ return rv; + + if (de->entry_ctb_x < 2 && s->ctb_width > 2) + wpp_pause(de, s->ctb_height - 1); +@@ -1065,25 +1170,32 @@ static void wpp_decode_slice(struct rpivid_dec_env *const de, + 1 | ((s->ctb_width - 1) << 5) | + ((s->ctb_height - 1) << 18)); + } +- ++ return 0; + } + + ////////////////////////////////////////////////////////////////////////////// + // Tiles mode + +-static void tile_entry_fill(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s, +- const unsigned int last_tile_x, +- const unsigned int last_tile_y) ++// Guarantees 1 cmd entry free on exit ++static int tile_entry_fill(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s, ++ const unsigned int last_tile_x, ++ const unsigned int last_tile_y) + { + while (de->entry_tile_y < last_tile_y || + (de->entry_tile_y == last_tile_y && + de->entry_tile_x < last_tile_x)) { ++ int rv; + unsigned int t_x = de->entry_tile_x; + unsigned int t_y = de->entry_tile_y; + const unsigned int last_x = s->col_bd[t_x + 1] - 1; + const unsigned int last_y = s->row_bd[t_y + 1] - 1; + ++ // One more than needed here ++ rv = cmds_check_space(de, CMDS_NEW_ENTRY_POINT + 3); ++ if (rv) ++ return rv; ++ + p1_apb_write(de, RPI_STATUS, + 2 | (last_x << 5) | (last_y << 18)); + p1_apb_write(de, RPI_TRANSFER, PROB_RELOAD); +@@ -1098,33 +1210,55 @@ static void tile_entry_fill(struct rpivid_dec_env *const de, + t_x, t_y, s->col_bd[t_x], s->row_bd[t_y], + de->entry_qp, de->entry_slice); + } ++ return 0; + } + + /* + * Write STATUS register with expected end CTU address of previous slice + */ +-static void end_previous_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s) ++static int end_previous_slice(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) + { +- tile_entry_fill(de, s, +- ctb_to_tile_x(s, s->prev_ctb_x), +- ctb_to_tile_y(s, s->prev_ctb_y)); ++ int rv; ++ ++ rv = tile_entry_fill(de, s, ++ ctb_to_tile_x(s, s->prev_ctb_x), ++ ctb_to_tile_y(s, s->prev_ctb_y)); ++ if (rv) ++ return rv; ++ + p1_apb_write(de, RPI_STATUS, + 1 | (s->prev_ctb_x << 5) | (s->prev_ctb_y << 18)); ++ return 0; + } + +-static void decode_slice(struct rpivid_dec_env *const de, +- const struct rpivid_dec_state *const s) ++static int decode_slice(struct rpivid_dec_env *const de, ++ const struct rpivid_dec_state *const s) + { + bool reset_qp_y; + unsigned int tile_x = ctb_to_tile_x(s, s->start_ctb_x); + unsigned int tile_y = ctb_to_tile_y(s, s->start_ctb_y); ++ int rv; ++ ++ if (s->start_ts) { ++ rv = end_previous_slice(de, s); ++ if (rv) ++ return rv; ++ } + +- if (s->start_ts) +- end_previous_slice(de, s); ++ rv = cmds_check_space(de, ++ CMDS_WRITE_BITSTREAM + ++ CMDS_WRITE_PROB + ++ CMDS_PROGRAM_SLICECMDS + ++ CMDS_NEW_SLICE_SEGMENT + ++ CMDS_NEW_ENTRY_POINT); ++ if (rv) ++ return rv; + + pre_slice_decode(de, s); +- write_bitstream(de, s); ++ rv = write_bitstream(de, s); ++ if (rv) ++ return rv; + + reset_qp_y = !s->start_ts || + !s->dependent_slice_segment_flag || +@@ -1146,13 +1280,16 @@ static void decode_slice(struct rpivid_dec_env *const de, + * when it will be known where this slice finishes + */ + if (s->frame_end) { +- tile_entry_fill(de, s, +- s->tile_width - 1, +- s->tile_height - 1); ++ rv = tile_entry_fill(de, s, ++ s->tile_width - 1, ++ s->tile_height - 1); ++ if (rv) ++ return rv; + p1_apb_write(de, RPI_STATUS, + 1 | ((s->ctb_width - 1) << 5) | + ((s->ctb_height - 1) << 18)); + } ++ return 0; + } + + ////////////////////////////////////////////////////////////////////////////// +@@ -1524,7 +1661,7 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + struct rpivid_dev *const dev = ctx->dev; + const struct v4l2_ctrl_hevc_slice_params *const sh = + run->h265.slice_params; +- const struct v4l2_hevc_pred_weight_table *pred_weight_table; ++// const struct v4l2_hevc_pred_weight_table *pred_weight_table; + struct rpivid_q_aux *dpb_q_aux[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; + struct rpivid_dec_state *const s = ctx->state; + struct vb2_queue *vq; +@@ -1532,11 +1669,12 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + unsigned int prev_rs; + unsigned int i; + int use_aux; ++ int rv; + bool slice_temporal_mvp; + + xtrace_in(dev, de); + +- pred_weight_table = &sh->pred_weight_table; ++// pred_weight_table = &sh->pred_weight_table; + + s->frame_end = + ((run->src->flags & V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF) == 0); +@@ -1608,9 +1746,9 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + de->cmd_len = 0; + de->dpbno_col = ~0U; + +- de->bit_copy_gptr = ctx->bitbufs + 0; ++ de->bit_copy_gptr = ctx->bitbufs + ctx->p1idx; + de->bit_copy_len = 0; +- de->cmd_copy_gptr = ctx->cmdbufs + 0; ++ de->cmd_copy_gptr = ctx->cmdbufs + ctx->p1idx; + + de->frame_c_offset = ctx->dst_fmt.height * 128; + de->frame_stride = ctx->dst_fmt.plane_fmt[0].bytesperline * 128; +@@ -1727,6 +1865,9 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + bits_alloc = wxh < 983040 ? wxh * 3 / 4 : + wxh < 983040 * 2 ? 983040 * 3 / 4 : + wxh * 3 / 8; ++ /* Allow for bit depth */ ++ bits_alloc += (bits_alloc * ++ s->sps.bit_depth_luma_minus8) / 8; + bits_alloc = round_up_size(bits_alloc); + + if (gptr_alloc(dev, de->bit_copy_gptr, +@@ -1743,18 +1884,35 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + } + } + +- // Pre calc a few things +- s->src_addr = +- !s->frame_end ? +- 0 : +- vb2_dma_contig_plane_dma_addr(&run->src->vb2_buf, 0); +- s->src_buf = s->src_addr != 0 ? NULL : +- vb2_plane_vaddr(&run->src->vb2_buf, 0); ++ // Either map src buffer or use directly ++ s->src_addr = 0; ++ s->src_buf = NULL; ++ ++ if (run->src->planes[0].bytesused < (sh->bit_size + 7) / 8) { ++ v4l2_warn(&dev->v4l2_dev, ++ "Bit size %d > bytesused %d\n", ++ sh->bit_size, run->src->planes[0].bytesused); ++ goto fail; ++ } ++ if (sh->data_bit_offset >= sh->bit_size || ++ sh->bit_size - sh->data_bit_offset < 8) { ++ v4l2_warn(&dev->v4l2_dev, ++ "Bit size %d < Bit offset %d + 8\n", ++ sh->bit_size, sh->data_bit_offset); ++ goto fail; ++ } ++ ++ if (s->frame_end) ++ s->src_addr = vb2_dma_contig_plane_dma_addr(&run->src->vb2_buf, ++ 0); ++ if (!s->src_addr) ++ s->src_buf = vb2_plane_vaddr(&run->src->vb2_buf, 0); + if (!s->src_addr && !s->src_buf) { + v4l2_err(&dev->v4l2_dev, "Failed to map src buffer\n"); + goto fail; + } + ++ // Pre calc a few things + s->sh = sh; + s->slice_qp = 26 + s->pps.init_qp_minus26 + s->sh->slice_qp_delta; + s->max_num_merge_cand = sh->slice_type == HEVC_SLICE_I ? +@@ -1785,9 +1943,11 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + s->prev_ctb_y = prev_rs / de->pic_width_in_ctbs_y; + + if ((s->pps.flags & V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED)) +- wpp_decode_slice(de, s); ++ rv = wpp_decode_slice(de, s); + else +- decode_slice(de, s); ++ rv = decode_slice(de, s); ++ if (rv) ++ goto fail; + + if (!s->frame_end) { + xtrace_ok(dev, de); +@@ -1945,29 +2105,28 @@ static int check_status(const struct rpivid_dev *const dev) + return -1; + } + +-static void cb_phase2(struct rpivid_dev *const dev, void *v) ++static void phase2_cb(struct rpivid_dev *const dev, void *v) + { + struct rpivid_dec_env *const de = v; +- struct rpivid_ctx *const ctx = de->ctx; + + xtrace_in(dev, de); + +- v4l2_m2m_cap_buf_return(dev->m2m_dev, ctx->fh.m2m_ctx, de->frame_buf, +- VB2_BUF_STATE_DONE); +- de->frame_buf = NULL; ++ /* Done with buffers - allow new P1 */ ++ rpivid_hw_irq_active1_enable_claim(dev, 1); + +- /* Delete de before finish as finish might immediately trigger a reuse +- * of de +- */ +- dec_env_delete(de); ++ v4l2_m2m_buf_done(de->frame_buf, VB2_BUF_STATE_DONE); ++ de->frame_buf = NULL; + +- if (atomic_add_return(-1, &ctx->p2out) >= RPIVID_P2BUF_COUNT - 1) { +- xtrace_fin(dev, de); +- v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, +- VB2_BUF_STATE_DONE); +- } ++#if USE_REQUEST_PIN ++ media_request_unpin(de->req_pin); ++ de->req_pin = NULL; ++#else ++ media_request_object_complete(de->req_obj); ++ de->req_obj = NULL; ++#endif + + xtrace_ok(dev, de); ++ dec_env_delete(de); + } + + static void phase2_claimed(struct rpivid_dev *const dev, void *v) +@@ -2023,7 +2182,7 @@ static void phase2_claimed(struct rpivid_dev *const dev, void *v) + // de->ctx->colmvbuf.addr, de->ctx->colmvbuf.addr + + // de->ctx->colmvbuf.size); + +- rpivid_hw_irq_active2_irq(dev, &de->irq_ent, cb_phase2, de); ++ rpivid_hw_irq_active2_irq(dev, &de->irq_ent, phase2_cb, de); + + apb_write_final(dev, RPI_NUMROWS, de->pic_height_in_ctbs_y); + +@@ -2032,6 +2191,39 @@ static void phase2_claimed(struct rpivid_dev *const dev, void *v) + + static void phase1_claimed(struct rpivid_dev *const dev, void *v); + ++// release any and all objects associated with de ++// and reenable phase 1 if required ++static void phase1_err_fin(struct rpivid_dev *const dev, ++ struct rpivid_ctx *const ctx, ++ struct rpivid_dec_env *const de) ++{ ++ /* Return all detached buffers */ ++ if (de->src_buf) ++ v4l2_m2m_buf_done(de->src_buf, VB2_BUF_STATE_ERROR); ++ de->src_buf = NULL; ++ if (de->frame_buf) ++ v4l2_m2m_buf_done(de->frame_buf, VB2_BUF_STATE_ERROR); ++ de->frame_buf = NULL; ++#if USE_REQUEST_PIN ++ if (de->req_pin) ++ media_request_unpin(de->req_pin); ++ de->req_pin = NULL; ++#else ++ if (de->req_obj) ++ media_request_object_complete(de->req_obj); ++ de->req_obj = NULL; ++#endif ++ ++ dec_env_delete(de); ++ ++ /* Reenable phase 0 if we were blocking */ ++ if (atomic_add_return(-1, &ctx->p1out) >= RPIVID_P1BUF_COUNT - 1) ++ v4l2_m2m_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx); ++ ++ /* Done with P1-P2 buffers - allow new P1 */ ++ rpivid_hw_irq_active1_enable_claim(dev, 1); ++} ++ + static void phase1_thread(struct rpivid_dev *const dev, void *v) + { + struct rpivid_dec_env *const de = v; +@@ -2076,15 +2268,12 @@ static void phase1_thread(struct rpivid_dev *const dev, void *v) + __func__); + ctx->fatal_err = 1; + } +- dec_env_delete(de); +- xtrace_fin(dev, de); +- v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, +- VB2_BUF_STATE_ERROR); + xtrace_fail(dev, de); ++ phase1_err_fin(dev, ctx, de); + } + + /* Always called in irq context (this is good) */ +-static void cb_phase1(struct rpivid_dev *const dev, void *v) ++static void phase1_cb(struct rpivid_dev *const dev, void *v) + { + struct rpivid_dec_env *const de = v; + struct rpivid_ctx *const ctx = de->ctx; +@@ -2092,6 +2281,7 @@ static void cb_phase1(struct rpivid_dev *const dev, void *v) + xtrace_in(dev, de); + + de->p1_status = check_status(dev); ++ + if (de->p1_status != 0) { + v4l2_info(&dev->v4l2_dev, "%s: Post wait: %#x\n", + __func__, de->p1_status); +@@ -2105,24 +2295,17 @@ static void cb_phase1(struct rpivid_dev *const dev, void *v) + return; + } + +- /* After the frame-buf is detached it must be returned but from +- * this point onward (phase2_claimed, cb_phase2) there are no error +- * paths so the return at the end of cb_phase2 is all that is needed +- */ +- de->frame_buf = v4l2_m2m_cap_buf_detach(dev->m2m_dev, ctx->fh.m2m_ctx); +- if (!de->frame_buf) { +- v4l2_err(&dev->v4l2_dev, "%s: No detached buffer\n", __func__); +- goto fail; +- } ++ v4l2_m2m_buf_done(de->src_buf, VB2_BUF_STATE_DONE); ++ de->src_buf = NULL; + ++ /* All phase1 error paths done - it is safe to inc p2idx */ + ctx->p2idx = + (ctx->p2idx + 1 >= RPIVID_P2BUF_COUNT) ? 0 : ctx->p2idx + 1; + +- // Enable the next setup if our Q isn't too big +- if (atomic_add_return(1, &ctx->p2out) < RPIVID_P2BUF_COUNT) { ++ /* Renable the next setup if we were blocking */ ++ if (atomic_add_return(-1, &ctx->p1out) >= RPIVID_P1BUF_COUNT - 1) { + xtrace_fin(dev, de); +- v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, +- VB2_BUF_STATE_DONE); ++ v4l2_m2m_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx); + } + + rpivid_hw_irq_active2_claim(dev, &de->irq_ent, phase2_claimed, de); +@@ -2131,11 +2314,8 @@ static void cb_phase1(struct rpivid_dev *const dev, void *v) + return; + + fail: +- dec_env_delete(de); +- xtrace_fin(dev, de); +- v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, +- VB2_BUF_STATE_ERROR); + xtrace_fail(dev, de); ++ phase1_err_fin(dev, ctx, de); + } + + static void phase1_claimed(struct rpivid_dev *const dev, void *v) +@@ -2160,6 +2340,10 @@ static void phase1_claimed(struct rpivid_dev *const dev, void *v) + de->coeff_stride = + ALIGN_DOWN(coeff_gptr->size / de->pic_height_in_ctbs_y, 64); + ++ /* phase1_claimed blocked until cb_phase1 completed so p2idx inc ++ * in cb_phase1 after error detection ++ */ ++ + apb_write_vc_addr(dev, RPI_PUWBASE, de->pu_base_vc); + apb_write_vc_len(dev, RPI_PUWSTRIDE, de->pu_stride); + apb_write_vc_addr(dev, RPI_COEFFWBASE, de->coeff_base_vc); +@@ -2169,7 +2353,7 @@ static void phase1_claimed(struct rpivid_dev *const dev, void *v) + apb_write(dev, RPI_CFNUM, de->cmd_len); + + // Claim irq +- rpivid_hw_irq_active1_irq(dev, &de->irq_ent, cb_phase1, de); ++ rpivid_hw_irq_active1_irq(dev, &de->irq_ent, phase1_cb, de); + + // And start the h/w + apb_write_vc_addr_final(dev, RPI_CFBASE, de->cmd_copy_gptr->addr); +@@ -2178,11 +2362,8 @@ static void phase1_claimed(struct rpivid_dev *const dev, void *v) + return; + + fail: +- dec_env_delete(de); +- xtrace_fin(dev, de); +- v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, +- VB2_BUF_STATE_ERROR); + xtrace_fail(dev, de); ++ phase1_err_fin(dev, ctx, de); + } + + static void dec_state_delete(struct rpivid_ctx *const ctx) +@@ -2315,7 +2496,9 @@ static void rpivid_h265_trigger(struct rpivid_ctx *ctx) + case RPIVID_DECODE_SLICE_CONTINUE: + v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, + VB2_BUF_STATE_DONE); ++ xtrace_ok(dev, de); + break; ++ + default: + v4l2_err(&dev->v4l2_dev, "%s: Unexpected state: %d\n", __func__, + de->state); +@@ -2329,14 +2512,59 @@ static void rpivid_h265_trigger(struct rpivid_ctx *ctx) + v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, + VB2_BUF_STATE_ERROR); + break; ++ + case RPIVID_DECODE_PHASE1: + ctx->dec0 = NULL; ++ ++#if !USE_REQUEST_PIN ++ /* Alloc a new request object - needs to be alloced dynamically ++ * as the media request will release it some random time after ++ * it is completed ++ */ ++ de->req_obj = kmalloc(sizeof(*de->req_obj), GFP_KERNEL); ++ if (!de->req_obj) { ++ xtrace_fail(dev, de); ++ dec_env_delete(de); ++ v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ++ ctx->fh.m2m_ctx, ++ VB2_BUF_STATE_ERROR); ++ break; ++ } ++ media_request_object_init(de->req_obj); ++#warning probably needs to _get the req obj too ++#endif ++ ctx->p1idx = (ctx->p1idx + 1 >= RPIVID_P1BUF_COUNT) ? ++ 0 : ctx->p1idx + 1; ++ ++ /* We know we have src & dst so no need to test */ ++ de->src_buf = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); ++ de->frame_buf = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); ++ ++#if USE_REQUEST_PIN ++ de->req_pin = de->src_buf->vb2_buf.req_obj.req; ++ media_request_pin(de->req_pin); ++#else ++ media_request_object_bind(de->src_buf->vb2_buf.req_obj.req, ++ &dst_req_obj_ops, de, false, ++ de->req_obj); ++#endif ++ ++ /* We could get rid of the src buffer here if we've already ++ * copied it, but we don't copy the last buffer unless it ++ * didn't return a contig dma addr and that shouldn't happen ++ */ ++ ++ /* Enable the next setup if our Q isn't too big */ ++ if (atomic_add_return(1, &ctx->p1out) < RPIVID_P1BUF_COUNT) { ++ xtrace_fin(dev, de); ++ v4l2_m2m_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx); ++ } ++ + rpivid_hw_irq_active1_claim(dev, &de->irq_ent, phase1_claimed, + de); ++ xtrace_ok(dev, de); + break; + } +- +- xtrace_ok(dev, de); + } + + struct rpivid_dec_ops rpivid_dec_ops_h265 = { +diff --git a/drivers/staging/media/rpivid/rpivid_hw.c b/drivers/staging/media/rpivid/rpivid_hw.c +index ada6107ab675..396263bb352e 100644 +--- a/drivers/staging/media/rpivid/rpivid_hw.c ++++ b/drivers/staging/media/rpivid/rpivid_hw.c +@@ -185,14 +185,14 @@ static void do_enable_claim(struct rpivid_dev * const dev, + sched_cb(dev, ictl, ient); + } + +-static void ictl_init(struct rpivid_hw_irq_ctrl * const ictl) ++static void ictl_init(struct rpivid_hw_irq_ctrl * const ictl, int enables) + { + spin_lock_init(&ictl->lock); + ictl->claim = NULL; + ictl->tail = NULL; + ictl->irq = NULL; + ictl->no_sched = 0; +- ictl->enable = -1; ++ ictl->enable = enables; + ictl->thread_reqed = false; + } + +@@ -308,8 +308,8 @@ int rpivid_hw_probe(struct rpivid_dev *dev) + int irq_dec; + int ret = 0; + +- ictl_init(&dev->ic_active1); +- ictl_init(&dev->ic_active2); ++ ictl_init(&dev->ic_active1, RPIVID_P2BUF_COUNT); ++ ictl_init(&dev->ic_active2, RPIVID_ICTL_ENABLE_UNLIMITED); + + res = platform_get_resource_byname(dev->pdev, IORESOURCE_MEM, "intc"); + if (!res) +-- +2.18.4 + + +From ad4bb364bba40c31fb19b3f9a97b50db41021268 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Fri, 19 Mar 2021 17:26:09 +0000 +Subject: [PATCH 684/693] Revert "media: v4l2-mem2mem: allow request job buffer + processing after job finish" + +This reverts commit 40ce8267cb747b3a4f526ac2cf2f633a273c92ae. + +Signed-off-by: John Cox +--- + drivers/media/v4l2-core/v4l2-mem2mem.c | 104 ++----------------------- + include/media/v4l2-mem2mem.h | 47 ----------- + include/media/videobuf2-v4l2.h | 3 - + 3 files changed, 6 insertions(+), 148 deletions(-) + +diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c +index 1d41c4ea28d5..fb8708ddc1dc 100644 +--- a/drivers/media/v4l2-core/v4l2-mem2mem.c ++++ b/drivers/media/v4l2-core/v4l2-mem2mem.c +@@ -417,18 +417,15 @@ static void v4l2_m2m_cancel_job(struct v4l2_m2m_ctx *m2m_ctx) + { + struct v4l2_m2m_dev *m2m_dev; + unsigned long flags; +- bool det_abort_req; + + m2m_dev = m2m_ctx->m2m_dev; + spin_lock_irqsave(&m2m_dev->job_spinlock, flags); + +- det_abort_req = !list_empty(&m2m_ctx->det_list); + m2m_ctx->job_flags |= TRANS_ABORT; + if (m2m_ctx->job_flags & TRANS_RUNNING) { + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags); + if (m2m_dev->m2m_ops->job_abort) + m2m_dev->m2m_ops->job_abort(m2m_ctx->priv); +- det_abort_req = false; + dprintk("m2m_ctx %p running, will wait to complete\n", m2m_ctx); + wait_event(m2m_ctx->finished, + !(m2m_ctx->job_flags & TRANS_RUNNING)); +@@ -442,11 +439,6 @@ static void v4l2_m2m_cancel_job(struct v4l2_m2m_ctx *m2m_ctx) + /* Do nothing, was not on queue/running */ + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags); + } +- +- /* Wait for detached buffers to come back too */ +- if (det_abort_req && m2m_dev->m2m_ops->job_abort) +- m2m_dev->m2m_ops->job_abort(m2m_ctx->priv); +- wait_event(m2m_ctx->det_empty, list_empty(&m2m_ctx->det_list)); + } + + /* +@@ -484,7 +476,6 @@ static bool _v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev, + + list_del(&m2m_dev->curr_ctx->queue); + m2m_dev->curr_ctx->job_flags &= ~(TRANS_QUEUED | TRANS_RUNNING); +- m2m_ctx->cap_detached = false; + wake_up(&m2m_dev->curr_ctx->finished); + m2m_dev->curr_ctx = NULL; + return true; +@@ -510,80 +501,6 @@ void v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev, + } + EXPORT_SYMBOL(v4l2_m2m_job_finish); + +-struct vb2_v4l2_buffer *_v4l2_m2m_cap_buf_detach(struct v4l2_m2m_ctx *m2m_ctx) +-{ +- struct vb2_v4l2_buffer *buf; +- +- buf = v4l2_m2m_dst_buf_remove(m2m_ctx); +- list_add_tail(&container_of(buf, struct v4l2_m2m_buffer, vb)->list, +- &m2m_ctx->det_list); +- m2m_ctx->cap_detached = true; +- buf->is_held = true; +- buf->det_state = VB2_BUF_STATE_ACTIVE; +- +- return buf; +-} +- +-struct vb2_v4l2_buffer *v4l2_m2m_cap_buf_detach(struct v4l2_m2m_dev *m2m_dev, +- struct v4l2_m2m_ctx *m2m_ctx) +-{ +- unsigned long flags; +- struct vb2_v4l2_buffer *src_buf, *dst_buf; +- +- spin_lock_irqsave(&m2m_dev->job_spinlock, flags); +- +- dst_buf = NULL; +- src_buf = v4l2_m2m_next_src_buf(m2m_ctx); +- +- if (!(src_buf->flags & V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF) && +- !m2m_ctx->cap_detached) +- dst_buf = _v4l2_m2m_cap_buf_detach(m2m_ctx); +- +- spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags); +- return dst_buf; +-} +-EXPORT_SYMBOL(v4l2_m2m_cap_buf_detach); +- +-static void _v4l2_m2m_cap_buf_return(struct v4l2_m2m_ctx *m2m_ctx, +- struct vb2_v4l2_buffer *buf, +- enum vb2_buffer_state state) +-{ +- buf->det_state = state; +- +- /* +- * Always signal done in the order we got stuff +- * Stop if we find a buf that is still in use +- */ +- while (!list_empty(&m2m_ctx->det_list)) { +- buf = &list_first_entry(&m2m_ctx->det_list, +- struct v4l2_m2m_buffer, list)->vb; +- state = buf->det_state; +- if (state != VB2_BUF_STATE_DONE && +- state != VB2_BUF_STATE_ERROR) +- return; +- list_del(&container_of(buf, struct v4l2_m2m_buffer, vb)->list); +- buf->det_state = VB2_BUF_STATE_DEQUEUED; +- v4l2_m2m_buf_done(buf, state); +- } +- wake_up(&m2m_ctx->det_empty); +-} +- +-void v4l2_m2m_cap_buf_return(struct v4l2_m2m_dev *m2m_dev, +- struct v4l2_m2m_ctx *m2m_ctx, +- struct vb2_v4l2_buffer *buf, +- enum vb2_buffer_state state) +-{ +- unsigned long flags; +- +- if (!buf) +- return; +- +- spin_lock_irqsave(&m2m_dev->job_spinlock, flags); +- _v4l2_m2m_cap_buf_return(m2m_ctx, buf, state); +- spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags); +-} +-EXPORT_SYMBOL(v4l2_m2m_cap_buf_return); +- + void v4l2_m2m_buf_done_and_job_finish(struct v4l2_m2m_dev *m2m_dev, + struct v4l2_m2m_ctx *m2m_ctx, + enum vb2_buffer_state state) +@@ -594,21 +511,14 @@ void v4l2_m2m_buf_done_and_job_finish(struct v4l2_m2m_dev *m2m_dev, + + spin_lock_irqsave(&m2m_dev->job_spinlock, flags); + src_buf = v4l2_m2m_src_buf_remove(m2m_ctx); ++ dst_buf = v4l2_m2m_next_dst_buf(m2m_ctx); + +- if (WARN_ON(!src_buf)) ++ if (WARN_ON(!src_buf || !dst_buf)) + goto unlock; +- if (!m2m_ctx->cap_detached) { +- dst_buf = v4l2_m2m_next_dst_buf(m2m_ctx); +- if (WARN_ON(!dst_buf)) +- goto unlock; +- +- dst_buf->is_held = src_buf->flags +- & V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF; +- +- if (!dst_buf->is_held) { +- dst_buf = _v4l2_m2m_cap_buf_detach(m2m_ctx); +- _v4l2_m2m_cap_buf_return(m2m_ctx, dst_buf, state); +- } ++ dst_buf->is_held = src_buf->flags & V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF; ++ if (!dst_buf->is_held) { ++ v4l2_m2m_dst_buf_remove(m2m_ctx); ++ v4l2_m2m_buf_done(dst_buf, state); + } + /* + * If the request API is being used, returning the OUTPUT +@@ -1256,14 +1166,12 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(struct v4l2_m2m_dev *m2m_dev, + m2m_ctx->priv = drv_priv; + m2m_ctx->m2m_dev = m2m_dev; + init_waitqueue_head(&m2m_ctx->finished); +- init_waitqueue_head(&m2m_ctx->det_empty); + + out_q_ctx = &m2m_ctx->out_q_ctx; + cap_q_ctx = &m2m_ctx->cap_q_ctx; + + INIT_LIST_HEAD(&out_q_ctx->rdy_queue); + INIT_LIST_HEAD(&cap_q_ctx->rdy_queue); +- INIT_LIST_HEAD(&m2m_ctx->det_list); + spin_lock_init(&out_q_ctx->rdy_spinlock); + spin_lock_init(&cap_q_ctx->rdy_spinlock); + +diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h +index 8ccb17d881ad..5a91b548ecc0 100644 +--- a/include/media/v4l2-mem2mem.h ++++ b/include/media/v4l2-mem2mem.h +@@ -92,9 +92,6 @@ struct v4l2_m2m_queue_ctx { + * %TRANS_QUEUED, %TRANS_RUNNING and %TRANS_ABORT. + * @finished: Wait queue used to signalize when a job queue finished. + * @priv: Instance private data +- * @cap_detached: Current job's capture buffer has been detached +- * @det_list: List of detached (post-job but still in flight) capture buffers +- * @det_empty: Wait queue signalled when det_list goes empty + * + * The memory to memory context is specific to a file handle, NOT to e.g. + * a device. +@@ -123,11 +120,6 @@ struct v4l2_m2m_ctx { + wait_queue_head_t finished; + + void *priv; +- +- /* Detached buffer handling */ +- bool cap_detached; +- struct list_head det_list; +- wait_queue_head_t det_empty; + }; + + /** +@@ -334,45 +326,6 @@ void v4l2_m2m_suspend(struct v4l2_m2m_dev *m2m_dev); + */ + void v4l2_m2m_resume(struct v4l2_m2m_dev *m2m_dev); + +-/** +- * v4l2_m2m_cap_buf_detach() - detach the capture buffer from the job and +- * return it. +- * +- * @m2m_dev: opaque pointer to the internal data to handle M2M context +- * @m2m_ctx: m2m context assigned to the instance given by struct &v4l2_m2m_ctx +- * +- * This function is designed to be used in conjunction with +- * v4l2_m2m_buf_done_and_job_finish(). It allows the next job to start +- * execution before the capture buffer is returned to the user which can be +- * important if the underlying processing has multiple phases that are more +- * efficiently executed in parallel. +- * +- * If used then it must be called before v4l2_m2m_buf_done_and_job_finish() +- * as otherwise the buffer will have already gone. +- * +- * It is the callers reponsibilty to ensure that all detached buffers are +- * returned. +- */ +-struct vb2_v4l2_buffer *v4l2_m2m_cap_buf_detach(struct v4l2_m2m_dev *m2m_dev, +- struct v4l2_m2m_ctx *m2m_ctx); +- +-/** +- * v4l2_m2m_cap_buf_return() - return a capture buffer, previously detached +- * with v4l2_m2m_cap_buf_detach() to the user. +- * +- * @m2m_dev: opaque pointer to the internal data to handle M2M context +- * @m2m_ctx: m2m context assigned to the instance given by struct &v4l2_m2m_ctx +- * @buf: the buffer to return +- * @state: vb2 buffer state passed to v4l2_m2m_buf_done(). +- * +- * Buffers returned by this function will be returned to the user in the order +- * of the original jobs rather than the order in which this function is called. +- */ +-void v4l2_m2m_cap_buf_return(struct v4l2_m2m_dev *m2m_dev, +- struct v4l2_m2m_ctx *m2m_ctx, +- struct vb2_v4l2_buffer *buf, +- enum vb2_buffer_state state); +- + /** + * v4l2_m2m_reqbufs() - multi-queue-aware REQBUFS multiplexer + * +diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h +index 260593fffbc8..c203047eb834 100644 +--- a/include/media/videobuf2-v4l2.h ++++ b/include/media/videobuf2-v4l2.h +@@ -37,8 +37,6 @@ struct video_device; + * @request_fd: the request_fd associated with this buffer + * @is_held: if true, then this capture buffer was held + * @planes: plane information (userptr/fd, length, bytesused, data_offset). +- * @det_state: if a detached request capture buffer then this contains its +- * current state + * + * Should contain enough information to be able to cover all the fields + * of &struct v4l2_buffer at ``videodev2.h``. +@@ -53,7 +51,6 @@ struct vb2_v4l2_buffer { + __s32 request_fd; + bool is_held; + struct vb2_plane planes[VB2_MAX_PLANES]; +- enum vb2_buffer_state det_state; + }; + + /* VB2 V4L2 flags as set in vb2_queue.subsystem_flags */ +-- +2.18.4 + + +From 1fefe102f6451f089fbe8b907fe62965805eca58 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Mon, 29 Mar 2021 17:42:16 +0100 +Subject: [PATCH 685/693] media: rpivid: Map cmd buffer directly + +It is unnecessary to have a separate dmabuf to hold the cmd buffer. +Map it directly from the kmalloc. + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid.h | 3 +- + drivers/staging/media/rpivid/rpivid_h265.c | 48 ++++++++++------------ + drivers/staging/media/rpivid/rpivid_hw.c | 2 + + 3 files changed, 25 insertions(+), 28 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid.h b/drivers/staging/media/rpivid/rpivid.h +index 992098099039..ede92c9ef7d9 100644 +--- a/drivers/staging/media/rpivid/rpivid.h ++++ b/drivers/staging/media/rpivid/rpivid.h +@@ -114,7 +114,6 @@ struct rpivid_ctx { + unsigned int p1idx; + atomic_t p1out; + struct rpivid_gptr bitbufs[RPIVID_P1BUF_COUNT]; +- struct rpivid_gptr cmdbufs[RPIVID_P1BUF_COUNT]; + + /* *** Should be in dev *** */ + unsigned int p2idx; +@@ -183,6 +182,8 @@ struct rpivid_dev { + struct clk *clock; + struct clk_request *hevc_req; + ++ int cache_align; ++ + struct rpivid_hw_irq_ctrl ic_active1; + struct rpivid_hw_irq_ctrl ic_active2; + }; +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index a2cb2b547c50..9eb87045b841 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -227,6 +227,9 @@ struct rpivid_dec_env { + struct rpivid_q_aux *frame_aux; + struct rpivid_q_aux *col_aux; + ++ dma_addr_t cmd_addr; ++ size_t cmd_size; ++ + dma_addr_t pu_base_vc; + dma_addr_t coeff_base_vc; + u32 pu_stride; +@@ -234,7 +237,6 @@ struct rpivid_dec_env { + + struct rpivid_gptr *bit_copy_gptr; + size_t bit_copy_len; +- struct rpivid_gptr *cmd_copy_gptr; + + #define SLICE_MSGS_MAX (2 * HEVC_MAX_REFS * 8 + 3) + u16 slice_msgs[SLICE_MSGS_MAX]; +@@ -1499,22 +1501,17 @@ static int write_cmd_buffer(struct rpivid_dev *const dev, + struct rpivid_dec_env *const de, + const struct rpivid_dec_state *const s) + { +- // Copy commands out to dma buf +- const size_t cmd_size = de->cmd_len * sizeof(de->cmd_fifo[0]); +- +- if (!de->cmd_copy_gptr->ptr || cmd_size > de->cmd_copy_gptr->size) { +- size_t cmd_alloc = round_up_size(cmd_size); ++ const size_t cmd_size = ALIGN(de->cmd_len * sizeof(de->cmd_fifo[0]), ++ dev->cache_align); + +- if (gptr_realloc_new(dev, de->cmd_copy_gptr, cmd_alloc)) { +- v4l2_err(&dev->v4l2_dev, +- "Alloc cmd buffer (%zu): FAILED\n", cmd_alloc); +- return -ENOMEM; +- } +- v4l2_info(&dev->v4l2_dev, "Alloc cmd buffer (%zu): OK\n", +- cmd_alloc); ++ de->cmd_addr = dma_map_single(dev->dev, de->cmd_fifo, ++ cmd_size, DMA_TO_DEVICE); ++ if (dma_mapping_error(dev->dev, de->cmd_addr)) { ++ v4l2_err(&dev->v4l2_dev, ++ "Map cmd buffer (%zu): FAILED\n", cmd_size); ++ return -ENOMEM; + } +- +- memcpy(de->cmd_copy_gptr->ptr, de->cmd_fifo, cmd_size); ++ de->cmd_size = cmd_size; + return 0; + } + +@@ -1551,6 +1548,12 @@ static void dec_env_delete(struct rpivid_dec_env *const de) + struct rpivid_ctx * const ctx = de->ctx; + unsigned long lock_flags; + ++ if (de->cmd_size) { ++ dma_unmap_single(ctx->dev->dev, de->cmd_addr, de->cmd_size, ++ DMA_TO_DEVICE); ++ de->cmd_size = 0; ++ } ++ + aux_q_release(ctx, &de->frame_aux); + aux_q_release(ctx, &de->col_aux); + +@@ -1603,7 +1606,8 @@ static int dec_env_init(struct rpivid_ctx *const ctx) + + de->ctx = ctx; + de->decode_order = i; +- de->cmd_max = 1024; ++// de->cmd_max = 1024; ++ de->cmd_max = 8096; + de->cmd_fifo = kmalloc_array(de->cmd_max, + sizeof(struct rpi_cmd), + GFP_KERNEL); +@@ -1748,7 +1752,6 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + + de->bit_copy_gptr = ctx->bitbufs + ctx->p1idx; + de->bit_copy_len = 0; +- de->cmd_copy_gptr = ctx->cmdbufs + ctx->p1idx; + + de->frame_c_offset = ctx->dst_fmt.height * 128; + de->frame_stride = ctx->dst_fmt.plane_fmt[0].bytesperline * 128; +@@ -2356,7 +2359,7 @@ static void phase1_claimed(struct rpivid_dev *const dev, void *v) + rpivid_hw_irq_active1_irq(dev, &de->irq_ent, phase1_cb, de); + + // And start the h/w +- apb_write_vc_addr_final(dev, RPI_CFBASE, de->cmd_copy_gptr->addr); ++ apb_write_vc_addr_final(dev, RPI_CFBASE, de->cmd_addr); + + xtrace_ok(dev, de); + return; +@@ -2400,8 +2403,6 @@ static void rpivid_h265_stop(struct rpivid_ctx *ctx) + + for (i = 0; i != ARRAY_SIZE(ctx->bitbufs); ++i) + gptr_free(dev, ctx->bitbufs + i); +- for (i = 0; i != ARRAY_SIZE(ctx->cmdbufs); ++i) +- gptr_free(dev, ctx->cmdbufs + i); + for (i = 0; i != ARRAY_SIZE(ctx->pu_bufs); ++i) + gptr_free(dev, ctx->pu_bufs + i); + for (i = 0; i != ARRAY_SIZE(ctx->coeff_bufs); ++i) +@@ -2451,13 +2452,6 @@ static int rpivid_h265_start(struct rpivid_ctx *ctx) + goto fail; + } + +- // 16k is plenty for most purposes but we will realloc if needed +- for (i = 0; i != ARRAY_SIZE(ctx->cmdbufs); ++i) { +- if (gptr_alloc(dev, ctx->cmdbufs + i, 0x4000, +- DMA_ATTR_FORCE_CONTIGUOUS)) +- goto fail; +- } +- + // Finger in the air PU & Coeff alloc + // Will be realloced if too small + coeff_alloc = round_up_size(wxh); +diff --git a/drivers/staging/media/rpivid/rpivid_hw.c b/drivers/staging/media/rpivid/rpivid_hw.c +index 396263bb352e..2bb86d564b33 100644 +--- a/drivers/staging/media/rpivid/rpivid_hw.c ++++ b/drivers/staging/media/rpivid/rpivid_hw.c +@@ -331,6 +331,8 @@ int rpivid_hw_probe(struct rpivid_dev *dev) + if (IS_ERR(dev->clock)) + return PTR_ERR(dev->clock); + ++ dev->cache_align = dma_get_cache_alignment(); ++ + // Disable IRQs & reset anything pending + irq_write(dev, 0, + ARG_IC_ICTRL_ACTIVE1_EN_SET | ARG_IC_ICTRL_ACTIVE2_EN_SET); +-- +2.18.4 + + +From f6b02bb8a139c440c7537facf7f62af6ad5e2e09 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Thu, 1 Apr 2021 16:20:58 +0100 +Subject: [PATCH 686/693] media: rpivid: Improve values returned when setting + output format + +Guess a better value for the compressed bitstream buffer size + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid_h265.c | 66 ++++----------------- + drivers/staging/media/rpivid/rpivid_video.c | 61 +++++++++++++++++-- + drivers/staging/media/rpivid/rpivid_video.h | 4 ++ + 3 files changed, 70 insertions(+), 61 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index 9eb87045b841..ee5a48f26912 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -18,6 +18,7 @@ + + #include "rpivid.h" + #include "rpivid_hw.h" ++#include "rpivid_video.h" + + #define DEBUG_TRACE_P1_CMD 0 + #define DEBUG_TRACE_EXECUTION 0 +@@ -115,41 +116,9 @@ static int gptr_realloc_new(struct rpivid_dev * const dev, + return 0; + } + +-/* floor(log2(x)) */ +-static unsigned int log2_size(size_t x) +-{ +- unsigned int n = 0; +- +- if (x & ~0xffff) { +- n += 16; +- x >>= 16; +- } +- if (x & ~0xff) { +- n += 8; +- x >>= 8; +- } +- if (x & ~0xf) { +- n += 4; +- x >>= 4; +- } +- if (x & ~3) { +- n += 2; +- x >>= 2; +- } +- return (x & ~1) ? n + 1 : n; +-} +- +-static size_t round_up_size(const size_t x) +-{ +- /* Admit no size < 256 */ +- const unsigned int n = x < 256 ? 8 : log2_size(x) - 1; +- +- return x >= (3 << n) ? 4 << n : (3 << n); +-} +- + static size_t next_size(const size_t x) + { +- return round_up_size(x + 1); ++ return rpivid_round_up_size(x + 1); + } + + #define NUM_SCALING_FACTORS 4064 /* Not a typo = 0xbe0 + 0x400 */ +@@ -332,7 +301,7 @@ static int cmds_check_space(struct rpivid_dec_env *const de, unsigned int n) + if (de->cmd_len + n <= de->cmd_max) + return 0; + +- newmax = 2 << log2_size(de->cmd_len + n); ++ newmax = roundup_pow_of_two(de->cmd_len + n); + + a = krealloc(de->cmd_fifo, newmax * sizeof(struct rpi_cmd), + GFP_KERNEL); +@@ -1855,23 +1824,10 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + * slice as we can use the src buf directly + */ + if (!s->frame_end && !de->bit_copy_gptr->ptr) { +- const size_t wxh = s->sps.pic_width_in_luma_samples * +- s->sps.pic_height_in_luma_samples; + size_t bits_alloc; +- +- /* Annex A gives a min compression of 2 @ lvl 3.1 +- * (wxh <= 983040) and min 4 thereafter but avoid +- * the odity of 983041 having a lower limit than +- * 983040. +- * Multiply by 3/2 for 4:2:0 +- */ +- bits_alloc = wxh < 983040 ? wxh * 3 / 4 : +- wxh < 983040 * 2 ? 983040 * 3 / 4 : +- wxh * 3 / 8; +- /* Allow for bit depth */ +- bits_alloc += (bits_alloc * +- s->sps.bit_depth_luma_minus8) / 8; +- bits_alloc = round_up_size(bits_alloc); ++ bits_alloc = rpivid_bit_buf_size(s->sps.pic_width_in_luma_samples, ++ s->sps.pic_height_in_luma_samples, ++ s->sps.bit_depth_luma_minus8); + + if (gptr_alloc(dev, de->bit_copy_gptr, + bits_alloc, +@@ -2454,17 +2410,15 @@ static int rpivid_h265_start(struct rpivid_ctx *ctx) + + // Finger in the air PU & Coeff alloc + // Will be realloced if too small +- coeff_alloc = round_up_size(wxh); +- pu_alloc = round_up_size(wxh / 4); ++ coeff_alloc = rpivid_round_up_size(wxh); ++ pu_alloc = rpivid_round_up_size(wxh / 4); + for (i = 0; i != ARRAY_SIZE(ctx->pu_bufs); ++i) { + // Don't actually need a kernel mapping here + if (gptr_alloc(dev, ctx->pu_bufs + i, pu_alloc, +- DMA_ATTR_FORCE_CONTIGUOUS | +- DMA_ATTR_NO_KERNEL_MAPPING)) ++ DMA_ATTR_NO_KERNEL_MAPPING)) + goto fail; + if (gptr_alloc(dev, ctx->coeff_bufs + i, coeff_alloc, +- DMA_ATTR_FORCE_CONTIGUOUS | +- DMA_ATTR_NO_KERNEL_MAPPING)) ++ DMA_ATTR_NO_KERNEL_MAPPING)) + goto fail; + } + aux_q_init(ctx); +diff --git a/drivers/staging/media/rpivid/rpivid_video.c b/drivers/staging/media/rpivid/rpivid_video.c +index 30fa77652790..3d882a6853a5 100644 +--- a/drivers/staging/media/rpivid/rpivid_video.c ++++ b/drivers/staging/media/rpivid/rpivid_video.c +@@ -42,18 +42,69 @@ static inline unsigned int constrain2x(unsigned int x, unsigned int y) + (x > y * 2) ? y : x; + } + ++size_t rpivid_round_up_size(const size_t x) ++{ ++ /* Admit no size < 256 */ ++ const unsigned int n = x < 256 ? 8 : ilog2(x); ++ ++ return x >= (3 << n) ? 4 << n : (3 << n); ++} ++ ++size_t rpivid_bit_buf_size(unsigned int w, unsigned int h, unsigned int bits_minus8) ++{ ++ const size_t wxh = w * h; ++ size_t bits_alloc; ++ ++ /* Annex A gives a min compression of 2 @ lvl 3.1 ++ * (wxh <= 983040) and min 4 thereafter but avoid ++ * the odity of 983041 having a lower limit than ++ * 983040. ++ * Multiply by 3/2 for 4:2:0 ++ */ ++ bits_alloc = wxh < 983040 ? wxh * 3 / 4 : ++ wxh < 983040 * 2 ? 983040 * 3 / 4 : ++ wxh * 3 / 8; ++ /* Allow for bit depth */ ++ bits_alloc += (bits_alloc * bits_minus8) / 8; ++ return rpivid_round_up_size(bits_alloc); ++} ++ + int rpivid_prepare_src_format(struct v4l2_pix_format_mplane *pix_fmt) + { ++ size_t size; ++ u32 w; ++ u32 h; ++ + if (pix_fmt->pixelformat != V4L2_PIX_FMT_HEVC_SLICE) + return -EINVAL; + +- /* Zero bytes per line for encoded source. */ +- pix_fmt->plane_fmt[0].bytesperline = 0; +- /* Choose some minimum size since this can't be 0 */ +- pix_fmt->plane_fmt[0].sizeimage = max_t(u32, SZ_1K, +- pix_fmt->plane_fmt[0].sizeimage); ++ w = pix_fmt->width; ++ h = pix_fmt->height; ++ if (!w || !h) { ++ w = 1920; ++ h = 1080; ++ } ++ if (w > 4096) ++ w = 4096; ++ if (h > 4096) ++ h = 4096; ++ ++ if (!pix_fmt->plane_fmt[0].sizeimage || ++ pix_fmt->plane_fmt[0].sizeimage > SZ_32M) { ++ /* Unspecified or way too big - pick max for size */ ++ size = rpivid_bit_buf_size(w, h, 2); ++ } ++ /* Set a minimum */ ++ size = max_t(u32, SZ_4K, pix_fmt->plane_fmt[0].sizeimage); ++ ++ pix_fmt->width = w; ++ pix_fmt->height = h; + pix_fmt->num_planes = 1; + pix_fmt->field = V4L2_FIELD_NONE; ++ /* Zero bytes per line for encoded source. */ ++ pix_fmt->plane_fmt[0].bytesperline = 0; ++ pix_fmt->plane_fmt[0].sizeimage = size; ++ + return 0; + } + +diff --git a/drivers/staging/media/rpivid/rpivid_video.h b/drivers/staging/media/rpivid/rpivid_video.h +index 5c0fd9c8a6d7..a3b228556497 100644 +--- a/drivers/staging/media/rpivid/rpivid_video.h ++++ b/drivers/staging/media/rpivid/rpivid_video.h +@@ -24,6 +24,10 @@ extern const struct v4l2_ioctl_ops rpivid_ioctl_ops; + + int rpivid_queue_init(void *priv, struct vb2_queue *src_vq, + struct vb2_queue *dst_vq); ++ ++size_t rpivid_bit_buf_size(unsigned int w, unsigned int h, unsigned int bits_minus8); ++size_t rpivid_round_up_size(const size_t x); ++ + int rpivid_prepare_src_format(struct v4l2_pix_format_mplane *pix_fmt); + int rpivid_prepare_dst_format(struct v4l2_pix_format_mplane *pix_fmt); + +-- +2.18.4 + + +From 26b7c17b0c52d29004478e9f959713459affb768 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Sat, 3 Apr 2021 16:27:03 +0100 +Subject: [PATCH 687/693] media: rpivid: Improve stream_on/off conformance & + clock setup + +Fix stream on & off such that failures leave the driver in the correct +state. Ensure that the clock is on when we are streaming and off when +all contexts attached to this device have stopped streaming. + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid.c | 8 +- + drivers/staging/media/rpivid/rpivid.h | 15 ++- + drivers/staging/media/rpivid/rpivid_hw.c | 1 + + drivers/staging/media/rpivid/rpivid_video.c | 103 +++++++++++++++----- + 4 files changed, 101 insertions(+), 26 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid.c b/drivers/staging/media/rpivid/rpivid.c +index 56a6f87a8bbd..0cd7891d0c48 100644 +--- a/drivers/staging/media/rpivid/rpivid.c ++++ b/drivers/staging/media/rpivid/rpivid.c +@@ -212,9 +212,12 @@ static int rpivid_open(struct file *file) + ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + if (!ctx) { + mutex_unlock(&dev->dev_mutex); +- return -ENOMEM; ++ ret = -ENOMEM; ++ goto err_unlock; + } + ++ mutex_init(&ctx->ctx_mutex); ++ + v4l2_fh_init(&ctx->fh, video_devdata(file)); + file->private_data = &ctx->fh; + ctx->dev = dev; +@@ -245,7 +248,9 @@ static int rpivid_open(struct file *file) + err_ctrls: + v4l2_ctrl_handler_free(&ctx->hdl); + err_free: ++ mutex_destroy(&ctx->ctx_mutex); + kfree(ctx); ++err_unlock: + mutex_unlock(&dev->dev_mutex); + + return ret; +@@ -266,6 +271,7 @@ static int rpivid_release(struct file *file) + kfree(ctx->ctrls); + + v4l2_fh_exit(&ctx->fh); ++ mutex_destroy(&ctx->ctx_mutex); + + kfree(ctx); + +diff --git a/drivers/staging/media/rpivid/rpivid.h b/drivers/staging/media/rpivid/rpivid.h +index ede92c9ef7d9..4e249033424e 100644 +--- a/drivers/staging/media/rpivid/rpivid.h ++++ b/drivers/staging/media/rpivid/rpivid.h +@@ -84,6 +84,11 @@ struct rpivid_q_aux; + #define RPIVID_AUX_ENT_COUNT VB2_MAX_FRAME + + ++#define RPIVID_CTX_STATE_STOPPED 0 /* stream_off */ ++#define RPIVID_CTX_STATE_STREAM_ON 1 /* decoding */ ++#define RPIVID_CTX_STATE_STREAM_STOP 2 /* in stream_off */ ++#define RPIVID_CTX_STATE_STREAM_ERR 3 /* stream_on but broken */ ++ + struct rpivid_ctx { + struct v4l2_fh fh; + struct rpivid_dev *dev; +@@ -91,10 +96,19 @@ struct rpivid_ctx { + struct v4l2_pix_format_mplane src_fmt; + struct v4l2_pix_format_mplane dst_fmt; + int dst_fmt_set; ++ ++ atomic_t stream_state; ++ struct clk_request *clk_req; ++ int src_stream_on; ++ int dst_stream_on; ++ + // fatal_err is set if an error has occurred s.t. decode cannot + // continue (such as running out of CMA) + int fatal_err; + ++ /* Lock for queue operations */ ++ struct mutex ctx_mutex; ++ + struct v4l2_ctrl_handler hdl; + struct v4l2_ctrl **ctrls; + +@@ -180,7 +194,6 @@ struct rpivid_dev { + void __iomem *base_h265; + + struct clk *clock; +- struct clk_request *hevc_req; + + int cache_align; + +diff --git a/drivers/staging/media/rpivid/rpivid_hw.c b/drivers/staging/media/rpivid/rpivid_hw.c +index 2bb86d564b33..e7d1793105c5 100644 +--- a/drivers/staging/media/rpivid/rpivid_hw.c ++++ b/drivers/staging/media/rpivid/rpivid_hw.c +@@ -359,6 +359,7 @@ int rpivid_hw_probe(struct rpivid_dev *dev) + void rpivid_hw_remove(struct rpivid_dev *dev) + { + // IRQ auto freed on unload so no need to do it here ++ // ioremap auto freed on unload + ictl_uninit(&dev->ic_active1); + ictl_uninit(&dev->ic_active2); + } +diff --git a/drivers/staging/media/rpivid/rpivid_video.c b/drivers/staging/media/rpivid/rpivid_video.c +index 3d882a6853a5..705015890e71 100644 +--- a/drivers/staging/media/rpivid/rpivid_video.c ++++ b/drivers/staging/media/rpivid/rpivid_video.c +@@ -18,6 +18,7 @@ + #include + + #include "rpivid.h" ++#include "rpivid_hw.h" + #include "rpivid_video.h" + #include "rpivid_dec.h" + +@@ -533,33 +534,85 @@ static int rpivid_buf_prepare(struct vb2_buffer *vb) + return 0; + } + ++/* Only stops the clock if streaom off on both output & capture */ ++static void stop_clock(struct rpivid_dev *dev, struct rpivid_ctx *ctx) ++{ ++ if (ctx->src_stream_on || ++ ctx->dst_stream_on || ++ !ctx->clk_req) ++ return; ++ ++ clk_request_done(ctx->clk_req); ++ ctx->clk_req = NULL; ++ ++ clk_disable_unprepare(dev->clock); ++} ++ ++/* Always starts the clock if it isn't already on this ctx */ ++static int start_clock(struct rpivid_dev *dev, struct rpivid_ctx *ctx) ++{ ++ long max_hevc_clock; ++ int rv; ++ ++ if (ctx->clk_req) ++ return 0; ++ ++ max_hevc_clock = clk_round_rate(dev->clock, ULONG_MAX); ++ ++ ctx->clk_req = clk_request_start(dev->clock, max_hevc_clock); ++ if (!ctx->clk_req) { ++ dev_err(dev->dev, "Failed to set clock rate\n"); ++ return -EIO; ++ } ++ ++ rv = clk_prepare_enable(dev->clock); ++ if (rv) { ++ dev_err(dev->dev, "Failed to enable clock\n"); ++ clk_request_done(ctx->clk_req); ++ ctx->clk_req = NULL; ++ return rv; ++ } ++ ++ return 0; ++} ++ + static int rpivid_start_streaming(struct vb2_queue *vq, unsigned int count) + { + struct rpivid_ctx *ctx = vb2_get_drv_priv(vq); + struct rpivid_dev *dev = ctx->dev; +- long max_hevc_clock = clk_round_rate(dev->clock, ULONG_MAX); + int ret = 0; + +- if (ctx->src_fmt.pixelformat != V4L2_PIX_FMT_HEVC_SLICE) +- return -EINVAL; +- +- if (V4L2_TYPE_IS_OUTPUT(vq->type) && dev->dec_ops->start) +- ret = dev->dec_ops->start(ctx); ++ if (!V4L2_TYPE_IS_OUTPUT(vq->type)) { ++ ctx->dst_stream_on = 1; ++ goto ok; ++ } + +- dev->hevc_req = clk_request_start(dev->clock, max_hevc_clock); +- if (!dev->hevc_req) { +- dev_err(dev->dev, "Failed to set clock rate\n"); +- goto out; ++ if (ctx->src_fmt.pixelformat != V4L2_PIX_FMT_HEVC_SLICE) { ++ ret = -EINVAL; ++ goto fail_cleanup; + } + +- ret = clk_prepare_enable(dev->clock); ++ if (ctx->src_stream_on) ++ goto ok; ++ ++ ret = start_clock(dev, ctx); + if (ret) +- dev_err(dev->dev, "Failed to enable clock\n"); ++ goto fail_cleanup; + +-out: ++ if (dev->dec_ops->start) ++ ret = dev->dec_ops->start(ctx); + if (ret) +- rpivid_queue_cleanup(vq, VB2_BUF_STATE_QUEUED); ++ goto fail_stop_clock; ++ ++ ctx->src_stream_on = 1; ++ok: ++ return 0; + ++fail_stop_clock: ++ stop_clock(dev, ctx); ++fail_cleanup: ++ v4l2_err(&dev->v4l2_dev, "%s: qtype=%d: FAIL\n", __func__, vq->type); ++ rpivid_queue_cleanup(vq, VB2_BUF_STATE_QUEUED); + return ret; + } + +@@ -568,17 +621,19 @@ static void rpivid_stop_streaming(struct vb2_queue *vq) + struct rpivid_ctx *ctx = vb2_get_drv_priv(vq); + struct rpivid_dev *dev = ctx->dev; + +- if (V4L2_TYPE_IS_OUTPUT(vq->type) && dev->dec_ops->stop) +- dev->dec_ops->stop(ctx); ++ if (V4L2_TYPE_IS_OUTPUT(vq->type)) { ++ ctx->src_stream_on = 0; ++ if (dev->dec_ops->stop) ++ dev->dec_ops->stop(ctx); ++ } else { ++ ctx->dst_stream_on = 0; ++ } + + rpivid_queue_cleanup(vq, VB2_BUF_STATE_ERROR); + +- if (dev->hevc_req) +- { +- clk_request_done(dev->hevc_req); +- dev->hevc_req = NULL; +- } +- clk_disable_unprepare(dev->clock); ++ vb2_wait_for_all_buffers(vq); ++ ++ stop_clock(dev, ctx); + } + + static void rpivid_buf_queue(struct vb2_buffer *vb) +@@ -622,7 +677,7 @@ int rpivid_queue_init(void *priv, struct vb2_queue *src_vq, + src_vq->ops = &rpivid_qops; + src_vq->mem_ops = &vb2_dma_contig_memops; + src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; +- src_vq->lock = &ctx->dev->dev_mutex; ++ src_vq->lock = &ctx->ctx_mutex; + src_vq->dev = ctx->dev->dev; + src_vq->supports_requests = true; + src_vq->requires_requests = true; +@@ -639,7 +694,7 @@ int rpivid_queue_init(void *priv, struct vb2_queue *src_vq, + dst_vq->ops = &rpivid_qops; + dst_vq->mem_ops = &vb2_dma_contig_memops; + dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; +- dst_vq->lock = &ctx->dev->dev_mutex; ++ dst_vq->lock = &ctx->ctx_mutex; + dst_vq->dev = ctx->dev->dev; + + return vb2_queue_init(dst_vq); +-- +2.18.4 + + +From 4071538973e5d07bba61fa382779d759b0f2b1b0 Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Thu, 8 Apr 2021 18:34:09 +0100 +Subject: [PATCH 688/693] media: rpivid: Improve SPS/PPS error + handling/validation + +Move size and width checking from bitstream processing to control +validation + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid.c | 5 +- + drivers/staging/media/rpivid/rpivid.h | 6 +- + drivers/staging/media/rpivid/rpivid_h265.c | 132 ++++++++++++++++++--- + 3 files changed, 121 insertions(+), 22 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid.c b/drivers/staging/media/rpivid/rpivid.c +index 0cd7891d0c48..9d93ed757ebc 100644 +--- a/drivers/staging/media/rpivid/rpivid.c ++++ b/drivers/staging/media/rpivid/rpivid.c +@@ -38,12 +38,14 @@ static const struct rpivid_control rpivid_ctrls[] = { + { + .cfg = { + .id = V4L2_CID_MPEG_VIDEO_HEVC_SPS, ++ .ops = &rpivid_hevc_sps_ctrl_ops, + }, + .required = true, + }, + { + .cfg = { + .id = V4L2_CID_MPEG_VIDEO_HEVC_PPS, ++ .ops = &rpivid_hevc_pps_ctrl_ops, + }, + .required = true, + }, +@@ -119,7 +121,7 @@ static int rpivid_init_ctrls(struct rpivid_dev *dev, struct rpivid_ctx *ctx) + + for (i = 0; i < rpivid_ctrls_COUNT; i++) { + ctrl = v4l2_ctrl_new_custom(hdl, &rpivid_ctrls[i].cfg, +- NULL); ++ ctx); + if (hdl->error) { + v4l2_err(&dev->v4l2_dev, + "Failed to create new custom control id=%#x\n", +@@ -191,6 +193,7 @@ static int rpivid_request_validate(struct media_request *req) + if (!ctrl_test) { + v4l2_info(&ctx->dev->v4l2_dev, + "Missing required codec control\n"); ++ v4l2_ctrl_request_hdl_put(hdl); + return -ENOENT; + } + } +diff --git a/drivers/staging/media/rpivid/rpivid.h b/drivers/staging/media/rpivid/rpivid.h +index 4e249033424e..c4bc72d512ab 100644 +--- a/drivers/staging/media/rpivid/rpivid.h ++++ b/drivers/staging/media/rpivid/rpivid.h +@@ -185,7 +185,7 @@ struct rpivid_dev { + struct platform_device *pdev; + struct device *dev; + struct v4l2_m2m_dev *m2m_dev; +- struct rpivid_dec_ops *dec_ops; ++ const struct rpivid_dec_ops *dec_ops; + + /* Device file mutex */ + struct mutex dev_mutex; +@@ -201,7 +201,9 @@ struct rpivid_dev { + struct rpivid_hw_irq_ctrl ic_active2; + }; + +-extern struct rpivid_dec_ops rpivid_dec_ops_h265; ++extern const struct rpivid_dec_ops rpivid_dec_ops_h265; ++extern const struct v4l2_ctrl_ops rpivid_hevc_sps_ctrl_ops; ++extern const struct v4l2_ctrl_ops rpivid_hevc_pps_ctrl_ops; + + struct v4l2_ctrl *rpivid_find_ctrl(struct rpivid_ctx *ctx, u32 id); + void *rpivid_find_control_data(struct rpivid_ctx *ctx, u32 id); +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index ee5a48f26912..bb280b215a2e 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -1432,9 +1432,13 @@ static int updated_ps(struct rpivid_dec_state *const s) + s->ctb_addr_rs_to_ts = kmalloc_array(s->ctb_size, + sizeof(*s->ctb_addr_rs_to_ts), + GFP_KERNEL); ++ if (!s->ctb_addr_rs_to_ts) ++ goto fail; + s->ctb_addr_ts_to_rs = kmalloc_array(s->ctb_size, + sizeof(*s->ctb_addr_ts_to_rs), + GFP_KERNEL); ++ if (!s->ctb_addr_ts_to_rs) ++ goto fail; + + if (!(s->pps.flags & V4L2_HEVC_PPS_FLAG_TILES_ENABLED)) { + s->tile_width = 1; +@@ -1446,8 +1450,12 @@ static int updated_ps(struct rpivid_dec_state *const s) + + s->col_bd = kmalloc((s->tile_width + 1) * sizeof(*s->col_bd), + GFP_KERNEL); ++ if (!s->col_bd) ++ goto fail; + s->row_bd = kmalloc((s->tile_height + 1) * sizeof(*s->row_bd), + GFP_KERNEL); ++ if (!s->row_bd) ++ goto fail; + + s->col_bd[0] = 0; + for (i = 1; i < s->tile_width; i++) +@@ -1462,8 +1470,13 @@ static int updated_ps(struct rpivid_dec_state *const s) + s->row_bd[s->tile_height] = s->ctb_height; + + fill_rs_to_ts(s); +- + return 0; ++ ++fail: ++ free_ps_info(s); ++ /* Set invalid to force reload */ ++ s->sps.pic_width_in_luma_samples = 0; ++ return -ENOMEM; + } + + static int write_cmd_buffer(struct rpivid_dev *const dev, +@@ -1694,7 +1707,9 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + memcpy(&s->pps, run->h265.pps, sizeof(s->pps)); + + /* Recalc stuff as required */ +- updated_ps(s); ++ rv = updated_ps(s); ++ if (rv) ++ goto fail; + } + + de = dec_env_new(ctx); +@@ -1772,22 +1787,6 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + goto fail; + } + +- if (s->sps.pic_width_in_luma_samples > 4096 || +- s->sps.pic_height_in_luma_samples > 4096) { +- v4l2_warn(&dev->v4l2_dev, +- "Pic dimension (%dx%d) exeeds 4096\n", +- s->sps.pic_width_in_luma_samples, +- s->sps.pic_height_in_luma_samples); +- goto fail; +- } +- if ((s->tile_width != 1 || s->tile_height != 1) && +- (s->pps.flags & +- V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED)) { +- v4l2_warn(&dev->v4l2_dev, +- "Tiles + WPP not supported\n"); +- goto fail; +- } +- + // Fill in ref planes with our address s.t. if we mess + // up refs somehow then we still have a valid address + // entry +@@ -2515,9 +2514,104 @@ static void rpivid_h265_trigger(struct rpivid_ctx *ctx) + } + } + +-struct rpivid_dec_ops rpivid_dec_ops_h265 = { ++const struct rpivid_dec_ops rpivid_dec_ops_h265 = { + .setup = rpivid_h265_setup, + .start = rpivid_h265_start, + .stop = rpivid_h265_stop, + .trigger = rpivid_h265_trigger, + }; ++ ++static int try_ctrl_sps(struct v4l2_ctrl *ctrl) ++{ ++ const struct v4l2_ctrl_hevc_sps *const sps = ctrl->p_new.p_hevc_sps; ++ struct rpivid_ctx *const ctx = ctrl->priv; ++ struct rpivid_dev *const dev = ctx->dev; ++ ++ if (sps->chroma_format_idc != 1) { ++ v4l2_warn(&dev->v4l2_dev, ++ "Chroma format (%d) unsupported\n", ++ sps->chroma_format_idc); ++ return -EINVAL; ++ } ++ ++ if (sps->bit_depth_luma_minus8 != 0 && ++ sps->bit_depth_luma_minus8 != 2) { ++ v4l2_warn(&dev->v4l2_dev, ++ "Luma depth (%d) unsupported\n", ++ sps->bit_depth_luma_minus8 + 8); ++ return -EINVAL; ++ } ++ ++ if (sps->bit_depth_luma_minus8 != sps->bit_depth_chroma_minus8) { ++ v4l2_warn(&dev->v4l2_dev, ++ "Chroma depth (%d) != Luma depth (%d)\n", ++ sps->bit_depth_chroma_minus8 + 8, ++ sps->bit_depth_luma_minus8 + 8); ++ return -EINVAL; ++ } ++ ++ if (!sps->pic_width_in_luma_samples || ++ !sps->pic_height_in_luma_samples || ++ sps->pic_width_in_luma_samples > 4096 || ++ sps->pic_height_in_luma_samples > 4096) { ++ v4l2_warn(&dev->v4l2_dev, ++ "Bad sps width (%u) x height (%u)\n", ++ sps->pic_width_in_luma_samples, ++ sps->pic_height_in_luma_samples); ++ return -EINVAL; ++ } ++ ++ if (!ctx->dst_fmt_set) ++ return 0; ++ ++ if ((sps->bit_depth_luma_minus8 == 0 && ++ ctx->dst_fmt.pixelformat != V4L2_PIX_FMT_NV12_COL128) || ++ (sps->bit_depth_luma_minus8 == 2 && ++ ctx->dst_fmt.pixelformat != V4L2_PIX_FMT_NV12_10_COL128)) { ++ v4l2_warn(&dev->v4l2_dev, ++ "SPS luma depth %d does not match capture format\n", ++ sps->bit_depth_luma_minus8 + 8); ++ return -EINVAL; ++ } ++ ++ if (sps->pic_width_in_luma_samples > ctx->dst_fmt.width || ++ sps->pic_height_in_luma_samples > ctx->dst_fmt.height) { ++ v4l2_warn(&dev->v4l2_dev, ++ "SPS size (%dx%d) > capture size (%d,%d)\n", ++ sps->pic_width_in_luma_samples, ++ sps->pic_height_in_luma_samples, ++ ctx->dst_fmt.width, ++ ctx->dst_fmt.height); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++const struct v4l2_ctrl_ops rpivid_hevc_sps_ctrl_ops = { ++ .try_ctrl = try_ctrl_sps, ++}; ++ ++static int try_ctrl_pps(struct v4l2_ctrl *ctrl) ++{ ++ const struct v4l2_ctrl_hevc_pps *const pps = ctrl->p_new.p_hevc_pps; ++ struct rpivid_ctx *const ctx = ctrl->priv; ++ struct rpivid_dev *const dev = ctx->dev; ++ ++ if ((pps->flags & ++ V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED) && ++ (pps->flags & ++ V4L2_HEVC_PPS_FLAG_TILES_ENABLED) && ++ (pps->num_tile_columns_minus1 || pps->num_tile_rows_minus1)) { ++ v4l2_warn(&dev->v4l2_dev, ++ "WPP + Tiles not supported\n"); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++const struct v4l2_ctrl_ops rpivid_hevc_pps_ctrl_ops = { ++ .try_ctrl = try_ctrl_pps, ++}; ++ +-- +2.18.4 + + +From 8484fe6122dba22b555c472f4e9bd3ad453b0634 Mon Sep 17 00:00:00 2001 +From: menschel +Date: Fri, 14 May 2021 14:49:29 +0200 +Subject: [PATCH 689/693] Add CAN_J1939 as module to default build configs + (#4346) + +There is a CAN protocol named J1939 which is supported by Linux Kernel +since v5.4. Recently J1939 header file turned up in +raspberrypi-kernel-headers but the module is not built for kernel +v5.10.y due to the missing flag. Therefore set it to build as module: + +CONFIG_CAN_J1939=m + +Signed-off-by: Patrick Menschel +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index dd718c111532..63c6f88af89d 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -411,6 +411,7 @@ CONFIG_BAYCOM_SER_FDX=m + CONFIG_BAYCOM_SER_HDX=m + CONFIG_YAM=m + CONFIG_CAN=m ++CONFIG_CAN_J1939=m + CONFIG_CAN_ISOTP=m + CONFIG_CAN_VCAN=m + CONFIG_CAN_SLCAN=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 01ef252e33a5..1fee136ac1e5 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -412,6 +412,7 @@ CONFIG_BAYCOM_SER_FDX=m + CONFIG_BAYCOM_SER_HDX=m + CONFIG_YAM=m + CONFIG_CAN=m ++CONFIG_CAN_J1939=m + CONFIG_CAN_ISOTP=m + CONFIG_CAN_VCAN=m + CONFIG_CAN_SLCAN=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index e625ac03f354..373e064e8a42 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -405,6 +405,7 @@ CONFIG_BAYCOM_SER_FDX=m + CONFIG_BAYCOM_SER_HDX=m + CONFIG_YAM=m + CONFIG_CAN=m ++CONFIG_CAN_J1939=m + CONFIG_CAN_ISOTP=m + CONFIG_CAN_VCAN=m + CONFIG_CAN_SLCAN=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index ad3c5538483a..9c7d2552bf4d 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -409,6 +409,7 @@ CONFIG_BAYCOM_SER_FDX=m + CONFIG_BAYCOM_SER_HDX=m + CONFIG_YAM=m + CONFIG_CAN=m ++CONFIG_CAN_J1939=m + CONFIG_CAN_ISOTP=m + CONFIG_CAN_VCAN=m + CONFIG_CAN_SLCAN=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index e10614d666dd..f8e5eac69f34 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -405,6 +405,7 @@ CONFIG_BAYCOM_SER_FDX=m + CONFIG_BAYCOM_SER_HDX=m + CONFIG_YAM=m + CONFIG_CAN=m ++CONFIG_CAN_J1939=m + CONFIG_CAN_ISOTP=m + CONFIG_CAN_VCAN=m + CONFIG_CAN_MCP251X=m +-- +2.18.4 + + +From deca05de9e4688a134ee52d790a6afbff59e698e Mon Sep 17 00:00:00 2001 +From: Mehmet Ahsen <2084476+mehmetahsen@users.noreply.github.com> +Date: Fri, 21 May 2021 00:14:29 +0200 +Subject: [PATCH 690/693] overlays: add sensirion sgp30 to i2c-sensor overlay + +--- + arch/arm/boot/dts/overlays/README | 3 +++ + .../arm/boot/dts/overlays/i2c-sensor-overlay.dts | 16 ++++++++++++++++ + 2 files changed, 19 insertions(+) + mode change 100644 => 100755 arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index a0e28b881ade..2a7944054d4f 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1527,6 +1527,9 @@ Params: addr Set the address for the BME280, BME680, BMP280, + sps30 Select the Sensirion SPS30 particulate matter + sensor. Fixed address 0x69. + ++ sgp30 Select the Sensirion SGP30 VOC sensor. ++ Fixed address 0x58. ++ + tmp102 Select the Texas Instruments TMP102 temp sensor + Valid addresses 0x48-0x4b, default 0x48 + +diff --git a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts +old mode 100644 +new mode 100755 +index ce97837b0db5..73c691c6a32f +--- a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts +@@ -246,6 +246,21 @@ + }; + }; + ++ fragment@16 { ++ target = <&i2c_arm>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ sgp30: sgp30@58 { ++ compatible = "sensirion,sgp30"; ++ reg = <0x58>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ + __overrides__ { + addr = <&bme280>,"reg:0", <&bmp280>,"reg:0", <&tmp102>,"reg:0", + <&lm75>,"reg:0", <&hdc100x>,"reg:0", <&sht3x>,"reg:0", +@@ -267,5 +282,6 @@ + max17040 = <0>,"+13"; + bme680 = <0>,"+14"; + sps30 = <0>,"+15"; ++ sgp30 = <0>,"+16"; + }; + }; +-- +2.18.4 + + +From aa2f2620b5c711acb4fdc30e36addb59d9ba7d01 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 21 May 2021 10:05:15 +0100 +Subject: [PATCH 691/693] configs: Add CONFIG_SENSIRION_SGP30=m + +See: https://github.com/raspberrypi/linux/pull/4355 + +Signed-off-by: Phil Elwell +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 63c6f88af89d..45f7c7c1990c 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1328,6 +1328,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_TI_ADS1015=m + CONFIG_BME680=m ++CONFIG_SENSIRION_SGP30=m + CONFIG_SPS30=m + CONFIG_DHT11=m + CONFIG_HDC100X=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 1fee136ac1e5..0e0cce4d16d2 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -1365,6 +1365,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_TI_ADS1015=m + CONFIG_BME680=m ++CONFIG_SENSIRION_SGP30=m + CONFIG_SPS30=m + CONFIG_DHT11=m + CONFIG_HDC100X=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 373e064e8a42..a06ee86ef98e 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1339,6 +1339,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_TI_ADS1015=m + CONFIG_BME680=m ++CONFIG_SENSIRION_SGP30=m + CONFIG_SPS30=m + CONFIG_DHT11=m + CONFIG_HDC100X=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 9c7d2552bf4d..1559e2cbc244 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -1367,6 +1367,7 @@ CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_TI_ADS1015=m + CONFIG_BME680=m ++CONFIG_SENSIRION_SGP30=m + CONFIG_SPS30=m + CONFIG_DHT11=m + CONFIG_HDC100X=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index f8e5eac69f34..cb052fed296b 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -1223,6 +1223,7 @@ CONFIG_IIO_BUFFER_CB=m + CONFIG_MCP320X=m + CONFIG_MCP3422=m + CONFIG_BME680=m ++CONFIG_SENSIRION_SGP30=m + CONFIG_SPS30=m + CONFIG_DHT11=m + CONFIG_HTU21=m +-- +2.18.4 + + +From 0cb3c2d3430a3b025c5518b9a05b6e7aeb4b0786 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 21 May 2021 11:29:52 +0100 +Subject: [PATCH 692/693] overlays: Remove deleted merus-amp parameter + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/README | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 2a7944054d4f..2c7f4791324f 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2010,8 +2010,8 @@ Params: speed Display SPI bus speed + + Name: merus-amp + Info: Configures the merus-amp audio card +-Load: dtoverlay=merus-amp,= +-Params: spioff Turn SPI bus off ++Load: dtoverlay=merus-amp ++Params: + + + Name: midi-uart0 +-- +2.18.4 + + +From 806bf171c0f1fa50d9aa0ada0d24ca40592ef966 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Sat, 22 May 2021 08:55:29 +0100 +Subject: [PATCH 693/693] configs: Add GPIO_PCA953X_IRQ=y + +Enable interrupt support for PCA953X GPIO expander. + +See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=312340 + +Signed-off-by: Phil Elwell +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 45f7c7c1990c..1bf5e715e52d 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -692,6 +692,7 @@ CONFIG_PINCTRL_MCP23S08=m + CONFIG_GPIO_SYSFS=y + CONFIG_GPIO_BCM_VIRT=y + CONFIG_GPIO_PCA953X=m ++CONFIG_GPIO_PCA953X_IRQ=y + CONFIG_GPIO_PCF857X=m + CONFIG_GPIO_ARIZONA=m + CONFIG_GPIO_FSM=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 0e0cce4d16d2..0db4a4f097fe 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -705,6 +705,7 @@ CONFIG_PINCTRL_MCP23S08=m + CONFIG_GPIO_SYSFS=y + CONFIG_GPIO_BCM_VIRT=y + CONFIG_GPIO_PCA953X=m ++CONFIG_GPIO_PCA953X_IRQ=y + CONFIG_GPIO_PCF857X=m + CONFIG_GPIO_ARIZONA=m + CONFIG_GPIO_FSM=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index a06ee86ef98e..91e7f493f1c2 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -685,6 +685,7 @@ CONFIG_PPS_CLIENT_GPIO=m + CONFIG_PINCTRL_MCP23S08=m + CONFIG_GPIO_SYSFS=y + CONFIG_GPIO_PCA953X=m ++CONFIG_GPIO_PCA953X_IRQ=y + CONFIG_GPIO_PCF857X=m + CONFIG_GPIO_ARIZONA=m + CONFIG_GPIO_FSM=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 1559e2cbc244..a7d737c55e0f 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -699,6 +699,7 @@ CONFIG_PINCTRL_MCP23S08=m + CONFIG_GPIO_SYSFS=y + CONFIG_GPIO_BCM_VIRT=y + CONFIG_GPIO_PCA953X=m ++CONFIG_GPIO_PCA953X_IRQ=y + CONFIG_GPIO_PCF857X=m + CONFIG_GPIO_ARIZONA=m + CONFIG_GPIO_FSM=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index cb052fed296b..869cb55cbf75 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -672,6 +672,7 @@ CONFIG_PPS_CLIENT_GPIO=m + CONFIG_GPIO_SYSFS=y + CONFIG_GPIO_BCM_VIRT=y + CONFIG_GPIO_PCA953X=m ++CONFIG_GPIO_PCA953X_IRQ=y + CONFIG_GPIO_ARIZONA=m + CONFIG_GPIO_FSM=m + CONFIG_GPIO_STMPE=y +-- +2.18.4 + diff --git a/SPECS/raspberrypi2.spec b/SPECS/raspberrypi2.spec index b549b52..d2a80b4 100644 --- a/SPECS/raspberrypi2.spec +++ b/SPECS/raspberrypi2.spec @@ -1,4 +1,4 @@ -%global commit_firmware_long 1a46874494146f470d7a61b0b6f4f15a07dd8b35 +%global commit_firmware_long 6c3d7745680f10802a7a5ed201e5252a3520e696 %global commit_linux_long 96110e96f1a82e236afb9a248258f1ef917766e9 ExclusiveArch: aarch64 armv7hl @@ -32,7 +32,7 @@ ExclusiveArch: aarch64 armv7hl %define extra_version 1 %define kversion 5.10 -%define kfullversion %{kversion}.33 +%define kfullversion %{kversion}.38 Name: raspberrypi2 Version: %{kfullversion} @@ -277,6 +277,9 @@ cp $(ls -1d /usr/share/%{name}-kernel/*-*/|sort -V|tail -1)/boot/overlays/README %doc /boot/LICENCE.broadcom %changelog +* Sat May 22 2021 Pablo Greco - 5.10.38 +- Update to version v5.10.38 + * Sat May 1 2021 Pablo Greco - 5.10.33 - Update to version v5.10.33