diff --git a/.raspberrypi2.metadata b/.raspberrypi2.metadata index 9020237..31329e1 100644 --- a/.raspberrypi2.metadata +++ b/.raspberrypi2.metadata @@ -1,3 +1,3 @@ be0b909f1fbb760cc2d5cf146e1da3b2af0cf899 SOURCES/linux-5.10.tar.xz -7bfff8ba9d9e39c8a06fb0222862f2ea6e47b8fc SOURCES/c5b3d8e5f432058bfdb8a781393899abadcff50e.tar.gz -f9918e575df21657eba6354f1dd74d10d570193a SOURCES/patch-5.10.43.xz +c1936ed0a13d8d483a9cc364e931f3fa9d91456a SOURCES/19272ccd69049aaf42c78a235a0bf37dbabd5ea7.tar.gz +56c32bb5f8fa1bd73443fc811f1e404c0f3b8417 SOURCES/patch-5.10.47.xz diff --git a/SOURCES/rpi-5.10.x.patch b/SOURCES/rpi-5.10.x.patch index e28fa8a..3c0f105 100644 --- a/SOURCES/rpi-5.10.x.patch +++ b/SOURCES/rpi-5.10.x.patch @@ -1,7 +1,7 @@ -From a7b9dfd4eca6362d296e428d7b0f5b95e4dd9d92 Mon Sep 17 00:00:00 2001 +From 0bcfd96bafd79dadb33dff8e4c5d421407e2c419 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 001/704] arm: partially revert +Subject: [PATCH 001/741] 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 5dcc58cfa953d7dc4d10acf7a165c47ec1a91ec9 Mon Sep 17 00:00:00 2001 +From 6b1856dc387bf8bed0ad1b6f9ae3e27b067451e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Oct 2018 14:45:45 +0000 -Subject: [PATCH 002/704] Revert "rtc: pcf8523: properly handle oscillator stop +Subject: [PATCH 002/741] Revert "rtc: pcf8523: properly handle oscillator stop bit" This reverts commit ede44c908d44b166a5b6bd7caacd105c2ff5a70f. @@ -171,10 +171,10 @@ index 57d351dfe272..0aa1e8f9ee75 100644 2.18.4 -From f254fea19e880b63049f37e93ab83ae51df557ca Mon Sep 17 00:00:00 2001 +From 909443e9354e533abcee89979e46833d45eb2b41 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 15 Mar 2019 21:11:10 +0000 -Subject: [PATCH 003/704] Revert "staging: bcm2835-audio: Drop DT dependency" +Subject: [PATCH 003/741] Revert "staging: bcm2835-audio: Drop DT dependency" This reverts commit b7491a9fca2dc2535b9dc922550a37c5baae9d3d. --- @@ -273,10 +273,10 @@ index c250fbef2fa3..b42917c25050 100644 2.18.4 -From d8ee218c24a93c5a492b84d7ed059c8509206211 Mon Sep 17 00:00:00 2001 +From cb386410b490859b9c04dd3d32b1830369dc426b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 13:41:10 +0100 -Subject: [PATCH 004/704] Revert "spi: spidev: Fix CS polarity if GPIO +Subject: [PATCH 004/741] 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 474737fc3ede247d255d448cf0a04a0986d02813 Mon Sep 17 00:00:00 2001 +From 50db18fb10f7dfa65b83b3be1af81df7346ebd7d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Nov 2020 11:49:53 +0000 -Subject: [PATCH 005/704] Revert "mailbox: avoid timer start from callback" +Subject: [PATCH 005/741] Revert "mailbox: avoid timer start from callback" This reverts commit c7dacf5b0f32957b24ef29df1207dc2cd8307743. @@ -375,10 +375,10 @@ index 3e7d4b20ab34..0b821a5b2db8 100644 2.18.4 -From a2369884d6fa8217545e41f15b9782a187ee283b Mon Sep 17 00:00:00 2001 +From 683699eb0485c05dc712111b2d746abecd90d2c0 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 006/704] smsx95xx: fix crimes against truesize +Subject: [PATCH 006/741] 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 f14173fd8c3b1fb009a1fe5cdbad76b77068f3af Mon Sep 17 00:00:00 2001 +From b8bdbdc177db2ccc504d9020756fdff957889a6f Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 007/704] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 007/741] 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 31fd0c8ba145f663c14bd2796296016e17b9dee3 Mon Sep 17 00:00:00 2001 +From d70fe797d8b56e164cd8167b54c7e32adbf9c49e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 008/704] Allow mac address to be set in smsc95xx +Subject: [PATCH 008/741] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -579,10 +579,10 @@ index d16620941d76..09d4c1963b2c 100644 2.18.4 -From d239c47159f46d0ed65472ce11a1ebb82faad0b4 Mon Sep 17 00:00:00 2001 +From 20d94526f12e108d6615aabacd0615a51af656ba Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 009/704] Protect __release_resource against resources without +Subject: [PATCH 009/741] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -613,10 +613,10 @@ index 817545ff80b9..375a43d99b28 100644 2.18.4 -From 6367d1861002d73143b61c7432f7bcc1491148d7 Mon Sep 17 00:00:00 2001 +From 2dbfe6b20a7a4e506caefff0d7f7d8d86a629fdc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 010/704] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 010/741] 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 b251e62bb0f74a30eae2bc43ed0c4e776d730f2c Mon Sep 17 00:00:00 2001 +From 5d527b021a3a3943444f6fc8b80c6873285b3500 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/704] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 011/741] 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 bff84cbea117dc425bbb00efcf4689443505ace1 Mon Sep 17 00:00:00 2001 +From afdc4cc5317f4c9d365c9356a9cc8aed15ebd802 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/704] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 012/741] 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 711d3ff1775a5fc8856298b7a84a6d9688cc7bec Mon Sep 17 00:00:00 2001 +From c07f675b05d6c813d3ebb52828e28016fde6b4a6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 013/704] spi: spidev: Completely disable the spidev warning +Subject: [PATCH 013/741] 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 0f9da65f036c9a4490e5e9e15a05624a8981f37b Mon Sep 17 00:00:00 2001 +From 8e9ffaa5943407a4a60b2e6b8c97598f13ad4b20 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/704] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 014/741] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -934,10 +934,10 @@ Signed-off-by: Noralf Trønnes 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig -index 90284ffda58a..6789d0b4a43e 100644 +index f28bb2334e74..5a8decee7f3b 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig -@@ -133,7 +133,7 @@ config COH901318 +@@ -134,7 +134,7 @@ config COH901318 config DMA_BCM2835 tristate "BCM2835 DMA engine support" @@ -1022,10 +1022,10 @@ index 630dfbb01a40..bf7ba96a39f9 100644 2.18.4 -From f922f55a1b8a82dc50495b616fded72a72622130 Mon Sep 17 00:00:00 2001 +From 8178c7482d82177a69131fbc0ea189225ad07053 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 015/704] firmware: Updated mailbox header +Subject: [PATCH 015/741] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 3 +++ @@ -1055,10 +1055,10 @@ index cc9cdbc66403..212cceffcc5c 100644 2.18.4 -From 88bd61525a696dde0fd692847379520e192f6743 Mon Sep 17 00:00:00 2001 +From fdda0e94a599710c0af3b5ea153ddeaebf63262a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 016/704] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 016/741] 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 0d578f524cb730386a8572ad59f150426d621e06 Mon Sep 17 00:00:00 2001 +From d1b6985f1e6e33b32458028c0c9fa61803f0b03c 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/704] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 017/741] 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 d41709e9f43dde234ec742a05b439fa6931f75f0 Mon Sep 17 00:00:00 2001 +From 4ecf57b63474da1eb7ef4575bde2c9bf96c5ec91 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 018/704] reboot: Use power off rather than busy spinning when +Subject: [PATCH 018/741] reboot: Use power off rather than busy spinning when halt is requested --- @@ -1218,10 +1218,10 @@ index 0ce388f15422..63373adab475 100644 2.18.4 -From 1eed745658faad25657248fb339cd07c5fc5323d Mon Sep 17 00:00:00 2001 +From 40a0cb75f1c20f465cee931282b04d278879d45a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 019/704] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 019/741] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -1243,10 +1243,10 @@ index 24f92a6e882a..a6a705ec30c7 100644 2.18.4 -From e14b23d11b20a3573be5d4410af222a1467b0c35 Mon Sep 17 00:00:00 2001 +From b128352572221aa7c75dea8e6ce890e63653f445 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 020/704] Register the clocks early during the boot process, so +Subject: [PATCH 020/741] 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 75a04b9876973e9af20036aea7a52f264b8e22df Mon Sep 17 00:00:00 2001 +From 4431a4a855f65d593656196e5c08a2b632e066d9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 021/704] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 021/741] 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 afc71c97ca8176b530225f78e519de8a673dd502 Mon Sep 17 00:00:00 2001 +From 58d625e9c8872c3a2eadb25bd42dfa695fa96b98 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 022/704] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 022/741] 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 7489e14a320c1b7949315c18fa8a4fb03ac8e3eb Mon Sep 17 00:00:00 2001 +From 6a6dbd804843d482b65b117ab9b1b3fd32a4daa2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 023/704] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 023/741] 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 59c5d6ad8b9e8fcbf62504533973bc8c78fa7418 Mon Sep 17 00:00:00 2001 +From 894d88f8d559dab95453f5a906244eaad1f4d1ac Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 024/704] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 024/741] 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 45752da969b037be01551b505a61dacf7dc903a5 Mon Sep 17 00:00:00 2001 +From 4846bc1ed9ec84d0559dc342a915328b8a018eeb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 025/704] sound: Demote deferral errors to INFO level +Subject: [PATCH 025/741] 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. @@ -1622,7 +1622,7 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index bf65cba232e6..a6c553de5e72 100644 +index b22674e3a89c..cd6e3bbf0bd4 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1016,7 +1016,7 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card, @@ -1647,10 +1647,10 @@ index bf65cba232e6..a6c553de5e72 100644 2.18.4 -From 0ecd2c4710d049493e275668482945e67c83621f Mon Sep 17 00:00:00 2001 +From 80138ddb8a296006e247f26c93aa907ceb1cca5e Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 026/704] Update vfpmodule.c +Subject: [PATCH 026/741] 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 5c8a9c96de7df1bafd09d7130e5614f6e5b6a5dd Mon Sep 17 00:00:00 2001 +From 0022ba54b6e89217ef02bf899fb6f995ebc67190 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/704] i2c: bcm2835: Add debug support +Subject: [PATCH 027/741] 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 2e61748a3660fcd9053758ab6c52243898532ebe Mon Sep 17 00:00:00 2001 +From e6629ad033f64055bb9d501c77073c2b317096fe Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 028/704] mm: Remove the PFN busy warning +Subject: [PATCH 028/741] 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 81cc7fdc9c8f..8596f30daff1 100644 2.18.4 -From f8d6718db776840117e2a20f6389ce70d2c8d6a7 Mon Sep 17 00:00:00 2001 +From 89439874caeb3397a180a1ac6f1b9bfa171d6d39 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Jan 2018 16:52:45 +0000 -Subject: [PATCH 029/704] irqchip: irq-bcm2836: Remove regmap and syscon use +Subject: [PATCH 029/741] 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 39e1898bb3678dfacfb3e965be9a57d8390a87d4 Mon Sep 17 00:00:00 2001 +From ea6915223b5cbb82cdb1a42a9eb5993a4ff4ee5e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Oct 2017 15:04:29 +0100 -Subject: [PATCH 030/704] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 030/741] 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 63c4d388812244b19986a15cb15aba45813426b6 Mon Sep 17 00:00:00 2001 +From f0249e87d44b8d1ea7043fde54839a58ad02e71f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 031/704] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 031/741] 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 7af7023822ce290c6226ceb2b3cd52605194fa5a Mon Sep 17 00:00:00 2001 +From 8042637a12c81ab240b314e2d77952c4838fda79 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 032/704] amba_pl011: Round input clock up +Subject: [PATCH 032/741] 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 9429d015241e74586fb7864c3583c965a709aca7 Mon Sep 17 00:00:00 2001 +From 83df65b8be6b2a9ad2928bc8e85aee83ea69d455 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 033/704] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 033/741] 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 2deeb08019d0e969c06409f8f90b7069fd9cc720 Mon Sep 17 00:00:00 2001 +From 3558086c05a1cde7eb56c709c6c4c398bb3a2112 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 034/704] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 034/741] 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 ff7e35bb8832811daf24a8ecfacc662b0c23b5af Mon Sep 17 00:00:00 2001 +From 0a148a0bfb697d638a5304f3325db70956b753a3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jul 2019 13:13:39 +0100 -Subject: [PATCH 035/704] tty: amba-pl011: Make TX optimisation conditional +Subject: [PATCH 035/741] 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 474f253760b7f50a040b32874063321d176e8f0c Mon Sep 17 00:00:00 2001 +From 0f7686834516f6d3f03464cb0d9987503fe17720 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jan 2020 11:38:28 +0000 -Subject: [PATCH 036/704] tty: amba-pl011: Add un/throttle support +Subject: [PATCH 036/741] 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 8b4a5b5e8dcaa85cc46288d686be17874d79325e Mon Sep 17 00:00:00 2001 +From dd2cf704b92ada24a521de05cbc98ae9dc04ff83 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jan 2020 09:35:19 +0000 -Subject: [PATCH 037/704] tty: amba-pl011: Avoid rare write-when-full error +Subject: [PATCH 037/741] 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 5b5266d251d2556299202651f263fd9d1d54a719 Mon Sep 17 00:00:00 2001 +From b0ed19b101c6e513716cefa4225496ca774c2a38 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 038/704] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 038/741] 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 ef86661da99d36d53bfcdae693c33d0452c91211 Mon Sep 17 00:00:00 2001 +From 03db2153cc9f16e080074730325bb40c0bc31a92 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 039/704] Main bcm2708/bcm2709 linux port +Subject: [PATCH 039/741] 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 b0c172722a658dffdcbbd678d6c0ff0d20094f35 Mon Sep 17 00:00:00 2001 +From 3a7f29da617bc50e3a328829f14c44a8a467546f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 040/704] Add dwc_otg driver +Subject: [PATCH 040/741] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -3936,10 +3936,10 @@ index 26f9fb9f67ca..fe8c7a85e141 100644 return i; } diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 228e3d4e1a9f..8bb0087ad5d5 100644 +index 357730e8f52f..d35a5c6a48b5 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) +@@ -5446,7 +5446,7 @@ static void port_event(struct usb_hub *hub, int port1) port_dev->over_current_count++; port_over_current_notify(port_dev); @@ -64627,10 +64627,10 @@ index 000000000000..cdc9963176e5 2.18.4 -From 7115a74a1a0384f8e8536962407a5a9484259f3f Mon Sep 17 00:00:00 2001 +From 3af147b6b200d9ac81763cb1dad43edc7e6d3437 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 041/704] bcm2708 framebuffer driver +Subject: [PATCH 041/741] 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 7f7515a961c4996d3433eb5084bf11d58662fdfe Mon Sep 17 00:00:00 2001 +From 6df342a6efd239f3ad81e43eb4c84fb50b31db89 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 14 Mar 2019 13:27:54 +0000 -Subject: [PATCH 042/704] Pulled in the multi frame buffer support from the Pi3 +Subject: [PATCH 042/741] Pulled in the multi frame buffer support from the Pi3 repo --- @@ -69036,10 +69036,10 @@ index 2f5509d53fc3..16253b6875c9 100644 2.18.4 -From ab5b8e86e6d5f958ca2ab531fdd52ce79e179633 Mon Sep 17 00:00:00 2001 +From f27859077d6a99bfb255bb28d13b833084e8e0c7 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 043/704] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 043/741] 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 beb3f0d4f9484708c5bf75a728f7b8f86f1e0880 Mon Sep 17 00:00:00 2001 +From 723c6f19431fdc71efb0e13851988dc439d0c6fc Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 044/704] Speed up console framebuffer imageblit function +Subject: [PATCH 044/741] 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 1176227bf3ade7d9ee693b8c5d0d7c9402b7b79b Mon Sep 17 00:00:00 2001 +From 4b1023306e273fc2227ac3c1aa604db936619c6c Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 045/704] dmaengine: Add support for BCM2708 +Subject: [PATCH 045/741] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -69777,10 +69777,10 @@ Signed-off-by: Andrei Gherzan create mode 100644 include/linux/platform_data/dma-bcm2708.h diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig -index 6789d0b4a43e..397708a20363 100644 +index 5a8decee7f3b..8fbac86be34c 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig -@@ -133,7 +133,7 @@ config COH901318 +@@ -134,7 +134,7 @@ config COH901318 config DMA_BCM2835 tristate "BCM2835 DMA engine support" @@ -69789,7 +69789,7 @@ index 6789d0b4a43e..397708a20363 100644 select DMA_ENGINE select DMA_VIRTUAL_CHANNELS -@@ -651,6 +651,10 @@ config UNIPHIER_XDMAC +@@ -652,6 +652,10 @@ config UNIPHIER_XDMAC UniPhier platform. This DMA controller can transfer data from memory to memory, memory to peripheral and peripheral to memory. @@ -70252,10 +70252,10 @@ index 000000000000..6ca874d332a8 2.18.4 -From c46082c232956145f6ffa4998a3d3d8d88ab95a6 Mon Sep 17 00:00:00 2001 +From 96c8bdb6d8be03fbc30450b803ba4b045f8a0abb Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 046/704] MMC: added alternative MMC driver +Subject: [PATCH 046/741] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -72204,10 +72204,10 @@ index 42df06c6b19c..e7f45a2b0c72 100644 2.18.4 -From d38de2d05a83e396393a6444d617be267f48ebe3 Mon Sep 17 00:00:00 2001 +From 1febbc02fb7eeb8a6f838bb627a27299400b0c50 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 047/704] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 047/741] 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 474611bfb6ebb5ce56c5d7ea484e7e465d5af081 Mon Sep 17 00:00:00 2001 +From bb42b8d2ce6561a8fd88b9bf310bddb867f95ebb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 048/704] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 048/741] 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 f2be8e8213f24d8378015a2a247cd4676001ae0b Mon Sep 17 00:00:00 2001 +From 8d0d396a036dbd210150e1beeaae04d7d0641c2e Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 049/704] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 049/741] 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 6ff3080cb448f7a0b0d3be5daf79a6faa8b39b27 Mon Sep 17 00:00:00 2001 +From 9aafb506ca0d310b7dfda9adc46c242fdb7be230 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 050/704] Add SMI driver +Subject: [PATCH 050/741] Add SMI driver Signed-off-by: Luke Wren @@ -77447,10 +77447,10 @@ index 000000000000..ee3a75edfc03 2.18.4 -From e0ed1295ff36b729e979aaa89e2a0d97d6e1a13e Mon Sep 17 00:00:00 2001 +From 48eb4f23d6478f760f37f4ff86f96d25e3352acc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 051/704] Add Chris Boot's i2c driver +Subject: [PATCH 051/741] 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 6e531adfd076e4ba4a534a93c701d8bba2b379bc Mon Sep 17 00:00:00 2001 +From b914e760a47ec4f6d3c33dc8e081a42aba1e1b27 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/704] char: broadcom: Add vcio module +Subject: [PATCH 052/741] 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 1154b6ae1b7534e2e3c5e725d850d754fe8b2207 Mon Sep 17 00:00:00 2001 +From 261056e7fe6657bc8d95f6f62df723245cdf8f7b 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/704] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 053/741] 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 6b939927d716c19c5eab40ddc0a8752673f95e57 Mon Sep 17 00:00:00 2001 +From 468a0a1641fd942a2ca4868b48d3a2b9652b8172 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 054/704] BCM2708: Add core Device Tree support +Subject: [PATCH 054/741] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -104958,10 +104958,10 @@ index 94133708889d..9c0df5bde46c 100644 2.18.4 -From 69413235c7c5b673d0f3d66979f31500027ac9d5 Mon Sep 17 00:00:00 2001 +From db9af6c802ba075e37e351d9dbbcd000602b22cd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 055/704] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 055/741] 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 6ec667fe2f595f3f836bb681a6e1ea125899cb39 Mon Sep 17 00:00:00 2001 +From ccc7e6c5a50768e94236dedb53d8049831d2ebcd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:54:08 +0100 -Subject: [PATCH 056/704] Added Device IDs for August DVB-T 205 +Subject: [PATCH 056/741] 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 bd4e4785855bc11cb0d0e60a6dde88d0e1f9f1b2 Mon Sep 17 00:00:00 2001 +From 94f9af609c7c046a7f2fdf8eddcf5d3d21bea6e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 057/704] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 057/741] 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 a911329445cc75494f6e6c38d2231594fb377143 Mon Sep 17 00:00:00 2001 +From 0f5764c283264e00ae3d240a9bbccee96af7cb4e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 058/704] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 058/741] 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 9488aa07ee99914c23483c7ae6125a12507a1d9a Mon Sep 17 00:00:00 2001 +From ea01226b3b0505f33107dbff2ccde7d184c6dd54 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 059/704] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 059/741] 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 7de8817eef4a675b8b44c52add16a962946b8fee Mon Sep 17 00:00:00 2001 +From d7d93eaf53277c3cbcf6cf548bc5664650b304a5 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 060/704] Add support for all the downstream rpi sound card +Subject: [PATCH 060/741] Add support for all the downstream rpi sound card drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -122942,7 +122942,7 @@ index 000000000000..8f019e048987 + +#endif /* _TAS5713_H */ diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index a6c553de5e72..3e9b1fb29826 100644 +index cd6e3bbf0bd4..b6726b914fca 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1429,7 +1429,15 @@ int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, @@ -122966,10 +122966,10 @@ index a6c553de5e72..3e9b1fb29826 100644 2.18.4 -From f387aea7603e0a0f6a2953a46634969075add58d Mon Sep 17 00:00:00 2001 +From 5e914c9fc8a2503860e7de769b57dd0ffe7e4c7a Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 16 Oct 2020 15:17:07 +0200 -Subject: [PATCH 061/704] Fixes a problem when module probes before i2c module +Subject: [PATCH 061/741] 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 04402d4eb94f5937d943e20454ad0ef542b6be2a Mon Sep 17 00:00:00 2001 +From 0943b443901768f84e447292a4db9282e5319d3e Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 062/704] rpi_display: add backlight driver and overlay +Subject: [PATCH 062/741] 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 260d6c22169a9bf7a03b13ea61e7296656db008a Mon Sep 17 00:00:00 2001 +From 1acb97d61b330017b1c880aa9063d7b3e07ab28d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 063/704] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 063/741] 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 83b7dc8e826fd4877bf3c101784baada54bb03fc Mon Sep 17 00:00:00 2001 +From b5b1948d6da1fa9138d0403567388cb73b9c99c5 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 064/704] OF: DT-Overlay configfs interface +Subject: [PATCH 064/741] 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 f933997d148b8a3ed487a078b8f85e7484d0d3d2 Mon Sep 17 00:00:00 2001 +From 974f2acc9d0eb14d4812ba59ef3ac9e41355cfd4 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 065/704] brcm: adds support for BCM43341 wifi +Subject: [PATCH 065/741] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -124060,10 +124060,10 @@ index 59c2b2b6027d..2b642886430d 100644 2.18.4 -From a28051830b0ca88fd85e2ceeeba38a4f62ef0f7b Mon Sep 17 00:00:00 2001 +From d9cfdb27ced2842c254abdb25b2b235449650a4b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 066/704] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 066/741] 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 29632ea97fb73308be8afe5f0caf32d617ed1a8f Mon Sep 17 00:00:00 2001 +From aa6f0176b8695384d04f0fcfddecead9cdd7c536 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 067/704] config: Add default configs +Subject: [PATCH 067/741] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1473 +++++++++++++++++++++++++ @@ -131467,10 +131467,10 @@ index 000000000000..d542d2522076 2.18.4 -From 662dba7602896fbb98edfabd8baa06810152d713 Mon Sep 17 00:00:00 2001 +From 852c7fee75ef2b0fc90c28116efbac5158b26f17 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 068/704] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 068/741] 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 e12df1f2874b5bc58060e801842a23f7cd3d108f Mon Sep 17 00:00:00 2001 +From 8304a827a810c8cfddedcd9e2ec55afa268a5d6f Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 069/704] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 069/741] ARM64: Force hardware emulation of deprecated instructions. --- @@ -131581,10 +131581,10 @@ index 7364de008bab..a11467132346 100644 2.18.4 -From 26e41d2f6c7f61a173ffaadd147f1177faea41b4 Mon Sep 17 00:00:00 2001 +From dba55cc2eb1e3e26401d6867a2166bd16f454fd6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 070/704] cache: export clean and invalidate +Subject: [PATCH 070/741] cache: export clean and invalidate hack: cache: Fix linker error --- @@ -131642,10 +131642,10 @@ index dc8f152f3556..536df5db66e4 100644 2.18.4 -From 326c9e8eb2da5a80d5cf1233e639a5c73015ec0e Mon Sep 17 00:00:00 2001 +From 9cfc795d2a43f6f9c76519c9c0c7d859ab75bf25 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 14 Nov 2017 15:13:15 +0000 -Subject: [PATCH 071/704] AXI performance monitor driver (#2222) +Subject: [PATCH 071/741] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -132344,86 +132344,10 @@ index 000000000000..5ae2bdaa88b4 2.18.4 -From 7b7f3bd2eeafe3324b129366eab526712863b878 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH 072/704] 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: - - cgroup_enable=memory - -See: https://github.com/raspberrypi/linux/issues/1950 - -Signed-off-by: Phil Elwell ---- - kernel/cgroup/cgroup.c | 30 ++++++++++++++++++++++++++++++ - 1 file changed, 30 insertions(+) - -diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c -index 5d1fdf7c3ec6..ea5a1ea68dd8 100644 ---- a/kernel/cgroup/cgroup.c -+++ b/kernel/cgroup/cgroup.c -@@ -5666,6 +5666,8 @@ int __init cgroup_init_early(void) - } - - static u16 cgroup_disable_mask __initdata; -+static u16 cgroup_enable_mask __initdata; -+static int __init cgroup_disable(char *str); - - /** - * cgroup_init - cgroup initialization -@@ -5705,6 +5707,12 @@ int __init cgroup_init(void) - - mutex_unlock(&cgroup_mutex); - -+ /* Apply an implicit disable... */ -+ cgroup_disable("memory"); -+ -+ /* ...knowing that an explicit enable will override it. */ -+ cgroup_disable_mask &= ~cgroup_enable_mask; -+ - for_each_subsys(ss, ssid) { - if (ss->early_init) { - struct cgroup_subsys_state *css = -@@ -6252,6 +6260,28 @@ static int __init cgroup_disable(char *str) - } - __setup("cgroup_disable=", cgroup_disable); - -+static int __init cgroup_enable(char *str) -+{ -+ struct cgroup_subsys *ss; -+ char *token; -+ int i; -+ -+ while ((token = strsep(&str, ",")) != NULL) { -+ if (!*token) -+ continue; -+ -+ for_each_subsys(ss, i) { -+ if (strcmp(token, ss->name) && -+ strcmp(token, ss->legacy_name)) -+ continue; -+ -+ cgroup_enable_mask |= 1 << i; -+ } -+ } -+ return 1; -+} -+__setup("cgroup_enable=", cgroup_enable); -+ - void __init __weak enable_debug_cgroup(void) { } - - static int __init enable_cgroup_debug(char *str) --- -2.18.4 - - -From 92b7e5db1a8c691db79f2255d22aff65dc36b631 Mon Sep 17 00:00:00 2001 +From 63d33ee02c988a7522d7a818aadb86ef2309b57f 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/704] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 072/741] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -132489,10 +132413,10 @@ index bfc556f76720..73ec2427fbcf 100644 2.18.4 -From 907c5b0fd46cf18a27e178943fec008669a5a299 Mon Sep 17 00:00:00 2001 +From bd1b636ba3338d631b61ab1a8fd56cc030636dda Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 16 Jul 2018 14:40:13 +0100 -Subject: [PATCH 074/704] dwc-otg: FIQ: Fix "bad mode in data abort handler" +Subject: [PATCH 073/741] 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 +132535,10 @@ index 73ec2427fbcf..9b6c921106b5 100644 2.18.4 -From 06fdfe1cb0531e60865ef04c2a4038ceaee28c2e Mon Sep 17 00:00:00 2001 +From 256190df4a7d59b07972acf825eeaa2a49032fb5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Dec 2017 09:18:32 +0000 -Subject: [PATCH 075/704] ARM: Activate FIQs to avoid __irq_startup warnings +Subject: [PATCH 074/741] 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 +132577,10 @@ index 98ca3e3fa847..c3fe7d3cf482 100644 2.18.4 -From 75022db2842439db2c1cb71ccfa6130d669615f5 Mon Sep 17 00:00:00 2001 +From ae209cbf1a4d23521f192b732116347de1f2ff0f Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 09:16:19 +0100 -Subject: [PATCH 076/704] raspberrypi-firmware: Export the general transaction +Subject: [PATCH 075/741] raspberrypi-firmware: Export the general transaction function. The vc4-firmware-kms module is going to be doing the MBOX FB call. @@ -132691,10 +132615,10 @@ index 5fec4accb24f..abb16e80a36c 100644 2.18.4 -From af62f55eb9c6c680c8068ebf4acb8947b72c80f2 Mon Sep 17 00:00:00 2001 +From 55edd2150083a539c14f5ed983c3a19924494a27 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 20 Feb 2018 10:07:27 +0000 -Subject: [PATCH 077/704] i2c-gpio: Also set bus numbers from reg property +Subject: [PATCH 076/741] 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 +132656,10 @@ index a4a6825c8758..cfbcf3952ddc 100644 2.18.4 -From b84a2928870730ba86de502b91fbbdb026c5e47c Mon Sep 17 00:00:00 2001 +From fbfb565335c34b048a7ef808d8acc75950fe891d Mon Sep 17 00:00:00 2001 From: hdoverobinson Date: Tue, 13 Mar 2018 06:58:39 -0400 -Subject: [PATCH 078/704] added capture_clear option to pps-gpio via dtoverlay +Subject: [PATCH 077/741] added capture_clear option to pps-gpio via dtoverlay (#2433) --- @@ -132759,10 +132683,10 @@ index e0de1df2ede0..ee7d8f4e7f2e 100644 2.18.4 -From fa130c98dfb1618de50cc553c70f53f9acc3eb77 Mon Sep 17 00:00:00 2001 +From 36965a3b49ab498e2887564f35f1349e3cf13be9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Mar 2018 12:01:00 +0000 -Subject: [PATCH 079/704] lan78xx: Read initial EEE status from DT +Subject: [PATCH 078/741] lan78xx: Read initial EEE status from DT Add two new DT properties: * microchip,eee-enabled - a boolean to enable EEE @@ -132805,10 +132729,10 @@ index 306bf917d4ed..8e234a7c84ef 100644 2.18.4 -From d2160468170731281f21d6034d821b378e940ee9 Mon Sep 17 00:00:00 2001 +From 9f4ba769316d782b024aa7e7914a74929e02b274 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 080/704] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 079/741] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -132816,7 +132740,7 @@ Reduces overhead when using X 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c -index 17a29ee0ac6c..1134d543e5d6 100644 +index 8d4ac4b9fb9d..996604acc730 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -45,7 +45,7 @@ @@ -132843,10 +132767,10 @@ index 17a29ee0ac6c..1134d543e5d6 100644 2.18.4 -From 8635a5e6b1aeae9f0c65af19934f9fd3bed9f9f3 Mon Sep 17 00:00:00 2001 +From 9e050e69ecfc9eabcf3e5cc334d9d6df2aa1b1c7 Mon Sep 17 00:00:00 2001 From: Nick Bulleid Date: Thu, 10 May 2018 21:57:02 +0100 -Subject: [PATCH 081/704] Add ability to export gpio used by gpio-poweroff +Subject: [PATCH 080/741] Add ability to export gpio used by gpio-poweroff Signed-off-by: Nick Bulleid @@ -132908,10 +132832,10 @@ index e458fa7b8848..3acbe711b792 100644 2.18.4 -From 750802876663ce720552214ed172ab3e198629f9 Mon Sep 17 00:00:00 2001 +From 8c1cd065f21d5ee8ded9bd948a0ebdd934175f15 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 12 May 2018 21:35:43 +0100 -Subject: [PATCH 082/704] firmware/raspberrypi: Notify firmware of a reboot +Subject: [PATCH 081/741] firmware/raspberrypi: Notify firmware of a reboot Register for reboot notifications, sending RPI_FIRMWARE_NOTIFY_REBOOT over the mailbox interface on reception. @@ -132998,10 +132922,10 @@ index abb16e80a36c..05a0ae2a8eb7 100644 2.18.4 -From cfe8f316d6d2d3b8a0b9667737ee47eb5910dfd5 Mon Sep 17 00:00:00 2001 +From 07a4be217314186437b81ac9b0aa2dc139e6a24a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 11:21:04 +0100 -Subject: [PATCH 083/704] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time +Subject: [PATCH 082/741] 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 +132994,10 @@ index 18b7483588c2..0e6c0811dc1e 100644 2.18.4 -From 1d358cacff7b7bfa3db98486a963933c3cbfa09b Mon Sep 17 00:00:00 2001 +From 551722e0484d718f836185f35d623a367c093509 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 15:07:26 +0100 -Subject: [PATCH 084/704] of: configfs: Use of_overlay_fdt_apply API call +Subject: [PATCH 083/741] 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 +133114,10 @@ index 178f0629b0f0..ac04301dabe1 100644 2.18.4 -From 6412511f797a2e3f951a5a70405d8522745b2fa7 Mon Sep 17 00:00:00 2001 +From b90020dc0a721fcdc624d0c4589f42d2d4570eba Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Jun 2018 15:21:10 +0100 -Subject: [PATCH 085/704] net: lan78xx: Disable TCP Segmentation Offload (TSO) +Subject: [PATCH 084/741] 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 +133176,10 @@ index 8e234a7c84ef..681a6b949140 100644 2.18.4 -From 6ad82af3fa86bcf1d9d1509ca90232b175031ae7 Mon Sep 17 00:00:00 2001 +From cf71524e2b3fea7811b2c8f4f23cbc5c4a8bd22d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Jun 2018 12:20:01 +0100 -Subject: [PATCH 086/704] brcmfmac: Re-enable firmware roaming support +Subject: [PATCH 085/741] 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 +133211,10 @@ index 591dcd04b4b4..e3758bd86acf 100644 2.18.4 -From 5cdaaddba4bb5e569d6e19d73e6426ebccbb33ad Mon Sep 17 00:00:00 2001 +From 12b0c3fb50b9d34dfa77efeb122a7e842e7a36ca Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Apr 2018 14:46:11 +0100 -Subject: [PATCH 087/704] lan78xx: Move enabling of EEE into PHY init code +Subject: [PATCH 086/741] 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 +133281,10 @@ index 681a6b949140..68d0aec53f3a 100644 2.18.4 -From a54f284496ea5729d858be5803ccf9bc96cadab8 Mon Sep 17 00:00:00 2001 +From 4b0fd757911ac0a864f192af0ee301143111857d Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 9 Jul 2018 12:54:25 +0100 -Subject: [PATCH 088/704] Add rpi-poe-fan driver +Subject: [PATCH 087/741] Add rpi-poe-fan driver Signed-off-by: Serge Schneider @@ -133955,10 +133879,10 @@ index 000000000000..c9654e9e9f2d 2.18.4 -From f482e92a3795f1ec41f02e4893ba5887baaf4c30 Mon Sep 17 00:00:00 2001 +From f2b8bbc8f7e405a69927fea42efe5c06057677aa Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 17 Sep 2018 17:31:18 +0100 -Subject: [PATCH 089/704] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 +Subject: [PATCH 088/741] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT --- @@ -133981,10 +133905,10 @@ index 857ef4ace6e9..deae75ea3c44 100644 2.18.4 -From ec5e775fb529424ba1d85235f0e8616dc418715c Mon Sep 17 00:00:00 2001 +From 0715f7d0747d3a48124a84f3f36dcb9b64aba5fc Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 6 Oct 2018 16:46:18 +0200 -Subject: [PATCH 090/704] hwmon: raspberrypi: Prevent voltage low warnings from +Subject: [PATCH 089/741] hwmon: raspberrypi: Prevent voltage low warnings from filling log Although the correct fix for low voltage warnings is to @@ -134062,10 +133986,10 @@ index d3a64a35f7a9..db3b03438dd0 100644 2.18.4 -From c20b1c56e8a67e98e028ff2b886295b8374341b4 Mon Sep 17 00:00:00 2001 +From 26ac66caf646b92451e68a3095a0384e6b0d3ca3 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 13 Oct 2018 13:31:21 +0200 -Subject: [PATCH 091/704] firmware: raspberrypi: Add backward compatible +Subject: [PATCH 090/741] firmware: raspberrypi: Add backward compatible get_throttled Avoid a hard userspace ABI change by adding a compatible get_throttled @@ -134147,10 +134071,10 @@ index 05a0ae2a8eb7..f7d605a62801 100644 2.18.4 -From a10b2ce437efa4faf837658ef7f79e8cb56c4e9f Mon Sep 17 00:00:00 2001 +From e8168740790403bc79f36ec618962de215b5a9f6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 6 Nov 2018 12:57:48 +0000 -Subject: [PATCH 092/704] sc16is7xx: Don't spin if no data received +Subject: [PATCH 091/741] sc16is7xx: Don't spin if no data received See: https://github.com/raspberrypi/linux/issues/2676 @@ -134176,10 +134100,10 @@ index 9adb8362578c..f64e051c0030 100644 2.18.4 -From cd3099b94e8975db7673f321a13cd7a0def91896 Mon Sep 17 00:00:00 2001 +From c68ce4431adb94fd8351a3d9f36c2f15616fb205 Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Mon, 7 May 2018 11:54:08 -0600 -Subject: [PATCH 093/704] drivers: thermal: step_wise: add support for +Subject: [PATCH 092/741] drivers: thermal: step_wise: add support for hysteresis Step wise governor increases the mitigation level when the temperature @@ -134276,10 +134200,10 @@ index 2ae7198d3067..abe34cfe21fe 100644 2.18.4 -From 2191c4da318fec56704c02ec9e67dd402f2acbe8 Mon Sep 17 00:00:00 2001 +From eb74e210583192470e88dd248b1b4df84e699274 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 2 Oct 2018 11:14:15 +0100 -Subject: [PATCH 094/704] drivers: thermal: step_wise: avoid throttling at +Subject: [PATCH 093/741] drivers: thermal: step_wise: avoid throttling at hysteresis temperature after dropping below it Signed-off-by: Serge Schneider @@ -134304,10 +134228,10 @@ index abe34cfe21fe..5c8602933201 100644 2.18.4 -From a0e5dda7c0c8089c786a64e80bb4acaad5d40add Mon Sep 17 00:00:00 2001 +From 6aebff648a28c9364a569d74cdb736c47e333247 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Fri, 2 Nov 2018 11:55:49 +0000 -Subject: [PATCH 095/704] Update issue templates (#2736) +Subject: [PATCH 094/741] Update issue templates (#2736) --- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++++++++++++++++++ @@ -134358,10 +134282,10 @@ index 000000000000..09bdc4a96838 2.18.4 -From ed31fd09190b2745c1817905a026e249cae2390b Mon Sep 17 00:00:00 2001 +From 724648b3edcc1da66409f8a54b1d84916e9421b1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Nov 2018 19:46:58 +0000 -Subject: [PATCH 096/704] net: lan78xx: Support auto-downshift to 100Mb/s +Subject: [PATCH 095/741] 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 +134383,10 @@ index 517288da19fd..626c450d71f4 100644 2.18.4 -From ca23bb52bf9093d4860f5d5277e484ad8ab966c5 Mon Sep 17 00:00:00 2001 +From e7b657df7e5d563fda88df17a7ca9afe51dce45b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 10 Jan 2019 17:58:06 +0000 -Subject: [PATCH 097/704] firmware: raspberrypi: Report the fw variant during +Subject: [PATCH 096/741] firmware: raspberrypi: Report the fw variant during probe The driver already reported the firmware build date during probe. @@ -134568,10 +134492,10 @@ index 16253b6875c9..d0c827064999 100644 2.18.4 -From bcd3fb67d44f64d37a12ab4e97d64fc5b4434d8f Mon Sep 17 00:00:00 2001 +From 71070cd284446ff42d1587039e962ed40c153a51 Mon Sep 17 00:00:00 2001 From: Joshua Emele Date: Wed, 7 Nov 2018 16:07:40 -0800 -Subject: [PATCH 098/704] lan78xx: Debounce link events to minimize poll storm +Subject: [PATCH 097/741] 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 +134543,10 @@ index 68d0aec53f3a..e5bd18aa1cfa 100644 2.18.4 -From 89f1ff13f78f1b08397096354081ab8c2e427d76 Mon Sep 17 00:00:00 2001 +From 038420e98b54bb7e8bdc43b18d9bf9609b16597c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 Mar 2019 09:51:22 +0000 -Subject: [PATCH 099/704] lan78xx: EEE support is now a PHY property +Subject: [PATCH 098/741] 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 +134575,10 @@ index e5bd18aa1cfa..a03bcbdd04f3 100644 2.18.4 -From 5906986418d5308672f399e517a13b1cc3230d1c Mon Sep 17 00:00:00 2001 +From cfdb020a5c962611d57061899a2de74cb56710ff Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 20 Jul 2018 22:03:41 +0100 -Subject: [PATCH 100/704] bcm2835-dma: Add support for per-channel flags +Subject: [PATCH 099/741] 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 +134629,10 @@ index bf7ba96a39f9..87b5d0bef355 100644 2.18.4 -From 306f67408ea426b3cdd1eeae19a2e1ae7989e594 Mon Sep 17 00:00:00 2001 +From c66919bf918b6f19da5c588043f2f57d035a6527 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 29 Mar 2019 10:53:14 +0000 -Subject: [PATCH 101/704] rtc: rv3028: Add backup switchover mode support +Subject: [PATCH 100/741] rtc: rv3028: Add backup switchover mode support Signed-off-by: Phil Howard --- @@ -134761,10 +134685,10 @@ index fa226f0fe67d..20baf2257631 100644 2.18.4 -From a049feec79c6d6e0adfb39607b55ccb5a2beb8a1 Mon Sep 17 00:00:00 2001 +From 93e0c685b0b649cdc3a2304c5e46404615e77ec2 Mon Sep 17 00:00:00 2001 From: P33M Date: Thu, 2 May 2019 11:53:45 +0100 -Subject: [PATCH 102/704] lan78xx: use default alignment for rx buffers +Subject: [PATCH 101/741] 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 +134714,10 @@ index a03bcbdd04f3..58f5b90f11d4 100644 2.18.4 -From 7a76fce41cf0556057e6bcb1f3ec7325ced9939e Mon Sep 17 00:00:00 2001 +From 15bdb546832ec678bcd867afd11356e5b276f672 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:55:37 +0000 -Subject: [PATCH 103/704] media: ov5647: Add set_fmt and get_fmt calls. +Subject: [PATCH 102/741] media: ov5647: Add set_fmt and get_fmt calls. There's no way to query the subdevice for the supported resolutions. @@ -134843,10 +134767,10 @@ index e7d2e5b4ad4b..3e587eb0a30e 100644 2.18.4 -From 21aad5d5cc3743e34208ee2c4d6ade0025833e69 Mon Sep 17 00:00:00 2001 +From 8bcfdee074f72669943f2e04b2c5a2b3971f8a98 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:33 +0000 -Subject: [PATCH 104/704] media: ov5647: Add support for PWDN GPIO. +Subject: [PATCH 103/741] media: ov5647: Add support for PWDN GPIO. Add support for an optional GPIO connected to PWDN on the sensor. @@ -134941,10 +134865,10 @@ index 3e587eb0a30e..c39e3d20e3ef 100644 2.18.4 -From 66042d4fa6049817c7ea555f241f814e7ef9082a Mon Sep 17 00:00:00 2001 +From e9113fe0ba6e38239e60c1bfb9cbd3f3b3ef2668 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:47 +0000 -Subject: [PATCH 105/704] media: ov5647: Add support for non-continuous clock +Subject: [PATCH 104/741] media: ov5647: Add support for non-continuous clock mode The driver was only supporting continuous clock mode @@ -135026,10 +134950,10 @@ index c39e3d20e3ef..8a1a515388e0 100644 2.18.4 -From e86967698fd08429b31c93cd9b356cd9602ba353 Mon Sep 17 00:00:00 2001 +From 202e371458caf78a355f74c201465ad675d0f33f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:59 +0000 -Subject: [PATCH 106/704] media: tc358743: Increase FIFO level to 374. +Subject: [PATCH 105/741] 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 @@ -135063,10 +134987,10 @@ index 1b309bb743c7..0550a443356d 100644 2.18.4 -From c8df31cd0eabf318c131a18eea0a8a90825fd79f Mon Sep 17 00:00:00 2001 +From c8e7d651cc46cd02b277db299fe5eb30abd44cc6 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Thu, 21 Sep 2017 17:30:24 +0200 -Subject: [PATCH 107/704] media: tc358743: fix connected/active CSI-2 lane +Subject: [PATCH 106/741] media: tc358743: fix connected/active CSI-2 lane reporting g_mbus_config was supposed to indicate all supported lane numbers, not @@ -135145,10 +135069,10 @@ index c20e2dc6d432..396fb88266be 100644 2.18.4 -From 40f7f193db80bd52aaf6826f88ca59219c7fbfbe Mon Sep 17 00:00:00 2001 +From db1271409c81f74fd84694622750421c2b2a93b4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:21 +0000 -Subject: [PATCH 108/704] media: tc358743: Add support for 972Mbit/s link freq. +Subject: [PATCH 107/741] 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. @@ -135230,10 +135154,10 @@ index f895737279b2..5e65a03c2de7 100644 2.18.4 -From 6d0efe99d18e2c2075960dc6a8ce581e902f618f Mon Sep 17 00:00:00 2001 +From 934d8d81508fa10ca984c3f45d425a9092af388f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:34 +0000 -Subject: [PATCH 109/704] media: tc358743: Check I2C succeeded during probe. +Subject: [PATCH 108/741] 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. @@ -135334,10 +135258,10 @@ index 5e65a03c2de7..b0dc72e8196c 100644 2.18.4 -From ca30ba91dae56d5e5fc3790465bc7e82117dd5e0 Mon Sep 17 00:00:00 2001 +From 793e2684780ce3fc6ee742b3ab8cdcb8a265f516 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:46 +0000 -Subject: [PATCH 110/704] media: adv7180: Default to the first valid input +Subject: [PATCH 109/741] media: adv7180: Default to the first valid input The hardware default is differential CVBS on AIN1 & 2, which isn't very useful. @@ -135385,10 +135309,10 @@ index 4498d14d3429..e98dd2bee1e5 100644 2.18.4 -From 062057d0b3216d1197db86aba8722c0d7949f14d Mon Sep 17 00:00:00 2001 +From 40a153dbd60a1c271d76bf998f32f57bf58cd8f6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:56 +0000 -Subject: [PATCH 111/704] media: adv7180: Add YPrPb support for ADV7282M +Subject: [PATCH 110/741] 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 +135339,10 @@ index e98dd2bee1e5..4103690a71df 100644 2.18.4 -From 2fecb59cb5aa52d607a95a80a58fe65bad52de1a Mon Sep 17 00:00:00 2001 +From 7dd13a7c0bc74646e0d19cc4c30a003f951ce6f3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:58:08 +0000 -Subject: [PATCH 112/704] media: videodev2: Add helper defines for printing +Subject: [PATCH 111/741] media: videodev2: Add helper defines for printing FOURCCs New helper defines that allow printing of a FOURCC using @@ -135449,10 +135373,10 @@ index 534eaa4d39bc..56c443cc2c3d 100644 2.18.4 -From e817742809b85a0fd27030df9d37d42e49f303c1 Mon Sep 17 00:00:00 2001 +From c6ce227cca2ee86cfabe6fe8cabd696fc038719e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:06 +0000 -Subject: [PATCH 113/704] dt-bindings: Document BCM283x CSI2/CCP2 receiver +Subject: [PATCH 112/741] 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 +135483,10 @@ index 000000000000..7714fb374b34 2.18.4 -From a5c2aadfc648a035a7864161045b0936f97dd1c4 Mon Sep 17 00:00:00 2001 +From c2766caeb195065a45aac905d0204984d66f73a1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:40 +0000 -Subject: [PATCH 114/704] MAINTAINERS: Add entry for BCM2835 Unicam driver +Subject: [PATCH 113/741] MAINTAINERS: Add entry for BCM2835 Unicam driver Adds entry for the new BCM2835 Unicam (CSI-2 receiver) driver @@ -135593,10 +135517,10 @@ index 4fef10dd2975..cbfee297e9f9 100644 2.18.4 -From 517cc6b35c637996aff92abc1c9f23a4390c3c3b Mon Sep 17 00:00:00 2001 +From 408da158d675cbcdfb875f105511cd856f57d9cd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Nov 2018 17:31:06 +0000 -Subject: [PATCH 115/704] media: tc358743: Return an appropriate colorspace +Subject: [PATCH 114/741] media: tc358743: Return an appropriate colorspace from tc358743_set_fmt When calling tc358743_set_fmt, the code was calling tc358743_get_fmt @@ -135697,10 +135621,10 @@ index b0dc72e8196c..96de74bf6b5c 100644 2.18.4 -From 48b93776b643067366e58d404827aca4d541a7f9 Mon Sep 17 00:00:00 2001 +From f53c2e6faddd42eeeec61a651a99dbae6f55b20a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 16:20:46 +0000 -Subject: [PATCH 116/704] staging: mmal-vchiq: Avoid use of bool in structures +Subject: [PATCH 115/741] 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 +135651,10 @@ index 9097bcbd67d8..8734a09498b1 100644 2.18.4 -From a809f3cada90be158eacdf64c8170aa77f7503d1 Mon Sep 17 00:00:00 2001 +From 49fad9b2760134e650b1c4b28ceabf3faf6ed548 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:15:38 +0100 -Subject: [PATCH 117/704] staging: mmal-vchiq: Add support for event callbacks. +Subject: [PATCH 116/741] 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 +136019,10 @@ index 1dc81ecf9268..e87f88f99338 100644 2.18.4 -From 18c3d5b3e2f19f6b6e915d365346abc518e1094c Mon Sep 17 00:00:00 2001 +From b6e6b47b4330b4c0052dcb076eff75c8649c7752 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:26:02 +0100 -Subject: [PATCH 118/704] staging: vc04_services: Support sending data to MMAL +Subject: [PATCH 117/741] staging: vc04_services: Support sending data to MMAL ports Add the ability to send data to ports. This only supports @@ -136143,10 +136067,10 @@ index 1a66c9484aa7..2361a11f1e20 100644 2.18.4 -From 35a6fbee8bf6ec4e4a95108e99fa900b1c904a10 Mon Sep 17 00:00:00 2001 +From 4eba97bda084b959089970fc05e40d2de14bb433 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 17:57:45 +0000 -Subject: [PATCH 119/704] media: videobuf2: Allow exporting of a struct dmabuf +Subject: [PATCH 118/741] 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 +136158,10 @@ index bbb3f26fbde9..7a4aa9cb28c9 100644 2.18.4 -From 98d8b5fe7efe52b1a816caa0d3eda43c83c98692 Mon Sep 17 00:00:00 2001 +From 481fdf64df32a238f0112b6088c524625a645fed Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 22 Jan 2019 12:04:09 +0000 -Subject: [PATCH 120/704] staging: mmal-vchiq: Fix client_component for 64 bit +Subject: [PATCH 119/741] staging: mmal-vchiq: Fix client_component for 64 bit kernel The MMAL client_component field is used with the event @@ -136275,10 +136199,10 @@ index 2361a11f1e20..3e2209847761 100644 2.18.4 -From 429a8dfc02dfe8e90c0bfda440fc1212ed28243a Mon Sep 17 00:00:00 2001 +From 9da306685bab7ac55918217916a4d908b6db10dd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 24 Jan 2019 15:09:28 +0000 -Subject: [PATCH 121/704] clk: clk-bcm2835: Use %zd when printing size_t +Subject: [PATCH 120/741] 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 +136229,10 @@ index f1ef788c1194..2674b979a072 100644 2.18.4 -From 54c07cfb66e315cdfb6c9bc96b763ea453404526 Mon Sep 17 00:00:00 2001 +From 00963776a0d41f9a158aa20a1f0a8ba465b12d60 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Sep 2018 11:08:51 +0100 -Subject: [PATCH 122/704] media: ov5647: Use gpiod_set_value_cansleep +Subject: [PATCH 121/741] 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 +136289,10 @@ index 8a1a515388e0..07550377be2e 100644 2.18.4 -From 2597b2844f561fb18ca7c259dc1b5e12fe1f7dba Mon Sep 17 00:00:00 2001 +From b5a43819498bc23da2c79ba56e6a6f0dec53deec Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Feb 2019 12:33:29 +0000 -Subject: [PATCH 123/704] staging: mmal_vchiq: Add in the Bayer encoding +Subject: [PATCH 122/741] staging: mmal_vchiq: Add in the Bayer encoding formats The list of formats was copied before Bayer support was added. @@ -136422,10 +136346,10 @@ index 2be9941a1f30..44ba91aa6d47 100644 2.18.4 -From 6c85ecb92a5b93e435b9439d3d123d73635501c1 Mon Sep 17 00:00:00 2001 +From 56a83aa48fa6e6b58f606ce3997db969045b4702 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 18 Feb 2019 15:52:29 +0000 -Subject: [PATCH 124/704] staging: mmal-vchiq: Update mmal_parameters.h with +Subject: [PATCH 123/741] staging: mmal-vchiq: Update mmal_parameters.h with recently defined params mmal_parameters.h hasn't been updated to reflect additions made @@ -136484,10 +136408,10 @@ index a1e39b1b1701..1793103b18fd 100644 2.18.4 -From d093d3088d8a49607544017642e627d9d874e03e Mon Sep 17 00:00:00 2001 +From c78e42a1ac2f48f21d694a6474dd40af2ff0bdd4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 May 2019 13:27:23 +0100 -Subject: [PATCH 125/704] staging: mmal-vchiq: Free the event context for +Subject: [PATCH 124/741] staging: mmal-vchiq: Free the event context for control ports vchiq_mmal_component_init calls init_event_context for the @@ -136518,10 +136442,10 @@ index 3e2209847761..d4d9ad3500b6 100644 2.18.4 -From 38cd614923fc7c3ad7d3620dad9f4de4b318e168 Mon Sep 17 00:00:00 2001 +From c494f03d3b53ee6f0d98c45710739b79cdce3aea Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 May 2019 15:50:01 +0100 -Subject: [PATCH 126/704] staging: mmal-vchiq: Fix memory leak in error path +Subject: [PATCH 125/741] 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 +136524,10 @@ index d4d9ad3500b6..14bdfdea5770 100644 2.18.4 -From ab76d1f8ea40798e0d6d60fed2ddfbfde84330bd Mon Sep 17 00:00:00 2001 +From 60f3d91429334323c74ff7a65005b8de9ecac51a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jun 2019 17:15:05 +0100 -Subject: [PATCH 127/704] w1: w1-gpio: Make GPIO an output for strong pullup +Subject: [PATCH 126/741] 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 +136557,10 @@ index d4632aace402..4832cd8c2596 100644 2.18.4 -From 8bed59e63fd782749313f3f11d0b1e514902d45e Mon Sep 17 00:00:00 2001 +From 97abf3eb3d6daabdcf9c430aa3f0e777c55a1d47 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Feb 2019 08:49:39 +0000 -Subject: [PATCH 128/704] arm: bcm2835: Fix FIQ early ioremap +Subject: [PATCH 127/741] 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 +136636,10 @@ index 9b6c921106b5..9bd9842da59f 100644 2.18.4 -From aade5998b49205fc58fa3bf6d8183b416a4fe370 Mon Sep 17 00:00:00 2001 +From 331fd0034ccd071ebd3312b4497dadbde05f3cd5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 May 2019 15:47:42 +0100 -Subject: [PATCH 129/704] arm: bcm2835: DMA can only address 1GB +Subject: [PATCH 128/741] 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 +136667,10 @@ index 9bd9842da59f..7d59a9364175 100644 2.18.4 -From 9c9335f532a0fbe8716f4420746a91f15d51f916 Mon Sep 17 00:00:00 2001 +From eb02ea6158638ac97c6e795fc780df4786f9c219 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 4 May 2019 17:06:15 +0200 -Subject: [PATCH 130/704] hwrng: iproc-rng200: Add BCM2838 support +Subject: [PATCH 129/741] 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 +136828,10 @@ index 01583faf9893..2a92ea658096 100644 2.18.4 -From 9d8e7c4c7a09860410fd40373656d064202d8863 Mon Sep 17 00:00:00 2001 +From 6b80638e6d75d2943f555b7e78ed0631a0b548a0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 2 Aug 2019 15:20:11 +0100 -Subject: [PATCH 131/704] mmc: sdhci-iproc: Fix vmmc regulators on iProc +Subject: [PATCH 130/741] 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 +136880,10 @@ index ddeaf8e1f72f..57257a014022 100644 2.18.4 -From 93bc46c53cfb384cc0206dab1ef20e89c6ccb7d7 Mon Sep 17 00:00:00 2001 +From 6786e0678d57ddce448f2bfef1d24cb9dc768d9c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 1 Nov 2018 17:31:37 +0000 -Subject: [PATCH 132/704] vchiq: Add 36-bit address support +Subject: [PATCH 131/741] 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 +137092,10 @@ index 0784c5002417..f8b1c005af62 100644 2.18.4 -From 5c55969e756ea3f0e9dc22b22ccda164064567fb Mon Sep 17 00:00:00 2001 +From 52a16d9b31d850b0ebf57af5046131edb81523e9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 30 Apr 2019 19:15:30 +0100 -Subject: [PATCH 133/704] bcm2835-pcm.c: Support multichannel audio +Subject: [PATCH 132/741] bcm2835-pcm.c: Support multichannel audio --- .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 17 +++++++++-------- @@ -137220,10 +137144,10 @@ index 096f2c54258a..3c0033101e6e 100644 2.18.4 -From 81d6a1f5be102d06e632c4c8368cfb2e965c43a8 Mon Sep 17 00:00:00 2001 +From efedeae57164d061501aa4d59ab3f83e96dfb625 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 12 Sep 2018 14:44:53 +0100 -Subject: [PATCH 134/704] bcmgenet: constrain max DMA burst length +Subject: [PATCH 133/741] bcmgenet: constrain max DMA burst length --- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- @@ -137246,10 +137170,10 @@ index f6ca01da141d..45ea07829b8c 100644 2.18.4 -From a472358e480010307911b27926b69860712a8155 Mon Sep 17 00:00:00 2001 +From 5eebca61cf28f52d1de96d5366d49be6b6929ddd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 Mar 2019 13:45:46 +0000 -Subject: [PATCH 135/704] bcmgenet: Better coalescing parameter defaults +Subject: [PATCH 134/741] bcmgenet: Better coalescing parameter defaults Set defaults for TX and RX packet coalescing to be equivalent to: @@ -137295,10 +137219,10 @@ index fcca023f22e5..848c29c5c33d 100644 2.18.4 -From e8e4a6d64ed04b116676805610cc1bd0feddb8ec Mon Sep 17 00:00:00 2001 +From f39fec4c239ba09a8e21fc64e39720084210a7c5 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:17:59 +0100 -Subject: [PATCH 136/704] net: genet: enable link energy detect powerdown for +Subject: [PATCH 135/741] net: genet: enable link energy detect powerdown for external PHYs There are several warts surrounding bcmgenet_mii_probe() as this @@ -137332,10 +137256,10 @@ index 6fb6c3556285..2e516f4c435e 100644 2.18.4 -From 138541de75bd194445dd8f424960a12ab4f89d83 Mon Sep 17 00:00:00 2001 +From 13ffc69754a5cb9cd70a70de53f3527c26a2da57 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Fri, 22 Mar 2019 09:47:14 +0000 -Subject: [PATCH 137/704] usb: xhci: Disable the XHCI 5 second timeout +Subject: [PATCH 136/741] 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 @@ -137367,10 +137291,10 @@ index a8d97e23f601..d61b0ef94a2f 100644 2.18.4 -From ce54e0cceefdc6bd80ba15f04e6bc7677817a5e7 Mon Sep 17 00:00:00 2001 +From 6c3283f732bd31b63558b7e0d39156d136298138 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Mon, 13 May 2019 11:05:27 +0000 -Subject: [PATCH 138/704] spi: bcm2835: enable shared interrupt support +Subject: [PATCH 137/741] spi: bcm2835: enable shared interrupt support Add shared interrupt support for this driver. @@ -137380,7 +137304,7 @@ Signed-off-by: Martin Sperl 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c -index 197485f2c2b2..5c7aa77f504e 100644 +index 29ee555a42f9..59cff9ea8bea 100644 --- a/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c @@ -377,6 +377,10 @@ static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id) @@ -137394,7 +137318,7 @@ index 197485f2c2b2..5c7aa77f504e 100644 /* Read as many bytes as possible from FIFO */ bcm2835_rd_fifo(bs); /* Write as many bytes as possible to FIFO */ -@@ -1321,7 +1325,8 @@ static int bcm2835_spi_probe(struct platform_device *pdev) +@@ -1327,7 +1331,8 @@ static int bcm2835_spi_probe(struct platform_device *pdev) bcm2835_wr(bs, BCM2835_SPI_CS, BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX); @@ -137408,10 +137332,10 @@ index 197485f2c2b2..5c7aa77f504e 100644 2.18.4 -From 2518594c14d610623885403d62eb0aadf3fa5a05 Mon Sep 17 00:00:00 2001 +From 915223f5b4f206da0ef41be6fee9d2608c0d2932 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Jan 2019 16:11:50 +0000 -Subject: [PATCH 139/704] clk-bcm2835: Don't wait for pllh lock +Subject: [PATCH 138/741] clk-bcm2835: Don't wait for pllh lock Signed-off-by: Phil Elwell --- @@ -137452,10 +137376,10 @@ index 2674b979a072..38f97f1707d2 100644 2.18.4 -From b503d7504f56143903842455717159fdd7f75923 Mon Sep 17 00:00:00 2001 +From 8138f3db214145814922a259703d398a9aef9f64 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Jan 2019 17:31:07 -0800 -Subject: [PATCH 140/704] soc: bcm: bcm2835-pm: Add support for 2711. +Subject: [PATCH 139/741] 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 +137488,10 @@ index ed37dc40e82a..b2d157091e12 100644 2.18.4 -From 0d7857ca1f01776ef9b9aafee02a7cbed33802ce Mon Sep 17 00:00:00 2001 +From 561996096308954597ea4175ce0d4ae29e3e2bd2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:11:05 -0700 -Subject: [PATCH 141/704] clk: bcm2835: Add support for setting leaf clock +Subject: [PATCH 140/741] 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 +137547,10 @@ index 38f97f1707d2..4cf4f5e12fe2 100644 2.18.4 -From 16118d4c61fc06bc7a528bd67f611474db45f12c Mon Sep 17 00:00:00 2001 +From 2eba8f29f021bb6c1992355acc200cfa2b8a8691 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:24:04 -0700 -Subject: [PATCH 142/704] clk: bcm2835: Allow reparenting leaf clocks while +Subject: [PATCH 141/741] 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 +137624,10 @@ index 4cf4f5e12fe2..3c55594684cd 100644 2.18.4 -From d8cb8fd4b16e8d6d492aa37a443fa1de1376e008 Mon Sep 17 00:00:00 2001 +From 7ece6aaaae1f18d3db4a0491f22732c12e99a278 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 10:55:00 +0100 -Subject: [PATCH 143/704] usb: add plumbing for updating interrupt endpoint +Subject: [PATCH 142/741] usb: add plumbing for updating interrupt endpoint interval state xHCI caches device and endpoint data after the interface is configured, @@ -137816,10 +137740,10 @@ index 3dbb42c637c1..a60b7fc02fce 100644 2.18.4 -From 15374a4305d11ae716679a4b96a0ba9d7d619665 Mon Sep 17 00:00:00 2001 +From 2d0b7fa2c05d432db47258aa8197403f78c4a1a8 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:33:39 +0100 -Subject: [PATCH 144/704] xhci: implement xhci_fixup_endpoint for interval +Subject: [PATCH 143/741] xhci: implement xhci_fixup_endpoint for interval adjustments Must be called in a non-atomic context, after the endpoint @@ -137951,10 +137875,10 @@ index d61b0ef94a2f..494a059f2f5b 100644 2.18.4 -From d540bc7c431de5c08f62e36a78fa12bfb7d08d3e Mon Sep 17 00:00:00 2001 +From 91fb3d71ce579918f9fa70bf86c1bcac4009d076 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:42:03 +0100 -Subject: [PATCH 145/704] usbhid: call usb_fixup_endpoint after mangling +Subject: [PATCH 144/741] usbhid: call usb_fixup_endpoint after mangling intervals Lets the mousepoll override mechanism work with xhci. @@ -137965,7 +137889,7 @@ Signed-off-by: Jonathan Bell 1 file changed, 1 insertion(+) diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c -index 1134d543e5d6..3d5d82f7176f 100644 +index 996604acc730..5ab69fc58d1b 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -1128,6 +1128,7 @@ static int usbhid_start(struct hid_device *hid) @@ -137980,10 +137904,10 @@ index 1134d543e5d6..3d5d82f7176f 100644 2.18.4 -From 67af5db3187398edcb30bd135807171ef5571a17 Mon Sep 17 00:00:00 2001 +From ec77729b241759253914616e3c5d6df423a9f169 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Jun 2019 17:38:28 +0100 -Subject: [PATCH 146/704] arm: bcm2835: Add bcm2838 compatible string. +Subject: [PATCH 145/741] arm: bcm2835: Add bcm2838 compatible string. Signed-off-by: Phil Elwell --- @@ -138006,10 +137930,10 @@ index 7d59a9364175..282a023027fc 100644 2.18.4 -From fac16a846514360697c03facf7b381e6422f153d Mon Sep 17 00:00:00 2001 +From add2e0d87847ba276fffbef627230924abd5ef32 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Oct 2018 17:22:43 -0700 -Subject: [PATCH 147/704] drm/v3d: Add support for 2711. +Subject: [PATCH 146/741] drm/v3d: Add support for 2711. Signed-off-by: Eric Anholt --- @@ -138032,10 +137956,10 @@ index 9f7c26193831..a463f8c0ad4c 100644 2.18.4 -From fe2f582e2cf5a10315c784f58d63d1347b47e530 Mon Sep 17 00:00:00 2001 +From 0c0dc94aa0e6aa4a932d7a35d155398b73ad1823 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 12:35:43 -0800 -Subject: [PATCH 148/704] drm/v3d: Skip MMU flush if the device is currently +Subject: [PATCH 147/741] 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 +138014,10 @@ index 5a453532901f..8986e7b96461 100644 2.18.4 -From 6e3ff27378077b6082ee9f6b249783c6d923ff09 Mon Sep 17 00:00:00 2001 +From 9289fff1f96d279c59aebd6733db8c5b6f8d4bc4 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 14:47:57 -0800 -Subject: [PATCH 149/704] drm/v3d: Hook up the runtime PM ops. +Subject: [PATCH 148/741] 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 +138054,10 @@ index a463f8c0ad4c..5f581fe8c918 100644 2.18.4 -From 9b6791b847ea63814c1d492ba2d05a02b8d5f214 Mon Sep 17 00:00:00 2001 +From ee0656f797c3d6f88b5a6224a3ac7937d6fbe8ac Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 11 Jul 2019 17:55:43 +0100 -Subject: [PATCH 150/704] xhci: add quirk for host controllers that don't +Subject: [PATCH 149/741] 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 @@ -138230,10 +138154,10 @@ index d01241f1daf3..03e4280dbb5a 100644 2.18.4 -From b091d8468054274240dfb4252a4e5aaf342aba42 Mon Sep 17 00:00:00 2001 +From 83ec31bcc030e1f0e7d5f53e12c3e1b6e842ad18 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Jul 2019 15:38:35 +0100 -Subject: [PATCH 151/704] i2c: bcm2835: Set clock-stretch timeout to 35ms +Subject: [PATCH 150/741] 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 +138207,10 @@ index 18b2e9e3d752..5b2589b6b9cc 100644 2.18.4 -From 7e1a0af95f6890b47f24a621c698edb935b0a60a Mon Sep 17 00:00:00 2001 +From 4fa97b14652f1dfd6c74d651c02a4fd24c6e2e0e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Aug 2019 15:23:14 +0100 -Subject: [PATCH 152/704] clk-bcm2835: Avoid null pointer exception +Subject: [PATCH 151/741] clk-bcm2835: Avoid null pointer exception clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating @@ -138318,10 +138242,10 @@ index 3c55594684cd..d686c51a68a9 100644 2.18.4 -From 8b14b5ba7d8bbc60a100e74ac861965aeaea609c Mon Sep 17 00:00:00 2001 +From 5c4a52a9e04a9fa74d0b4cce5d4df7298add141d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 15:13:17 -0800 -Subject: [PATCH 153/704] drm/v3d: HACK: gut runtime pm for now. +Subject: [PATCH 152/741] 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 +138359,10 @@ index 5f581fe8c918..e6dffb116eb3 100644 2.18.4 -From 928197709844b5f1860be79792edec98c25f85d3 Mon Sep 17 00:00:00 2001 +From 126259cae148013c12825ef2a3ceb82625ff61c3 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 13:22:53 -0700 -Subject: [PATCH 154/704] drm/v3d: Clock V3D down when not in use. +Subject: [PATCH 153/741] 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 +138530,10 @@ index 182c586525eb..b7b439de8660 100644 2.18.4 -From 426da9f6697dd86d785f525f4df043891464b263 Mon Sep 17 00:00:00 2001 +From 9f4ee90ed0975e7ceaa5c3c14672d047a3b2b4ff Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 9 May 2019 14:30:37 +0100 -Subject: [PATCH 155/704] drivers: char: add chardev for mmap'ing the RPiVid +Subject: [PATCH 154/741] drivers: char: add chardev for mmap'ing the RPiVid control registers Based on the gpiomem driver, allow mapping of the decoder register @@ -139064,10 +138988,10 @@ index b2d157091e12..f70a810c55f7 100644 2.18.4 -From ce812002853542c6b2af19ca937aa2bd72d81325 Mon Sep 17 00:00:00 2001 +From baa02f08c42cdf0c57301748d7d58f3d078d7b5a Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 1 Aug 2019 16:41:20 +0100 -Subject: [PATCH 156/704] hid: usb: Add device quirks for Freeway Airmouse T3 +Subject: [PATCH 155/741] hid: usb: Add device quirks for Freeway Airmouse T3 and MX3 These wireless mouse/keyboard combo remote control devices specify @@ -139088,10 +139012,10 @@ 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 e220a05a05b4..00112131bf61 100644 +index 136b58a91c04..fae50dbda6aa 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h -@@ -220,6 +220,9 @@ +@@ -221,6 +221,9 @@ #define USB_VENDOR_ID_BAANTO 0x2453 #define USB_DEVICE_ID_BAANTO_MT_190W2 0x0100 @@ -139101,7 +139025,7 @@ index e220a05a05b4..00112131bf61 100644 #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1265,6 +1268,9 @@ +@@ -1268,6 +1271,9 @@ #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 @@ -139112,7 +139036,7 @@ index e220a05a05b4..00112131bf61 100644 #define USB_DEVICE_ID_XIN_MO_DUAL_ARCADE 0x05e1 #define USB_DEVICE_ID_THT_2P_ARCADE 0x75e1 diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c -index 2e38340e19df..bdc135f029bd 100644 +index be53c723c729..9f9d5778114e 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -41,6 +41,7 @@ static const struct hid_device_id hid_quirks[] = { @@ -139123,7 +139047,7 @@ index 2e38340e19df..bdc135f029bd 100644 { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, -@@ -191,6 +192,7 @@ static const struct hid_device_id hid_quirks[] = { +@@ -193,6 +194,7 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET }, @@ -139135,10 +139059,10 @@ index 2e38340e19df..bdc135f029bd 100644 2.18.4 -From 396ebbabc788dc647180374ae8351216cacebd67 Mon Sep 17 00:00:00 2001 +From 1740888e6d6e3edbb32fb505f32971c08ca09f31 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 16 Jul 2019 12:18:21 +0100 -Subject: [PATCH 157/704] Add HDMI1 facility to the driver. +Subject: [PATCH 156/741] 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 +139152,10 @@ index 1b36475872d6..02f50768af96 100644 2.18.4 -From 41f51a4cb0dc04bec5aa3d337abd0c3746537d41 Mon Sep 17 00:00:00 2001 +From af538e4ecd3222b055eede828ccb6ece8a8ea941 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Aug 2019 08:51:43 +0100 -Subject: [PATCH 158/704] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail +Subject: [PATCH 157/741] 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 +139209,10 @@ index 848c29c5c33d..8336558e4738 100644 2.18.4 -From 92eedae056a935405857f617897d4012a47831e8 Mon Sep 17 00:00:00 2001 +From 854ba4be4dc04d626f9aa9582d3a4ae5d153af15 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 13 Aug 2019 15:53:29 +0100 -Subject: [PATCH 159/704] xhci: Use more event ring segment table entries +Subject: [PATCH 158/741] 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 @@ -139353,10 +139277,10 @@ index 03e4280dbb5a..4f24ad7eccd9 100644 2.18.4 -From 5a3c6930d699936620033e8f6956d3537eab2b8f Mon Sep 17 00:00:00 2001 +From 6a73673c4d5fc2538cd3c8e79d142dba8853dae0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 15 Aug 2019 12:02:34 +0100 -Subject: [PATCH 160/704] configs: arm64/bcm2711: Enable V3D +Subject: [PATCH 159/741] configs: arm64/bcm2711: Enable V3D Enable the V3D driver, which depends on BCM2835_POWER. @@ -139387,10 +139311,10 @@ index 9a5c44606337..b0e048697964 100644 2.18.4 -From 060e6d6f179d90108ce1dbfaac7e07fddb4c6fff Mon Sep 17 00:00:00 2001 +From e06a8e79f7740bf15eebde685ee1367845af1ba2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:16:56 +0100 -Subject: [PATCH 161/704] arch/arm: Add model string to cpuinfo +Subject: [PATCH 160/741] arch/arm: Add model string to cpuinfo Signed-off-by: Phil Elwell --- @@ -139398,10 +139322,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 f90479d8b50c..cd6db47752fa 100644 +index b06602cea99c..647caa3f6c7f 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c -@@ -1253,6 +1253,8 @@ static int c_show(struct seq_file *m, void *v) +@@ -1255,6 +1255,8 @@ static int c_show(struct seq_file *m, void *v) { int i, j; u32 cpuid; @@ -139410,7 +139334,7 @@ index f90479d8b50c..cd6db47752fa 100644 for_each_online_cpu(i) { /* -@@ -1312,6 +1314,14 @@ static int c_show(struct seq_file *m, void *v) +@@ -1314,6 +1316,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 +139353,10 @@ index f90479d8b50c..cd6db47752fa 100644 2.18.4 -From 01888db8a7eafb64755a2f2d10e77f60c2655e37 Mon Sep 17 00:00:00 2001 +From 5be2ecae9d7436d09401eeecf50eb945a0f7bf13 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:17:25 +0100 -Subject: [PATCH 162/704] arch/arm64: Add Revision, Serial, Model to cpuinfo +Subject: [PATCH 161/741] arch/arm64: Add Revision, Serial, Model to cpuinfo Signed-off-by: Phil Elwell --- @@ -139493,10 +139417,10 @@ index 77605aec25fe..721350d21074 100644 2.18.4 -From 3df4013c13aaf184d58d9ad1b8431af1891a36cb Mon Sep 17 00:00:00 2001 +From cd4111afb561de65c7e66c42195d072611219eec Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Aug 2019 13:34:30 +0100 -Subject: [PATCH 163/704] media: dt-bindings: Add binding for the Sony IMX219 +Subject: [PATCH 162/741] 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 +139501,10 @@ index 000000000000..a02f1ce1e120 2.18.4 -From 65f4b5cce902d3fe93b0f4567307cb95f037b1e0 Mon Sep 17 00:00:00 2001 +From 41d6498bf894d9a03995985736d573d286cd4b1e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:04:51 +0100 -Subject: [PATCH 164/704] v4l2: Add a Greyworld AWB mode. +Subject: [PATCH 163/741] 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) @@ -139619,10 +139543,10 @@ index a184c4939438..fbe96b80a748 100644 2.18.4 -From 0d0c3a7afef1569d6b664800a57433bbdba31ddb Mon Sep 17 00:00:00 2001 +From fd3bd515ad3fd0317934580d77c8ffcc1a18a077 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:13:06 +0100 -Subject: [PATCH 165/704] staging: bcm2835-camera: Add greyworld AWB mode +Subject: [PATCH 164/741] 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 +139588,10 @@ index 1793103b18fd..27bafc5f01d2 100644 2.18.4 -From bdcb50f0bf768a34b59ab49b9bb01fe7ff041358 Mon Sep 17 00:00:00 2001 +From 30c94cd82d20cd88808d293839ab1cb95746296c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 18 Sep 2019 17:22:36 +0100 -Subject: [PATCH 166/704] drm/v3d: Delete pm_runtime support +Subject: [PATCH 165/741] drm/v3d: Delete pm_runtime support The pm_runtime was blocking changelist submission, so delete it as a temporary workaround. @@ -139734,10 +139658,10 @@ index 8986e7b96461..618503f2f2f1 100644 2.18.4 -From ca173851b0a250818806b9deb966465b626ba987 Mon Sep 17 00:00:00 2001 +From 710023f5cd92151410a16f9eaa5089d42e8e40cb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Sep 2019 09:26:41 +0100 -Subject: [PATCH 167/704] kbuild: Allow .dtbo overlays to be built piecemeal +Subject: [PATCH 166/741] 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 +139683,7 @@ Signed-off-by: Phil Elwell 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile -index ec9ee8032a98..50a7bc793a6f 100644 +index fb2937bca41b..3a48f2ae4293 100644 --- a/Makefile +++ b/Makefile @@ -1353,6 +1353,9 @@ ifneq ($(dtstree),) @@ -139776,10 +139700,10 @@ index ec9ee8032a98..50a7bc793a6f 100644 2.18.4 -From cf37f1cf239adf3237c33a308a1e7735e7d18605 Mon Sep 17 00:00:00 2001 +From adadccc6caa7cde54e38cb1d1ce652ecffd9cf57 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Thu, 19 Sep 2019 20:45:30 +0200 -Subject: [PATCH 168/704] ARM: bcm: Switch board, clk and pinctrl to bcm2711 +Subject: [PATCH 167/741] ARM: bcm: Switch board, clk and pinctrl to bcm2711 compatible After the decision to use bcm2711 compatible for upstream, we should @@ -139808,10 +139732,10 @@ index 282a023027fc..e538e0f899a5 100644 2.18.4 -From 08e93197cc3dde7c7b1aca01fd362e1ef16134b1 Mon Sep 17 00:00:00 2001 +From 1caff870eed14249f45c08c48bebfd9100e2b265 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 24 Sep 2019 18:26:55 +0100 -Subject: [PATCH 169/704] Rename HDMI ALSA device names, check for enable state +Subject: [PATCH 168/741] 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 +139877,10 @@ index eb8a8a5b7ec8..f926784c622d 100644 2.18.4 -From c3c268b1bbf4dda08c13e6969ffe4e9b1bccdb53 Mon Sep 17 00:00:00 2001 +From e5732948a398af0f9571e62972f67e4072baba9d Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:08 +0200 -Subject: [PATCH 170/704] dt-bindings: Add binding for the Infineon IRS1125 +Subject: [PATCH 169/741] dt-bindings: Add binding for the Infineon IRS1125 sensor Adds a binding for the Infineon IRS1125 time-of-flight depth @@ -140026,10 +139950,10 @@ index 000000000000..25a48028c957 2.18.4 -From 96eb8e3a4da8392551be13007d8fc9c90f9c47d9 Mon Sep 17 00:00:00 2001 +From 0ca77ea8d083f449ce78ccd1b8ede69f2af4beb2 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:36 +0200 -Subject: [PATCH 171/704] media: i2c: Add a driver for the Infineon IRS1125 +Subject: [PATCH 170/741] media: i2c: Add a driver for the Infineon IRS1125 depth sensor The Infineon IRS1125 is a time of flight depth sensor that @@ -141271,10 +141195,10 @@ index 000000000000..dccaca23aa76 2.18.4 -From 1aa4fcc8bee59567c1ea1aeb87c6add0e47b8121 Mon Sep 17 00:00:00 2001 +From f4551d5dc852e7db31d0e4d04869a9e877f07e4d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 14:01:41 +0000 -Subject: [PATCH 172/704] drm/v3d: Don't clear MMU control bits on exception +Subject: [PATCH 171/741] 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 +141235,10 @@ index c88686489b88..b804783e2795 100644 2.18.4 -From 095d648eec4c2f85372da663a65860cc9cef1075 Mon Sep 17 00:00:00 2001 +From 4d74b7154073c8e92ae1eee06f52dcac699bf774 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 20:18:08 +0000 -Subject: [PATCH 173/704] drm/v3d: Suppress all but the first MMU error +Subject: [PATCH 172/741] 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 +141280,10 @@ index b804783e2795..063418907a19 100644 2.18.4 -From c1d6c6d472b080d7512e9be0f8a19613e6598c2f Mon Sep 17 00:00:00 2001 +From d6d1ff5f95fa2cbafc6a8c63baea617f6536d5e2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Nov 2019 16:41:21 +0000 -Subject: [PATCH 174/704] drm/v3d: Plug dma_fence leak +Subject: [PATCH 173/741] 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 +141314,10 @@ index 49c7920608e2..bfbe33a9492d 100644 2.18.4 -From b68ee6ac2e0008e1817c65d8727c65012b54a7ca Mon Sep 17 00:00:00 2001 +From 505f3fd01f1fb9ce0a788de0bfb7fb88c172cb48 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:48 +0000 -Subject: [PATCH 175/704] staging: vchiq_arm: Register vcsm-cma as a platform +Subject: [PATCH 174/741] staging: vchiq_arm: Register vcsm-cma as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -141436,10 +141360,10 @@ index b8579af3948c..5d4b976820fa 100644 2.18.4 -From 08a7f9ff62d101977480825a7ed28e014791195e Mon Sep 17 00:00:00 2001 +From 8231c99a3b1020e8f77e143b02c17130e912433f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:58 +0000 -Subject: [PATCH 176/704] staging: vchiq_arm: Register bcm2835-codec as a +Subject: [PATCH 175/741] staging: vchiq_arm: Register bcm2835-codec as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -141482,10 +141406,10 @@ index 5d4b976820fa..3bbe533007e5 100644 2.18.4 -From fc06afec57861956b6e2503c626b86d310b256d9 Mon Sep 17 00:00:00 2001 +From fdfd899843b2fa1509483fe6e94223b6e38316e9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Nov 2019 11:59:01 +0000 -Subject: [PATCH 177/704] net: bcmgenet: The second IRQ is optional +Subject: [PATCH 176/741] 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 +141436,10 @@ index 063418907a19..0f7a23f051df 100644 2.18.4 -From 1aa5c7f57cc9e8fe5c5879db98e8f8174968105a Mon Sep 17 00:00:00 2001 +From 7b57c3446405d111a3c6070a3f048ce227b230d5 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 31 Oct 2019 14:39:44 +0000 -Subject: [PATCH 178/704] net:phy:2711 Allow ethernet LED mode to be set via +Subject: [PATCH 177/741] 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 +141488,10 @@ index dbed15dc0fe7..10d70bde381c 100644 2.18.4 -From 555d96e2760c83eae3d27c0b30d85e831a1346d7 Mon Sep 17 00:00:00 2001 +From abee406d52b5393d1f67e41b93cf271d1336baaf Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 7 Nov 2019 14:59:59 +0000 -Subject: [PATCH 179/704] net:phy:2711 Change the default ethernet LED actions +Subject: [PATCH 178/741] net:phy:2711 Change the default ethernet LED actions This should return default behaviour back to that of previous releases. @@ -141603,10 +141527,10 @@ index 10d70bde381c..6de9b072b6b9 100644 2.18.4 -From b033298e9826e8794fb9421289705c056a0ad2a5 Mon Sep 17 00:00:00 2001 +From 253f7af660fdcdc86171bbf280061aef1dc9be55 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 23 Aug 2019 16:34:38 +0100 -Subject: [PATCH 180/704] v3d_drv: Handle missing clock more gracefully +Subject: [PATCH 179/741] v3d_drv: Handle missing clock more gracefully Signed-off-by: popcornmix --- @@ -141636,10 +141560,10 @@ index 065fb20cc4a8..bfbea29c6c1f 100644 2.18.4 -From ad13fa327f2123f53c45ba6aac5baa0d067b8a3b Mon Sep 17 00:00:00 2001 +From 83a1f574aa7a25bff86d3876fb9de12671bb582d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Sep 2019 17:59:14 +0100 -Subject: [PATCH 181/704] v3d_gem: Kick the clock so firmware knows we are +Subject: [PATCH 180/741] 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 +141593,10 @@ index bfbe33a9492d..b4fb899a9409 100644 2.18.4 -From 877360629258cd6dba2c8e4efc00f41b77ca99d7 Mon Sep 17 00:00:00 2001 +From 7499ae944de16411e3bb30df622c1e4b544b8b6a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 9 Sep 2019 15:49:56 +0100 -Subject: [PATCH 182/704] clk-raspberrypi: Allow cpufreq driver to also adjust +Subject: [PATCH 181/741] 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 +141624,10 @@ index f89b9cfc4309..f4884a5b598a 100644 2.18.4 -From d81ec6602d65ae9502e987ac989f10ada37517a4 Mon Sep 17 00:00:00 2001 +From 120b35b2bbb28b384c050fcb166d18b40fa1eb33 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 3 Sep 2019 20:28:00 +0100 -Subject: [PATCH 183/704] clk-bcm2835: Disable v3d clock +Subject: [PATCH 182/741] clk-bcm2835: Disable v3d clock This is controlled by firmware, see clk-raspberrypi.c @@ -141764,10 +141688,10 @@ index d686c51a68a9..84f24244d1b5 100644 2.18.4 -From ffee57c126cf39b4adb1c348a630509b25c91bb3 Mon Sep 17 00:00:00 2001 +From 3561ef7bc67c1ee9ebf5ee44d20d1bade4c0638a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Nov 2019 16:23:32 +0000 -Subject: [PATCH 184/704] drm/v3d: Set dma_mask as well as coherent_dma_mask +Subject: [PATCH 183/741] 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 +141721,10 @@ index bfbea29c6c1f..3237f47a4792 100644 2.18.4 -From 33426e042d4b7cd93ec45283c51e764c5c06512d Mon Sep 17 00:00:00 2001 +From b869a13424e3b5b0ab9817ef8d4afbfee0702e9e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 29 Jan 2019 16:13:25 +0000 -Subject: [PATCH 185/704] staging: vchiq_arm: Set up dma ranges on child +Subject: [PATCH 184/741] staging: vchiq_arm: Set up dma ranges on child devices The VCHIQ driver now loads the audio, camera, codec, and vc-sm @@ -141836,10 +141760,10 @@ index 3bbe533007e5..ed6c1747be64 100644 2.18.4 -From bf22fc622da21b8d52b43febfe44ab17702e6e68 Mon Sep 17 00:00:00 2001 +From 85d1dcadba7f3bad696787f91c2f0ee3a6bf03c1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Jun 2019 12:15:50 +0100 -Subject: [PATCH 186/704] staging: vchiq: Use the old dma controller for OF +Subject: [PATCH 185/741] 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 +141817,10 @@ index ed6c1747be64..5e704b366676 100644 2.18.4 -From ec6b81df2bab3854f0155cef18c23841e6b8394e Mon Sep 17 00:00:00 2001 +From 7b5ea68c43a46bf0874c2db4896fdf662bd63dbf Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Fri, 27 Dec 2019 11:40:56 +0100 -Subject: [PATCH 187/704] ARM: bcm: Backport BCM2711 support from upstream +Subject: [PATCH 186/741] ARM: bcm: Backport BCM2711 support from upstream Make the BCM2711 a different machine, but keep it in board_bcm2835. @@ -141946,10 +141870,10 @@ index e538e0f899a5..91a758c61f48 100644 2.18.4 -From d0d96f902015447b05500adbf44701b4d3872bd5 Mon Sep 17 00:00:00 2001 +From 95013754db97e75b153f07653b7f925d0d0967d9 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/704] Initialise rpi-firmware before clk-bcm2835 +Subject: [PATCH 187/741] 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 +141925,10 @@ index e7df000f8b2c..8da5be17b906 100644 2.18.4 -From fb6c8d0e95413208994fe7d1ee024ba1f1a8e150 Mon Sep 17 00:00:00 2001 +From 9cc17f24b991534fd8b17a0c7c3a73ea4e14e6aa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 17:30:46 +0000 -Subject: [PATCH 189/704] staging: vchiq_arm: Give vchiq children DT nodes +Subject: [PATCH 188/741] 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 +141970,10 @@ index 5e704b366676..8d518bd9a6cd 100644 2.18.4 -From a6fbaccc1af89c91b641d7ce36131332ee97aed1 Mon Sep 17 00:00:00 2001 +From 4368f747436877b705eb3c8b9ab0425ea8dee023 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 16:04:30 +0000 -Subject: [PATCH 190/704] pinctrl: bcm2835: Remove gpiochip on error +Subject: [PATCH 189/741] 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 +142001,10 @@ index bbf761c41dc5..2696029e1689 100644 2.18.4 -From 86553b0deaf3651f782b573ac6d4c7359fa8cde0 Mon Sep 17 00:00:00 2001 +From 70e13d9e264fdf86e8190a573da0f1ed415ced74 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 14:05:42 +0000 -Subject: [PATCH 191/704] pinctrl: bcm2835: Change init order for gpio hogs +Subject: [PATCH 190/741] 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 +142085,10 @@ index 2696029e1689..edb3a863871d 100644 2.18.4 -From 8bd832a476f642d68e020f3fc12f89a011a84a36 Mon Sep 17 00:00:00 2001 +From b99b21564eaf76e51c753e87607b1ebeb442f491 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 25 Feb 2020 17:38:20 +0000 -Subject: [PATCH 192/704] pinctrl: bcm2835: Accept fewer than expected IRQs +Subject: [PATCH 191/741] 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 +142122,10 @@ index edb3a863871d..bda29f421e78 100644 2.18.4 -From 34118b308ee61e4f420f0c622f6dd9b444020102 Mon Sep 17 00:00:00 2001 +From c170c14306d501a4f25ea930ded044054ac567e5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:40:19 +0000 -Subject: [PATCH 193/704] drivers: char: vcio: Use common compat header +Subject: [PATCH 192/741] 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 +142151,10 @@ index d2598663a2b5..a39155a94fb7 100644 2.18.4 -From 61aa3cffeefd84c6083adda9284fe2fbd1ef14a8 Mon Sep 17 00:00:00 2001 +From a78b76e7fa015d0709f87b8d383c9c44d210aca8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:42:23 +0000 -Subject: [PATCH 194/704] video: fbdev: bcm2708_fb: Use common compat header +Subject: [PATCH 193/741] 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 +142180,10 @@ index 0e9ec3f593b8..17e9260655e4 100644 2.18.4 -From e061d47cf17f9fed38e2c9a39041c284a913fa53 Mon Sep 17 00:00:00 2001 +From e2590f57bf8e303458f8f1467937a80a3d17b17b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 6 Feb 2020 12:23:15 +0000 -Subject: [PATCH 195/704] of: overlay: Correct symbol path fixups +Subject: [PATCH 194/741] 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 @@ -142299,10 +142223,10 @@ index 43a77d720008..bccef312f4c3 100644 2.18.4 -From 49e123051f609b43c16d8cb7ce77a32e4efeb08a Mon Sep 17 00:00:00 2001 +From 0b891b4e68242285a1ff035b4c5809cf33313b97 Mon Sep 17 00:00:00 2001 From: Jim Quinlan Date: Mon, 15 Jan 2018 18:28:39 -0500 -Subject: [PATCH 196/704] dt-bindings: pci: Add DT docs for Brcmstb PCIe device +Subject: [PATCH 195/741] 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 +142307,10 @@ index 000000000000..a1a9ad5e70ca 2.18.4 -From 2916f9e94fcc85341ea577f43ce9af12f15a428f Mon Sep 17 00:00:00 2001 +From 039b135e63349cecb7d3110681a87983738803e5 Mon Sep 17 00:00:00 2001 From: Nataliya Korovkina Date: Thu, 12 Mar 2020 17:22:53 -0400 -Subject: [PATCH 197/704] Kbuild: Allow .dtbo overlays to be built, adjust. +Subject: [PATCH 196/741] Kbuild: Allow .dtbo overlays to be built, adjust. This is adjustment to commit d368ceaacdccd7732dc97d1d7987bdf7149d62e3 "kbuild: Allow .dtbo overlays to be built piecemeal" @@ -142399,7 +142323,7 @@ Signed-off-by: Nataliya Korovkina 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 50a7bc793a6f..45bc9156c89c 100644 +index 3a48f2ae4293..45aca07ca4ab 100644 --- a/Makefile +++ b/Makefile @@ -1353,7 +1353,7 @@ ifneq ($(dtstree),) @@ -142415,10 +142339,10 @@ index 50a7bc793a6f..45bc9156c89c 100644 2.18.4 -From 5b4215c10968420e68f5d6519661bdf3b289199a Mon Sep 17 00:00:00 2001 +From dc477d45e4ec67a197ae77a163316646ed39271c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 Apr 2020 11:22:44 +0100 -Subject: [PATCH 198/704] bcmgenet: Disable skip_umac_reset by default +Subject: [PATCH 197/741] bcmgenet: Disable skip_umac_reset by default Possible fixed upstream by 'net: bcmgenet: keep MAC in reset until PHY is up' @@ -142444,10 +142368,10 @@ index 8336558e4738..ae7011c1e1f7 100644 2.18.4 -From 6e426744f63966b1d8af4248066d343b1b3f427c Mon Sep 17 00:00:00 2001 +From 6add09a445684a72c5ee157dfb106c6d0dc77906 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:22:06 +0000 -Subject: [PATCH 199/704] drm/fourcc: Add packed 10bit YUV 4:2:0 format +Subject: [PATCH 198/741] 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 +142431,10 @@ index 5498d7a6556a..3aeab2680295 100644 2.18.4 -From 667c529fe89b4a4326c4b0ce8141b3a3f3966261 Mon Sep 17 00:00:00 2001 +From 65f9ccfc8224e508bb1911dacec10c2c0f505b7a Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:25 +0100 -Subject: [PATCH 200/704] media: uapi: hevc: Add scaling matrix control +Subject: [PATCH 199/741] media: uapi: hevc: Add scaling matrix control Taken from https://patchwork.linuxtv.org/patch/60728/ Changes (mainly documentation) have been requested. @@ -142669,10 +142593,10 @@ index 1009cf0891cc..1592e52c3614 100644 2.18.4 -From 577b6df08a4613670c3768572848e5517c5ec953 Mon Sep 17 00:00:00 2001 +From d875dda9bb4f56c03b85b737cdc74093c8cf21d4 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:27 +0100 -Subject: [PATCH 201/704] media: uapi: hevc: Add segment address field +Subject: [PATCH 200/741] media: uapi: hevc: Add segment address field From https://patchwork.linuxtv.org/patch/60725/ Changes requested, but mainly docs. @@ -142738,10 +142662,10 @@ index 1592e52c3614..3e2e32098312 100644 2.18.4 -From 375e4af15c72f1502fc325c15b6dfcaa53728336 Mon Sep 17 00:00:00 2001 +From 940d761ba6908cf17113617d8ec47f8dd7df0506 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 23 Mar 2020 18:34:01 +0000 -Subject: [PATCH 202/704] media: hevc_ctrls: Add slice param dependent slice +Subject: [PATCH 201/741] media: hevc_ctrls: Add slice param dependent slice segment Adds V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT define. @@ -142767,10 +142691,10 @@ index 3e2e32098312..0ba7735465a2 100644 2.18.4 -From 8a810fb1c0042c70e56d2e73beb878b8ecb41074 Mon Sep 17 00:00:00 2001 +From 8678fe41a81f4ea3df61a7f82f71b696ac4553bd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 23 Mar 2020 19:00:17 +0000 -Subject: [PATCH 203/704] media: uapi: Add hevc ctrls for WPP decoding +Subject: [PATCH 202/741] 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 +142737,10 @@ index 0ba7735465a2..9c976b3cf092 100644 2.18.4 -From ad673aa849f0c51b8d1d102240709af7eb104fb0 Mon Sep 17 00:00:00 2001 +From 9be459d9520b90a5bb3181c96c00db45f492d4d7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:28:21 +0000 -Subject: [PATCH 204/704] media: videodev2.h: Add a format for column YUV4:2:0 +Subject: [PATCH 203/741] 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 +143054,10 @@ index 56c443cc2c3d..568801746d2d 100644 2.18.4 -From fca9b13217b1d377cc4448501042379e32ea2040 Mon Sep 17 00:00:00 2001 +From 20a68a42ca91b1db760fad0080388e386e9744c3 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 14:46:54 +0000 -Subject: [PATCH 205/704] media: v4l2-mem2mem: allow request job buffer +Subject: [PATCH 204/741] 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 +143336,10 @@ index c203047eb834..260593fffbc8 100644 2.18.4 -From 953944dc1175b7f35a48cbae35d6ef0e9b03155a Mon Sep 17 00:00:00 2001 +From 4d803fd1024e2de221544604531d7fa6be33220c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Mar 2020 10:53:16 +0000 -Subject: [PATCH 206/704] media: dt-bindings: media: Add binding for the +Subject: [PATCH 205/741] 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. @@ -143527,10 +143451,10 @@ index cbfee297e9f9..b5113e381d78 100644 2.18.4 -From 53d0ef6e582371460e7a4a918e455a3a3c4722e5 Mon Sep 17 00:00:00 2001 +From cd45616274eebde16224e5e06afb8350443fe339 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 18:30:41 +0000 -Subject: [PATCH 207/704] staging: media: Add Raspberry Pi V4L2 H265 decoder +Subject: [PATCH 206/741] 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 +147833,10 @@ index 000000000000..9c4f3fb2f9f6 2.18.4 -From fdd0f409038c575654a227f8569e722d068d3267 Mon Sep 17 00:00:00 2001 +From cfa72f71b6a63e812ccad4cbac4c1ba7bf23ad67 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 6 Dec 2019 13:05:27 +0100 -Subject: [PATCH 208/704] mmc: sdhci: Silence MMC warnings +Subject: [PATCH 207/741] 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. @@ -147957,10 +147881,10 @@ index 58c977d581e7..a1af2f5c0998 100644 2.18.4 -From 0d6cfdf53c3c2db99f660c6b8f56d8850311a548 Mon Sep 17 00:00:00 2001 +From 7bbe8ea31f2a2f8453237a2100b38fd68110a7bc Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 17:51:09 +0100 -Subject: [PATCH 209/704] dt-bindings: clock: Add a binding for the RPi +Subject: [PATCH 208/741] 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 +147951,10 @@ index 000000000000..d37bc311321d 2.18.4 -From 847617b52710dcf56f397272ea59233b7f8ebd4f Mon Sep 17 00:00:00 2001 +From 6351487038412292cfc635fe3621dad31805d592 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 16:45:24 +0100 -Subject: [PATCH 210/704] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI +Subject: [PATCH 209/741] 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 +148131,10 @@ index f54b4e4808f0..899d8cfa1731 100644 2.18.4 -From 58e4c9677028e43539b76fa3e3bb34e84d9628a4 Mon Sep 17 00:00:00 2001 +From 13d6e9478c017f98b4bd584b8f0135ef89527804 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 27 Jan 2020 10:22:44 +0000 -Subject: [PATCH 211/704] drm: Checking of the pitch is only valid for linear +Subject: [PATCH 210/741] drm: Checking of the pitch is only valid for linear formats framebuffer_check was computing a minimum pitch value and ensuring @@ -148253,10 +148177,10 @@ index 2f5b0c2bb0fe..89ced6af9c5c 100644 2.18.4 -From 345f8f32d15672be9b1ad0c3d09c04f9d6e945ab Mon Sep 17 00:00:00 2001 +From 646983761f9281827f3fceb36a939ab49224ec3d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Apr 2020 11:59:39 +0100 -Subject: [PATCH 212/704] overlays: Fix dtc warnings in i2c-gpio +Subject: [PATCH 211/741] overlays: Fix dtc warnings in i2c-gpio Better late than never. @@ -148283,10 +148207,10 @@ index 63231b5d7c0c..2323a61edf07 100644 2.18.4 -From c57521dec20f9b9aca75e49039fe141cd81453fa Mon Sep 17 00:00:00 2001 +From 59d1f6ef5f973dd7dbc7f7328b46a4bb804baca6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 22:18:52 +0100 -Subject: [PATCH 213/704] driver: char: rpivid: Remove legacy name support +Subject: [PATCH 212/741] driver: char: rpivid: Remove legacy name support Signed-off-by: Phil Elwell --- @@ -148342,10 +148266,10 @@ index fbf3d4f3fe0c..5f4c91924ec1 100644 2.18.4 -From 62d803adc6eab95e86641b565c5e952a4baa0d16 Mon Sep 17 00:00:00 2001 +From 4d8e67650439c98f5a43fe964c5fef9373f989bf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Apr 2020 10:46:19 +0100 -Subject: [PATCH 214/704] spi: Force CS_HIGH if GPIO descriptors are used +Subject: [PATCH 213/741] 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 +148299,10 @@ Signed-off-by: Phil Elwell 1 file changed, 9 insertions(+) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c -index a6f1e94af13c..d170122116c7 100644 +index 0cf67de741e7..b92eaeec1145 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -3330,6 +3330,7 @@ static int __spi_validate_bits_per_word(struct spi_controller *ctlr, +@@ -3336,6 +3336,7 @@ static int __spi_validate_bits_per_word(struct spi_controller *ctlr, */ int spi_setup(struct spi_device *spi) { @@ -148386,7 +148310,7 @@ index a6f1e94af13c..d170122116c7 100644 unsigned bad_bits, ugly_bits; int status; -@@ -3347,6 +3348,14 @@ int spi_setup(struct spi_device *spi) +@@ -3353,6 +3354,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 +148329,10 @@ index a6f1e94af13c..d170122116c7 100644 2.18.4 -From 57fa36004bd1f744572481cc12c37ebc3f635a4a Mon Sep 17 00:00:00 2001 +From 896a1ad668ebefb5defe936c2419268db2b26648 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Apr 2020 11:30:23 +0100 -Subject: [PATCH 215/704] driver: char: rpivid: Don't map more than wanted +Subject: [PATCH 214/741] 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 +148386,10 @@ index 5f4c91924ec1..9f38083f4cb6 100644 2.18.4 -From fb8a493d71b34514dfe320842490bd01eb0dd026 Mon Sep 17 00:00:00 2001 +From 05a4fd7a060166e279cda6c2a1356d06fc3c4219 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:39:49 +0100 -Subject: [PATCH 216/704] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 215/741] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add driver for the Unicam camera receiver block on @@ -151193,10 +151117,10 @@ index 000000000000..ae059a171d0f 2.18.4 -From 1db23aa1644487ccfb7772bcd8d680982a1234d3 Mon Sep 17 00:00:00 2001 +From 2ec0d257145205f0ff40ea9593f6c9490476387c Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:46:29 +0100 -Subject: [PATCH 217/704] media: uapi: v4l2-core: Add sensor ancillary data +Subject: [PATCH 216/741] media: uapi: v4l2-core: Add sensor ancillary data V4L2 foucc type. Add V4L2_META_FMT_SENSOR_DATA format 4CC. @@ -151291,10 +151215,10 @@ index 568801746d2d..d93d5bb7059b 100644 2.18.4 -From 4327541c7e5d4c5840a2af9d0e2e444a7ab894b2 Mon Sep 17 00:00:00 2001 +From f0252970904c5fb05a974dbae519eb6c2a2fd8fd Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Jan 2020 14:06:47 +0000 -Subject: [PATCH 218/704] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus +Subject: [PATCH 217/741] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus format This patch adds MEDIA_BUS_FMT_SENSOR_DATA used by the bcm2835-unicam @@ -151363,10 +151287,10 @@ index 84fa53ffb13f..3c2848e91c1b 100644 2.18.4 -From 79743ae4211124602f1e5e4153f9ac73e8efb61e Mon Sep 17 00:00:00 2001 +From 65c116c7f7f165e23d19552c821888cc24e10d8e Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 7 Apr 2020 10:42:14 +0100 -Subject: [PATCH 219/704] media: bcm2835-unicam: Add support for mulitple +Subject: [PATCH 218/741] media: bcm2835-unicam: Add support for mulitple device nodes. Move device node specific state out of the device state structure and @@ -152452,10 +152376,10 @@ index 9da9f22c3db5..b34551a3f44b 100644 2.18.4 -From ae1d850082dcc8450cc4c4812df869e49030ba80 Mon Sep 17 00:00:00 2001 +From a88d1b453eb07684d9c1d866837c7f6f6ec58894 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 16 Apr 2020 11:35:41 +0100 -Subject: [PATCH 220/704] media: bcm2835-unicam: Add embedded data node. +Subject: [PATCH 219/741] 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 +153550,10 @@ index b34551a3f44b..d5e0f70b600c 100644 2.18.4 -From 15366fb588a530db73c22d047e16097f471a5de3 Mon Sep 17 00:00:00 2001 +From d14829ee0262934efb11f78558c47f7f4d089dec Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 2 Apr 2020 16:08:51 +0100 -Subject: [PATCH 221/704] media: bcm2835-unicam: Use dummy buffer if none have +Subject: [PATCH 220/741] 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 +153864,10 @@ index d5e0f70b600c..933f1ba49e3d 100644 2.18.4 -From 3338df19d023f370ba0da0859c22b6b88a7d5e73 Mon Sep 17 00:00:00 2001 +From f0a81172cf45f65d78ae06ef856223d445024e89 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 222/704] media: bcm2835-unicam: Disable event-related ioctls +Subject: [PATCH 221/741] media: bcm2835-unicam: Disable event-related ioctls on metadata node The unicam driver supports both the SOURCE_CHANGE and CTRL events. Both @@ -153977,10 +153901,10 @@ index 933f1ba49e3d..2d4c7a247fc5 100644 2.18.4 -From 2f6c2f58da3784d04c2c8558bdf9f5ed66e33cc7 Mon Sep 17 00:00:00 2001 +From 5038c17f87af37efc9c78ce36557ddd1689b6248 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 223/704] media: bcm2835-unicam: Add support for the FRAME_SYNC +Subject: [PATCH 222/741] media: bcm2835-unicam: Add support for the FRAME_SYNC event The FRAME_SYNC event is useful for userspace image processing algorithms @@ -154038,10 +153962,10 @@ index 2d4c7a247fc5..21d3a8585118 100644 2.18.4 -From 55f3a41b9fb1097542d728d5efe84a7bf51c3e7f Mon Sep 17 00:00:00 2001 +From f964400eec2e9b914d4f7377fdcbd1ce5efe8c06 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 12 Mar 2020 14:09:38 +0000 -Subject: [PATCH 224/704] media: imx219: Advertise embedded data node on media +Subject: [PATCH 223/741] media: imx219: Advertise embedded data node on media pad 1 This commit updates the imx219 driver to adverise support for embedded @@ -154380,10 +154304,10 @@ index 4771d0ef2c46..5af610f7fc08 100644 2.18.4 -From bff8aabbc359d0f17b36cf6e8087db5151eba37c Mon Sep 17 00:00:00 2001 +From 87662134ba88b8aff4eeb6fa474291789d7a4ad3 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 16:26:03 +0100 -Subject: [PATCH 225/704] media: bcm2835-unicam: Re-fetch mbus code from subdev +Subject: [PATCH 224/741] 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 +154359,10 @@ index 21d3a8585118..d4684fb2797f 100644 2.18.4 -From 33a74e082f9a05dcd82e34317a78e3cdb0c66b5a Mon Sep 17 00:00:00 2001 +From 10cd51b837b850a18152f46ea4e75c50a4ab67df Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:20:26 +0100 -Subject: [PATCH 226/704] media: uapi: v4l2-core: Add ISP statistics output +Subject: [PATCH 225/741] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Add V4L2_META_FMT_BCM2835_ISP_STATS V4L2 format type. @@ -154542,10 +154466,10 @@ index d93d5bb7059b..e9fbb04a3519 100644 2.18.4 -From 5be9483a99a0ee6b64e42cda497550fe2557d421 Mon Sep 17 00:00:00 2001 +From bc0638f6f627286c7f5f9696782a4b4d0fd96ae6 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 15:06:19 +0100 -Subject: [PATCH 227/704] media: uapi: v4l-ctrls: Add CID base for the +Subject: [PATCH 226/741] media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver We are reserving controls for the new bcm2835-isp driver. @@ -154722,10 +154646,10 @@ index fbe96b80a748..0b8ae128b961 100644 2.18.4 -From 7f9acce3bc5c94a3fa10b26a052e4426de44aed3 Mon Sep 17 00:00:00 2001 +From 45e0ddee70722881e046f82523973c5bb07ce220 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 22 Apr 2020 08:32:32 +0100 -Subject: [PATCH 228/704] staging: vchiq: Load bcm2835_isp driver from vchiq +Subject: [PATCH 227/741] 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 +154691,10 @@ index 8d518bd9a6cd..08083aa61808 100644 2.18.4 -From 896435c392a24f1b0fc593d0909004e8664e3b06 Mon Sep 17 00:00:00 2001 +From 09e0c8bb4dff5d95be4a8bae434b79bd8c15a111 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 4 Apr 2019 13:33:47 +0100 -Subject: [PATCH 229/704] bcm2835-dma: Add proper 40-bit DMA support +Subject: [PATCH 228/741] 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 +155497,10 @@ index 87b5d0bef355..ac0458a8027f 100644 2.18.4 -From 6ec1c024964a723c59df49cfb21fb9bf42d9c455 Mon Sep 17 00:00:00 2001 +From 19af24cc75cc7a9c7318cbcd52d610c8209b55c9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 May 2020 17:56:13 +0100 -Subject: [PATCH 230/704] overlays: Make the i2c-gpio overlay safe again +Subject: [PATCH 229/741] 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 +155535,10 @@ index 2323a61edf07..63231b5d7c0c 100644 2.18.4 -From 1229b08cc39d7bb6c61d766033140d3101e40b59 Mon Sep 17 00:00:00 2001 +From 20f42627fb3fe949e14a375abd1834fb7cb1131c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Apr 2020 11:01:21 +0100 -Subject: [PATCH 231/704] media: i2c: imx219: Declare that the driver can +Subject: [PATCH 230/741] media: i2c: imx219: Declare that the driver can create events The flag V4L2_SUBDEV_FL_HAS_EVENTS is required if the subdev can @@ -155644,10 +155568,10 @@ index 5af610f7fc08..79faa8cce94e 100644 2.18.4 -From 9d33bc1d9d79d59547b0ba9d418c790bb2e0d103 Mon Sep 17 00:00:00 2001 +From d7d931cc2108f95434fa380ffc108389069ddb4d Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 15 Jan 2020 13:40:38 +0000 -Subject: [PATCH 232/704] media: ov5647: Fix return codes from +Subject: [PATCH 231/741] media: ov5647: Fix return codes from ov5647_write/ov5647_read functions. Previously they were returning positive non-zero codes for success, @@ -155724,10 +155648,10 @@ index 07550377be2e..6ecc018ac431 100644 2.18.4 -From 2033b028bb7e8dee3e93eeb3b0a7e0031b55fd83 Mon Sep 17 00:00:00 2001 +From 14256032d99a666b089d3848cc57a1e0e75632a8 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:30:53 +0000 -Subject: [PATCH 233/704] media: ov5647: Add basic support for multiple sensor +Subject: [PATCH 232/741] media: ov5647: Add basic support for multiple sensor modes. Specifically: @@ -156137,10 +156061,10 @@ index 6ecc018ac431..0d84b7640cf3 100644 2.18.4 -From ff6d0fe1c9512088ced4c113b949e00ad470be44 Mon Sep 17 00:00:00 2001 +From 9ecec2bd2694326f65fb7e082ecb45cc213718d5 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:23 +0000 -Subject: [PATCH 234/704] media: ov5647: Add V4L2 controls for analogue gain, +Subject: [PATCH 233/741] media: ov5647: Add V4L2 controls for analogue gain, exposure and AWB Added basic v4l2_ctrl_handler infrastructure (there was none @@ -156420,10 +156344,10 @@ index 0d84b7640cf3..16cfafc9cf9c 100644 2.18.4 -From fc9bc0236d21f5baee2247ac72672a4786b7c251 Mon Sep 17 00:00:00 2001 +From 5e14774897f585d6762687d70b2f7f0b27fe41a3 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:28 +0000 -Subject: [PATCH 235/704] media: ov5647: Add extra 10-bit sensor modes. +Subject: [PATCH 234/741] media: ov5647: Add extra 10-bit sensor modes. The 8-bit VGA mode remains, we add the following 10-bit modes: @@ -156975,10 +156899,10 @@ index 16cfafc9cf9c..fc6c5d9c4532 100644 2.18.4 -From b15c771eb1ddd2b457dee97b05f90a735683f92e Mon Sep 17 00:00:00 2001 +From 91411372498fafa0470eb058c8e1fb65b41ff0b8 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:32 +0000 -Subject: [PATCH 236/704] media: ov5647: change defaults to better match raw +Subject: [PATCH 235/741] media: ov5647: change defaults to better match raw camera applications. Specifically: @@ -157040,10 +156964,10 @@ index fc6c5d9c4532..66b3ee5cc190 100644 2.18.4 -From 11153d713263449ea575780df90fa5919df2826a Mon Sep 17 00:00:00 2001 +From 00029690764ce0107c14c11d19a26a9497c2f395 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 11:46:07 +0100 -Subject: [PATCH 237/704] media: i2c: ov5647: Add support for g_selection to +Subject: [PATCH 236/741] 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 +157176,10 @@ index 66b3ee5cc190..e7c7e3ab4b38 100644 2.18.4 -From 8cd1864e112405a6ab9f270a1dc3cafd71478e61 Mon Sep 17 00:00:00 2001 +From 152aeac317932338484865c9ea3221b0fea26ec4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 11:50:52 +0100 -Subject: [PATCH 238/704] media: i2c: ov5467: Fixup error path to release mutex +Subject: [PATCH 237/741] 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 +157211,10 @@ index e7c7e3ab4b38..09d68b0b4a13 100644 2.18.4 -From cbdf91455c1014b0cf7a36d844a7fdc623794542 Mon Sep 17 00:00:00 2001 +From e97128ade23da7b49a9f04720e2d26ddca82ab8b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 12:25:13 +0100 -Subject: [PATCH 239/704] media: i2c: ov5647: Support V4L2_CID_PIXEL_RATE +Subject: [PATCH 238/741] 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 +157348,10 @@ index 09d68b0b4a13..02d72feb837e 100644 2.18.4 -From 0dae10380e94f299b85f1585af11fe07802e66ae Mon Sep 17 00:00:00 2001 +From ebf7ee37332cb63d2de6b868ae0344da0829dbd2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 17:25:56 +0100 -Subject: [PATCH 240/704] media: i2c: ov5647: Set V4L2_SUBDEV_FL_HAS_EVENTS +Subject: [PATCH 239/741] media: i2c: ov5647: Set V4L2_SUBDEV_FL_HAS_EVENTS flag The ov5647 subdev can generate control events, therefore set @@ -157573,10 +157497,10 @@ index 02d72feb837e..c012e0b3d68b 100644 2.18.4 -From f24a4122db93c24d3acf8f00fb0bf22e7ab3dbe6 Mon Sep 17 00:00:00 2001 +From 3c2824a71d83ec8e3924e53f27b0a5ab50b59798 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 21:39:58 +0100 -Subject: [PATCH 241/704] media: i2c: ov5647: Add support for V4L2_CID_VBLANK +Subject: [PATCH 240/741] media: i2c: ov5647: Add support for V4L2_CID_VBLANK Adds vblank control to allow for frame rate control. @@ -157784,10 +157708,10 @@ index c012e0b3d68b..445a0ce186ec 100644 2.18.4 -From 866325828f3c0660ed718ec11f19e09e02b2d176 Mon Sep 17 00:00:00 2001 +From ef300fe3edf63680fd6afa9581d3080d7eaa377c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 21:47:25 +0100 -Subject: [PATCH 242/704] media: i2c: ov5647: Neither analogue gain nor +Subject: [PATCH 241/741] media: i2c: ov5647: Neither analogue gain nor exposure need EXECUTE_ON_WRITE The controls for analogue gain and exposure were defined with @@ -157848,10 +157772,10 @@ index 445a0ce186ec..49247711221c 100644 2.18.4 -From dcc09d61ede4f392df3788c8de1aa0c2baf971eb Mon Sep 17 00:00:00 2001 +From 906a9ac7c300c9403221458eee3e2d68a6f7c2a9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 22:11:01 +0100 -Subject: [PATCH 243/704] media: i2c: ov5647: Use member names in mode tables +Subject: [PATCH 242/741] 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 +157889,10 @@ index 49247711221c..da4ef30d8f32 100644 2.18.4 -From fec6c15eb21ea364586a6b66051ce192b980e591 Mon Sep 17 00:00:00 2001 +From a66f2e2750a0391f9655d92fb51a7a5c4ed237ef Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 11:03:00 +0100 -Subject: [PATCH 244/704] media: i2c: ov5647: Advertise the correct exposure +Subject: [PATCH 243/741] 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 +158014,10 @@ index da4ef30d8f32..6d84d2785f74 100644 2.18.4 -From f692e881b86e9462bd39957ed229fe772e0aa987 Mon Sep 17 00:00:00 2001 +From 93261e0b97e28a6791ae973aa5dec16ab3d918f4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 16:45:02 +0100 -Subject: [PATCH 245/704] media: bcm2835-unicam: Add support for +Subject: [PATCH 244/741] media: bcm2835-unicam: Add support for VIDIOC_[S|G]_SELECTION Sensors are now reflecting cropping and scaling parameters through @@ -158178,10 +158102,10 @@ index d4684fb2797f..0e1d525a0b35 100644 2.18.4 -From 98a7b2f6bad2b3a52284c8061504204313dc7ae3 Mon Sep 17 00:00:00 2001 +From 421a128bb7784bf03000f0cb823551ac4fc786cb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 22:05:09 +0100 -Subject: [PATCH 246/704] media: bcm2835-unicam: Do not stop streaming in +Subject: [PATCH 245/741] media: bcm2835-unicam: Do not stop streaming in unicam_release unicam_release calls _vb2_fop_release, which will call stop_streaming @@ -158212,10 +158136,10 @@ index 0e1d525a0b35..c7e211d04ed3 100644 2.18.4 -From d8f1a19b57b8ba530358365ee6af5b633abe39df Mon Sep 17 00:00:00 2001 +From bc5493939b0bf1ee3f44f6b8024182216505732d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 09:52:50 +0100 -Subject: [PATCH 247/704] media: bcm2835-unicam: Fix reference counting in +Subject: [PATCH 246/741] media: bcm2835-unicam: Fix reference counting in unicam_open The reference counting of node->open was only incremented after @@ -158256,10 +158180,10 @@ index c7e211d04ed3..a79fc4d99d36 100644 2.18.4 -From 3d1efdecf3d407a521c169bef0154c7db6124620 Mon Sep 17 00:00:00 2001 +From 7239bc0cf0086aa382bd3e67b1e9f3d211d12533 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:28:14 +0200 -Subject: [PATCH 248/704] media: i2c: tc358743: Fix fallthrough warning +Subject: [PATCH 247/741] media: i2c: tc358743: Fix fallthrough warning Signed-off-by: Jacko Dirks --- @@ -158282,10 +158206,10 @@ index 96de74bf6b5c..b69eb9fd02c8 100644 2.18.4 -From c01b72378ae462f2206f2d8fbd3a7bb565f4a4b8 Mon Sep 17 00:00:00 2001 +From b9e27af98032b7d19e5b9010283b9f5e9b5f5773 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 249/704] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 248/741] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -158309,10 +158233,10 @@ index a79fc4d99d36..92e5deb4c6fd 100644 2.18.4 -From feb7cddcf2bdb444f62d8d6c5f93d0ee0301f25f Mon Sep 17 00:00:00 2001 +From 590d69b3555ee9e7adeff0833f5305c45848e09c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 19:45:41 +0100 -Subject: [PATCH 250/704] video: bcm2708_fb: Disable FB if no displays found +Subject: [PATCH 249/741] 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 +158273,10 @@ index 17e9260655e4..dac5c021ce52 100644 2.18.4 -From 847f40aa8d6c3fec3a797bdc75ee463002c291bd Mon Sep 17 00:00:00 2001 +From 3e5b2668cd6e046a0d4dca19068af58ff3a65bdc Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 7 May 2020 15:50:54 +0100 -Subject: [PATCH 251/704] dt-bindings: media: i2c: Add IMX477 CMOS sensor +Subject: [PATCH 250/741] dt-bindings: media: i2c: Add IMX477 CMOS sensor binding Add YAML device tree binding for IMX477 CMOS image sensor. @@ -158486,10 +158410,10 @@ index 000000000000..0994e13e67f6 2.18.4 -From c5cfd4f6c95a5d1d8f23cd237b7bbe3518817343 Mon Sep 17 00:00:00 2001 +From e4493274de6a068dc10f1f1e857d01261fac1b3f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 252/704] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 251/741] 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 +158467,10 @@ index 92e5deb4c6fd..52a534d932bf 100644 2.18.4 -From d2c792ece0ce69b2cc33547f41ceb7e20d4bcaea Mon Sep 17 00:00:00 2001 +From 93e8284d1e732001b47ab3ec8e7e8f46b2461fe3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 May 2020 20:10:15 +0100 -Subject: [PATCH 253/704] sc16is7xx: Fix for hardware flow control +Subject: [PATCH 252/741] sc16is7xx: Fix for hardware flow control The SC16IS7XX hardware flow control is mishandled by the driver in a number of ways: @@ -158619,10 +158543,10 @@ index f64e051c0030..8e3b83fac33c 100644 2.18.4 -From 265d6d13782ecc56a4fcb4a96cd738f68ce9263b Mon Sep 17 00:00:00 2001 +From d13319a1a0390d5a3a6c93102cb0994eb2788e53 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:42:10 +0100 -Subject: [PATCH 254/704] staging: vc04_services: mmal-vchiq: Update parameters +Subject: [PATCH 253/741] staging: vc04_services: mmal-vchiq: Update parameters list Adds in a couple of new MMAL parameter defines. @@ -158653,10 +158577,10 @@ index 27bafc5f01d2..89059bca0b77 100644 2.18.4 -From 7b8fd0f3b639453b0018e302634d87a259f4dd9c Mon Sep 17 00:00:00 2001 +From 47e70fc41e2183d9abb6301ed540dbcd668c61b2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:48:59 +0100 -Subject: [PATCH 255/704] staging:vc04_services: bcm2835-camera: Request +Subject: [PATCH 254/741] 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 +158613,10 @@ index df90c1f9d148..bea37cb163fc 100644 2.18.4 -From 3f118280f54c380f6bbdc342c602281bf9e0e380 Mon Sep 17 00:00:00 2001 +From cba68ba2493b23c037a0cc78080016181f39cece Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Apr 2020 15:23:56 +0100 -Subject: [PATCH 256/704] kbuild: Disable gcc plugins +Subject: [PATCH 255/741] 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 +158647,10 @@ index b79fd0bea838..c3d0c8fedbdd 100755 2.18.4 -From 75da3b40fc2b2601eeacf42ca5c470b2c1a921ac Mon Sep 17 00:00:00 2001 +From 158a17ef61631d9db0b46bafebae7683df116fa2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 257/704] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 256/741] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -158777,10 +158701,10 @@ index 52a534d932bf..b32b2d33a4e2 100644 2.18.4 -From 2303b094a4d5ff25f6f7740745edda0c5e545d61 Mon Sep 17 00:00:00 2001 +From e4e42d49066b6749774aa6c62111902e3dbeb9bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 15:23:32 +0100 -Subject: [PATCH 258/704] zswap: Defer zswap initialisation +Subject: [PATCH 257/741] 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 +158832,10 @@ index fbb782924ccc..0ca7f6a68d20 100644 2.18.4 -From 62d1950c1e980d25a251adef6057ff874fb01317 Mon Sep 17 00:00:00 2001 +From e43f84551439c56cbd44bda5eb3d08bc6ab05a26 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 May 2020 11:35:33 +0100 -Subject: [PATCH 259/704] SQUASH: pinctrl: bcm2835: Set base for bcm2711 GPIO +Subject: [PATCH 258/741] SQUASH: pinctrl: bcm2835: Set base for bcm2711 GPIO to 0 Without this patch GPIOs don't seem to work properly, primarily @@ -158941,10 +158865,10 @@ index bda29f421e78..c5d88157f4b2 100644 2.18.4 -From 67dfe1073c3fc1743364abaf52c1a541cf781c63 Mon Sep 17 00:00:00 2001 +From 1dac2086e31d9c4f6d7417b8f0fe7bd4acdacc67 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 May 2020 16:36:33 +0100 -Subject: [PATCH 260/704] staging: vchiq_arm: Clean up 40-bit DMA support +Subject: [PATCH 259/741] 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 +159047,10 @@ index 08083aa61808..c3ca18e4e85c 100644 2.18.4 -From bb8c79287694a44f764135951ad99ad40c44afa9 Mon Sep 17 00:00:00 2001 +From 49433b38df3ba889d00b998b10feb64440f26647 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 261/704] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 260/741] 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 +159081,10 @@ index b32b2d33a4e2..e76323af0952 100644 2.18.4 -From 3af9c11af4eafe5e022514e358b5957c92204163 Mon Sep 17 00:00:00 2001 +From 05ba89f0be777a64d336052a60db5a3a1b3cd383 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 May 2020 09:46:12 +0100 -Subject: [PATCH 262/704] brcmfmac: BCM43436 needs dedicated firmware +Subject: [PATCH 261/741] brcmfmac: BCM43436 needs dedicated firmware Signed-off-by: Phil Elwell --- @@ -159193,10 +159117,10 @@ index 2b642886430d..dce241d99684 100644 2.18.4 -From fdc8fbb7c3e777d7047fb978f9dc9ca52b110ff2 Mon Sep 17 00:00:00 2001 +From b2a0a49dc175fff7046a071e2114bd192c84a225 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Fri, 5 Jun 2020 09:22:49 +0000 -Subject: [PATCH 263/704] snd_bcm2835: disable HDMI audio when vc4 is used +Subject: [PATCH 262/741] 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 +159156,10 @@ index f926784c622d..31968fec297f 100644 2.18.4 -From 4c6e1cd42ee6b21b6ca445caa979226b3e90b2c1 Mon Sep 17 00:00:00 2001 +From df504992991a9e8c2099a20a66efe8dd2e9532d6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Apr 2018 14:42:27 +0100 -Subject: [PATCH 264/704] gpiolib: Don't prevent IRQ usage of output GPIOs +Subject: [PATCH 263/741] 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 +159212,10 @@ index af5bb8fedfea..2bd26c985246 100644 2.18.4 -From bb281c8a5e08d15fd53972d961112052fb1d034c Mon Sep 17 00:00:00 2001 +From 5515eefd00b8f35a5cfaf8120e4bd98dcbd7b577 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jun 2020 09:57:03 +0100 -Subject: [PATCH 265/704] PCI: brcmstb: Add DT property to control L1SS +Subject: [PATCH 264/741] 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 +159297,10 @@ index 9c3d2982248d..fea54f6fb7b1 100644 2.18.4 -From 27d0fd4a0677ac6378495d59bd9be6b4d4a689d9 Mon Sep 17 00:00:00 2001 +From f7b18b77261d7dd398b56d32600e11d5e520208b Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:24:31 +0200 -Subject: [PATCH 266/704] media: irs1125: Using i2c_transfer for ic2 reads +Subject: [PATCH 265/741] 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 +159368,10 @@ index 25e1dd5a08ef..6680afea5894 100644 2.18.4 -From 63c24427c0e19403360db5859c7b8305f1fe0153 Mon Sep 17 00:00:00 2001 +From be3a6f37106e38934f9e7538aadd1f38bdf9fb8a Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:27:42 +0200 -Subject: [PATCH 267/704] media: irs1125: Refactoring and debug messages +Subject: [PATCH 266/741] media: irs1125: Refactoring and debug messages Changed some variable names to comply with checkpatch --strict mode. Debug messages added. @@ -159573,10 +159497,10 @@ index 6680afea5894..289f0c25b141 100644 2.18.4 -From 169f191f9abbfe48a76fc3121b9e325c66708626 Mon Sep 17 00:00:00 2001 +From 8065731aa49194f2bd640f3b56bcaf7d10c76ad9 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:31:36 +0200 -Subject: [PATCH 268/704] media: irs1125: Atomic access to imager +Subject: [PATCH 267/741] media: irs1125: Atomic access to imager reconfiguration Instead of changing the exposure and framerate settings for all sequences, @@ -159962,10 +159886,10 @@ index dccaca23aa76..96d676123d5e 100644 2.18.4 -From 591f6b0315e9dca2637e6935c8c39a80bf157593 Mon Sep 17 00:00:00 2001 +From 6a9ab9dc96a8e8dd78c67fd351f8c8e319030742 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:33:56 +0200 -Subject: [PATCH 269/704] media: irs1125: Keep HW in sync after imager reset +Subject: [PATCH 268/741] 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 +160073,10 @@ index d59e05004a03..30c3d2640386 100644 2.18.4 -From 4906185ba8f55453da1bb2109363e2577dd91323 Mon Sep 17 00:00:00 2001 +From 2fde3d43c4c9095c6c61cea58cbac7585dd9aa2a Mon Sep 17 00:00:00 2001 From: Maxim Mikityanskiy Date: Sat, 20 Jun 2020 15:40:00 +0300 -Subject: [PATCH 270/704] staging: bcm2835-audio: Add missing MODULE_ALIAS +Subject: [PATCH 269/741] 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 +160109,10 @@ index 31968fec297f..a0cba3823e5e 100644 2.18.4 -From cb0ee7096a263f40f2eda0b71b01419cb327be92 Mon Sep 17 00:00:00 2001 +From e366272b627e52fad82b10927db53b324bb44ddb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2020 11:51:05 +0100 -Subject: [PATCH 271/704] brcmfmac: Prefer a ccode from OTP over nvram file +Subject: [PATCH 270/741] 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 +160246,10 @@ index d821a4758f8c..adfea97c9a43 100644 2.18.4 -From 7613a942ab4d4d5a163ff68fbb6f05b21f3b749b Mon Sep 17 00:00:00 2001 +From 2057bec03cfff5d437ab569f014eca07fc9e03c0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 10:05:57 +0100 -Subject: [PATCH 272/704] drivers: media: Remove the downstream version of +Subject: [PATCH 271/741] drivers: media: Remove the downstream version of bcm2835-unicam About to be replaced by the upstream version. @@ -163513,10 +163437,10 @@ index ae059a171d0f..000000000000 2.18.4 -From 09889a9914daf844bcd4fcf0c149279baf3afe5e Mon Sep 17 00:00:00 2001 +From 3f845a6a5f5b1bcde36634b01793d7145a6e28a8 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 4 May 2020 12:25:41 +0300 -Subject: [PATCH 273/704] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 272/741] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add a driver for the Unicam camera receiver block on BCM283x processors. @@ -166681,10 +166605,10 @@ index 000000000000..ae059a171d0f 2.18.4 -From 66553d989eaebd554e3de2338877ad5fa2532845 Mon Sep 17 00:00:00 2001 +From bbdc60333ca4149b7954d5a4a81930ec435613da Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 14:32:51 +0100 -Subject: [PATCH 274/704] media: bcm2835-unicam: Add support for +Subject: [PATCH 273/741] 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 +166667,10 @@ index 2e9387cbc1e0..9adfb2d217af 100644 2.18.4 -From b3e38caf2a97b000da995d0f06127cbf92fb6530 Mon Sep 17 00:00:00 2001 +From 2e694a946e30b97eda9fe2630f5546abb9c643ae Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 15:53:44 +0100 -Subject: [PATCH 275/704] media: bcm2835-unicam: Avoid gcc warning over {0} on +Subject: [PATCH 274/741] media: bcm2835-unicam: Avoid gcc warning over {0} on endpoint Older gcc versions object to = { 0 } initialisation if the first @@ -166776,10 +166700,10 @@ index 9adfb2d217af..a65e1da55142 100644 2.18.4 -From 5e69abd1cac5de7adf80ccd8d5bf50a35bc4210c Mon Sep 17 00:00:00 2001 +From 134f8fae681ce70d7672e5362116b59d7968155a Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 12 Jun 2020 15:53:46 +0200 -Subject: [PATCH 276/704] media: i2c: imx290: set the format before +Subject: [PATCH 275/741] media: i2c: imx290: set the format before VIDIOC_SUBDEV_G_FMT is called Commit d46cfdc86c30d5ec768924f0b1e2683c8d20b671 upstream. @@ -166822,10 +166746,10 @@ index adcddf3204f7..ad2318390678 100644 2.18.4 -From a54d3ede8998267e0021dc76cb688dcc6dba29c6 Mon Sep 17 00:00:00 2001 +From 9f8707e575a8d8d7de715a8fdc9bc7da990f38e0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 08:28:51 +0100 -Subject: [PATCH 277/704] media: i2c: imx290: Add support for 74.25MHz clock +Subject: [PATCH 276/741] 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 +167016,10 @@ index ad2318390678..fe1078f7721e 100644 2.18.4 -From 198beba20301c259239804bd296a2020097570ad Mon Sep 17 00:00:00 2001 +From b52a881ed74263de7f857a2d3b5fc77089fae414 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 13:41:43 +0100 -Subject: [PATCH 278/704] media: i2c: imx290: Correct range for V4L2_CID_GAIN +Subject: [PATCH 277/741] 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 +167048,10 @@ index fe1078f7721e..c193b7b8d8e5 100644 2.18.4 -From f13e35f923a94a08f382a64f5608e77e53be7ef2 Mon Sep 17 00:00:00 2001 +From fd2b4ec79c73476a2bf47d83e22c841829d9b8f4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 14:36:40 +0100 -Subject: [PATCH 279/704] media: i2c: imx290: Convert HMAX setting into +Subject: [PATCH 278/741] 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 +167213,10 @@ index c193b7b8d8e5..b12213f6355b 100644 2.18.4 -From 8387747893930cb5c3f960d14e5ee5385b04827f Mon Sep 17 00:00:00 2001 +From dc17118ffe0a41f400b073152c667981f7a2f744 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:09:12 +0100 -Subject: [PATCH 280/704] media: i2c: imx290: Add support for V4L2_CID_VBLANK +Subject: [PATCH 279/741] 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 +167360,10 @@ index b12213f6355b..357614af64f7 100644 2.18.4 -From fb046d26ecadb4ddad5acd2f993e4919139bca9d Mon Sep 17 00:00:00 2001 +From 59208d9e5cec02322462e6ee9c63ef9206c6c7c0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:19:13 +0100 -Subject: [PATCH 281/704] media: i2c: imx290: Add exposure control to the +Subject: [PATCH 280/741] media: i2c: imx290: Add exposure control to the driver. Adds support for V4L2_CID_EXPOSURE so that userspace can control @@ -167535,10 +167459,10 @@ index 357614af64f7..2eae36b0ad5c 100644 2.18.4 -From abd36469a8b4337b523b763721072678f922075c Mon Sep 17 00:00:00 2001 +From 6dc1d7e70c8e260cfb1730a65dc119504c4dec20 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:34:16 +0100 -Subject: [PATCH 282/704] media: i2c: imx290: Add H and V flip controls +Subject: [PATCH 281/741] 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 +167548,10 @@ index 2eae36b0ad5c..3d6734da7d64 100644 2.18.4 -From ed394b0ceb5e52a1a79896b8fed409fff26937a9 Mon Sep 17 00:00:00 2001 +From 93555ab766576abaee5baec751ea6e04c30f5f44 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 16:52:14 +0100 -Subject: [PATCH 283/704] media: dt-bindings: media: i2c: Add mono version to +Subject: [PATCH 282/741] media: dt-bindings: media: i2c: Add mono version to IMX290 bindings The IMX290 module is available as either monochrome or colour and @@ -167666,10 +167590,10 @@ index a3cc21410f7c..294e63650d9e 100644 2.18.4 -From 2704508dc52bbde10357862d7160fe92148bf636 Mon Sep 17 00:00:00 2001 +From 9d47aac7597b268f30871e3649eeceade4296261 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:03:11 +0100 -Subject: [PATCH 284/704] media : i2c: imx290: Add support for the mono sensor +Subject: [PATCH 283/741] media : i2c: imx290: Add support for the mono sensor variant. The IMX290 module is available as either mono or colour (Bayer). @@ -167857,10 +167781,10 @@ index 3d6734da7d64..09df70849928 100644 2.18.4 -From e77ee3634b06d9357009e5cf40545ddf836678d3 Mon Sep 17 00:00:00 2001 +From ba7b4a37e96b315f6e79e8b146d5de23fd2e9573 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 18:11:49 +0100 -Subject: [PATCH 285/704] media: i2c: imx290: Switch set_hmax to use +Subject: [PATCH 284/741] 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 +167830,10 @@ index 09df70849928..b824dfe29bbd 100644 2.18.4 -From c92bc2223d2dec4f1ec6950d2f75941c2bbb2277 Mon Sep 17 00:00:00 2001 +From c72f50e0f22b6adff959c974b4d8ab08d5eafe66 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 2 Jul 2020 13:53:20 +0100 -Subject: [PATCH 286/704] serial: 8250: bcm2835aux - defer if clock is zero +Subject: [PATCH 285/741] serial: 8250: bcm2835aux - defer if clock is zero See: https://github.com/raspberrypi/linux/issues/3700 @@ -167940,10 +167864,10 @@ index fd95860cd661..fc36e5963e30 100644 2.18.4 -From a900b4e076edfc9b9df896fb6e8ad72530c9a274 Mon Sep 17 00:00:00 2001 +From 99af7b3d2694530fbea432915d67c89e2955c1a8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 May 2020 16:59:03 +0100 -Subject: [PATCH 287/704] media: Add a pixel format for MIPI packed 12bit luma +Subject: [PATCH 286/741] media: Add a pixel format for MIPI packed 12bit luma only. This is the format used by monochrome 12bit image sensors. @@ -168048,10 +167972,10 @@ index e9fbb04a3519..e72c28ea0235 100644 2.18.4 -From 1144b977df91aca6b6beb8c5094082d43d2b22d2 Mon Sep 17 00:00:00 2001 +From af5d368f8d82a6d2857d4e40f887359c22f19dd7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:51:03 +0100 -Subject: [PATCH 288/704] media: Add a pixel format for MIPI packed 14bit luma +Subject: [PATCH 287/741] media: Add a pixel format for MIPI packed 14bit luma only. This is the format used by monochrome 14bit image sensors. @@ -168165,10 +168089,10 @@ index e72c28ea0235..53d526dbe004 100644 2.18.4 -From 01f972b2d07fba00d04df412f219aad9ad10f4da Mon Sep 17 00:00:00 2001 +From 659c4ebeb5113dd7398510524d8dde7c043ba642 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:53:32 +0100 -Subject: [PATCH 289/704] media: bcm2835-unicam: Add support for 12bit mono +Subject: [PATCH 288/741] media: bcm2835-unicam: Add support for 12bit mono packed format Now that V4L2_PIX_FMT_Y12P is defined, allow passing raw 12bit @@ -168196,10 +168120,10 @@ index a65e1da55142..5edb58cc9f03 100644 2.18.4 -From a674e2f14b25f3833506ad8ee7f5c879e138a616 Mon Sep 17 00:00:00 2001 +From 734584b949daea12d9005f73c0c927e3a0ed9d8b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 18:03:47 +0100 -Subject: [PATCH 290/704] media: bcm2835-unicam: Add support for 14bit mono +Subject: [PATCH 289/741] media: bcm2835-unicam: Add support for 14bit mono sources Now that V4L2_PIX_FMT_Y14 and V4L2_PIX_FMT_Y14P are defined, @@ -168231,10 +168155,10 @@ index 5edb58cc9f03..778153943160 100644 2.18.4 -From ecc5b0104593c03cf02c8924e8322c8892011f0b Mon Sep 17 00:00:00 2001 +From ea6e36141e5fba74d1ef713d8da9c70f2115e17e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 Jul 2020 10:57:57 +0100 -Subject: [PATCH 291/704] media: bcm2835-unicam: Add support for unpacked 14bit +Subject: [PATCH 290/741] media: bcm2835-unicam: Add support for unpacked 14bit Bayer formats Now that the 14bit non-packed Bayer formats are defined, add them @@ -168279,10 +168203,10 @@ index 778153943160..c97ecfc0e55b 100644 2.18.4 -From ecde8bacc0854084021fc34e81f96a3042e9a506 Mon Sep 17 00:00:00 2001 +From 74839c28540ef21eb2450a447f17e7f5c0200ea4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Jul 2020 20:28:27 +0100 -Subject: [PATCH 292/704] bcm2835-dma: Add NO_WAIT_RESP flag +Subject: [PATCH 291/741] 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 +168263,10 @@ index ac0458a8027f..84b1009da23b 100644 2.18.4 -From 95b27ade878967b35f1170ca3f48b9edc813f7dd Mon Sep 17 00:00:00 2001 +From e84ea38d3332a081ddbe34caab2e094ab1cc13da Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Fri, 17 May 2019 18:23:03 +0800 -Subject: [PATCH 293/704] media: i2c: add ov9281 driver. +Subject: [PATCH 292/741] media: i2c: add ov9281 driver. Change-Id: I7b77250bbc56d2f861450cf77271ad15f9b88ab1 Signed-off-by: Zefa Chen @@ -169568,10 +169492,10 @@ index 000000000000..4a6324a3e5da 2.18.4 -From 5d628caf230602d396c3baa82f148e5cc53641e8 Mon Sep 17 00:00:00 2001 +From 38c74880caff7f87046b76808e554681b708e019 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:47:09 +0100 -Subject: [PATCH 294/704] media: i2c: ov9281: fix mclk issue when probe +Subject: [PATCH 293/741] media: i2c: ov9281: fix mclk issue when probe multiple camera. Takes the ov9281 part only from the Rockchip's patch. @@ -169634,10 +169558,10 @@ index 4a6324a3e5da..0d6759942f79 100644 2.18.4 -From 91ac76905579b089cbe3dbc6fcb33f734918b945 Mon Sep 17 00:00:00 2001 +From 39c5ca38d703859d8494be9f197485fdda323e30 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:51:50 +0100 -Subject: [PATCH 295/704] media: i2c: ov9281: add enum_frame_interval function +Subject: [PATCH 294/741] 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 +169661,10 @@ index 0d6759942f79..273aa904683c 100644 2.18.4 -From 7dc7eb618a4896bb11f7a2952675bfcd13ae1c0e Mon Sep 17 00:00:00 2001 +From a38f7fa63bc0e3c3ced2b8394085e8e8c2f21120 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 16:12:33 +0100 -Subject: [PATCH 296/704] media: i2c: ov9281: Fixup for recent kernel releases, +Subject: [PATCH 295/741] 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 +170344,10 @@ index 273aa904683c..7b9bea476cfb 100644 2.18.4 -From b14ff3e30e7d9345ffde48d1449b4d99d265a383 Mon Sep 17 00:00:00 2001 +From 2f4a12577e1ce3c7b7b5e17cd8b29a2792be3fff Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 6 Jul 2020 17:51:32 +0100 -Subject: [PATCH 297/704] media: i2c: ov9281: Read chip ID via 2 reads +Subject: [PATCH 296/741] 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 +170392,10 @@ index 7b9bea476cfb..bb8efc3d3cba 100644 2.18.4 -From 066c98a78b1ac62f24dbd63da950e25b29717eef Mon Sep 17 00:00:00 2001 +From cd207dc30ab274062f4e52c643b55912cf8096eb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 10:31:53 +0100 -Subject: [PATCH 298/704] media: i2c: imx290: Explicitly set v&h blank on mode +Subject: [PATCH 297/741] media: i2c: imx290: Explicitly set v&h blank on mode change __v4l2_ctrl_modify_range only updates the current value should @@ -170520,10 +170444,10 @@ index b824dfe29bbd..b28834823f86 100644 2.18.4 -From 5c366ed779956c1ad5604bf63ca0de0eb5882f3b Mon Sep 17 00:00:00 2001 +From 5555f1b905647821dd6babb92f7939d9fc98a67a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:23:48 +0100 -Subject: [PATCH 299/704] media: i2c: imx290: Add support for g_selection to +Subject: [PATCH 298/741] media: i2c: imx290: Add support for g_selection to report cropping Userspace needs to know the cropping arrangements for each mode, @@ -170682,10 +170606,10 @@ index b28834823f86..24bf40d729b7 100644 2.18.4 -From a09768b45759802630c1bcc7ba9d02815693bfb4 Mon Sep 17 00:00:00 2001 +From 7803a0ae2cdcfed499befce8d212c7bda6c74f83 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:51:26 +0100 -Subject: [PATCH 300/704] media: i2c: imx290: Set the colorspace fields in the +Subject: [PATCH 299/741] media: i2c: imx290: Set the colorspace fields in the format The colorspace fields were left untouched in imx290_set_fmt @@ -170719,10 +170643,10 @@ index 24bf40d729b7..2e646fb01856 100644 2.18.4 -From 825601c7ee05dc1ba0c4ce1c2ec23f7d7e789718 Mon Sep 17 00:00:00 2001 +From 0123c1cd3defcccfb42fab750fb64051272beea1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:23:40 +0100 -Subject: [PATCH 301/704] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE +Subject: [PATCH 300/741] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE in the caps v4l2-compliance throws a failure if the device doesn't advertise @@ -170753,10 +170677,10 @@ index c97ecfc0e55b..20b46a9e04c3 100644 2.18.4 -From a72f0bd856063ad3f94c59a2b54f8d41eef6224f Mon Sep 17 00:00:00 2001 +From 81d6d7ef8242a9229f070e6b506b1506f48d3dda Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:52:43 +0100 -Subject: [PATCH 302/704] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE +Subject: [PATCH 301/741] 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 +170719,10 @@ index 20b46a9e04c3..de288f87ff2f 100644 2.18.4 -From c3705aa48c8f5fc71fbbd734f02191120b1c3f18 Mon Sep 17 00:00:00 2001 +From 372cfb06e5fae4b345cf4c53a1b24c081eebffef Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:02:22 +0100 -Subject: [PATCH 303/704] media: bcm2835: unicam: Set VPU min clock freq to +Subject: [PATCH 302/741] 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 +170852,10 @@ index de288f87ff2f..295db7564614 100644 2.18.4 -From 05b0ec30f4cd19ba507bb17c7497f279136fa81e Mon Sep 17 00:00:00 2001 +From 1f265aa5bb0ca9fd55dfe4ef47a908bf7e4154b6 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:06:27 +0100 -Subject: [PATCH 304/704] dt-bindings: bcm2835-unicam: Update documentation +Subject: [PATCH 303/741] dt-bindings: bcm2835-unicam: Update documentation with new clock params Update the documentation to reflect the new "VPU" clock needed @@ -170972,10 +170896,10 @@ index 7714fb374b34..164d0377dcd2 100644 2.18.4 -From 830efdf78d7c5f1f3517aa12509ee0228c4612b7 Mon Sep 17 00:00:00 2001 +From af8395c1059801ef6ec115fd327e6940d38d91d8 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 305/704] media: i2c: ov5647: Parse and register properties +Subject: [PATCH 304/741] media: i2c: ov5647: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -171027,10 +170951,10 @@ index 6d84d2785f74..86a821a172b3 100644 2.18.4 -From 491bb0b0bae68952e5405412052524c31926039d Mon Sep 17 00:00:00 2001 +From 88a1dfb744915881d2a48319156b4c282913eba4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Jul 2020 10:33:19 +0100 -Subject: [PATCH 306/704] leds: Add the actpwr trigger +Subject: [PATCH 305/741] 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 +171197,10 @@ index 000000000000..1a52107ceb03 2.18.4 -From 5cd450f5902a9a3b7ec3aae55393985114e2f3c1 Mon Sep 17 00:00:00 2001 +From f0ff73286829e196cef0d749e5b7404bcc2ccd7a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Jul 2020 17:34:09 +0100 -Subject: [PATCH 307/704] staging: vchiq_arm: children inherit DMA config +Subject: [PATCH 306/741] 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 +171239,10 @@ index c3ca18e4e85c..a936102dbc34 100644 2.18.4 -From 3dc57bad718480163209832f07e3739041947bc6 Mon Sep 17 00:00:00 2001 +From 05ced9099ee6028ca77f5042c1ca15c74eebe29d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Jul 2020 17:59:31 +0100 -Subject: [PATCH 308/704] bcm2835-dma: Advertise the full DMA range +Subject: [PATCH 307/741] 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 +171322,10 @@ index 84b1009da23b..d1127b9058a4 100644 2.18.4 -From ceae4575e94f32bd2df9b0294d68f52be8c65350 Mon Sep 17 00:00:00 2001 +From ad34b81b7f010bf765545005b65c2c420c4a7caa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jul 2020 13:47:55 +0100 -Subject: [PATCH 309/704] ARM: proc-v7: Force misalignment of early stmia +Subject: [PATCH 308/741] 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 +171388,10 @@ index 28c9d32fa99a..3e77e8982df3 100644 2.18.4 -From 2920968c32ccad345b74a85c95ba42d3a3bf5736 Mon Sep 17 00:00:00 2001 +From c69e20cb99d90ce457cc3440cd8ddd58b16da8bd Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:02:22 +0300 -Subject: [PATCH 310/704] media: bcm2835: unicam: Select MEDIA_CONTROLLER and +Subject: [PATCH 309/741] media: bcm2835: unicam: Select MEDIA_CONTROLLER and VIDEO_V4L2_SUBDEV_API That is what almost all other drivers appear to be doing. @@ -171497,10 +171421,10 @@ index ec46e3ef053c..7d5a0e6ba762 100644 2.18.4 -From 5f017aed6d0774a596a62e876821920dd0ecf587 Mon Sep 17 00:00:00 2001 +From d48d06bb63bf46465dc6379461ac303e617be2c4 Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:05:53 +0300 -Subject: [PATCH 311/704] staging: media: rpivid: Select MEDIA_CONTROLLER and +Subject: [PATCH 310/741] 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 +171459,10 @@ index 58b470c80db1..304c3edf0e71 100644 2.18.4 -From 2388fd8b6783730768ade030f57a39522a589027 Mon Sep 17 00:00:00 2001 +From be3d35faa8746ea8fe365589b6fa4872c1c9d291 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 27 Aug 2020 16:30:26 +0100 -Subject: [PATCH 312/704] media: bcm2835-unicam: Drop WARN on uing direct cache +Subject: [PATCH 311/741] 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 +171499,10 @@ index 295db7564614..35ddb97f7f75 100644 2.18.4 -From a1f00cdfa8ce44378681ee566cddf16ebfda1e6b Mon Sep 17 00:00:00 2001 +From 0325a3b98cd15a875c109a7a3e11341594a56ae1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Jul 2020 12:40:50 +0100 -Subject: [PATCH 313/704] media: i2c: tc358743: Only allow supported pixel fmts +Subject: [PATCH 312/741] media: i2c: tc358743: Only allow supported pixel fmts in set_fmt Fix commit "media: tc358743: Return an appropriate colorspace from @@ -171611,10 +171535,10 @@ index b69eb9fd02c8..3c62eb3b3a1d 100644 2.18.4 -From 50c99da853e01b8f10c903e29daf1d801a78e590 Mon Sep 17 00:00:00 2001 +From 24a660d0f3f7bec059e259ee9cc4f264a6c82370 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 18:29:10 +0100 -Subject: [PATCH 314/704] media: i2c: ov9281: Add support for 8 bit readout +Subject: [PATCH 313/741] 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 +171729,10 @@ index bb8efc3d3cba..9610c24ceff1 100644 2.18.4 -From 4a701556c72ed10b2a16df672ad106cfd714b6f7 Mon Sep 17 00:00:00 2001 +From 7c0bbc136da1c8dbe10ddb9f54b48debfb3e1cf7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 3 Sep 2020 14:02:21 +0100 -Subject: [PATCH 315/704] bcm2835-mmc: uninitialized_var is no more +Subject: [PATCH 314/741] bcm2835-mmc: uninitialized_var is no more --- drivers/mmc/host/bcm2835-mmc.c | 2 +- @@ -171831,10 +171755,10 @@ index caf46be8eb0d..cdc1318e5936 100644 2.18.4 -From 07fe5e99b661b423f48d30df8842b318bab834be Mon Sep 17 00:00:00 2001 +From 9fe716a5789121b8ce07919aa8337cc353e1a678 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 3 Sep 2020 14:02:41 +0100 -Subject: [PATCH 316/704] dwc_otg: whitelist_table is now productlist_table +Subject: [PATCH 315/741] dwc_otg: whitelist_table is now productlist_table --- drivers/usb/core/otg_productlist.h | 2 +- @@ -171857,10 +171781,10 @@ index 1839e169469b..b16e528859a8 100644 2.18.4 -From 2cff5a1b846afdb02cfb49689374f65aa4864513 Mon Sep 17 00:00:00 2001 +From 255f0778d5d0bc497c1ea819a350e869636b12cd Mon Sep 17 00:00:00 2001 From: detule Date: Tue, 2 Oct 2018 04:10:08 -0400 -Subject: [PATCH 317/704] vchiq_2835_arm: Implement a DMA pool for small bulk +Subject: [PATCH 316/741] 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 +171909,10 @@ index 76179739de12..2a1d8d6541b2 100644 2.18.4 -From cbacdcba9126a1f528d9e9954328cc91a820c625 Mon Sep 17 00:00:00 2001 +From 68867cffaec8afd1be8650a992509e2001fa7ec9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Sep 2020 17:09:07 +0100 -Subject: [PATCH 318/704] include/firmware: Add enum for +Subject: [PATCH 317/741] include/firmware: Add enum for RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_ID Used by audio and FKMS. @@ -172014,10 +171938,10 @@ index d0c827064999..d0ee609a9043 100644 2.18.4 -From 09da4a4d2befeb5bc83a07524b94074a260e3a26 Mon Sep 17 00:00:00 2001 +From 1432ff9e7332cd72346f7687bc6190d9012d781f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Apr 2020 19:07:50 +0100 -Subject: [PATCH 319/704] vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC +Subject: [PATCH 318/741] vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC to work Signed-off-by: popcornmix @@ -172027,10 +171951,10 @@ Signed-off-by: popcornmix 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index af5f01eff872..6095a005b68c 100644 +index 88a8cb840cd5..d952ef9f7108 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -643,23 +643,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) +@@ -646,23 +646,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) return; } @@ -172055,7 +171979,7 @@ index af5f01eff872..6095a005b68c 100644 ret = clk_set_min_rate(vc4_hdmi->hsm_clock, hsm_rate); if (ret) { DRM_ERROR("Failed to set HSM clock rate: %d\n", ret); -@@ -856,6 +840,39 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { +@@ -850,6 +834,39 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { .enable = vc4_hdmi_encoder_enable, }; @@ -172095,7 +172019,7 @@ index af5f01eff872..6095a005b68c 100644 static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) { int i; -@@ -1897,6 +1914,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -1914,6 +1931,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { .phy_disable = vc4_hdmi_phy_disable, .phy_rng_enable = vc4_hdmi_phy_rng_enable, .phy_rng_disable = vc4_hdmi_phy_rng_disable, @@ -172103,7 +172027,7 @@ index af5f01eff872..6095a005b68c 100644 .channel_map = vc4_hdmi_channel_map, }; -@@ -1923,6 +1941,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -1940,6 +1958,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .phy_disable = vc5_hdmi_phy_disable, .phy_rng_enable = vc5_hdmi_phy_rng_enable, .phy_rng_disable = vc5_hdmi_phy_rng_disable, @@ -172111,7 +172035,7 @@ index af5f01eff872..6095a005b68c 100644 .channel_map = vc5_hdmi_channel_map, }; -@@ -1949,6 +1968,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -1966,6 +1985,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { .phy_disable = vc5_hdmi_phy_disable, .phy_rng_enable = vc5_hdmi_phy_rng_enable, .phy_rng_disable = vc5_hdmi_phy_rng_disable, @@ -172137,10 +172061,10 @@ index 0526a9cf608a..32d09132fb44 100644 2.18.4 -From 71a2b1a61c9cbebaae4de861df8dec5d716d9214 Mon Sep 17 00:00:00 2001 +From 61b4db6a3c425a25318304ecc063f5d19e6c218d Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:07 +0100 -Subject: [PATCH 320/704] vc4_hdmi_regs: Add Intr2 register block +Subject: [PATCH 319/741] vc4_hdmi_regs: Add Intr2 register block Signed-off-by: Dom Cobley --- @@ -172150,10 +172074,10 @@ Signed-off-by: Dom Cobley 3 files changed, 27 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 6095a005b68c..7edb44947b28 100644 +index d952ef9f7108..dc4520a91eb9 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1690,6 +1690,14 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -1684,6 +1684,14 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) if (!vc4_hdmi->dvp_regs) return -ENOMEM; @@ -172241,10 +172165,10 @@ index 6c0dfbbe1a7e..10dd6097f2b5 100644 2.18.4 -From 43d541842230759bf5abeb1a69f34ec3068ae8ff Mon Sep 17 00:00:00 2001 +From d9cc037a094599ab6b1540e2605afc32ad7f9edf Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:08 +0100 -Subject: [PATCH 321/704] vc4_hdmi_regs: Make interrupt mask variant specific +Subject: [PATCH 320/741] vc4_hdmi_regs: Make interrupt mask variant specific Signed-off-by: Dom Cobley --- @@ -172254,10 +172178,10 @@ Signed-off-by: Dom Cobley 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 7edb44947b28..727619248923 100644 +index dc4520a91eb9..6530e90bd983 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1393,7 +1393,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1387,7 +1387,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) u32 stat = HDMI_READ(HDMI_CEC_CPU_STATUS); u32 cntrl1, cntrl5; @@ -172266,7 +172190,7 @@ index 7edb44947b28..727619248923 100644 return IRQ_NONE; vc4_hdmi->cec_rx_msg.len = 0; cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1); -@@ -1409,7 +1409,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1403,7 +1403,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) cntrl1 &= ~VC4_HDMI_CEC_START_XMIT_BEGIN; } HDMI_WRITE(HDMI_CEC_CNTRL_1, cntrl1); @@ -172275,7 +172199,7 @@ index 7edb44947b28..727619248923 100644 return IRQ_WAKE_THREAD; } -@@ -1448,9 +1448,9 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -1442,9 +1442,9 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) ((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) | ((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT)); @@ -172287,7 +172211,7 @@ index 7edb44947b28..727619248923 100644 HDMI_WRITE(HDMI_CEC_CNTRL_5, val | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); } -@@ -1924,6 +1924,8 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -1941,6 +1941,8 @@ static const struct vc4_hdmi_variant bcm2835_variant = { .phy_rng_disable = vc4_hdmi_phy_rng_disable, .calc_hsm_clock = vc4_hdmi_calc_hsm_clock, .channel_map = vc4_hdmi_channel_map, @@ -172296,7 +172220,7 @@ index 7edb44947b28..727619248923 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { -@@ -1951,6 +1953,8 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -1968,6 +1970,8 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .phy_rng_disable = vc5_hdmi_phy_rng_disable, .calc_hsm_clock = vc5_hdmi_calc_hsm_clock, .channel_map = vc5_hdmi_channel_map, @@ -172305,7 +172229,7 @@ index 7edb44947b28..727619248923 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { -@@ -1978,6 +1982,8 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -1995,6 +1999,8 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { .phy_rng_disable = vc5_hdmi_phy_rng_disable, .calc_hsm_clock = vc5_hdmi_calc_hsm_clock, .channel_map = vc5_hdmi_channel_map, @@ -172352,10 +172276,10 @@ index be2c32a519b3..39630e9de1b0 100644 2.18.4 -From 2909cf9b7b9ccf0adfbec6f63c8ab7756935cda4 Mon Sep 17 00:00:00 2001 +From c2f78a044f793ae7a9481826ec08148fb93d70f1 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:08 +0100 -Subject: [PATCH 322/704] vc4_hdmi: Make irq shared +Subject: [PATCH 321/741] vc4_hdmi: Make irq shared Signed-off-by: Dom Cobley --- @@ -172363,10 +172287,10 @@ Signed-off-by: Dom Cobley 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 727619248923..e8a20404fe9b 100644 +index 6530e90bd983..5a39fdc3f4af 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1536,7 +1536,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -1530,7 +1530,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) ret = devm_request_threaded_irq(&pdev->dev, platform_get_irq(pdev, 0), vc4_cec_irq_handler, @@ -172380,10 +172304,10 @@ index 727619248923..e8a20404fe9b 100644 2.18.4 -From 70710a3ece7cbea1344460860cd9f09c7a13d91a Mon Sep 17 00:00:00 2001 +From 3922229fecfa51c898d60f40c4be0200ccd1abf6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 14:54:28 +0100 -Subject: [PATCH 323/704] drm/vc4: Adopt the dma configuration from the HVS or +Subject: [PATCH 322/741] 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 +172364,10 @@ index 839610f8092a..de02c57ed276 100644 2.18.4 -From 80e969cfa45754de33b7ae272bebde0ccf24ca73 Mon Sep 17 00:00:00 2001 +From a8ee86c12c1d8f9f51fe50ec5574f929f2099733 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 23 Jun 2020 18:37:01 +0100 -Subject: [PATCH 324/704] vc4_hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET +Subject: [PATCH 323/741] vc4_hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET Symptom is random switching of speakers when using multichannel. @@ -172470,10 +172394,10 @@ Signed-off-by: Dom Cobley 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index e8a20404fe9b..dd7c15bcce6d 100644 +index 5a39fdc3f4af..a330bb827e89 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1097,7 +1097,9 @@ static int vc4_hdmi_audio_trigger(struct snd_pcm_substream *substream, int cmd, +@@ -1091,7 +1091,9 @@ static int vc4_hdmi_audio_trigger(struct snd_pcm_substream *substream, int cmd, HDMI_WRITE(HDMI_MAI_CTL, VC4_SET_FIELD(vc4_hdmi->audio.channels, VC4_HD_MAI_CTL_CHNUM) | @@ -172488,10 +172412,10 @@ index e8a20404fe9b..dd7c15bcce6d 100644 2.18.4 -From ea6b362ba6bcbdece5c85877bb6443a51ee76dbd Mon Sep 17 00:00:00 2001 +From f84db03ac0c33e03dda0605ce80a31431d95a8d4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Mar 2020 22:21:15 +0000 -Subject: [PATCH 325/704] vc4_hdmi: Set HDMI_MAI_FMT +Subject: [PATCH 324/741] vc4_hdmi: Set HDMI_MAI_FMT The hardware uses this for generating the right audio data island packets when using formats other than PCM @@ -172503,10 +172427,10 @@ Signed-off-by: Dom Cobley 2 files changed, 78 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index dd7c15bcce6d..dcd6d09b7b9e 100644 +index a330bb827e89..93074657730a 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1011,6 +1011,44 @@ static void vc4_hdmi_audio_shutdown(struct snd_pcm_substream *substream, +@@ -1005,6 +1005,44 @@ static void vc4_hdmi_audio_shutdown(struct snd_pcm_substream *substream, vc4_hdmi->audio.substream = NULL; } @@ -172551,7 +172475,7 @@ index dd7c15bcce6d..dcd6d09b7b9e 100644 /* HDMI audio codec callbacks */ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, -@@ -1021,6 +1059,8 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, +@@ -1015,6 +1053,8 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, struct device *dev = &vc4_hdmi->pdev->dev; u32 audio_packet_config, channel_mask; u32 channel_map; @@ -172560,7 +172484,7 @@ index dd7c15bcce6d..dcd6d09b7b9e 100644 if (substream != vc4_hdmi->audio.substream) return -EINVAL; -@@ -1041,6 +1081,14 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, +@@ -1035,6 +1075,14 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, vc4_hdmi_audio_set_mai_clock(vc4_hdmi); @@ -172620,10 +172544,10 @@ index 39630e9de1b0..c10402e103d6 100644 2.18.4 -From 4345f52c72268b44e8235fb228716896d80d3038 Mon Sep 17 00:00:00 2001 +From d2b486eb07ee399d4d272fac4a81bf2efaf40d7b Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 17 Mar 2020 12:12:22 +0100 -Subject: [PATCH 326/704] drm/vc4: add iec958 controls to vc4_hdmi +Subject: [PATCH 325/741] 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 @@ -172639,7 +172563,7 @@ Signed-off-by: Matthias Reichl 2 files changed, 62 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index dcd6d09b7b9e..866f9e083ae4 100644 +index 93074657730a..829ba0f35f98 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -44,6 +44,7 @@ @@ -172650,7 +172574,7 @@ index dcd6d09b7b9e..866f9e083ae4 100644 #include #include #include -@@ -1202,6 +1203,47 @@ static int vc4_hdmi_audio_eld_ctl_get(struct snd_kcontrol *kcontrol, +@@ -1196,6 +1197,47 @@ static int vc4_hdmi_audio_eld_ctl_get(struct snd_kcontrol *kcontrol, return 0; } @@ -172698,7 +172622,7 @@ index dcd6d09b7b9e..866f9e083ae4 100644 static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { { .access = SNDRV_CTL_ELEM_ACCESS_READ | -@@ -1211,6 +1253,19 @@ static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { +@@ -1205,6 +1247,19 @@ static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { .info = vc4_hdmi_audio_eld_ctl_info, .get = vc4_hdmi_audio_eld_ctl_get, }, @@ -172718,7 +172642,7 @@ index dcd6d09b7b9e..866f9e083ae4 100644 }; static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = { -@@ -1331,6 +1386,11 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) +@@ -1325,6 +1380,11 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; vc4_hdmi->audio.dma_data.maxburst = 2; @@ -172747,10 +172671,10 @@ index 16cc0e9abc36..c75d4c9e1515 100644 2.18.4 -From 27d232cf3ca4ac3cf1db331c5c14abced38846a8 Mon Sep 17 00:00:00 2001 +From f4e149f90eeb48aa02758b46edc35aef085cc20e Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 19 Mar 2020 20:00:35 +0100 -Subject: [PATCH 327/704] drm/vc4: move setup from hw_params to prepare +Subject: [PATCH 326/741] 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 @@ -172762,10 +172686,10 @@ Signed-off-by: Matthias Reichl 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 866f9e083ae4..b0780168e574 100644 +index 829ba0f35f98..844e38d4efe4 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1051,9 +1051,8 @@ static int sample_rate_to_mai_fmt(int samplerate) +@@ -1045,9 +1045,8 @@ static int sample_rate_to_mai_fmt(int samplerate) } /* HDMI audio codec callbacks */ @@ -172777,7 +172701,7 @@ index 866f9e083ae4..b0780168e574 100644 { struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai); struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; -@@ -1066,12 +1065,15 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, +@@ -1060,12 +1059,15 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, if (substream != vc4_hdmi->audio.substream) return -EINVAL; @@ -172798,7 +172722,7 @@ index 866f9e083ae4..b0780168e574 100644 HDMI_WRITE(HDMI_MAI_CTL, VC4_HD_MAI_CTL_RESET | -@@ -1293,7 +1295,7 @@ static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = { +@@ -1287,7 +1289,7 @@ static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = { static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = { .startup = vc4_hdmi_audio_startup, .shutdown = vc4_hdmi_audio_shutdown, @@ -172811,10 +172735,10 @@ index 866f9e083ae4..b0780168e574 100644 2.18.4 -From 134dbaf591e9bb3cb065f6dedb7eab520183d236 Mon Sep 17 00:00:00 2001 +From c5fd22663d7813471f36c7fdf8385bd150f8b198 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 10 Jul 2020 11:51:16 +0100 -Subject: [PATCH 328/704] drm/vc4: enable HBR MAI format on HBR streams +Subject: [PATCH 327/741] drm/vc4: enable HBR MAI format on HBR streams Signed-off-by: Matthias Reichl --- @@ -172822,10 +172746,10 @@ Signed-off-by: Matthias Reichl 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index b0780168e574..08cc24f23675 100644 +index 844e38d4efe4..cb81a599877f 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1085,7 +1085,11 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1079,7 +1079,11 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, vc4_hdmi_audio_set_mai_clock(vc4_hdmi); mai_sample_rate = sample_rate_to_mai_fmt(vc4_hdmi->audio.samplerate); @@ -172842,10 +172766,10 @@ index b0780168e574..08cc24f23675 100644 2.18.4 -From c74d284fe982d65d495b037c8f1532c4b74baef2 Mon Sep 17 00:00:00 2001 +From 0720009ce7e28e2de41df38cd30322b0dbf675a6 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 25 Jun 2020 18:48:40 +0100 -Subject: [PATCH 329/704] vc4_hdmi: Remove firmware logic for MAI threshold +Subject: [PATCH 328/741] vc4_hdmi: Remove firmware logic for MAI threshold setting This was a workaround for bugs in hardware on earlier Pi models @@ -172859,10 +172783,10 @@ Signed-off-by: Dom Cobley 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 08cc24f23675..156d9e8ad869 100644 +index cb81a599877f..c44cf3e8cc40 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1106,22 +1106,12 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1100,22 +1100,12 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, audio_packet_config |= VC4_SET_FIELD(channel_mask, VC4_HDMI_AUDIO_PACKET_CEA_MASK); @@ -172895,10 +172819,10 @@ index 08cc24f23675..156d9e8ad869 100644 2.18.4 -From 9a58ab76def33949fa40b8ccf46b9713e7fbec9c Mon Sep 17 00:00:00 2001 +From 4af874fb73cdbf55a5ae507765abd5c802024c0e Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 30 Jun 2020 11:23:49 +0100 -Subject: [PATCH 330/704] vc_hdmi: Set VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE +Subject: [PATCH 329/741] 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 @@ -172910,10 +172834,10 @@ Signed-off-by: Dom Cobley 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 156d9e8ad869..69b16d4d3e25 100644 +index c44cf3e8cc40..f3815528e67b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1115,6 +1115,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1109,6 +1109,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, HDMI_WRITE(HDMI_MAI_CONFIG, VC4_HDMI_MAI_CONFIG_BIT_REVERSE | @@ -172925,10 +172849,10 @@ index 156d9e8ad869..69b16d4d3e25 100644 2.18.4 -From 98bc81eebcb0c866f6b0dcef78abbe3d7c7b0df5 Mon Sep 17 00:00:00 2001 +From 806ccfe1d6ec021f8afda0dc5fe91b9552090b5c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 20 Apr 2020 18:00:38 +0100 -Subject: [PATCH 331/704] vc4: Report channel mapping back to userspace +Subject: [PATCH 330/741] 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 @@ -172945,7 +172869,7 @@ Signed-off-by: Dom Cobley 2 files changed, 418 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 69b16d4d3e25..69994693c23d 100644 +index f3815528e67b..b154e5e6e7f2 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -49,6 +49,7 @@ @@ -173268,7 +173192,7 @@ index 69b16d4d3e25..69994693c23d 100644 static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) { struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -374,6 +680,9 @@ static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder) +@@ -378,6 +684,9 @@ static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder) frame.audio.sample_size = HDMI_AUDIO_SAMPLE_SIZE_STREAM; frame.audio.channels = vc4_hdmi->audio.channels; @@ -173278,7 +173202,7 @@ index 69b16d4d3e25..69994693c23d 100644 vc4_hdmi_write_infoframe(encoder, &frame); } -@@ -975,6 +1284,10 @@ static int vc4_hdmi_audio_startup(struct snd_pcm_substream *substream, +@@ -969,6 +1278,10 @@ static int vc4_hdmi_audio_startup(struct snd_pcm_substream *substream, if (ret) return ret; @@ -173289,7 +173213,7 @@ index 69b16d4d3e25..69994693c23d 100644 return 0; } -@@ -1061,6 +1374,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1055,6 +1368,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, u32 channel_map; u32 mai_audio_format; u32 mai_sample_rate; @@ -173297,7 +173221,7 @@ index 69b16d4d3e25..69994693c23d 100644 if (substream != vc4_hdmi->audio.substream) return -EINVAL; -@@ -1123,6 +1437,14 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1117,6 +1431,14 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config); vc4_hdmi_set_n_cts(vc4_hdmi); @@ -173312,7 +173236,7 @@ index 69b16d4d3e25..69994693c23d 100644 vc4_hdmi_set_audio_infoframe(encoder); return 0; -@@ -1241,6 +1563,89 @@ static int vc4_spdif_mask_get(struct snd_kcontrol *kcontrol, +@@ -1235,6 +1557,89 @@ static int vc4_spdif_mask_get(struct snd_kcontrol *kcontrol, return 0; } @@ -173402,7 +173326,7 @@ index 69b16d4d3e25..69994693c23d 100644 static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { { .access = SNDRV_CTL_ELEM_ACCESS_READ | -@@ -1263,6 +1668,16 @@ static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { +@@ -1257,6 +1662,16 @@ static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { .info = vc4_spdif_info, .get = vc4_spdif_mask_get, }, @@ -173437,10 +173361,10 @@ index c75d4c9e1515..1680e1a56149 100644 2.18.4 -From 529fb6165a3cdff97b56176a213ac8e8a9ad04de Mon Sep 17 00:00:00 2001 +From 54fc9e6b09066091ab0452bc379d24d5aff9b477 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:25:41 +0000 -Subject: [PATCH 332/704] drm/vc4: Add support for DRM_FORMAT_P030 to vc4 +Subject: [PATCH 331/741] drm/vc4: Add support for DRM_FORMAT_P030 to vc4 planes This currently doesn't handle non-zero source rectangles correctly, @@ -173606,10 +173530,10 @@ index af4b8944a603..ec591839810a 100644 2.18.4 -From 962db6c22b2598cf78120ae4cdd01a0f2f421b07 Mon Sep 17 00:00:00 2001 +From aff97e149119dea7dba92698383765764de9b993 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Sep 2019 18:28:17 +0100 -Subject: [PATCH 333/704] drm/vc4: Add support for YUV color encodings and +Subject: [PATCH 332/741] drm/vc4: Add support for YUV color encodings and ranges The BT601/BT709 color encoding and limited vs full @@ -173753,10 +173677,10 @@ index c10402e103d6..1f1ed7efaff7 100644 2.18.4 -From eca21581511d78e90b3ed8b8fcee71bbc3f5f87a Mon Sep 17 00:00:00 2001 +From 41fbf92b7820723f9e1b71a02510906c80f0864e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Sep 2020 17:32:27 +0100 -Subject: [PATCH 334/704] drm/vc4: Add firmware-kms mode +Subject: [PATCH 333/741] 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 +176061,10 @@ index d0ee609a9043..05c6989ec4c6 100644 2.18.4 -From 6923156481e3ab8dc621e7b5934984f184f20a96 Mon Sep 17 00:00:00 2001 +From 0c034a4cf808dd959eabd01d7ba88dc4fdf6e199 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 16:20:30 +0100 -Subject: [PATCH 335/704] drm/vc4: Add FKMS as an acceptable node for dma +Subject: [PATCH 334/741] drm/vc4: Add FKMS as an acceptable node for dma ranges. Under FKMS, the firmware (via FKMS) also requires the VideoCore cache @@ -176170,10 +176094,10 @@ index c8f9031fa946..d6576841d0fe 100644 2.18.4 -From 932421f926c1a8475d643b2d4219175f5327c90a Mon Sep 17 00:00:00 2001 +From 88f2cebdce18e3497afd2f9e817bdd44945135a3 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 10:00:12 +0100 -Subject: [PATCH 336/704] media: i2c: Add driver for Sony IMX477 sensor +Subject: [PATCH 335/741] 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 @@ -178449,10 +178373,10 @@ index 000000000000..ec56b0cfd57b 2.18.4 -From d53aae7cffb027f56c5c0803316cce7ce01d522b Mon Sep 17 00:00:00 2001 +From 700f76f4ff765756eb7157b05f0ee5987df89f60 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 09:41:17 +0100 -Subject: [PATCH 337/704] media: i2c: imx477: Add support for adaptive frame +Subject: [PATCH 336/741] media: i2c: imx477: Add support for adaptive frame control Use V4L2_CID_EXPOSURE_AUTO_PRIORITY to control if the driver should @@ -178637,10 +178561,10 @@ index ec56b0cfd57b..bd0e2c291a32 100644 2.18.4 -From 8a1f9162b659a49ff69f7638eb8ecc1c6fdd0e88 Mon Sep 17 00:00:00 2001 +From 636b090162909694d3a253fb81aecebe968960cf Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 19 May 2020 16:56:33 +0100 -Subject: [PATCH 338/704] media: i2c: imx477: Return correct result on sensor +Subject: [PATCH 337/741] 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 +178592,10 @@ index bd0e2c291a32..e42a8633087d 100644 2.18.4 -From b536112768d90fb361744c5c328986dc29b10e73 Mon Sep 17 00:00:00 2001 +From ee3f1e4cae40f869f743cf902d398ae16b57b245 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 339/704] media: i2c: imx477: Parse and register properties +Subject: [PATCH 338/741] media: i2c: imx477: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -178719,10 +178643,10 @@ index e42a8633087d..3fbb173fa079 100644 2.18.4 -From 2ff465cc86f8bde163fd9c15656a143208fc389a Mon Sep 17 00:00:00 2001 +From c44a63c8ec4d9d944534b075c535dee443aaba9b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 340/704] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 339/741] 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 +178700,10 @@ index 35ddb97f7f75..d4ba911fe7e7 100644 2.18.4 -From 225a0ae908ae23f946c41d9d1f975606451aa2f9 Mon Sep 17 00:00:00 2001 +From f8e02a341570275e8341fa83b1923fed7962cbb7 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 341/704] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 340/741] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -178803,10 +178727,10 @@ index d4ba911fe7e7..8b091d3a0d15 100644 2.18.4 -From 061330b99bc0aee9993d6db9d719a523eee5c362 Mon Sep 17 00:00:00 2001 +From 1802968f1f45c0a811cd57a4eea2f943fb590ddb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 15:14:05 +0100 -Subject: [PATCH 342/704] media: bcm2835-unicam: Fixup review comments from +Subject: [PATCH 341/741] media: bcm2835-unicam: Fixup review comments from Hans. Updates the driver based on the upstream review comments from @@ -179055,10 +178979,10 @@ index 8b091d3a0d15..7dc96c3e8e83 100644 2.18.4 -From 3d09bf99cf20553d1aac430477023ca0364cfd38 Mon Sep 17 00:00:00 2001 +From 61e80352b230e68e4f866b9c9660329927888f5a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 343/704] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 342/741] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -179109,10 +179033,10 @@ index 7dc96c3e8e83..98ae97c367ea 100644 2.18.4 -From db6d5ad61d81d7427bd7c7bcfff98589a0db0e9b Mon Sep 17 00:00:00 2001 +From 9e70b5cfbb6ecee5650cea1fc2ecd6b956ff9d7d Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 344/704] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 343/741] 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 +179067,10 @@ index 98ae97c367ea..6501fb205e20 100644 2.18.4 -From 81b7116db5bff6112e6307698e7e7d228d95ddf2 Mon Sep 17 00:00:00 2001 +From cd43895459c8892ce978cba100ba741d4d32e9ff Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 1 Sep 2020 18:15:27 +0100 -Subject: [PATCH 345/704] staging/fbtft: Add support for display variants +Subject: [PATCH 344/741] 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 +179282,10 @@ index 76f8c090a837..f4f5ff0dc0c0 100644 2.18.4 -From f0e5ef8e145f6f5f588e337693cd085589d36fab Mon Sep 17 00:00:00 2001 +From cdb17c673a6b2de28b75a2fcd2cec0287df7f0bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 09:32:22 +0000 -Subject: [PATCH 346/704] brcmfmac: Increase power saving delay to 2s +Subject: [PATCH 345/741] 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 +179321,10 @@ index 38ef415cfbba..380a5ece63da 100644 2.18.4 -From 7116697de305f65ce854653cca3c10e8f68b58b3 Mon Sep 17 00:00:00 2001 +From 9f99ca7c260bb70f62cb891fcd49741a69250287 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Sep 2020 14:02:44 +0100 -Subject: [PATCH 347/704] rpivid_h265: Fix width/height typo +Subject: [PATCH 346/741] rpivid_h265: Fix width/height typo Signed-off-by: popcornmix --- @@ -179424,10 +179348,10 @@ index 47d4de42c584..b677910e237c 100644 2.18.4 -From 8ac700256ba62b38ecc514c478c43de858ba9894 Mon Sep 17 00:00:00 2001 +From 635518a6c71b0295303423878df5f90bb6b1fc3d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 25 Sep 2020 15:07:23 +0100 -Subject: [PATCH 348/704] net: bcmgenet: Reset RBUF on first open +Subject: [PATCH 347/741] 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 +179424,10 @@ index ae7011c1e1f7..3cbfe5bebc57 100644 2.18.4 -From 0851ceef67a0ce89fcb4ef1aa1755dcfb2ca4e24 Mon Sep 17 00:00:00 2001 +From 80862627d37b4a96fbabc11a08a8c1ddbf7b5fad Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2020 20:23:30 +0100 -Subject: [PATCH 349/704] char: Add broadcom char drivers back to build files +Subject: [PATCH 348/741] char: Add broadcom char drivers back to build files See: https://github.com/raspberrypi/linux/issues/3875 Signed-off-by: popcornmix @@ -179538,10 +179462,10 @@ index ffce287ef415..463ff9f136e4 100644 2.18.4 -From 4f2bda57a353126b90d75852645076aceb95c131 Mon Sep 17 00:00:00 2001 +From c29e47c3ed183499ee0633ddf1ec77440ec1acb4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 19:23:43 +0100 -Subject: [PATCH 350/704] USB: gadget: f_hid: avoid crashes and log spam +Subject: [PATCH 349/741] 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. @@ -179554,7 +179478,7 @@ Signed-off-by: Phil Elwell 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c -index 1125f4715830..8315fca29cff 100644 +index e55699308117..047d48ebc970 100644 --- a/drivers/usb/gadget/function/f_hid.c +++ b/drivers/usb/gadget/function/f_hid.c @@ -338,6 +338,11 @@ static ssize_t f_hidg_write(struct file *file, const char __user *buffer, @@ -179604,10 +179528,10 @@ index 1125f4715830..8315fca29cff 100644 2.18.4 -From c7c32a246b3dbb4e53cd816abc5feac7df3e20a6 Mon Sep 17 00:00:00 2001 +From def29cb434059afd22ae5cb5c6036ad51b971392 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 7 Oct 2020 15:09:29 +0100 -Subject: [PATCH 351/704] dwc_otg: initialise sched_frame for periodic QHs that +Subject: [PATCH 350/741] 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 +179567,10 @@ index 2823dc9af63f..4503af692aef 100644 2.18.4 -From 968647f8a3c002d901cdf020e71295631a62f750 Mon Sep 17 00:00:00 2001 +From 39d526537af39a72347020889268c2657ef2fb14 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 15:35:14 +0100 -Subject: [PATCH 352/704] staging: bcm2835-camera: Replace deprecated +Subject: [PATCH 351/741] staging: bcm2835-camera: Replace deprecated V4L2_PIX_FMT_BGR32 V4L2_PIX_FMT_BGR32 is deprecated as it is ambiguous over where @@ -179679,10 +179603,10 @@ index bea37cb163fc..e0a96dbb843d 100644 2.18.4 -From ed3bffd15195082649cbf24a0d1f3c1075e8dcaa Mon Sep 17 00:00:00 2001 +From 323a7daac8f1d5fb79651a1221c291f4ac255710 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 18:49:52 +0100 -Subject: [PATCH 353/704] staging: vc04_services: Add new vc-sm-cma driver +Subject: [PATCH 352/741] staging: vc04_services: Add new vc-sm-cma driver Add Broadcom VideoCore Shared Memory support. @@ -182643,10 +182567,10 @@ index 000000000000..988fdd967922 2.18.4 -From 3e4e5009f7cd7cb934598c90d60d6c66f9a86e38 Mon Sep 17 00:00:00 2001 +From 3e4116a517a0da0d8ff2fd1de5b9e26fb5f13831 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:09:04 +0100 -Subject: [PATCH 354/704] staging: vchiq-mmal: Add support for 14bit Bayer +Subject: [PATCH 353/741] staging: vchiq-mmal: Add support for 14bit Bayer Add in the missing defines. @@ -182676,10 +182600,10 @@ index 44ba91aa6d47..be8af09a6c80 100644 2.18.4 -From 764d8572947d1a929b8434c41a71be5655d2675c Mon Sep 17 00:00:00 2001 +From 9619861aaefa13fb4171f2a30fc6e5d667a4030e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:11:14 +0100 -Subject: [PATCH 355/704] staging: mmal-vchiq: Add monochrome image formats +Subject: [PATCH 354/741] staging: mmal-vchiq: Add monochrome image formats Adds support for monochrome image formats in the various MIPI packings. @@ -182711,10 +182635,10 @@ index be8af09a6c80..897e6cdf8dd9 100644 2.18.4 -From 7416a165f22b00d2d2645da332d463b3146b7fe5 Mon Sep 17 00:00:00 2001 +From eb37e74ebe6d91114018f7ad6f5307ec9f2e8776 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 25 Sep 2018 16:07:55 +0100 -Subject: [PATCH 356/704] staging: mmal-vchiq: Use vc-sm-cma to support zero +Subject: [PATCH 355/741] 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 +182809,10 @@ index e87f88f99338..247521fbcc1d 100644 2.18.4 -From 0a3983f7bc190b1f565326a0ffbb7f61b296b880 Mon Sep 17 00:00:00 2001 +From c64dcd5d75bae2d38682acd4cad44b553bfcf0e4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 20:24:12 +0100 -Subject: [PATCH 357/704] staging: vc04_services: Add a V4L2 M2M codec driver +Subject: [PATCH 356/741] 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 +185899,10 @@ index 000000000000..d490ff67f747 2.18.4 -From d316a03a8969cb996425582e3bab37600629871f Mon Sep 17 00:00:00 2001 +From 21e275fa54e4bfa621d71506feba9c8442b00e0e Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2020 00:48:55 +0200 -Subject: [PATCH 358/704] bcm2835-dma: only reserve channel 0 if legacy dma +Subject: [PATCH 357/741] 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 +185937,10 @@ index d1127b9058a4..0cbfa9d559a2 100644 2.18.4 -From 8389e9cfdb1e2ddee61e0675cc4b1974356985c9 Mon Sep 17 00:00:00 2001 +From 1923c749c3c84c3f845713e8bd6ff584384bb4aa Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 12 Oct 2020 17:03:14 +0100 -Subject: [PATCH 359/704] uapi: bcm2835-isp: Add bcm2835-isp uapi header file +Subject: [PATCH 358/741] 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 +186282,10 @@ index 000000000000..cf8c0437f159 2.18.4 -From 9d440b36d6b0687bfc41be5313528f4a9c5e0320 Mon Sep 17 00:00:00 2001 +From 784e6d4ed5e0d34a746c06b72dfb144799dae18a Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:17:37 +0100 -Subject: [PATCH 360/704] staging: vc04_services: ISP: Add a more complex ISP +Subject: [PATCH 359/741] staging: vc04_services: ISP: Add a more complex ISP processing component Driver for the BCM2835 ISP hardware block. This driver uses the MMAL @@ -188793,10 +188717,10 @@ index 89059bca0b77..5b596b5c057f 100644 2.18.4 -From ff93276d13def53a6dd712ff321b1f21cbbb5848 Mon Sep 17 00:00:00 2001 +From c1f3997767409cfcddb811a39ef9102fbf7bd415 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Jul 2019 17:36:34 +0100 -Subject: [PATCH 361/704] drm/vc4: A present but empty dmas disables audio +Subject: [PATCH 360/741] 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 @@ -188810,10 +188734,10 @@ Signed-off-by: Phil Elwell 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 69994693c23d..05f841ff4f19 100644 +index b154e5e6e7f2..8f7ca5ef56bd 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1768,10 +1768,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) +@@ -1762,10 +1762,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) const __be32 *addr; int index; int ret; @@ -188832,10 +188756,10 @@ index 69994693c23d..05f841ff4f19 100644 2.18.4 -From b2d3085dcc887bca4e52dc333c5f016c3c4fd3ad Mon Sep 17 00:00:00 2001 +From 12acbd2a6f00e603c188c8163f319e3488de4e55 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 6 Oct 2020 18:44:42 +0100 -Subject: [PATCH 362/704] drm/vc4: Add debugfs node that dumps the current +Subject: [PATCH 361/741] drm/vc4: Add debugfs node that dumps the current display lists This allows easy analysis of display lists when debugging. @@ -188908,10 +188832,10 @@ index ad691571d759..b5015d036d46 100644 2.18.4 -From 523323313c5c8ebf2a675d9afbbb18e01623a926 Mon Sep 17 00:00:00 2001 +From de80f8c3eea0d08116aa0e15ab6b72547fe07897 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 12:00:54 +0100 -Subject: [PATCH 363/704] gpio: Add gpio-fsm driver +Subject: [PATCH 362/741] 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 +190028,10 @@ index 000000000000..eb40cfdc71df 2.18.4 -From 0dcb0eb20b5e29d9895d2889a48c3b4c28e9b3c2 Mon Sep 17 00:00:00 2001 +From 6d6f1d3b24545026430ebe319f3d3c9e084b0fdd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 21 Oct 2020 18:34:56 +0100 -Subject: [PATCH 364/704] drm/vc4: Add all the HDMI registers into the debugfs +Subject: [PATCH 363/741] drm/vc4: Add all the HDMI registers into the debugfs dumps The vc5 HDMI registers hadn't been added into the debugfs @@ -190121,7 +190045,7 @@ Signed-off-by: Dave Stevenson 2 files changed, 53 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 05f841ff4f19..c04e54752991 100644 +index 8f7ca5ef56bd..977c4f8de6cb 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -397,6 +397,13 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) @@ -190138,7 +190062,7 @@ index 05f841ff4f19..c04e54752991 100644 return 0; } -@@ -2173,6 +2180,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2167,6 +2174,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) struct platform_device *pdev = vc4_hdmi->pdev; struct device *dev = &pdev->dev; struct resource *res; @@ -190146,7 +190070,7 @@ index 05f841ff4f19..c04e54752991 100644 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi"); if (!res) -@@ -2271,6 +2279,42 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2265,6 +2273,42 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) return PTR_ERR(vc4_hdmi->reset); } @@ -190215,10 +190139,10 @@ index 1680e1a56149..1eb1fc0d95a3 100644 2.18.4 -From 10663b60de6432b577f24e0324734e0bf3205b35 Mon Sep 17 00:00:00 2001 +From 231bbe0052c3678689dfc6d8d18cead5a1fc9eeb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 19 Mar 2020 10:04:46 +0000 -Subject: [PATCH 365/704] ARM: dts: bcm271x: Use a53 pmu, drop RPI364 +Subject: [PATCH 364/741] 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 +190222,10 @@ index 1fd86f81f542..bf69a4b0b172 100644 2.18.4 -From f2062486e248ae7e5628b79fd2c731ef4274ecd0 Mon Sep 17 00:00:00 2001 +From f68e456e24260a41da67665834c60317a0e6c5df Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 23 Oct 2020 14:15:41 +0100 -Subject: [PATCH 366/704] overlays: Add option to disable composite to +Subject: [PATCH 365/741] overlays: Add option to disable composite to vc4-kms-v3d Composite gets enabled automatically if HDMI isn't detected, @@ -190342,10 +190266,10 @@ index 6d34a2bff49b..5a4efdeed663 100644 2.18.4 -From fca5de3d78728291f407b19ab2ac59128294d39e Mon Sep 17 00:00:00 2001 +From 24833667f3af6b87c2dfd57fa41ecf3a915f1675 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 11 Mar 2020 12:07:57 +0000 -Subject: [PATCH 367/704] overlays: imx219: Correct link frequency to match the +Subject: [PATCH 366/741] overlays: imx219: Correct link frequency to match the upstream driver The upstream driver is checking the link frequency parameter, and @@ -190373,10 +190297,10 @@ index 3484bde5a9e8..dce07b335c4e 100644 2.18.4 -From d395ac6c8d14af825f08349cbf8787168c522104 Mon Sep 17 00:00:00 2001 +From 8ac33d07a5f5a3ab321585c3bb1074e69cb6ba5d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 23 Oct 2020 15:45:11 +0100 -Subject: [PATCH 368/704] dts: Add CM4 to arm64 dt files +Subject: [PATCH 367/741] dts: Add CM4 to arm64 dt files Signed-off-by: Dave Stevenson --- @@ -190410,10 +190334,10 @@ index 000000000000..8064a58155f1 2.18.4 -From 90d4df39f15764d09ee9768d535153c8708f5499 Mon Sep 17 00:00:00 2001 +From f20b02e65a87b1b2979d711372abcf62a57b9b41 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 26 Oct 2020 12:38:27 +0000 -Subject: [PATCH 369/704] drm/vc4: Add the 2711 HVS as a suitable DMA node +Subject: [PATCH 368/741] 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 +190364,10 @@ index d6576841d0fe..617c113b033f 100644 2.18.4 -From 506424800b1bb53ba8a963039305baa5699a5b85 Mon Sep 17 00:00:00 2001 +From 908d1f32d92a68edac7bdb34b8003c86de61bef3 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 26 Oct 2020 14:03:35 +0000 -Subject: [PATCH 370/704] xhci: quirks: add link TRB quirk for VL805 +Subject: [PATCH 369/741] 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 @@ -190511,10 +190435,10 @@ index 4f24ad7eccd9..2cc777f66cdf 100644 2.18.4 -From 1bcd91de9613b331312e5ae18c6d643761dea091 Mon Sep 17 00:00:00 2001 +From 3b33b8194b03ffa397f1f62f06b422dbfb8f094d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 15:01:21 +0000 -Subject: [PATCH 371/704] dts: Tidy the Raspberry Pi Makefile entries +Subject: [PATCH 370/741] dts: Tidy the Raspberry Pi Makefile entries Signed-off-by: Phil Elwell --- @@ -190562,10 +190486,10 @@ index 1e861e2bf2e0..996e670a6018 100644 2.18.4 -From 59ca21642069772092428ce6b6a1039fb8b397cf Mon Sep 17 00:00:00 2001 +From 140e9f4d35dd7aa7804a21ae4e0211020b6d8ece Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:23:22 +0000 -Subject: [PATCH 372/704] staging: bcm2835-audio: Add disable-headphones flag +Subject: [PATCH 371/741] 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 +190526,10 @@ index a0cba3823e5e..ccda115ab9e0 100644 2.18.4 -From 2247ce32fe1bb61cf9453e42402af655b90a9d0f Mon Sep 17 00:00:00 2001 +From 3ff78f86301bd91d9b0be4c74f75ba141b85e3a7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:18:50 +0000 -Subject: [PATCH 373/704] ARM: dts: Disable headphone audio on Zeroes, CM4 +Subject: [PATCH 372/741] ARM: dts: Disable headphone audio on Zeroes, CM4 Signed-off-by: Phil Elwell --- @@ -190654,10 +190578,10 @@ index 0ca3a0126220..fa7b16040f36 100644 2.18.4 -From 657dd7e8b0a56bb932e3ff2bce8af1729139393f Mon Sep 17 00:00:00 2001 +From d404713225d9682c064c0a4a19563c530bce168b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:21:23 +0000 -Subject: [PATCH 374/704] overlays: Enable headphone audio in audremap +Subject: [PATCH 373/741] overlays: Enable headphone audio in audremap Signed-off-by: Phil Elwell --- @@ -190686,10 +190610,10 @@ index d624bb3a3fea..7324890ead86 100644 2.18.4 -From 3b78f74bb8006f20d5223760b7a49dc206687137 Mon Sep 17 00:00:00 2001 +From 921437ac8bcd03e20aecb3850b676fa882f8fb3b Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 26 Oct 2020 16:38:21 +0000 -Subject: [PATCH 375/704] rpisense-fb: Set pseudo_pallete to prevent crash on +Subject: [PATCH 374/741] rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover Signed-off-by: Serge Schneider @@ -190722,10 +190646,10 @@ index 26432a5a0b4b..325977def531 100644 2.18.4 -From b3d691ae67232bda2cdc2e6d0d993586ab68f364 Mon Sep 17 00:00:00 2001 +From 12f6974c28c29a4d261881136b5042ec49ed8e49 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:35:43 +0000 -Subject: [PATCH 376/704] ARM: dts: Expand PCIe space on BCM2711 +Subject: [PATCH 375/741] 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 +190682,10 @@ index b4a18b627359..8ad6c3012fe3 100644 2.18.4 -From d4caa4436b89dbfeeec1dfd5e1dedcfcd698cc6b Mon Sep 17 00:00:00 2001 +From 7ae008004a4e9099a5dbdfd216cd7ef1328903b2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 21:51:29 +0000 -Subject: [PATCH 377/704] configs: Set RASPBERRYPI_FIRMWARE for arm64 bcm2711 +Subject: [PATCH 376/741] 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 +190836,10 @@ index d542d2522076..6247c74639f7 100644 2.18.4 -From ef2147dc29e3bc15222084ccf9f765f3273987d3 Mon Sep 17 00:00:00 2001 +From 4877d46fcb3b059eb259a64073d804a87d266cdd Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 09:59:49 +0000 -Subject: [PATCH 378/704] dwc_otg: Minimise header and fix build warnings +Subject: [PATCH 377/741] 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 +191741,10 @@ index e55ea9c74be4..76e94b4ebb43 100644 2.18.4 -From 4d97ee694a86c5fefd580524b6a1fcc2c2030ea8 Mon Sep 17 00:00:00 2001 +From 7371fb3257af48408f2fa66d073b7db4650dd78b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:10:04 +0000 -Subject: [PATCH 379/704] gpio-fsm: Fix a build warning +Subject: [PATCH 378/741] gpio-fsm: Fix a build warning Signed-off-by: Phil Elwell --- @@ -191845,10 +191769,10 @@ index eb8b4d58d2d0..2cab50e51315 100644 2.18.4 -From 2b59b85fb7aadd79f5955660228cb99ccde7b663 Mon Sep 17 00:00:00 2001 +From f00ce0bca4865badb660aba9d1ad5058739bd02e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:10:40 +0000 -Subject: [PATCH 380/704] rpivid_h625: Fix build warnings +Subject: [PATCH 379/741] rpivid_h625: Fix build warnings Signed-off-by: Phil Elwell --- @@ -191919,10 +191843,10 @@ index b677910e237c..fc3caed58187 100644 2.18.4 -From 087492f8dcede889e330f2deb2f179be46842354 Mon Sep 17 00:00:00 2001 +From d04cfdcd9ea82be27b80e70dc6f2b24118e89176 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:12:22 +0000 -Subject: [PATCH 381/704] bcm2708_fb: Fix a build warning +Subject: [PATCH 380/741] bcm2708_fb: Fix a build warning Signed-off-by: Phil Elwell --- @@ -191947,10 +191871,10 @@ index dac5c021ce52..365c5b96b8a0 100644 2.18.4 -From 353d5385e82ebaecd7ac8e52377c06923a19f351 Mon Sep 17 00:00:00 2001 +From 4bd8df6136a46b6d0e6bfa7bd1961af896cfea48 Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:18:42 +0000 -Subject: [PATCH 382/704] PiFi-40 defconfigs +Subject: [PATCH 381/741] PiFi-40 defconfigs Signed-off-by: David Knell --- @@ -192025,10 +191949,10 @@ index 6247c74639f7..bc02ce537715 100644 2.18.4 -From 0de42a50158411af094566e67e668eec43c76ae5 Mon Sep 17 00:00:00 2001 +From 0f46331ebab15af09e706baab247de193653302c Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:20:56 +0000 -Subject: [PATCH 383/704] PiFi-40 Devicetree files +Subject: [PATCH 382/741] PiFi-40 Devicetree files Signed-off-by: David Knell --- @@ -192127,10 +192051,10 @@ index 000000000000..51a20e54977f 2.18.4 -From 479ae3576466bb9f0a041a06c29731c7b44b64e5 Mon Sep 17 00:00:00 2001 +From daa98f7e7c5fe3c455e9ecec0e90b61f3ee2c80c Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:21:37 +0000 -Subject: [PATCH 384/704] PiFi-40 driver, Makefile and Kconfig +Subject: [PATCH 383/741] PiFi-40 driver, Makefile and Kconfig Signed-off-by: David Knell --- @@ -192470,10 +192394,10 @@ index 000000000000..ae699fb0485c 2.18.4 -From a2ea148c05060021fcd0019685fd7cde2b1ceb69 Mon Sep 17 00:00:00 2001 +From 4acfd3229acbe1df11f78b32ede577f4144abc73 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 27 Oct 2020 12:24:14 +0000 -Subject: [PATCH 385/704] bcm2835-pcm: Fix up multichannel pcm audio +Subject: [PATCH 384/741] bcm2835-pcm: Fix up multichannel pcm audio Fixes: a9c1660ff5f02d048c5f31abf1fd1108ccf9ef87 Signed-off-by: Dom Cobley @@ -192531,10 +192455,10 @@ index 3c0033101e6e..fa5cf5b9550f 100644 2.18.4 -From 14ffd8f851ee4be7fd7be07b7d3d0eb176ecf16f Mon Sep 17 00:00:00 2001 +From bb7828b6d006b6d164ddc9c9eeb781fce7bfd316 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Thu, 22 Oct 2020 15:30:55 +0100 -Subject: [PATCH 386/704] watchdog: bcm2835: Ignore params after the partition +Subject: [PATCH 385/741] watchdog: bcm2835: Ignore params after the partition number Use sscanf to extract the partition number and ignore extra parameters @@ -192566,10 +192490,10 @@ index 62937e6f83ca..de25e3682f03 100644 2.18.4 -From 4ac8716b01490acf67a208a35998b5b8c4576b14 Mon Sep 17 00:00:00 2001 +From 244b0a51d70e5d7a46b23539c6081513b2ad086a Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 20 Oct 2020 11:55:37 +0100 -Subject: [PATCH 387/704] firmware: raspberrypi: Add support for tryonce reboot +Subject: [PATCH 386/741] firmware: raspberrypi: Add support for tryonce reboot flag Define a new mailbox (SET_REBOOT_FLAGS) which may be used to @@ -192646,10 +192570,10 @@ index 05c6989ec4c6..6b393bbe7f52 100644 2.18.4 -From b958dd988d2d3bf79f37acb26e40b89b700dec87 Mon Sep 17 00:00:00 2001 +From 349ae9080c8fd06a5b32bb71228ced6b9a4a4e62 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:00:41 +0100 -Subject: [PATCH 388/704] phy: broadcom: split out the BCM54213PE from the +Subject: [PATCH 387/741] 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 +192648,10 @@ index 54665952d6ad..92948c26da2a 100644 2.18.4 -From 327c130cdee95698a846ee50534e63c400eea050 Mon Sep 17 00:00:00 2001 +From efdca8662eabd45482fbea50112f860caded40c4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 29 Oct 2020 14:10:56 +0000 -Subject: [PATCH 389/704] phy: broadcom: Add bcm54213pe configuration +Subject: [PATCH 388/741] phy: broadcom: Add bcm54213pe configuration Signed-off-by: Phil Elwell --- @@ -192764,10 +192688,10 @@ index 671517aae345..8b0ac38742d0 100644 2.18.4 -From f0c35825bfc886ebb6bba5aa7cd5e498f3f72e02 Mon Sep 17 00:00:00 2001 +From 22f8c66e677b82dcb1d2c2e7898a8bdea5408fc4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Nov 2020 14:56:18 +0000 -Subject: [PATCH 390/704] configs: Add CONFIG_MAX31856=m +Subject: [PATCH 389/741] configs: Add CONFIG_MAX31856=m Enable support for MAX31856 temperature sensors. @@ -192846,10 +192770,10 @@ index bc02ce537715..680b51ab0642 100644 2.18.4 -From 594adb9662b07110911e19d9b454785afdaef752 Mon Sep 17 00:00:00 2001 +From e9c342459cde5ded61b55ebe9cad0151fdd1d787 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 22 Oct 2020 17:11:12 +0100 -Subject: [PATCH 391/704] overlays: Add MAX31856 support to maxtherm overlay +Subject: [PATCH 390/741] 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 +192880,10 @@ index 34d5727069ec..9964e246c14f 100644 2.18.4 -From c572cca2c10aab666d07f61fedf0c71c7129ba5f Mon Sep 17 00:00:00 2001 +From e1d00a0ad152ec0d1e5dc4d9dbd24a24e97a096d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2020 14:21:33 +0100 -Subject: [PATCH 392/704] ARM: dts: Add bcm2711-rpi-400.dts +Subject: [PATCH 391/741] ARM: dts: Add bcm2711-rpi-400.dts Signed-off-by: Phil Elwell --- @@ -193627,10 +193551,10 @@ index 000000000000..90c2b5a195d4 2.18.4 -From d7e227c9f71132d5493c73f4f166e92480f1d755 Mon Sep 17 00:00:00 2001 +From c67255bd5b44a459ac4d3b5a185a38fbf38e87f6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 4 Nov 2020 11:25:02 +0000 -Subject: [PATCH 393/704] overlays: Deprecate and delete the sdtweak overlay +Subject: [PATCH 392/741] 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 +193676,10 @@ index 38157d2f9bf3..000000000000 2.18.4 -From b3f4bf1021f58cf87af2cd75502eef07ed40d0b8 Mon Sep 17 00:00:00 2001 +From d3a2b5b082dc2ecbef71e7f714910ba86d140e00 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Nov 2020 11:39:35 +0000 -Subject: [PATCH 394/704] ARM: dts: bcm27xx: Remove enable_headphones setting +Subject: [PATCH 393/741] 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 +193806,10 @@ index fa7b16040f36..49c69fdaef49 100644 2.18.4 -From 829b94d7f8032e7a8691a1610595871ee8581348 Mon Sep 17 00:00:00 2001 +From 6caba14f8d4384ebffcedc9e3696779311b39309 Mon Sep 17 00:00:00 2001 From: menschel Date: Fri, 6 Nov 2020 23:32:22 +0100 -Subject: [PATCH 395/704] configs: Add CAN_MCP251XFD=m and CAN_ISOTP=m +Subject: [PATCH 394/741] 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 +193901,10 @@ index 680b51ab0642..ff74c23ef24e 100644 2.18.4 -From 873296cfb302024af388db3a5f09bac79a8f6ada Mon Sep 17 00:00:00 2001 +From 7e8cfc5817ea5cdf30deecf93f63de59a3567d56 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 9 Nov 2020 19:49:32 +0000 -Subject: [PATCH 396/704] vc4_hdmi: Report that 3d/stereo is allowed +Subject: [PATCH 395/741] vc4_hdmi: Report that 3d/stereo is allowed Signed-off-by: Dom Cobley --- @@ -193988,10 +193912,10 @@ Signed-off-by: Dom Cobley 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index c04e54752991..63e9dd62cde8 100644 +index 977c4f8de6cb..1593da74286d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -559,6 +559,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -563,6 +563,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, connector->interlace_allowed = 1; connector->doublescan_allowed = 0; @@ -194003,10 +193927,10 @@ index c04e54752991..63e9dd62cde8 100644 2.18.4 -From 0b31b691e779b60a7648ce6c6bfd74bfd79cbf5a Mon Sep 17 00:00:00 2001 +From 516f90ad09b5eb9f3fe16961bb3e6d222838f943 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2020 17:08:33 +0000 -Subject: [PATCH 397/704] PCI: brcmstb: Restore initial fundamental reset +Subject: [PATCH 396/741] 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 +193968,10 @@ index fea54f6fb7b1..bd0263d739c9 100644 2.18.4 -From ca56dc28a11548d3389b60e1aec436e046fb0f6a Mon Sep 17 00:00:00 2001 +From 539f4d78269a7fda12b23cdf33acc792a3093693 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 10 Nov 2020 20:04:08 +0000 -Subject: [PATCH 398/704] vc4: Clear unused infoframe packet RAM registers +Subject: [PATCH 397/741] vc4: Clear unused infoframe packet RAM registers Using a hdmi analyser the bytes in packet ram registers beyond the length were visible in the @@ -194061,10 +193985,10 @@ Signed-off-by: Dom Cobley 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 63e9dd62cde8..4a3e020364af 100644 +index 1593da74286d..225f3b094e82 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -587,9 +587,11 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -591,9 +591,11 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, const struct vc4_hdmi_register *ram_packet_start = &vc4_hdmi->variant->registers[HDMI_RAM_PACKET_START]; u32 packet_reg = ram_packet_start->offset + VC4_HDMI_PACKET_STRIDE * packet_id; @@ -194077,7 +194001,7 @@ index 63e9dd62cde8..4a3e020364af 100644 ssize_t len, i; int ret; -@@ -622,6 +624,13 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -626,6 +628,13 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, packet_reg += 4; } @@ -194095,10 +194019,10 @@ index 63e9dd62cde8..4a3e020364af 100644 2.18.4 -From 29bae206fe9a17637a18a29a623e417bedb5acb7 Mon Sep 17 00:00:00 2001 +From f20076fcc99acbb3128433f19d865d6fa3937dc9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:45:10 +0000 -Subject: [PATCH 399/704] Input: edt-ft5x06: Poll the device if no interrupt is +Subject: [PATCH 398/741] 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 +194122,10 @@ index 6ff81d48da86..7e8acc0c19be 100644 2.18.4 -From 7ac4ac14945ac8772f5d118b0159932f0f28113a Mon Sep 17 00:00:00 2001 +From c7f8606ea22d3099786d2bd79ae4dddf8d5bee33 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:52:25 +0000 -Subject: [PATCH 400/704] dtoverlays: Add an overlay for the EDT FT5406 +Subject: [PATCH 399/741] dtoverlays: Add an overlay for the EDT FT5406 touchscreen This touchscreen controller is used by the 7" DSI panel, and @@ -194305,10 +194229,10 @@ index 000000000000..407af59bf468 2.18.4 -From b2bfcb0bfe13799ba83db9120fd95ed8af5dcd31 Mon Sep 17 00:00:00 2001 +From bab7e039235cf15d512b304b676b09d1a2e4be5a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 23 Apr 2020 10:17:18 +0100 -Subject: [PATCH 401/704] drm/panel/raspberrypi-touchscreen: Use independent +Subject: [PATCH 400/741] drm/panel/raspberrypi-touchscreen: Use independent I2C actions with delay. We now have the hardware I2C controller pinmuxed to the drive the @@ -194369,10 +194293,10 @@ index 5e9ccefb88f6..7ebb5ee2a47d 100644 2.18.4 -From 19066c577814653c60f17efea22dd3ec77f05a41 Mon Sep 17 00:00:00 2001 +From d062ac79ad7b09058a31b9cf26c3f43aee98bfd4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 11:21:56 +0000 -Subject: [PATCH 402/704] drm/panel/raspberrypi-ts: Insert delay before polling +Subject: [PATCH 401/741] drm/panel/raspberrypi-ts: Insert delay before polling for startup state In switching to the hardware I2C controller there is an issue @@ -194401,10 +194325,10 @@ index 7ebb5ee2a47d..abb8a8586b6f 100644 2.18.4 -From 3d982b1660238acba4d875cf8461a0f074a77c09 Mon Sep 17 00:00:00 2001 +From e98df45642af941d834d93c11a5ce164f2438f2c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 17:49:35 +0000 -Subject: [PATCH 403/704] Add devicetree support for RaspberryPi 7" panel over +Subject: [PATCH 402/741] Add devicetree support for RaspberryPi 7" panel over DSI I2C Signed-off-by: Dave Stevenson @@ -194512,10 +194436,10 @@ index 000000000000..086f4ffd633a 2.18.4 -From aaebe0aecaf2cea96146b9efab279024279d4ab3 Mon Sep 17 00:00:00 2001 +From 12f1b22f35c158e34172c62f046b144167801fc8 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Fri, 15 Nov 2019 00:54:07 +0100 -Subject: [PATCH 404/704] mcp251xfd: add overlay +Subject: [PATCH 403/741] mcp251xfd: add overlay Signed-off-by: Marc Kleine-Budde --- @@ -194806,10 +194730,10 @@ index 000000000000..65c861bbd340 2.18.4 -From 9fa540c5fc0ac37334feae89ae661dceff8eadfb Mon Sep 17 00:00:00 2001 +From 8db1ccd4c3386de4e4a16a6edf7ea729ee8365f6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Nov 2020 14:53:14 +0000 -Subject: [PATCH 405/704] configs: Regenerate the defconfigs +Subject: [PATCH 404/741] 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 +194845,10 @@ index ff74c23ef24e..6939accc59bf 100644 2.18.4 -From f8a9a8ea19a90777f0e8d5546c9a773b505aeb27 Mon Sep 17 00:00:00 2001 +From b67692b7076fa840cd8544f6fae559a1cb26045e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Nov 2020 14:56:18 +0000 -Subject: [PATCH 406/704] configs: Restore BRIDGE_NETFILTER=m +Subject: [PATCH 405/741] 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 +194930,10 @@ index 6939accc59bf..88ae301afcb4 100644 2.18.4 -From 0b5ac78493e5ee52cae783dd2d84ab58b5ae29dd Mon Sep 17 00:00:00 2001 +From 098d71480f3ad48012644eade1bcec588f5031e4 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 23 Nov 2020 16:17:31 +0100 -Subject: [PATCH 407/704] configs: Enable WireGuard kernel module on armhf +Subject: [PATCH 406/741] configs: Enable WireGuard kernel module on armhf configs CONFIG_WIREGUARD=m implies CONFIG_ARM_CRYPTO=y, hence the latter is removed. @@ -195085,10 +195009,10 @@ index d8484c28caed..77c400a1ecd9 100644 2.18.4 -From c39b0e1470003c1dd0aa84a87a6780fb7a72804a Mon Sep 17 00:00:00 2001 +From 0c1a692def3e16fbc1c7454dac0034ec19193882 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 22 Nov 2020 11:01:08 +0000 -Subject: [PATCH 408/704] media: ov9281: Add 1280x720 and 640x480 modes +Subject: [PATCH 407/741] 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 +195224,10 @@ index 9610c24ceff1..12621c2dccd5 100644 2.18.4 -From 448adf355c3f7dbb4d33508be9faddd3b85e3612 Mon Sep 17 00:00:00 2001 +From 93791d59b5b5eb2ceb89c36993f3f1b1442f821b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 11 Nov 2020 17:18:01 +0000 -Subject: [PATCH 409/704] drm/vc4: Add support for DSI0 +Subject: [PATCH 408/741] 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 +195305,10 @@ index eaf276978ee7..1680adf9fe31 100644 2.18.4 -From c16068afcab4ba89cccc9b87159dba409b881d1c Mon Sep 17 00:00:00 2001 +From 7d365d98e133308fbe94b63ee6d88db1c9f1c6be Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:01:52 +0000 -Subject: [PATCH 410/704] dt-bindings: Add compatible for BCM2711 DSI1 +Subject: [PATCH 409/741] 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 +195334,10 @@ index eb44e072b6e5..90ee069ada8d 100644 2.18.4 -From 050371619c115eaf6db4b55ad2e929ca4c637a03 Mon Sep 17 00:00:00 2001 +From 1d4ddd6af01b5a01a44614f015e47a8f3536cb34 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:18:13 +0000 -Subject: [PATCH 411/704] drm/vc4: Add configuration for BCM2711 DSI1. +Subject: [PATCH 410/741] 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 +195379,10 @@ index 1680adf9fe31..0cd40d31e82d 100644 2.18.4 -From 93bda45e1f90c47b97539967b344d272095cbe68 Mon Sep 17 00:00:00 2001 +From 9b9b6e39b9973913634f880375e4e98ae5c89cd5 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 18:42:30 +0000 -Subject: [PATCH 412/704] dt: Use compatible string for BCM2711 DSI1 +Subject: [PATCH 411/741] dt: Use compatible string for BCM2711 DSI1 Updates the compatible string for DSI1 on BCM2711 to differentiate it from BCM2835. @@ -195484,10 +195408,10 @@ index 8ad6c3012fe3..7c2d374cb749 100644 2.18.4 -From 60250e05c313dc851f5252ddeae0b4024324fc96 Mon Sep 17 00:00:00 2001 +From 1cb8736b61e1ab26d22df268792256489a5f030e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 30 Nov 2020 16:16:03 +0000 -Subject: [PATCH 413/704] drm/vc4: Correct DSI register definition +Subject: [PATCH 412/741] 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 +195448,10 @@ index 0cd40d31e82d..bac5e07c05de 100644 2.18.4 -From 43e5c712cd917883cc93eba1c0761e72e1dcb9a9 Mon Sep 17 00:00:00 2001 +From 57b73a11a6aaed8f998d33ccc26bf12dd6bde898 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:47:17 +0530 -Subject: [PATCH 414/704] Allo boss2 driver +Subject: [PATCH 413/741] Allo boss2 driver Signed-off-by: Sudeep --- @@ -196720,10 +196644,10 @@ index 000000000000..5ad7f16964aa 2.18.4 -From aa149518d895e561efb1cb12cec493550bb50a41 Mon Sep 17 00:00:00 2001 +From 1382131a2ea7c82dff32457fa98edb20ab2338a5 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:51:15 +0530 -Subject: [PATCH 415/704] Add allo boss2 overlay +Subject: [PATCH 414/741] Add allo boss2 overlay Signed-off-by: Sudeep --- @@ -196829,10 +196753,10 @@ index 000000000000..a6adfb495eb9 2.18.4 -From 3892ef9a37af8ba7b0e78a22be3e985845da87af Mon Sep 17 00:00:00 2001 +From 08070001a744cd3aaa1d97bd3e27c7fd36208232 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:52:38 +0530 -Subject: [PATCH 416/704] Add allo boss2 config +Subject: [PATCH 415/741] Add allo boss2 config Signed-off-by: Sudeep --- @@ -196907,10 +196831,10 @@ index 88ae301afcb4..2359f9c08650 100644 2.18.4 -From 8ea4ec3e9373c8558a1e2ab7d1c999af504e9410 Mon Sep 17 00:00:00 2001 +From 13c577d67545ed7bc87dec4ac59cd0b5b512a688 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/704] Overlay: Update Allo Piano Plus dac driver for 5.4.y +Subject: [PATCH 416/741] 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 +196867,10 @@ index 374c553db062..d47a35def4f7 100644 2.18.4 -From 3776ded4e825775fbe488abd24ac2c7d3cc11a12 Mon Sep 17 00:00:00 2001 +From 80713b1a7e0866c6038eb606c8e907dfba336ce9 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:22:23 +0000 -Subject: [PATCH 418/704] media: bcm2835-unicam: Correctly handle error +Subject: [PATCH 417/741] 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 +196900,10 @@ index 6501fb205e20..c13a0a20fd12 100644 2.18.4 -From 461b4816890666e9cea2a808dfcd7a2cfe3576b9 Mon Sep 17 00:00:00 2001 +From ef2055bf3c792438ac3aa18747b48e01f7abed8c Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:26:09 +0000 -Subject: [PATCH 419/704] media: bcm2835-unicam: Return early from +Subject: [PATCH 418/741] media: bcm2835-unicam: Return early from stop_streaming() if stopped clk_disable_unprepare() is called unconditionally in stop_streaming(). @@ -197046,10 +196970,10 @@ index c13a0a20fd12..60309de02369 100644 2.18.4 -From 99ec63a11017a6d3411c4144263e414492887070 Mon Sep 17 00:00:00 2001 +From 7be1f84e0239c6516a652d2ee1052248784225c4 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 16:48:41 +0000 -Subject: [PATCH 420/704] media: bcm2835-unicam: Clear clock state when +Subject: [PATCH 419/741] media: bcm2835-unicam: Clear clock state when stopping streaming Commit 65e08c465020d4c5b51afb452efc2246d80fd66f failed to clear the @@ -197077,10 +197001,10 @@ index 60309de02369..a8b3f5433f04 100644 2.18.4 -From ca152a0edfaad3288cce938ef20e6bb9ff037628 Mon Sep 17 00:00:00 2001 +From bab353f81bf8b46aae024cc64b3c491780a4b77f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 3 Dec 2020 13:44:42 +0000 -Subject: [PATCH 421/704] PCI: brcmstb: Advertise MSI-X support +Subject: [PATCH 420/741] 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 +197034,10 @@ index bd0263d739c9..840f264f7a9b 100644 2.18.4 -From 2c261700213d6bd61498df03fade67775bda1466 Mon Sep 17 00:00:00 2001 +From d57bda868dc590b58eb6aab2018af589ba6ef4d5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 09:35:57 +0000 -Subject: [PATCH 422/704] ARM: dts: CM4 audio pins are not connected +Subject: [PATCH 421/741] ARM: dts: CM4 audio pins are not connected Signed-off-by: Phil Elwell --- @@ -197137,10 +197061,10 @@ index 49c69fdaef49..dbe8afe9ac5f 100644 2.18.4 -From 4b65cd2bdec65e95c89708b46eb54c547c575878 Mon Sep 17 00:00:00 2001 +From 4a3962af4efa23697937511829ae73303983d73e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 08:33:19 +0000 -Subject: [PATCH 423/704] configs: Add RTC_DRV_PCF85063=m +Subject: [PATCH 422/741] configs: Add RTC_DRV_PCF85063=m Include the driver module for the PCF85063 and PCF85063A RTC devices. @@ -197217,10 +197141,10 @@ index 2359f9c08650..5d6f27ec87f6 100644 2.18.4 -From 20a3d21634df8c3849d50cb74014f2cc1cb9d9b2 Mon Sep 17 00:00:00 2001 +From 19f68dda5ed2b8a7f7fa7e5c4f6f6f558dc3f50f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 08:49:53 +0000 -Subject: [PATCH 424/704] overlays: Add PCF85063 and PCF85063A to i2c-rtc +Subject: [PATCH 423/741] overlays: Add PCF85063 and PCF85063A to i2c-rtc Add support for the PCF85063 and PCF85063A RTC devices to the i2c-rtc overlay. @@ -197564,10 +197488,10 @@ index 735ca303e4fa..759f532d5be1 100644 2.18.4 -From 68125d3f77e104ccdcce958f29d020e138475e6b Mon Sep 17 00:00:00 2001 +From 6766954280e5d19f8c5cd7f3df384552cdf10b22 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 17:18:39 +0000 -Subject: [PATCH 425/704] overlays: Fix cut-and-paste error in README +Subject: [PATCH 424/741] overlays: Fix cut-and-paste error in README Signed-off-by: Phil Elwell --- @@ -197594,10 +197518,10 @@ index d4cf4176a54b..2fa2bbb943cd 100644 2.18.4 -From f223b7e00a55fa899d1131fceb12ae1982ebdcef Mon Sep 17 00:00:00 2001 +From b3d3ae25679c336bca70da1c4b8cbf70a5c3f100 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 4 Nov 2020 18:31:02 +0000 -Subject: [PATCH 426/704] staging/bcm2835-codec: Ensure OUTPUT timestamps are +Subject: [PATCH 425/741] staging/bcm2835-codec: Ensure OUTPUT timestamps are always forwarded The firmware by default tries to ensure that decoded frame @@ -197655,10 +197579,10 @@ index 5b596b5c057f..efda4dc039c3 100644 2.18.4 -From 76befc4e0929dba3d7565ee396cf3364d9b0f8ad Mon Sep 17 00:00:00 2001 +From 46881b1cff34e743050d3ddc14eeb73643b7e262 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 16:38:37 +0000 -Subject: [PATCH 427/704] net: lan78xx: Ack pending PHY ints when resetting +Subject: [PATCH 426/741] 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 +197617,10 @@ index 58f5b90f11d4..3cf5ad0bf0c1 100644 2.18.4 -From 82250f1b0bfb30139dae0efa2f70136c42346c4d Mon Sep 17 00:00:00 2001 +From b6ff281ec0a2e4fbee788957d719c1f484fb258f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 17:02:17 +0000 -Subject: [PATCH 428/704] overlays: mpu6050: Add 'addr' parameter +Subject: [PATCH 427/741] 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 +197661,10 @@ index 3109d90562ae..1b4c06535687 100644 2.18.4 -From b96a07daf129a94118da9f3239c1eff58a5ddad8 Mon Sep 17 00:00:00 2001 +From 828450fc1d649a549bdd0a69ff55486397d608b6 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 15 Dec 2020 16:26:51 +0000 -Subject: [PATCH 429/704] drm/vc4: Make normalize_zpos conditional on using +Subject: [PATCH 428/741] drm/vc4: Make normalize_zpos conditional on using fkms Eric's view was that there was no point in having zpos @@ -197772,10 +197696,10 @@ index 65513a90d606..5d0974cdeaaa 100644 2.18.4 -From 0f99d684f98c093bdf2fba5c5f923ac01a8d9686 Mon Sep 17 00:00:00 2001 +From 37fb7d79531d8ffe2749d9962c2164cee769bb7e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Dec 2020 09:28:17 +0000 -Subject: [PATCH 430/704] overlays: Add missing addresses to ads1015/ads1115 +Subject: [PATCH 429/741] 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 +197745,10 @@ index 4fc571c2db33..e44ced704ee2 100644 2.18.4 -From 75ee0aae41c17f620527c0e2c62615011f402cea Mon Sep 17 00:00:00 2001 +From e55698ad02c3c5a8e02b1502d260d2ba9a986411 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 9 Dec 2020 11:30:12 +0000 -Subject: [PATCH 431/704] media: i2c: imx477: Selection compliance fixes +Subject: [PATCH 430/741] 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 +197831,10 @@ index 3fbb173fa079..f68e7718b09c 100644 2.18.4 -From d5fc29e64d92639ffe5c7d28ea23fdc5d21ff44d Mon Sep 17 00:00:00 2001 +From a36b1b748692c2c9bf3083ac8b5e73130dbc8d8b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 13 Dec 2020 16:45:58 +0000 -Subject: [PATCH 432/704] staging/vc04_services/codec: Add support for CID +Subject: [PATCH 431/741] staging/vc04_services/codec: Add support for CID MPEG_HEADER_MODE Control V4L2_CID_MPEG_VIDEO_HEADER_MODE controls whether the encoder @@ -197977,10 +197901,10 @@ index 3791ab4b4244..c368246cbb6a 100644 2.18.4 -From 80f26988a8c3eb74a743d06e0966d6aca5084be6 Mon Sep 17 00:00:00 2001 +From 7670637994c66baf29cfd818ec9bf79effff861b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 13 Dec 2020 16:54:43 +0000 -Subject: [PATCH 433/704] staging/vc04_services/codec: Clear last buf dequeued +Subject: [PATCH 432/741] 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 +197944,10 @@ index c368246cbb6a..9673d807ca67 100644 2.18.4 -From 03576b1ba11d353afc3977553dc499851b323580 Mon Sep 17 00:00:00 2001 +From c130dbdbdf395be9b04ac6013fcce9674ab21914 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 14:44:08 +0200 -Subject: [PATCH 434/704] drm/atomic: Pass the full state to CRTC atomic +Subject: [PATCH 433/741] drm/atomic: Pass the full state to CRTC atomic enable/disable Commit 351f950db4ab28c321a1bd4b92e4bb03e34c4703 upstream. @@ -199293,10 +199217,10 @@ index 4efec30f8bad..bde42988c4b5 100644 2.18.4 -From cea7b48b8f5fb50f93c944aa4008eff22bda41d4 Mon Sep 17 00:00:00 2001 +From 3bd5230c16b56ecb1b494cba600a4d018c07c723 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 28 Oct 2020 13:32:21 +0100 -Subject: [PATCH 435/704] drm/atomic: Pass the full state to CRTC atomic_check +Subject: [PATCH 434/741] 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,7 +199419,7 @@ 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 fbbb1bde6b06..380883667fb3 100644 +index df26c07cb912..25e1b3fc4cee 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -5584,17 +5584,19 @@ static void dm_update_crtc_active_planes(struct drm_crtc *crtc, @@ -200384,10 +200308,10 @@ index bde42988c4b5..b97441deaf93 100644 2.18.4 -From ffa093d0878cc67bcc5c55245b51505a9ee8ec6e Mon Sep 17 00:00:00 2001 +From 1ddff6848684453763a42d7dda37f8cf39fb7c6f Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 28 Oct 2020 13:32:22 +0100 -Subject: [PATCH 436/704] drm/atomic: Pass the full state to CRTC atomic begin +Subject: [PATCH 435/741] drm/atomic: Pass the full state to CRTC atomic begin and flush MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -201482,10 +201406,10 @@ index b97441deaf93..f2de050085be 100644 2.18.4 -From 5aa9a76165c40ef881a37204b4bb8ab1517cbd0d Mon Sep 17 00:00:00 2001 +From fd1ab26c2905e5607d1d05fe43be5f1b6b9a6f3e Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 7 Dec 2020 16:57:11 +0100 -Subject: [PATCH 437/704] drm/vc4: hvs: Align the HVS atomic hooks to the new +Subject: [PATCH 436/741] 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 +201527,10 @@ index 34612edcabbd..4a26750b5e93 100644 2.18.4 -From 3d68b3065367af383392c6ee8aae6dd40146cecf Mon Sep 17 00:00:00 2001 +From 47d6c8a37438634245392ad00b6628884f59ff11 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:36 +0100 -Subject: [PATCH 438/704] drm/vc4: Pass the atomic state to encoder hooks +Subject: [PATCH 437/741] 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. @@ -201717,10 +201641,10 @@ index d01c051bdc14..52c3ee43d004 100644 static inline struct vc4_encoder * diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 4a3e020364af..8a93a584bc2a 100644 +index 225f3b094e82..21dda6d1822d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -717,7 +717,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) +@@ -721,7 +721,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) vc4_hdmi_set_audio_infoframe(encoder); } @@ -201730,7 +201654,7 @@ index 4a3e020364af..8a93a584bc2a 100644 { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); -@@ -730,7 +731,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder) +@@ -734,7 +735,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder) HDMI_READ(HDMI_VID_CTL) | VC4_HD_VID_CTL_BLANKPIX); } @@ -201740,7 +201664,7 @@ index 4a3e020364af..8a93a584bc2a 100644 { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); int ret; -@@ -944,7 +946,8 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) +@@ -947,7 +949,8 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) "VC4_HDMI_FIFO_CTL_RECENTER_DONE"); } @@ -201750,7 +201674,7 @@ index 4a3e020364af..8a93a584bc2a 100644 { struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); -@@ -1019,7 +1022,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) +@@ -1013,7 +1016,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) vc4_hdmi->variant->set_timings(vc4_hdmi, mode); } @@ -201760,7 +201684,7 @@ index 4a3e020364af..8a93a584bc2a 100644 { struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder); -@@ -1041,7 +1045,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder) +@@ -1035,7 +1039,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder) HDMI_WRITE(HDMI_FIFO_CTL, VC4_HDMI_FIFO_CTL_MASTER_SLAVE_N); } @@ -201774,10 +201698,10 @@ index 4a3e020364af..8a93a584bc2a 100644 2.18.4 -From 03a43cffe0de7150c0f13179fe7ac2f6075207fe Mon Sep 17 00:00:00 2001 +From 8f262cbf3a1df7639f9632fe25a3734d494181d4 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:38 +0100 -Subject: [PATCH 439/704] drm/vc4: hdmi: Don't access the connector state in +Subject: [PATCH 438/741] 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 @@ -201797,10 +201721,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 8a93a584bc2a..b14f7bd5a014 100644 +index 21dda6d1822d..c895467534dd 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -518,7 +518,9 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -522,7 +522,9 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) static void vc4_hdmi_connector_reset(struct drm_connector *connector) { drm_atomic_helper_connector_reset(connector); @@ -201815,10 +201739,10 @@ index 8a93a584bc2a..b14f7bd5a014 100644 2.18.4 -From 354d8d8894edd114c60cd852c6e00cd9e53cf2e2 Mon Sep 17 00:00:00 2001 +From 2426be05af2e54bc8fb5dd7c4f7dfb469e72d960 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:39 +0100 -Subject: [PATCH 440/704] drm/vc4: hdmi: Create a custom connector state +Subject: [PATCH 439/741] 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 @@ -201834,10 +201758,10 @@ Reviewed-by: Dave Stevenson 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index b14f7bd5a014..c307161e7794 100644 +index c895467534dd..d74e57f2ce52 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -517,10 +517,37 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -521,10 +521,37 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) static void vc4_hdmi_connector_reset(struct drm_connector *connector) { @@ -201877,7 +201801,7 @@ index b14f7bd5a014..c307161e7794 100644 } static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { -@@ -528,7 +555,7 @@ static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { +@@ -532,7 +559,7 @@ static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { .fill_modes = drm_helper_probe_single_connector_modes, .destroy = vc4_hdmi_connector_destroy, .reset = vc4_hdmi_connector_reset, @@ -201911,10 +201835,10 @@ index 1eb1fc0d95a3..c4f24e1f1b20 100644 2.18.4 -From 5b9ab815636fedc75420e7f9dfbddd7a52880134 Mon Sep 17 00:00:00 2001 +From ab1ef653a7accc5ca426d48289cb1fe80d1bf39d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:40 +0100 -Subject: [PATCH 441/704] drm/vc4: hdmi: Store pixel frequency in the connector +Subject: [PATCH 440/741] drm/vc4: hdmi: Store pixel frequency in the connector state The pixel rate is for now quite simple to compute, but with more features @@ -201933,10 +201857,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index c307161e7794..9a7859269448 100644 +index d74e57f2ce52..d7ca5b48dbb0 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -545,6 +545,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) +@@ -549,6 +549,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) if (!new_state) return NULL; @@ -201944,7 +201868,7 @@ index c307161e7794..9a7859269448 100644 __drm_atomic_helper_connector_duplicate_state(connector, &new_state->base); return &new_state->base; -@@ -975,9 +976,29 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) +@@ -978,9 +979,29 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) "VC4_HDMI_FIFO_CTL_RECENTER_DONE"); } @@ -201974,7 +201898,7 @@ index c307161e7794..9a7859269448 100644 struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long pixel_rate, hsm_rate; -@@ -989,7 +1010,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -992,7 +1013,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -201983,7 +201907,7 @@ index c307161e7794..9a7859269448 100644 ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate); if (ret) { DRM_ERROR("Failed to set pixel clock rate: %d\n", ret); -@@ -1144,6 +1165,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1138,6 +1159,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state, struct drm_connector_state *conn_state) { @@ -201991,7 +201915,7 @@ index c307161e7794..9a7859269448 100644 struct drm_display_mode *mode = &crtc_state->adjusted_mode; struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long long pixel_rate = mode->clock * 1000; -@@ -1174,6 +1196,8 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1168,6 +1190,8 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, if (pixel_rate > vc4_hdmi->variant->max_pixel_clock) return -EINVAL; @@ -202016,10 +201940,10 @@ index c4f24e1f1b20..71816aba852b 100644 2.18.4 -From fae734c91d2721edbac4e25c6caa62851bf358b4 Mon Sep 17 00:00:00 2001 +From f09addb500224806614e497b6390ac542ff0551b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:41 +0100 -Subject: [PATCH 442/704] drm/vc4: hdmi: Use the connector state pixel rate for +Subject: [PATCH 441/741] drm/vc4: hdmi: Use the connector state pixel rate for the PHY The PHY initialisation parameters are not based on the pixel clock but @@ -202039,10 +201963,10 @@ Signed-off-by: Maxime Ripard 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 9a7859269448..dbe5d5b5f433 100644 +index d7ca5b48dbb0..1b7e91506e75 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1061,7 +1061,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1055,7 +1055,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, } if (vc4_hdmi->variant->phy_init) @@ -202128,10 +202052,10 @@ index 057796b54c51..36535480f8e2 100644 2.18.4 -From 3a5848240f4714259cce2712491732d44312e71d Mon Sep 17 00:00:00 2001 +From 39d42d4d33bba3396db0a888fc68242092cada58 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:43 +0100 -Subject: [PATCH 443/704] drm/vc4: hdmi: Enable 10/12 bpc output +Subject: [PATCH 442/741] 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. @@ -202145,7 +202069,7 @@ Reviewed-by: Dave Stevenson 3 files changed, 79 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index dbe5d5b5f433..4dd0951f4ab1 100644 +index 1b7e91506e75..a5437365339e 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -78,6 +78,17 @@ @@ -202166,7 +202090,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 # define VC4_HD_M_SW_RST BIT(2) # define VC4_HD_M_ENABLE BIT(0) -@@ -531,6 +542,8 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector) +@@ -535,6 +546,8 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector) if (!new_state) return; @@ -202175,7 +202099,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 drm_atomic_helper_connector_tv_reset(connector); } -@@ -577,12 +590,20 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -581,12 +594,20 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, vc4_hdmi->ddc); drm_connector_helper_add(connector, &vc4_hdmi_connector_helper_funcs); @@ -202196,7 +202120,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 connector->polled = (DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT); -@@ -861,6 +882,7 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) +@@ -864,6 +885,7 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) } static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, @@ -202204,7 +202128,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 struct drm_display_mode *mode) { bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC; -@@ -904,7 +926,9 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -907,7 +929,9 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); } @@ -202214,7 +202138,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 struct drm_display_mode *mode) { bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC; -@@ -924,6 +948,9 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -927,6 +951,9 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, mode->crtc_vsync_end - interlaced, VC4_HDMI_VERTB_VBP)); @@ -202224,7 +202148,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 HDMI_WRITE(HDMI_VEC_INTERFACE_XBAR, 0x354021); HDMI_WRITE(HDMI_HORZA, -@@ -949,6 +976,39 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -952,6 +979,39 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); @@ -202264,7 +202188,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 HDMI_WRITE(HDMI_CLOCK_STOP, 0); } -@@ -1069,7 +1129,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1063,7 +1123,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, VC4_HDMI_SCHEDULER_CONTROL_IGNORE_VSYNC_PREDICTS); if (vc4_hdmi->variant->set_timings) @@ -202273,7 +202197,7 @@ index dbe5d5b5f433..4dd0951f4ab1 100644 } static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, -@@ -1190,6 +1250,14 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1184,6 +1244,14 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, pixel_rate = mode->clock * 1000; } @@ -202341,10 +202265,10 @@ index 10dd6097f2b5..9e85266e53f5 100644 2.18.4 -From 6ff6bd795ddcb13b5ff75eacce2182955829b910 Mon Sep 17 00:00:00 2001 +From f5587dfa35878e5d9ab5b16585643f2ba53fef3c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Dec 2020 14:57:41 +0000 -Subject: [PATCH 444/704] drm/vc4: Fixup fkms for API change +Subject: [PATCH 443/741] drm/vc4: Fixup fkms for API change Atomic flush and check changed API, so fix up the downstream-only FKMS driver. @@ -202397,10 +202321,10 @@ index f83efe013a5b..44b1addeb22e 100644 2.18.4 -From b2152e6fd809993c39a7ab05f8904adf28691506 Mon Sep 17 00:00:00 2001 +From 16e6e21e0b6109f97c4facd9d5cd5a882e601f25 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Dec 2020 20:00:38 +0000 -Subject: [PATCH 445/704] overlays: Rebuild "upstream" with latest ovmerge +Subject: [PATCH 444/741] overlays: Rebuild "upstream" with latest ovmerge The latest ovmerge drops disabled fragments, causing the "upstream" overlay to change. @@ -202696,10 +202620,10 @@ index 6195e02bf9ff..e0f7cc8ba9ea 100644 2.18.4 -From d7ecd5ae888f20d89a40a46bdd29e1c9731ecb7b Mon Sep 17 00:00:00 2001 +From 7ea34d647459a7805e41cfed1131e31c1c798391 Mon Sep 17 00:00:00 2001 From: menschel Date: Wed, 30 Dec 2020 21:55:34 +0100 -Subject: [PATCH 446/704] Add overlay for Seeed Studio CAN BUS FD HAT (#4034) +Subject: [PATCH 445/741] 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 +202848,10 @@ index 000000000000..e843d0b19745 2.18.4 -From 109c240a59042dabb23b4b55a00bc9ecf43df5b0 Mon Sep 17 00:00:00 2001 +From a36e9a133ba6decaabcd4641f0f19c9d80e55b15 Mon Sep 17 00:00:00 2001 From: gesangtome Date: Fri, 1 Jan 2021 18:03:17 +0800 -Subject: [PATCH 447/704] vc-sm-cma: fixed kbuild problem +Subject: [PATCH 446/741] vc-sm-cma: fixed kbuild problem error logs: drivers/staging/vc04_services/vc-sm-cma/Kconfig:1:error: recursive dependency detected! @@ -202960,10 +202884,10 @@ index a7c1a7bf516e..5df9198cdab1 100644 2.18.4 -From 39cf888d97314cc41e499118ebd6b2025ce4a643 Mon Sep 17 00:00:00 2001 +From 69cef2476a46f618f25f86e451c35e0856850ec7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 2 Jan 2021 10:51:58 +0000 -Subject: [PATCH 448/704] staging/vc04-services/codec: Fix logical precedence +Subject: [PATCH 447/741] staging/vc04-services/codec: Fix logical precedence issue Two issues identified with operator precedence in logical @@ -203002,10 +202926,10 @@ index 9673d807ca67..8a8f1e8db7d0 100644 2.18.4 -From 755d9a8cb4912d707a7025e1e56bc139fda63f84 Mon Sep 17 00:00:00 2001 +From e4803bdddaca1acee3aacd04f490084863eabb85 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 5 Jan 2021 14:34:20 +0000 -Subject: [PATCH 449/704] staging/mmal-vchiq: Fix incorrect static +Subject: [PATCH 448/741] staging/mmal-vchiq: Fix incorrect static vchiq_instance. For some reason lost in history function vchiq_mmal_init used @@ -203041,10 +202965,10 @@ index 0f98494812c8..014fbace54cd 100644 2.18.4 -From a43fadbefaabf0c5e74195d4715b9cd7bdd3da85 Mon Sep 17 00:00:00 2001 +From 176630fa2f95442d67e46ea9f17214466418f247 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:43:20 +0000 -Subject: [PATCH 450/704] staging/vc04_services: Add additional unpacked raw +Subject: [PATCH 449/741] staging/vc04_services: Add additional unpacked raw formats Support has been added for the unpacked (16bpp) versions of @@ -203098,10 +203022,10 @@ index 8eb6334ee055..59f7ad3a5b3b 100644 2.18.4 -From 4ee1d4dc748cbf505d95149e994349fe17c3946e Mon Sep 17 00:00:00 2001 +From bf9485112137749ba1c5ea41de9614f2c566a9a2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:45:16 +0000 -Subject: [PATCH 451/704] staging/bcm2835-codec: Add the unpacked (16bpp) raw +Subject: [PATCH 450/741] staging/bcm2835-codec: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -203271,10 +203195,10 @@ index 8a8f1e8db7d0..c883db63808f 100644 2.18.4 -From d71968d5e6414e7a45d035593ab6ba684859c670 Mon Sep 17 00:00:00 2001 +From aa986e65547a9323bed7e3fcc613a947196a78e2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:41:26 +0000 -Subject: [PATCH 452/704] staging/bcm2835-codec: Log the number of excess +Subject: [PATCH 451/741] staging/bcm2835-codec: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -203320,10 +203244,10 @@ index c883db63808f..94691ab7175a 100644 2.18.4 -From 9380d5a10c2517b5504083501c633c6c06088db2 Mon Sep 17 00:00:00 2001 +From a9e374a5484e9eb67dc7353388843fcb123d99fa Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:37:10 +0000 -Subject: [PATCH 453/704] staging/bcm2835-isp: Add the unpacked (16bpp) raw +Subject: [PATCH 452/741] staging/bcm2835-isp: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -203502,10 +203426,10 @@ index 8bb3d115b27a..9a313ffcabf5 100644 2.18.4 -From 210e626012545f4687602c8d7b7b9e19a5a91f97 Mon Sep 17 00:00:00 2001 +From 4e860fe44dae0a7b83741f3671f5cb8488cfef91 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:43:22 +0000 -Subject: [PATCH 454/704] staging/bcm2835-isp: Log the number of excess +Subject: [PATCH 453/741] staging/bcm2835-isp: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -203537,10 +203461,10 @@ index 9a313ffcabf5..afac2ad65790 100644 2.18.4 -From e9e47cad7d02f53961d80ef07e6f1e0be26beec6 Mon Sep 17 00:00:00 2001 +From 18763e834cda48edb9b2df118db1ede704750b12 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 30 Dec 2020 14:51:29 +0000 -Subject: [PATCH 455/704] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and +Subject: [PATCH 454/741] 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 +203531,10 @@ index 0cbfa9d559a2..5517d2135168 100644 2.18.4 -From be273ca246a634d7425a7bdba3a206f9db9fad4e Mon Sep 17 00:00:00 2001 +From b6927be28bed9ad007461ae17721531b33338cc1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 11 Jan 2021 14:49:33 +0000 -Subject: [PATCH 456/704] bcm2835-dma: Move WAIT_RESP from extra to info +Subject: [PATCH 455/741] bcm2835-dma: Move WAIT_RESP from extra to info Questionable: Might want to drop Signed-off-by: popcornmix @@ -203638,10 +203562,10 @@ index 5517d2135168..8b97b9f10a1a 100644 2.18.4 -From 27989f425a8ee77bc490bf20da7cc0246379a090 Mon Sep 17 00:00:00 2001 +From 5ffcb692368616ad88dbfaad6375b46b24a1b2c1 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:10 +0000 -Subject: [PATCH 457/704] bcm2835-dma: Avoid losing CS flags after interrupt +Subject: [PATCH 456/741] bcm2835-dma: Avoid losing CS flags after interrupt Signed-off-by: Dom Cobley --- @@ -203665,10 +203589,10 @@ index 8b97b9f10a1a..94a1b40b1645 100644 2.18.4 -From 7cc266ba45f49f4ce0b6a024f63d916af07b74c7 Mon Sep 17 00:00:00 2001 +From e78bf222d5c7e729fe318646be1bd5deaf077c89 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 11 Jan 2021 13:06:23 +0000 -Subject: [PATCH 458/704] dt: Enable DMA_WIDE_SOURCE and DMA_WIDE_DEST for hdmi +Subject: [PATCH 457/741] dt: Enable DMA_WIDE_SOURCE and DMA_WIDE_DEST for hdmi audio Signed-off-by: popcornmix @@ -203716,10 +203640,10 @@ index bd77ba3a3562..47b958428d0c 100644 2.18.4 -From 25e1ac32b432a6fb44aa1a87ed03cb5d243e953e Mon Sep 17 00:00:00 2001 +From b4302bfdf46a81f2ee5a4633eb5ac9b4e4a25f8b Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:29 +0000 -Subject: [PATCH 459/704] bcm2711-rpi.dtsi: Bump hdmi audio dma panic priority +Subject: [PATCH 458/741] bcm2711-rpi.dtsi: Bump hdmi audio dma panic priority to max Set panic priority to 15 and leave normal priority at 0 @@ -203755,10 +203679,10 @@ index 3dbfd601ca39..8053ef54acc8 100644 2.18.4 -From 3ba9b92ee24a8b72863b17d0db82b1e40e51090f Mon Sep 17 00:00:00 2001 +From 678254bd1efec97fdd7962d96fd021aec8869456 Mon Sep 17 00:00:00 2001 From: Paul Elder Date: Tue, 22 Dec 2020 14:27:46 +0900 -Subject: [PATCH 460/704] media: i2c: ov5647: Selection compliance fixes +Subject: [PATCH 459/741] 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 +203773,10 @@ index 86a821a172b3..40d0d45a2481 100644 2.18.4 -From 4a1e939515c2f393d1ddc2c91f443aed188b25b1 Mon Sep 17 00:00:00 2001 +From 654a6cf5e41323c885fcd26f9eb018c6ffa0db77 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 2 Jan 2021 21:08:59 +0100 -Subject: [PATCH 461/704] overlays: give Seeed Studio CAN BUS FD HAT a -v2 +Subject: [PATCH 460/741] 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 +203831,10 @@ rename to arch/arm/boot/dts/overlays/seeed-can-fd-hat-v2-overlay.dts 2.18.4 -From 4fddf827bce20199607a5558b5e203c1c66929a5 Mon Sep 17 00:00:00 2001 +From db131074de56c0667ad1002d60bccec0b470f04d Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 2 Jan 2021 21:38:58 +0100 -Subject: [PATCH 462/704] overlays: Add overlay for Seeed Studio CAN BUS FD HAT +Subject: [PATCH 461/741] 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 +204034,10 @@ index 000000000000..210d027a073e 2.18.4 -From 475ce42939e4bfccb50e0b6175513a822c8b4a42 Mon Sep 17 00:00:00 2001 +From 3ac68aed8aacc1aff27ea2d49888f59e109f15fc Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sat, 2 Jan 2021 02:34:03 +0000 -Subject: [PATCH 463/704] overlays: add wm8960-soundcard overlay +Subject: [PATCH 462/741] overlays: add wm8960-soundcard overlay add overlay for waveshare wm8960 simple-audio-card @@ -204250,10 +204174,10 @@ index 000000000000..289fa4dacdf1 2.18.4 -From 45df059301724b6a132691c81e344777d593c2be Mon Sep 17 00:00:00 2001 +From d154684a249536b17004221ab155e0e30795bc74 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sat, 26 Dec 2020 03:13:14 +0000 -Subject: [PATCH 464/704] overlays: add spi override to merus-amp overlay +Subject: [PATCH 463/741] overlays: add spi override to merus-amp overlay adds an override to the merus-amp overlay to turn the spi bus off @@ -204302,10 +204226,10 @@ index 4501fbdc253d..bbffd7d26324 100644 2.18.4 -From 81f7606ce52c2d105f5c21b03e646aa498ce053e Mon Sep 17 00:00:00 2001 +From 294cb825437c7c455822b4b540a3e8b56e02acbe Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Jan 2021 17:28:57 +0000 -Subject: [PATCH 465/704] dt: Add a camera regulator node to all downstream Pi +Subject: [PATCH 464/741] dt: Add a camera regulator node to all downstream Pi platforms The current firmware fixup of camera sensor overlays is not @@ -204663,10 +204587,10 @@ index 000000000000..55237d03ed94 2.18.4 -From d276c710380008ab6ecb0ed3542049c840f12854 Mon Sep 17 00:00:00 2001 +From 6dfdf6b3661769218c9f7d54aa32916f673e781f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Jan 2021 17:42:31 +0000 -Subject: [PATCH 466/704] dtoverlays: Update sensor overlays to use cam1_reg +Subject: [PATCH 465/741] dtoverlays: Update sensor overlays to use cam1_reg where possible Update those overlays that use the regulator framework to use the @@ -204920,10 +204844,10 @@ index 40b298d3dd86..b7a9c8c539da 100644 2.18.4 -From 20ccd7c86d7ef910d6f39f101775b2d300222c54 Mon Sep 17 00:00:00 2001 +From f4dff21435640156854e2d4adc4530d5fe32b3b4 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 9 Jan 2021 17:03:32 +0100 -Subject: [PATCH 467/704] overlays: seeed-can-fd-hat: clarify how to identify +Subject: [PATCH 466/741] 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 +204895,10 @@ index 5076ca440742..bc889782a30b 100644 2.18.4 -From f1cbf00be4011a7c92f8e0c8606c8916be3035df Mon Sep 17 00:00:00 2001 +From 6f452dd047dd0042e952cf90fc7741e3af644288 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 Jan 2021 21:25:38 +0000 -Subject: [PATCH 468/704] SQUASH: Revert: "overlays: Make the i2c-gpio overlay +Subject: [PATCH 467/741] SQUASH: Revert: "overlays: Make the i2c-gpio overlay safe again" This revert and its neighbour are opposites. When squashing, delete @@ -205003,10 +204927,10 @@ index 63231b5d7c0c..2323a61edf07 100644 2.18.4 -From 580579db8845ef42226fe193173a3beee312c736 Mon Sep 17 00:00:00 2001 +From 6449286bb2a192f742ab48deac0c1118f5cff8d6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 Jan 2021 21:27:56 +0000 -Subject: [PATCH 469/704] SQUASH: Revert "overlays: Fix dtc warnings in +Subject: [PATCH 468/741] SQUASH: Revert "overlays: Fix dtc warnings in i2c-gpio" This reverts commit 1c15edc0dca002c8536e9f1f5e1ec43017815018. @@ -205037,10 +204961,10 @@ index 2323a61edf07..63231b5d7c0c 100644 2.18.4 -From dcfdbfb11f8b3912aba3d164a6184e741327679f Mon Sep 17 00:00:00 2001 +From a4b8eed9c366d7dd9d492f9bc4e002ec51c0a182 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2021 08:57:21 +0000 -Subject: [PATCH 470/704] configs: Enable BCM2835 thermal driver in kernel8 +Subject: [PATCH 469/741] 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 +204995,10 @@ index 325ff25a243d..eeb52d96e26b 100644 2.18.4 -From dcf27319ea122c92c024e3f4bcb4e0ea28aa4fd9 Mon Sep 17 00:00:00 2001 +From 775c829aca2b44690394343ff3cd101176448115 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:18:42 +0000 -Subject: [PATCH 471/704] uapi: bcm2835-isp: Add colour denoise configuration +Subject: [PATCH 470/741] uapi: bcm2835-isp: Add colour denoise configuration Add a configuration structure for colour denoise to the bcm2835_isp driver. @@ -205133,10 +205057,10 @@ index cf8c0437f159..c50e3ca81565 100644 2.18.4 -From 2a379be53b831ea561c687e96839e86751b552bd Mon Sep 17 00:00:00 2001 +From b33d98a66ef9208d122357bc250684d264517f09 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:20:52 +0000 -Subject: [PATCH 472/704] staging: vc04_services: ISP: Add colour denoise +Subject: [PATCH 471/741] staging: vc04_services: ISP: Add colour denoise control Add colour denoise control to the bcm2835 driver through a new v4l2 @@ -205218,10 +205142,10 @@ index efda4dc039c3..79438d23912f 100644 2.18.4 -From 497458efc18db7996306a547f3de3673daaf62ba Mon Sep 17 00:00:00 2001 +From 7e53c244d8864c930c9b188c8185f11153e7f216 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Jan 2021 18:27:08 +0000 -Subject: [PATCH 473/704] configs: Add CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +Subject: [PATCH 472/741] configs: Add CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m Signed-off-by: popcornmix --- @@ -205296,10 +205220,10 @@ index 5d6f27ec87f6..5b6a5d59b394 100644 2.18.4 -From d2e036b861af8ff8a5126144f6e42fc93b6508d9 Mon Sep 17 00:00:00 2001 +From 361ee3710b7b37ad2f48b581cc9d78eb4ee66734 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 09:28:06 +0000 -Subject: [PATCH 474/704] configs: Add CONFIG_USB_NET_AQC111=m +Subject: [PATCH 473/741] configs: Add CONFIG_USB_NET_AQC111=m See: https://github.com/raspberrypi/linux/pull/4086 @@ -205376,10 +205300,10 @@ index 5b6a5d59b394..655b1d87720b 100644 2.18.4 -From 6220849207dd26c1b2635e202a533dde9619b4a9 Mon Sep 17 00:00:00 2001 +From ce690c57281ab71ef47f4b90d9a75a1799c69b6c Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Thu, 10 Dec 2020 19:22:45 +0100 -Subject: [PATCH 475/704] dt-bindings: nvmem: Add bindings for rmem driver +Subject: [PATCH 474/741] 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 +205382,10 @@ index 000000000000..29b53871aa02 2.18.4 -From e6db2e8703f0cf3461cb6df5ab80ef95cd375a02 Mon Sep 17 00:00:00 2001 +From 5dc7ff8ea32fcd5b488f9ef19a0c9928046b86eb Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Thu, 10 Dec 2020 12:13:49 +0100 -Subject: [PATCH 476/704] nvmem: Add driver to expose reserved memory as nvmem +Subject: [PATCH 475/741] 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 +205558,10 @@ index b557a0fcd4ba..281856ac1988 100644 2.18.4 -From bba77a5f6dc10ce164dcf1c22cb07d23c528262b Mon Sep 17 00:00:00 2001 +From 41e5e790da26d31f7b6f2462709a2cf5d0c8a08b Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 12:22:01 +0100 -Subject: [PATCH 477/704] ARM: dts: bcm2711: Add reserved memory template to +Subject: [PATCH 476/741] 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 +205624,10 @@ index dae841ce309f..22c562d4196a 100644 2.18.4 -From cc78392d3d926a86f75f888d7d5c444baacb951b Mon Sep 17 00:00:00 2001 +From 5a22511ebc2e9b83eb49296c9829e36005c7c5ce Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 13:04:37 +0100 -Subject: [PATCH 478/704] arm64: defconfig: Enable nvmem's rmem driver +Subject: [PATCH 477/741] arm64: defconfig: Enable nvmem's rmem driver It'll be used by the RPi4 family of boards to access its bootloader configuration. @@ -205729,10 +205653,10 @@ index 5cfe3cf6f2ac..a9f496d74639 100644 2.18.4 -From 3c474df8685a90afec0312fc4bf90ad3989d4233 Mon Sep 17 00:00:00 2001 +From e81724529bee2eb36925f60de34c1d752f7f5864 Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 13:15:41 +0100 -Subject: [PATCH 479/704] ARM: multi_v7_defconfig: Enable nvmem's rmem driver +Subject: [PATCH 478/741] 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 +205682,10 @@ index a611b0c1e540..ea2715c9f923 100644 2.18.4 -From 469b62a2693bb187ba724f5858b64b7e06ed7a35 Mon Sep 17 00:00:00 2001 +From ddb3d0de499fdbcad96ad933529a24e06aaebfd6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 12:08:19 +0000 -Subject: [PATCH 480/704] configs: Add NVMEM_RMEM=m for 2711 +Subject: [PATCH 479/741] configs: Add NVMEM_RMEM=m for 2711 Signed-off-by: Phil Elwell --- @@ -205797,10 +205721,10 @@ index 590a235f9e25..4c4068953a97 100644 2.18.4 -From 6ae7e92df22d2c19a3143afa81ca4ccf955df6ba Mon Sep 17 00:00:00 2001 +From 75e4c44cb62311d92cb4eb08a6f5449e924fff00 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 16:15:06 +0000 -Subject: [PATCH 481/704] configs: Add CRYPTO_ADIANTUM=m +Subject: [PATCH 480/741] configs: Add CRYPTO_ADIANTUM=m See: https://github.com/raspberrypi/linux/issues/3648 @@ -205877,10 +205801,10 @@ index 655b1d87720b..1ca2f13a2af5 100644 2.18.4 -From d19cb6866df80c7fdd3fe4591cfce9cda83d6735 Mon Sep 17 00:00:00 2001 +From f66b7790a151143bbeaae75a13f8fa761c5d5d49 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Jan 2021 11:30:04 +0000 -Subject: [PATCH 482/704] spi: bcm2835: Workaround/fix for zero-length +Subject: [PATCH 481/741] spi: bcm2835: Workaround/fix for zero-length transfers A relatively recent commit ([1]) contained optimisation for the PIO @@ -205909,7 +205833,7 @@ Signed-off-by: Phil Elwell 1 file changed, 10 insertions(+) diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c -index 5c7aa77f504e..aab6c7e5c114 100644 +index 59cff9ea8bea..9a47313cab46 100644 --- a/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c @@ -1090,6 +1090,16 @@ static int bcm2835_spi_transfer_one(struct spi_controller *ctlr, @@ -205933,10 +205857,10 @@ index 5c7aa77f504e..aab6c7e5c114 100644 2.18.4 -From 6d2481e11e668ce18e2a22020842b0dd6d748c8b Mon Sep 17 00:00:00 2001 +From 34a62d3bf9e143172fab3236dcc8cbb9f052ba23 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Jan 2021 10:34:11 +0000 -Subject: [PATCH 483/704] kbuild: Silence unavoidable dtc overlay warnings +Subject: [PATCH 482/741] 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 +205894,10 @@ index 9c0df5bde46c..43758c8d4b68 100644 2.18.4 -From abab6310563376ea09bb15703b28e787bafd5a5a Mon Sep 17 00:00:00 2001 +From 557dcc737fb2daf9799be1b8b1c1f6a86d920584 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 1 Feb 2021 12:45:29 +0000 -Subject: [PATCH 484/704] configs: Enable CONFIG_MEDIA_CEC_RC +Subject: [PATCH 483/741] configs: Enable CONFIG_MEDIA_CEC_RC See: https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=301072 --- @@ -206056,10 +205980,10 @@ index 1ca2f13a2af5..aa89eb5704cb 100644 2.18.4 -From 3449d32610f59339d420845ebe149bda507747a0 Mon Sep 17 00:00:00 2001 +From 6bd67d5d01391594771927e134786186a4d37609 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 29 Jan 2021 08:26:44 +0100 -Subject: [PATCH 485/704] Adds the DT-overlays to support Hifiberry AMP100 +Subject: [PATCH 484/741] Adds the DT-overlays to support Hifiberry AMP100 Adds new DT-overlay to control AMP100. @@ -206199,10 +206123,10 @@ index 000000000000..ebdef55d6110 2.18.4 -From 4309cbd724df46ddbd1853772e34e054bf7c91c1 Mon Sep 17 00:00:00 2001 +From 655c7b296e13e2cbce979006f73b3ee39f6e21d0 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 29 Jan 2021 16:16:39 +0100 -Subject: [PATCH 486/704] Enhances the Hifiberry DAC+ driver for Hifiberry +Subject: [PATCH 485/741] Enhances the Hifiberry DAC+ driver for Hifiberry AMP100 support Adds the necessary GPIO handling and ALSA mixer extensions. @@ -206443,10 +206367,10 @@ index 157ab4c2cc85..bdcac1b6992c 100644 2.18.4 -From 0a96703cec8b177dead76b8313a6b1421886cde8 Mon Sep 17 00:00:00 2001 +From 0069388463c77262b3fe7813f2a5432456776e78 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 3 Feb 2021 16:23:43 +0000 -Subject: [PATCH 487/704] ARM: dts: Declare Pi400 and CM4 have no audio pins +Subject: [PATCH 486/741] 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 +206416,10 @@ index 7ab0aba5f1a3..9ab2feb4424f 100644 2.18.4 -From b567c8094b32d8e7abb38d909abcd7aff8ce3ddd Mon Sep 17 00:00:00 2001 +From 643766b57bc7e1000753ac2845bd3b6c9e96b72f Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 17:29:32 +0000 -Subject: [PATCH 488/704] media: i2c: imx290: Replace V4L2_CID_GAIN with +Subject: [PATCH 487/741] media: i2c: imx290: Replace V4L2_CID_GAIN with V4L2_CID_ANALOGUE_GAIN Most software (including libcamera) requires V4L2_CID_ANALOGUE_GAIN, @@ -206536,10 +206460,10 @@ index 2e646fb01856..a2df46e4aabc 100644 2.18.4 -From 2f2870a7959bec2c97de7720b5c7cde6e7bfa08f Mon Sep 17 00:00:00 2001 +From bbb69a30df2b8e2a76b914d32a9a8cffd0b9502a Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 21:21:44 +0000 -Subject: [PATCH 489/704] media: i2c: imx290: Fix number of controls in +Subject: [PATCH 488/741] 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 +206494,10 @@ index a2df46e4aabc..33ce80686163 100644 2.18.4 -From 5c73ef8f7e709a8fac3488a6219752f932e202c1 Mon Sep 17 00:00:00 2001 +From cbedb2aa60e825b3b7fb42eff550a302eb8f0508 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Feb 2021 09:20:31 +0000 -Subject: [PATCH 490/704] i2c: bcm2835: Handle untimely DONE signal +Subject: [PATCH 489/741] 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 +206563,10 @@ index 5b2589b6b9cc..90ca593d8ae3 100644 2.18.4 -From 5f58a2585eadb1fd615416de65de5fff6e6d1982 Mon Sep 17 00:00:00 2001 +From 72d6e91ceff90239d4e940f4c5949e00c2e4b2bf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Feb 2021 12:04:06 +0000 -Subject: [PATCH 491/704] configs: Add MICREL_PHY=y +Subject: [PATCH 490/741] configs: Add MICREL_PHY=y Signed-off-by: Phil Elwell --- @@ -206678,10 +206602,10 @@ index 6acc0dbe9187..a2531896a8b6 100644 2.18.4 -From cbe515dcf980d9490ae605398f40737eb3df1095 Mon Sep 17 00:00:00 2001 +From 9b876acb78b6e4d739896bebc84a625be1b6e377 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:11:26 +0100 -Subject: [PATCH 492/704] Revert "vc4_hdmi: Move hdmi reset to bind" +Subject: [PATCH 491/741] Revert "vc4_hdmi: Move hdmi reset to bind" This reverts commit fdb112d44c1b0659aec1ef841939dff0f0dee49e. --- @@ -206689,10 +206613,10 @@ This reverts commit fdb112d44c1b0659aec1ef841939dff0f0dee49e. 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 4dd0951f4ab1..24f1d8386db7 100644 +index a5437365339e..845d5880ced6 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1120,6 +1120,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1114,6 +1114,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -206702,7 +206626,7 @@ index 4dd0951f4ab1..24f1d8386db7 100644 if (vc4_hdmi->variant->phy_init) vc4_hdmi->variant->phy_init(vc4_hdmi, vc4_conn_state); -@@ -2517,9 +2520,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2534,9 +2537,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi->disable_wifi_frequencies = of_property_read_bool(dev->of_node, "wifi-2.4ghz-coexistence"); @@ -206716,10 +206640,10 @@ index 4dd0951f4ab1..24f1d8386db7 100644 2.18.4 -From 69e3007d883046b9958de97fcb1031ba525cbdd4 Mon Sep 17 00:00:00 2001 +From 77365722009f019578f217bc96acef2b6fe5eed4 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:32 +0100 -Subject: [PATCH 493/704] Revert "vc4_hdmi: Make irq shared" +Subject: [PATCH 492/741] Revert "vc4_hdmi: Make irq shared" This reverts commit cd59e087d8bba4ba834565b4d48ba983143b5f27. --- @@ -206727,10 +206651,10 @@ This reverts commit cd59e087d8bba4ba834565b4d48ba983143b5f27. 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 24f1d8386db7..6aa97ac11a7c 100644 +index 845d5880ced6..768f53aca756 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2206,8 +2206,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2200,8 +2200,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) ret = devm_request_threaded_irq(&pdev->dev, platform_get_irq(pdev, 0), vc4_cec_irq_handler, @@ -206744,10 +206668,10 @@ index 24f1d8386db7..6aa97ac11a7c 100644 2.18.4 -From 1d8759a5b10275468cd93809643632fcb6ccba1d Mon Sep 17 00:00:00 2001 +From e6c36f3ba3091ff5316fcc7c64226d7b8dd8cf3b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:33 +0100 -Subject: [PATCH 494/704] Revert "vc4_hdmi_regs: Make interrupt mask variant +Subject: [PATCH 493/741] Revert "vc4_hdmi_regs: Make interrupt mask variant specific" This reverts commit 37c74a07cf22a7385c93170a723d22b95ff20a51. @@ -206758,10 +206682,10 @@ This reverts commit 37c74a07cf22a7385c93170a723d22b95ff20a51. 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 6aa97ac11a7c..b6239ead9078 100644 +index 768f53aca756..6aa35ac1ddfd 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2063,7 +2063,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -2057,7 +2057,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) u32 stat = HDMI_READ(HDMI_CEC_CPU_STATUS); u32 cntrl1, cntrl5; @@ -206770,7 +206694,7 @@ index 6aa97ac11a7c..b6239ead9078 100644 return IRQ_NONE; vc4_hdmi->cec_rx_msg.len = 0; cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1); -@@ -2079,7 +2079,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -2073,7 +2073,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) cntrl1 &= ~VC4_HDMI_CEC_START_XMIT_BEGIN; } HDMI_WRITE(HDMI_CEC_CNTRL_1, cntrl1); @@ -206779,7 +206703,7 @@ index 6aa97ac11a7c..b6239ead9078 100644 return IRQ_WAKE_THREAD; } -@@ -2118,9 +2118,9 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -2112,9 +2112,9 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) ((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) | ((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT)); @@ -206791,7 +206715,7 @@ index 6aa97ac11a7c..b6239ead9078 100644 HDMI_WRITE(HDMI_CEC_CNTRL_5, val | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); } -@@ -2628,8 +2628,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -2645,8 +2645,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { .phy_rng_disable = vc4_hdmi_phy_rng_disable, .calc_hsm_clock = vc4_hdmi_calc_hsm_clock, .channel_map = vc4_hdmi_channel_map, @@ -206800,7 +206724,7 @@ index 6aa97ac11a7c..b6239ead9078 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { -@@ -2657,8 +2655,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2674,8 +2672,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .phy_rng_disable = vc5_hdmi_phy_rng_disable, .calc_hsm_clock = vc5_hdmi_calc_hsm_clock, .channel_map = vc5_hdmi_channel_map, @@ -206809,7 +206733,7 @@ index 6aa97ac11a7c..b6239ead9078 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { -@@ -2686,8 +2682,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2703,8 +2699,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { .phy_rng_disable = vc5_hdmi_phy_rng_disable, .calc_hsm_clock = vc5_hdmi_calc_hsm_clock, .channel_map = vc5_hdmi_channel_map, @@ -206856,10 +206780,10 @@ index 1f1ed7efaff7..78fd28599aeb 100644 2.18.4 -From 01cc0b04932e20b889df837163120861ebe1fe37 Mon Sep 17 00:00:00 2001 +From 8ee098ee6d8bee62c3c28186d2dd7acb6a1b95af Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:35 +0100 -Subject: [PATCH 495/704] Revert "vc4_hdmi_regs: Add Intr2 register block" +Subject: [PATCH 494/741] Revert "vc4_hdmi_regs: Add Intr2 register block" This reverts commit c865bb1bb6b481acfa4157e4331db278a176f887. --- @@ -206869,7 +206793,7 @@ This reverts commit c865bb1bb6b481acfa4157e4331db278a176f887. 3 files changed, 33 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index b6239ead9078..ef055c10e23f 100644 +index 6aa35ac1ddfd..05c97b339704 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -411,7 +411,6 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) @@ -206880,7 +206804,7 @@ index b6239ead9078..ef055c10e23f 100644 drm_print_regset32(&p, &vc4_hdmi->phy_regset); drm_print_regset32(&p, &vc4_hdmi->ram_regset); drm_print_regset32(&p, &vc4_hdmi->rm_regset); -@@ -2361,14 +2360,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2355,14 +2354,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) if (!vc4_hdmi->dvp_regs) return -ENOMEM; @@ -206895,7 +206819,7 @@ index b6239ead9078..ef055c10e23f 100644 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy"); if (!res) return -ENODEV; -@@ -2449,10 +2440,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2443,10 +2434,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) if (ret) return ret; @@ -206987,10 +206911,10 @@ index 9e85266e53f5..20a1438a72cb 100644 2.18.4 -From be73c8dcf62e21ac667764656aabb59bd16c30de Mon Sep 17 00:00:00 2001 +From e86bbda70666a28bf297b51c7c7781d2e5b767da Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:38 +0100 -Subject: [PATCH 496/704] Revert "vc4_hdmi: BCM2835 requires a fixed hsm clock +Subject: [PATCH 495/741] Revert "vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC to work" This reverts commit 1cad24365e9f4325d68d4a16025f77abe3eda2f7. @@ -207000,10 +206924,10 @@ This reverts commit 1cad24365e9f4325d68d4a16025f77abe3eda2f7. 2 files changed, 17 insertions(+), 40 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index ef055c10e23f..9c943fc99c0c 100644 +index 05c97b339704..20e02a858be4 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1082,7 +1082,23 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1085,7 +1085,23 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -207028,7 +206952,7 @@ index ef055c10e23f..9c943fc99c0c 100644 ret = clk_set_min_rate(vc4_hdmi->hsm_clock, hsm_rate); if (ret) { DRM_ERROR("Failed to set HSM clock rate: %d\n", ret); -@@ -1295,39 +1311,6 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { +@@ -1289,39 +1305,6 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { .enable = vc4_hdmi_encoder_enable, }; @@ -207068,7 +206992,7 @@ index ef055c10e23f..9c943fc99c0c 100644 static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) { int i; -@@ -2613,7 +2596,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -2630,7 +2613,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { .phy_disable = vc4_hdmi_phy_disable, .phy_rng_enable = vc4_hdmi_phy_rng_enable, .phy_rng_disable = vc4_hdmi_phy_rng_disable, @@ -207076,7 +207000,7 @@ index ef055c10e23f..9c943fc99c0c 100644 .channel_map = vc4_hdmi_channel_map, }; -@@ -2640,7 +2622,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2657,7 +2639,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .phy_disable = vc5_hdmi_phy_disable, .phy_rng_enable = vc5_hdmi_phy_rng_enable, .phy_rng_disable = vc5_hdmi_phy_rng_disable, @@ -207084,7 +207008,7 @@ index ef055c10e23f..9c943fc99c0c 100644 .channel_map = vc5_hdmi_channel_map, }; -@@ -2667,7 +2648,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2684,7 +2665,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { .phy_disable = vc5_hdmi_phy_disable, .phy_rng_enable = vc5_hdmi_phy_rng_enable, .phy_rng_disable = vc5_hdmi_phy_rng_disable, @@ -207110,10 +207034,10 @@ index b0ba2421cc04..f18f1d775241 100644 2.18.4 -From d3b3a1c97c639f339dcd0f0afbf431c6e54e1429 Mon Sep 17 00:00:00 2001 +From e0c5dc4db3efb6682190240745f275ecc455f65b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:22:55 +0100 -Subject: [PATCH 497/704] ARM: bcm: Select BRCMSTB_L2_IRQ for bcm2835 +Subject: [PATCH 496/741] 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 +207079,10 @@ index 5c4ac1c9f4e0..2c5620822895 100644 2.18.4 -From fa6d651ffb7923e98f7cb29589479f5c1cc7758d Mon Sep 17 00:00:00 2001 +From 147764e8f45ba50bce55e73a51e240c358dbb018 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 15:22:56 +0100 -Subject: [PATCH 498/704] drm/vc4: hdmi: Move hdmi reset to bind +Subject: [PATCH 497/741] 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"). @@ -207178,10 +207102,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 9c943fc99c0c..83693ad916d3 100644 +index 20e02a858be4..300585a35223 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1135,9 +1135,6 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1129,9 +1129,6 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -207191,7 +207115,7 @@ index 9c943fc99c0c..83693ad916d3 100644 if (vc4_hdmi->variant->phy_init) vc4_hdmi->variant->phy_init(vc4_hdmi, vc4_conn_state); -@@ -2489,6 +2486,9 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2506,6 +2503,9 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi->disable_wifi_frequencies = of_property_read_bool(dev->of_node, "wifi-2.4ghz-coexistence"); @@ -207205,10 +207129,10 @@ index 9c943fc99c0c..83693ad916d3 100644 2.18.4 -From 96c475de1ec12c4d658e571f18b154c28ee0f72c Mon Sep 17 00:00:00 2001 +From 42838cb123b4272519e60daf78be5bfb65d1b786 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:02 +0100 -Subject: [PATCH 499/704] drm/vc4: hdmi: Introduce a CEC clock +Subject: [PATCH 498/741] 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. @@ -207224,7 +207148,7 @@ Signed-off-by: Maxime Ripard 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 83693ad916d3..e1862ffbc5e6 100644 +index 300585a35223..590db6ad8303 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -456,7 +456,7 @@ static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) @@ -207236,7 +207160,7 @@ index 83693ad916d3..e1862ffbc5e6 100644 value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT; HDMI_WRITE(HDMI_CEC_CNTRL_1, value); } -@@ -2288,6 +2288,7 @@ static int vc4_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2282,6 +2282,7 @@ static int vc4_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) return PTR_ERR(vc4_hdmi->hsm_clock); } vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock; @@ -207244,7 +207168,7 @@ index 83693ad916d3..e1862ffbc5e6 100644 return 0; } -@@ -2382,6 +2383,12 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2376,6 +2377,12 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) return PTR_ERR(vc4_hdmi->audio_clock); } @@ -207273,10 +207197,10 @@ index f18f1d775241..c9b4b7678df4 100644 2.18.4 -From bced2975e0adaa19e588487bbca46925a641d51e Mon Sep 17 00:00:00 2001 +From cd03de3a8d2eadf07a8ca3458a0799a00bc1dd58 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:03 +0100 -Subject: [PATCH 500/704] drm/vc4: hdmi: Split the interrupt handlers +Subject: [PATCH 499/741] 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 @@ -207293,10 +207217,10 @@ Reviewed-by: Dave Stevenson 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index e1862ffbc5e6..5643a4fb5b98 100644 +index 590db6ad8303..ce4e2ab3ea14 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1990,15 +1990,22 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) +@@ -1984,15 +1984,22 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) } #ifdef CONFIG_DRM_VC4_HDMI_CEC @@ -207325,7 +207249,7 @@ index e1862ffbc5e6..5643a4fb5b98 100644 cec_transmit_done(vc4_hdmi->cec_adap, CEC_TX_STATUS_OK, 0, 0, 0, 0); } else { -@@ -2012,6 +2019,19 @@ static irqreturn_t vc4_cec_irq_handler_thread(int irq, void *priv) +@@ -2006,6 +2013,19 @@ static irqreturn_t vc4_cec_irq_handler_thread(int irq, void *priv) return IRQ_HANDLED; } @@ -207345,7 +207269,7 @@ index e1862ffbc5e6..5643a4fb5b98 100644 static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) { struct drm_device *dev = vc4_hdmi->connector.dev; -@@ -2036,31 +2056,55 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) +@@ -2030,31 +2050,55 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) } } @@ -207420,10 +207344,10 @@ index e1862ffbc5e6..5643a4fb5b98 100644 2.18.4 -From a3255a6f2b8c6eae98bf4e9d6bb7c733293a6533 Mon Sep 17 00:00:00 2001 +From 1cdc48381358a0ee4fef96f975f225c6a1a60920 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:04 +0100 -Subject: [PATCH 501/704] drm/vc4: hdmi: Support BCM2711 CEC interrupt setup +Subject: [PATCH 500/741] 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 @@ -207441,10 +207365,10 @@ Reviewed-by: Dave Stevenson 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 5643a4fb5b98..852a8cecf469 100644 +index ce4e2ab3ea14..1d0c233b5086 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2141,9 +2141,11 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -2135,9 +2135,11 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) ((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) | ((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT)); @@ -207458,7 +207382,7 @@ index 5643a4fb5b98..852a8cecf469 100644 HDMI_WRITE(HDMI_CEC_CNTRL_5, val | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); } -@@ -2218,8 +2220,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2212,8 +2214,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector); cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info); @@ -207467,7 +207391,7 @@ index 5643a4fb5b98..852a8cecf469 100644 value = HDMI_READ(HDMI_CEC_CNTRL_1); /* Set the logical address to Unregistered */ value |= VC4_HDMI_CEC_ADDR_MASK; -@@ -2227,12 +2227,32 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2221,12 +2221,32 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) vc4_hdmi_cec_update_clk_div(vc4_hdmi); @@ -207506,7 +207430,7 @@ index 5643a4fb5b98..852a8cecf469 100644 ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev); if (ret < 0) -@@ -2664,6 +2684,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2681,6 +2701,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { PHY_LANE_CK, }, .unsupported_odd_h_timings = true, @@ -207514,7 +207438,7 @@ index 5643a4fb5b98..852a8cecf469 100644 .init_resources = vc5_hdmi_init_resources, .csc_setup = vc5_hdmi_csc_setup, -@@ -2690,6 +2711,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2707,6 +2728,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { PHY_LANE_2, }, .unsupported_odd_h_timings = true, @@ -207544,10 +207468,10 @@ index c9b4b7678df4..ae1be14812b8 100644 2.18.4 -From daef5fcd94e667c407adb316b9d141f75cb38afd Mon Sep 17 00:00:00 2001 +From cf93b1ee520019cb1e138d31203fd6ae4924d4df Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 15:23:05 +0100 -Subject: [PATCH 502/704] drm/vc4: hdmi: Remove cec_available flag +Subject: [PATCH 501/741] drm/vc4: hdmi: Remove cec_available flag Now that our HDMI controller supports CEC for the BCM2711, let's remove that flag. @@ -207561,10 +207485,10 @@ Signed-off-by: Maxime Ripard 2 files changed, 7 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 852a8cecf469..66963eeb4db0 100644 +index 1d0c233b5086..6155a0950592 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2206,9 +2206,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2200,9 +2200,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) u32 value; int ret; @@ -207574,7 +207498,7 @@ index 852a8cecf469..66963eeb4db0 100644 vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops, vc4_hdmi, "vc4", CEC_CAP_DEFAULTS | -@@ -2655,7 +2652,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -2672,7 +2669,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { .debugfs_name = "hdmi_regs", .card_name = "vc4-hdmi", .max_pixel_clock = 162000000, @@ -207600,10 +207524,10 @@ index ae1be14812b8..cb2af9f144df 100644 2.18.4 -From 813ea5733324cecdbe8fffea4d84642f1eab6ab1 Mon Sep 17 00:00:00 2001 +From a9281fb423e88ca2ba17d48f1063b70063412f20 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:06 +0100 -Subject: [PATCH 503/704] drm/vc4: hdmi: Don't register the CEC adapter if +Subject: [PATCH 502/741] 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, @@ -207620,10 +207544,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 66963eeb4db0..e0cff1935fbd 100644 +index 6155a0950592..8d39114649be 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2203,9 +2203,15 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) +@@ -2197,9 +2197,15 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) { struct cec_connector_info conn_info; struct platform_device *pdev = vc4_hdmi->pdev; @@ -207643,10 +207567,10 @@ index 66963eeb4db0..e0cff1935fbd 100644 2.18.4 -From 2b70e990cdb18c81f60a86f8b4b36a3ae23f936c Mon Sep 17 00:00:00 2001 +From 99857fce5e00083c0180417a04a669a670d2607b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:07 +0100 -Subject: [PATCH 504/704] dt-binding: display: bcm2711-hdmi: Add CEC and +Subject: [PATCH 503/741] dt-binding: display: bcm2711-hdmi: Add CEC and hotplug interrupts The CEC and hotplug interrupts were missing when that binding was @@ -207700,10 +207624,10 @@ index 7ce06f9f9f8e..6e8ac910bdd8 100644 2.18.4 -From c38a8654f5779e062bf39ba98ff4bfab0cd374cc Mon Sep 17 00:00:00 2001 +From ba90fce2cfd048113aca8e5ad375512b3bd60e1b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:08 +0100 -Subject: [PATCH 505/704] ARM: dts: bcm2711: Add the BSC interrupt controller +Subject: [PATCH 504/741] 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 +207679,10 @@ index 7c2d374cb749..786faf7050fc 100644 2.18.4 -From 70deb6109b1844a4d6e7b84c3c5fa3b383e92312 Mon Sep 17 00:00:00 2001 +From e0c4849b5e19b455d4ed7bed3d20de53be5bbfc6 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:09 +0100 -Subject: [PATCH 506/704] ARM: dts: bcm2711: Add the CEC interrupt controller +Subject: [PATCH 505/741] 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 +207743,10 @@ index 786faf7050fc..9e0d9b2ca586 100644 2.18.4 -From c24272dbb87b8ddf4440b64d5cf30934af3bb26c Mon Sep 17 00:00:00 2001 +From 1539483ea0ffaca4e078ee854da8169a9e7c9efe Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 9 Dec 2020 16:37:01 +0000 -Subject: [PATCH 507/704] bcm2711: Disable bsc_intr and aon_intr by default and +Subject: [PATCH 506/741] bcm2711: Disable bsc_intr and aon_intr by default and enable in overlay Signed-off-by: Dom Cobley @@ -207880,10 +207804,10 @@ index f721f12d729d..8e9220f303f0 100644 2.18.4 -From c617e7df29a183080223f5707b4b157ee6dfec09 Mon Sep 17 00:00:00 2001 +From fa89fa5749ef1aa303f7e51a7883ec2041fb825a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:42 +0100 -Subject: [PATCH 508/704] drm/vc4: hdmi: Limit the BCM2711 to the max without +Subject: [PATCH 507/741] drm/vc4: hdmi: Limit the BCM2711 to the max without scrambling Unlike the previous generations, the HSM clock limitation is way above @@ -207897,7 +207821,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index e0cff1935fbd..2d1359b1cb38 100644 +index 8d39114649be..9a8061c9bfee 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -400,6 +400,8 @@ static void hdmi_codec_eld_chmap(struct vc4_hdmi *vc4_hdmi) @@ -207909,7 +207833,7 @@ index e0cff1935fbd..2d1359b1cb38 100644 static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) { struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -2676,7 +2678,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2693,7 +2695,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .encoder_type = VC4_ENCODER_TYPE_HDMI0, .debugfs_name = "hdmi0_regs", .card_name = "vc4-hdmi-0", @@ -207918,7 +207842,7 @@ index e0cff1935fbd..2d1359b1cb38 100644 .registers = vc5_hdmi_hdmi0_fields, .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi0_fields), .phy_lane_mapping = { -@@ -2703,7 +2705,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2720,7 +2722,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { .encoder_type = VC4_ENCODER_TYPE_HDMI1, .debugfs_name = "hdmi1_regs", .card_name = "vc4-hdmi-1", @@ -207931,10 +207855,10 @@ index e0cff1935fbd..2d1359b1cb38 100644 2.18.4 -From 76dddb5223340f6c6082824fc9ab31b596815af7 Mon Sep 17 00:00:00 2001 +From 48121829ea61a5e9c46a2f3baff48db307068f07 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 17:08:20 +0000 -Subject: [PATCH 509/704] bcm2711: Remove old GIC interrupt +Subject: [PATCH 508/741] bcm2711: Remove old GIC interrupt Now handled through aon_intr @@ -207967,10 +207891,10 @@ index 0ef7bde01555..9d2730c27637 100644 2.18.4 -From cdbcd7b9cd5967986b43842b343ea55b0aa3b33e Mon Sep 17 00:00:00 2001 +From 8acfb3b6d43c340ab46647a4a579f0505bd459a4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:48:35 +0000 -Subject: [PATCH 510/704] staging:bcm2835-camera: Fix the cherry-pick of AWB +Subject: [PATCH 509/741] staging:bcm2835-camera: Fix the cherry-pick of AWB Greyworld The cherry-pick of the patch that added the greyworld AWB mode @@ -208001,10 +207925,10 @@ index a7af25f90449..f73daa38fa66 100644 2.18.4 -From 611d36481c24a6690ffd8dbb72865b4a6e403c80 Mon Sep 17 00:00:00 2001 +From e543033cb7c91654f1696da29d32f80a99abc06b Mon Sep 17 00:00:00 2001 From: David Knell Date: Mon, 8 Feb 2021 03:33:30 +0000 -Subject: [PATCH 511/704] Overlays for PiFi-Mini amp +Subject: [PATCH 510/741] Overlays for PiFi-Mini amp Signed-off-by: David Knell --- @@ -208095,10 +208019,10 @@ index 000000000000..963597d611b5 2.18.4 -From fd5a0d4c1255f2a70b7786541d79380b93294d0b Mon Sep 17 00:00:00 2001 +From ceea25e9fe6782408d6c3baeef00a8b2afabb19c Mon Sep 17 00:00:00 2001 From: David Knell Date: Mon, 8 Feb 2021 03:35:15 +0000 -Subject: [PATCH 512/704] Added PiFi-Mini to rpi-simple-soundcard.c +Subject: [PATCH 511/741] Added PiFi-Mini to rpi-simple-soundcard.c Signed-off-by: David Knell --- @@ -208245,10 +208169,10 @@ index bf61a4239073..c25351e6ee90 100644 2.18.4 -From 7eb9d2106a48cfdd994938f6649854bd881b9f47 Mon Sep 17 00:00:00 2001 +From 3da46cf0042cd29bdb22a858fa078150f5095f6d Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 12 Jan 2021 13:55:39 +0000 -Subject: [PATCH 513/704] bcm2835-isp: Allow formats with different colour +Subject: [PATCH 512/741] bcm2835-isp: Allow formats with different colour spaces. Each supported format now includes a mask showing the allowed colour @@ -208965,10 +208889,10 @@ index 4d24aec7203d..5cca8bdd1d65 100644 2.18.4 -From d2f78ffe344bb93f519e7b198ce8cbf4b9e436fb Mon Sep 17 00:00:00 2001 +From 054bdfe9ba3936c5add1171c90bc9583710bc211 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Mon, 1 Feb 2021 16:53:46 +0100 -Subject: [PATCH 514/704] Hifiberry DAC+ADC Pro fix for the PLL when changing +Subject: [PATCH 513/741] Hifiberry DAC+ADC Pro fix for the PLL when changing sample rates Adds 2 msecs delay when switching between oscillators to allow @@ -209027,10 +208951,10 @@ index 4c03927107e3..8b04d30bcbee 100644 2.18.4 -From d8e86eea5aa471b78a6b6108533d4264901bc533 Mon Sep 17 00:00:00 2001 +From e71e5f232057d754b8239ab192c97a44ab637171 Mon Sep 17 00:00:00 2001 From: Mathias Anhalt Date: Sun, 24 Jan 2021 15:15:01 +0100 -Subject: [PATCH 515/704] Fixed picture line bug in all ov9281 modes +Subject: [PATCH 514/741] Fixed picture line bug in all ov9281 modes Signed-off-by: Mathias Anhalt --- @@ -209071,10 +208995,10 @@ index 12621c2dccd5..c646f11ef1d5 100644 2.18.4 -From 432fcf90907fbb91de5a0b1b5e7b3f5985ab4953 Mon Sep 17 00:00:00 2001 +From 5e4e13bd91b3d562d8c1bd07f5bd9385567d2637 Mon Sep 17 00:00:00 2001 From: Mathias Anhalt Date: Wed, 3 Feb 2021 20:34:09 +0100 -Subject: [PATCH 516/704] Added hflip and vflip controls to ov9281 +Subject: [PATCH 515/741] Added hflip and vflip controls to ov9281 Signed-off-by: Mathias Anhalt --- @@ -209189,10 +209113,10 @@ index c646f11ef1d5..16777b6f8e14 100644 2.18.4 -From faeaf6b7294196ab05db3ea3f62f515f6d3ccd34 Mon Sep 17 00:00:00 2001 +From 9fb5e30b46cffda259244871014c6da8951954d0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:45:57 +0000 -Subject: [PATCH 517/704] Partial revert "bcm2711: Disable bsc_intr and +Subject: [PATCH 516/741] Partial revert "bcm2711: Disable bsc_intr and aon_intr by default and enable in overlay" This reverts commit c765fd45856a34b9e46daa9263faeafe006c3985. @@ -209239,10 +209163,10 @@ index 8e9220f303f0..6a11260a4f1a 100644 2.18.4 -From 0256c70de5d319a16cc6cf28316694daad5ff483 Mon Sep 17 00:00:00 2001 +From 8cca9456ec23a892a04c7ee720c97ea066a0cd96 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:49:25 +0000 -Subject: [PATCH 518/704] Revert "ARM: dts: bcm2711: Add the BSC interrupt +Subject: [PATCH 517/741] Revert "ARM: dts: bcm2711: Add the BSC interrupt controller" This reverts commit 93a3b097c467bd5efc1ae3a271c336fdad3b2108. @@ -209301,10 +209225,10 @@ index be2f9ba08ea8..b4bca5af95e1 100644 2.18.4 -From 8d407fd3b20269ec96b4ce752c0cf485d80fe46a Mon Sep 17 00:00:00 2001 +From f6215e360e93328dfca20738fdbc60b2efa08c86 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2021 10:25:35 +0000 -Subject: [PATCH 519/704] gpio-fsm: Rename 'num-soft-gpios' to avoid warning +Subject: [PATCH 518/741] 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 +209263,10 @@ index 2cab50e51315..708f258fda35 100644 2.18.4 -From 3c1c03e95e47539fe6ef4972350ba784f6e5f1c1 Mon Sep 17 00:00:00 2001 +From fb05539d71ff563b861107d415820ce0c8d363fb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 15 Feb 2021 10:32:18 +0000 -Subject: [PATCH 520/704] overlays: Rename gpio-fsm property num-soft-gpios +Subject: [PATCH 519/741] 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 +209309,10 @@ index afc9f034b5fc..3c997266a67d 100644 2.18.4 -From 05298c293d3e7c21102c978f81f84663cd6fe8df Mon Sep 17 00:00:00 2001 +From a4e9aff904fc1818f0e8c6e5aa31a0fe04f399b6 Mon Sep 17 00:00:00 2001 From: Laurentiu Palcu Date: Wed, 27 Nov 2019 14:42:35 +0000 -Subject: [PATCH 521/704] drm: fix HDR static metadata type field numbering +Subject: [PATCH 520/741] 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 +209346,10 @@ index 9850d59d6f1c..c8ec982ff498 100644 2.18.4 -From 156d315c42ce2e0666b66279c47b25302da67450 Mon Sep 17 00:00:00 2001 +From cd3f0bbf1dd4da256440f018af84fa1750e92e0e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 2 Dec 2020 18:36:24 +0000 -Subject: [PATCH 522/704] drm/vc4: Add HDR metadata property to the VC5 HDMI +Subject: [PATCH 521/741] drm/vc4: Add HDR metadata property to the VC5 HDMI connectors Now that we can export deeper colour depths, add in the signalling @@ -209438,10 +209362,10 @@ Signed-off-by: Dave Stevenson 2 files changed, 31 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 2d1359b1cb38..905e5595dd8d 100644 +index 9a8061c9bfee..1ee45a16d67f 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -613,6 +613,10 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -617,6 +617,10 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, connector->doublescan_allowed = 0; connector->stereo_allowed = 1; @@ -209452,7 +209376,7 @@ index 2d1359b1cb38..905e5595dd8d 100644 drm_connector_attach_encoder(connector, encoder); return 0; -@@ -755,6 +759,25 @@ static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder) +@@ -759,6 +763,25 @@ static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder) vc4_hdmi_write_infoframe(encoder, &frame); } @@ -209478,7 +209402,7 @@ index 2d1359b1cb38..905e5595dd8d 100644 static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); -@@ -767,6 +790,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) +@@ -771,6 +794,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) */ if (vc4_hdmi->audio.streaming) vc4_hdmi_set_audio_infoframe(encoder); @@ -209487,7 +209411,7 @@ index 2d1359b1cb38..905e5595dd8d 100644 } static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, -@@ -2672,6 +2697,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -2689,6 +2714,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { .phy_rng_enable = vc4_hdmi_phy_rng_enable, .phy_rng_disable = vc4_hdmi_phy_rng_disable, .channel_map = vc4_hdmi_channel_map, @@ -209495,7 +209419,7 @@ index 2d1359b1cb38..905e5595dd8d 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { -@@ -2699,6 +2725,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2716,6 +2742,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .phy_rng_enable = vc5_hdmi_phy_rng_enable, .phy_rng_disable = vc5_hdmi_phy_rng_disable, .channel_map = vc5_hdmi_channel_map, @@ -209503,7 +209427,7 @@ index 2d1359b1cb38..905e5595dd8d 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { -@@ -2726,6 +2753,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2743,6 +2770,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { .phy_rng_enable = vc5_hdmi_phy_rng_enable, .phy_rng_disable = vc5_hdmi_phy_rng_disable, .channel_map = vc5_hdmi_channel_map, @@ -209529,10 +209453,10 @@ index cb2af9f144df..33b5f120bbeb 100644 2.18.4 -From 3fae7e1e19f330d2a983f94cd631a206511b67fe Mon Sep 17 00:00:00 2001 +From f085b55c3b7cfbfdb9dbf4fe15b623bdc72d9a11 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 5 Feb 2021 14:07:12 +0000 -Subject: [PATCH 523/704] drm/vc4: Add connector check to trigger mode_change +Subject: [PATCH 522/741] drm/vc4: Add connector check to trigger mode_change when hdr metadata changes Signed-off-by: Dom Cobley @@ -209541,10 +209465,10 @@ Signed-off-by: Dom Cobley 1 file changed, 40 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 905e5595dd8d..2eda64df7351 100644 +index 1ee45a16d67f..4129382f088b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -527,6 +527,45 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -531,6 +531,45 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) return ret; } @@ -209590,7 +209514,7 @@ index 905e5595dd8d..2eda64df7351 100644 static void vc4_hdmi_connector_reset(struct drm_connector *connector) { struct vc4_hdmi_connector_state *old_state = -@@ -576,6 +615,7 @@ static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { +@@ -580,6 +619,7 @@ static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { static const struct drm_connector_helper_funcs vc4_hdmi_connector_helper_funcs = { .get_modes = vc4_hdmi_connector_get_modes, @@ -209602,10 +209526,10 @@ index 905e5595dd8d..2eda64df7351 100644 2.18.4 -From 291967aeb7451751b37dc756512c6c649b213d88 Mon Sep 17 00:00:00 2001 +From ef930e89b6e45ab784815ece3cb6472856993828 Mon Sep 17 00:00:00 2001 From: John Cox Date: Mon, 8 Feb 2021 16:01:37 +0000 -Subject: [PATCH 524/704] staging: rpivid: Fix crash when CMA alloc fails +Subject: [PATCH 523/741] 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 +209652,10 @@ index fc3caed58187..e6b07920aa8c 100644 2.18.4 -From 6296b7109efdcb00db15c072a461fda2eac48bd5 Mon Sep 17 00:00:00 2001 +From a7964412a2093e0d85fee60c53777be4de793f32 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 14:23:58 +0000 -Subject: [PATCH 525/704] dt: Add option for dpi without DE and PCLK (for +Subject: [PATCH 524/741] 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 +209688,10 @@ index e657affae46f..12c7b0b2bb5f 100644 2.18.4 -From 8ac68a1388064e02d0de93931473c78237a41b67 Mon Sep 17 00:00:00 2001 +From 8ee9e7bf378b5fe0934e709552566bc346a425fe Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 14:50:59 +0000 -Subject: [PATCH 526/704] defconfigs: Add DRM_DISPLAY_CONNECTOR and +Subject: [PATCH 525/741] defconfigs: Add DRM_DISPLAY_CONNECTOR and DRM_SIMPLE_BRIDGE for VGA666 VGA666 uses "vga-connector" from DRM_DISPLAY_CONNECTOR, and @@ -209852,10 +209776,10 @@ index aa89eb5704cb..f0a791a03abd 100644 2.18.4 -From de64f3dcecc0d3cd9bfaf28acc324a1d887f0f68 Mon Sep 17 00:00:00 2001 +From 2d1f801a8f4dcf5d630179974f3df4e97d2619b9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 14:41:10 +0000 -Subject: [PATCH 527/704] dtoverlays: Add an overlay for the VGA666 when used +Subject: [PATCH 526/741] 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 +209940,10 @@ index 000000000000..6e787099e861 2.18.4 -From 335fd57e80632a7ba264e4aaff5ba1a8653d52de Mon Sep 17 00:00:00 2001 +From 1d373d0bb965011fd86bf10445b7fe15235afe37 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:31:37 +0000 -Subject: [PATCH 528/704] drm/vc4: Change the default DPI format to being +Subject: [PATCH 527/741] 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 +209980,10 @@ index a90f2545baee..db63f4e11b17 100644 2.18.4 -From a4088cf27a8f729d5a6007b83a4445693839e5fc Mon Sep 17 00:00:00 2001 +From 041a647dc85f7035f86ca4109218b908dddd7590 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 17 Oct 2020 15:42:54 +0100 -Subject: [PATCH 529/704] gpio-fsm: Show state info in /sys/class/gpio-fsm +Subject: [PATCH 528/741] 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 +210170,10 @@ index 708f258fda35..d71a81d9b669 100644 2.18.4 -From f7f30b33415a0c7615dd7cb91896a3775777e4f4 Mon Sep 17 00:00:00 2001 +From 0c76c2ca9d7ce35da301e28b0ad1c48644300d37 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Feb 2021 09:21:30 +0000 -Subject: [PATCH 530/704] gpio-fsm: Fix shutdown timeout handling +Subject: [PATCH 529/741] 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 +210202,10 @@ index d71a81d9b669..306f5123546c 100644 2.18.4 -From 4687e1943b7afb2d3018d7882633914eb290a38c Mon Sep 17 00:00:00 2001 +From 344678632768a0f856cd2753b975159e98a3e544 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Feb 2021 09:29:26 +0000 -Subject: [PATCH 531/704] overlays: fsm-demo: Ensure all LEDs are turned off +Subject: [PATCH 530/741] 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 +210234,10 @@ index 9b5da179914f..e9944f5cd258 100644 2.18.4 -From 2d4f37fddbffa81438564a2ec4a790c3f67473ea Mon Sep 17 00:00:00 2001 +From 851f695ab60be05c034a3fad2131c44722ab1375 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Feb 2021 09:52:27 +0000 -Subject: [PATCH 532/704] configs: Add various missing IPV6 modules +Subject: [PATCH 531/741] configs: Add various missing IPV6 modules See: https://github.com/raspberrypi/linux/issues/4144 @@ -210545,10 +210469,10 @@ index f0a791a03abd..60bda75b6965 100644 2.18.4 -From ad49e5ab65a7b9e17ba0646196c5204b0d288fe2 Mon Sep 17 00:00:00 2001 +From 57c8103689d8cd9cbfcc831a8f05ff2e236a0fb4 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 10 Feb 2021 10:18:53 +0000 -Subject: [PATCH 533/704] media: i2c: imx477: Remove auto frame length +Subject: [PATCH 532/741] media: i2c: imx477: Remove auto frame length adjusting The V4L2_CID_EXPOSURE_AUTO_PRIORITY was used to let the sensor control @@ -210693,10 +210617,10 @@ index f68e7718b09c..30055244166b 100644 2.18.4 -From 9c4ba9a702f8dde3cdefbd8e29a1e32b36dcef56 Mon Sep 17 00:00:00 2001 +From 85e727ce7e82e180b6d5ee8a750d1cfcf1298f11 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 10 Feb 2021 10:50:32 +0000 -Subject: [PATCH 534/704] media: i2c: imx477: Add very long exposure control to +Subject: [PATCH 533/741] media: i2c: imx477: Add very long exposure control to the driver Add support for very long exposures by using the exposure multiplier @@ -210825,10 +210749,10 @@ index 30055244166b..0143e3129258 100644 2.18.4 -From 8cc9b25a49fa156999cddd40ace091ac765413f5 Mon Sep 17 00:00:00 2001 +From 84417692506d07a953acec24a9e00567fdf20cbf Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 17 Feb 2021 18:08:12 +0000 -Subject: [PATCH 535/704] media: i2c: imx290: Fix up exposure calcuations and +Subject: [PATCH 534/741] media: i2c: imx290: Fix up exposure calcuations and ranges Should now correspond exactly to the datasheet. @@ -210890,10 +210814,10 @@ index 33ce80686163..43e2f294a53b 100644 2.18.4 -From dd721ad329d8ff04c95aec6ef828b6b4db8f87f7 Mon Sep 17 00:00:00 2001 +From 27016e28a512377b32da74934741e55905033605 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 18 Feb 2021 11:58:29 +0000 -Subject: [PATCH 536/704] media: i2c: imx290: Handle exposure correctly when +Subject: [PATCH 535/741] media: i2c: imx290: Handle exposure correctly when vblank changes When vblank changes we must modify the exposure range. Also, with this @@ -210938,10 +210862,10 @@ index 43e2f294a53b..255f66985306 100644 2.18.4 -From acf53ca4ff799f384b81548a1b610671a8f8bcd0 Mon Sep 17 00:00:00 2001 +From 79e0590f9ed1cd4d2571904cc6f2e2ce7ab6a111 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/704] DAC overlays (#4154) +Subject: [PATCH 536/741] DAC overlays (#4154) Adding overlays for PiFi DAC Zero and PiFi DAC HD. @@ -211105,10 +211029,10 @@ index 000000000000..645ea74cb435 2.18.4 -From 3e2c56ba0fc173599261f9b34438e1905112e5bc Mon Sep 17 00:00:00 2001 +From f49b7532dca15fa648231d6ab54a1450f8c9632c Mon Sep 17 00:00:00 2001 From: Peter Harper Date: Mon, 22 Feb 2021 12:34:20 +0000 -Subject: [PATCH 538/704] configs: Change CONFIG_BLK_DEV_NVME=y for 2711 +Subject: [PATCH 537/741] configs: Change CONFIG_BLK_DEV_NVME=y for 2711 See https://github.com/raspberrypi/linux/issues/4163 --- @@ -211146,10 +211070,10 @@ index b5dce7480cff..8a643571a458 100644 2.18.4 -From 2ced4ae6ea62afb1ca80ad365a58602e0074b4d9 Mon Sep 17 00:00:00 2001 +From bb0cee16c8ad7f26c92d62df8957aeb63c7624a6 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 18 Feb 2021 15:05:57 +0000 -Subject: [PATCH 539/704] media: i2c: imx477: Fix crop height for 2028x1080 +Subject: [PATCH 538/741] 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 +211101,10 @@ index 0143e3129258..e3d164555b09 100644 2.18.4 -From fe1e8aee39d292361cd9006509214b11d02c524c Mon Sep 17 00:00:00 2001 +From 717e383470c1d04238c5e6a6fd6e1a511959a592 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 18 Feb 2021 15:23:11 +0000 -Subject: [PATCH 540/704] media: i2c: imx477: Replace existing 1012x760 mode +Subject: [PATCH 539/741] 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 +211304,10 @@ index e3d164555b09..0c552b9d54c5 100644 2.18.4 -From 096a4b06d0cbeff3b815a56f76f7bb4f0682186c Mon Sep 17 00:00:00 2001 +From 38802ed8e5d927395a01d21fa9dd78857ee834f5 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 19 Feb 2021 10:30:49 +0000 -Subject: [PATCH 541/704] media: i2c: imx477: Remove internal +Subject: [PATCH 540/741] 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 +211380,10 @@ index 0c552b9d54c5..f43c86407d97 100644 2.18.4 -From 59c1243ff06c05469bfd2d962efb21b16239a13b Mon Sep 17 00:00:00 2001 +From 1050d0e8a4d04f4393a1cc55a4dcaa66e4155f73 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 19 Feb 2021 11:06:40 +0000 -Subject: [PATCH 542/704] media: i2c: imx477: Remove unused function parameter +Subject: [PATCH 541/741] 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 +211420,10 @@ index f43c86407d97..34bfd22cadc6 100644 2.18.4 -From a8c08a97ede35846adbc2ef131f365b67d64f47f Mon Sep 17 00:00:00 2001 +From 8b8045bfcb36d88c5e9b6f3c92038bb243f27ad8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Feb 2021 14:19:00 +0000 -Subject: [PATCH 543/704] overlays: i2c-rtc: Add the Dallas DS1340 +Subject: [PATCH 542/741] overlays: i2c-rtc: Add the Dallas DS1340 See: https://github.com/raspberrypi/linux/issues/4180 @@ -211567,10 +211491,10 @@ index 759f532d5be1..408b71ec97b5 100644 2.18.4 -From 7247ba96e2a153d2a1de74f0139baf2dafc638b2 Mon Sep 17 00:00:00 2001 +From 0239d556adf0da8cfa3f22b09936a5c88fca4c86 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Feb 2021 14:20:05 +0000 -Subject: [PATCH 544/704] overlays: Update the upstream overlay +Subject: [PATCH 543/741] overlays: Update the upstream overlay Signed-off-by: Phil Elwell --- @@ -211598,10 +211522,10 @@ index e0f7cc8ba9ea..f73a1879e690 100644 2.18.4 -From 04795af06870fb6db1cc47ea613bce63f41b7ac9 Mon Sep 17 00:00:00 2001 +From 8b3c50ca833dd8185a1698e55cadbba003a4fd85 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:12:44 +0000 -Subject: [PATCH 545/704] Revert "Bluetooth: Always request for user +Subject: [PATCH 544/741] Revert "Bluetooth: Always request for user confirmation for Just Works (LE SC)" This reverts commit ffee202a78c2980688bc5d2f7d56480e69a5e0c9. @@ -211649,10 +211573,10 @@ index 2b7879afc333..36ac2db5340c 100644 2.18.4 -From 83bc62d6bfc975bcf7092bd8d007e738ce328094 Mon Sep 17 00:00:00 2001 +From 20af3653ce5b34e3af4889cd6d3dce14ed302ec3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:14:35 +0000 -Subject: [PATCH 546/704] Revert "Bluetooth: Always request for user +Subject: [PATCH 545/741] Revert "Bluetooth: Always request for user confirmation for Just Works" This reverts commit 92516cd97fd4d8ad5b1421a0d51771044f453a5f. @@ -211698,10 +211622,10 @@ index 36ac2db5340c..7c3be6b3d454 100644 2.18.4 -From 17bea77cded899411d39e52d281259b93c99fc2b Mon Sep 17 00:00:00 2001 +From 15c7292dbd584c323927bc8b05cf4eaa82752e37 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 5 Mar 2021 15:40:45 +0000 -Subject: [PATCH 547/704] media: bcm2835-unicam: Fix bug in buffer swapping +Subject: [PATCH 546/741] media: bcm2835-unicam: Fix bug in buffer swapping logic If multiple sets of interrupts occur simultaneously, it may be unsafe @@ -211780,10 +211704,10 @@ index a8b3f5433f04..234f0eaf9c8c 100644 2.18.4 -From fc03734529aef3174857ae41df62986dc1657b96 Mon Sep 17 00:00:00 2001 +From a4c7cea3674bf0cde6294652511001d62ff2f368 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 8 Mar 2021 15:32:25 +0000 -Subject: [PATCH 548/704] Assign crypto aliases to different AES implementation +Subject: [PATCH 547/741] 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 +211819,10 @@ index fb507d569922..cc52829d426a 100644 2.18.4 -From ef6612f9ff2a35901d535e7094ae3d0f170fc04d Mon Sep 17 00:00:00 2001 +From c0cbadbc83f34f8098e31c2f0566e493262395cb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Mar 2021 16:11:46 +0000 -Subject: [PATCH 549/704] overlays: Improve the i2c-rtc,i2c_csi_dsi option +Subject: [PATCH 548/741] 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 +211875,10 @@ index 408b71ec97b5..b9842e11b5e0 100644 2.18.4 -From befb32eb8ef7bbe84ac1d273733d2213aa2673bc Mon Sep 17 00:00:00 2001 +From 10a1c6abe99291c6cb59a535a185bb52fd3afaff Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Mar 2021 16:59:05 +0000 -Subject: [PATCH 550/704] configs: Add CONFIG_RTS_HCTOSYS=y +Subject: [PATCH 549/741] 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 +211959,10 @@ index 60bda75b6965..584e82f7de99 100644 2.18.4 -From f79ff8a408e968273778e18701eeab8de1be5092 Mon Sep 17 00:00:00 2001 +From 0fc5b07e8b1e8685ac132ad15753be73d06912e2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:48:47 +0000 -Subject: [PATCH 551/704] media/v4l2_m2m: In buffered mode run jobs if either +Subject: [PATCH 550/741] 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 +211998,10 @@ index 34dd8ba5469f..329dc316934e 100644 2.18.4 -From 5e80973e9742093f8a38ee8572dd5081467d4d63 Mon Sep 17 00:00:00 2001 +From c34a800656e81f73828321a4ead0d46d33bdab5b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:55:37 +0000 -Subject: [PATCH 552/704] staging/bcm2835-codec: Correct logging of size_t to +Subject: [PATCH 551/741] staging/bcm2835-codec: Correct logging of size_t to %zu Fixes: "staging/bcm2835-codec: Log the number of excess supported formats" @@ -212114,10 +212038,10 @@ index 94691ab7175a..0c4d8bf77b91 100644 2.18.4 -From 582c61c62818f9ff024085f87a3991efa4cfe238 Mon Sep 17 00:00:00 2001 +From 5e2f12adc9364afef5126187893e6f0c5b2884fb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Feb 2021 15:50:18 +0000 -Subject: [PATCH 553/704] staging/bcm2835-codec: Add support for pixel aspect +Subject: [PATCH 552/741] 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 +212126,10 @@ index 0c4d8bf77b91..46f659e55f18 100644 2.18.4 -From 4d98d43b1f41775e418df6c5b0756c2e39ef2b7e Mon Sep 17 00:00:00 2001 +From 03f5c2335d67012df642dae5aa109a9efeced5b5 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Feb 2021 16:46:39 +0000 -Subject: [PATCH 554/704] staging/bcm2835-codec: Implement additional +Subject: [PATCH 553/741] staging/bcm2835-codec: Implement additional g_selection calls for decode v4l_cropcap calls our vidioc_g_pixelaspect function to get the pixel @@ -212243,10 +212167,10 @@ index 46f659e55f18..7aa6c53e279e 100644 2.18.4 -From 70e957249da1e77e57c4fffb932fd68def449c6e Mon Sep 17 00:00:00 2001 +From 75f8f7c706b8efd325d570ecd8eabcc45766d176 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Mar 2021 19:07:48 +0000 -Subject: [PATCH 555/704] staging/bcm2835-codec: Add VC-1 support. +Subject: [PATCH 554/741] staging/bcm2835-codec: Add VC-1 support. Providing the relevant licence has been purchased, then Pi0-3 can decode VC-1. @@ -212278,10 +212202,10 @@ index 7aa6c53e279e..5729a8a7d94e 100644 2.18.4 -From 526304d3302932bf5a82620d5ca842e96fb5e7d2 Mon Sep 17 00:00:00 2001 +From 0ffc1124918018e06c8366fab178e8a88d6395f0 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Sun, 24 Jan 2021 15:44:10 +0000 -Subject: [PATCH 556/704] vc4/drm: Avoid full hdmi audio fifo writes +Subject: [PATCH 555/741] 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. @@ -212294,10 +212218,10 @@ Signed-off-by: Dom Cobley 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 2eda64df7351..f9eb6a557a4d 100644 +index 4129382f088b..56ba7105a0ef 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1614,10 +1614,10 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1608,10 +1608,10 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, /* Set the MAI threshold */ HDMI_WRITE(HDMI_MAI_THR, @@ -212316,10 +212240,10 @@ index 2eda64df7351..f9eb6a557a4d 100644 2.18.4 -From ab61851bd07fb957b87dfad84c3044fd8d285e5a Mon Sep 17 00:00:00 2001 +From 1e2ca35d394bc1fa3c6a6e93a2db75b4ee2db110 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 12 Mar 2021 11:26:29 +0000 -Subject: [PATCH 557/704] vc4/drm: Increase hdmi audio axi priority to avoid +Subject: [PATCH 556/741] 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 +212282,10 @@ index 8053ef54acc8..20581ee97827 100644 2.18.4 -From e99e93b807fbb11612aac6315616e4ac3b4ea5f5 Mon Sep 17 00:00:00 2001 +From 66534cd32d5895a0f88e588357d38304ca36b1f6 Mon Sep 17 00:00:00 2001 From: Assaf Gordon Date: Fri, 12 Mar 2021 00:13:07 -0700 -Subject: [PATCH 558/704] overlays: gpio-led: new overlay +Subject: [PATCH 557/741] overlays: gpio-led: new overlay Add generic connection between the kernel's LED framework and RPI's GPIO pins. @@ -212560,10 +212484,10 @@ index 000000000000..d8e9d53f1b61 2.18.4 -From 62770dd89065d4ad95fab3be4d50561d658d54e2 Mon Sep 17 00:00:00 2001 +From f7a364554253b83e52ad5826541284b0f7f07782 Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Mon, 15 Mar 2021 17:25:02 +0100 -Subject: [PATCH 559/704] overlays: Add pcie-32bit-dma overlay +Subject: [PATCH 558/741] 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 +212583,10 @@ index 000000000000..cca3e83721b7 2.18.4 -From 1007fd50cbe7f964de8b32ac4a2869bb1bf014c2 Mon Sep 17 00:00:00 2001 +From e3f8ee11306badaabfdc7a065397f9aca3238a5f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 17 Mar 2021 09:13:28 +0000 -Subject: [PATCH 560/704] Revert "i2c: bcm2835: Handle untimely DONE signal" +Subject: [PATCH 559/741] Revert "i2c: bcm2835: Handle untimely DONE signal" This reverts commit 431ac1d21b5e842c5a564bc0bab31d7dc11611f5. @@ -212726,10 +212650,10 @@ index 90ca593d8ae3..5b2589b6b9cc 100644 2.18.4 -From 40719488c8cb7df64da91840d5833bc86e0f31b4 Mon Sep 17 00:00:00 2001 +From f7d3c163f60e08d4fedb9e816ca4437fbcc6630d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 22 Mar 2021 09:27:16 +0000 -Subject: [PATCH 561/704] ARM: dts: bcm2711: Add aliases for additional SPIs +Subject: [PATCH 560/741] 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 +212715,10 @@ index 9ab2feb4424f..9a999405ab85 100644 2.18.4 -From 36aa7fd299b9e48669045d2cfed6ade7b0006ad4 Mon Sep 17 00:00:00 2001 +From 49e795d9cf225792d451135665909c73deb50912 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/704] Make rpi poe fan less noisy in cool environments +Subject: [PATCH 561/741] 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 +212745,10 @@ index 544038b614e1..af812132a8f7 100644 2.18.4 -From 1c76eb1205832811964c5ee70494a99c504ec229 Mon Sep 17 00:00:00 2001 +From 8b58a7782e6eb5003cca67de086eb4016d3b3ccd Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Mar 2021 19:43:48 +0000 -Subject: [PATCH 563/704] vc4/drm: Fix source offsets with DRM_FORMAT_P030 +Subject: [PATCH 562/741] 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 +212822,10 @@ index 3d33fe3dacea..4198eb81e62d 100644 2.18.4 -From ef7227a5b5a0d4b3aa85ba2ba192df7fc6e5ffb3 Mon Sep 17 00:00:00 2001 +From 3684150d4fed85a1436f393eeeeee48e86989af0 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 15 Mar 2021 13:28:06 +0000 -Subject: [PATCH 564/704] vc4/drm: vc4_plane: Remove subpixel positioning check +Subject: [PATCH 563/741] vc4/drm: vc4_plane: Remove subpixel positioning check There is little harm in ignoring fractional coordinates (they just get truncated). @@ -212966,10 +212890,10 @@ index 4198eb81e62d..5a268ac6d6fc 100644 2.18.4 -From 8bf4b8db8450df6803e9b941b70de56af170ed9f Mon Sep 17 00:00:00 2001 +From 739d14929abf93920cd951959cf5304c874ed767 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:47:19 +0000 -Subject: [PATCH 565/704] clk-raspberrypi: Also support HEVC clock +Subject: [PATCH 564/741] clk-raspberrypi: Also support HEVC clock Signed-off-by: Dom Cobley --- @@ -212992,10 +212916,10 @@ index f4884a5b598a..94ce38a2d5aa 100644 2.18.4 -From de038dcf4f4a319369a33717ac3bf57776a9957e Mon Sep 17 00:00:00 2001 +From 131a9009a059f3a44a98a8e22bb99a6bbcbebb96 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:47:43 +0000 -Subject: [PATCH 566/704] dt: Switch hevc clock from fixed to firmware driver +Subject: [PATCH 565/741] dt: Switch hevc clock from fixed to firmware driver Signed-off-by: Dom Cobley --- @@ -213035,10 +212959,10 @@ index 0a611b31b9d4..bdd1c0e5a915 100644 2.18.4 -From db5f1d1822e198881ff3e268fd1bdbd97348bf57 Mon Sep 17 00:00:00 2001 +From 0d9112bda3f478df378b316aab774023bf85d19c Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 22 Feb 2021 18:50:50 +0000 -Subject: [PATCH 567/704] rpivid: Request maximum hevc clock +Subject: [PATCH 566/741] rpivid: Request maximum hevc clock Query maximum and minimum clock from driver and use those @@ -213092,10 +213016,10 @@ index 3b9e51ca05b3..b377c17dfb21 100644 2.18.4 -From e63af3d9a57f65bbe98f08822bbbf57e480d954d Mon Sep 17 00:00:00 2001 +From 769d0cfb454c3c6d6d3616098a24e6e247e613ce Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 17 Mar 2021 12:34:57 +0000 -Subject: [PATCH 568/704] staging/bcm2835-camera: Add support for DMABUFs +Subject: [PATCH 567/741] 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 +213059,10 @@ index e0a96dbb843d..7bee6e1bc69a 100644 2.18.4 -From dd06bce137f21c6a5b30d9c7f7378d85dbf39c95 Mon Sep 17 00:00:00 2001 +From 55b13c6de6a67c88a3f23ed4d95a7705d6659870 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2021 10:25:01 +0000 -Subject: [PATCH 569/704] staging: fbtft: Add minipitft13 variant +Subject: [PATCH 568/741] 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 +213170,10 @@ index 3a280cc1892c..af4e975e7b30 100644 2.18.4 -From fe9a396877c37c8e5fe17cc7b1e4724beda99ce2 Mon Sep 17 00:00:00 2001 +From afd37d4cb9c0b9f310d5c46653c7cff94e5febee Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 18 Feb 2021 21:05:44 +0000 -Subject: [PATCH 570/704] overlays: Add minipitft13 overlay +Subject: [PATCH 569/741] overlays: Add minipitft13 overlay minipitft13 is an overlay for the Adafruit 1.3" 240x240 display (code 4484). @@ -213355,10 +213279,10 @@ index 000000000000..b1a0a2a41f72 2.18.4 -From 4304d8048520d2a83e0cd70297cfe8862f188319 Mon Sep 17 00:00:00 2001 +From 9996a25abee5c84b780ea2b67bcbef283acf3e5e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 3 Mar 2021 10:31:13 +0000 -Subject: [PATCH 571/704] overlays: ghost-amp: Minor tweaks +Subject: [PATCH 570/741] 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 +213357,10 @@ index 3c997266a67d..f051dfb0879f 100644 2.18.4 -From e3d88f834a680740c67242e74474d03f0e98798d Mon Sep 17 00:00:00 2001 +From 3c3c049168a926df2b1d93a2afaa1d44f5a8ccbb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Mar 2021 12:05:06 +0100 -Subject: [PATCH 572/704] overlays: Add README entry for minipitft13 +Subject: [PATCH 571/741] overlays: Add README entry for minipitft13 Signed-off-by: Phil Elwell --- @@ -213469,10 +213393,10 @@ index d8a9ba5e9955..a5f1913d0367 100644 2.18.4 -From 75e6c2e11d495cbcc5f1e48b0e318481a3582813 Mon Sep 17 00:00:00 2001 +From b2a67efb1a0fb3be45bb5d90b64d6c2e0b6dfeb8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Mar 2021 10:22:30 +0100 -Subject: [PATCH 573/704] ARM: dts: update bcm2711-rpi-cm4.dts and -400 +Subject: [PATCH 572/741] 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 +213606,10 @@ index 9a999405ab85..a39e5c216e63 100644 2.18.4 -From 7bcb37de5e04f908d0c11445735f1de3f9507ada Mon Sep 17 00:00:00 2001 +From e6e8690caae0d7bed4a19012f90ef6d9d4621256 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Mar 2021 10:33:35 +0100 -Subject: [PATCH 574/704] Revert "usb: xhci: Disable the XHCI 5 second timeout" +Subject: [PATCH 573/741] Revert "usb: xhci: Disable the XHCI 5 second timeout" This reverts commit 0b387d58aacc006b3cb24415c7c62baa99edf743. --- @@ -213711,10 +213635,10 @@ index 494a059f2f5b..a04c4756eb74 100644 2.18.4 -From 96d886d779301499abeb0e02b5ed136a3f478b09 Mon Sep 17 00:00:00 2001 +From 0229f453fe21cb40ddb2095c85714b183c279686 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 31 Mar 2021 18:12:55 +0100 -Subject: [PATCH 575/704] vc4/drm: SQUASH: Fix source offsets with +Subject: [PATCH 574/741] vc4/drm: SQUASH: Fix source offsets with DRM_FORMAT_P030 x_off should only be within current stripe @@ -213747,10 +213671,10 @@ index 5a268ac6d6fc..dc3581470261 100644 2.18.4 -From 61aa55d2dba59d48e1481484596debf123a49bb6 Mon Sep 17 00:00:00 2001 +From 2dafd53c7b6a606fed6b3b00b5b21a3bb945a4b6 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/704] dwc-otg: fix clang -Wignored-attributes warning +Subject: [PATCH 575/741] dwc-otg: fix clang -Wignored-attributes warning warning: attribute declaration must precede definition --- @@ -213789,10 +213713,10 @@ index 537cc237b4bc..86b4aaf977fb 100644 2.18.4 -From cdc20059a8d6aa81100badba65a7fec614a06445 Mon Sep 17 00:00:00 2001 +From 37e29b75236f2d13e610778a3ae34b039328a37b 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/704] dwc-otg: fix clang -Wsometimes-uninitialized warning +Subject: [PATCH 576/741] dwc-otg: fix clang -Wsometimes-uninitialized warning warning: variable 'retval' is used uninitialized whenever 'if' condition is false --- @@ -213816,10 +213740,10 @@ index 799ab14b9eda..e1c1e3804095 100644 2.18.4 -From 4ab3dd2dbc92f17fc1b31f13234de1d47e336cda Mon Sep 17 00:00:00 2001 +From bbd00cb118804524cdfc82f3cb947f825dbc9cc6 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/704] dwc-otg: fix clang -Wpointer-bool-conversion warning +Subject: [PATCH 577/741] dwc-otg: fix clang -Wpointer-bool-conversion warning warning: address of array 'desc->wMaxPacketSize' will always evaluate to 'true' @@ -213846,10 +213770,10 @@ index 9dabbe5c9791..2ffd4f11d0bf 100644 2.18.4 -From 4de806aef2c89058917740ba69a2be30441344de Mon Sep 17 00:00:00 2001 +From b8400bba74cc9de04070685162f0627d0911aa66 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/704] Update Allo Piano Dac Driver +Subject: [PATCH 578/741] 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,10 +214053,10 @@ index 0e04c4739858..fd0fe58421b0 100644 2.18.4 -From f734efc097a17da3b1b6f3367c82495739e7f808 Mon Sep 17 00:00:00 2001 +From 38bdb0dc6b1492687bd70b7069c17ff56f35ad45 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 19 Mar 2021 11:21:41 +0100 -Subject: [PATCH 580/704] drm/connector: Create a helper to attach the +Subject: [PATCH 579/741] drm/connector: Create a helper to attach the hdr_output_metadata property All the drivers that implement HDR output call pretty much the same @@ -214152,7 +214076,7 @@ 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 380883667fb3..51b11c55afa6 100644 +index 25e1b3fc4cee..3aa4b05789f6 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -6507,9 +6507,7 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm, @@ -214242,10 +214166,10 @@ index 928136556174..7954234b7fdc 100644 2.18.4 -From 5bd490bc138d354e84e57a5a668f25df4877de75 Mon Sep 17 00:00:00 2001 +From c1c8e71ba53ef756b688338ac93e8e367e25ffb7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 19 Mar 2021 13:05:53 +0100 -Subject: [PATCH 581/704] drm/connector: Add helper to compare HDR metadata +Subject: [PATCH 580/741] 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, @@ -214264,7 +214188,7 @@ 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 51b11c55afa6..64f9c412871b 100644 +index 3aa4b05789f6..49450094b330 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -5455,25 +5455,6 @@ static int fill_hdr_info_packet(const struct drm_connector_state *state, @@ -214424,10 +214348,10 @@ index 7954234b7fdc..ca94c7ae20eb 100644 2.18.4 -From 02cc3d3f828ffd3aa012d2d91855bd4eca134252 Mon Sep 17 00:00:00 2001 +From e0bb24beb7e8438ce05d95ec235dbe374071c9fa Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 9 Apr 2021 17:31:55 +0200 -Subject: [PATCH 582/704] drm/vc4: Use the new helpers +Subject: [PATCH 581/741] drm/vc4: Use the new helpers We just introduced new helpers, so let's use them. @@ -214437,10 +214361,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index f9eb6a557a4d..507eff98cc36 100644 +index 56ba7105a0ef..7c90af073796 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -527,21 +527,6 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -531,21 +531,6 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) return ret; } @@ -214462,7 +214386,7 @@ index f9eb6a557a4d..507eff98cc36 100644 static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, struct drm_atomic_state *state) { -@@ -550,12 +535,13 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, +@@ -554,12 +539,13 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, struct drm_connector_state *new_state = drm_atomic_get_new_connector_state(state, connector); struct drm_crtc *crtc = new_state->crtc; @@ -214478,7 +214402,7 @@ index f9eb6a557a4d..507eff98cc36 100644 crtc_state = drm_atomic_get_crtc_state(state, crtc); if (IS_ERR(crtc_state)) return PTR_ERR(crtc_state); -@@ -654,8 +640,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -658,8 +644,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, connector->stereo_allowed = 1; if (vc4_hdmi->variant->supports_hdr) @@ -214492,10 +214416,10 @@ index f9eb6a557a4d..507eff98cc36 100644 2.18.4 -From 856ccfdb6f46c4116cf3f30ca8c3bb7b5dc07a49 Mon Sep 17 00:00:00 2001 +From fc7f50d485857d8e6bb107c0a03798c41138a556 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 9 Apr 2021 17:07:32 +0200 -Subject: [PATCH 583/704] drm/connector: Add a helper to attach the colorspace +Subject: [PATCH 582/741] drm/connector: Add a helper to attach the colorspace property The intel driver uses the same logic to attach the Colorspace property @@ -214568,10 +214492,10 @@ index ca94c7ae20eb..42cbacd1acb5 100644 2.18.4 -From f26f045528a48fe5f138684d3314e7e842d7ccfe Mon Sep 17 00:00:00 2001 +From 105b69cd474cd9645da5430b2438ec3e0ddf994f Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 9 Apr 2021 17:16:42 +0200 -Subject: [PATCH 584/704] drm/vc4: hdmi: Signal the proper colorimetry info in +Subject: [PATCH 583/741] drm/vc4: hdmi: Signal the proper colorimetry info in the infoframe Our driver while supporting HDR didn't send the proper colorimetry info @@ -214586,10 +214510,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 507eff98cc36..2816a1d3ee24 100644 +index 7c90af073796..79675dd943f2 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -539,7 +539,8 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, +@@ -543,7 +543,8 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, if (!crtc) return 0; @@ -214599,7 +214523,7 @@ index 507eff98cc36..2816a1d3ee24 100644 struct drm_crtc_state *crtc_state; crtc_state = drm_atomic_get_crtc_state(state, crtc); -@@ -629,6 +630,11 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -633,6 +634,11 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, if (ret) return ret; @@ -214611,7 +214535,7 @@ index 507eff98cc36..2816a1d3ee24 100644 drm_connector_attach_tv_margin_properties(connector); drm_connector_attach_max_bpc_property(connector, 8, 12); -@@ -743,7 +749,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) +@@ -747,7 +753,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder *encoder) vc4_encoder->limited_rgb_range ? HDMI_QUANTIZATION_RANGE_LIMITED : HDMI_QUANTIZATION_RANGE_FULL); @@ -214624,10 +214548,10 @@ index 507eff98cc36..2816a1d3ee24 100644 2.18.4 -From 635331c3cc9ebe9a5f661e824aafa5fd3dc463ff Mon Sep 17 00:00:00 2001 +From 55a4fd587f295fc811c86af88dd2ca2e7c8c40f8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 4 Nov 2020 18:54:20 +0000 -Subject: [PATCH 585/704] staging: vcsm-cma: Fix memory leak from not detaching +Subject: [PATCH 584/741] staging: vcsm-cma: Fix memory leak from not detaching dmabuf When importing there was a missing call to detach the buffer, @@ -214707,10 +214631,10 @@ index 40ce67f06fac..88c4df822922 100644 2.18.4 -From 45f10eaaced86cbad26d34d31fba5810ae65f122 Mon Sep 17 00:00:00 2001 +From 3fc71c5437fa893b449b429fef1b8c185196e1b7 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 12 Apr 2021 17:27:43 +0100 -Subject: [PATCH 586/704] vc4/kms: vc4_plane: Support 2020 colourspace for yuv +Subject: [PATCH 585/741] vc4/kms: vc4_plane: Support 2020 colourspace for yuv planes https://gist.github.com/popcornmix/6b3e23103c60170b02b148e0ba5d6ed7 @@ -214820,10 +214744,10 @@ index 78fd28599aeb..7538b84a6dca 100644 2.18.4 -From 5d9430e80ea160fea05860839b89ea3f10a1dbb1 Mon Sep 17 00:00:00 2001 +From e67c3eee4e5d912284d807368b2151cadba95f91 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 15 Apr 2021 13:15:14 +0100 -Subject: [PATCH 587/704] sound/usb: add device quirks for A4Tech FHD 1080p +Subject: [PATCH 586/741] sound/usb: add device quirks for A4Tech FHD 1080p webcams These devices use a type of Sonix chipset that produces broken microphone @@ -214873,10 +214797,10 @@ index bddef8ad5778..23ce3ce3928a 100644 2.18.4 -From 73355ffe5f0f5dd0b85d80b9fdc0ca4e750049dd Mon Sep 17 00:00:00 2001 +From 6c009cec046e6cf176396fca1c803edf57be7f46 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 16 Apr 2021 11:40:23 +0100 -Subject: [PATCH 588/704] sound/usb: call usb_autopm_get_interface() for +Subject: [PATCH 587/741] sound/usb: call usb_autopm_get_interface() for devices that should not be suspended Webcams with microphones are composite devices, and autosuspend is set @@ -214912,10 +214836,10 @@ index 23ce3ce3928a..4e90c99c62c2 100644 2.18.4 -From fae87948781e8e63b74c8b445f2026f7df616475 Mon Sep 17 00:00:00 2001 +From 321fbd7d1490ab9d45a0eb2fd6e6d2d38df62185 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 16 Apr 2021 09:31:17 +0100 -Subject: [PATCH 589/704] overlays: ghost-amp: Add DAC mute control +Subject: [PATCH 588/741] overlays: ghost-amp: Add DAC mute control Signed-off-by: Phil Elwell --- @@ -215004,10 +214928,10 @@ index f051dfb0879f..dbedb4b76c74 100644 2.18.4 -From 205da8e6faf1e05e77b111ed18afcb928e212b5b Mon Sep 17 00:00:00 2001 +From b5c034a648b16f0f9b140478796173534dcb159d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 13 Apr 2021 11:00:01 +0200 -Subject: [PATCH 590/704] clk: Introduce a clock request API +Subject: [PATCH 589/741] 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 @@ -215296,10 +215220,10 @@ index 7fd6a1febcf4..ab53a0873c8d 100644 2.18.4 -From bb370cbaa7042eb3d43ef47334fa524fc634d744 Mon Sep 17 00:00:00 2001 +From 2bdf2e0fcba375e1015990bef40acb361b0c9c21 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 13 Apr 2021 11:55:55 +0200 -Subject: [PATCH 591/704] drm/vc4: hdmi: Convert to the new clock request API +Subject: [PATCH 590/741] 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 @@ -215312,20 +215236,19 @@ Signed-off-by: Maxime Ripard 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 2816a1d3ee24..1872b3a2bb51 100644 +index 79675dd943f2..987ef3cf3213 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -852,7 +852,9 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, +@@ -856,6 +856,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, HDMI_READ(HDMI_VID_CTL) & ~VC4_HD_VID_CTL_ENABLE); clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock); + clk_request_done(vc4_hdmi->bvb_req); - clk_disable_unprepare(vc4_hdmi->hsm_clock); + clk_request_done(vc4_hdmi->hsm_req); clk_disable_unprepare(vc4_hdmi->pixel_clock); ret = pm_runtime_put(&vc4_hdmi->pdev->dev); -@@ -1157,9 +1159,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1160,9 +1162,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, * pixel clock, but HSM ends up being the limiting factor. */ hsm_rate = max_t(unsigned long, 120000000, (pixel_rate / 100) * 101); @@ -215338,7 +215261,7 @@ index 2816a1d3ee24..1872b3a2bb51 100644 return; } -@@ -1176,10 +1178,11 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1172,10 +1174,11 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, * FIXME: When the pixel freq is 594MHz (4k60), this needs to be setup * at 300MHz. */ @@ -215351,18 +215274,18 @@ index 2816a1d3ee24..1872b3a2bb51 100644 + if (IS_ERR(vc4_hdmi->bvb_req)) { + DRM_ERROR("Failed to set pixel bvb clock rate: %ld\n", PTR_ERR(vc4_hdmi->bvb_req)); + clk_request_done(vc4_hdmi->hsm_req); - clk_disable_unprepare(vc4_hdmi->hsm_clock); clk_disable_unprepare(vc4_hdmi->pixel_clock); return; -@@ -1188,6 +1191,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, + } +@@ -1183,6 +1186,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock); if (ret) { DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret); + clk_request_done(vc4_hdmi->bvb_req); + clk_request_done(vc4_hdmi->hsm_req); - clk_disable_unprepare(vc4_hdmi->hsm_clock); clk_disable_unprepare(vc4_hdmi->pixel_clock); return; + } diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h index 33b5f120bbeb..11a4b737d0ab 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -215381,10 +215304,10 @@ index 33b5f120bbeb..11a4b737d0ab 100644 2.18.4 -From 5e245dca3fe752e9a25c6d1c7e10ee0dd2d0c1e1 Mon Sep 17 00:00:00 2001 +From ceafc7fb8dfded5ecc39631f7147f5faf739c5ad Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 13 Apr 2021 14:10:03 +0100 -Subject: [PATCH 592/704] drm/vc4: hdmi: Convert to the new clock request API +Subject: [PATCH 591/741] 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 @@ -215429,10 +215352,10 @@ index 5d0974cdeaaa..48e3dc11c493 100644 2.18.4 -From c0d48e3386ff9e6cb2e61a17e721d6951536774f Mon Sep 17 00:00:00 2001 +From a7d611a5a3e07b8b48c24d6059f0f44d9cd57a95 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 13 Apr 2021 16:48:35 +0100 -Subject: [PATCH 593/704] bcm2835-unicam: Switch to new clock api +Subject: [PATCH 592/741] bcm2835-unicam: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -215488,10 +215411,10 @@ index 234f0eaf9c8c..0d737e0c7f52 100644 2.18.4 -From ec9acf877c54f6a675af44772c7a1282702193e9 Mon Sep 17 00:00:00 2001 +From 088d65124ee1bfd06e8b2edd0fb4fa0b1f33b762 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 19 Apr 2021 19:30:26 +0100 -Subject: [PATCH 594/704] rpivid: Switch to new clock api +Subject: [PATCH 593/741] rpivid: Switch to new clock api Signed-off-by: Dom Cobley --- @@ -215550,10 +215473,10 @@ index b377c17dfb21..def891a86e55 100644 2.18.4 -From ed25cbe054ed89d4c318cf21ec019d1e6cb2eee5 Mon Sep 17 00:00:00 2001 +From 6b6c55813dcc6a0c2d464bf66bcb64182ab58eda Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Mon, 2 Nov 2020 11:45:04 +0000 -Subject: [PATCH 595/704] net: usb: r8152: Provide missing documentation for +Subject: [PATCH 594/741] net: usb: r8152: Provide missing documentation for some struct members commit 34e653efb602e0651867fb5ab14369b555a61dcd upstream. @@ -215578,7 +215501,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 6 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index f5010f8ac1ec..e14771001aad 100644 +index 95e27fb7d2c1..a1c2323f5942 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -898,6 +898,7 @@ struct fw_header { @@ -215628,10 +215551,10 @@ index f5010f8ac1ec..e14771001aad 100644 2.18.4 -From 6b0fc1347a0de996983fdfda87692821bc5d4183 Mon Sep 17 00:00:00 2001 +From 62f062b36cf81cb818255137a5f2d6b86ade39ad Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Mon, 2 Nov 2020 11:45:09 +0000 -Subject: [PATCH 596/704] net: usb: r8152: Fix a couple of spelling errors in +Subject: [PATCH 595/741] net: usb: r8152: Fix a couple of spelling errors in fw_phy_nc's docs commit 9f07814d01ad085b2d9f1d55b4ce532fb2c27110 upstream. @@ -215650,7 +215573,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index e14771001aad..a07cede5c69c 100644 +index a1c2323f5942..3d12dc447cc9 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -963,8 +963,8 @@ struct fw_phy_patch_key { @@ -215668,10 +215591,10 @@ index e14771001aad..a07cede5c69c 100644 2.18.4 -From 033dce97d4709209a396362a7da482dd4c9b28b1 Mon Sep 17 00:00:00 2001 +From 2f62dc76168d5c4fd15359e6c38572a88533c51e Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Wed, 4 Nov 2020 10:19:22 +0800 -Subject: [PATCH 597/704] net/usb/r8153_ecm: support ECM mode for RTL8153 +Subject: [PATCH 596/741] net/usb/r8153_ecm: support ECM mode for RTL8153 commit c1aedf015ebdd0232757a66e2daccf1246bd609c upstream. @@ -215711,7 +215634,7 @@ index 99fd12be2111..99381e6bea78 100644 obj-$(CONFIG_USB_NET_DM9601) += dm9601.o obj-$(CONFIG_USB_NET_SR9700) += sr9700.o diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index a07cede5c69c..390d9e1fa7fe 100644 +index 3d12dc447cc9..35d60d2b12fc 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -26,6 +26,7 @@ @@ -216002,10 +215925,10 @@ index 000000000000..20d88b1defc3 2.18.4 -From 1f02d4ca546f4f6b700e084b566f7135b94fa1f3 Mon Sep 17 00:00:00 2001 +From fc2ece02e64d1c2ca5c90156dc30c293ac3bd220 Mon Sep 17 00:00:00 2001 From: Emil Renner Berthing Date: Sun, 31 Jan 2021 00:47:29 +0100 -Subject: [PATCH 598/704] net: usb: r8152: use new tasklet API +Subject: [PATCH 597/741] net: usb: r8152: use new tasklet API commit f3163f1cb87141c7a41a15a5d4c98b353f807b04 upstream. @@ -216019,7 +215942,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 390d9e1fa7fe..4770167ade91 100644 +index 35d60d2b12fc..d131ef915c16 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -2393,11 +2393,9 @@ static void tx_bottom(struct r8152 *tp) @@ -216049,10 +215972,10 @@ index 390d9e1fa7fe..4770167ade91 100644 2.18.4 -From 9dabe370ba7536657c1a870a07576db7c630ada5 Mon Sep 17 00:00:00 2001 +From 01e386564f546b76d1c313042708dbc4cd434fed Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Wed, 3 Feb 2021 17:14:28 +0800 -Subject: [PATCH 599/704] r8152: replace several functions about phy patch +Subject: [PATCH 598/741] r8152: replace several functions about phy patch request commit a08c0d309d8c078d22717d815cf9853f6f2c07bd upstream. @@ -216075,7 +215998,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 4770167ade91..cd413ecb493c 100644 +index d131ef915c16..bdda8331fb03 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -3443,59 +3443,76 @@ static void rtl_clear_bp(struct r8152 *tp, u16 type) @@ -216253,10 +216176,10 @@ index 4770167ade91..cd413ecb493c 100644 2.18.4 -From f64443958f652d24ee16e242c3f593a62d1d04e8 Mon Sep 17 00:00:00 2001 +From 83e490ce20cf4e681b7b9808d0a0c3e5084217b6 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Wed, 3 Feb 2021 17:14:29 +0800 -Subject: [PATCH 600/704] r8152: adjust the flow of power cut for RTL8153B +Subject: [PATCH 599/741] r8152: adjust the flow of power cut for RTL8153B commit 80fd850b31f09263ad175b2f640d5c5c6f76ed41 upstream. @@ -216274,7 +216197,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 40 insertions(+), 28 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index cd413ecb493c..779176c9b13b 100644 +index bdda8331fb03..bab89dce3d6b 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -1371,6 +1371,10 @@ void write_mii_word(struct net_device *netdev, int phy_id, int reg, int val) @@ -216393,10 +216316,10 @@ index cd413ecb493c..779176c9b13b 100644 2.18.4 -From fd7a067605d9736085629ebd67fa37ccd6d063ce Mon Sep 17 00:00:00 2001 +From e0ccaea6409320ea64be1e53286d0ae038bf9f88 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:40 +0800 -Subject: [PATCH 601/704] r8152: enable U1/U2 for USB_SPEED_SUPER +Subject: [PATCH 600/741] r8152: enable U1/U2 for USB_SPEED_SUPER commit 7a0ae61acde2cebd69665837170405eced86a6c7 upstream. @@ -216410,7 +216333,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 779176c9b13b..b59958950339 100644 +index bab89dce3d6b..1f5d80dc93b8 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -3335,7 +3335,7 @@ static void rtl8153b_runtime_enable(struct r8152 *tp, bool enable) @@ -216446,10 +216369,10 @@ index 779176c9b13b..b59958950339 100644 2.18.4 -From 903f384ae6d307fa9e9712725c569f619b539225 Mon Sep 17 00:00:00 2001 +From 4af0c04ed3eaeeb5f3d1eab785b753ec31d318b0 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:41 +0800 -Subject: [PATCH 602/704] r8152: check if the pointer of the function exists +Subject: [PATCH 601/741] r8152: check if the pointer of the function exists commit c79515e47935c747282c6ed2ee5b2ef039756eeb upstream. @@ -216462,7 +216385,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 13 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index b59958950339..a1990525e849 100644 +index 1f5d80dc93b8..e24f52e1cea5 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -5734,6 +5734,9 @@ static int rtl8152_runtime_suspend(struct r8152 *tp) @@ -216503,10 +216426,10 @@ index b59958950339..a1990525e849 100644 2.18.4 -From 0cb76c1dada9c3b46587bc82494b0bd78459c51d Mon Sep 17 00:00:00 2001 +From 34e0bbeb8cb43d29b122aafafb1e280240e5a864 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:42 +0800 -Subject: [PATCH 603/704] r8152: replace netif_err with dev_err +Subject: [PATCH 602/741] r8152: replace netif_err with dev_err commit 156c3207611262266f0eea589ac3f00c5657320e upstream. @@ -216520,7 +216443,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index a1990525e849..8a479eb6ddea 100644 +index e24f52e1cea5..5b46f5e1e8fb 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -6570,7 +6570,7 @@ static int rtl_ops_init(struct r8152 *tp) @@ -216545,10 +216468,10 @@ index a1990525e849..8a479eb6ddea 100644 2.18.4 -From 4fc7acedd5c26b364d924735b687deb4fcce40a2 Mon Sep 17 00:00:00 2001 +From f4abd4bb6eb5222bd1b4e06470617babd5ba640d Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 19 Feb 2021 17:04:43 +0800 -Subject: [PATCH 604/704] r8152: spilt rtl_set_eee_plus and r8153b_green_en +Subject: [PATCH 603/741] r8152: spilt rtl_set_eee_plus and r8153b_green_en commit 40fa7568ac230446d888b7ad402cff9e20fe3ad5 upstream. @@ -216561,7 +216484,7 @@ Signed-off-by: Jakub Kicinski 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 8a479eb6ddea..20fb5638ac65 100644 +index 5b46f5e1e8fb..23fae943a119 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -2632,21 +2632,24 @@ static inline u8 rtl8152_get_speed(struct r8152 *tp) @@ -216640,10 +216563,10 @@ index 8a479eb6ddea..20fb5638ac65 100644 2.18.4 -From ec678b101da0237030ba8e4f283fea465218da1b Mon Sep 17 00:00:00 2001 +From 1e3316f585a224ec60bc8a34ab2f5b7b297d7807 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:32 +0800 -Subject: [PATCH 605/704] r8152: set inter fram gap time depending on speed +Subject: [PATCH 604/741] r8152: set inter fram gap time depending on speed commit 5133bcc7481528e36fff0a3b056601efb704fb32 upstream. @@ -216665,7 +216588,7 @@ Signed-off-by: David S. Miller 1 file changed, 28 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 20fb5638ac65..10db48f4ed77 100644 +index 23fae943a119..a6fb2159df0a 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -249,6 +249,9 @@ @@ -216721,10 +216644,10 @@ index 20fb5638ac65..10db48f4ed77 100644 2.18.4 -From 6ed4de81e507d70d38a5a5e6170e0291057e3d26 Mon Sep 17 00:00:00 2001 +From 728d52ec924757029d51e19bd20154fb6b4f2389 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:33 +0800 -Subject: [PATCH 606/704] r8152: adjust rtl8152_check_firmware function +Subject: [PATCH 605/741] r8152: adjust rtl8152_check_firmware function commit a8a7be178e81a3d4b6972cbeb0ccd091ca2f9f89 upstream. @@ -216737,7 +216660,7 @@ Signed-off-by: David S. Miller 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 10db48f4ed77..28c9b4dc1a60 100644 +index a6fb2159df0a..2a22fc8bb96e 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -874,6 +874,14 @@ struct fw_header { @@ -216879,10 +216802,10 @@ index 10db48f4ed77..28c9b4dc1a60 100644 2.18.4 -From f0922787e361a77e878f7c30989dd7253dc39d47 Mon Sep 17 00:00:00 2001 +From 82f903c669dde5450b7bb1419453c9e43093160e Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:34 +0800 -Subject: [PATCH 607/704] r8152: add help function to change mtu +Subject: [PATCH 606/741] r8152: add help function to change mtu commit 67ce1a806f164e59a074fea8809725d3411eaa20 upstream. @@ -216900,7 +216823,7 @@ Signed-off-by: David S. Miller 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 28c9b4dc1a60..3f465242a4f0 100644 +index 2a22fc8bb96e..2c8f26d10841 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -657,15 +657,13 @@ enum rtl_register_content { @@ -217042,10 +216965,10 @@ index 28c9b4dc1a60..3f465242a4f0 100644 2.18.4 -From 08a4e9f6d87f708dcad849759bb0f8af7af21a3e Mon Sep 17 00:00:00 2001 +From 351ac640f8153e195ca33fa94ed3481e966a6e33 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:35 +0800 -Subject: [PATCH 608/704] r8152: support new chips +Subject: [PATCH 607/741] r8152: support new chips commit 195aae321c829dd1945900d75561e6aa79cce208 upstream. @@ -217059,7 +216982,7 @@ Signed-off-by: David S. Miller 1 file changed, 2359 insertions(+), 275 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 3f465242a4f0..72b8ef0ad5a1 100644 +index 2c8f26d10841..b0d9108b1802 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -43,10 +43,14 @@ @@ -220431,10 +220354,10 @@ index 3f465242a4f0..72b8ef0ad5a1 100644 2.18.4 -From 5a896624cd2133bb5462f83b981b9cef82c85acd Mon Sep 17 00:00:00 2001 +From df1829731eb7136f6713ac4436d08818c39d91e8 Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:36 +0800 -Subject: [PATCH 609/704] r8152: support PHY firmware for RTL8156 series +Subject: [PATCH 608/741] r8152: support PHY firmware for RTL8156 series commit 4a51b0e8a0143b0e83d51d9c58c6416c3818a9f2 upstream. @@ -220447,7 +220370,7 @@ Signed-off-by: David S. Miller 1 file changed, 561 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 72b8ef0ad5a1..34c1ee61af01 100644 +index b0d9108b1802..58eb7d4380a0 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -974,8 +974,60 @@ enum rtl8152_fw_flags { @@ -221128,10 +221051,10 @@ index 72b8ef0ad5a1..34c1ee61af01 100644 2.18.4 -From 97d8195e36704da0640860b428d8b478ab48c5df Mon Sep 17 00:00:00 2001 +From 7124439f2258d0be9e67446c71809f9736d7e7dc Mon Sep 17 00:00:00 2001 From: Hayes Wang Date: Fri, 16 Apr 2021 16:04:37 +0800 -Subject: [PATCH 610/704] r8152: search the configuration of vendor mode +Subject: [PATCH 609/741] r8152: search the configuration of vendor mode commit c2198943e33b100ed21dfb636c8fa6baef841e9d upstream. @@ -221145,7 +221068,7 @@ Signed-off-by: David S. Miller 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 34c1ee61af01..9119a860e9bd 100644 +index 58eb7d4380a0..5b3790553182 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -29,7 +29,7 @@ @@ -221213,10 +221136,10 @@ index 34c1ee61af01..9119a860e9bd 100644 2.18.4 -From 7cb0c9e83a69673f00554a56589c595a05c42246 Mon Sep 17 00:00:00 2001 +From c7a26687507036201e344748616c2bfc7a5310df Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 20 Apr 2021 13:34:18 +0100 -Subject: [PATCH 611/704] rpivid: Only clk_request_done once +Subject: [PATCH 610/741] rpivid: Only clk_request_done once Fixes: 25486f49bfe2e3ae13b90478d1eebd91413136ad Signed-off-by: Dom Cobley @@ -221245,10 +221168,10 @@ index def891a86e55..37c8f62649d6 100644 2.18.4 -From 5f9d15c539ba6444a68c7d83d0dd6f9236f0b115 Mon Sep 17 00:00:00 2001 +From 940bbe581960907ee47df53d7db5ad3b19c2666a Mon Sep 17 00:00:00 2001 From: wangzx <593074943@qq.com> Date: Tue, 20 Apr 2021 22:33:26 +0800 -Subject: [PATCH 612/704] dwc_otg: fix an undeclared variable Replace an +Subject: [PATCH 611/741] 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 @@ -221275,10 +221198,10 @@ index 50c8705185ad..2ee27450c6f6 100644 2.18.4 -From 8e166a1eb38673b56164a1379524f6a54f722f7f Mon Sep 17 00:00:00 2001 +From dc0a0635a34cba356d4fb18af30a4d1c0eaca59b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:40:51 +0000 -Subject: [PATCH 613/704] Revert "drm/vc4: Add configuration for BCM2711 DSI1." +Subject: [PATCH 612/741] Revert "drm/vc4: Add configuration for BCM2711 DSI1." This reverts commit 10faa28e1474e6cf33cb0809d2a6d5b7a8351a28. @@ -221320,10 +221243,10 @@ index bac5e07c05de..ce4db68827c8 100644 2.18.4 -From c4f86df47fc33db3c62dff714f69f4028aade843 Mon Sep 17 00:00:00 2001 +From cbb047abedaa455fd28ca7b54336ed5c3f57316c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:46:23 +0000 -Subject: [PATCH 614/704] Revert "drm/vc4: Add support for DSI0" +Subject: [PATCH 613/741] Revert "drm/vc4: Add support for DSI0" This reverts commit d704a3c965783ed51476031206b2120676418672. @@ -221399,10 +221322,10 @@ index ce4db68827c8..2646a6dbf584 100644 2.18.4 -From 48208da15cefe603a4984c947ae217d28f35e5f4 Mon Sep 17 00:00:00 2001 +From a20867dd803d881f33d335db2f4f7c26a89fccf7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 3 Dec 2020 14:25:36 +0100 -Subject: [PATCH 615/704] drm/vc4: drv: Remove the DSI pointer in vc4_drv +Subject: [PATCH 614/741] drm/vc4: drv: Remove the DSI pointer in vc4_drv Commit 51f4fcd9c4ea867c3b4fe58111f342ad0e80642a upstream. @@ -221473,10 +221396,10 @@ index 2646a6dbf584..8c413d21f752 100644 2.18.4 -From 267954dd6b155790c7a43c6574f42f861df2a0b3 Mon Sep 17 00:00:00 2001 +From 8db33dce46fc3d7fe78ce1bf60bc21e967da5e7d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 3 Dec 2020 14:25:38 +0100 -Subject: [PATCH 616/704] drm/vc4: dsi: Use snprintf for the PHY clocks instead +Subject: [PATCH 615/741] drm/vc4: dsi: Use snprintf for the PHY clocks instead of an array Commit dc0bf36401e891c853e0a25baeb4e0b4e6f3626d upstream. @@ -221545,10 +221468,10 @@ index 8c413d21f752..2727ad61989f 100644 2.18.4 -From 119c199e96829f361c18fe7d297d7c795c6dcaf6 Mon Sep 17 00:00:00 2001 +From 7fb4795f043f96d278ee8aeff312e1c826180780 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 3 Dec 2020 14:25:39 +0100 -Subject: [PATCH 617/704] drm/vc4: dsi: Introduce a variant structure +Subject: [PATCH 616/741] drm/vc4: dsi: Introduce a variant structure Commit d1d195ce26a14ec0a87816c09ae514e1c40e97f7 upstream. @@ -221742,10 +221665,10 @@ index 2727ad61989f..ea4cd8284454 100644 2.18.4 -From e4331197e89beb40db7eb1def025156a4f04aa3e Mon Sep 17 00:00:00 2001 +From 6b238cf9c1c7546f56334eef4d71246a86b6abc4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Dec 2020 14:25:40 +0100 -Subject: [PATCH 618/704] drm/vc4: dsi: Add support for DSI0 +Subject: [PATCH 617/741] drm/vc4: dsi: Add support for DSI0 Commit 4b265fe11fad4234b12d92dd8091f9aa0c878eea upstream. @@ -221792,10 +221715,10 @@ index ea4cd8284454..c2ed98013f9d 100644 2.18.4 -From 5d31ade665e7def40f99115f0cd9531be49faa6f Mon Sep 17 00:00:00 2001 +From d583e1bef2f9d5af364eb1b052735a1b619a8f02 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Dec 2020 14:25:42 +0100 -Subject: [PATCH 619/704] drm/vc4: dsi: Add configuration for BCM2711 DSI1 +Subject: [PATCH 618/741] drm/vc4: dsi: Add configuration for BCM2711 DSI1 Commit d0666be8ef9e8e65d4b7fabc1606ec51f61384c0 upstream. @@ -221851,10 +221774,10 @@ index c2ed98013f9d..6dfcbd9e234e 100644 2.18.4 -From 989796c21d3ade8f0273e2ff6932d5d03238eea9 Mon Sep 17 00:00:00 2001 +From 4678f49d9455bd2127977f6fac53cb426d4b8133 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Feb 2021 18:37:04 +0000 -Subject: [PATCH 620/704] drm/vc4: Correct pixel order for DSI0 +Subject: [PATCH 619/741] 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. @@ -221884,10 +221807,10 @@ index 339567dd015c..bee11bb2cbf5 100644 2.18.4 -From 93c9b2f4841db356ebbef08e3520bb80b36cfa1e Mon Sep 17 00:00:00 2001 +From 9f4ef0fdfda2c6e0bc8bcfc36ef438fb66aad161 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:22:01 +0000 -Subject: [PATCH 621/704] drm/vc4: Register dsi0 as the correct vc4 encoder +Subject: [PATCH 620/741] drm/vc4: Register dsi0 as the correct vc4 encoder type vc4_dsi was registering both dsi0 and dsi1 as VC4_ENCODER_TYPE_DSI1 @@ -221919,10 +221842,10 @@ index 6dfcbd9e234e..053930eaa48f 100644 2.18.4 -From 8d546e05dcc1ca2b065d2ebabdc99c96ba54f26f Mon Sep 17 00:00:00 2001 +From 7afde612277311c9540cdf68d18a0a5e4d92baaa Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Feb 2021 18:46:22 +0000 -Subject: [PATCH 622/704] drm/vc4: Fix dsi0 interrupt support. +Subject: [PATCH 621/741] 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 @@ -222113,10 +222036,10 @@ index 053930eaa48f..fb0efc67d31d 100644 2.18.4 -From 6fb451e845c2681004a6c18c080364c6d0902b92 Mon Sep 17 00:00:00 2001 +From 9d1c5f95a8349cc7648314f1fe69b9246d7f2cc6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 16:18:16 +0100 -Subject: [PATCH 623/704] drm/vc4: Add correct stop condition to +Subject: [PATCH 622/741] drm/vc4: Add correct stop condition to vc4_dsi_encoder_disable iteration vc4_dsi_encoder_disable is partially an open coded version of @@ -222149,10 +222072,10 @@ index fb0efc67d31d..9861e2d2c05d 100644 2.18.4 -From 0bcce9e25b21cef542c139aa58400f17a511a067 Mon Sep 17 00:00:00 2001 +From ec709c0b4a56bba7fd50b914e70973955917408d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 16:30:55 +0000 -Subject: [PATCH 624/704] drm/atomic: Don't fixup modes that haven't been reset +Subject: [PATCH 623/741] drm/atomic: Don't fixup modes that haven't been reset Signed-off-by: Dave Stevenson --- @@ -222179,10 +222102,10 @@ index 134d3000fb18..172144627c59 100644 2.18.4 -From 7b40d21b85d20ccf431c6f27d8ba0a023f2ccd74 Mon Sep 17 00:00:00 2001 +From ae2ad0c644af663c402a19fa0f824a8d0464d9ed Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 17:30:35 +0100 -Subject: [PATCH 625/704] drm/panel: jdi-lt070me05000: Use +Subject: [PATCH 624/741] drm/panel: jdi-lt070me05000: Use gpiod_set_value_cansleep There is no reason why the control GPIOs for the panel can not @@ -222252,10 +222175,10 @@ index 733010b5e4f5..7fb4d98e166d 100644 2.18.4 -From 2473cd6c01ff47197d31c42c0c45a738c62b0f37 Mon Sep 17 00:00:00 2001 +From 63e46c5f0f331070f811d38bc3cbba32f3d1af5a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 18:09:56 +0100 -Subject: [PATCH 626/704] defconfigs: Add PANEL_JDI_LT070ME05000 DSI panel +Subject: [PATCH 625/741] defconfigs: Add PANEL_JDI_LT070ME05000 DSI panel Used by the 2013 Nexus 7" tablet, and working via an adapter board on Compute Modules. @@ -222333,10 +222256,10 @@ index 584e82f7de99..ff857505902b 100644 2.18.4 -From 30ea017da3be2bdba129b4bf718bb270648c674d Mon Sep 17 00:00:00 2001 +From b922379fe984b44513f49a1ab0870296ca78df9d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 16:46:34 +0100 -Subject: [PATCH 627/704] dtoverlays: Add overlays for JDI LT070ME05000 +Subject: [PATCH 626/741] dtoverlays: Add overlays for JDI LT070ME05000 1200x1920 DSI panel Credit to forum member gizmomouse on @@ -222563,10 +222486,10 @@ index 000000000000..5dcd0f2243e2 2.18.4 -From 26bece7639e1c90d7befa146a07a49d145eec2d7 Mon Sep 17 00:00:00 2001 +From cf60d2e5e3db9c11aed176ccdddef728d0308f9a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 21 Apr 2021 12:14:44 +0200 -Subject: [PATCH 628/704] clk: requests: Ignore if the pointer is null +Subject: [PATCH 627/741] clk: requests: Ignore if the pointer is null Signed-off-by: Maxime Ripard --- @@ -222591,10 +222514,10 @@ index 031627757b11..af0f638d1769 100644 2.18.4 -From 36fb2fcc18f9765a6e54dae3b9baf9a73d6e33ef Mon Sep 17 00:00:00 2001 +From b06f0a30d5264269f5a01c08035c152c0c3c0637 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 16 Mar 2021 13:42:01 +0100 -Subject: [PATCH 629/704] drm/vc4: txp: Properly set the possible_crtcs mask +Subject: [PATCH 628/741] 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. @@ -222624,10 +222547,10 @@ index 4a26750b5e93..22430640786f 100644 2.18.4 -From 04d6241a1ad5873a641f3b87ce246debd0a4eafa Mon Sep 17 00:00:00 2001 +From 3009f715023ffb9e89d57f92eac2534cfcfd6be4 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 16 Mar 2021 13:42:19 +0100 -Subject: [PATCH 630/704] drm/vc4: crtc: Skip the TXP +Subject: [PATCH 629/741] 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. @@ -222667,10 +222590,10 @@ index bee11bb2cbf5..4efd3892192a 100644 2.18.4 -From 479e1671d81209eef4b7ab3c96ac4a30aa909393 Mon Sep 17 00:00:00 2001 +From 0a87b06b3bec2076d65bce7913cbff0e65ce9fd7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 16 Mar 2021 13:51:52 +0100 -Subject: [PATCH 631/704] drm/vc4: Rework the encoder retrieval code +Subject: [PATCH 630/741] 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 @@ -222824,10 +222747,10 @@ index 7a70838595b2..ff4e71f79e49 100644 2.18.4 -From 229350072adeddad41ca7c3730c3e0730c8aba80 Mon Sep 17 00:00:00 2001 +From 93b25c490df01b8093f39a583882415fba0683c7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 25 Mar 2021 10:37:38 +0100 -Subject: [PATCH 632/704] drm/vc4: hdmi: Prevent clock unbalance +Subject: [PATCH 631/741] 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 @@ -222844,10 +222767,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 1872b3a2bb51..3a0ac5a9c027 100644 +index 987ef3cf3213..49607b16ddbb 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2626,6 +2626,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2643,6 +2643,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) if (vc4_hdmi->variant->reset) vc4_hdmi->variant->reset(vc4_hdmi); @@ -222866,10 +222789,10 @@ index 1872b3a2bb51..3a0ac5a9c027 100644 2.18.4 -From e1f0700f6dc94048c0dc530ee803e41104dce0e9 Mon Sep 17 00:00:00 2001 +From 6c8c5ca5c341f83cdc1378b058dee9a5aa2aa08d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 25 Feb 2021 14:42:03 +0100 -Subject: [PATCH 633/704] drm/vc4: hvs: Make the HVS bind first +Subject: [PATCH 632/741] 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 @@ -222913,10 +222836,10 @@ index 8baa90837e9e..c404ef49f420 100644 2.18.4 -From 1be33f9a120a8ac6bb7a13ccee79ebee3583230f Mon Sep 17 00:00:00 2001 +From 5d2832d04250e4f872b98a8657b1efeda0a7e0e7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 16:06:08 +0200 -Subject: [PATCH 634/704] drm/vc4: hdmi: Properly compute the BVB clock rate +Subject: [PATCH 633/741] 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. @@ -222929,7 +222852,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 3a0ac5a9c027..ca6651607acd 100644 +index 49607b16ddbb..bf0a539879e9 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -93,7 +93,6 @@ @@ -222940,7 +222863,7 @@ index 3a0ac5a9c027..ca6651607acd 100644 #define HDMI_CODEC_CHMAP_IDX_UNKNOWN -1 -@@ -1120,7 +1119,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1123,7 +1122,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, 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); @@ -222949,7 +222872,7 @@ index 3a0ac5a9c027..ca6651607acd 100644 int ret; ret = pm_runtime_get_sync(&vc4_hdmi->pdev->dev); -@@ -1174,12 +1173,14 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1170,12 +1169,14 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, vc4_hdmi_cec_update_clk_div(vc4_hdmi); @@ -222974,10 +222897,10 @@ index 3a0ac5a9c027..ca6651607acd 100644 2.18.4 -From 385e71fe281d90a08bdcfdd2f862d08a4511fc09 Mon Sep 17 00:00:00 2001 +From e063ec8250cebee1f6d49ed01bcd218f80597fc0 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 25 Feb 2021 15:35:02 +0100 -Subject: [PATCH 635/704] drm/vc4: hdmi: Check and warn if we can't reach 4kp60 +Subject: [PATCH 634/741] 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 @@ -222996,7 +222919,7 @@ Signed-off-by: Maxime Ripard 2 files changed, 39 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index ca6651607acd..08bb54eb76e3 100644 +index bf0a539879e9..4357213a9c50 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -401,6 +401,11 @@ static void hdmi_codec_eld_chmap(struct vc4_hdmi *vc4_hdmi) @@ -223011,7 +222934,7 @@ index ca6651607acd..08bb54eb76e3 100644 static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) { struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -523,6 +528,18 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -527,6 +532,18 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) ret = drm_add_edid_modes(connector, edid); kfree(edid); @@ -223030,7 +222953,7 @@ index ca6651607acd..08bb54eb76e3 100644 return ret; } -@@ -1343,6 +1360,9 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1337,6 +1354,9 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, if (pixel_rate > vc4_hdmi->variant->max_pixel_clock) return -EINVAL; @@ -223040,7 +222963,7 @@ index ca6651607acd..08bb54eb76e3 100644 vc4_state->pixel_rate = pixel_rate; return 0; -@@ -1362,6 +1382,9 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, +@@ -1356,6 +1376,9 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, if ((mode->clock * 1000) > vc4_hdmi->variant->max_pixel_clock) return MODE_CLOCK_HIGH; @@ -223050,7 +222973,7 @@ index ca6651607acd..08bb54eb76e3 100644 return MODE_OK; } -@@ -2624,6 +2647,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2641,6 +2664,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi->disable_wifi_frequencies = of_property_read_bool(dev->of_node, "wifi-2.4ghz-coexistence"); @@ -223088,10 +223011,10 @@ index 11a4b737d0ab..23e8cfc22c4d 100644 2.18.4 -From 8c57facd5b22367f696419d3c4649d90e5d16de8 Mon Sep 17 00:00:00 2001 +From 9a13469659f9dd65d1fbba195406dc8052b00c7e Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 16:06:58 +0200 -Subject: [PATCH 636/704] drm/vc4: hdmi: Enable the scrambler +Subject: [PATCH 635/741] 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. @@ -223104,7 +223027,7 @@ Signed-off-by: Maxime Ripard 2 files changed, 67 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 08bb54eb76e3..b8785dc9f4f3 100644 +index 4357213a9c50..ec30e7b7838b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -35,6 +35,7 @@ @@ -223124,7 +223047,7 @@ index 08bb54eb76e3..b8785dc9f4f3 100644 #define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_SHIFT 8 #define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_MASK VC4_MASK(10, 8) -@@ -841,6 +844,64 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) +@@ -845,6 +848,64 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) vc4_hdmi_set_hdr_infoframe(encoder); } @@ -223189,7 +223112,7 @@ index 08bb54eb76e3..b8785dc9f4f3 100644 static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, struct drm_atomic_state *state) { -@@ -853,6 +914,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, +@@ -857,6 +918,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, HDMI_WRITE(HDMI_VID_CTL, HDMI_READ(HDMI_VID_CTL) | VC4_HD_VID_CTL_BLANKPIX); @@ -223198,7 +223121,7 @@ index 08bb54eb76e3..b8785dc9f4f3 100644 } static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, -@@ -1308,6 +1371,7 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, +@@ -1302,6 +1365,7 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, } vc4_hdmi_recenter_fifo(vc4_hdmi); @@ -223238,10 +223161,10 @@ index 20a1438a72cb..a81fdf90f66b 100644 2.18.4 -From 798833ae78c3b26bf0cb057fcc3869a7aaf3c3ea Mon Sep 17 00:00:00 2001 +From 5910edce6e13e10d81ad498879cd474d6bb15981 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 16:08:06 +0200 -Subject: [PATCH 637/704] drm/vc4: hdmi: Raise the maximum clock rate +Subject: [PATCH 636/741] 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. @@ -223258,10 +223181,10 @@ Signed-off-by: Maxime Ripard 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index b8785dc9f4f3..7d0d1da47609 100644 +index ec30e7b7838b..8f1a48e9ad8c 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2844,7 +2844,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2861,7 +2861,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { .encoder_type = VC4_ENCODER_TYPE_HDMI0, .debugfs_name = "hdmi0_regs", .card_name = "vc4-hdmi-0", @@ -223274,34 +223197,33 @@ index b8785dc9f4f3..7d0d1da47609 100644 2.18.4 -From 4c145343f0fe205c0395f81b7bb605c7434aa5b2 Mon Sep 17 00:00:00 2001 +From 418870727f3a6458f2dbadda2bb0140aff287dfd Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 21 Apr 2021 15:15:42 +0100 -Subject: [PATCH 638/704] vc4/drm: hdmi: Handle case when bvb clock is null +Subject: [PATCH 637/741] 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 See: https://github.com/raspberrypi/linux/issues/4299 Signed-off-by: Dom Cobley --- - drivers/gpu/drm/vc4/vc4_hdmi.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) + drivers/gpu/drm/vc4/vc4_hdmi.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 7d0d1da47609..c785923f2294 100644 +index 8f1a48e9ad8c..44c3434a6fbe 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -931,7 +931,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, - HDMI_READ(HDMI_VID_CTL) & ~VC4_HD_VID_CTL_ENABLE); +@@ -936,6 +936,8 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock); -- clk_request_done(vc4_hdmi->bvb_req); + clk_request_done(vc4_hdmi->bvb_req); + if (vc4_hdmi->bvb_req) + clk_request_done(vc4_hdmi->bvb_req); - clk_disable_unprepare(vc4_hdmi->hsm_clock); clk_request_done(vc4_hdmi->hsm_req); clk_disable_unprepare(vc4_hdmi->pixel_clock); -@@ -1260,7 +1261,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, + +@@ -1256,7 +1258,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, else bvb_rate = 75000000; @@ -223311,7 +223233,7 @@ index 7d0d1da47609..c785923f2294 100644 if (IS_ERR(vc4_hdmi->bvb_req)) { DRM_ERROR("Failed to set pixel bvb clock rate: %ld\n", PTR_ERR(vc4_hdmi->bvb_req)); clk_request_done(vc4_hdmi->hsm_req); -@@ -1272,7 +1274,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1267,7 +1270,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock); if (ret) { DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret); @@ -223319,16 +223241,16 @@ index 7d0d1da47609..c785923f2294 100644 + if (vc4_hdmi->bvb_req) + clk_request_done(vc4_hdmi->bvb_req); clk_request_done(vc4_hdmi->hsm_req); - clk_disable_unprepare(vc4_hdmi->hsm_clock); clk_disable_unprepare(vc4_hdmi->pixel_clock); + return; -- 2.18.4 -From 7c14ca70c5fe2c139f786e97f1b555604da0f711 Mon Sep 17 00:00:00 2001 +From 66b2f31ae6ce9e39f0342788df4495f4ba869788 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 19 Apr 2021 10:33:24 +0100 -Subject: [PATCH 639/704] overlays: spi-rtc: Add ds3232 and ds3234 +Subject: [PATCH 638/741] 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 @@ -223458,10 +223380,10 @@ index 9664afc9845c..51b7fec281c0 100644 2.18.4 -From 988e3a2e549a33943346fa985d02750f811073fe Mon Sep 17 00:00:00 2001 +From 7127bc951897afa4f8432addbd4e8cb4d99b9764 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 640/704] drm/vc4: Fix VEC address for BCM2711 in the +Subject: [PATCH 639/741] drm/vc4: Fix VEC address for BCM2711 in the devicetrees The VEC has a different address (0x7ec13000) on the BCM2711 (used in @@ -223540,10 +223462,10 @@ index 346838ee9d21..b95e0cf827d3 100644 2.18.4 -From 9f5330983bf3925f2a9a76f2ea7f6780e4474b5f Mon Sep 17 00:00:00 2001 +From 137236fa84c2120826f5944eaf07040e1f1560ac 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 641/704] drm/vc4: Fix clock source for VEC PixelValve on +Subject: [PATCH 640/741] drm/vc4: Fix clock source for VEC PixelValve on BCM2711 On the BCM2711 (Raspberry Pi 4), the VEC is actually connected to @@ -223574,10 +223496,10 @@ index 133c96ee4829..d6a932246240 100644 2.18.4 -From c63277db0e6ba7ffa7bdeedb319ae4c1919f8771 Mon Sep 17 00:00:00 2001 +From 05224bb63a0d12d999f3ef44f5d1bae2b0dbf207 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 642/704] drm/vc4: Separate VEC compatible variants +Subject: [PATCH 641/741] 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 @@ -223690,10 +223612,10 @@ index bd5b8eb58b18..a467ceba75e4 100644 2.18.4 -From d850c1045f4961b8746d949ca20dcb476b816468 Mon Sep 17 00:00:00 2001 +From 4743ef0de6e6b53270755588bfb6e3f800ff9bb4 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Thu, 1 Apr 2021 10:34:27 -0500 -Subject: [PATCH 643/704] configs: Enable ATA and AHCI for SATA drive support. +Subject: [PATCH 642/741] configs: Enable ATA and AHCI for SATA drive support. --- arch/arm/configs/bcm2711_defconfig | 3 +++ @@ -223732,10 +223654,10 @@ index 93159a7a2d9b..b90bcc5b6ef8 100644 2.18.4 -From d0fa54b6768ee77fedf3b50d6c1a0b266ffcf23e Mon Sep 17 00:00:00 2001 +From 51c6f1693ac2532ffc6782ce766b849b78154953 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 22 Apr 2021 10:45:37 +0200 -Subject: [PATCH 644/704] clk: requests: Dereference the request pointer after +Subject: [PATCH 643/741] clk: requests: Dereference the request pointer after the check The current code will first dereference the req pointer and then test if @@ -223768,10 +223690,10 @@ index af0f638d1769..1b9a76c7dafa 100644 2.18.4 -From 5e293cc12fd4704181182544c37283816dcc824f Mon Sep 17 00:00:00 2001 +From 26bda8a000a822d9b3cdfa91f9101dfbe462bca3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:28:40 +0000 -Subject: [PATCH 645/704] staging/bcm2835-codec: Fix support for levels 4.1 and +Subject: [PATCH 644/741] 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 @@ -223810,10 +223732,10 @@ index 5729a8a7d94e..4622057e71cb 100644 2.18.4 -From 402b06fdd04634f0e0dde0203ed2b1cde337a358 Mon Sep 17 00:00:00 2001 +From ec18d485dfeb954577056ed21662bbb0034f5d7f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 4 Feb 2021 19:08:23 +0000 -Subject: [PATCH 646/704] staging/bcm2835-codec: Set the colourspace +Subject: [PATCH 645/741] staging/bcm2835-codec: Set the colourspace appropriately for RGB formats Video decode supports YUV and RGB formats. YUV needs to report SMPTE170M @@ -223900,10 +223822,10 @@ index 4622057e71cb..08429a42c847 100644 2.18.4 -From c6e0f10f176465d3efc86bc3d9af18dbce7bd35e Mon Sep 17 00:00:00 2001 +From 5d777c4753bc19a6a872fbaa37abdc899c880fbb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 9 Dec 2020 18:53:56 +0000 -Subject: [PATCH 647/704] staging/bcm2835-codec: Pass corrupt frame flag. +Subject: [PATCH 646/741] 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. @@ -223948,10 +223870,10 @@ index 08429a42c847..3ed9f47a37fe 100644 2.18.4 -From f9ae87053298a0f6dbb521c3533cc8e8f2d11f4c Mon Sep 17 00:00:00 2001 +From 51302232c786312f8916c9a0cc875539ea687c20 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:34:50 +0000 -Subject: [PATCH 648/704] staging/bcm2835-camera: Add support for H264 levels +Subject: [PATCH 647/741] 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 @@ -224012,10 +223934,10 @@ index f73daa38fa66..f3480a5c5170 100644 2.18.4 -From 9b0e77e997b643af3ce8ad3ad0d8c3750902fa74 Mon Sep 17 00:00:00 2001 +From e70c622ce8d5b8975429c01af074ead33e054030 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 11:07:55 +0100 -Subject: [PATCH 649/704] staging/bcm2835-codec: Do not update crop from S_FMT +Subject: [PATCH 648/741] staging/bcm2835-codec: Do not update crop from S_FMT after res change During decode, setting the CAPTURE queue format was setting the crop @@ -224054,10 +223976,10 @@ index 3ed9f47a37fe..a97666a1a4be 100644 2.18.4 -From 2f9537c2b5d60c23f39b96bb9f12beebd4393d72 Mon Sep 17 00:00:00 2001 +From c30161c48bb2dff5d4b27eb8dedfc17735286aa0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Apr 2021 16:16:49 +0100 -Subject: [PATCH 650/704] staging/bcm2835-isp: Fix compiler warning +Subject: [PATCH 649/741] 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 @@ -224085,10 +224007,10 @@ index 5cca8bdd1d65..08dce8bba9bb 100644 2.18.4 -From b26ac087864907f426a2bbb42120021243b6f702 Mon Sep 17 00:00:00 2001 +From 55e76a03869adf981119509403dcd3661aab4632 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sun, 25 Apr 2021 21:07:03 +0100 -Subject: [PATCH 651/704] overlays: Allow multiple gpio-shutdown instances +Subject: [PATCH 650/741] overlays: Allow multiple gpio-shutdown instances There is no reason not to support multiple gpio-shutdown signals, so add the necessary __override__ magic. @@ -224133,10 +224055,10 @@ index 0a27595143ec..da148064aedd 100644 2.18.4 -From f8f455f87a7d9ec41607463ef9fac03950207ba2 Mon Sep 17 00:00:00 2001 +From 911f8d9ea14bc56263fe975274473eb25df128b9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Apr 2021 09:58:14 +0100 -Subject: [PATCH 652/704] overlays: README - improve the gpio-poweroff guide +Subject: [PATCH 651/741] overlays: README - improve the gpio-poweroff guide Signed-off-by: Phil Elwell --- @@ -224169,10 +224091,10 @@ index 17521568cee5..b9be3bece19b 100644 2.18.4 -From d0cdd31e386326d3e3910279f558cc3b96b20512 Mon Sep 17 00:00:00 2001 +From e9b0c7a7e733d850661e4a6f35d5fcf5f447b81d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Apr 2021 10:08:21 +0100 -Subject: [PATCH 653/704] SQUASH: overlays: Fix typo in README +Subject: [PATCH 652/741] SQUASH: overlays: Fix typo in README Signed-off-by: Phil Elwell --- @@ -224196,10 +224118,10 @@ index b9be3bece19b..79878f4f30e6 100644 2.18.4 -From c84cbc498361eff00758a949e945aece7d74cd3e Mon Sep 17 00:00:00 2001 +From bf39f733cd78413e7880006bdb13be8c40367758 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Apr 2021 08:59:01 +0100 -Subject: [PATCH 654/704] gpio-poweroff: Remember the old poweroff handler +Subject: [PATCH 653/741] 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 @@ -224255,10 +224177,10 @@ index 3acbe711b792..1b18dbf3deff 100644 2.18.4 -From 33aa9e0b7d39b97528e484c146e0821f91c2af22 Mon Sep 17 00:00:00 2001 +From 22abd0b9544ab3f46e7f4ac1892f9657ddb8a78a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Apr 2021 16:14:21 +0100 -Subject: [PATCH 655/704] drm/vc4: Allow DBLCLK modes even if horz timing is +Subject: [PATCH 654/741] drm/vc4: Allow DBLCLK modes even if horz timing is odd. The 2711 pixel valve can't produce odd horizontal timings, and @@ -224280,10 +224202,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index c785923f2294..0a786803c320 100644 +index 44c3434a6fbe..51fcb9b0f6e2 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1395,6 +1395,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1390,6 +1390,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, unsigned long long tmds_rate; if (vc4_hdmi->variant->unsupported_odd_h_timings && @@ -224291,7 +224213,7 @@ index c785923f2294..0a786803c320 100644 ((mode->hdisplay % 2) || (mode->hsync_start % 2) || (mode->hsync_end % 2) || (mode->htotal % 2))) return -EINVAL; -@@ -1442,6 +1443,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, +@@ -1437,6 +1438,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_encoder *encoder, struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); if (vc4_hdmi->variant->unsupported_odd_h_timings && @@ -224303,10 +224225,10 @@ index c785923f2294..0a786803c320 100644 2.18.4 -From 9b4668bf24e9d5c228f88c74bd3620c58fde9bb6 Mon Sep 17 00:00:00 2001 +From 989eed91a1af1dc56793727402a3bc48ee0f397a Mon Sep 17 00:00:00 2001 From: Christoph Date: Wed, 28 Apr 2021 20:30:44 +0200 -Subject: [PATCH 656/704] overlays: Add ugreen-dabboard overlay +Subject: [PATCH 655/741] 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 @@ -224415,10 +224337,10 @@ index 000000000000..fc8d9b118068 2.18.4 -From fb9e5c831113f78bc3f99c4595383a9f51b77f18 Mon Sep 17 00:00:00 2001 +From 86ba8863fb96c9e2f8ab090ab8eb4e7ca1daf33f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Apr 2021 15:02:58 +0100 -Subject: [PATCH 657/704] ARM: dts: bcm2711-rpi-400: Limit MDIO clock speed +Subject: [PATCH 656/741] ARM: dts: bcm2711-rpi-400: Limit MDIO clock speed Signed-off-by: Phil Elwell --- @@ -224444,10 +224366,10 @@ index 1bb8854e69d6..4ffd5e04ccf1 100644 2.18.4 -From 42ff12dd978c2c6aef69ccadf24f087cbbadedf5 Mon Sep 17 00:00:00 2001 +From 12dd8547145a644ae0e5b72902178eee18d22c99 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 30 Apr 2021 08:34:36 +0100 -Subject: [PATCH 658/704] spi: bcm2835: Increase the CS limit to 24 +Subject: [PATCH 657/741] spi: bcm2835: Increase the CS limit to 24 Increase the maximum number of CS lines to 24, and ensure this limit is not exceeded. @@ -224457,11 +224379,11 @@ See: https://github.com/raspberrypi/linux/pull/4281 Suggested-by: Joe Burmeister Signed-off-by: Phil Elwell --- - drivers/spi/spi-bcm2835.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) + drivers/spi/spi-bcm2835.c | 6 ++++++ + 1 file changed, 6 insertions(+) diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c -index aab6c7e5c114..ae74d86b2ee8 100644 +index 9a47313cab46..536935abb79d 100644 --- a/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c @@ -28,6 +28,7 @@ @@ -224472,16 +224394,7 @@ index aab6c7e5c114..ae74d86b2ee8 100644 #include #include -@@ -68,7 +69,7 @@ - #define BCM2835_SPI_FIFO_SIZE 64 - #define BCM2835_SPI_FIFO_SIZE_3_4 48 - #define BCM2835_SPI_DMA_MIN_LENGTH 96 --#define BCM2835_SPI_NUM_CS 4 /* raise as necessary */ -+#define BCM2835_SPI_NUM_CS 24 /* more than enough */ - #define BCM2835_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \ - | SPI_NO_CS | SPI_3WIRE) - -@@ -1292,6 +1293,11 @@ static int bcm2835_spi_probe(struct platform_device *pdev) +@@ -1298,6 +1299,11 @@ static int bcm2835_spi_probe(struct platform_device *pdev) struct bcm2835_spi *bs; int err; @@ -224497,10 +224410,10 @@ index aab6c7e5c114..ae74d86b2ee8 100644 2.18.4 -From fed14d908c3afc42adee32f4b25bd90bc6bac8fe Mon Sep 17 00:00:00 2001 +From bbe3411fe016421a412afce20a73a315882639ab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 4 May 2021 13:57:21 +0100 -Subject: [PATCH 659/704] configs: Regenerate defconfigs +Subject: [PATCH 658/741] configs: Regenerate defconfigs GENERIC_PHY=m is now implied by other settings on bcm2711. @@ -224538,10 +224451,10 @@ index b90bcc5b6ef8..5fb890f90233 100644 2.18.4 -From d1945f83c3aff24ed80c0252cc2ecde78103a50c Mon Sep 17 00:00:00 2001 +From 32261fece2ecbb6e1dbf7a29012b51f8df2f9af6 Mon Sep 17 00:00:00 2001 From: Michael Heimpold Date: Tue, 4 May 2021 15:14:16 +0200 -Subject: [PATCH 660/704] configs: add CONFIG_QCA7000_UART=m (#4322) +Subject: [PATCH 659/741] configs: add CONFIG_QCA7000_UART=m (#4322) This allows to use the UART interface instead of SPI of QCA7000 Ethernet over powerline chips. @@ -224619,10 +224532,10 @@ index ff857505902b..c38726720f27 100644 2.18.4 -From d6be110d969f7863e0579078720da34aa6d7a6c7 Mon Sep 17 00:00:00 2001 +From 7e9099ab9e521bdef0ae6b96e5f2c18ea8fa78ae Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 5 May 2021 15:35:34 +0200 -Subject: [PATCH 661/704] clk: Always clamp the rounded rate +Subject: [PATCH 660/741] 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 @@ -224653,10 +224566,10 @@ index 1b9a76c7dafa..f4695bac4cec 100644 2.18.4 -From c0130d0f63cad0d3649d0c497905897cb399d380 Mon Sep 17 00:00:00 2001 +From 77cfbd91d483f762889fbfb636df244afdbef458 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 5 May 2021 14:06:21 +0200 -Subject: [PATCH 662/704] Revert "drm/vc4: Rework the encoder retrieval code" +Subject: [PATCH 661/741] Revert "drm/vc4: Rework the encoder retrieval code" This reverts commit 3cf3d39b754a78c67134da7b8109eb968129ef8d. @@ -224797,10 +224710,10 @@ index ff4e71f79e49..7a70838595b2 100644 2.18.4 -From cbaecf8e40d57a9ce93c98e114adcf1511618026 Mon Sep 17 00:00:00 2001 +From 3c654baeb968c8936458d8b77f0ce5be35266122 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 6 May 2021 17:01:46 +0200 -Subject: [PATCH 663/704] drm/vc4: crtc: Pass the drm_atomic_state to config_pv +Subject: [PATCH 662/741] 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 @@ -224849,10 +224762,10 @@ index 1d1ae0d9e48f..513c75288131 100644 2.18.4 -From 92b8bf9881c646306f87727782dfff4dd58a604c Mon Sep 17 00:00:00 2001 +From b94a64f917e1df56f9830b6054456f437a9f7c7b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 6 May 2021 17:07:07 +0200 -Subject: [PATCH 664/704] drm/vc4: crtc: Fix vc4_get_crtc_encoder logic +Subject: [PATCH 663/741] 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 @@ -224938,10 +224851,10 @@ index 513c75288131..a813b7de60ef 100644 2.18.4 -From 2eda7577abea5a237fcacdc9ccd07223c68e8514 Mon Sep 17 00:00:00 2001 +From ac7d24900c564d23c5d2c5dce5ccc98d78beaa3a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 6 May 2021 17:15:57 +0200 -Subject: [PATCH 665/704] drm/vc4: crtc: Lookup the encoder from the register +Subject: [PATCH 664/741] 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 @@ -225048,10 +224961,10 @@ index a813b7de60ef..a0b5503928df 100644 2.18.4 -From d05599b03d49ef4405cd7270a0345e672e32ee1d Mon Sep 17 00:00:00 2001 +From 8cd81a309cbbb04bea126b43fa253a8028193dec Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 6 May 2021 16:37:26 +0200 -Subject: [PATCH 666/704] drm/vc4: hdmi: Switch to pm_runtime_resume_and_get +Subject: [PATCH 665/741] 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 @@ -225066,10 +224979,10 @@ Signed-off-by: Maxime Ripard 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 +index 51fcb9b0f6e2..69889526c114 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, +@@ -1207,8 +1207,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, unsigned long bvb_rate, pixel_rate, hsm_rate; int ret; @@ -225084,68 +224997,10 @@ index 0a786803c320..2db4af7a1cb3 100644 2.18.4 -From 7bc65d027b7ebbeaa9dbca0731f42efb997aff64 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Thu, 6 May 2021 16:40:19 +0200 -Subject: [PATCH 667/704] 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 b49d7568a12363a2f5ea1673583ebbdb9595209a Mon Sep 17 00:00:00 2001 +From 8ff13920c967e7963e795d97f22da02a73e031b8 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 29 Apr 2021 21:58:27 +0200 -Subject: [PATCH 668/704] drm/vc4: hdmi: Simplify the connector state retrieval +Subject: [PATCH 666/741] 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 @@ -225158,10 +225013,10 @@ Signed-off-by: Maxime Ripard 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 +index 69889526c114..739bf3d3abee 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) +@@ -1179,31 +1179,16 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) "VC4_HDMI_FIFO_CTL_RECENTER_DONE"); } @@ -225200,10 +225055,10 @@ index 5db4971a9220..81c2c957183f 100644 2.18.4 -From 4f1352810729f4d31bc87a16095b1bf4fc8b9d49 Mon Sep 17 00:00:00 2001 +From 5e23e39743407845fd320ef6978dc184cdcbb5cc Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 29 Apr 2021 11:08:52 +0200 -Subject: [PATCH 669/704] drm/vc4: hdmi: Rely on interrupts to handle hotplug +Subject: [PATCH 667/741] 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 @@ -225219,10 +225074,10 @@ Signed-off-by: Maxime Ripard 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 +index 739bf3d3abee..40f7ba3e0fcc 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) +@@ -2125,6 +2125,46 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) } @@ -225269,7 +225124,7 @@ index 81c2c957183f..13886a536736 100644 #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) +@@ -2747,6 +2787,10 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) if (ret) goto err_destroy_encoder; @@ -225284,10 +225139,10 @@ index 81c2c957183f..13886a536736 100644 2.18.4 -From 117a1571a35885fe0d2e769b5edfb75140ab173a Mon Sep 17 00:00:00 2001 +From 6939abe1b33ec59575dbb5d18fa4d306f831db00 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 7 May 2021 15:28:21 +0200 -Subject: [PATCH 670/704] drm/vc4: hdmi: Add a workqueue to set scrambling +Subject: [PATCH 668/741] 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 @@ -225303,10 +225158,10 @@ Signed-off-by: Maxime Ripard 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 +index 40f7ba3e0fcc..eb9c846942c4 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, +@@ -865,6 +865,8 @@ static bool vc4_hdmi_supports_scrambling(struct drm_encoder *encoder, return true; } @@ -225315,7 +225170,7 @@ index 13886a536736..f84c8257bd7e 100644 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) +@@ -881,6 +883,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); @@ -225325,7 +225180,7 @@ index 13886a536736..f84c8257bd7e 100644 } static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) -@@ -904,6 +909,9 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) +@@ -899,6 +904,9 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) if (crtc && !vc4_hdmi_mode_needs_scrambling(&crtc->mode)) return; @@ -225335,7 +225190,7 @@ index 13886a536736..f84c8257bd7e 100644 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) +@@ -906,6 +914,22 @@ static void vc4_hdmi_disable_scrambling(struct drm_encoder *encoder) drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, false); } @@ -225358,7 +225213,7 @@ index 13886a536736..f84c8257bd7e 100644 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) +@@ -2710,6 +2734,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; @@ -225383,10 +225238,10 @@ index 23e8cfc22c4d..67c372d743cb 100644 2.18.4 -From eccfb1dba69f01d5ff3cdc57f393ee2bd231a187 Mon Sep 17 00:00:00 2001 +From d76798941881445439b75048f179f1519faa5450 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 7 May 2021 17:22:53 +0100 -Subject: [PATCH 671/704] vc4/drm: hdmi: Fix missing declaration +Subject: [PATCH 669/741] vc4/drm: hdmi: Fix missing declaration Fixes: 671a8068ee5feae1d92e6d48027fa8de062e2af2 Signed-off-by: Dom Cobley @@ -225395,10 +225250,10 @@ Signed-off-by: Dom Cobley 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 +index eb9c846942c4..de28e1a6f502 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) +@@ -2164,6 +2164,7 @@ static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi) { struct platform_device *pdev = vc4_hdmi->pdev; struct device *dev = &pdev->dev; @@ -225410,10 +225265,10 @@ index f84c8257bd7e..f75c176dde09 100644 2.18.4 -From 0210393d99a6fba798e7602cc23937a8050c8b67 Mon Sep 17 00:00:00 2001 +From b9ecea2fd1fb98ab36ecdcc83f61f55c9ef043b6 Mon Sep 17 00:00:00 2001 From: AMuszkat Date: Sun, 28 Mar 2021 21:46:09 +0200 -Subject: [PATCH 672/704] overlays: merus-amp: remove spi override +Subject: [PATCH 670/741] overlays: merus-amp: remove spi override Signed-off-by: AMuszkat --- @@ -225443,10 +225298,10 @@ index bbffd7d26324..4501fbdc253d 100644 2.18.4 -From 8b21d2dc796b5519206d8616091b60e65c60061c Mon Sep 17 00:00:00 2001 +From 5d1b613251e4deaeecb57827f81b577e8ad5c91b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 10 May 2021 22:04:44 +0100 -Subject: [PATCH 673/704] configs: Add NF_LOG_ARP=m and NF_LOG_NETDEV=m +Subject: [PATCH 671/741] configs: Add NF_LOG_ARP=m and NF_LOG_NETDEV=m See: https://github.com/raspberrypi/linux/issues/3615 @@ -225563,10 +225418,10 @@ index c38726720f27..e10614d666dd 100644 2.18.4 -From 6e18470b4fae76059f3e6571f80a38ba889b51ff Mon Sep 17 00:00:00 2001 +From 076d8fdf1c130a6c4a81ec0943f4ce9e2de3d6b0 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 11 May 2021 12:52:26 +0100 -Subject: [PATCH 674/704] media: i2c: ov5647: Correct pixel array offset +Subject: [PATCH 672/741] 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). @@ -225594,10 +225449,10 @@ index 40d0d45a2481..90486b528908 100644 2.18.4 -From 371b205016d2dfad6489ef2961e7c0b5d2e12341 Mon Sep 17 00:00:00 2001 +From 9436ded6c2809a384829e2465606ff6482ac6b5d Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 11 May 2021 12:57:22 +0100 -Subject: [PATCH 675/704] media: i2c: ov5647: Correct minimum VBLANK value +Subject: [PATCH 673/741] 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 @@ -225626,10 +225481,10 @@ index 90486b528908..0437ae2d8dbe 100644 2.18.4 -From 4eb546467f400adff65fa6c24f50c085d7a875eb Mon Sep 17 00:00:00 2001 +From f286cb611b7593ea2aad339942cfee1a52e695a3 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 12 May 2021 07:39:21 +0100 -Subject: [PATCH 676/704] media: i2c: ov5647: Fix v4l2-compliance failure +Subject: [PATCH 674/741] media: i2c: ov5647: Fix v4l2-compliance failure subscribing to events Fixes the following v4l2-compliance failure: @@ -225666,10 +225521,10 @@ index 0437ae2d8dbe..98a5329d68fb 100644 2.18.4 -From 467bd07a0f0108d1faa4c06cc517f6cebcac8cf3 Mon Sep 17 00:00:00 2001 +From bf33dffbdd36e1671ecf93571f2c1d58d930dddf Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 12 May 2021 16:44:11 +0100 -Subject: [PATCH 677/704] dtoverlays: Add pinctrl-names to i2c0 overlay. +Subject: [PATCH 675/741] 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. @@ -225697,10 +225552,10 @@ index 7c6771f84d8e..058f1cb76c69 100644 2.18.4 -From 927fed8944f40233a709fe6bf8033a36585fc484 Mon Sep 17 00:00:00 2001 +From 9b0ced5e1846893574769fc9b2391a6c986e9f27 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 12 May 2021 16:47:05 +0100 -Subject: [PATCH 678/704] dtoverlays: Update /__symbols__/i2c0 from i2c0 +Subject: [PATCH 676/741] dtoverlays: Update /__symbols__/i2c0 from i2c0 overlay Update the symbol as well as the alias so that other overlays will @@ -225734,10 +225589,10 @@ index 058f1cb76c69..46bf1bf2dc5c 100644 2.18.4 -From f72c21217d08dfb870ffa8367eb1fe15eafa92d1 Mon Sep 17 00:00:00 2001 +From 60733dcc964a46b8d9a0b0efb132e5473361cc58 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 21 May 2020 11:49:37 +0100 -Subject: [PATCH 679/704] media: rpivid: Remove the need to have +Subject: [PATCH 677/741] media: rpivid: Remove the need to have num_entry_points set VAAPI H265 has num entry points but never sets it. Allow a VAAPI @@ -226717,10 +226572,10 @@ index e6b07920aa8c..434a366ecfc2 100644 2.18.4 -From c9091fd9019c21e44988b5e2a926246fbc89d66f Mon Sep 17 00:00:00 2001 +From 995807a406bd7242c3ae3a23ccdabf2a9eb1e54a Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 11 Mar 2021 12:51:00 +0000 -Subject: [PATCH 680/704] media: rpivid: Convert to MPLANE +Subject: [PATCH 678/741] media: rpivid: Convert to MPLANE Use multi-planar interface rather than single plane interface. This allows dmabufs holding compressed data to be resized. @@ -227060,10 +226915,10 @@ index 9c4f3fb2f9f6..5c0fd9c8a6d7 100644 2.18.4 -From 2ec1694effcae1dae35ea7cd1d991e333d64edbf Mon Sep 17 00:00:00 2001 +From 5571d62789eab442dca3d4257fd42d5776b303c8 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 11 Mar 2021 18:43:15 +0000 -Subject: [PATCH 681/704] media: rpivid: Add an enable count to irq claim Qs +Subject: [PATCH 679/741] 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 @@ -227304,10 +227159,10 @@ index cf4cc8be8a55..ec73a2332b73 100644 2.18.4 -From 20e285ffb2531f51744b7226a348c807100e6e6a Mon Sep 17 00:00:00 2001 +From ace8d62d5e76c93f8577431dbe5e2785c5bacc8d Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia Date: Sun, 21 Mar 2021 16:38:54 -0300 -Subject: [PATCH 682/704] RFC: media: Add media_request_{pin,unpin} API +Subject: [PATCH 680/741] 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. @@ -227406,10 +227261,10 @@ index 3cd25a2717ce..0de5c2c94188 100644 2.18.4 -From 8df8888a7f2657794352996a4ae68c936b80e105 Mon Sep 17 00:00:00 2001 +From e6b95e37f3b02038e9d4296bfcc10415046965e2 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 11 Mar 2021 19:08:00 +0000 -Subject: [PATCH 683/704] media: rpivid: Add a Pass0 to accumulate slices and +Subject: [PATCH 681/741] media: rpivid: Add a Pass0 to accumulate slices and rework job finish Due to overheads in assembling controls and requests it is worth having @@ -228472,10 +228327,10 @@ index ada6107ab675..396263bb352e 100644 2.18.4 -From e1c12ce3553a44cdb5c10f138f6a3d03fd1d4158 Mon Sep 17 00:00:00 2001 +From 548703dd641de52b7b85909e893139141ecbd9e5 Mon Sep 17 00:00:00 2001 From: John Cox Date: Fri, 19 Mar 2021 17:26:09 +0000 -Subject: [PATCH 684/704] Revert "media: v4l2-mem2mem: allow request job buffer +Subject: [PATCH 682/741] Revert "media: v4l2-mem2mem: allow request job buffer processing after job finish" This reverts commit 40ce8267cb747b3a4f526ac2cf2f633a273c92ae. @@ -228751,10 +228606,10 @@ index 260593fffbc8..c203047eb834 100644 2.18.4 -From cde17228b33e292c6bb45b884f8700c97f6c0f5d Mon Sep 17 00:00:00 2001 +From a7e231ce57934da43a8060aebca5b98c5c5bb7b0 Mon Sep 17 00:00:00 2001 From: John Cox Date: Mon, 29 Mar 2021 17:42:16 +0100 -Subject: [PATCH 685/704] media: rpivid: Map cmd buffer directly +Subject: [PATCH 683/741] 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. @@ -228921,10 +228776,10 @@ index 396263bb352e..2bb86d564b33 100644 2.18.4 -From dd08645bf990a890318f373af1dd5d0cf70b2e9b Mon Sep 17 00:00:00 2001 +From 8acb50ea82577b80faf5ea99b9fd226358b5b9b7 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 1 Apr 2021 16:20:58 +0100 -Subject: [PATCH 686/704] media: rpivid: Improve values returned when setting +Subject: [PATCH 684/741] media: rpivid: Improve values returned when setting output format Guess a better value for the compressed bitstream buffer size @@ -229147,10 +229002,10 @@ index 5c0fd9c8a6d7..a3b228556497 100644 2.18.4 -From 30e7f771faca9541218cfc495635bee1fed7aec8 Mon Sep 17 00:00:00 2001 +From 35ac007f42edd0cc66c4997b3541885ab3f1f7ce Mon Sep 17 00:00:00 2001 From: John Cox Date: Sat, 3 Apr 2021 16:27:03 +0100 -Subject: [PATCH 687/704] media: rpivid: Improve stream_on/off conformance & +Subject: [PATCH 685/741] media: rpivid: Improve stream_on/off conformance & clock setup Fix stream on & off such that failures leave the driver in the correct @@ -229419,10 +229274,10 @@ index 3d882a6853a5..705015890e71 100644 2.18.4 -From 25b63ab19040ecd1058c6ff9af582b2d7fb5e6a0 Mon Sep 17 00:00:00 2001 +From 27417778e85157afb363c39eacb1b0af50a335cf Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 8 Apr 2021 18:34:09 +0100 -Subject: [PATCH 688/704] media: rpivid: Improve SPS/PPS error +Subject: [PATCH 686/741] media: rpivid: Improve SPS/PPS error handling/validation Move size and width checking from bitstream processing to control @@ -229685,10 +229540,10 @@ index ee5a48f26912..bb280b215a2e 100644 2.18.4 -From 275969510f5bf0fb04b739e6bcc8b8f45d5fbcc0 Mon Sep 17 00:00:00 2001 +From 11767d97194d2f9787aeb37864ad531f907ea410 Mon Sep 17 00:00:00 2001 From: menschel Date: Fri, 14 May 2021 14:49:29 +0200 -Subject: [PATCH 689/704] Add CAN_J1939 as module to default build configs +Subject: [PATCH 687/741] Add CAN_J1939 as module to default build configs (#4346) There is a CAN protocol named J1939 which is supported by Linux Kernel @@ -229771,10 +229626,10 @@ index e10614d666dd..f8e5eac69f34 100644 2.18.4 -From bf0bb7e6d00821bec8a83bf57cf772d3c1b6fe31 Mon Sep 17 00:00:00 2001 +From 62f6cbb9dc0c06d66be71b992f6858c856fa6e23 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/704] overlays: add sensirion sgp30 to i2c-sensor overlay +Subject: [PATCH 688/741] overlays: add sensirion sgp30 to i2c-sensor overlay --- arch/arm/boot/dts/overlays/README | 3 +++ @@ -229835,10 +229690,10 @@ index ce97837b0db5..73c691c6a32f 2.18.4 -From e386715aae3eeee11c657d9e3040c12feef1fc36 Mon Sep 17 00:00:00 2001 +From e7edb5010c7d8a6dff15395ad5fa5ee7b8ba7c74 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 21 May 2021 10:05:15 +0100 -Subject: [PATCH 691/704] configs: Add CONFIG_SENSIRION_SGP30=m +Subject: [PATCH 689/741] configs: Add CONFIG_SENSIRION_SGP30=m See: https://github.com/raspberrypi/linux/pull/4355 @@ -229915,10 +229770,10 @@ index f8e5eac69f34..cb052fed296b 100644 2.18.4 -From 48adcb34e1e06f12ecd09f3194144cdbdf41e31a Mon Sep 17 00:00:00 2001 +From f5c57c498317142606873607da1d873ae86e3b20 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 21 May 2021 11:29:52 +0100 -Subject: [PATCH 692/704] overlays: Remove deleted merus-amp parameter +Subject: [PATCH 690/741] overlays: Remove deleted merus-amp parameter Signed-off-by: Phil Elwell --- @@ -229944,10 +229799,10 @@ index 2a7944054d4f..2c7f4791324f 100644 2.18.4 -From 80f36d3084759dbf8e4f30b7fe69ce330beb033d Mon Sep 17 00:00:00 2001 +From 9e671afb3b5bc205df92187cfab3b306d41edb1b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 22 May 2021 08:55:29 +0100 -Subject: [PATCH 693/704] configs: Add GPIO_PCA953X_IRQ=y +Subject: [PATCH 691/741] configs: Add GPIO_PCA953X_IRQ=y Enable interrupt support for PCA953X GPIO expander. @@ -230026,10 +229881,10 @@ index cb052fed296b..869cb55cbf75 100644 2.18.4 -From d0d545d9d155012525ce93ca972e4a4faaa7983e Mon Sep 17 00:00:00 2001 +From 8c865707168cd10fdd268b6bdf3de8f756e732c1 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Tue, 11 May 2021 11:51:35 +0200 -Subject: [PATCH 694/704] overlays: add bh1750 and ccs811 to i2c-sensor (#4334) +Subject: [PATCH 692/741] overlays: add bh1750 and ccs811 to i2c-sensor (#4334) See: https://github.com/raspberrypi/linux/pull/4334 --- @@ -230130,10 +229985,10 @@ index 73c691c6a32f..b05b0fa91942 100755 2.18.4 -From 3e142ec7494191bc6a0fe26d9112abdab114fa9f Mon Sep 17 00:00:00 2001 +From 7eb4e545f1edbcb332427b3ccbb45138dc7c6c15 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Tue, 11 May 2021 11:51:59 +0200 -Subject: [PATCH 695/704] configs: add bh1750 and ccs811 to configs (#4334) +Subject: [PATCH 693/741] configs: add bh1750 and ccs811 to configs (#4334) See: https://github.com/raspberrypi/linux/pull/4334 --- @@ -230246,10 +230101,10 @@ index 869cb55cbf75..3200cc4c7225 100644 2.18.4 -From 2c2d924c45c33bea5bf34a2a03c3d1bfab99f3ad Mon Sep 17 00:00:00 2001 +From d623d22961c389d35d8094bf29c8d7f1a1a87afc Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 2 Dec 2019 14:48:05 +0000 -Subject: [PATCH 696/704] Add Raspberry Pi PoE+ HAT support +Subject: [PATCH 694/741] Add Raspberry Pi PoE+ HAT support Signed-off-by: Serge Schneider --- @@ -230655,10 +230510,10 @@ index 6b393bbe7f52..97ff2a59aa03 100644 2.18.4 -From 09b83a21aa2a826fe800cb0e6a4d0b062ddcc1d0 Mon Sep 17 00:00:00 2001 +From 8a7d27a96706a3e744d321757af69055dff5899e Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 2 Dec 2019 14:48:05 +0000 -Subject: [PATCH 697/704] configs: Enable Raspberry Pi PoE+ HAT support +Subject: [PATCH 695/741] configs: Enable Raspberry Pi PoE+ HAT support Signed-off-by: Serge Schneider --- @@ -230733,10 +230588,10 @@ index 3200cc4c7225..10243e0e0658 100644 2.18.4 -From 0eae4c5ec3e5c3e5d74a0ec4c47d12cad9fd4e6b Mon Sep 17 00:00:00 2001 +From c4c1ee93a9f77f5857242404fd25900866012757 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 2 Dec 2019 14:48:05 +0000 -Subject: [PATCH 698/704] overlays: Add rpi-poe-plus overlay +Subject: [PATCH 696/741] overlays: Add rpi-poe-plus overlay Signed-off-by: Serge Schneider --- @@ -230819,10 +230674,10 @@ index 000000000000..e0138847093b 2.18.4 -From d51aea09e55754aed1e9c0263d4e1bb19a3b1036 Mon Sep 17 00:00:00 2001 +From 79f5a4e0ddb72a91ba99a30e9b2e9f8d071c7ebb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 21 May 2021 11:15:04 +0100 -Subject: [PATCH 699/704] drm/vc4: FKMS: Change of Broadcast RGB mode needs a +Subject: [PATCH 697/741] drm/vc4: FKMS: Change of Broadcast RGB mode needs a mode change The Broadcast RGB (aka HDMI limited/full range) property is only @@ -230887,10 +230742,10 @@ index 44b1addeb22e..e643bbe96941 100644 2.18.4 -From 4dff3be6d0ef18e69d4f507c96905eff063ae234 Mon Sep 17 00:00:00 2001 +From 5995f81e137d555109f16a0d940c32c3d6bc3e05 Mon Sep 17 00:00:00 2001 From: Alex Kurichenko Date: Tue, 1 Jun 2021 01:53:47 +0300 -Subject: [PATCH 700/704] overlays: Add ssd1331-spi support for OLED screen +Subject: [PATCH 698/741] overlays: Add ssd1331-spi support for OLED screen Signed-off-by: Alex Kurichenko --- @@ -231027,10 +230882,10 @@ index 000000000000..9fd5ebf2feda 2.18.4 -From 9ea557d3813ed85d183783a55a843d438d2171cd Mon Sep 17 00:00:00 2001 +From 5cad0c80d20a5b46a54b1cc14cb193dca28c9cbd Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Thu, 10 Jun 2021 13:14:05 +0200 -Subject: [PATCH 701/704] Fixes an onboard clock detection problem of the PRO +Subject: [PATCH 699/741] Fixes an onboard clock detection problem of the PRO versions Increasing the sleep time after clock selection to 3-4ms @@ -231073,10 +230928,10 @@ index 8b04d30bcbee..79eccdb4dc8c 100644 2.18.4 -From 9b304bcfacfacfb5e7084f1a2862c873b3ddcd56 Mon Sep 17 00:00:00 2001 +From 2633c74374bfa0155ea495a55d28e17f3a39c589 Mon Sep 17 00:00:00 2001 From: jc-kynesim Date: Fri, 11 Jun 2021 15:14:31 +0100 -Subject: [PATCH 702/704] bcm2835: Allow compressed frames to set sizeimage +Subject: [PATCH 700/741] bcm2835: Allow compressed frames to set sizeimage (#4386) Allow the user to set sizeimage in TRY_FMT and S_FMT if the format @@ -231126,10 +230981,10 @@ index a97666a1a4be..c3ba5c25a2ab 100644 2.18.4 -From ba829618398519bf675cc7d49478dfe453636590 Mon Sep 17 00:00:00 2001 +From cd0c192d930b945afd667424f51149b496fee2aa Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 11 Jun 2021 12:47:07 +0100 -Subject: [PATCH 703/704] media: i2c: imx477: Fix for long exposure limit +Subject: [PATCH 701/741] media: i2c: imx477: Fix for long exposure limit calculations Do not scale IMX477_EXPOSURE_OFFSET with the long exposure factor during @@ -231158,10 +231013,10 @@ index 34bfd22cadc6..b06add219cb4 100644 2.18.4 -From b1b503f8a7c24e4e22bbedfa4ac58212ec87bd94 Mon Sep 17 00:00:00 2001 +From e743fdbeefd4167c981f879339f1a8342671645a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 14 Jun 2021 15:07:38 +0100 -Subject: [PATCH 704/704] overlays: ghost-amp: Change early-disable sequence +Subject: [PATCH 702/741] overlays: ghost-amp: Change early-disable sequence In the event that the ENABLE signal from the codec goes low before RELAY2 has been enabled, wait until the full 1000ms has elapsed then @@ -231206,3 +231061,5554 @@ index dbedb4b76c74..7509e00679c8 100644 -- 2.18.4 + +From 2f8d9dc53766bfe1687cd4ccbe9783d78f00b72c Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 31 May 2021 17:52:24 +0200 +Subject: [PATCH 703/741] drm: Introduce new state accessors in place of + drm_atomic_get_crtc_state + +drm_atomic_get_crtc_state relies on drm_atomic_get_existing_crtc_state +that is deprecated and isn't really clear on which state it provides. + +Even worse, after the states have been swapped, if the CRTC is present +in the state drm_atomic_get_existing_crtc_state will return the old +state, whereas if the CRTC is not present, we'll use a copy of +crtc->state. crtc->state for the CRTC that is there at that point is the new +state though, which leads to confusion. + +Let's provide two new helpers that make it clear what our expectations +are. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/drm_atomic.c | 104 +++++++++++++++++++++++++++++++++++ + include/drm/drm_atomic.h | 7 +++ + 2 files changed, 111 insertions(+) + +diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c +index 58527f151984..22a97d786d58 100644 +--- a/drivers/gpu/drm/drm_atomic.c ++++ b/drivers/gpu/drm/drm_atomic.c +@@ -281,6 +281,10 @@ EXPORT_SYMBOL(__drm_atomic_state_free); + * needed. It will also grab the relevant CRTC lock to make sure that the state + * is consistent. + * ++ * This function is deprecated, ++ * @drm_atomic_get_old_or_current_crtc_state or ++ * @drm_atomic_get_new_or_current_crtc_state should be used instead. ++ * + * Returns: + * + * Either the allocated state or the error code encoded into the pointer. When +@@ -321,6 +325,106 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state, + } + EXPORT_SYMBOL(drm_atomic_get_crtc_state); + ++/** ++ * drm_atomic_get_old_or_current_crtc_state - get CRTC state ++ * @state: global atomic state object ++ * @crtc: CRTC to get state object for ++ * ++ * This function returns the old CRTC state for the given CRTC if it's ++ * part of the state, or allocating a copy of the current state ++ * otherwise. It will also grab the relevant CRTC lock to make sure that ++ * the state is consistent. ++ * ++ * Returns: ++ * ++ * Either the allocated state or the error code encoded into the pointer. When ++ * the error is EDEADLK then the w/w mutex code has detected a deadlock and the ++ * entire atomic sequence must be restarted. All other errors are fatal. ++ */ ++struct drm_crtc_state * ++drm_atomic_get_old_or_current_crtc_state(struct drm_atomic_state *state, ++ struct drm_crtc *crtc) ++{ ++ int ret, index = drm_crtc_index(crtc); ++ struct drm_crtc_state *crtc_state; ++ ++ WARN_ON(!state->acquire_ctx); ++ ++ crtc_state = drm_atomic_get_old_crtc_state(state, crtc); ++ if (crtc_state) ++ return crtc_state; ++ ++ ret = drm_modeset_lock(&crtc->mutex, state->acquire_ctx); ++ if (ret) ++ return ERR_PTR(ret); ++ ++ crtc_state = crtc->funcs->atomic_duplicate_state(crtc); ++ if (!crtc_state) ++ return ERR_PTR(-ENOMEM); ++ ++ state->crtcs[index].state = crtc_state; ++ state->crtcs[index].old_state = crtc->state; ++ state->crtcs[index].new_state = crtc_state; ++ state->crtcs[index].ptr = crtc; ++ crtc_state->state = state; ++ ++ DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n", ++ crtc->base.id, crtc->name, crtc_state, state); ++ ++ return crtc_state; ++} ++EXPORT_SYMBOL(drm_atomic_get_old_or_current_crtc_state); ++ ++/** ++ * drm_atomic_get_new_or_current_crtc_state - get CRTC state ++ * @state: global atomic state object ++ * @crtc: CRTC to get state object for ++ * ++ * This function returns the new CRTC state for the given CRTC if it's ++ * part of the state, or allocating a copy of the current state ++ * otherwise. It will also grab the relevant CRTC lock to make sure that ++ * the state is consistent. ++ * ++ * Returns: ++ * ++ * Either the allocated state or the error code encoded into the pointer. When ++ * the error is EDEADLK then the w/w mutex code has detected a deadlock and the ++ * entire atomic sequence must be restarted. All other errors are fatal. ++ */ ++struct drm_crtc_state * ++drm_atomic_get_new_or_current_crtc_state(struct drm_atomic_state *state, ++ struct drm_crtc *crtc) ++{ ++ int ret, index = drm_crtc_index(crtc); ++ struct drm_crtc_state *crtc_state; ++ ++ WARN_ON(!state->acquire_ctx); ++ ++ crtc_state = drm_atomic_get_new_crtc_state(state, crtc); ++ if (crtc_state) ++ return crtc_state; ++ ++ ret = drm_modeset_lock(&crtc->mutex, state->acquire_ctx); ++ if (ret) ++ return ERR_PTR(ret); ++ ++ crtc_state = crtc->funcs->atomic_duplicate_state(crtc); ++ if (!crtc_state) ++ return ERR_PTR(-ENOMEM); ++ ++ state->crtcs[index].state = crtc_state; ++ state->crtcs[index].old_state = crtc->state; ++ state->crtcs[index].new_state = crtc_state; ++ state->crtcs[index].ptr = crtc; ++ crtc_state->state = state; ++ ++ DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n", ++ crtc->base.id, crtc->name, crtc_state, state); ++ ++ return crtc_state; ++} ++EXPORT_SYMBOL(drm_atomic_get_new_or_current_crtc_state); ++ + static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state, + const struct drm_crtc_state *new_crtc_state) + { +diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h +index d07c851d255b..feec1676fc03 100644 +--- a/include/drm/drm_atomic.h ++++ b/include/drm/drm_atomic.h +@@ -445,6 +445,13 @@ void drm_atomic_state_default_release(struct drm_atomic_state *state); + struct drm_crtc_state * __must_check + drm_atomic_get_crtc_state(struct drm_atomic_state *state, + struct drm_crtc *crtc); ++struct drm_crtc_state * __must_check ++drm_atomic_get_new_or_current_crtc_state(struct drm_atomic_state *state, ++ struct drm_crtc *crtc); ++struct drm_crtc_state * __must_check ++drm_atomic_get_old_or_current_crtc_state(struct drm_atomic_state *state, ++ struct drm_crtc *crtc); ++ + struct drm_plane_state * __must_check + drm_atomic_get_plane_state(struct drm_atomic_state *state, + struct drm_plane *plane); +-- +2.18.4 + + +From 3e395f474fc8a10df5d33a5419e56f925bfd8264 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 26 May 2021 16:07:01 +0200 +Subject: [PATCH 704/741] drm/vc4: Make vc4_crtc_get_encoder public + +We'll need that function in vc4_kms to compute the core clock rate +requirements. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 8 ++++---- + drivers/gpu/drm/vc4/vc4_drv.h | 5 +++++ + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index a0b5503928df..cea2cb87973c 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -279,10 +279,10 @@ 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, +- struct drm_atomic_state *state, +- struct drm_connector_state *(*get_state)(struct drm_atomic_state *state, +- struct drm_connector *connector)) ++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; +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index 7a70838595b2..9507876931d1 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -522,6 +522,11 @@ vc4_crtc_to_vc4_pv_data(const struct vc4_crtc *crtc) + return container_of(data, struct vc4_pv_data, base); + } + ++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 vc4_crtc_state { + struct drm_crtc_state base; + /* Dlist area for this CRTC configuration. */ +-- +2.18.4 + + +From 127b07251b76c112bf5f768d7e5c4eba9d2ee305 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 26 May 2021 16:13:02 +0200 +Subject: [PATCH 705/741] drm/vc4: Increase the core clock based on HVS load + +Depending on a given HVS output (HVS to PixelValves) and input (planes +attached to a channel) load, the HVS needs for the core clock to be +raised above its boot time default. + +Failing to do so will result in a vblank timeout and a stalled display +pipeline. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_drv.h | 1 + + drivers/gpu/drm/vc4/vc4_kms.c | 127 +++++++++++++++++++++++++++++++++- + 2 files changed, 126 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index 9507876931d1..4cb0d95c1b7b 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -329,6 +329,7 @@ struct vc4_hvs { + u32 __iomem *dlist; + + struct clk *core_clk; ++ struct clk_request *core_req; + + /* Memory manager for CRTCs to allocate space in the display + * list. Units are dwords. +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index 48e3dc11c493..962d3f4397ae 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -305,6 +305,106 @@ static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, + } + } + ++#define HVS_BUS_WIDTH 4 ++ ++/* ++ * On the BCM2711, the core clock needs to be raised depending on the ++ * rate of pixels being fetched from memory by the HVS and then the ++ * pixels being output to the PixelValves. ++ * ++ * Thus, we need to consider the mode on each CRTC to compute the output ++ * pixel rate, and all the planes attached to those CRTCs to compute the ++ * input rate, and take the highest of the two. ++ */ ++static unsigned long vc5_hvs_compute_core_rate(struct vc4_dev *vc4, ++ struct drm_atomic_state *state) ++{ ++ struct drm_crtc *crtc; ++ unsigned long cob_rate = 0; ++ unsigned long pixel_rate = 0; ++ unsigned num_outputs = 0; ++ ++ drm_for_each_crtc(crtc, state->dev) { ++ const struct drm_display_mode *mode; ++ struct drm_crtc_state *crtc_state; ++ struct vc4_encoder *vc4_encoder; ++ struct drm_encoder *encoder; ++ struct drm_plane *plane; ++ unsigned long min_rate; ++ unsigned refresh; ++ ++ crtc_state = drm_atomic_get_new_or_current_crtc_state(state, crtc); ++ if (!crtc_state) ++ continue; ++ ++ if (!crtc_state->active) ++ continue; ++ ++ mode = &crtc_state->adjusted_mode; ++ encoder = vc4_get_crtc_encoder(crtc, state, ++ drm_atomic_get_connector_state); ++ if (!encoder) ++ continue; ++ ++ num_outputs++; ++ vc4_encoder = to_vc4_encoder(encoder); ++ ++ /* ++ * The HVS only generates the active pixels and stores ++ * completed lines in the COB. However, pixel-valve ++ * consumes at the HDMI pixel clock rate which can be a ++ * lot higher than the number of active pixels e.g. 4K ++ * p60 is 594 MHz but active pixels would be 498 MHz. ++ * The COB output is one pixel per clock and runs of the ++ * the core clock and needs to run fast enough to send ++ * the active pixels minus the buffering in pixel-valve. ++ * ++ * For PV2 (HDMI0) there are 512 pixels and for PV4 ++ * (HDMI1) there are 58. This means that for HDMI1 the ++ * core-clock needs to be the same as the pixel clock ++ * but for HDMI0 the core-clock can be a bit slower - ++ * experiments suggest that 90% is about right so long ++ * as the horizontal blanking period is at least 10% of ++ * the total horizonal time, this isn't always in the ++ * case. ++ */ ++ if (vc4_encoder->type == VC4_ENCODER_TYPE_HDMI0) { ++ min_rate = max(mode->clock * mode->hdisplay / mode->htotal + 1000, ++ mode->clock * 9 / 10) * 1000; ++ } else { ++ min_rate = mode->clock * 1000; ++ } ++ cob_rate = max(cob_rate, min_rate); ++ ++ refresh = drm_mode_vrefresh(mode); ++ drm_for_each_plane_mask(plane, state->dev, crtc_state->plane_mask) { ++ struct drm_plane_state *plane_state = ++ drm_atomic_get_plane_state(state, plane); ++ unsigned height, width; ++ ++ if (!plane_state->fb) ++ continue; ++ ++ height = plane_state->src_h >> 16; ++ width = plane_state->src_w >> 16; ++ ++ pixel_rate += height * width * refresh; ++ } ++ } ++ ++ /* ++ * We need to target a memory bus load of 60% if we have a ++ * single HVS channel enabled, and 40% otherwise. ++ */ ++ if (num_outputs > 1) ++ pixel_rate = pixel_rate / 40; ++ else ++ pixel_rate = pixel_rate / 60; ++ pixel_rate = pixel_rate * 100; ++ ++ return max(cob_rate, pixel_rate / HVS_BUS_WIDTH); ++} ++ + static void + vc4_atomic_complete_commit(struct drm_atomic_state *state) + { +@@ -326,9 +426,20 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + vc4_hvs_mask_underrun(dev, vc4_crtc_state->assigned_channel); + } + +- if (vc4->hvs && vc4->hvs->hvs5) ++ if (vc4->hvs && vc4->hvs->hvs5) { ++ /* ++ * Do a temporary request on the core clock during the ++ * modeset. ++ */ + core_req = clk_request_start(hvs->core_clk, 500000000); + ++ /* ++ * And remove the previous one based on the HVS ++ * requirements if any. ++ */ ++ clk_request_done(hvs->core_req); ++ } ++ + drm_atomic_helper_wait_for_fences(dev, state, false); + + drm_atomic_helper_wait_for_dependencies(state); +@@ -358,8 +469,20 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + + drm_atomic_helper_commit_cleanup_done(state); + +- if (vc4->hvs && vc4->hvs->hvs5) ++ if (vc4->hvs && vc4->hvs->hvs5) { ++ unsigned long core_rate = vc5_hvs_compute_core_rate(vc4, ++ state); ++ ++ /* ++ * Request a clock rate based on the current HVS ++ * requirements. ++ */ ++ hvs->core_req = clk_request_start(hvs->core_clk, ++ core_rate); ++ ++ /* And drop the temporary request */ + clk_request_done(core_req); ++ } + + drm_atomic_state_put(state); + +-- +2.18.4 + + +From 91826e5e26a2fe19837d895f3639e2c409c985ab Mon Sep 17 00:00:00 2001 +From: Sia Jee Heng +Date: Thu, 4 Feb 2021 09:42:55 +0800 +Subject: [PATCH 706/741] ASoC: codec: hdmi-codec: Support IEC958 encoded PCM + format + +Existing hdmi-codec driver only support standard pcm format. +Support of IEC958 encoded format pass from ALSA IEC958 plugin is needed +so that the IEC958 encoded data can be streamed to the HDMI chip. + +Signed-off-by: Sia Jee Heng +Link: https://lore.kernel.org/r/20210204014258.10197-2-jee.heng.sia@intel.com +Signed-off-by: Mark Brown +Signed-off-by: Maxime Ripard +--- + include/sound/hdmi-codec.h | 5 +++++ + sound/soc/codecs/hdmi-codec.c | 4 +++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/include/sound/hdmi-codec.h b/include/sound/hdmi-codec.h +index b55970859a13..4b3a1d374b90 100644 +--- a/include/sound/hdmi-codec.h ++++ b/include/sound/hdmi-codec.h +@@ -34,6 +34,11 @@ struct hdmi_codec_daifmt { + unsigned int frame_clk_inv:1; + unsigned int bit_clk_master:1; + unsigned int frame_clk_master:1; ++ /* bit_fmt could be standard PCM format or ++ * IEC958 encoded format. ALSA IEC958 plugin will pass ++ * IEC958_SUBFRAME format to the underneath driver. ++ */ ++ snd_pcm_format_t bit_fmt; + }; + + /* +diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c +index 403d4c6a49a8..e071add934b7 100644 +--- a/sound/soc/codecs/hdmi-codec.c ++++ b/sound/soc/codecs/hdmi-codec.c +@@ -487,6 +487,7 @@ static int hdmi_codec_hw_params(struct snd_pcm_substream *substream, + hp.sample_rate = params_rate(params); + hp.channels = params_channels(params); + ++ cf->bit_fmt = params_format(params); + return hcp->hcd.ops->hw_params(dai->dev->parent, hcp->hcd.data, + cf, &hp); + } +@@ -615,7 +616,8 @@ static const struct snd_soc_dai_ops hdmi_codec_spdif_dai_ops = { + SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S20_3BE |\ + SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE |\ + SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE |\ +- SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE) ++ SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE |\ ++ SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE) + + static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd, + struct snd_soc_dai *dai) +-- +2.18.4 + + +From 99c59ec284dd16157ff02aa7fcdef4446e7d140b Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 28 Apr 2021 11:56:26 +0200 +Subject: [PATCH 707/741] ASoC: hdmi-codec: Rework to support more controls + +We're going to add more controls to support the IEC958 output, so let's +rework the control registration a bit to support more of them. + +Signed-off-by: Maxime Ripard +--- + sound/soc/codecs/hdmi-codec.c | 41 ++++++++++++++++++++++------------- + 1 file changed, 26 insertions(+), 15 deletions(-) + +diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c +index e071add934b7..f0cd210704e2 100644 +--- a/sound/soc/codecs/hdmi-codec.c ++++ b/sound/soc/codecs/hdmi-codec.c +@@ -619,21 +619,23 @@ static const struct snd_soc_dai_ops hdmi_codec_spdif_dai_ops = { + SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE |\ + SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE) + ++struct snd_kcontrol_new hdmi_codec_controls[] = { ++ { ++ .access = (SNDRV_CTL_ELEM_ACCESS_READ | ++ SNDRV_CTL_ELEM_ACCESS_VOLATILE), ++ .iface = SNDRV_CTL_ELEM_IFACE_PCM, ++ .name = "ELD", ++ .info = hdmi_eld_ctl_info, ++ .get = hdmi_eld_ctl_get, ++ }, ++}; ++ + static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd, + struct snd_soc_dai *dai) + { + struct snd_soc_dai_driver *drv = dai->driver; + struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); +- struct snd_kcontrol *kctl; +- struct snd_kcontrol_new hdmi_eld_ctl = { +- .access = SNDRV_CTL_ELEM_ACCESS_READ | +- SNDRV_CTL_ELEM_ACCESS_VOLATILE, +- .iface = SNDRV_CTL_ELEM_IFACE_PCM, +- .name = "ELD", +- .info = hdmi_eld_ctl_info, +- .get = hdmi_eld_ctl_get, +- .device = rtd->pcm->device, +- }; ++ unsigned int i; + int ret; + + ret = snd_pcm_add_chmap_ctls(rtd->pcm, SNDRV_PCM_STREAM_PLAYBACK, +@@ -650,12 +652,21 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd, + hcp->chmap_info->chmap = hdmi_codec_stereo_chmaps; + hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; + +- /* add ELD ctl with the device number corresponding to the PCM stream */ +- kctl = snd_ctl_new1(&hdmi_eld_ctl, dai->component); +- if (!kctl) +- return -ENOMEM; ++ for (i = 0; i < ARRAY_SIZE(hdmi_codec_controls); i++) { ++ struct snd_kcontrol *kctl; + +- return snd_ctl_add(rtd->card->snd_card, kctl); ++ /* add ELD ctl with the device number corresponding to the PCM stream */ ++ kctl = snd_ctl_new1(&hdmi_codec_controls[i], dai->component); ++ if (!kctl) ++ return -ENOMEM; ++ ++ kctl->id.device = rtd->pcm->device; ++ ret = snd_ctl_add(rtd->card->snd_card, kctl); ++ if (ret < 0) ++ return ret; ++ } ++ ++ return 0; + } + + static int hdmi_dai_probe(struct snd_soc_dai *dai) +-- +2.18.4 + + +From 5fe365ff98bdb397110d6edf1fc6b601910892eb Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 28 Apr 2021 15:29:13 +0200 +Subject: [PATCH 708/741] snd: iec958: split status creation and fill + +In some situations, like a codec probe, we need to provide an IEC status +default but don't have access to the sampling rate and width yet since +no stream has been configured yet. + +Each and every driver has its own default, whereas the core iec958 code +also has some buried in the snd_pcm_create_iec958_consumer functions. + +Let's split these functions in two to provide a default that doesn't +rely on the sampling rate and width, and another function to fill them +when available. + +Signed-off-by: Maxime Ripard +--- + include/sound/pcm_iec958.h | 8 +++ + sound/core/pcm_iec958.c | 129 +++++++++++++++++++++++++------------ + 2 files changed, 95 insertions(+), 42 deletions(-) + +diff --git a/include/sound/pcm_iec958.h b/include/sound/pcm_iec958.h +index 0939aa45e2fe..64e84441cde1 100644 +--- a/include/sound/pcm_iec958.h ++++ b/include/sound/pcm_iec958.h +@@ -4,6 +4,14 @@ + + #include + ++int snd_pcm_create_iec958_consumer_default(u8 *cs, size_t len); ++ ++int snd_pcm_fill_iec958_consumer(struct snd_pcm_runtime *runtime, u8 *cs, ++ size_t len); ++ ++int snd_pcm_fill_iec958_consumer_hw_params(struct snd_pcm_hw_params *params, ++ u8 *cs, size_t len); ++ + int snd_pcm_create_iec958_consumer(struct snd_pcm_runtime *runtime, u8 *cs, + size_t len); + +diff --git a/sound/core/pcm_iec958.c b/sound/core/pcm_iec958.c +index f9a211cc1f2c..a60908efe159 100644 +--- a/sound/core/pcm_iec958.c ++++ b/sound/core/pcm_iec958.c +@@ -9,41 +9,68 @@ + #include + #include + +-static int create_iec958_consumer(uint rate, uint sample_width, +- u8 *cs, size_t len) ++int snd_pcm_create_iec958_consumer_default(u8 *cs, size_t len) + { +- unsigned int fs, ws; +- + if (len < 4) + return -EINVAL; + +- switch (rate) { +- case 32000: +- fs = IEC958_AES3_CON_FS_32000; +- break; +- case 44100: +- fs = IEC958_AES3_CON_FS_44100; +- break; +- case 48000: +- fs = IEC958_AES3_CON_FS_48000; +- break; +- case 88200: +- fs = IEC958_AES3_CON_FS_88200; +- break; +- case 96000: +- fs = IEC958_AES3_CON_FS_96000; +- break; +- case 176400: +- fs = IEC958_AES3_CON_FS_176400; +- break; +- case 192000: +- fs = IEC958_AES3_CON_FS_192000; +- break; +- default: ++ memset(cs, 0, len); ++ ++ cs[0] = IEC958_AES0_CON_NOT_COPYRIGHT | IEC958_AES0_CON_EMPHASIS_NONE; ++ cs[1] = IEC958_AES1_CON_GENERAL; ++ cs[2] = IEC958_AES2_CON_SOURCE_UNSPEC | IEC958_AES2_CON_CHANNEL_UNSPEC; ++ cs[3] = IEC958_AES3_CON_CLOCK_1000PPM | IEC958_AES3_CON_FS_NOTID; ++ ++ if (len > 4) ++ cs[4] = IEC958_AES4_CON_WORDLEN_NOTID; ++ ++ return len; ++} ++EXPORT_SYMBOL(snd_pcm_create_iec958_consumer_default); ++ ++static int fill_iec958_consumer(uint rate, uint sample_width, ++ u8 *cs, size_t len) ++{ ++ if (len < 4) + return -EINVAL; ++ ++ if ((cs[3] & IEC958_AES3_CON_FS) == IEC958_AES3_CON_FS_NOTID) { ++ unsigned int fs; ++ ++ switch (rate) { ++ case 32000: ++ fs = IEC958_AES3_CON_FS_32000; ++ break; ++ case 44100: ++ fs = IEC958_AES3_CON_FS_44100; ++ break; ++ case 48000: ++ fs = IEC958_AES3_CON_FS_48000; ++ break; ++ case 88200: ++ fs = IEC958_AES3_CON_FS_88200; ++ break; ++ case 96000: ++ fs = IEC958_AES3_CON_FS_96000; ++ break; ++ case 176400: ++ fs = IEC958_AES3_CON_FS_176400; ++ break; ++ case 192000: ++ fs = IEC958_AES3_CON_FS_192000; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ cs[3] &= ~IEC958_AES3_CON_FS; ++ cs[3] |= fs; + } + +- if (len > 4) { ++ if (len > 4 && ++ (cs[4] & IEC958_AES4_CON_WORDLEN) == IEC958_AES4_CON_WORDLEN_NOTID) { ++ unsigned int ws; ++ + switch (sample_width) { + case 16: + ws = IEC958_AES4_CON_WORDLEN_20_16; +@@ -64,20 +91,29 @@ static int create_iec958_consumer(uint rate, uint sample_width, + default: + return -EINVAL; + } +- } + +- memset(cs, 0, len); ++ cs[4] &= ~IEC958_AES4_CON_WORDLEN; ++ cs[4] |= ws; ++ } + +- cs[0] = IEC958_AES0_CON_NOT_COPYRIGHT | IEC958_AES0_CON_EMPHASIS_NONE; +- cs[1] = IEC958_AES1_CON_GENERAL; +- cs[2] = IEC958_AES2_CON_SOURCE_UNSPEC | IEC958_AES2_CON_CHANNEL_UNSPEC; +- cs[3] = IEC958_AES3_CON_CLOCK_1000PPM | fs; ++ return len; ++} + +- if (len > 4) +- cs[4] = ws; ++int snd_pcm_fill_iec958_consumer_hw_params(struct snd_pcm_hw_params *params, ++ u8 *cs, size_t len) ++{ ++ return fill_iec958_consumer(params_rate(params), params_width(params), cs, len); ++} ++EXPORT_SYMBOL(snd_pcm_fill_iec958_consumer_hw_params); + +- return len; ++int snd_pcm_fill_iec958_consumer(struct snd_pcm_runtime *runtime, ++ u8 *cs, size_t len) ++{ ++ return fill_iec958_consumer(runtime->rate, ++ snd_pcm_format_width(runtime->format), ++ cs, len); + } ++EXPORT_SYMBOL(snd_pcm_fill_iec958_consumer); + + /** + * snd_pcm_create_iec958_consumer - create consumer format IEC958 channel status +@@ -95,9 +131,13 @@ static int create_iec958_consumer(uint rate, uint sample_width, + int snd_pcm_create_iec958_consumer(struct snd_pcm_runtime *runtime, u8 *cs, + size_t len) + { +- return create_iec958_consumer(runtime->rate, +- snd_pcm_format_width(runtime->format), +- cs, len); ++ int ret; ++ ++ ret = snd_pcm_create_iec958_consumer_default(cs, len); ++ if (ret < 0) ++ return ret; ++ ++ return snd_pcm_fill_iec958_consumer(runtime, cs, len); + } + EXPORT_SYMBOL(snd_pcm_create_iec958_consumer); + +@@ -117,7 +157,12 @@ EXPORT_SYMBOL(snd_pcm_create_iec958_consumer); + int snd_pcm_create_iec958_consumer_hw_params(struct snd_pcm_hw_params *params, + u8 *cs, size_t len) + { +- return create_iec958_consumer(params_rate(params), params_width(params), +- cs, len); ++ int ret; ++ ++ ret = snd_pcm_create_iec958_consumer_default(cs, len); ++ if (ret < 0) ++ return ret; ++ ++ return fill_iec958_consumer(params_rate(params), params_width(params), cs, len); + } + EXPORT_SYMBOL(snd_pcm_create_iec958_consumer_hw_params); +-- +2.18.4 + + +From b8d941661faa99bbd217d5f29fe0895cef12dd6d Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 28 Apr 2021 15:29:51 +0200 +Subject: [PATCH 709/741] ASoC: hdmi-codec: Add iec958 controls + +Signed-off-by: Maxime Ripard +--- + sound/soc/codecs/hdmi-codec.c | 66 +++++++++++++++++++++++++++++++++-- + 1 file changed, 64 insertions(+), 2 deletions(-) + +diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c +index f0cd210704e2..1320a9af9d35 100644 +--- a/sound/soc/codecs/hdmi-codec.c ++++ b/sound/soc/codecs/hdmi-codec.c +@@ -278,6 +278,7 @@ struct hdmi_codec_priv { + bool busy; + struct snd_soc_jack *jack; + unsigned int jack_status; ++ u8 iec_status[5]; + }; + + static const struct snd_soc_dapm_widget hdmi_widgets[] = { +@@ -385,6 +386,47 @@ static int hdmi_codec_chmap_ctl_get(struct snd_kcontrol *kcontrol, + return 0; + } + ++static int hdmi_codec_iec958_info(struct snd_kcontrol *kcontrol, ++ struct snd_ctl_elem_info *uinfo) ++{ ++ uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; ++ uinfo->count = 1; ++ return 0; ++} ++ ++static int hdmi_codec_iec958_default_get(struct snd_kcontrol *kcontrol, ++ struct snd_ctl_elem_value *ucontrol) ++{ ++ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); ++ struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); ++ ++ memcpy(ucontrol->value.iec958.status, hcp->iec_status, ++ sizeof(hcp->iec_status)); ++ ++ return 0; ++} ++ ++static int hdmi_codec_iec958_default_put(struct snd_kcontrol *kcontrol, ++ struct snd_ctl_elem_value *ucontrol) ++{ ++ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); ++ struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); ++ ++ memcpy(hcp->iec_status, ucontrol->value.iec958.status, ++ sizeof(hcp->iec_status)); ++ ++ return 0; ++} ++ ++static int hdmi_codec_iec958_mask_get(struct snd_kcontrol *kcontrol, ++ struct snd_ctl_elem_value *ucontrol) ++{ ++ memset(ucontrol->value.iec958.status, 0xff, ++ sizeof_field(struct hdmi_codec_priv, iec_status)); ++ ++ return 0; ++} ++ + static int hdmi_codec_startup(struct snd_pcm_substream *substream, + struct snd_soc_dai *dai) + { +@@ -458,8 +500,9 @@ static int hdmi_codec_hw_params(struct snd_pcm_substream *substream, + params_width(params), params_rate(params), + params_channels(params)); + +- ret = snd_pcm_create_iec958_consumer_hw_params(params, hp.iec.status, +- sizeof(hp.iec.status)); ++ memcpy(hp.iec.status, hcp->iec_status, sizeof(hp->iec_status)); ++ ret = snd_pcm_fill_iec958_consumer_hw_params(params, hp.iec.status, ++ sizeof(hp.iec.status)); + if (ret < 0) { + dev_err(dai->dev, "Creating IEC958 channel status failed %d\n", + ret); +@@ -620,6 +663,20 @@ static const struct snd_soc_dai_ops hdmi_codec_spdif_dai_ops = { + SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE) + + struct snd_kcontrol_new hdmi_codec_controls[] = { ++ { ++ .access = SNDRV_CTL_ELEM_ACCESS_READ, ++ .iface = SNDRV_CTL_ELEM_IFACE_PCM, ++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, MASK), ++ .info = hdmi_codec_iec958_info, ++ .get = hdmi_codec_iec958_mask_get, ++ }, ++ { ++ .iface = SNDRV_CTL_ELEM_IFACE_PCM, ++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, DEFAULT), ++ .info = hdmi_codec_iec958_info, ++ .get = hdmi_codec_iec958_default_get, ++ .put = hdmi_codec_iec958_default_put, ++ }, + { + .access = (SNDRV_CTL_ELEM_ACCESS_READ | + SNDRV_CTL_ELEM_ACCESS_VOLATILE), +@@ -845,6 +902,11 @@ static int hdmi_codec_probe(struct platform_device *pdev) + hcp->hcd = *hcd; + mutex_init(&hcp->lock); + ++ ret = snd_pcm_create_iec958_consumer_default(hcp->iec_status, ++ sizeof(hcp->iec_status)); ++ if (ret < 0) ++ return ret; ++ + daidrv = devm_kcalloc(dev, dai_count, sizeof(*daidrv), GFP_KERNEL); + if (!daidrv) + return -ENOMEM; +-- +2.18.4 + + +From 18c581d84295bd51f13ac737717ba61cea08d4a2 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Fri, 30 Apr 2021 14:22:06 +0200 +Subject: [PATCH 710/741] ASoC: hdmi-codec: Add a prepare hook + +The IEC958 status bit is usually set by the userspace after hw_params +has been called, so in order to use whatever is set by the userspace, we +need to implement the prepare hook. Let's add it to the hdmi_codec_ops, +and mandate that either prepare or hw_params is implemented. + +Signed-off-by: Maxime Ripard +--- + include/sound/hdmi-codec.h | 12 +++- + sound/soc/codecs/hdmi-codec.c | 112 ++++++++++++++++++++++++++-------- + 2 files changed, 99 insertions(+), 25 deletions(-) + +diff --git a/include/sound/hdmi-codec.h b/include/sound/hdmi-codec.h +index 4b3a1d374b90..4fc733c8c570 100644 +--- a/include/sound/hdmi-codec.h ++++ b/include/sound/hdmi-codec.h +@@ -65,12 +65,22 @@ struct hdmi_codec_ops { + + /* + * Configures HDMI-encoder for audio stream. +- * Mandatory ++ * Having either prepare or hw_params is mandatory. + */ + int (*hw_params)(struct device *dev, void *data, + struct hdmi_codec_daifmt *fmt, + struct hdmi_codec_params *hparms); + ++ /* ++ * Configures HDMI-encoder for audio stream. Can be called ++ * multiple times for each setup. ++ * ++ * Having either prepare or hw_params is mandatory. ++ */ ++ int (*prepare)(struct device *dev, void *data, ++ struct hdmi_codec_daifmt *fmt, ++ struct hdmi_codec_params *hparms); ++ + /* + * Shuts down the audio stream. + * Mandatory +diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c +index 1320a9af9d35..b9e96d7ed00b 100644 +--- a/sound/soc/codecs/hdmi-codec.c ++++ b/sound/soc/codecs/hdmi-codec.c +@@ -480,6 +480,42 @@ static void hdmi_codec_shutdown(struct snd_pcm_substream *substream, + mutex_unlock(&hcp->lock); + } + ++static int hdmi_codec_fill_codec_params(struct snd_soc_dai *dai, ++ unsigned int sample_width, ++ unsigned int sample_rate, ++ unsigned int channels, ++ struct hdmi_codec_params *hp) ++{ ++ struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); ++ int idx; ++ ++ /* Select a channel allocation that matches with ELD and pcm channels */ ++ idx = hdmi_codec_get_ch_alloc_table_idx(hcp, channels); ++ if (idx < 0) { ++ dev_err(dai->dev, "Not able to map channels to speakers (%d)\n", ++ idx); ++ hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; ++ return idx; ++ } ++ ++ memset(hp, 0, sizeof(*hp)); ++ ++ hdmi_audio_infoframe_init(&hp->cea); ++ hp->cea.channels = channels; ++ hp->cea.coding_type = HDMI_AUDIO_CODING_TYPE_STREAM; ++ hp->cea.sample_size = HDMI_AUDIO_SAMPLE_SIZE_STREAM; ++ hp->cea.sample_frequency = HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM; ++ hp->cea.channel_allocation = hdmi_codec_channel_alloc[idx].ca_id; ++ ++ hp->sample_width = sample_width; ++ hp->sample_rate = sample_rate; ++ hp->channels = channels; ++ ++ hcp->chmap_idx = hdmi_codec_channel_alloc[idx].ca_id; ++ ++ return 0; ++} ++ + static int hdmi_codec_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params, + struct snd_soc_dai *dai) +@@ -494,13 +530,24 @@ static int hdmi_codec_hw_params(struct snd_pcm_substream *substream, + .dig_subframe = { 0 }, + } + }; +- int ret, idx; ++ int ret; ++ ++ if (!hcp->hcd.ops->hw_params) ++ return 0; + + dev_dbg(dai->dev, "%s() width %d rate %d channels %d\n", __func__, + params_width(params), params_rate(params), + params_channels(params)); + +- memcpy(hp.iec.status, hcp->iec_status, sizeof(hp->iec_status)); ++ ret = hdmi_codec_fill_codec_params(dai, ++ params_width(params), ++ params_rate(params), ++ params_channels(params), ++ &hp); ++ if (ret < 0) ++ return ret; ++ ++ memcpy(hp.iec.status, hcp->iec_status, sizeof(hp.iec.status)); + ret = snd_pcm_fill_iec958_consumer_hw_params(params, hp.iec.status, + sizeof(hp.iec.status)); + if (ret < 0) { +@@ -509,32 +556,47 @@ static int hdmi_codec_hw_params(struct snd_pcm_substream *substream, + return ret; + } + +- hdmi_audio_infoframe_init(&hp.cea); +- hp.cea.channels = params_channels(params); +- hp.cea.coding_type = HDMI_AUDIO_CODING_TYPE_STREAM; +- hp.cea.sample_size = HDMI_AUDIO_SAMPLE_SIZE_STREAM; +- hp.cea.sample_frequency = HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM; +- +- /* Select a channel allocation that matches with ELD and pcm channels */ +- idx = hdmi_codec_get_ch_alloc_table_idx(hcp, hp.cea.channels); +- if (idx < 0) { +- dev_err(dai->dev, "Not able to map channels to speakers (%d)\n", +- idx); +- hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; +- return idx; +- } +- hp.cea.channel_allocation = hdmi_codec_channel_alloc[idx].ca_id; +- hcp->chmap_idx = hdmi_codec_channel_alloc[idx].ca_id; +- +- hp.sample_width = params_width(params); +- hp.sample_rate = params_rate(params); +- hp.channels = params_channels(params); +- + cf->bit_fmt = params_format(params); + return hcp->hcd.ops->hw_params(dai->dev->parent, hcp->hcd.data, + cf, &hp); + } + ++static int hdmi_codec_prepare(struct snd_pcm_substream *substream, ++ struct snd_soc_dai *dai) ++{ ++ struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai); ++ struct hdmi_codec_daifmt *cf = dai->playback_dma_data; ++ struct snd_pcm_runtime *runtime = substream->runtime; ++ unsigned int channels = runtime->channels; ++ unsigned int width = snd_pcm_format_width(runtime->format); ++ unsigned int rate = runtime->rate; ++ struct hdmi_codec_params hp; ++ int ret; ++ ++ if (!hcp->hcd.ops->prepare) ++ return 0; ++ ++ dev_dbg(dai->dev, "%s() width %d rate %d channels %d\n", __func__, ++ width, rate, channels); ++ ++ ret = hdmi_codec_fill_codec_params(dai, width, rate, channels, &hp); ++ if (ret < 0) ++ return ret; ++ ++ memcpy(hp.iec.status, hcp->iec_status, sizeof(hp.iec.status)); ++ ret = snd_pcm_fill_iec958_consumer(runtime, hp.iec.status, ++ sizeof(hp.iec.status)); ++ if (ret < 0) { ++ dev_err(dai->dev, "Creating IEC958 channel status failed %d\n", ++ ret); ++ return ret; ++ } ++ ++ cf->bit_fmt = runtime->format; ++ return hcp->hcd.ops->prepare(dai->dev->parent, hcp->hcd.data, ++ cf, &hp); ++} ++ + static int hdmi_codec_i2s_set_fmt(struct snd_soc_dai *dai, + unsigned int fmt) + { +@@ -626,6 +688,7 @@ static const struct snd_soc_dai_ops hdmi_codec_i2s_dai_ops = { + .startup = hdmi_codec_startup, + .shutdown = hdmi_codec_shutdown, + .hw_params = hdmi_codec_hw_params, ++ .prepare = hdmi_codec_prepare, + .set_fmt = hdmi_codec_i2s_set_fmt, + .mute_stream = hdmi_codec_mute, + }; +@@ -889,7 +952,8 @@ static int hdmi_codec_probe(struct platform_device *pdev) + } + + dai_count = hcd->i2s + hcd->spdif; +- if (dai_count < 1 || !hcd->ops || !hcd->ops->hw_params || ++ if (dai_count < 1 || !hcd->ops || ++ (!hcd->ops->hw_params && !hcd->ops->prepare) || + !hcd->ops->audio_shutdown) { + dev_err(dev, "%s: Invalid parameters\n", __func__); + return -EINVAL; +-- +2.18.4 + + +From 04e267d1affd85fceaca992e167c0abf1bcf053f Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 26 Apr 2021 14:42:26 +0200 +Subject: [PATCH 711/741] drm/vc4: Register HDMI codec + +The hdmi-codec brings a lot of advanced features, including the HDMI +channel mapping. Let's use it in our driver instead of our own codec. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/Kconfig | 1 + + drivers/gpu/drm/vc4/vc4_hdmi.c | 718 ++++----------------------------- + drivers/gpu/drm/vc4/vc4_hdmi.h | 3 +- + 3 files changed, 77 insertions(+), 645 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/Kconfig b/drivers/gpu/drm/vc4/Kconfig +index 118e8a426b1a..345a5570a3da 100644 +--- a/drivers/gpu/drm/vc4/Kconfig ++++ b/drivers/gpu/drm/vc4/Kconfig +@@ -12,6 +12,7 @@ config DRM_VC4 + select SND_PCM + select SND_PCM_ELD + select SND_SOC_GENERIC_DMAENGINE_PCM ++ select SND_SOC_HDMI_CODEC + select DRM_MIPI_DSI + help + Choose this option if you have a system that has a Broadcom +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index de28e1a6f502..516b09f83d2d 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -47,6 +47,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -96,312 +97,6 @@ + # define VC4_HD_M_ENABLE BIT(0) + + #define CEC_CLOCK_FREQ 40000 +- +-#define HDMI_CODEC_CHMAP_IDX_UNKNOWN -1 +- +-/* +- * CEA speaker placement for HDMI 1.4: +- * +- * FL FLC FC FRC FR FRW +- * +- * LFE +- * +- * RL RLC RC RRC RR +- * +- * Speaker placement has to be extended to support HDMI 2.0 +- */ +-enum hdmi_codec_cea_spk_placement { +- FL = BIT(0), /* Front Left */ +- FC = BIT(1), /* Front Center */ +- FR = BIT(2), /* Front Right */ +- FLC = BIT(3), /* Front Left Center */ +- FRC = BIT(4), /* Front Right Center */ +- RL = BIT(5), /* Rear Left */ +- RC = BIT(6), /* Rear Center */ +- RR = BIT(7), /* Rear Right */ +- RLC = BIT(8), /* Rear Left Center */ +- RRC = BIT(9), /* Rear Right Center */ +- LFE = BIT(10), /* Low Frequency Effect */ +-}; +- +-/* +- * cea Speaker allocation structure +- */ +-struct hdmi_codec_cea_spk_alloc { +- const int ca_id; +- unsigned int n_ch; +- unsigned long mask; +-}; +- +-/* Channel maps stereo HDMI */ +-static const struct snd_pcm_chmap_elem hdmi_codec_stereo_chmaps[] = { +- { .channels = 2, +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR } }, +- { } +-}; +- +-/* Channel maps for multi-channel playbacks, up to 8 n_ch */ +-static const struct snd_pcm_chmap_elem hdmi_codec_8ch_chmaps[] = { +- { .channels = 2, /* CA_ID 0x00 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR } }, +- { .channels = 4, /* CA_ID 0x01 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA } }, +- { .channels = 4, /* CA_ID 0x02 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC } }, +- { .channels = 4, /* CA_ID 0x03 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC } }, +- { .channels = 6, /* CA_ID 0x04 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 6, /* CA_ID 0x05 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 6, /* CA_ID 0x06 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 6, /* CA_ID 0x07 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 6, /* CA_ID 0x08 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR } }, +- { .channels = 6, /* CA_ID 0x09 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR } }, +- { .channels = 6, /* CA_ID 0x0A */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR } }, +- { .channels = 6, /* CA_ID 0x0B */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR } }, +- { .channels = 8, /* CA_ID 0x0C */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 8, /* CA_ID 0x0D */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 8, /* CA_ID 0x0E */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 8, /* CA_ID 0x0F */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RC, SNDRV_CHMAP_NA } }, +- { .channels = 8, /* CA_ID 0x10 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RLC, SNDRV_CHMAP_RRC } }, +- { .channels = 8, /* CA_ID 0x11 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RLC, SNDRV_CHMAP_RRC } }, +- { .channels = 8, /* CA_ID 0x12 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RLC, SNDRV_CHMAP_RRC } }, +- { .channels = 8, /* CA_ID 0x13 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_RL, SNDRV_CHMAP_RR, +- SNDRV_CHMAP_RLC, SNDRV_CHMAP_RRC } }, +- { .channels = 8, /* CA_ID 0x14 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x15 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x16 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x17 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x18 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x19 */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x1A */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x1B */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x1C */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x1D */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x1E */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { .channels = 8, /* CA_ID 0x1F */ +- .map = { SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_LFE, +- SNDRV_CHMAP_FC, SNDRV_CHMAP_NA, SNDRV_CHMAP_NA, +- SNDRV_CHMAP_FLC, SNDRV_CHMAP_FRC } }, +- { } +-}; +- +-/* +- * hdmi_codec_channel_alloc: speaker configuration available for CEA +- * +- * This is an ordered list that must match with hdmi_codec_8ch_chmaps struct +- * The preceding ones have better chances to be selected by +- * hdmi_codec_get_ch_alloc_table_idx(). +- */ +-static const struct hdmi_codec_cea_spk_alloc hdmi_codec_channel_alloc[] = { +- { .ca_id = 0x00, .n_ch = 2, +- .mask = FL | FR}, +- /* 2.1 */ +- { .ca_id = 0x01, .n_ch = 4, +- .mask = FL | FR | LFE}, +- /* Dolby Surround */ +- { .ca_id = 0x02, .n_ch = 4, +- .mask = FL | FR | FC }, +- /* surround51 */ +- { .ca_id = 0x0b, .n_ch = 6, +- .mask = FL | FR | LFE | FC | RL | RR}, +- /* surround40 */ +- { .ca_id = 0x08, .n_ch = 6, +- .mask = FL | FR | RL | RR }, +- /* surround41 */ +- { .ca_id = 0x09, .n_ch = 6, +- .mask = FL | FR | LFE | RL | RR }, +- /* surround50 */ +- { .ca_id = 0x0a, .n_ch = 6, +- .mask = FL | FR | FC | RL | RR }, +- /* 6.1 */ +- { .ca_id = 0x0f, .n_ch = 8, +- .mask = FL | FR | LFE | FC | RL | RR | RC }, +- /* surround71 */ +- { .ca_id = 0x13, .n_ch = 8, +- .mask = FL | FR | LFE | FC | RL | RR | RLC | RRC }, +- /* others */ +- { .ca_id = 0x03, .n_ch = 8, +- .mask = FL | FR | LFE | FC }, +- { .ca_id = 0x04, .n_ch = 8, +- .mask = FL | FR | RC}, +- { .ca_id = 0x05, .n_ch = 8, +- .mask = FL | FR | LFE | RC }, +- { .ca_id = 0x06, .n_ch = 8, +- .mask = FL | FR | FC | RC }, +- { .ca_id = 0x07, .n_ch = 8, +- .mask = FL | FR | LFE | FC | RC }, +- { .ca_id = 0x0c, .n_ch = 8, +- .mask = FL | FR | RC | RL | RR }, +- { .ca_id = 0x0d, .n_ch = 8, +- .mask = FL | FR | LFE | RL | RR | RC }, +- { .ca_id = 0x0e, .n_ch = 8, +- .mask = FL | FR | FC | RL | RR | RC }, +- { .ca_id = 0x10, .n_ch = 8, +- .mask = FL | FR | RL | RR | RLC | RRC }, +- { .ca_id = 0x11, .n_ch = 8, +- .mask = FL | FR | LFE | RL | RR | RLC | RRC }, +- { .ca_id = 0x12, .n_ch = 8, +- .mask = FL | FR | FC | RL | RR | RLC | RRC }, +- { .ca_id = 0x14, .n_ch = 8, +- .mask = FL | FR | FLC | FRC }, +- { .ca_id = 0x15, .n_ch = 8, +- .mask = FL | FR | LFE | FLC | FRC }, +- { .ca_id = 0x16, .n_ch = 8, +- .mask = FL | FR | FC | FLC | FRC }, +- { .ca_id = 0x17, .n_ch = 8, +- .mask = FL | FR | LFE | FC | FLC | FRC }, +- { .ca_id = 0x18, .n_ch = 8, +- .mask = FL | FR | RC | FLC | FRC }, +- { .ca_id = 0x19, .n_ch = 8, +- .mask = FL | FR | LFE | RC | FLC | FRC }, +- { .ca_id = 0x1a, .n_ch = 8, +- .mask = FL | FR | RC | FC | FLC | FRC }, +- { .ca_id = 0x1b, .n_ch = 8, +- .mask = FL | FR | LFE | RC | FC | FLC | FRC }, +- { .ca_id = 0x1c, .n_ch = 8, +- .mask = FL | FR | RL | RR | FLC | FRC }, +- { .ca_id = 0x1d, .n_ch = 8, +- .mask = FL | FR | LFE | RL | RR | FLC | FRC }, +- { .ca_id = 0x1e, .n_ch = 8, +- .mask = FL | FR | FC | RL | RR | FLC | FRC }, +- { .ca_id = 0x1f, .n_ch = 8, +- .mask = FL | FR | LFE | FC | RL | RR | FLC | FRC }, +-}; +- +-static unsigned long hdmi_codec_spk_mask_from_alloc(int spk_alloc) +-{ +- int i; +- static const unsigned long hdmi_codec_eld_spk_alloc_bits[] = { +- [0] = FL | FR, [1] = LFE, [2] = FC, [3] = RL | RR, +- [4] = RC, [5] = FLC | FRC, [6] = RLC | RRC, +- }; +- unsigned long spk_mask = 0; +- +- for (i = 0; i < ARRAY_SIZE(hdmi_codec_eld_spk_alloc_bits); i++) { +- if (spk_alloc & (1 << i)) +- spk_mask |= hdmi_codec_eld_spk_alloc_bits[i]; +- } +- +- return spk_mask; +-} +- +-static int hdmi_codec_get_ch_alloc_table_idx(struct vc4_hdmi *vc4_hdmi, +- unsigned char channels) +-{ +- struct drm_connector *connector = &vc4_hdmi->connector; +- int i; +- u8 spk_alloc; +- unsigned long spk_mask; +- const struct hdmi_codec_cea_spk_alloc *cap = hdmi_codec_channel_alloc; +- +- spk_alloc = drm_eld_get_spk_alloc(connector->eld); +- spk_mask = hdmi_codec_spk_mask_from_alloc(spk_alloc); +- +- for (i = 0; i < ARRAY_SIZE(hdmi_codec_channel_alloc); i++, cap++) { +- /* If spk_alloc == 0, HDMI is unplugged return stereo config*/ +- if (!spk_alloc && cap->ca_id == 0) +- return i; +- if (cap->n_ch != channels) +- continue; +- if (!(cap->mask == (spk_mask & cap->mask))) +- continue; +- return i; +- } +- +- return -EINVAL; +-} +- +-static void hdmi_codec_eld_chmap(struct vc4_hdmi *vc4_hdmi) +-{ +- struct drm_connector *connector = &vc4_hdmi->connector; +- u8 spk_alloc; +- unsigned long spk_mask; +- +- spk_alloc = drm_eld_get_spk_alloc(connector->eld); +- spk_mask = hdmi_codec_spk_mask_from_alloc(spk_alloc); +- +- /* Detect if only stereo supported, else return 8 channels mappings */ +- if ((spk_mask & ~(FL | FR))) +- vc4_hdmi->audio.chmap = hdmi_codec_8ch_chmaps; +- else +- vc4_hdmi->audio.chmap = hdmi_codec_stereo_chmaps; +-} +- + #define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) + + static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode *mode) +@@ -797,19 +492,10 @@ static void vc4_hdmi_set_spd_infoframe(struct drm_encoder *encoder) + static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder) + { + struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); ++ struct hdmi_audio_infoframe *audio = &vc4_hdmi->audio.infoframe; + union hdmi_infoframe frame; +- int ret; +- +- ret = hdmi_audio_infoframe_init(&frame.audio); +- +- frame.audio.coding_type = HDMI_AUDIO_CODING_TYPE_STREAM; +- frame.audio.sample_frequency = HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM; +- frame.audio.sample_size = HDMI_AUDIO_SAMPLE_SIZE_STREAM; +- frame.audio.channels = vc4_hdmi->audio.channels; +- +- /* Select a channel allocation that matches with ELD and pcm channels */ +- frame.audio.channel_allocation = vc4_hdmi->audio.chmap_idx; + ++ memcpy(&frame.audio, audio, sizeof(*audio)); + vc4_hdmi_write_infoframe(encoder, &frame); + } + +@@ -1544,18 +1230,10 @@ static inline struct vc4_hdmi *dai_to_hdmi(struct snd_soc_dai *dai) + return snd_soc_card_get_drvdata(card); + } + +-static int vc4_hdmi_audio_startup(struct snd_pcm_substream *substream, +- struct snd_soc_dai *dai) ++static int vc4_hdmi_audio_startup(struct device *dev, void *data) + { +- struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai); ++ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; +- struct drm_connector *connector = &vc4_hdmi->connector; +- int ret; +- +- if (vc4_hdmi->audio.substream && vc4_hdmi->audio.substream != substream) +- return -EINVAL; +- +- vc4_hdmi->audio.substream = substream; + + /* + * If the HDMI encoder hasn't probed, or the encoder is +@@ -1565,19 +1243,18 @@ static int vc4_hdmi_audio_startup(struct snd_pcm_substream *substream, + VC4_HDMI_RAM_PACKET_ENABLE)) + return -ENODEV; + +- ret = snd_pcm_hw_constraint_eld(substream->runtime, connector->eld); +- if (ret) +- return ret; ++ vc4_hdmi->audio.streaming = true; + +- /* Select chmap supported */ +- vc4_hdmi->audio.max_channels = 8; +- hdmi_codec_eld_chmap(vc4_hdmi); ++ HDMI_WRITE(HDMI_MAI_CTL, ++ VC4_HD_MAI_CTL_RESET | ++ VC4_HD_MAI_CTL_FLUSH | ++ VC4_HD_MAI_CTL_DLATE | ++ VC4_HD_MAI_CTL_ERRORE | ++ VC4_HD_MAI_CTL_ERRORF); + +- return 0; +-} ++ if (vc4_hdmi->variant->phy_rng_enable) ++ vc4_hdmi->variant->phy_rng_enable(vc4_hdmi); + +-static int vc4_hdmi_audio_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) +-{ + return 0; + } + +@@ -1597,17 +1274,20 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) + HDMI_WRITE(HDMI_MAI_CTL, VC4_HD_MAI_CTL_FLUSH); + } + +-static void vc4_hdmi_audio_shutdown(struct snd_pcm_substream *substream, +- struct snd_soc_dai *dai) ++static void vc4_hdmi_audio_shutdown(struct device *dev, void *data) + { +- struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai); ++ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + +- if (substream != vc4_hdmi->audio.substream) +- return; ++ HDMI_WRITE(HDMI_MAI_CTL, ++ VC4_HD_MAI_CTL_DLATE | ++ VC4_HD_MAI_CTL_ERRORE | ++ VC4_HD_MAI_CTL_ERRORF); + +- vc4_hdmi_audio_reset(vc4_hdmi); ++ if (vc4_hdmi->variant->phy_rng_disable) ++ vc4_hdmi->variant->phy_rng_disable(vc4_hdmi); + +- vc4_hdmi->audio.substream = NULL; ++ vc4_hdmi->audio.streaming = false; ++ vc4_hdmi_audio_reset(vc4_hdmi); + } + + static int sample_rate_to_mai_fmt(int samplerate) +@@ -1649,43 +1329,35 @@ static int sample_rate_to_mai_fmt(int samplerate) + } + + /* HDMI audio codec callbacks */ +-static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +- struct snd_soc_dai *dai) ++static int vc4_hdmi_audio_prepare(struct device *dev, void *data, ++ struct hdmi_codec_daifmt *daifmt, ++ struct hdmi_codec_params *params) + { +- struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai); ++ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; +- struct device *dev = &vc4_hdmi->pdev->dev; + u32 audio_packet_config, channel_mask; + u32 channel_map; + u32 mai_audio_format; + u32 mai_sample_rate; +- int idx; + +- if (substream != vc4_hdmi->audio.substream) +- return -EINVAL; +- +- dev_dbg(dev, "%s: %u Hz, %d bit, %d channels AES0=%02x\n", +- __func__, +- substream->runtime->rate, +- snd_pcm_format_width(substream->runtime->format), +- substream->runtime->channels, +- vc4_hdmi->audio.iec_status[0]); ++ dev_dbg(dev, "%s: %u Hz, %d bit, %d channels\n", __func__, ++ params->sample_rate, params->sample_width, ++ params->channels); + +- vc4_hdmi->audio.channels = substream->runtime->channels; +- vc4_hdmi->audio.samplerate = substream->runtime->rate; ++ vc4_hdmi->audio.channels = params->channels; ++ vc4_hdmi->audio.samplerate = params->sample_rate; + + HDMI_WRITE(HDMI_MAI_CTL, +- VC4_HD_MAI_CTL_RESET | +- VC4_HD_MAI_CTL_FLUSH | +- VC4_HD_MAI_CTL_DLATE | +- VC4_HD_MAI_CTL_ERRORE | +- VC4_HD_MAI_CTL_ERRORF); ++ VC4_SET_FIELD(params->channels, VC4_HD_MAI_CTL_CHNUM) | ++ VC4_HD_MAI_CTL_WHOLSMP | ++ VC4_HD_MAI_CTL_CHALIGN | ++ VC4_HD_MAI_CTL_ENABLE); + + vc4_hdmi_audio_set_mai_clock(vc4_hdmi); + + mai_sample_rate = sample_rate_to_mai_fmt(vc4_hdmi->audio.samplerate); +- if (vc4_hdmi->audio.iec_status[0] & IEC958_AES0_NONAUDIO && +- vc4_hdmi->audio.channels == 8) ++ if (params->iec.status[0] & IEC958_AES0_NONAUDIO && ++ params->channels == 8) + mai_audio_format = VC4_HDMI_MAI_FORMAT_HBR; + else + mai_audio_format = VC4_HDMI_MAI_FORMAT_PCM; +@@ -1722,249 +1394,12 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, + HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config); + vc4_hdmi_set_n_cts(vc4_hdmi); + +- idx = hdmi_codec_get_ch_alloc_table_idx(vc4_hdmi, vc4_hdmi->audio.channels); +- if (idx < 0) { +- DRM_ERROR("Not able to map channels to speakers (%d)\n", idx); +- vc4_hdmi->audio.chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN; +- } else { +- vc4_hdmi->audio.chmap_idx = hdmi_codec_channel_alloc[idx].ca_id; +- } +- ++ memcpy(&vc4_hdmi->audio.infoframe, ¶ms->cea, sizeof(params->cea)); + vc4_hdmi_set_audio_infoframe(encoder); + + return 0; + } + +-static int vc4_hdmi_audio_trigger(struct snd_pcm_substream *substream, int cmd, +- struct snd_soc_dai *dai) +-{ +- struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai); +- +- switch (cmd) { +- case SNDRV_PCM_TRIGGER_START: +- vc4_hdmi->audio.streaming = true; +- +- if (vc4_hdmi->variant->phy_rng_enable) +- vc4_hdmi->variant->phy_rng_enable(vc4_hdmi); +- +- HDMI_WRITE(HDMI_MAI_CTL, +- VC4_SET_FIELD(vc4_hdmi->audio.channels, +- VC4_HD_MAI_CTL_CHNUM) | +- VC4_HD_MAI_CTL_WHOLSMP | +- VC4_HD_MAI_CTL_CHALIGN | +- VC4_HD_MAI_CTL_ENABLE); +- break; +- case SNDRV_PCM_TRIGGER_STOP: +- HDMI_WRITE(HDMI_MAI_CTL, +- VC4_HD_MAI_CTL_DLATE | +- VC4_HD_MAI_CTL_ERRORE | +- VC4_HD_MAI_CTL_ERRORF); +- +- if (vc4_hdmi->variant->phy_rng_disable) +- vc4_hdmi->variant->phy_rng_disable(vc4_hdmi); +- +- vc4_hdmi->audio.streaming = false; +- +- break; +- default: +- break; +- } +- +- return 0; +-} +- +-static inline struct vc4_hdmi * +-snd_component_to_hdmi(struct snd_soc_component *component) +-{ +- struct snd_soc_card *card = snd_soc_component_get_drvdata(component); +- +- return snd_soc_card_get_drvdata(card); +-} +- +-static int vc4_hdmi_audio_eld_ctl_info(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_info *uinfo) +-{ +- struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); +- struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component); +- struct drm_connector *connector = &vc4_hdmi->connector; +- +- uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES; +- uinfo->count = sizeof(connector->eld); +- +- return 0; +-} +- +-static int vc4_hdmi_audio_eld_ctl_get(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_value *ucontrol) +-{ +- struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); +- struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component); +- struct drm_connector *connector = &vc4_hdmi->connector; +- +- memcpy(ucontrol->value.bytes.data, connector->eld, +- sizeof(connector->eld)); +- +- return 0; +-} +- +-static int vc4_spdif_info(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_info *uinfo) +-{ +- uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; +- uinfo->count = 1; +- return 0; +-} +- +-static int vc4_spdif_playback_get(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_value *ucontrol) +-{ +- struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); +- struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component); +- +- memcpy(ucontrol->value.iec958.status, vc4_hdmi->audio.iec_status, +- sizeof(vc4_hdmi->audio.iec_status)); +- +- return 0; +-} +- +-static int vc4_spdif_playback_put(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_value *ucontrol) +-{ +- struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); +- struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component); +- +- memcpy(vc4_hdmi->audio.iec_status, ucontrol->value.iec958.status, +- sizeof(vc4_hdmi->audio.iec_status)); +- +- return 0; +-} +- +-static int vc4_spdif_mask_get(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_value *ucontrol) +-{ +- memset(ucontrol->value.iec958.status, 0xff, +- sizeof_field(struct vc4_hdmi_audio, iec_status)); +- +- return 0; +-} +- +-/* +- * ALSA API channel-map control callbacks +- */ +-static int vc4_chmap_ctl_info(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_info *uinfo) +-{ +- struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); +- struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component); +- +- uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; +- uinfo->count = vc4_hdmi->audio.max_channels; +- uinfo->value.integer.min = 0; +- uinfo->value.integer.max = SNDRV_CHMAP_LAST; +- +- return 0; +-} +- +-static int vc4_chmap_ctl_get(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_value *ucontrol) +-{ +- struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); +- struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component); +- unsigned const char *map; +- unsigned int i; +- +- if (!vc4_hdmi->audio.chmap) +- return -EINVAL; +- +- map = vc4_hdmi->audio.chmap[vc4_hdmi->audio.chmap_idx].map; +- +- for (i = 0; i < vc4_hdmi->audio.max_channels; i++) { +- if (vc4_hdmi->audio.chmap_idx == HDMI_CODEC_CHMAP_IDX_UNKNOWN) +- ucontrol->value.integer.value[i] = 0; +- else +- ucontrol->value.integer.value[i] = map[i]; +- } +- return 0; +-} +- +-static int vc4_chmap_ctl_tlv(struct snd_kcontrol *kcontrol, int op_flag, +- unsigned int size, unsigned int __user *tlv) +-{ +- struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); +- struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component); +- const struct snd_pcm_chmap_elem *map; +- unsigned int __user *dst; +- int c, count = 0; +- +- if (!vc4_hdmi->audio.chmap) +- return -EINVAL; +- if (size < 8) +- return -ENOMEM; +- if (put_user(SNDRV_CTL_TLVT_CONTAINER, tlv)) +- return -EFAULT; +- size -= 8; +- dst = tlv + 2; +- for (map = vc4_hdmi->audio.chmap; map->channels; map++) { +- int chs_bytes = map->channels * 4; +- //if (!valid_chmap_channels(info, map->channels)) +- // continue; +- if (size < 8) +- return -ENOMEM; +- if (put_user(SNDRV_CTL_TLVT_CHMAP_FIXED, dst) || +- put_user(chs_bytes, dst + 1)) +- return -EFAULT; +- dst += 2; +- size -= 8; +- count += 8; +- if (size < chs_bytes) +- return -ENOMEM; +- size -= chs_bytes; +- count += chs_bytes; +- for (c = 0; c < map->channels; c++) { +- if (put_user(map->map[c], dst)) +- return -EFAULT; +- dst++; +- } +- } +- if (put_user(count, tlv + 1)) +- return -EFAULT; +- return 0; +-} +- +-static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { +- { +- .access = SNDRV_CTL_ELEM_ACCESS_READ | +- SNDRV_CTL_ELEM_ACCESS_VOLATILE, +- .iface = SNDRV_CTL_ELEM_IFACE_PCM, +- .name = "ELD", +- .info = vc4_hdmi_audio_eld_ctl_info, +- .get = vc4_hdmi_audio_eld_ctl_get, +- }, +- { +- .iface = SNDRV_CTL_ELEM_IFACE_MIXER, +- .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, DEFAULT), +- .info = vc4_spdif_info, +- .get = vc4_spdif_playback_get, +- .put = vc4_spdif_playback_put, +- }, +- { +- .iface = SNDRV_CTL_ELEM_IFACE_MIXER, +- .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, MASK), +- .info = vc4_spdif_info, +- .get = vc4_spdif_mask_get, +- }, +- { +- .access = SNDRV_CTL_ELEM_ACCESS_READ | +- SNDRV_CTL_ELEM_ACCESS_TLV_READ | +- SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK, +- .iface = SNDRV_CTL_ELEM_IFACE_PCM, +- .name = "Playback Channel Map", +- .info = vc4_chmap_ctl_info, +- .get = vc4_chmap_ctl_get, +- .tlv.c = vc4_chmap_ctl_tlv, +- }, +-}; +- + static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = { + SND_SOC_DAPM_OUTPUT("TX"), + }; +@@ -1975,8 +1410,6 @@ static const struct snd_soc_dapm_route vc4_hdmi_audio_routes[] = { + + static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = { + .name = "vc4-hdmi-codec-dai-component", +- .controls = vc4_hdmi_audio_controls, +- .num_controls = ARRAY_SIZE(vc4_hdmi_audio_controls), + .dapm_widgets = vc4_hdmi_audio_widgets, + .num_dapm_widgets = ARRAY_SIZE(vc4_hdmi_audio_widgets), + .dapm_routes = vc4_hdmi_audio_routes, +@@ -1987,28 +1420,6 @@ static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = { + .non_legacy_dai_naming = 1, + }; + +-static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = { +- .startup = vc4_hdmi_audio_startup, +- .shutdown = vc4_hdmi_audio_shutdown, +- .prepare = vc4_hdmi_audio_prepare, +- .set_fmt = vc4_hdmi_audio_set_fmt, +- .trigger = vc4_hdmi_audio_trigger, +-}; +- +-static struct snd_soc_dai_driver vc4_hdmi_audio_codec_dai_drv = { +- .name = "vc4-hdmi-hifi", +- .playback = { +- .stream_name = "Playback", +- .channels_min = 2, +- .channels_max = 8, +- .rates = SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | +- SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | +- SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 | +- SNDRV_PCM_RATE_192000, +- .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, +- }, +-}; +- + static const struct snd_soc_component_driver vc4_hdmi_audio_cpu_dai_comp = { + .name = "vc4-hdmi-cpu-dai-component", + }; +@@ -2035,7 +1446,6 @@ static struct snd_soc_dai_driver vc4_hdmi_audio_cpu_dai_drv = { + SNDRV_PCM_RATE_192000, + .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, + }, +- .ops = &vc4_hdmi_audio_dai_ops, + }; + + static const struct snd_dmaengine_pcm_config pcm_conf = { +@@ -2043,6 +1453,31 @@ static const struct snd_dmaengine_pcm_config pcm_conf = { + .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config, + }; + ++ ++static int vc4_hdmi_audio_get_eld(struct device *dev, void *data, ++ uint8_t *buf, size_t len) ++{ ++ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); ++ struct drm_connector *connector = &vc4_hdmi->connector; ++ ++ memcpy(buf, connector->eld, min(sizeof(connector->eld), len)); ++ ++ return 0; ++} ++ ++static const struct hdmi_codec_ops vc4_hdmi_codec_ops = { ++ .get_eld = vc4_hdmi_audio_get_eld, ++ .prepare = vc4_hdmi_audio_prepare, ++ .audio_shutdown = vc4_hdmi_audio_shutdown, ++ .audio_startup = vc4_hdmi_audio_startup, ++}; ++ ++struct hdmi_codec_pdata vc4_hdmi_codec_pdata = { ++ .ops = &vc4_hdmi_codec_ops, ++ .max_i2s_channels = 8, ++ .i2s = 1, ++}; ++ + static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + { + const struct vc4_hdmi_register *mai_data = +@@ -2050,6 +1485,7 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + struct snd_soc_dai_link *dai_link = &vc4_hdmi->audio.link; + struct snd_soc_card *card = &vc4_hdmi->audio.card; + struct device *dev = &vc4_hdmi->pdev->dev; ++ struct platform_device *codec_pdev; + const __be32 *addr; + int index; + int ret; +@@ -2085,11 +1521,6 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; + vc4_hdmi->audio.dma_data.maxburst = 2; + +- vc4_hdmi->audio.iec_status[0] = IEC958_AES0_CON_NOT_COPYRIGHT; +- vc4_hdmi->audio.iec_status[1] = +- IEC958_AES1_CON_ORIGINAL | IEC958_AES1_CON_PCM_CODER; +- vc4_hdmi->audio.iec_status[3] = IEC958_AES3_CON_FS_48000; +- + ret = devm_snd_dmaengine_pcm_register(dev, &pcm_conf, 0); + if (ret) { + dev_err(dev, "Could not register PCM component: %d\n", ret); +@@ -2103,12 +1534,13 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + return ret; + } + +- /* register component and codec dai */ +- ret = devm_snd_soc_register_component(dev, &vc4_hdmi_audio_component_drv, +- &vc4_hdmi_audio_codec_dai_drv, 1); +- if (ret) { +- dev_err(dev, "Could not register component: %d\n", ret); +- return ret; ++ codec_pdev = platform_device_register_data(dev, HDMI_CODEC_DRV_NAME, ++ PLATFORM_DEVID_AUTO, ++ &vc4_hdmi_codec_pdata, ++ sizeof(vc4_hdmi_codec_pdata)); ++ if (IS_ERR(codec_pdev)) { ++ dev_err(dev, "Couldn't register the HDMI codec: %ld\n", PTR_ERR(codec_pdev)); ++ return PTR_ERR(codec_pdev); + } + + dai_link->cpus = &vc4_hdmi->audio.cpu; +@@ -2121,9 +1553,9 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + + dai_link->name = "MAI"; + dai_link->stream_name = "MAI PCM"; +- dai_link->codecs->dai_name = vc4_hdmi_audio_codec_dai_drv.name; ++ dai_link->codecs->dai_name = "i2s-hifi"; + dai_link->cpus->dai_name = dev_name(dev); +- dai_link->codecs->name = dev_name(dev); ++ dai_link->codecs->name = dev_name(&codec_pdev->dev); + dai_link->platforms->name = dev_name(dev); + + card->dai_link = dai_link; +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h +index 67c372d743cb..b91b0257dde2 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.h ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.h +@@ -114,8 +114,7 @@ struct vc4_hdmi_audio { + int samplerate; + int channels; + struct snd_dmaengine_dai_dma_data dma_data; +- struct snd_pcm_substream *substream; +- ++ struct hdmi_audio_infoframe infoframe; + bool streaming; + + unsigned char iec_status[4]; +-- +2.18.4 + + +From 30206a53e1183dc23cb88ce4edc1a33fec3a8848 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Tue, 27 Apr 2021 16:26:39 +0200 +Subject: [PATCH 712/741] drm/vc4: hdmi: Remove redundant variables + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 26 ++++++++++++-------------- + drivers/gpu/drm/vc4/vc4_hdmi.h | 7 ------- + 2 files changed, 12 insertions(+), 21 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 516b09f83d2d..26db641fe643 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -1179,12 +1179,13 @@ static u32 vc5_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) + } + + /* HDMI audio codec callbacks */ +-static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi) ++static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi, ++ unsigned int samplerate) + { + u32 hsm_clock = clk_get_rate(vc4_hdmi->audio_clock); + unsigned long n, m; + +- rational_best_approximation(hsm_clock, vc4_hdmi->audio.samplerate, ++ rational_best_approximation(hsm_clock, samplerate, + VC4_HD_MAI_SMP_N_MASK >> + VC4_HD_MAI_SMP_N_SHIFT, + (VC4_HD_MAI_SMP_M_MASK >> +@@ -1196,12 +1197,11 @@ static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi) + VC4_SET_FIELD(m - 1, VC4_HD_MAI_SMP_M)); + } + +-static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi) ++static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerate) + { + struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; + struct drm_crtc *crtc = encoder->crtc; + const struct drm_display_mode *mode = &crtc->state->adjusted_mode; +- u32 samplerate = vc4_hdmi->audio.samplerate; + u32 n, cts; + u64 tmp; + +@@ -1335,27 +1335,25 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, + { + struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; ++ unsigned int sample_rate = params->sample_rate; ++ unsigned int channels = params->channels; + u32 audio_packet_config, channel_mask; + u32 channel_map; + u32 mai_audio_format; + u32 mai_sample_rate; + + dev_dbg(dev, "%s: %u Hz, %d bit, %d channels\n", __func__, +- params->sample_rate, params->sample_width, +- params->channels); +- +- vc4_hdmi->audio.channels = params->channels; +- vc4_hdmi->audio.samplerate = params->sample_rate; ++ sample_rate, params->sample_width, channels); + + HDMI_WRITE(HDMI_MAI_CTL, +- VC4_SET_FIELD(params->channels, VC4_HD_MAI_CTL_CHNUM) | ++ VC4_SET_FIELD(channels, VC4_HD_MAI_CTL_CHNUM) | + VC4_HD_MAI_CTL_WHOLSMP | + VC4_HD_MAI_CTL_CHALIGN | + VC4_HD_MAI_CTL_ENABLE); + +- vc4_hdmi_audio_set_mai_clock(vc4_hdmi); ++ vc4_hdmi_audio_set_mai_clock(vc4_hdmi, sample_rate); + +- mai_sample_rate = sample_rate_to_mai_fmt(vc4_hdmi->audio.samplerate); ++ mai_sample_rate = sample_rate_to_mai_fmt(sample_rate); + if (params->iec.status[0] & IEC958_AES0_NONAUDIO && + params->channels == 8) + mai_audio_format = VC4_HDMI_MAI_FORMAT_HBR; +@@ -1373,7 +1371,7 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, + VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_INACTIVE_CHANNELS | + VC4_SET_FIELD(0x8, VC4_HDMI_AUDIO_PACKET_B_FRAME_IDENTIFIER); + +- channel_mask = GENMASK(vc4_hdmi->audio.channels - 1, 0); ++ channel_mask = GENMASK(channels - 1, 0); + audio_packet_config |= VC4_SET_FIELD(channel_mask, + VC4_HDMI_AUDIO_PACKET_CEA_MASK); + +@@ -1392,7 +1390,7 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, + channel_map = vc4_hdmi->variant->channel_map(vc4_hdmi, channel_mask); + HDMI_WRITE(HDMI_MAI_CHANNEL_MAP, channel_map); + HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config); +- vc4_hdmi_set_n_cts(vc4_hdmi); ++ vc4_hdmi_set_n_cts(vc4_hdmi, sample_rate); + + memcpy(&vc4_hdmi->audio.infoframe, ¶ms->cea, sizeof(params->cea)); + vc4_hdmi_set_audio_infoframe(encoder); +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h +index b91b0257dde2..295962d83741 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.h ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.h +@@ -111,16 +111,9 @@ struct vc4_hdmi_audio { + struct snd_soc_dai_link_component cpu; + struct snd_soc_dai_link_component codec; + struct snd_soc_dai_link_component platform; +- int samplerate; +- int channels; + struct snd_dmaengine_dai_dma_data dma_data; + struct hdmi_audio_infoframe infoframe; + bool streaming; +- +- unsigned char iec_status[4]; +- const struct snd_pcm_chmap_elem *chmap; +- unsigned int chmap_idx; +- unsigned int max_channels; + }; + + /* General HDMI hardware state. */ +-- +2.18.4 + + +From 6563818385384507faa3616232d30117a304a3a3 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Wed, 28 Apr 2021 16:10:02 +0200 +Subject: [PATCH 713/741] ARM: dts: bcm2711: Tune DMA parameters for HDMI audio + +Enable NO_WAIT_RESP, DMA_WIDE_SOURCE, DMA_WIDE_DEST, and bump the DMA +panic and AXI priorities to avoid any DMA transfer error with HBR audio +(8 channel, 192Hz). + +Signed-off-by: Dom Cobley +Signed-off-by: Maxime Ripard +--- + arch/arm/boot/dts/bcm2711.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi +index e8434edc2bff..ef78c6e5f437 100644 +--- a/arch/arm/boot/dts/bcm2711.dtsi ++++ b/arch/arm/boot/dts/bcm2711.dtsi +@@ -359,7 +359,7 @@ + interrupt-names = "cec-tx", "cec-rx", "cec-low", + "wakeup", "hpd-connected", "hpd-removed"; + ddc = <&ddc0>; +- dmas = <&dma 10>; ++ dmas = <&dma (10 | (1 << 27) | (1 << 24)| (15 << 20) | (10 << 16))>; + dma-names = "audio-rx"; + status = "disabled"; + }; +@@ -406,7 +406,7 @@ + <9>, <10>, <11>; + interrupt-names = "cec-tx", "cec-rx", "cec-low", + "wakeup", "hpd-connected", "hpd-removed"; +- dmas = <&dma 17>; ++ dmas = <&dma (17 | (1 << 27) | (1 << 24)| (15 << 20) | (10 << 16))>; + dma-names = "audio-rx"; + status = "disabled"; + }; +-- +2.18.4 + + +From ae52f0ca7d4449dc061a25ff1a290901cbc0c1d6 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 16 Jun 2021 17:44:04 +0100 +Subject: [PATCH 714/741] configs: Enable Anbox support on arm64 builds + +In order to allow containerised Android apps to run, add the following +config settings on 64-bit builds: + + CONFIG_ANDROID=y + CONFIG_ANDROID_BINDER_IPC=y + CONFIG_ANDROID_BINDERFS=y + CONFIG_ASHMEM=y + +This has a memory overhead of about 130kB and no other performance +penalty. + +See: https://github.com/raspberrypi/linux/issues/4162 + +Signed-off-by: Phil Elwell +--- + arch/arm64/configs/bcm2711_defconfig | 4 ++++ + arch/arm64/configs/bcmrpi3_defconfig | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index aad387e7e76c..37c16241c0de 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -1322,6 +1322,7 @@ CONFIG_R8188EU=m + CONFIG_VT6656=m + CONFIG_STAGING_MEDIA=y + CONFIG_VIDEO_RPIVID=m ++CONFIG_ASHMEM=y + CONFIG_FB_TFT=m + CONFIG_FB_TFT_AGM1264K_FL=m + CONFIG_FB_TFT_BD663474=m +@@ -1386,6 +1387,9 @@ CONFIG_MAX31856=m + CONFIG_PWM_BCM2835=m + CONFIG_PWM_PCA9685=m + CONFIG_RPI_AXIPERF=m ++CONFIG_ANDROID=y ++CONFIG_ANDROID_BINDER_IPC=y ++CONFIG_ANDROID_BINDERFS=y + CONFIG_NVMEM_RMEM=m + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 10243e0e0658..8a2c42e5d73b 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -1179,6 +1179,7 @@ CONFIG_R8712U=m + CONFIG_R8188EU=m + CONFIG_VT6656=m + CONFIG_STAGING_MEDIA=y ++CONFIG_ASHMEM=y + CONFIG_FB_TFT=m + CONFIG_FB_TFT_AGM1264K_FL=m + CONFIG_FB_TFT_BD663474=m +@@ -1236,6 +1237,9 @@ CONFIG_MAXIM_THERMOCOUPLE=m + CONFIG_MAX31856=m + CONFIG_PWM_BCM2835=m + CONFIG_PWM_PCA9685=m ++CONFIG_ANDROID=y ++CONFIG_ANDROID_BINDER_IPC=y ++CONFIG_ANDROID_BINDERFS=y + CONFIG_EXT4_FS=y + CONFIG_EXT4_FS_POSIX_ACL=y + CONFIG_EXT4_FS_SECURITY=y +-- +2.18.4 + + +From 3cde27013b3f65c3e94192b7639d9c94017fc407 Mon Sep 17 00:00:00 2001 +From: davidschillerJKU +Date: Thu, 17 Jun 2021 09:55:45 +0200 +Subject: [PATCH 715/741] configs: add CONFIG_IR_TOY=m + +This enables support for the Infrared Toy / Irdroid series of infrared +transceivers +--- + 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 ed73cff35897..7eb4418d7fea 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -774,6 +774,7 @@ CONFIG_RC_LOOPBACK=m + CONFIG_IR_GPIO_CIR=m + CONFIG_IR_GPIO_TX=m + CONFIG_IR_PWM_TX=m ++CONFIG_IR_TOY=m + CONFIG_MEDIA_CEC_RC=y + CONFIG_MEDIA_SUPPORT=m + CONFIG_MEDIA_USB_SUPPORT=y +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 08bdf82c0425..299e4d95e4ca 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -788,6 +788,7 @@ CONFIG_RC_LOOPBACK=m + CONFIG_IR_GPIO_CIR=m + CONFIG_IR_GPIO_TX=m + CONFIG_IR_PWM_TX=m ++CONFIG_IR_TOY=m + CONFIG_MEDIA_CEC_RC=y + CONFIG_MEDIA_SUPPORT=m + CONFIG_MEDIA_USB_SUPPORT=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 04d6afe5bd11..e270865d89cc 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -767,6 +767,7 @@ CONFIG_RC_LOOPBACK=m + CONFIG_IR_GPIO_CIR=m + CONFIG_IR_GPIO_TX=m + CONFIG_IR_PWM_TX=m ++CONFIG_IR_TOY=m + CONFIG_MEDIA_CEC_RC=y + CONFIG_MEDIA_SUPPORT=m + CONFIG_MEDIA_USB_SUPPORT=y +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 37c16241c0de..90e53fd93e37 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -783,6 +783,7 @@ CONFIG_RC_LOOPBACK=m + CONFIG_IR_GPIO_CIR=m + CONFIG_IR_GPIO_TX=m + CONFIG_IR_PWM_TX=m ++CONFIG_IR_TOY=m + CONFIG_MEDIA_CEC_RC=y + CONFIG_MEDIA_SUPPORT=m + CONFIG_MEDIA_USB_SUPPORT=y +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 8a2c42e5d73b..456b3000e6d6 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -740,6 +740,7 @@ CONFIG_RC_LOOPBACK=m + CONFIG_IR_GPIO_CIR=m + CONFIG_IR_GPIO_TX=m + CONFIG_IR_PWM_TX=m ++CONFIG_IR_TOY=m + CONFIG_MEDIA_CEC_RC=y + CONFIG_MEDIA_SUPPORT=m + CONFIG_MEDIA_USB_SUPPORT=y +-- +2.18.4 + + +From 8ae2f250a1afd7a70c3e27b23f891bccd7834107 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 27 Nov 2017 17:14:54 +0000 +Subject: [PATCH 716/741] 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: + + cgroup_enable=memory + +See: https://github.com/raspberrypi/linux/issues/1950 + +Signed-off-by: Phil Elwell +--- + kernel/cgroup/cgroup.c | 38 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + +diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c +index c8b811e039cc..b4ada2e9f499 100644 +--- a/kernel/cgroup/cgroup.c ++++ b/kernel/cgroup/cgroup.c +@@ -5665,6 +5665,9 @@ int __init cgroup_init_early(void) + return 0; + } + ++static u16 cgroup_enable_mask __initdata; ++static int __init cgroup_disable(char *str); ++ + /** + * cgroup_init - cgroup initialization + * +@@ -5703,6 +5706,12 @@ int __init cgroup_init(void) + + mutex_unlock(&cgroup_mutex); + ++ /* ++ * Apply an implicit disable, knowing that an explicit enable will ++ * prevent if from doing anything. ++ */ ++ cgroup_disable("memory"); ++ + for_each_subsys(ss, ssid) { + if (ss->early_init) { + struct cgroup_subsys_state *css = +@@ -6240,6 +6249,10 @@ static int __init cgroup_disable(char *str) + strcmp(token, ss->legacy_name)) + continue; + ++ /* An explicit cgroup_enable overrides a disable */ ++ if (cgroup_enable_mask & (1 << i)) ++ continue; ++ + static_branch_disable(cgroup_subsys_enabled_key[i]); + pr_info("Disabling %s control group subsystem\n", + ss->name); +@@ -6249,6 +6262,31 @@ static int __init cgroup_disable(char *str) + } + __setup("cgroup_disable=", cgroup_disable); + ++static int __init cgroup_enable(char *str) ++{ ++ struct cgroup_subsys *ss; ++ char *token; ++ int i; ++ ++ while ((token = strsep(&str, ",")) != NULL) { ++ if (!*token) ++ continue; ++ ++ for_each_subsys(ss, i) { ++ if (strcmp(token, ss->name) && ++ strcmp(token, ss->legacy_name)) ++ continue; ++ ++ cgroup_enable_mask |= 1 << i; ++ static_branch_enable(cgroup_subsys_enabled_key[i]); ++ pr_info("Enabling %s control group subsystem\n", ++ ss->name); ++ } ++ } ++ return 1; ++} ++__setup("cgroup_enable=", cgroup_enable); ++ + void __init __weak enable_debug_cgroup(void) { } + + static int __init enable_cgroup_debug(char *str) +-- +2.18.4 + + +From 913a9b3b70926eea2a804c16e1b6b27bd7b9e1a5 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 17 Jun 2021 12:05:25 +0100 +Subject: [PATCH 717/741] media: i2c: imx290: Support 60fps in 2 lane operation + +Commit "97589ad61c73 media: i2c: imx290: Add support for 2 data lanes" +added support for running in two lane mode (instead of 4), but +without changing the link frequency that resulted in a max of 30fps. + +Commit "98e0500eadb7 media: i2c: imx290: Add configurable link frequency +and pixel rate" then doubled the link frequency when in 2 lane mode, +but didn't undo the correction for running at only 30fps, just extending +horizontal blanking instead. +It also didn't update the CSI timing registers in accordance with the +datasheet. + +Remove the 30fps limit on 2 lane by correcting the register config +in accordance with the datasheet for 60fps operation over 2 lanes. +Frame rate control (via V4L2_CID_VBLANK or HBLANK) can still reduce +the frame rate on 2 lanes back to 30fps. + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/imx290.c | 163 ++++++++++++++++++++++--------------- + 1 file changed, 97 insertions(+), 66 deletions(-) + +diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c +index 255f66985306..d2e7360712f5 100644 +--- a/drivers/media/i2c/imx290.c ++++ b/drivers/media/i2c/imx290.c +@@ -46,8 +46,7 @@ enum imx290_clk_index { + #define IMX290_VMAX_MAX 0x3fff + #define IMX290_HMAX_LOW 0x301c + #define IMX290_HMAX_HIGH 0x301d +-#define IMX290_HMAX_MIN_2LANE 4400 /* Min of 4400 pixels = 30fps */ +-#define IMX290_HMAX_MIN_4LANE 2200 /* Min of 2200 pixels = 60fps */ ++#define IMX290_HMAX_MIN 2200 /* Min of 2200 pixels = 60fps */ + #define IMX290_HMAX_MAX 0xffff + + #define IMX290_EXPOSURE_MIN 1 +@@ -89,8 +88,11 @@ struct imx290_mode { + u8 link_freq_index; + struct v4l2_rect crop; + +- const struct imx290_regval *data; +- u32 data_size; ++ const struct imx290_regval *mode_data; ++ u32 mode_data_size; ++ const struct imx290_regval *lane_data; ++ u32 lane_data_size; ++ + + /* Clock setup can vary. Index as enum imx290_clk_index */ + const struct imx290_regval *clk_data[2]; +@@ -242,8 +244,9 @@ static const struct imx290_regval imx290_74_250mhz_clock_1080p[] = { + { 0x3480, 0x92 }, + }; + +-static const struct imx290_regval imx290_1080p_settings[] = { ++static const struct imx290_regval imx290_1080p_common_settings[] = { + /* mode settings */ ++ { IMX290_FR_FDG_SEL, 0x01 }, + { 0x3007, 0x00 }, + { 0x303a, 0x0c }, + { 0x3414, 0x0a }, +@@ -253,8 +256,36 @@ static const struct imx290_regval imx290_1080p_settings[] = { + { 0x3419, 0x04 }, + { 0x3012, 0x64 }, + { 0x3013, 0x00 }, ++}; ++ ++static const struct imx290_regval imx290_1080p_2lane_settings[] = { ++ { 0x3405, 0x00 }, + /* data rate settings */ ++ { IMX290_PHY_LANE_NUM, 0x01 }, ++ { IMX290_CSI_LANE_MODE, 0x01 }, ++ { 0x3446, 0x77 }, ++ { 0x3447, 0x00 }, ++ { 0x3448, 0x67 }, ++ { 0x3449, 0x00 }, ++ { 0x344a, 0x47 }, ++ { 0x344b, 0x00 }, ++ { 0x344c, 0x37 }, ++ { 0x344d, 0x00 }, ++ { 0x344e, 0x3f }, ++ { 0x344f, 0x00 }, ++ { 0x3450, 0xff }, ++ { 0x3451, 0x00 }, ++ { 0x3452, 0x3f }, ++ { 0x3453, 0x00 }, ++ { 0x3454, 0x37 }, ++ { 0x3455, 0x00 }, ++}; ++ ++static const struct imx290_regval imx290_1080p_4lane_settings[] = { + { 0x3405, 0x10 }, ++ /* data rate settings */ ++ { IMX290_PHY_LANE_NUM, 0x03 }, ++ { IMX290_CSI_LANE_MODE, 0x03 }, + { 0x3446, 0x57 }, + { 0x3447, 0x00 }, + { 0x3448, 0x37 }, +@@ -297,8 +328,9 @@ static const struct imx290_regval imx290_74_250mhz_clock_720p[] = { + { 0x3480, 0x92 }, + }; + +-static const struct imx290_regval imx290_720p_settings[] = { ++static const struct imx290_regval imx290_720p_common_settings[] = { + /* mode settings */ ++ { IMX290_FR_FDG_SEL, 0x01 }, + { 0x3007, 0x10 }, + { 0x303a, 0x06 }, + { 0x3414, 0x04 }, +@@ -308,8 +340,36 @@ static const struct imx290_regval imx290_720p_settings[] = { + { 0x3419, 0x02 }, + { 0x3012, 0x64 }, + { 0x3013, 0x00 }, ++}; ++ ++static const struct imx290_regval imx290_720p_2lane_settings[] = { ++ { 0x3405, 0x00 }, ++ { IMX290_PHY_LANE_NUM, 0x01 }, ++ { IMX290_CSI_LANE_MODE, 0x01 }, + /* data rate settings */ ++ { 0x3446, 0x67 }, ++ { 0x3447, 0x00 }, ++ { 0x3448, 0x57 }, ++ { 0x3449, 0x00 }, ++ { 0x344a, 0x2f }, ++ { 0x344b, 0x00 }, ++ { 0x344c, 0x27 }, ++ { 0x344d, 0x00 }, ++ { 0x344e, 0x2f }, ++ { 0x344f, 0x00 }, ++ { 0x3450, 0xbf }, ++ { 0x3451, 0x00 }, ++ { 0x3452, 0x2f }, ++ { 0x3453, 0x00 }, ++ { 0x3454, 0x27 }, ++ { 0x3455, 0x00 }, ++}; ++ ++static const struct imx290_regval imx290_720p_4lane_settings[] = { + { 0x3405, 0x10 }, ++ { IMX290_PHY_LANE_NUM, 0x03 }, ++ { IMX290_CSI_LANE_MODE, 0x03 }, ++ /* data rate settings */ + { 0x3446, 0x4f }, + { 0x3447, 0x00 }, + { 0x3448, 0x2f }, +@@ -389,7 +449,7 @@ static const struct imx290_mode imx290_modes_2lanes[] = { + { + .width = 1920, + .height = 1080, +- .hmax = 0x1130, ++ .hmax = 0x0898, + .vmax = 0x0465, + .link_freq_index = FREQ_INDEX_1080P, + .crop = { +@@ -398,8 +458,10 @@ static const struct imx290_mode imx290_modes_2lanes[] = { + .width = 1920, + .height = 1080, + }, +- .data = imx290_1080p_settings, +- .data_size = ARRAY_SIZE(imx290_1080p_settings), ++ .mode_data = imx290_1080p_common_settings, ++ .mode_data_size = ARRAY_SIZE(imx290_1080p_common_settings), ++ .lane_data = imx290_1080p_2lane_settings, ++ .lane_data_size = ARRAY_SIZE(imx290_1080p_2lane_settings), + .clk_data = { + [CLK_37_125] = imx290_37_125mhz_clock_1080p, + [CLK_74_25] = imx290_74_250mhz_clock_1080p, +@@ -409,7 +471,7 @@ static const struct imx290_mode imx290_modes_2lanes[] = { + { + .width = 1280, + .height = 720, +- .hmax = 0x19c8, ++ .hmax = 0x0ce4, + .vmax = 0x02ee, + .link_freq_index = FREQ_INDEX_720P, + .crop = { +@@ -418,8 +480,10 @@ static const struct imx290_mode imx290_modes_2lanes[] = { + .width = 1280, + .height = 720, + }, +- .data = imx290_720p_settings, +- .data_size = ARRAY_SIZE(imx290_720p_settings), ++ .mode_data = imx290_720p_common_settings, ++ .mode_data_size = ARRAY_SIZE(imx290_720p_common_settings), ++ .lane_data = imx290_720p_2lane_settings, ++ .lane_data_size = ARRAY_SIZE(imx290_720p_2lane_settings), + .clk_data = { + [CLK_37_125] = imx290_37_125mhz_clock_1080p, + [CLK_74_25] = imx290_74_250mhz_clock_1080p, +@@ -441,8 +505,10 @@ static const struct imx290_mode imx290_modes_4lanes[] = { + .width = 1920, + .height = 1080, + }, +- .data = imx290_1080p_settings, +- .data_size = ARRAY_SIZE(imx290_1080p_settings), ++ .mode_data = imx290_1080p_common_settings, ++ .mode_data_size = ARRAY_SIZE(imx290_1080p_common_settings), ++ .lane_data = imx290_1080p_4lane_settings, ++ .lane_data_size = ARRAY_SIZE(imx290_1080p_4lane_settings), + .clk_data = { + [CLK_37_125] = imx290_37_125mhz_clock_720p, + [CLK_74_25] = imx290_74_250mhz_clock_720p, +@@ -461,8 +527,10 @@ static const struct imx290_mode imx290_modes_4lanes[] = { + .width = 1280, + .height = 720, + }, +- .data = imx290_720p_settings, +- .data_size = ARRAY_SIZE(imx290_720p_settings), ++ .mode_data = imx290_720p_common_settings, ++ .mode_data_size = ARRAY_SIZE(imx290_720p_common_settings), ++ .lane_data = imx290_720p_4lane_settings, ++ .lane_data_size = ARRAY_SIZE(imx290_720p_4lane_settings), + .clk_data = { + [CLK_37_125] = imx290_37_125mhz_clock_720p, + [CLK_74_25] = imx290_74_250mhz_clock_720p, +@@ -1016,8 +1084,18 @@ static int imx290_start_streaming(struct imx290 *imx290) + } + + /* Apply default values of current mode */ +- ret = imx290_set_register_array(imx290, imx290->current_mode->data, +- imx290->current_mode->data_size); ++ ret = imx290_set_register_array(imx290, ++ imx290->current_mode->mode_data, ++ imx290->current_mode->mode_data_size); ++ if (ret < 0) { ++ dev_err(imx290->dev, "Could not set current mode\n"); ++ return ret; ++ } ++ ++ /* Apply lane config registers of current mode */ ++ ret = imx290_set_register_array(imx290, ++ imx290->current_mode->lane_data, ++ imx290->current_mode->lane_data_size); + if (ret < 0) { + dev_err(imx290->dev, "Could not set current mode\n"); + return ret; +@@ -1082,49 +1160,6 @@ static int imx290_get_regulators(struct device *dev, struct imx290 *imx290) + imx290->supplies); + } + +-static int imx290_set_data_lanes(struct imx290 *imx290) +-{ +- int ret = 0, laneval, frsel; +- +- switch (imx290->nlanes) { +- case 2: +- laneval = 0x01; +- frsel = 0x02; +- break; +- case 4: +- laneval = 0x03; +- frsel = 0x01; +- break; +- default: +- /* +- * We should never hit this since the data lane count is +- * validated in probe itself +- */ +- dev_err(imx290->dev, "Lane configuration not supported\n"); +- ret = -EINVAL; +- goto exit; +- } +- +- ret = imx290_write_reg(imx290, IMX290_PHY_LANE_NUM, laneval); +- if (ret) { +- dev_err(imx290->dev, "Error setting Physical Lane number register\n"); +- goto exit; +- } +- +- ret = imx290_write_reg(imx290, IMX290_CSI_LANE_MODE, laneval); +- if (ret) { +- dev_err(imx290->dev, "Error setting CSI Lane mode register\n"); +- goto exit; +- } +- +- ret = imx290_write_reg(imx290, IMX290_FR_FDG_SEL, frsel); +- if (ret) +- dev_err(imx290->dev, "Error setting FR/FDG SEL register\n"); +- +-exit: +- return ret; +-} +- + static int imx290_power_on(struct device *dev) + { + struct i2c_client *client = to_i2c_client(dev); +@@ -1149,9 +1184,6 @@ static int imx290_power_on(struct device *dev) + gpiod_set_value_cansleep(imx290->rst_gpio, 0); + usleep_range(30000, 31000); + +- /* Set data lane count */ +- imx290_set_data_lanes(imx290); +- + return 0; + } + +@@ -1275,8 +1307,7 @@ static int imx290_probe(struct i2c_client *client) + ret = -EINVAL; + goto free_err; + } +- imx290->hmax_min = (imx290->nlanes == 2) ? IMX290_HMAX_MIN_2LANE : +- IMX290_HMAX_MIN_4LANE; ++ imx290->hmax_min = IMX290_HMAX_MIN; + + dev_dbg(dev, "Using %u data lanes\n", imx290->nlanes); + +-- +2.18.4 + + +From 2e36801512b21cc7897e6efe5ad8b5c29b0f8906 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 17 Jun 2021 13:00:39 +0100 +Subject: [PATCH 718/741] media: i2c: imx290: Fix the pixel rate at 148.5Mpix/s + +Whilst the datasheet lists the link frequency changing between +1080p and 720p modes, reality is that with the default blanking +we have +(1920 + 280) * (1080 + 45) * 60fps = 148.5MPix/s +and +(1280 + 2020) * (720 + 30) * 60fps = 148.5MPix/s +and this reflects reality whether in 10 or 12 bit readout modes. + +How this relates to link frequency is unclear as it differs +from the datasheet, but all exposure and frame rate calcs need +the pixel rate to be correct, so make it so. + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/imx290.c | 16 +--------------- + 1 file changed, 1 insertion(+), 15 deletions(-) + +diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c +index d2e7360712f5..f13a0dd66351 100644 +--- a/drivers/media/i2c/imx290.c ++++ b/drivers/media/i2c/imx290.c +@@ -853,23 +853,9 @@ static inline u8 imx290_get_link_freq_index(struct imx290 *imx290) + return imx290->current_mode->link_freq_index; + } + +-static s64 imx290_get_link_freq(struct imx290 *imx290) +-{ +- u8 index = imx290_get_link_freq_index(imx290); +- +- return *(imx290_link_freqs_ptr(imx290) + index); +-} +- + static u64 imx290_calc_pixel_rate(struct imx290 *imx290) + { +- s64 link_freq = imx290_get_link_freq(imx290); +- u8 nlanes = imx290->nlanes; +- u64 pixel_rate; +- +- /* pixel rate = link_freq * 2 * nr_of_lanes / bits_per_sample */ +- pixel_rate = link_freq * 2 * nlanes; +- do_div(pixel_rate, imx290->bpp); +- return pixel_rate; ++ return 148500000; + } + + static int imx290_set_fmt(struct v4l2_subdev *sd, +-- +2.18.4 + + +From d08ee2a1c079744f8c792ae0ca4cd95565a84f84 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 17 Jun 2021 17:27:46 +0100 +Subject: [PATCH 719/741] media: i2c: imx290: Fix clock setup register + assignments + +When the clock setups were added for the alternate external clocks, +the settings for 2 lane 720p and 4 lane 1080p were transposed. +2 lane 720p still worked, but 4 lane 1080p didn't. + +Correct the assignments. + +Fixes: 6b0c094a5b58 (media: i2c: imx290: Add support for 74.25MHz clock") + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/imx290.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c +index f13a0dd66351..24a7dee571cd 100644 +--- a/drivers/media/i2c/imx290.c ++++ b/drivers/media/i2c/imx290.c +@@ -485,10 +485,10 @@ static const struct imx290_mode imx290_modes_2lanes[] = { + .lane_data = imx290_720p_2lane_settings, + .lane_data_size = ARRAY_SIZE(imx290_720p_2lane_settings), + .clk_data = { +- [CLK_37_125] = imx290_37_125mhz_clock_1080p, +- [CLK_74_25] = imx290_74_250mhz_clock_1080p, ++ [CLK_37_125] = imx290_37_125mhz_clock_720p, ++ [CLK_74_25] = imx290_74_250mhz_clock_720p, + }, +- .clk_size = ARRAY_SIZE(imx290_37_125mhz_clock_1080p), ++ .clk_size = ARRAY_SIZE(imx290_37_125mhz_clock_720p), + }, + }; + +@@ -510,10 +510,10 @@ static const struct imx290_mode imx290_modes_4lanes[] = { + .lane_data = imx290_1080p_4lane_settings, + .lane_data_size = ARRAY_SIZE(imx290_1080p_4lane_settings), + .clk_data = { +- [CLK_37_125] = imx290_37_125mhz_clock_720p, +- [CLK_74_25] = imx290_74_250mhz_clock_720p, ++ [CLK_37_125] = imx290_37_125mhz_clock_1080p, ++ [CLK_74_25] = imx290_74_250mhz_clock_1080p, + }, +- .clk_size = ARRAY_SIZE(imx290_37_125mhz_clock_720p), ++ .clk_size = ARRAY_SIZE(imx290_37_125mhz_clock_1080p), + }, + { + .width = 1280, +-- +2.18.4 + + +From 30b7683ac06be85fdefcfd46b4cca7555d46e7dc Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 21 Jun 2021 17:29:22 +0200 +Subject: [PATCH 720/741] Revert "drm/vc4: Increase the core clock based on HVS + load" + +This reverts commit 1c3834201272ba6ae214af5f57acf0ece55142a5. +--- + drivers/gpu/drm/vc4/vc4_drv.h | 1 - + drivers/gpu/drm/vc4/vc4_kms.c | 127 +--------------------------------- + 2 files changed, 2 insertions(+), 126 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index 4cb0d95c1b7b..9507876931d1 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -329,7 +329,6 @@ struct vc4_hvs { + u32 __iomem *dlist; + + struct clk *core_clk; +- struct clk_request *core_req; + + /* Memory manager for CRTCs to allocate space in the display + * list. Units are dwords. +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index 962d3f4397ae..48e3dc11c493 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -305,106 +305,6 @@ static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, + } + } + +-#define HVS_BUS_WIDTH 4 +- +-/* +- * On the BCM2711, the core clock needs to be raised depending on the +- * rate of pixels being fetched from memory by the HVS and then the +- * pixels being output to the PixelValves. +- * +- * Thus, we need to consider the mode on each CRTC to compute the output +- * pixel rate, and all the planes attached to those CRTCs to compute the +- * input rate, and take the highest of the two. +- */ +-static unsigned long vc5_hvs_compute_core_rate(struct vc4_dev *vc4, +- struct drm_atomic_state *state) +-{ +- struct drm_crtc *crtc; +- unsigned long cob_rate = 0; +- unsigned long pixel_rate = 0; +- unsigned num_outputs = 0; +- +- drm_for_each_crtc(crtc, state->dev) { +- const struct drm_display_mode *mode; +- struct drm_crtc_state *crtc_state; +- struct vc4_encoder *vc4_encoder; +- struct drm_encoder *encoder; +- struct drm_plane *plane; +- unsigned long min_rate; +- unsigned refresh; +- +- crtc_state = drm_atomic_get_new_or_current_crtc_state(state, crtc); +- if (!crtc_state) +- continue; +- +- if (!crtc_state->active) +- continue; +- +- mode = &crtc_state->adjusted_mode; +- encoder = vc4_get_crtc_encoder(crtc, state, +- drm_atomic_get_connector_state); +- if (!encoder) +- continue; +- +- num_outputs++; +- vc4_encoder = to_vc4_encoder(encoder); +- +- /* +- * The HVS only generates the active pixels and stores +- * completed lines in the COB. However, pixel-valve +- * consumes at the HDMI pixel clock rate which can be a +- * lot higher than the number of active pixels e.g. 4K +- * p60 is 594 MHz but active pixels would be 498 MHz. +- * The COB output is one pixel per clock and runs of the +- * the core clock and needs to run fast enough to send +- * the active pixels minus the buffering in pixel-valve. +- * +- * For PV2 (HDMI0) there are 512 pixels and for PV4 +- * (HDMI1) there are 58. This means that for HDMI1 the +- * core-clock needs to be the same as the pixel clock +- * but for HDMI0 the core-clock can be a bit slower - +- * experiments suggest that 90% is about right so long +- * as the horizontal blanking period is at least 10% of +- * the total horizonal time, this isn't always in the +- * case. +- */ +- if (vc4_encoder->type == VC4_ENCODER_TYPE_HDMI0) { +- min_rate = max(mode->clock * mode->hdisplay / mode->htotal + 1000, +- mode->clock * 9 / 10) * 1000; +- } else { +- min_rate = mode->clock * 1000; +- } +- cob_rate = max(cob_rate, min_rate); +- +- refresh = drm_mode_vrefresh(mode); +- drm_for_each_plane_mask(plane, state->dev, crtc_state->plane_mask) { +- struct drm_plane_state *plane_state = +- drm_atomic_get_plane_state(state, plane); +- unsigned height, width; +- +- if (!plane_state->fb) +- continue; +- +- height = plane_state->src_h >> 16; +- width = plane_state->src_w >> 16; +- +- pixel_rate += height * width * refresh; +- } +- } +- +- /* +- * We need to target a memory bus load of 60% if we have a +- * single HVS channel enabled, and 40% otherwise. +- */ +- if (num_outputs > 1) +- pixel_rate = pixel_rate / 40; +- else +- pixel_rate = pixel_rate / 60; +- pixel_rate = pixel_rate * 100; +- +- return max(cob_rate, pixel_rate / HVS_BUS_WIDTH); +-} +- + static void + vc4_atomic_complete_commit(struct drm_atomic_state *state) + { +@@ -426,20 +326,9 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + vc4_hvs_mask_underrun(dev, vc4_crtc_state->assigned_channel); + } + +- if (vc4->hvs && vc4->hvs->hvs5) { +- /* +- * Do a temporary request on the core clock during the +- * modeset. +- */ ++ if (vc4->hvs && vc4->hvs->hvs5) + core_req = clk_request_start(hvs->core_clk, 500000000); + +- /* +- * And remove the previous one based on the HVS +- * requirements if any. +- */ +- clk_request_done(hvs->core_req); +- } +- + drm_atomic_helper_wait_for_fences(dev, state, false); + + drm_atomic_helper_wait_for_dependencies(state); +@@ -469,20 +358,8 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + + drm_atomic_helper_commit_cleanup_done(state); + +- if (vc4->hvs && vc4->hvs->hvs5) { +- unsigned long core_rate = vc5_hvs_compute_core_rate(vc4, +- state); +- +- /* +- * Request a clock rate based on the current HVS +- * requirements. +- */ +- hvs->core_req = clk_request_start(hvs->core_clk, +- core_rate); +- +- /* And drop the temporary request */ ++ if (vc4->hvs && vc4->hvs->hvs5) + clk_request_done(core_req); +- } + + drm_atomic_state_put(state); + +-- +2.18.4 + + +From d1aa9d158ce4586768e778c3bfbe8517de2ccbd0 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 23 Jun 2021 10:57:22 +0200 +Subject: [PATCH 721/741] Revert "drm: Introduce new state accessors in place + of drm_atomic_get_crtc_state" + +This reverts commit 040d0dd82dbfad11984b696e35beb56906f8f4a7. +--- + drivers/gpu/drm/drm_atomic.c | 104 ----------------------------------- + include/drm/drm_atomic.h | 7 --- + 2 files changed, 111 deletions(-) + +diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c +index 22a97d786d58..58527f151984 100644 +--- a/drivers/gpu/drm/drm_atomic.c ++++ b/drivers/gpu/drm/drm_atomic.c +@@ -281,10 +281,6 @@ EXPORT_SYMBOL(__drm_atomic_state_free); + * needed. It will also grab the relevant CRTC lock to make sure that the state + * is consistent. + * +- * This function is deprecated, +- * @drm_atomic_get_old_or_current_crtc_state or +- * @drm_atomic_get_new_or_current_crtc_state should be used instead. +- * + * Returns: + * + * Either the allocated state or the error code encoded into the pointer. When +@@ -325,106 +321,6 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state, + } + EXPORT_SYMBOL(drm_atomic_get_crtc_state); + +-/** +- * drm_atomic_get_old_or_current_crtc_state - get CRTC state +- * @state: global atomic state object +- * @crtc: CRTC to get state object for +- * +- * This function returns the old CRTC state for the given CRTC if it's +- * part of the state, or allocating a copy of the current state +- * otherwise. It will also grab the relevant CRTC lock to make sure that +- * the state is consistent. +- * +- * Returns: +- * +- * Either the allocated state or the error code encoded into the pointer. When +- * the error is EDEADLK then the w/w mutex code has detected a deadlock and the +- * entire atomic sequence must be restarted. All other errors are fatal. +- */ +-struct drm_crtc_state * +-drm_atomic_get_old_or_current_crtc_state(struct drm_atomic_state *state, +- struct drm_crtc *crtc) +-{ +- int ret, index = drm_crtc_index(crtc); +- struct drm_crtc_state *crtc_state; +- +- WARN_ON(!state->acquire_ctx); +- +- crtc_state = drm_atomic_get_old_crtc_state(state, crtc); +- if (crtc_state) +- return crtc_state; +- +- ret = drm_modeset_lock(&crtc->mutex, state->acquire_ctx); +- if (ret) +- return ERR_PTR(ret); +- +- crtc_state = crtc->funcs->atomic_duplicate_state(crtc); +- if (!crtc_state) +- return ERR_PTR(-ENOMEM); +- +- state->crtcs[index].state = crtc_state; +- state->crtcs[index].old_state = crtc->state; +- state->crtcs[index].new_state = crtc_state; +- state->crtcs[index].ptr = crtc; +- crtc_state->state = state; +- +- DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n", +- crtc->base.id, crtc->name, crtc_state, state); +- +- return crtc_state; +-} +-EXPORT_SYMBOL(drm_atomic_get_old_or_current_crtc_state); +- +-/** +- * drm_atomic_get_new_or_current_crtc_state - get CRTC state +- * @state: global atomic state object +- * @crtc: CRTC to get state object for +- * +- * This function returns the new CRTC state for the given CRTC if it's +- * part of the state, or allocating a copy of the current state +- * otherwise. It will also grab the relevant CRTC lock to make sure that +- * the state is consistent. +- * +- * Returns: +- * +- * Either the allocated state or the error code encoded into the pointer. When +- * the error is EDEADLK then the w/w mutex code has detected a deadlock and the +- * entire atomic sequence must be restarted. All other errors are fatal. +- */ +-struct drm_crtc_state * +-drm_atomic_get_new_or_current_crtc_state(struct drm_atomic_state *state, +- struct drm_crtc *crtc) +-{ +- int ret, index = drm_crtc_index(crtc); +- struct drm_crtc_state *crtc_state; +- +- WARN_ON(!state->acquire_ctx); +- +- crtc_state = drm_atomic_get_new_crtc_state(state, crtc); +- if (crtc_state) +- return crtc_state; +- +- ret = drm_modeset_lock(&crtc->mutex, state->acquire_ctx); +- if (ret) +- return ERR_PTR(ret); +- +- crtc_state = crtc->funcs->atomic_duplicate_state(crtc); +- if (!crtc_state) +- return ERR_PTR(-ENOMEM); +- +- state->crtcs[index].state = crtc_state; +- state->crtcs[index].old_state = crtc->state; +- state->crtcs[index].new_state = crtc_state; +- state->crtcs[index].ptr = crtc; +- crtc_state->state = state; +- +- DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n", +- crtc->base.id, crtc->name, crtc_state, state); +- +- return crtc_state; +-} +-EXPORT_SYMBOL(drm_atomic_get_new_or_current_crtc_state); +- + static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state, + const struct drm_crtc_state *new_crtc_state) + { +diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h +index feec1676fc03..d07c851d255b 100644 +--- a/include/drm/drm_atomic.h ++++ b/include/drm/drm_atomic.h +@@ -445,13 +445,6 @@ void drm_atomic_state_default_release(struct drm_atomic_state *state); + struct drm_crtc_state * __must_check + drm_atomic_get_crtc_state(struct drm_atomic_state *state, + struct drm_crtc *crtc); +-struct drm_crtc_state * __must_check +-drm_atomic_get_new_or_current_crtc_state(struct drm_atomic_state *state, +- struct drm_crtc *crtc); +-struct drm_crtc_state * __must_check +-drm_atomic_get_old_or_current_crtc_state(struct drm_atomic_state *state, +- struct drm_crtc *crtc); +- + struct drm_plane_state * __must_check + drm_atomic_get_plane_state(struct drm_atomic_state *state, + struct drm_plane *plane); +-- +2.18.4 + + +From ccd4cb70eb3696b584db7b88ff15432fda0b4e7d Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 14 Jun 2021 15:27:24 +0200 +Subject: [PATCH 722/741] drm/vc4: crtc: Add encoder to vc4_crtc_config_pv + prototype + +vc4_crtc_config_pv() retrieves the encoder again, even though its only +caller, vc4_crtc_atomic_enable(), already did. + +Pass the encoder pointer as an argument instead of going through all the +connectors to retrieve it again. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index cea2cb87973c..5171c8ef9720 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -313,12 +313,11 @@ 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, struct drm_atomic_state *state) ++static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encoder, ++ struct drm_atomic_state *state) + { + struct drm_device *dev = crtc->dev; + struct vc4_dev *vc4 = to_vc4_dev(dev); +- 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); +@@ -581,7 +580,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, state); ++ vc4_crtc_config_pv(crtc, encoder, state); + + CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_EN); + +-- +2.18.4 + + +From 028c095124cb302c01a8d1d1ae7651dbd40d9000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 21 Jun 2021 16:07:22 +0200 +Subject: [PATCH 723/741] drm/vc4: crtc: Rework the encoder retrieval code + (again) + +It turns out the encoder retrieval code, in addition to being +unnecessarily complicated, has a bug when only the planes and crtcs are +affected by a given atomic commit. + +Indeed, in such a case, either drm_atomic_get_old_connector_state or +drm_atomic_get_new_connector_state will return NULL and thus our encoder +retrieval code will not match on anything. + +We can however simplify the code by using drm_for_each_encoder_mask, the +drm_crtc_state storing the encoders a given CRTC is connected to +directly and without relying on any other state. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 30 +++++++++--------------------- + drivers/gpu/drm/vc4/vc4_drv.h | 4 +--- + 2 files changed, 10 insertions(+), 24 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index 5171c8ef9720..44249f8a6877 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -280,26 +280,14 @@ static u32 vc4_crtc_get_fifo_full_level_bits(struct vc4_crtc *vc4_crtc, + * same CRTC. + */ + 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_crtc_state *state) + { +- 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) { +- struct drm_connector_state *conn_state = get_state(state, connector); ++ struct drm_encoder *encoder; + +- if (!conn_state) +- continue; ++ WARN_ON(hweight32(state->encoder_mask) > 1); + +- if (conn_state->crtc == crtc) { +- drm_connector_list_iter_end(&conn_iter); +- return connector->encoder; +- } +- } +- drm_connector_list_iter_end(&conn_iter); ++ drm_for_each_encoder_mask(encoder, crtc->dev, state->encoder_mask) ++ return encoder; + + return NULL; + } +@@ -534,8 +522,7 @@ 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_encoder *encoder = vc4_get_crtc_encoder(crtc, old_state); + struct drm_device *dev = crtc->dev; + + require_hvs_enabled(dev); +@@ -562,10 +549,11 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, + static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, + struct drm_atomic_state *state) + { ++ struct drm_crtc_state *new_state = drm_atomic_get_new_crtc_state(state, ++ 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, state, +- drm_atomic_get_new_connector_state); ++ struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, new_state); + struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); + + require_hvs_enabled(dev); +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index 9507876931d1..619d07f9bac1 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -523,9 +523,7 @@ vc4_crtc_to_vc4_pv_data(const struct vc4_crtc *crtc) + } + + 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_crtc_state *state); + + struct vc4_crtc_state { + struct drm_crtc_state base; +-- +2.18.4 + + +From 23bc5cfaa357c4c747d35876f1e321c7cb3607ab Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 21 Jun 2021 16:13:02 +0200 +Subject: [PATCH 724/741] drm/vc4: crtc: Add some logging + +The encoder retrieval code has been a source of bugs and glitches in the +past and the crtc <-> encoder association been wrong in a number of +different ways. + +Add some logging to quickly spot issues if they occur. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index 44249f8a6877..651b1d67591c 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -525,6 +525,9 @@ static void vc4_crtc_atomic_disable(struct drm_crtc *crtc, + struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, old_state); + struct drm_device *dev = crtc->dev; + ++ drm_dbg(dev, "Disabling CRTC %s (%u) connected to Encoder %s (%u)", ++ crtc->name, crtc->base.id, encoder->name, encoder->base.id); ++ + require_hvs_enabled(dev); + + /* Disable vblank irq handling before crtc is disabled. */ +@@ -556,6 +559,9 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, + struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, new_state); + struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); + ++ drm_dbg(dev, "Enabling CRTC %s (%u) connected to Encoder %s (%u)", ++ crtc->name, crtc->base.id, encoder->name, encoder->base.id); ++ + require_hvs_enabled(dev); + + /* Enable vblank irq handling before crtc is started otherwise +-- +2.18.4 + + +From 9b5bf655eac88361db16bce6eade61a773baec78 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 21 Jun 2021 17:19:22 +0200 +Subject: [PATCH 725/741] drm/vc4: Leverage the load tracker on the BCM2711 + +The load tracker was initially designed to report and warn about a load +too high for the HVS. To do so, it computes for each plane the impact +it's going to have on the HVS, and will warn (if it's enabled) if we go +over what the hardware can process. + +While the limits being used are a bit irrelevant to the BCM2711, the +algorithm to compute the HVS load will be one component used in order to +compute the core clock rate on the BCM2711. + +Let's remove the hooks to prevent the load tracker to do its +computation, but since we don't have the same limits, don't check them +against them, and prevent the debugfs file to enable it from being +created. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_debugfs.c | 7 +++++-- + drivers/gpu/drm/vc4/vc4_drv.h | 3 --- + drivers/gpu/drm/vc4/vc4_kms.c | 16 +++++----------- + drivers/gpu/drm/vc4/vc4_plane.c | 3 --- + 4 files changed, 10 insertions(+), 19 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_debugfs.c b/drivers/gpu/drm/vc4/vc4_debugfs.c +index 4fbbf980a299..d7104d8826f2 100644 +--- a/drivers/gpu/drm/vc4/vc4_debugfs.c ++++ b/drivers/gpu/drm/vc4/vc4_debugfs.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include "vc4_drv.h" + #include "vc4_regs.h" +@@ -26,8 +27,10 @@ vc4_debugfs_init(struct drm_minor *minor) + struct vc4_dev *vc4 = to_vc4_dev(minor->dev); + struct vc4_debugfs_info_entry *entry; + +- debugfs_create_bool("hvs_load_tracker", S_IRUGO | S_IWUSR, +- minor->debugfs_root, &vc4->load_tracker_enabled); ++ if (!of_device_is_compatible(vc4->hvs->pdev->dev.of_node, ++ "brcm,bcm2711-vc5")) ++ debugfs_create_bool("hvs_load_tracker", S_IRUGO | S_IWUSR, ++ minor->debugfs_root, &vc4->load_tracker_enabled); + + list_for_each_entry(entry, &vc4->debugfs_list, link) { + drm_debugfs_create_files(&entry->info, 1, +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index 619d07f9bac1..33930b193a41 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -205,9 +205,6 @@ struct vc4_dev { + + int power_refcount; + +- /* Set to true when the load tracker is supported. */ +- bool load_tracker_available; +- + /* Set to true when the load tracker is active. */ + bool load_tracker_enabled; + +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index 48e3dc11c493..e7dcb64b05ef 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -598,9 +598,6 @@ static int vc4_load_tracker_atomic_check(struct drm_atomic_state *state) + struct drm_plane *plane; + int i; + +- if (!vc4->load_tracker_available) +- return 0; +- + priv_state = drm_atomic_get_private_obj_state(state, + &vc4->load_tracker); + if (IS_ERR(priv_state)) +@@ -675,9 +672,6 @@ static void vc4_load_tracker_obj_fini(struct drm_device *dev, void *unused) + { + struct vc4_dev *vc4 = to_vc4_dev(dev); + +- if (!vc4->load_tracker_available) +- return; +- + drm_atomic_private_obj_fini(&vc4->load_tracker); + } + +@@ -685,9 +679,6 @@ static int vc4_load_tracker_obj_init(struct vc4_dev *vc4) + { + struct vc4_load_tracker_state *load_state; + +- if (!vc4->load_tracker_available) +- return 0; +- + load_state = kzalloc(sizeof(*load_state), GFP_KERNEL); + if (!load_state) + return -ENOMEM; +@@ -891,9 +882,12 @@ int vc4_kms_load(struct drm_device *dev) + "brcm,bcm2711-vc5"); + int ret; + ++ /* ++ * The limits enforced by the load tracker aren't relevant for ++ * the BCM2711, but the load tracker computations are used for ++ * the core clock rate calculation. ++ */ + if (!is_vc5) { +- vc4->load_tracker_available = true; +- + /* Start with the load tracker enabled. Can be + * disabled through the debugfs load_tracker file. + */ +diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c +index 26ea1f9dd7b3..333335f3c561 100644 +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -534,9 +534,6 @@ static void vc4_plane_calc_load(struct drm_plane_state *state) + struct vc4_dev *vc4; + + vc4 = to_vc4_dev(state->plane->dev); +- if (!vc4->load_tracker_available) +- return; +- + vc4_state = to_vc4_plane_state(state); + crtc_state = drm_atomic_get_existing_crtc_state(state->state, + state->crtc); +-- +2.18.4 + + +From 25a983e29417add14d4cdf3c314dac38d9ec354a Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Wed, 26 May 2021 16:13:02 +0200 +Subject: [PATCH 726/741] drm/vc4: Increase the core clock based on HVS load + +Depending on a given HVS output (HVS to PixelValves) and input (planes +attached to a channel) load, the HVS needs for the core clock to be +raised above its boot time default. + +Failing to do so will result in a vblank timeout and a stalled display +pipeline. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 15 +++++ + drivers/gpu/drm/vc4/vc4_drv.h | 3 + + drivers/gpu/drm/vc4/vc4_kms.c | 116 ++++++++++++++++++++++++++++++++- + 3 files changed, 131 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index 651b1d67591c..f45fb80e822c 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -643,12 +643,27 @@ static int vc4_crtc_atomic_check(struct drm_crtc *crtc, + struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state); + struct drm_connector *conn; + struct drm_connector_state *conn_state; ++ struct drm_encoder *encoder; + int ret, i; + + ret = vc4_hvs_atomic_check(crtc, crtc_state); + if (ret) + return ret; + ++ encoder = vc4_get_crtc_encoder(crtc, crtc_state); ++ if (encoder) { ++ const struct drm_display_mode *mode = &crtc_state->adjusted_mode; ++ struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); ++ ++ mode = &crtc_state->adjusted_mode; ++ if (vc4_encoder->type == VC4_ENCODER_TYPE_HDMI0) { ++ vc4_state->hvs_load = max(mode->clock * mode->hdisplay / mode->htotal + 1000, ++ mode->clock * 9 / 10) * 1000; ++ } else { ++ vc4_state->hvs_load = mode->clock * 1000; ++ } ++ } ++ + for_each_new_connector_in_state(crtc_state->state, conn, conn_state, + i) { + if (conn_state->crtc != crtc) +diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h +index 33930b193a41..53ff53c3a024 100644 +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -326,6 +326,7 @@ struct vc4_hvs { + u32 __iomem *dlist; + + struct clk *core_clk; ++ struct clk_request *core_req; + + /* Memory manager for CRTCs to allocate space in the display + * list. Units are dwords. +@@ -537,6 +538,8 @@ struct vc4_crtc_state { + unsigned int bottom; + } margins; + ++ unsigned long hvs_load; ++ + /* Transitional state below, only valid during atomic commits */ + bool update_muxing; + }; +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index e7dcb64b05ef..e77135b6985c 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -40,6 +40,9 @@ static struct vc4_ctm_state *to_vc4_ctm_state(struct drm_private_state *priv) + struct vc4_hvs_state { + struct drm_private_state base; + unsigned int unassigned_channels; ++ unsigned int num_outputs; ++ unsigned long fifo_load; ++ unsigned long core_clock_rate; + }; + + static struct vc4_hvs_state * +@@ -185,6 +188,19 @@ vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state) + VC4_SET_FIELD(ctm_state->fifo, SCALER_OLEDOFFS_DISPFIFO)); + } + ++static struct vc4_hvs_state * ++vc4_hvs_get_new_global_state(struct drm_atomic_state *state) ++{ ++ struct vc4_dev *vc4 = to_vc4_dev(state->dev); ++ struct drm_private_state *priv_state; ++ ++ priv_state = drm_atomic_get_new_private_obj_state(state, &vc4->hvs_channels); ++ if (IS_ERR(priv_state)) ++ return ERR_CAST(priv_state); ++ ++ return to_vc4_hvs_state(priv_state); ++} ++ + static struct vc4_hvs_state * + vc4_hvs_get_global_state(struct drm_atomic_state *state) + { +@@ -312,10 +328,15 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + struct vc4_dev *vc4 = to_vc4_dev(dev); + struct vc4_hvs *hvs = vc4->hvs; + struct drm_crtc_state *new_crtc_state; ++ struct vc4_hvs_state *hvs_state; + struct drm_crtc *crtc; + struct clk_request *core_req; + int i; + ++ hvs_state = vc4_hvs_get_new_global_state(state); ++ if (WARN_ON(!hvs_state)) ++ return; ++ + for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) { + struct vc4_crtc_state *vc4_crtc_state; + +@@ -326,9 +347,20 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + vc4_hvs_mask_underrun(dev, vc4_crtc_state->assigned_channel); + } + +- if (vc4->hvs && vc4->hvs->hvs5) ++ if (vc4->hvs && vc4->hvs->hvs5) { ++ /* ++ * Do a temporary request on the core clock during the ++ * modeset. ++ */ + core_req = clk_request_start(hvs->core_clk, 500000000); + ++ /* ++ * And remove the previous one based on the HVS ++ * requirements if any. ++ */ ++ clk_request_done(hvs->core_req); ++ } ++ + drm_atomic_helper_wait_for_fences(dev, state, false); + + drm_atomic_helper_wait_for_dependencies(state); +@@ -358,8 +390,20 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + + drm_atomic_helper_commit_cleanup_done(state); + +- if (vc4->hvs && vc4->hvs->hvs5) ++ if (vc4->hvs && vc4->hvs->hvs5) { ++ drm_dbg(dev, "Running the core clock at %lu Hz\n", ++ hvs_state->core_clock_rate); ++ ++ /* ++ * Request a clock rate based on the current HVS ++ * requirements. ++ */ ++ hvs->core_req = clk_request_start(hvs->core_clk, ++ hvs_state->core_clock_rate); ++ ++ /* And drop the temporary request */ + clk_request_done(core_req); ++ } + + drm_atomic_state_put(state); + +@@ -703,6 +747,9 @@ vc4_hvs_channels_duplicate_state(struct drm_private_obj *obj) + __drm_atomic_helper_private_obj_duplicate_state(obj, &state->base); + + state->unassigned_channels = old_state->unassigned_channels; ++ state->fifo_load = old_state->fifo_load; ++ state->num_outputs = old_state->num_outputs; ++ state->core_clock_rate = old_state->core_clock_rate; + + return &state->base; + } +@@ -849,6 +896,65 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev, + return 0; + } + ++static int ++vc4_core_clock_atomic_check(struct drm_atomic_state *state) ++{ ++ struct vc4_dev *vc4 = to_vc4_dev(state->dev); ++ struct drm_private_state *priv_state; ++ struct vc4_hvs_state *hvs_new_state; ++ struct vc4_load_tracker_state *load_state; ++ struct drm_crtc_state *old_crtc_state, *new_crtc_state; ++ struct drm_crtc *crtc; ++ unsigned long pixel_rate; ++ unsigned long cob_rate; ++ unsigned int i; ++ ++ priv_state = drm_atomic_get_private_obj_state(state, ++ &vc4->load_tracker); ++ if (IS_ERR(priv_state)) ++ return PTR_ERR(priv_state); ++ ++ load_state = to_vc4_load_tracker_state(priv_state); ++ ++ hvs_new_state = vc4_hvs_get_global_state(state); ++ if (!hvs_new_state) ++ return -EINVAL; ++ ++ for_each_oldnew_crtc_in_state(state, crtc, ++ old_crtc_state, ++ new_crtc_state, ++ i) { ++ if (old_crtc_state->active) { ++ struct vc4_crtc_state *old_vc4_state = ++ to_vc4_crtc_state(old_crtc_state); ++ ++ hvs_new_state->num_outputs -= 1; ++ hvs_new_state->fifo_load -= old_vc4_state->hvs_load; ++ } ++ ++ if (new_crtc_state->active) { ++ struct vc4_crtc_state *new_vc4_state = ++ to_vc4_crtc_state(new_crtc_state); ++ ++ hvs_new_state->num_outputs += 1; ++ hvs_new_state->fifo_load += new_vc4_state->hvs_load; ++ } ++ } ++ ++ cob_rate = hvs_new_state->fifo_load; ++ pixel_rate = load_state->hvs_load; ++ if (hvs_new_state->num_outputs > 1) { ++ pixel_rate = (pixel_rate * 40) / 100; ++ } else { ++ pixel_rate = (pixel_rate * 60) / 100; ++ } ++ ++ hvs_new_state->core_clock_rate = max(cob_rate, pixel_rate); ++ ++ return 0; ++} ++ ++ + static int + vc4_atomic_check(struct drm_device *dev, struct drm_atomic_state *state) + { +@@ -866,7 +972,11 @@ vc4_atomic_check(struct drm_device *dev, struct drm_atomic_state *state) + if (ret) + return ret; + +- return vc4_load_tracker_atomic_check(state); ++ ret = vc4_load_tracker_atomic_check(state); ++ if (ret) ++ return ret; ++ ++ return vc4_core_clock_atomic_check(state); + } + + static const struct drm_mode_config_funcs vc4_mode_funcs = { +-- +2.18.4 + + +From f7239e4e2d27533709adac632cbcfa1e28cf42c3 Mon Sep 17 00:00:00 2001 +From: kFYatek <4499762+kFYatek@users.noreply.github.com> +Date: Wed, 23 Jun 2021 01:11:26 +0200 +Subject: [PATCH 727/741] drm/vc4: Fix timings for interlaced modes + +Increase the number of post-sync blanking lines on odd fields instead of +decreasing it on even fields. This makes the total number of lines +properly match the modelines. + +Additionally fix the value of PV_VCONTROL_ODD_DELAY, which did not take +pixels_per_clock into account, causing some displays to invert the +fields when driven by bcm2711. + +Signed-off-by: Mateusz Kwiatkowski +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 7 ++++--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 12 ++++++------ + 2 files changed, 10 insertions(+), 9 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index f45fb80e822c..0f69f4b7f2cb 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -342,7 +342,8 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode + PV_HORZB_HACTIVE)); + + CRTC_WRITE(PV_VERTA, +- VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end, ++ VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end + ++ interlace, + PV_VERTA_VBP) | + VC4_SET_FIELD(mode->crtc_vsync_end - mode->crtc_vsync_start, + PV_VERTA_VSYNC)); +@@ -354,7 +355,7 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode + if (interlace) { + CRTC_WRITE(PV_VERTA_EVEN, + VC4_SET_FIELD(mode->crtc_vtotal - +- mode->crtc_vsync_end - 1, ++ mode->crtc_vsync_end, + PV_VERTA_VBP) | + VC4_SET_FIELD(mode->crtc_vsync_end - + mode->crtc_vsync_start, +@@ -374,7 +375,7 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode + PV_VCONTROL_CONTINUOUS | + (is_dsi ? PV_VCONTROL_DSI : 0) | + PV_VCONTROL_INTERLACE | +- VC4_SET_FIELD(mode->htotal * pixel_rep / 2, ++ VC4_SET_FIELD(mode->htotal * pixel_rep / (2 * ppc), + PV_VCONTROL_ODD_DELAY)); + CRTC_WRITE(PV_VSYNCD_EVEN, 0); + } else { +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 26db641fe643..9e8aae983382 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -748,12 +748,12 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, + VC4_HDMI_VERTA_VFP) | + VC4_SET_FIELD(mode->crtc_vdisplay, VC4_HDMI_VERTA_VAL)); + u32 vertb = (VC4_SET_FIELD(0, VC4_HDMI_VERTB_VSPO) | +- VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end, ++ VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end + ++ interlaced, + VC4_HDMI_VERTB_VBP)); + u32 vertb_even = (VC4_SET_FIELD(0, VC4_HDMI_VERTB_VSPO) | + VC4_SET_FIELD(mode->crtc_vtotal - +- mode->crtc_vsync_end - +- interlaced, ++ mode->crtc_vsync_end, + VC4_HDMI_VERTB_VBP)); + + HDMI_WRITE(HDMI_HORZA, +@@ -794,12 +794,12 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, + VC5_HDMI_VERTA_VFP) | + VC4_SET_FIELD(mode->crtc_vdisplay, VC5_HDMI_VERTA_VAL)); + u32 vertb = (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) | +- VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end, ++ VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end + ++ interlaced, + VC4_HDMI_VERTB_VBP)); + u32 vertb_even = (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) | + VC4_SET_FIELD(mode->crtc_vtotal - +- mode->crtc_vsync_end - +- interlaced, ++ mode->crtc_vsync_end, + VC4_HDMI_VERTB_VBP)); + unsigned char gcp; + bool gcp_en; +-- +2.18.4 + + +From 1e4bc97c104d07957b2347ea67cc2f3614077ea7 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Thu, 24 Jun 2021 12:00:49 +0100 +Subject: [PATCH 728/741] drm/vc4: Don't create hvs_load_tracker on fkms + +fkms doesn't use vc4->hvs so protect against that + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_debugfs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_debugfs.c b/drivers/gpu/drm/vc4/vc4_debugfs.c +index d7104d8826f2..a95d88fea8d2 100644 +--- a/drivers/gpu/drm/vc4/vc4_debugfs.c ++++ b/drivers/gpu/drm/vc4/vc4_debugfs.c +@@ -27,7 +27,7 @@ vc4_debugfs_init(struct drm_minor *minor) + struct vc4_dev *vc4 = to_vc4_dev(minor->dev); + struct vc4_debugfs_info_entry *entry; + +- if (!of_device_is_compatible(vc4->hvs->pdev->dev.of_node, ++ if (vc4->hvs && !of_device_is_compatible(vc4->hvs->pdev->dev.of_node, + "brcm,bcm2711-vc5")) + debugfs_create_bool("hvs_load_tracker", S_IRUGO | S_IWUSR, + minor->debugfs_root, &vc4->load_tracker_enabled); +-- +2.18.4 + + +From 71a24291b81c6dcddb86bd1a9a04d54ea742171c Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Thu, 24 Jun 2021 14:43:49 +0100 +Subject: [PATCH 729/741] media: rpivid: Fix H265 aux ent reuse of the same + slot + +It is legitimate, though unusual, for an aux ent associated with a slot +to be selected in phase 0 before a previous selection has been used and +released in phase 2. Fix such that if the slot is found to be in use +that the aux ent associated with it is reused rather than an new aux +ent being created. This fixes a problem where when the first aux ent +was released the second was lost track of. + +This bug spotted in Nick's testing. It may explain some other occasional, +unreliable decode error reports where dmesg included "Missing DPB AUX +ent" logging. + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid_h265.c | 75 ++++++++++++++-------- + 1 file changed, 49 insertions(+), 26 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index bb280b215a2e..a5a0e31bd5ba 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -371,7 +371,8 @@ static void aux_q_free(struct rpivid_ctx *const ctx, + kfree(aq); + } + +-static struct rpivid_q_aux *aux_q_alloc(struct rpivid_ctx *const ctx) ++static struct rpivid_q_aux *aux_q_alloc(struct rpivid_ctx *const ctx, ++ const unsigned int q_index) + { + struct rpivid_dev *const dev = ctx->dev; + struct rpivid_q_aux *const aq = kzalloc(sizeof(*aq), GFP_KERNEL); +@@ -379,11 +380,17 @@ static struct rpivid_q_aux *aux_q_alloc(struct rpivid_ctx *const ctx) + if (!aq) + return NULL; + +- aq->refcount = 1; + if (gptr_alloc(dev, &aq->col, ctx->colmv_picsize, + DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NO_KERNEL_MAPPING)) + goto fail; + ++ /* ++ * Spinlock not required as called in P0 only and ++ * aux checks done by _new ++ */ ++ aq->refcount = 1; ++ aq->q_index = q_index; ++ ctx->aux_ents[q_index] = aq; + return aq; + + fail: +@@ -398,22 +405,38 @@ static struct rpivid_q_aux *aux_q_new(struct rpivid_ctx *const ctx, + unsigned long lockflags; + + spin_lock_irqsave(&ctx->aux_lock, lockflags); +- aq = ctx->aux_free; +- if (aq) { ++ /* ++ * If we already have this allocated to a slot then use that ++ * and assume that it will all work itself out in the pipeline ++ */ ++ if ((aq = ctx->aux_ents[q_index]) != NULL) { ++ ++aq->refcount; ++ } else if ((aq = ctx->aux_free) != NULL) { + ctx->aux_free = aq->next; + aq->next = NULL; + aq->refcount = 1; ++ aq->q_index = q_index; ++ ctx->aux_ents[q_index] = aq; + } + spin_unlock_irqrestore(&ctx->aux_lock, lockflags); + +- if (!aq) { +- aq = aux_q_alloc(ctx); +- if (!aq) +- return NULL; +- } ++ if (!aq) ++ aq = aux_q_alloc(ctx, q_index); ++ ++ return aq; ++} ++ ++static struct rpivid_q_aux *aux_q_ref_idx(struct rpivid_ctx *const ctx, ++ const int q_index) ++{ ++ unsigned long lockflags; ++ struct rpivid_q_aux *aq; ++ ++ spin_lock_irqsave(&ctx->aux_lock, lockflags); ++ if ((aq = ctx->aux_ents[q_index]) != NULL) ++ ++aq->refcount; ++ spin_unlock_irqrestore(&ctx->aux_lock, lockflags); + +- aq->q_index = q_index; +- ctx->aux_ents[q_index] = aq; + return aq; + } + +@@ -436,21 +459,21 @@ static void aux_q_release(struct rpivid_ctx *const ctx, + struct rpivid_q_aux **const paq) + { + struct rpivid_q_aux *const aq = *paq; +- *paq = NULL; +- +- if (aq) { +- unsigned long lockflags; ++ unsigned long lockflags; + +- spin_lock_irqsave(&ctx->aux_lock, lockflags); ++ if (!aq) ++ return; + +- if (--aq->refcount == 0) { +- aq->next = ctx->aux_free; +- ctx->aux_free = aq; +- ctx->aux_ents[aq->q_index] = NULL; +- } ++ *paq = NULL; + +- spin_unlock_irqrestore(&ctx->aux_lock, lockflags); ++ spin_lock_irqsave(&ctx->aux_lock, lockflags); ++ if (--aq->refcount == 0) { ++ aq->next = ctx->aux_free; ++ ctx->aux_free = aq; ++ ctx->aux_ents[aq->q_index] = NULL; ++ aq->q_index = ~0U; + } ++ spin_unlock_irqrestore(&ctx->aux_lock, lockflags); + } + + static void aux_q_init(struct rpivid_ctx *const ctx) +@@ -1958,12 +1981,12 @@ static void rpivid_h265_setup(struct rpivid_ctx *ctx, struct rpivid_run *run) + } + + if (use_aux) { +- dpb_q_aux[i] = aux_q_ref(ctx, +- ctx->aux_ents[buffer_index]); ++ dpb_q_aux[i] = aux_q_ref_idx(ctx, buffer_index); + if (!dpb_q_aux[i]) + v4l2_warn(&dev->v4l2_dev, +- "Missing DPB AUX ent %d index=%d\n", +- i, buffer_index); ++ "Missing DPB AUX ent %d, timestamp=%lld, index=%d\n", ++ i, (long long)sh->dpb[i].timestamp, ++ buffer_index); + } + + de->ref_addrs[i] = +-- +2.18.4 + + +From 3e98dde1f7c7fbf29cdb6bbd3ce620e1c9f86845 Mon Sep 17 00:00:00 2001 +From: Joerg Quinten +Date: Fri, 18 Jun 2021 13:02:29 +0200 +Subject: [PATCH 730/741] Support RPi DPI interface in mode6 for 18-bit color + +A matching media bus format was added and an overlay for using it, +both with FB and VC4 was added as well. + +Signed-off-by: Joerg Quinten +--- + .../bindings/display/panel/panel-simple.yaml | 2 + + .../media/v4l/subdev-formats.rst | 74 +++++++++++++++++++ + drivers/gpu/drm/panel/panel-simple.c | 35 +++++++++ + drivers/gpu/drm/vc4/vc4_dpi.c | 10 +++ + include/uapi/linux/media-bus-format.h | 4 +- + 5 files changed, 124 insertions(+), 1 deletion(-) + +diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml +index edb53ab0d9eb..4d50b22554a4 100644 +--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml ++++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml +@@ -147,6 +147,8 @@ properties: + - ivo,m133nwf4-r0 + # Innolux AT043TN24 4.3" WQVGA TFT LCD panel + - innolux,at043tn24 ++ # Innolux AT056tN53V1 5.6" VGA (640x480) TFT LCD panel ++ - innolux,at056tn53v1 + # Innolux AT070TN92 7.0" WQVGA TFT LCD panel + - innolux,at070tn92 + # Innolux G070Y2-L01 7" WVGA (800x480) TFT LCD panel +diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst +index 60e1df0dd3ee..8e0ae032411a 100644 +--- a/Documentation/userspace-api/media/v4l/subdev-formats.rst ++++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst +@@ -908,6 +908,43 @@ The following tables list existing packed RGB formats. + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` ++ * .. _MEDIA-BUS-FMT-BGR666-1X18: ++ ++ - MEDIA_BUS_FMT_RGB666_1X18 ++ - 0x101f ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - b\ :sub:`5` ++ - b\ :sub:`4` ++ - b\ :sub:`3` ++ - b\ :sub:`2` ++ - b\ :sub:`1` ++ - b\ :sub:`0` ++ - g\ :sub:`5` ++ - g\ :sub:`4` ++ - g\ :sub:`3` ++ - g\ :sub:`2` ++ - g\ :sub:`1` ++ - g\ :sub:`0` ++ - r\ :sub:`5` ++ - r\ :sub:`4` ++ - r\ :sub:`3` ++ - r\ :sub:`2` ++ - r\ :sub:`1` ++ - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB666-1X18: + + - MEDIA_BUS_FMT_RGB666_1X18 +@@ -982,6 +1019,43 @@ The following tables list existing packed RGB formats. + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` ++ * .. _MEDIA-BUS-FMT-BGR666-1X24_CPADHI: ++ ++ - MEDIA_BUS_FMT_BGR666_1X24_CPADHI ++ - 0x101e ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - ++ - 0 ++ - 0 ++ - b\ :sub:`5` ++ - b\ :sub:`4` ++ - b\ :sub:`3` ++ - b\ :sub:`2` ++ - b\ :sub:`1` ++ - b\ :sub:`0` ++ - 0 ++ - 0 ++ - g\ :sub:`5` ++ - g\ :sub:`4` ++ - g\ :sub:`3` ++ - g\ :sub:`2` ++ - g\ :sub:`1` ++ - g\ :sub:`0` ++ - 0 ++ - 0 ++ - r\ :sub:`5` ++ - r\ :sub:`4` ++ - r\ :sub:`3` ++ - r\ :sub:`2` ++ - r\ :sub:`1` ++ - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB666-1X24_CPADHI: + + - MEDIA_BUS_FMT_RGB666_1X24_CPADHI +diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c +index 204674fccd64..b7be0561006d 100644 +--- a/drivers/gpu/drm/panel/panel-simple.c ++++ b/drivers/gpu/drm/panel/panel-simple.c +@@ -2093,6 +2093,38 @@ static const struct panel_desc innolux_at043tn24 = { + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE, + }; + ++static const struct display_timing innolux_at056tn53v1_timing = { ++ .pixelclock = { 39700000, 39700000, 39700000}, ++ .hactive = { 640, 640, 640 }, ++ .hfront_porch = { 16, 16, 16 }, ++ .hback_porch = { 134, 134, 134 }, ++ .hsync_len = { 10, 10, 10}, ++ .vactive = { 480, 480, 480 }, ++ .vfront_porch = { 32, 32, 32}, ++ .vback_porch = { 11, 11, 11 }, ++ .vsync_len = { 2, 2, 2 }, ++ .flags = DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_PHSYNC, ++}; ++ ++static const struct panel_desc innolux_at056tn53v1 = { ++ .timings = &innolux_at056tn53v1_timing, ++ .num_timings = 1, ++ .bpc = 6, ++ .size = { ++ .width = 112, ++ .height = 84, ++ }, ++ .delay = { ++ .prepare = 50, ++ .enable = 200, ++ .disable = 110, ++ .unprepare = 200, ++ }, ++ .bus_format = MEDIA_BUS_FMT_BGR666_1X24_CPADHI, ++ .bus_flags = DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE, ++ .connector_type = DRM_MODE_CONNECTOR_DPI, ++}; ++ + static const struct drm_display_mode innolux_at070tn92_mode = { + .clock = 33333, + .hdisplay = 800, +@@ -4075,6 +4107,9 @@ static const struct of_device_id platform_of_match[] = { + }, { + .compatible = "innolux,at043tn24", + .data = &innolux_at043tn24, ++ }, { ++ .compatible = "innolux,at056tn53v1", ++ .data = &innolux_at056tn53v1, + }, { + .compatible = "innolux,at070tn92", + .data = &innolux_at070tn92, +diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c +index db63f4e11b17..dde2c6014748 100644 +--- a/drivers/gpu/drm/vc4/vc4_dpi.c ++++ b/drivers/gpu/drm/vc4/vc4_dpi.c +@@ -165,10 +165,20 @@ static void vc4_dpi_encoder_enable(struct drm_encoder *encoder) + dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2, + DPI_FORMAT); + break; ++ case MEDIA_BUS_FMT_BGR666_1X24_CPADHI: ++ dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2, ++ DPI_FORMAT); ++ dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER); ++ break; + case MEDIA_BUS_FMT_RGB666_1X18: + dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1, + DPI_FORMAT); + break; ++ case MEDIA_BUS_FMT_BGR666_1X18: ++ dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1, ++ DPI_FORMAT); ++ dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER); ++ break; + case MEDIA_BUS_FMT_RGB565_1X16: + dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3, + DPI_FORMAT); +diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h +index 3c2848e91c1b..c4abd49af073 100644 +--- a/include/uapi/linux/media-bus-format.h ++++ b/include/uapi/linux/media-bus-format.h +@@ -34,7 +34,7 @@ + + #define MEDIA_BUS_FMT_FIXED 0x0001 + +-/* RGB - next is 0x101d */ ++/* RGB - next is 0x1020 */ + #define MEDIA_BUS_FMT_RGB444_1X12 0x1016 + #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001 + #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002 +@@ -45,8 +45,10 @@ + #define MEDIA_BUS_FMT_BGR565_2X8_LE 0x1006 + #define MEDIA_BUS_FMT_RGB565_2X8_BE 0x1007 + #define MEDIA_BUS_FMT_RGB565_2X8_LE 0x1008 ++#define MEDIA_BUS_FMT_BGR666_1X18 0x101f + #define MEDIA_BUS_FMT_RGB666_1X18 0x1009 + #define MEDIA_BUS_FMT_RBG888_1X24 0x100e ++#define MEDIA_BUS_FMT_BGR666_1X24_CPADHI 0x101e + #define MEDIA_BUS_FMT_RGB666_1X24_CPADHI 0x1015 + #define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG 0x1010 + #define MEDIA_BUS_FMT_BGR888_1X24 0x1013 +-- +2.18.4 + + +From c5f9ff40aaf7bdf30f8a4eb7b4453aba391ea38b Mon Sep 17 00:00:00 2001 +From: Joerg Quinten +Date: Mon, 21 Jun 2021 16:10:32 +0200 +Subject: [PATCH 731/741] overlays: Add dpi18cpadhi, vc4-kms-dpi-at056tn53v1 + +Signed-off-by: Joerg Quinten +--- + arch/arm/boot/dts/bcm270x.dtsi | 13 ++++++ + arch/arm/boot/dts/overlays/Makefile | 2 + + arch/arm/boot/dts/overlays/README | 15 +++++++ + .../boot/dts/overlays/dpi18cpadhi-overlay.dts | 26 +++++++++++ + .../vc4-kms-dpi-at056tn53v1-overlay.dts | 44 +++++++++++++++++++ + 5 files changed, 100 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/dpi18cpadhi-overlay.dts + create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dpi-at056tn53v1-overlay.dts + +diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi +index 12c7b0b2bb5f..6a865d9f553f 100644 +--- a/arch/arm/boot/dts/bcm270x.dtsi ++++ b/arch/arm/boot/dts/bcm270x.dtsi +@@ -164,6 +164,19 @@ + &gpio { + interrupts = <2 17>, <2 18>; + ++ dpi_18bit_cpadhi_gpio0: dpi_18bit_cpadhi_gpio0 { ++ brcm,pins = <0 1 2 3 4 5 6 7 8 9 ++ 12 13 14 15 16 17 ++ 20 21 22 23 24 25>; ++ brcm,function = ; ++ brcm,pull = <0>; /* no pull */ ++ }; ++ dpi_18bit_cpadhi_gpio2: dpi_18bit_cpadhi_gpio2 { ++ brcm,pins = <2 3 4 5 6 7 8 9 ++ 12 13 14 15 16 17 ++ 20 21 22 23 24 25>; ++ brcm,function = ; ++ }; + dpi_18bit_gpio0: dpi_18bit_gpio0 { + brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 932a2205f130..7027e5f1faec 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -37,6 +37,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + disable-bt.dtbo \ + disable-wifi.dtbo \ + dpi18.dtbo \ ++ dpi18cpadhi.dtbo \ + dpi24.dtbo \ + draws.dtbo \ + dwc-otg.dtbo \ +@@ -215,6 +216,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + upstream.dtbo \ + upstream-pi4.dtbo \ + vc4-fkms-v3d.dtbo \ ++ vc4-kms-dpi-at056tn53v1.dtbo \ + vc4-kms-dsi-7inch.dtbo \ + vc4-kms-dsi-lt070me05000.dtbo \ + vc4-kms-dsi-lt070me05000-v2.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index c939b475ed6c..e9935e9cfc35 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -695,6 +695,14 @@ Load: dtoverlay=dpi18 + Params: + + ++Name: dpi18cpadhi ++Info: Overlay for a generic 18-bit DPI display (in 'mode 6' connection scheme) ++ This uses GPIOs 0-9,12-17,20-25 (so no I2C, uart etc.), and activates ++ the output 3-3 seconds after the kernel has started. ++Load: dtoverlay=dpi18cpadhi ++Params: ++ ++ + Name: dpi24 + Info: Overlay for a generic 24-bit DPI display + This uses GPIOs 0-27 (so no I2C, uart etc.), and activates the output +@@ -3219,6 +3227,13 @@ Params: cma-512 CMA is 512MB (needs 1GB) + cma-default Use upstream's default value + + ++Name: vc4-kms-dpi-at056tn53v1 ++Info: Enable an Innolux 5.6in VGA TFT connected to DPI interface under KMS. ++ Requires vc4-kms-v3d to be loaded. ++Load: dtoverlay=vc4-kms-dpi-at056tn53v1 ++Params: ++ ++ + Name: vc4-kms-dsi-7inch + Info: Enable the Raspberry Pi DSI 7" screen. + Use edt-ft5406 for the touchscreen element. +diff --git a/arch/arm/boot/dts/overlays/dpi18cpadhi-overlay.dts b/arch/arm/boot/dts/overlays/dpi18cpadhi-overlay.dts +new file mode 100644 +index 000000000000..50c88a1ed299 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/dpi18cpadhi-overlay.dts +@@ -0,0 +1,26 @@ ++/* ++ * dpi18cpadhi-overlay.dts ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++/{ ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&fb>; ++ __overlay__ { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&dpi_18bit_cpadhi_gpio0>; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&vc4>; ++ __overlay__ { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&dpi_18bit_cpadhi_gpio0>; ++ }; ++ }; ++}; +diff --git a/arch/arm/boot/dts/overlays/vc4-kms-dpi-at056tn53v1-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-dpi-at056tn53v1-overlay.dts +new file mode 100644 +index 000000000000..f7181c9828bf +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/vc4-kms-dpi-at056tn53v1-overlay.dts +@@ -0,0 +1,44 @@ ++/* ++ * vc4-kms-dpi-at056tn53v1-overlay.dts ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++#include ++#include ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target-path = "/"; ++ __overlay__ { ++ panel: panel { ++ compatible = "innolux,at056tn53v1", "simple-panel"; ++ ++ port { ++ panel_in: endpoint { ++ remote-endpoint = <&dpi_out>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&dpi>; ++ __overlay__ { ++ status = "okay"; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&dpi_18bit_cpadhi_gpio0>; ++ ++ port { ++ dpi_out: endpoint { ++ remote-endpoint = <&panel_in>; ++ }; ++ }; ++ }; ++ }; ++}; +-- +2.18.4 + + +From 420503f640d4250dff0c012a2f380da21cf0c929 Mon Sep 17 00:00:00 2001 +From: Tim Gover +Date: Thu, 24 Jun 2021 17:58:05 +0100 +Subject: [PATCH 732/741] drm: vc4: Fix pixel-wrap issue with DVP teardown + +Adjust the DVP enable/disable sequence to avoid a pixel getting stuck +in an internal, non resettable FIFO within PixelValve when changing +HDMI resolution. + +The blank pixels features of the DVP can prevent signals back to +pixelvalve causing it to not clear the FIFO. Adjust the ordering +and timing of operations to ensure the clear signal makes it through to +pixelvalve. + +Signed-off-by: Tim Gover +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 9e8aae983382..1bacf8b06b7c 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -623,12 +623,12 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, + + HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, 0); + +- HDMI_WRITE(HDMI_VID_CTL, HDMI_READ(HDMI_VID_CTL) | +- VC4_HD_VID_CTL_CLRRGB | VC4_HD_VID_CTL_CLRSYNC); ++ HDMI_WRITE(HDMI_VID_CTL, HDMI_READ(HDMI_VID_CTL) | VC4_HD_VID_CTL_CLRRGB); + +- HDMI_WRITE(HDMI_VID_CTL, +- HDMI_READ(HDMI_VID_CTL) | VC4_HD_VID_CTL_BLANKPIX); ++ mdelay(1); + ++ HDMI_WRITE(HDMI_VID_CTL, ++ HDMI_READ(HDMI_VID_CTL) & ~VC4_HD_VID_CTL_ENABLE); + vc4_hdmi_disable_scrambling(encoder); + } + +@@ -638,12 +638,12 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder, + struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); + int ret; + ++ HDMI_WRITE(HDMI_VID_CTL, ++ HDMI_READ(HDMI_VID_CTL) | VC4_HD_VID_CTL_BLANKPIX); ++ + if (vc4_hdmi->variant->phy_disable) + vc4_hdmi->variant->phy_disable(vc4_hdmi); + +- HDMI_WRITE(HDMI_VID_CTL, +- HDMI_READ(HDMI_VID_CTL) & ~VC4_HD_VID_CTL_ENABLE); +- + clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock); + clk_request_done(vc4_hdmi->bvb_req); + if (vc4_hdmi->bvb_req) +@@ -1019,6 +1019,7 @@ static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder, + + HDMI_WRITE(HDMI_VID_CTL, + VC4_HD_VID_CTL_ENABLE | ++ VC4_HD_VID_CTL_CLRRGB | + VC4_HD_VID_CTL_UNDERFLOW_ENABLE | + VC4_HD_VID_CTL_FRAME_COUNTER_RESET | + (vsync_pos ? 0 : VC4_HD_VID_CTL_VSYNC_LOW) | +-- +2.18.4 + + +From 4bcf587f59567db65ff9eacf5e15cd15c9b27427 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 28 Jun 2021 11:15:13 +0200 +Subject: [PATCH 733/741] drm/vc4: Increase the core clock to a minimum of + 500MHz + +The core clock needs to be raised temporarily during a modeset to +500MHz. However, the HVS core clock requirement might be higher than +500MHz. This rate will be enforced at the end of the mode setting, +meaning that might might end up with a core clock rate lower than +planned on the first mode set. + +Use the maximum value of 500MHz and the HVS core clock rate for our +temporary boost to fix this issue. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_kms.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c +index e77135b6985c..7d159b32abba 100644 +--- a/drivers/gpu/drm/vc4/vc4_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_kms.c +@@ -348,11 +348,17 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) + } + + if (vc4->hvs && vc4->hvs->hvs5) { ++ unsigned long core_rate = max_t(unsigned long, ++ 500000000, ++ hvs_state->core_clock_rate); ++ ++ drm_dbg(dev, "Raising the core clock at %lu Hz\n", core_rate); ++ + /* + * Do a temporary request on the core clock during the + * modeset. + */ +- core_req = clk_request_start(hvs->core_clk, 500000000); ++ core_req = clk_request_start(hvs->core_clk, core_rate); + + /* + * And remove the previous one based on the HVS +-- +2.18.4 + + +From 10addebbfabb514131071a6ee99b2bb5095dd723 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 28 Jun 2021 10:49:04 +0100 +Subject: [PATCH 734/741] media: i2c: ov9281: Remove override of subdev name + +From the original Rockchip driver, the subdev was renamed +from the default to being "mov9281 " whereas the +default would have been "ov9281 ". + +Remove the override to drop back to the default rather than +a vendor custom string. + +Signed-off-by: Dave Stevenson +--- + drivers/media/i2c/ov9281.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/drivers/media/i2c/ov9281.c b/drivers/media/i2c/ov9281.c +index 16777b6f8e14..6bfc79cd5897 100644 +--- a/drivers/media/i2c/ov9281.c ++++ b/drivers/media/i2c/ov9281.c +@@ -1197,8 +1197,6 @@ static int ov9281_probe(struct i2c_client *client, + if (ret < 0) + goto err_power_off; + +- snprintf(sd->name, sizeof(sd->name), "m%s %s", +- OV9281_NAME, dev_name(sd->dev)); + ret = v4l2_async_register_subdev_sensor_common(sd); + if (ret) { + dev_err(dev, "v4l2 async register subdev failed\n"); +-- +2.18.4 + + +From a2b6e3e22f9a03e5577320ef08d2d6c46dcda4a7 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Mon, 28 Jun 2021 16:07:16 +0200 +Subject: [PATCH 735/741] drm/vc4: hdmi: Use a fixed rate for the HSM clock on + BCM2835 + +Before the introduction of the BCM2711 support, the HSM clock rate was +fixed, and was the CEC and audio clock source on the SoCs previously +supported. + +The HSM clock is also the source of the internal state machine of the +controller and needs to run faster than the pixel clock. All these +requirements were met by running at 101% of the maximum pixel rate, +meeting the fixed clock requirement for audio and CEC, while remaining +faster than any pixel clock we might need. + +However, the BCM2711 brought support for 4k and therefore increased +significantly the rate needed for the HSM, and new, independant, clocks +to feed the audio and CEC clocks. Since the HSM clock can also run much +higher, we also need to lower its rate if possible to reduce its power +consumption. + +The CEC support code changes its clock divider when the HSM clock rate +is changed, but the audio support never had a similar feature and will +glitch out if audio is played back during a mode set. + +Since the HSM rate was meant to be fixed on the SoCs prior to the +BCM2711 anyway, let's introduce back a fixed HSM rate and fix audio. + +Fixes: cd4cb49dc5bb ("drm/vc4: hdmi: Adjust HSM clock rate depending on pixel rate") +Signed-off-by: Dom Cobley +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 54 +++++++++++++++++++++++----------- + drivers/gpu/drm/vc4/vc4_hdmi.h | 3 ++ + 2 files changed, 40 insertions(+), 17 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 1bacf8b06b7c..f091211f8f0a 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -921,23 +921,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, + return; + } + +- /* +- * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must +- * be faster than pixel clock, infinitesimally faster, tested in +- * simulation. Otherwise, exact value is unimportant for HDMI +- * operation." This conflicts with bcm2835's vc4 documentation, which +- * states HSM's clock has to be at least 108% of the pixel clock. +- * +- * Real life tests reveal that vc4's firmware statement holds up, and +- * users are able to use pixel clocks closer to HSM's, namely for +- * 1920x1200@60Hz. So it was decided to have leave a 1% margin between +- * both clocks. Which, for RPi0-3 implies a maximum pixel clock of +- * 162MHz. +- * +- * Additionally, the AXI clock needs to be at least 25% of +- * pixel clock, but HSM ends up being the limiting factor. +- */ +- hsm_rate = max_t(unsigned long, 120000000, (pixel_rate / 100) * 101); ++ hsm_rate = vc4_hdmi->variant->calc_hsm_clock(vc4_hdmi, pixel_rate); + vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate); + if (IS_ERR(vc4_hdmi->hsm_req)) { + DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req)); +@@ -1155,6 +1139,39 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { + .enable = vc4_hdmi_encoder_enable, + }; + ++static u32 vc4_hdmi_calc_hsm_clock(struct vc4_hdmi *vc4_hdmi, unsigned long pixel_rate) ++{ ++ /* ++ * Whilst this can vary, all the CEC timings are derived from this ++ * clock, so make it constant to avoid having to reconfigure CEC on ++ * every mode change. ++ */ ++ ++ return 163682864; ++} ++ ++static u32 vc5_hdmi_calc_hsm_clock(struct vc4_hdmi *vc4_hdmi, unsigned long pixel_rate) ++{ ++ /* ++ * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must ++ * be faster than pixel clock, infinitesimally faster, tested in ++ * simulation. Otherwise, exact value is unimportant for HDMI ++ * operation." This conflicts with bcm2835's vc4 documentation, which ++ * states HSM's clock has to be at least 108% of the pixel clock. ++ * ++ * Real life tests reveal that vc4's firmware statement holds up, and ++ * users are able to use pixel clocks closer to HSM's, namely for ++ * 1920x1200@60Hz. So it was decided to have leave a 1% margin between ++ * both clocks. Which, for RPi0-3 implies a maximum pixel clock of ++ * 162MHz. ++ * ++ * Additionally, the AXI clock needs to be at least 25% of ++ * pixel clock, but HSM ends up being the limiting factor. ++ */ ++ ++ return max_t(unsigned long, 120000000, (pixel_rate / 100) * 101); ++} ++ + static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) + { + int i; +@@ -2345,6 +2362,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { + .phy_disable = vc4_hdmi_phy_disable, + .phy_rng_enable = vc4_hdmi_phy_rng_enable, + .phy_rng_disable = vc4_hdmi_phy_rng_disable, ++ .calc_hsm_clock = vc4_hdmi_calc_hsm_clock, + .channel_map = vc4_hdmi_channel_map, + .supports_hdr = false, + }; +@@ -2373,6 +2391,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { + .phy_disable = vc5_hdmi_phy_disable, + .phy_rng_enable = vc5_hdmi_phy_rng_enable, + .phy_rng_disable = vc5_hdmi_phy_rng_disable, ++ .calc_hsm_clock = vc5_hdmi_calc_hsm_clock, + .channel_map = vc5_hdmi_channel_map, + .supports_hdr = true, + }; +@@ -2401,6 +2420,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { + .phy_disable = vc5_hdmi_phy_disable, + .phy_rng_enable = vc5_hdmi_phy_rng_enable, + .phy_rng_disable = vc5_hdmi_phy_rng_disable, ++ .calc_hsm_clock = vc5_hdmi_calc_hsm_clock, + .channel_map = vc5_hdmi_channel_map, + .supports_hdr = true, + }; +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h +index 295962d83741..49fc91962fe4 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.h ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.h +@@ -97,6 +97,9 @@ struct vc4_hdmi_variant { + /* Callback to disable the RNG in the PHY */ + void (*phy_rng_disable)(struct vc4_hdmi *vc4_hdmi); + ++ /* Callback to calculate hsm clock */ ++ u32 (*calc_hsm_clock)(struct vc4_hdmi *vc4_hdmi, unsigned long pixel_rate); ++ + /* Callback to get channel map */ + u32 (*channel_map)(struct vc4_hdmi *vc4_hdmi, u32 channel_mask); + +-- +2.18.4 + + +From eb807a2c66061357076af553ca391c80abc0fa6c Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Fri, 25 Jun 2021 16:22:39 +0200 +Subject: [PATCH 736/741] drm/vc4: hdmi: Enable the scrambler on reconnection + +If we have a state already and disconnect/reconnect the display, the +SCDC messages won't be sent again since we didn't go through a disable / +enable cycle. + +In order to fix this, let's call the vc4_hdmi_enable_scrambling function +in the detect callback if there is a mode and it needs the scrambler to +be enabled. + +Fixes: 74465b84fa27 ("drm/vc4: hdmi: Enable the scrambler") +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index f091211f8f0a..bcffcc00814a 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -168,6 +168,8 @@ static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) + static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) {} + #endif + ++static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder); ++ + static enum drm_connector_status + vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) + { +@@ -197,6 +199,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) + } + } + ++ vc4_hdmi_enable_scrambling(&vc4_hdmi->encoder.base.base); ++ + pm_runtime_put(&vc4_hdmi->pdev->dev); + return connector_status_connected; + } +@@ -555,9 +559,13 @@ static bool vc4_hdmi_supports_scrambling(struct drm_encoder *encoder, + + static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder) + { +- struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; ++ struct drm_display_mode *mode; + struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); + ++ if (!encoder->crtc || !encoder->crtc->state) ++ return; ++ ++ mode = &encoder->crtc->state->adjusted_mode; + if (!vc4_hdmi_supports_scrambling(encoder, mode)) + return; + +-- +2.18.4 + + +From 1ace0ea789b20dd6b41d40cc77add36e76478749 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 29 Jun 2021 09:20:09 +0100 +Subject: [PATCH 737/741] configs: Add CONFIG_MACVTAP=m (arm64 only) + +From the requesting issue: + +"This option is necessary for having bridge-like networking on KVM VMs + with the host root filesystem on NFS (since regular bridge networking + doesn't work in that case)," + +See: https://github.com/raspberrypi/linux/issues/4413 + +Signed-off-by: Phil Elwell +--- + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 90e53fd93e37..93b08c049571 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -497,6 +497,7 @@ CONFIG_DUMMY=m + CONFIG_WIREGUARD=m + CONFIG_IFB=m + CONFIG_MACVLAN=m ++CONFIG_MACVTAP=m + CONFIG_IPVLAN=m + CONFIG_VXLAN=m + CONFIG_NETCONSOLE=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 456b3000e6d6..da84139ca6ca 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -483,6 +483,7 @@ CONFIG_DUMMY=m + CONFIG_WIREGUARD=m + CONFIG_IFB=m + CONFIG_MACVLAN=m ++CONFIG_MACVTAP=m + CONFIG_IPVLAN=m + CONFIG_VXLAN=m + CONFIG_NETCONSOLE=m +-- +2.18.4 + + +From 3918324ea0a765c813abdc865e3f1b0dba018329 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Tue, 29 Jun 2021 12:50:58 +0100 +Subject: [PATCH 738/741] staging: vc04_services: isp: Set the YUV420/YVU420 + format stride to 64 bytes + +The bcm2835 ISP requires the base address of all input/output planes to have 32 +byte alignment. Using a Y stride of 32 bytes would not guarantee that the V +plane would fulfil this, e.g. a height of 650 lines would mean the V plane +buffer is not 32 byte aligned for YUV420 formats. + +Having a Y stride of 64 bytes would ensure both U and V planes have a 32 byte +alignment, as the luma height will always be an even number of lines. + +Signed-off-by: Naushir Patuck +--- + drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h +index 7541fb316cb9..f6d6c88d13ba 100644 +--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h ++++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h +@@ -48,7 +48,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + /* YUV formats */ + .fourcc = V4L2_PIX_FMT_YUV420, + .depth = 8, +- .bytesperline_align = 32, ++ .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_I420, + .size_multiplier_x2 = 3, + .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, +@@ -57,7 +57,7 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_YVU420, + .depth = 8, +- .bytesperline_align = 32, ++ .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_YV12, + .size_multiplier_x2 = 3, + .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, +-- +2.18.4 + + +From 88fed822fc0128ffabf8e67590815e055c7db817 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Tue, 29 Jun 2021 14:38:23 +0100 +Subject: [PATCH 739/741] Documentation: devicetree: Add documentation for + imx378 sensor + +The imx378 sensor is compatible with the imx477 and shares common +device tree settings. + +Signed-off-by: David Plowman +--- + .../devicetree/bindings/media/i2c/imx378.yaml | 113 ++++++++++++++++++ + MAINTAINERS | 1 + + 2 files changed, 114 insertions(+) + create mode 100644 Documentation/devicetree/bindings/media/i2c/imx378.yaml + +diff --git a/Documentation/devicetree/bindings/media/i2c/imx378.yaml b/Documentation/devicetree/bindings/media/i2c/imx378.yaml +new file mode 100644 +index 000000000000..f832b4bfab93 +--- /dev/null ++++ b/Documentation/devicetree/bindings/media/i2c/imx378.yaml +@@ -0,0 +1,113 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/media/i2c/imx378.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Sony 1/2.3-Inch 12Mpixel CMOS Digital Image Sensor ++ ++maintainers: ++ - Naushir Patuck ++ ++description: |- ++ The Sony IMX378 is a 1/2.3-inch CMOS active pixel digital image sensor ++ with an active array size of 4056H x 3040V. It is programmable through ++ I2C interface. The I2C address is fixed to 0x1A as per sensor data sheet. ++ Image data is sent through MIPI CSI-2, which is configured as either 2 or ++ 4 data lanes. ++ ++properties: ++ compatible: ++ const: sony,imx378 ++ ++ reg: ++ description: I2C device address ++ maxItems: 1 ++ ++ clocks: ++ maxItems: 1 ++ ++ VDIG-supply: ++ description: ++ Digital I/O voltage supply, 1.05 volts ++ ++ VANA-supply: ++ description: ++ Analog voltage supply, 2.8 volts ++ ++ VDDL-supply: ++ description: ++ Digital core voltage supply, 1.8 volts ++ ++ reset-gpios: ++ description: |- ++ Reference to the GPIO connected to the xclr pin, if any. ++ Must be released (set high) after all supplies and INCK are applied. ++ ++ # See ../video-interfaces.txt for more details ++ port: ++ type: object ++ properties: ++ endpoint: ++ type: object ++ properties: ++ data-lanes: ++ description: |- ++ The sensor supports either two-lane, or four-lane operation. ++ For two-lane operation the property must be set to <1 2>. ++ items: ++ - const: 1 ++ - const: 2 ++ ++ clock-noncontinuous: ++ type: boolean ++ description: |- ++ MIPI CSI-2 clock is non-continuous if this property is present, ++ otherwise it's continuous. ++ ++ link-frequencies: ++ allOf: ++ - $ref: /schemas/types.yaml#/definitions/uint64-array ++ description: ++ Allowed data bus frequencies. ++ ++ required: ++ - link-frequencies ++ ++required: ++ - compatible ++ - reg ++ - clocks ++ - VANA-supply ++ - VDIG-supply ++ - VDDL-supply ++ - port ++ ++additionalProperties: false ++ ++examples: ++ - | ++ i2c0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ imx378: sensor@10 { ++ compatible = "sony,imx378"; ++ reg = <0x1a>; ++ clocks = <&imx378_clk>; ++ VANA-supply = <&imx378_vana>; /* 2.8v */ ++ VDIG-supply = <&imx378_vdig>; /* 1.05v */ ++ VDDL-supply = <&imx378_vddl>; /* 1.8v */ ++ ++ port { ++ imx378_0: endpoint { ++ remote-endpoint = <&csi1_ep>; ++ data-lanes = <1 2>; ++ clock-noncontinuous; ++ link-frequencies = /bits/ 64 <450000000>; ++ }; ++ }; ++ }; ++ }; ++ ++... +diff --git a/MAINTAINERS b/MAINTAINERS +index 937b6a1f99ec..1e0aa06f159d 100644 +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -16360,6 +16360,7 @@ M: Raspberry Pi Kernel Maintenance + L: linux-media@vger.kernel.org + S: Maintained + T: git git://linuxtv.org/media_tree.git ++F: Documentation/devicetree/bindings/media/i2c/imx378.yaml + F: Documentation/devicetree/bindings/media/i2c/imx477.yaml + F: drivers/media/i2c/imx477.c + +-- +2.18.4 + + +From c5791476faaea42b42df6057d7df2a3fbde0b5b2 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Tue, 29 Jun 2021 14:41:15 +0100 +Subject: [PATCH 740/741] overlays: Add overlay for imx378 sensor + +This is based off a common overlay which is now also used by the +imx477 sensor. + +Signed-off-by: David Plowman +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 9 ++ + arch/arm/boot/dts/overlays/imx378-overlay.dts | 10 ++ + arch/arm/boot/dts/overlays/imx477-overlay.dts | 109 +----------------- + .../boot/dts/overlays/imx477_378-overlay.dtsi | 108 +++++++++++++++++ + 5 files changed, 131 insertions(+), 106 deletions(-) + create mode 100644 arch/arm/boot/dts/overlays/imx378-overlay.dts + create mode 100644 arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 7027e5f1faec..05657a7e8628 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -94,6 +94,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + ilitek251x.dtbo \ + imx219.dtbo \ + imx290.dtbo \ ++ imx378.dtbo \ + imx477.dtbo \ + iqaudio-codec.dtbo \ + iqaudio-dac.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index e9935e9cfc35..34befefb5bd8 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1674,6 +1674,15 @@ Params: 4lane Enable 4 CSI2 lanes. This requires a Compute + mono Denote that the module is a mono sensor. + + ++Name: imx378 ++Info: Sony IMX378 camera module. ++ Uses Unicam 1, which is the standard camera connector on most Pi ++ variants. ++Load: dtoverlay=imx378,= ++Params: rotation Mounting rotation of the camera sensor (0 or ++ 180, default 180) ++ ++ + Name: imx477 + Info: Sony IMX477 camera module. + Uses Unicam 1, which is the standard camera connector on most Pi +diff --git a/arch/arm/boot/dts/overlays/imx378-overlay.dts b/arch/arm/boot/dts/overlays/imx378-overlay.dts +new file mode 100644 +index 000000000000..74c7288d12f5 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/imx378-overlay.dts +@@ -0,0 +1,10 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++// Definitions for IMX378 camera module on VC I2C bus ++/dts-v1/; ++/plugin/; ++ ++#include "imx477_378-overlay.dtsi" ++ ++&imx477 { ++ compatible = "sony,imx378"; ++}; +diff --git a/arch/arm/boot/dts/overlays/imx477-overlay.dts b/arch/arm/boot/dts/overlays/imx477-overlay.dts +index 0f1ebd2b663d..ca315d120e6b 100644 +--- a/arch/arm/boot/dts/overlays/imx477-overlay.dts ++++ b/arch/arm/boot/dts/overlays/imx477-overlay.dts +@@ -3,111 +3,8 @@ + /dts-v1/; + /plugin/; + +-#include ++#include "imx477_378-overlay.dtsi" + +-/{ +- compatible = "brcm,bcm2835"; +- +- fragment@0 { +- target = <&i2c_csi_dsi>; +- __overlay__ { +- #address-cells = <1>; +- #size-cells = <0>; +- status = "okay"; +- +- imx477: imx477@1a { +- compatible = "sony,imx477"; +- reg = <0x1a>; +- status = "okay"; +- +- clocks = <&imx477_clk>; +- clock-names = "xclk"; +- +- VANA-supply = <&cam1_reg>; /* 2.8v */ +- VDIG-supply = <&imx477_vdig>; /* 1.05v */ +- VDDL-supply = <&imx477_vddl>; /* 1.8v */ +- +- rotation = <180>; +- +- port { +- imx477_0: endpoint { +- remote-endpoint = <&csi1_ep>; +- clock-lanes = <0>; +- data-lanes = <1 2>; +- clock-noncontinuous; +- link-frequencies = +- /bits/ 64 <450000000>; +- }; +- }; +- }; +- }; +- }; +- +- fragment@1 { +- target = <&csi1>; +- __overlay__ { +- status = "okay"; +- +- port { +- csi1_ep: endpoint { +- remote-endpoint = <&imx477_0>; +- clock-lanes = <0>; +- data-lanes = <1 2>; +- clock-noncontinuous; +- }; +- }; +- }; +- }; +- +- fragment@2 { +- target = <&i2c0if>; +- __overlay__ { +- status = "okay"; +- }; +- }; +- +- fragment@3 { +- target-path="/"; +- __overlay__ { +- imx477_vdig: fixedregulator@0 { +- compatible = "regulator-fixed"; +- regulator-name = "imx477_vdig"; +- regulator-min-microvolt = <1050000>; +- regulator-max-microvolt = <1050000>; +- }; +- imx477_vddl: fixedregulator@1 { +- compatible = "regulator-fixed"; +- regulator-name = "imx477_vddl"; +- regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <1800000>; +- }; +- imx477_clk: camera-clk { +- compatible = "fixed-clock"; +- #clock-cells = <0>; +- clock-frequency = <24000000>; +- }; +- }; +- }; +- +- fragment@4 { +- target = <&i2c0mux>; +- __overlay__ { +- status = "okay"; +- }; +- }; +- +- fragment@5 { +- target = <&cam1_reg>; +- __overlay__ { +- status = "okay"; +- regulator-name = "imx477_vana"; +- startup-delay-us = <300000>; +- regulator-min-microvolt = <2800000>; +- regulator-max-microvolt = <2800000>; +- }; +- }; +- +- __overrides__ { +- rotation = <&imx477>,"rotation:0"; +- }; ++&imx477 { ++ compatible = "sony,imx477"; + }; +diff --git a/arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi b/arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi +new file mode 100644 +index 000000000000..4e444709cc16 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi +@@ -0,0 +1,108 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++// Definitions for IMX477 camera module on VC I2C bus ++ ++/{ ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&i2c_csi_dsi>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ imx477: imx477@1a { ++ reg = <0x1a>; ++ status = "okay"; ++ ++ clocks = <&imx477_clk>; ++ clock-names = "xclk"; ++ ++ VANA-supply = <&cam1_reg>; /* 2.8v */ ++ VDIG-supply = <&imx477_vdig>; /* 1.05v */ ++ VDDL-supply = <&imx477_vddl>; /* 1.8v */ ++ ++ rotation = <180>; ++ ++ port { ++ imx477_0: endpoint { ++ remote-endpoint = <&csi1_ep>; ++ clock-lanes = <0>; ++ data-lanes = <1 2>; ++ clock-noncontinuous; ++ link-frequencies = ++ /bits/ 64 <450000000>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&csi1>; ++ __overlay__ { ++ status = "okay"; ++ ++ port { ++ csi1_ep: endpoint { ++ remote-endpoint = <&imx477_0>; ++ clock-lanes = <0>; ++ data-lanes = <1 2>; ++ clock-noncontinuous; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c0if>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@3 { ++ target-path="/"; ++ __overlay__ { ++ imx477_vdig: fixedregulator@0 { ++ compatible = "regulator-fixed"; ++ regulator-name = "imx477_vdig"; ++ regulator-min-microvolt = <1050000>; ++ regulator-max-microvolt = <1050000>; ++ }; ++ imx477_vddl: fixedregulator@1 { ++ compatible = "regulator-fixed"; ++ regulator-name = "imx477_vddl"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ }; ++ imx477_clk: camera-clk { ++ compatible = "fixed-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <24000000>; ++ }; ++ }; ++ }; ++ ++ fragment@4 { ++ target = <&i2c0mux>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@5 { ++ target = <&cam1_reg>; ++ __overlay__ { ++ status = "okay"; ++ regulator-name = "imx477_vana"; ++ startup-delay-us = <300000>; ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ }; ++ }; ++ ++ __overrides__ { ++ rotation = <&imx477>,"rotation:0"; ++ }; ++}; +-- +2.18.4 + + +From 1868c72d8b068107a17bb3ef7a649df280286855 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Tue, 29 Jun 2021 14:43:01 +0100 +Subject: [PATCH 741/741] media: i2c: imx477: Extend driver to support imx378 + sensor + +The imx378 sensor is almost identical to the imx477 and can be +supported as a "compatible" sensor with just a few extra register +writes. + +Signed-off-by: David Plowman +--- + drivers/media/i2c/Kconfig | 2 +- + drivers/media/i2c/imx477.c | 68 +++++++++++++++++++++++++++++++++----- + 2 files changed, 60 insertions(+), 10 deletions(-) + +diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig +index a196843144f2..6ce7fd0c4cc2 100644 +--- a/drivers/media/i2c/Kconfig ++++ b/drivers/media/i2c/Kconfig +@@ -807,7 +807,7 @@ config VIDEO_IMX477 + depends on MEDIA_CAMERA_SUPPORT + help + This is a Video4Linux2 sensor driver for the Sony +- IMX477 camera. ++ IMX477 camera. Also supports the Sony IMX378. + + To compile this driver as a module, choose M here: the + module will be called imx477. +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index b06add219cb4..521953e71686 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -26,6 +27,7 @@ + /* Chip ID */ + #define IMX477_REG_CHIP_ID 0x0016 + #define IMX477_CHIP_ID 0x0477 ++#define IMX378_CHIP_ID 0x0378 + + #define IMX477_REG_MODE_SELECT 0x0100 + #define IMX477_MODE_STANDBY 0x00 +@@ -1069,6 +1071,11 @@ static const char * const imx477_supply_name[] = { + #define IMX477_XCLR_MIN_DELAY_US 8000 + #define IMX477_XCLR_DELAY_RANGE_US 1000 + ++struct imx477_compatible_data { ++ unsigned int chip_id; ++ struct imx477_reg_list extra_regs; ++}; ++ + struct imx477 { + struct v4l2_subdev sd; + struct media_pad pad[NUM_PADS]; +@@ -1107,6 +1114,9 @@ struct imx477 { + + /* Current long exposure factor in use. Set through V4L2_CID_VBLANK */ + unsigned int long_exp_shift; ++ ++ /* Any extra information related to different compatible sensors */ ++ const struct imx477_compatible_data *compatible_data; + }; + + static inline struct imx477 *to_imx477(struct v4l2_subdev *_sd) +@@ -1673,11 +1683,18 @@ static int imx477_start_streaming(struct imx477 *imx477) + { + struct i2c_client *client = v4l2_get_subdevdata(&imx477->sd); + const struct imx477_reg_list *reg_list; ++ const struct imx477_reg_list *extra_regs; + int ret; + + if (!imx477->common_regs_written) { + ret = imx477_write_regs(imx477, mode_common_regs, + ARRAY_SIZE(mode_common_regs)); ++ if (!ret) { ++ extra_regs = &imx477->compatible_data->extra_regs; ++ ret = imx477_write_regs(imx477, extra_regs->regs, ++ extra_regs->num_of_regs); ++ } ++ + if (ret) { + dev_err(&client->dev, "%s failed to set common settings\n", + __func__); +@@ -1863,7 +1880,7 @@ static int imx477_get_regulators(struct imx477 *imx477) + } + + /* Verify chip ID */ +-static int imx477_identify_module(struct imx477 *imx477) ++static int imx477_identify_module(struct imx477 *imx477, u32 expected_id) + { + struct i2c_client *client = v4l2_get_subdevdata(&imx477->sd); + int ret; +@@ -1873,16 +1890,18 @@ static int imx477_identify_module(struct imx477 *imx477) + IMX477_REG_VALUE_16BIT, &val); + if (ret) { + dev_err(&client->dev, "failed to read chip id %x, with error %d\n", +- IMX477_CHIP_ID, ret); ++ expected_id, ret); + return ret; + } + +- if (val != IMX477_CHIP_ID) { ++ if (val != expected_id) { + dev_err(&client->dev, "chip id mismatch: %x!=%x\n", +- IMX477_CHIP_ID, val); ++ expected_id, val); + return -EIO; + } + ++ dev_info(&client->dev, "Device found is imx%x\n", val); ++ + return 0; + } + +@@ -2078,10 +2097,39 @@ static int imx477_check_hwcfg(struct device *dev) + return ret; + } + ++static const struct imx477_compatible_data imx477_compatible = { ++ .chip_id = IMX477_CHIP_ID, ++ .extra_regs = { ++ .num_of_regs = 0, ++ .regs = NULL ++ } ++}; ++ ++static const struct imx477_reg imx378_regs[] = { ++ {0x3e35, 0x01}, ++ {0x4421, 0x08}, ++ {0x3ff9, 0x00}, ++}; ++ ++static const struct imx477_compatible_data imx378_compatible = { ++ .chip_id = IMX378_CHIP_ID, ++ .extra_regs = { ++ .num_of_regs = ARRAY_SIZE(imx378_regs), ++ .regs = imx378_regs ++ } ++}; ++ ++static const struct of_device_id imx477_dt_ids[] = { ++ { .compatible = "sony,imx477", .data = &imx477_compatible }, ++ { .compatible = "sony,imx378", .data = &imx378_compatible }, ++ { /* sentinel */ } ++}; ++ + static int imx477_probe(struct i2c_client *client) + { + struct device *dev = &client->dev; + struct imx477 *imx477; ++ const struct of_device_id *match; + int ret; + + imx477 = devm_kzalloc(&client->dev, sizeof(*imx477), GFP_KERNEL); +@@ -2090,6 +2138,12 @@ static int imx477_probe(struct i2c_client *client) + + v4l2_i2c_subdev_init(&imx477->sd, client, &imx477_subdev_ops); + ++ match = of_match_device(imx477_dt_ids, dev); ++ if (!match) ++ return -ENODEV; ++ imx477->compatible_data = ++ (const struct imx477_compatible_data *)match->data; ++ + /* Check the hardware configuration in device tree */ + if (imx477_check_hwcfg(dev)) + return -EINVAL; +@@ -2126,7 +2180,7 @@ static int imx477_probe(struct i2c_client *client) + if (ret) + return ret; + +- ret = imx477_identify_module(imx477); ++ ret = imx477_identify_module(imx477, imx477->compatible_data->chip_id); + if (ret) + goto error_power_off; + +@@ -2198,10 +2252,6 @@ static int imx477_remove(struct i2c_client *client) + return 0; + } + +-static const struct of_device_id imx477_dt_ids[] = { +- { .compatible = "sony,imx477" }, +- { /* sentinel */ } +-}; + MODULE_DEVICE_TABLE(of, imx477_dt_ids); + + static const struct dev_pm_ops imx477_pm_ops = { +-- +2.18.4 + diff --git a/SPECS/raspberrypi2.spec b/SPECS/raspberrypi2.spec index 8f66564..9773aaa 100644 --- a/SPECS/raspberrypi2.spec +++ b/SPECS/raspberrypi2.spec @@ -1,5 +1,5 @@ -%global commit_firmware_long c5b3d8e5f432058bfdb8a781393899abadcff50e -%global commit_linux_long 4bdb6aa38eb10f86c33550f7802f9754fcfa435f +%global commit_firmware_long 19272ccd69049aaf42c78a235a0bf37dbabd5ea7 +%global commit_linux_long 5a11bfe181012880ca5c0d76ed641c30116e47e1 ExclusiveArch: aarch64 armv7hl @@ -32,7 +32,7 @@ ExclusiveArch: aarch64 armv7hl %define extra_version 1 %define kversion 5.10 -%define kfullversion %{kversion}.43 +%define kfullversion %{kversion}.47 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 +* Wed Jun 30 2021 Pablo Greco - 5.10.47 +- Update to version v5.10.43 + * Tue Jun 15 2021 Pablo Greco - 5.10.43 - Update to version v5.10.43