From 01422734e820f1c6dda0b8581573dad3aeb4ab31 Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: Apr 21 2021 20:58:34 +0000 Subject: Update to 5.10.29 --- diff --git a/.raspberrypi2.metadata b/.raspberrypi2.metadata index 2eb1190..c2ef403 100644 --- a/.raspberrypi2.metadata +++ b/.raspberrypi2.metadata @@ -1,3 +1,3 @@ be0b909f1fbb760cc2d5cf146e1da3b2af0cf899 SOURCES/linux-5.10.tar.xz -5a9ea09069d43d227f521a7ed4162097d82d9487 SOURCES/7d91570f20378afc9414107dccdad70705a8a342.tar.gz -887aa46cfb2b9df912cdc93ebedc0c77918624a1 SOURCES/patch-5.10.14.xz +26f6b0b56ad9838500c214f9b07b44e0532318a0 SOURCES/8c7c52466505df5d420a5cb9131ec29205bcecf8.tar.gz +1acdb51806360bd87c9b6fd7681ee963e656ac5d SOURCES/patch-5.10.29.xz diff --git a/SOURCES/rpi-5.10.x.patch b/SOURCES/rpi-5.10.x.patch index d18f848..7301be5 100644 --- a/SOURCES/rpi-5.10.x.patch +++ b/SOURCES/rpi-5.10.x.patch @@ -1,7 +1,7 @@ -From ad3beb7a396fc1250c10da70800846d7a08c5e1e Mon Sep 17 00:00:00 2001 +From e662aee7a26a9a6bb06315ffb2277e9f69eb9a5f Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 001/533] arm: partially revert +Subject: [PATCH 001/580] 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 863d53f37b1faf60d4c2e4e5d847cb7595fcb816 Mon Sep 17 00:00:00 2001 +From 019580d4b7b13df975f7f36a9b3f8a836d7b0a53 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Oct 2018 14:45:45 +0000 -Subject: [PATCH 002/533] Revert "rtc: pcf8523: properly handle oscillator stop +Subject: [PATCH 002/580] Revert "rtc: pcf8523: properly handle oscillator stop bit" This reverts commit ede44c908d44b166a5b6bd7caacd105c2ff5a70f. @@ -171,10 +171,10 @@ index 57d351dfe272..0aa1e8f9ee75 100644 2.18.4 -From 8a5cb80ad3b3168a34e5001f73f21ff47b55856e Mon Sep 17 00:00:00 2001 +From 4ea4ad25e1bc1a11c20df944438ecb9048f5e18c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 15 Mar 2019 21:11:10 +0000 -Subject: [PATCH 003/533] Revert "staging: bcm2835-audio: Drop DT dependency" +Subject: [PATCH 003/580] Revert "staging: bcm2835-audio: Drop DT dependency" This reverts commit b7491a9fca2dc2535b9dc922550a37c5baae9d3d. --- @@ -182,7 +182,7 @@ This reverts commit b7491a9fca2dc2535b9dc922550a37c5baae9d3d. 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -index cf5f80f5ca6b..86b921030db7 100644 +index c250fbef2fa3..b42917c25050 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c @@ -6,13 +6,13 @@ @@ -273,10 +273,10 @@ index cf5f80f5ca6b..86b921030db7 100644 2.18.4 -From 307e5fe3e6c4c895b4c95bd5e1a0a9cbc57bffdb Mon Sep 17 00:00:00 2001 +From 6d7b21512230660d434335039321e7f054453ecc Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 13:41:10 +0100 -Subject: [PATCH 004/533] Revert "spi: spidev: Fix CS polarity if GPIO +Subject: [PATCH 004/580] 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 89f3f8bfb14ae6d1ead6cacd1bbc100a137f4ba1 Mon Sep 17 00:00:00 2001 +From 6935e82812dea247d0bcf914f4367b31958f4fd8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Nov 2020 11:49:53 +0000 -Subject: [PATCH 005/533] Revert "mailbox: avoid timer start from callback" +Subject: [PATCH 005/580] Revert "mailbox: avoid timer start from callback" This reverts commit c7dacf5b0f32957b24ef29df1207dc2cd8307743. @@ -375,10 +375,10 @@ index 3e7d4b20ab34..0b821a5b2db8 100644 2.18.4 -From bb03c98c54afc64e6c3c3ae9f9b334e9feec19c8 Mon Sep 17 00:00:00 2001 +From ae72f72a895399f81ee0dc084ad80e7654fcc14c Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 006/533] smsx95xx: fix crimes against truesize +Subject: [PATCH 006/580] 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 0df840a2f5e5bf766bc4159797c29818b965ce62 Mon Sep 17 00:00:00 2001 +From 33ee9fb06c15c705ad43c67e280e14b047775f40 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 007/533] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 007/580] 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 a78bbb9f90a5dd64319b071b3c4900842822d58e Mon Sep 17 00:00:00 2001 +From ab9884058776f20f471c068d499f32ee06144fd5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 008/533] Allow mac address to be set in smsc95xx +Subject: [PATCH 008/580] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix --- @@ -579,10 +579,10 @@ index d16620941d76..09d4c1963b2c 100644 2.18.4 -From c2eb82849eb42e7de9c397f65b91228da0d28134 Mon Sep 17 00:00:00 2001 +From 3119eb5df2e2c9d179e9388c73d73c2e189d0aa5 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 009/533] Protect __release_resource against resources without +Subject: [PATCH 009/580] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -613,10 +613,10 @@ index 3ae2f56cc79d..2f1a85c23e8b 100644 2.18.4 -From 43816db28ac13b1bca0442aff7df036ba69a0e47 Mon Sep 17 00:00:00 2001 +From cc14ca3a6db5a05ff0a98682feed02f9e3a5c21e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 010/533] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 010/580] 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 b7c2cfe0ad0237e1804b9926457b92e5842decad Mon Sep 17 00:00:00 2001 +From 7d2319b3611c884fe2ec8ea9126d6e8ffc7a405b 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/533] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 011/580] 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 1762ed0260320c46d2b358124491ebd74e111f3d Mon Sep 17 00:00:00 2001 +From 8f59949c826fdcacd430905dfcdeac09eaa20849 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/533] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 012/580] 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 298688f13b75be38f7cca3dbffd5d28806ae0929 Mon Sep 17 00:00:00 2001 +From 406e85e6a7eecc6d158af13352d95ffc1a05b84e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH 013/533] spi: spidev: Completely disable the spidev warning +Subject: [PATCH 013/580] 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 bbe3d11b2fe2473874250395def5c57cd1e025ed Mon Sep 17 00:00:00 2001 +From 66151711d5f3229812ad0bb99d39ef96a898ae5a 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/533] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 014/580] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1022,10 +1022,10 @@ index 630dfbb01a40..bf7ba96a39f9 100644 2.18.4 -From e2aabf6587951b4cbf72652ee3b79e4f76b0bc27 Mon Sep 17 00:00:00 2001 +From 67b4cefe6c31fb65460f92b84715ff3d37c25c07 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 25 Jan 2016 17:25:12 +0000 -Subject: [PATCH 015/533] firmware: Updated mailbox header +Subject: [PATCH 015/580] firmware: Updated mailbox header --- include/soc/bcm2835/raspberrypi-firmware.h | 3 +++ @@ -1055,10 +1055,10 @@ index cc9cdbc66403..212cceffcc5c 100644 2.18.4 -From d7e8354bb60c482b461ab795f35a17742444444b Mon Sep 17 00:00:00 2001 +From 1edacd81bb184e011017ad73f35d715418569daf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 016/533] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 016/580] 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 f01323bc58169dcc66f210817695ed19645e8c35 Mon Sep 17 00:00:00 2001 +From 5b703c62726770e18f885289d64f1c1b7a578473 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/533] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 017/580] 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 3cfda2e0e7b8e541dbe7d51c3a767607c8d93ac2 Mon Sep 17 00:00:00 2001 +From c35af440912a048b9aec5395ba8a0f1aaec26769 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 018/533] reboot: Use power off rather than busy spinning when +Subject: [PATCH 018/580] reboot: Use power off rather than busy spinning when halt is requested --- @@ -1218,10 +1218,10 @@ index 0ce388f15422..63373adab475 100644 2.18.4 -From aa5c256f6b829a6083da616535f2470dc466150c Mon Sep 17 00:00:00 2001 +From de6dc2c2a64ed14f4b80012c58499c0ec410a4fe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 019/533] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 019/580] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -1243,10 +1243,10 @@ index 24f92a6e882a..a6a705ec30c7 100644 2.18.4 -From 61fb34f29a15dd828873ab5d1bd8e0ae185bf64d Mon Sep 17 00:00:00 2001 +From d710dfa138e164b96663002dfb5b3a1bb037c2fb Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 020/533] Register the clocks early during the boot process, so +Subject: [PATCH 020/580] 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 7c4894ac5812f023dc7a0bee095923ffd8c251cb Mon Sep 17 00:00:00 2001 +From c5aaa773c9968e16b835a59a61ee157c709c633f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 021/533] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 021/580] 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 042f218eaee9d7f7e2e285f36c87ca314fff3876 Mon Sep 17 00:00:00 2001 +From 98cd27396e6c52399dad456b50e62174520f8027 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 022/533] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 022/580] 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 dcd57038d494c8870e685d2e715c0f00950a6e9d Mon Sep 17 00:00:00 2001 +From d4a44ed3561958797e9f40fdd9cc439c9d328302 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 023/533] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 023/580] 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 5c60a9f248fec38c51afb4a42dfd6bba500cad16 Mon Sep 17 00:00:00 2001 +From fbdff9ba62705f530611f8c9a7034ac0630cb7bb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 024/533] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 024/580] 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 1dac0908ab6acf51707e5eedd5adc3ac7ebdd93f Mon Sep 17 00:00:00 2001 +From 9b644928209c94a184f48028100d26718d3caca0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 025/533] sound: Demote deferral errors to INFO level +Subject: [PATCH 025/580] 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,10 +1622,10 @@ 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 05a085f6dc7c..392e6c90829e 100644 +index bf65cba232e6..a6c553de5e72 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c -@@ -1015,7 +1015,7 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card, +@@ -1016,7 +1016,7 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card, for_each_link_cpus(dai_link, i, cpu) { asoc_rtd_to_cpu(rtd, i) = snd_soc_find_dai(cpu); if (!asoc_rtd_to_cpu(rtd, i)) { @@ -1634,7 +1634,7 @@ index 05a085f6dc7c..392e6c90829e 100644 cpu->dai_name); goto _err_defer; } -@@ -1026,7 +1026,7 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card, +@@ -1027,7 +1027,7 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card, for_each_link_codecs(dai_link, i, codec) { asoc_rtd_to_codec(rtd, i) = snd_soc_find_dai(codec); if (!asoc_rtd_to_codec(rtd, i)) { @@ -1647,10 +1647,10 @@ index 05a085f6dc7c..392e6c90829e 100644 2.18.4 -From 0853285f713e3f0504d968c62ddf1f3c82881d5b Mon Sep 17 00:00:00 2001 +From 3d2bf12175b4e4738df4ec269d36929fce9106f6 Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 026/533] Update vfpmodule.c +Subject: [PATCH 026/580] 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 9c828c7e1107dcf106640ef7e6d8d9b68741333e Mon Sep 17 00:00:00 2001 +From b7fc2f912c9bdb401efddf02ddd295e9d71d65ec 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/533] i2c: bcm2835: Add debug support +Subject: [PATCH 027/580] 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 4a3b034d04ac6d434128fd9f340a97571f1c534b Mon Sep 17 00:00:00 2001 +From 515485088de1027897700a2b3dad710ee4d33be0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 18 Dec 2014 16:07:15 -0800 -Subject: [PATCH 028/533] mm: Remove the PFN busy warning +Subject: [PATCH 028/580] mm: Remove the PFN busy warning See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is expected sometimes when using CMA. However, that commit still spams @@ -2000,10 +2000,10 @@ Signed-off-by: Eric Anholt 1 file changed, 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 88639706ae17..623c47d1e26d 100644 +index 7ffa706e5c30..72014a592036 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -8580,8 +8580,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, +@@ -8573,8 +8573,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, /* Make sure the range is really isolated. */ if (test_pages_isolated(outer_start, end, 0)) { @@ -2016,10 +2016,10 @@ index 88639706ae17..623c47d1e26d 100644 2.18.4 -From d82a55402c9d5a10ff62de00f188f375beed2769 Mon Sep 17 00:00:00 2001 +From 40afe668ddf6d78be858cb7e994204f4b6fd1060 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Jan 2018 16:52:45 +0000 -Subject: [PATCH 029/533] irqchip: irq-bcm2836: Remove regmap and syscon use +Subject: [PATCH 029/580] 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 c1ec906d059393d566aec8190538abab71231693 Mon Sep 17 00:00:00 2001 +From 1a8ccaf8921706f5767eaf19dc62a624a04e51d7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Oct 2017 15:04:29 +0100 -Subject: [PATCH 030/533] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 030/580] 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 f9b66e9e9d2f09047a096635698584e047f83193 Mon Sep 17 00:00:00 2001 +From 7175daf6d472a48870f5e547e51ad48b9da602c0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 031/533] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 031/580] 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 7cc5ff4e4d01a4af0dfe0ba52fa95ba140e43125 Mon Sep 17 00:00:00 2001 +From e310e6b4862114a7cae4085f49be9ae23cd602f8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 032/533] amba_pl011: Round input clock up +Subject: [PATCH 032/580] 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 5f34e5840d268b9b8c77997661721b9155528255 Mon Sep 17 00:00:00 2001 +From 2730324f694df21abaaf5507ee459c30cb25080a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 033/533] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 033/580] 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 33d2be390316bda3f6d198800853fa81238bc6a2 Mon Sep 17 00:00:00 2001 +From 0852e7ba7e977b65482417ba7fee19ca7fb02478 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 034/533] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 034/580] 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 dcd8df52dc62059e484108b6150380976e730d19 Mon Sep 17 00:00:00 2001 +From 1b12097059405bd0b912ac8117f021e59fc3b4c6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jul 2019 13:13:39 +0100 -Subject: [PATCH 035/533] tty: amba-pl011: Make TX optimisation conditional +Subject: [PATCH 035/580] 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 5b3aeefb346bfa81976287739b6d59f32c3c9e8d Mon Sep 17 00:00:00 2001 +From 02bf3168073aaba75dc1c0d46a4dc2d3feb55f83 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Jan 2020 11:38:28 +0000 -Subject: [PATCH 036/533] tty: amba-pl011: Add un/throttle support +Subject: [PATCH 036/580] 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 b8e60be690954dc57901f73adf7d863aeac58ad8 Mon Sep 17 00:00:00 2001 +From b4ceb76d7c6d22327b49945af2cf48bf1f7654af Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jan 2020 09:35:19 +0000 -Subject: [PATCH 037/533] tty: amba-pl011: Avoid rare write-when-full error +Subject: [PATCH 037/580] 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 f34a78205bf1b3c93fa1c729db1f95eec187be21 Mon Sep 17 00:00:00 2001 +From 9f1f42b3e92d16b53e2aee250fc735c1f7623b7c Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 038/533] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 038/580] 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 05cfe32c2a806b999d0e1484b013022c1ef848c9 Mon Sep 17 00:00:00 2001 +From 5db45f14288772192f5589a7c18785fcc4c6a37f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 039/533] Main bcm2708/bcm2709 linux port +Subject: [PATCH 039/580] 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 0dcdc0eebe515f570001c2ea3536edc5390b22cb Mon Sep 17 00:00:00 2001 +From e33de37032f4cf764569559731c6f816ead80cb3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 040/533] Add dwc_otg driver +Subject: [PATCH 040/580] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -64627,10 +64627,10 @@ index 000000000000..cdc9963176e5 2.18.4 -From eaef7069d263d3e6eaf9093fbd2c19d28b05a3cb Mon Sep 17 00:00:00 2001 +From a054a38d02521a256dfc12dcb5dea59d80a82d20 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 041/533] bcm2708 framebuffer driver +Subject: [PATCH 041/580] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -64733,7 +64733,7 @@ Signed-off-by: Dave Stevenson create mode 100644 drivers/video/fbdev/bcm2708_fb.c diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig -index cfb7f5612ef0..45bc49e88d86 100644 +index 4f02db65dede..7e862560a928 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -219,6 +219,20 @@ config FB_TILEBLITTING @@ -68201,10 +68201,10 @@ index 212cceffcc5c..2f5509d53fc3 100644 2.18.4 -From 0613e309cd6ec50e49647bc35b52d0e21622be15 Mon Sep 17 00:00:00 2001 +From 5ff3614d6866b43e4516f1fa81f2dda3364debd4 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 14 Mar 2019 13:27:54 +0000 -Subject: [PATCH 042/533] Pulled in the multi frame buffer support from the Pi3 +Subject: [PATCH 042/580] Pulled in the multi frame buffer support from the Pi3 repo --- @@ -69036,10 +69036,10 @@ index 2f5509d53fc3..16253b6875c9 100644 2.18.4 -From 78ed311e50e9f30d9826502082eb968528716f31 Mon Sep 17 00:00:00 2001 +From e4ee80fbc52f3d6df47e37e8cf310f842af28f5f Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 043/533] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 043/580] 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 7cfc6fb134c3b0346a72bfa773a75e309dc1c910 Mon Sep 17 00:00:00 2001 +From c078f59f2bc2cf14243bc5685f0b9d1dcf147367 Mon Sep 17 00:00:00 2001 From: Harm Hanemaaijer Date: Thu, 20 Jun 2013 20:21:39 +0200 -Subject: [PATCH 044/533] Speed up console framebuffer imageblit function +Subject: [PATCH 044/580] 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 3af6df0812cc283383627b5e102ade1852d15a4e Mon Sep 17 00:00:00 2001 +From bd8f5afb3d40e1d52d4ffc75c4d0e7751e573e20 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 045/533] dmaengine: Add support for BCM2708 +Subject: [PATCH 045/580] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70252,10 +70252,10 @@ index 000000000000..6ca874d332a8 2.18.4 -From 8321f0c5e7b54d820f0d720aafac83cbffd9858c Mon Sep 17 00:00:00 2001 +From 683c6bba8ad02b2779a159918e7fa3e71a20bdcc Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 046/533] MMC: added alternative MMC driver +Subject: [PATCH 046/580] 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 86ae3d4b14de3efa5e8a026e908baebe676d6a4c Mon Sep 17 00:00:00 2001 +From d18b73711fdf140856aa5dd1c5535f81fc5a866a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 047/533] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 047/580] 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 ad4672eac8575c8d520aa5886ab512db3e49db4a Mon Sep 17 00:00:00 2001 +From 09041b8ae8e62d9263a7f2ddd2200cbab8755113 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 048/533] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 048/580] 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 868c3df654526714ee6cdae36ea5ff7c4fde29ea Mon Sep 17 00:00:00 2001 +From ac9cb9505726b04b8cff351a2f525492a8b45f44 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 049/533] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 049/580] 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 6f69a8ab08837dd4f40108fa662577c8c87df19d Mon Sep 17 00:00:00 2001 +From ff04c9b23e6bf7df3a8dc52886a3e6ae9b724ba6 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 050/533] Add SMI driver +Subject: [PATCH 050/580] Add SMI driver Signed-off-by: Luke Wren @@ -77447,10 +77447,10 @@ index 000000000000..ee3a75edfc03 2.18.4 -From e86373757c8632477caeb71b6db1851aed485f77 Mon Sep 17 00:00:00 2001 +From 4f2d23d33dcc500f596ecb0624974da0ae62a744 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 051/533] Add Chris Boot's i2c driver +Subject: [PATCH 051/580] 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 f8e9d91ce2519256b884be942bd7f6cdc9b73522 Mon Sep 17 00:00:00 2001 +From 915140bcc88049f7d9f581be0eab929629c6ca06 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/533] char: broadcom: Add vcio module +Subject: [PATCH 052/580] 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 cbfccea48c76ca2bb5fca94bd1f5031b6ef0223c Mon Sep 17 00:00:00 2001 +From cd60378b63c58a8a19e62de2cf5df78a4eb0ba1f 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/533] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 053/580] 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 c4ce7533677d0ab7695efcb0246fb00ee8b53dfd Mon Sep 17 00:00:00 2001 +From 5a7aa204bdc386c237c8837650b57399459c4d03 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 054/533] BCM2708: Add core Device Tree support +Subject: [PATCH 054/580] 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 8cefd45ef5cb74d7b613e20434cd0c6dbd98ca62 Mon Sep 17 00:00:00 2001 +From 4c6a3538653f02017943ace0c87423c49d7f091a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 055/533] BCM270x_DT: Add pwr_led, and the required "input" +Subject: [PATCH 055/580] 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 d7835e2db892c9e7519dcfcdf55443353b487ec6 Mon Sep 17 00:00:00 2001 +From 004a02b55e7fbc01ee6a53e994212c9d7410fb61 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:54:08 +0100 -Subject: [PATCH 056/533] Added Device IDs for August DVB-T 205 +Subject: [PATCH 056/580] 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 5469d8b1872a2a7df728d72284cbe6a87bd28314 Mon Sep 17 00:00:00 2001 +From 41aafc017017128c4890c97e3d9d5fc915858c1d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 057/533] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 057/580] 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 151650c52f9ca483cd0f98d216f0d0ca3d37a4c2 Mon Sep 17 00:00:00 2001 +From 3c5e14e35cb96701f475134b58753253eceea30a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 058/533] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 058/580] 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 8019410f8b409e8f5e63d05f09e749c0d5bb27ba Mon Sep 17 00:00:00 2001 +From 1b376284a66bff9078c8047510079d6ef25f3483 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 059/533] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 059/580] mfd: Add Raspberry Pi Sense HAT core driver mfd: Add rpi_sense_core of compatible string --- @@ -107250,7 +107250,7 @@ index 000000000000..6cfd63e5e8b8 +MODULE_LICENSE("GPL"); + diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig -index 45bc49e88d86..01cdc589c27d 100644 +index 7e862560a928..d3f87a523f6e 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -2250,6 +2250,19 @@ config FB_SM712 @@ -107720,10 +107720,10 @@ index 000000000000..56196dc2af10 2.18.4 -From 77aeb2e4bf36ac1f7ee956cc7f3d185335962ea0 Mon Sep 17 00:00:00 2001 +From 76584df79cecc31fd807f7bcc71350c96ae1ba80 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 060/533] Add support for all the downstream rpi sound card +Subject: [PATCH 060/580] Add support for all the downstream rpi sound card drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -122942,10 +122942,10 @@ index 000000000000..8f019e048987 + +#endif /* _TAS5713_H */ diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index 392e6c90829e..550be21f6f84 100644 +index a6c553de5e72..3e9b1fb29826 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c -@@ -1428,7 +1428,15 @@ int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, +@@ -1429,7 +1429,15 @@ int snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, int ret; for_each_rtd_codec_dais(rtd, i, codec_dai) { @@ -122966,10 +122966,10 @@ index 392e6c90829e..550be21f6f84 100644 2.18.4 -From 080833ec537a6c1cfe9d4bbb4caae812204ca97d Mon Sep 17 00:00:00 2001 +From bd9ccc85defaeb07eb49e2a1be3a3b26f5da3972 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 16 Oct 2020 15:17:07 +0200 -Subject: [PATCH 061/533] Fixes a problem when module probes before i2c module +Subject: [PATCH 061/580] 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 ee67602c2a70051c226d7109e05f467e64df94d0 Mon Sep 17 00:00:00 2001 +From 008f75f6569f22675b2f19a7d72e24d41d34b179 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 062/533] rpi_display: add backlight driver and overlay +Subject: [PATCH 062/580] 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 5ff27735895dea45f874e3a0d1a42aef2c665fb5 Mon Sep 17 00:00:00 2001 +From 4152c98eaaca69d058cfc72044cf6ab8b60ec828 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 063/533] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 063/580] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -123216,7 +123216,7 @@ request that the VPU toggles LEDs. create mode 100644 drivers/gpio/gpio-bcm-virt.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index f20ac3d69424..eb6e824a1965 100644 +index 14751c7ccd1f..852a8c71680c 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -193,6 +193,12 @@ config GPIO_BCM_XGS_IPROC @@ -123468,10 +123468,10 @@ index 000000000000..49e28ad9760e 2.18.4 -From 83b447eb0d91161f837c1465a3064dc4f5c73a29 Mon Sep 17 00:00:00 2001 +From 28ed6cfb34d9dad2b2d69eab306ec3014252e6f1 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 064/533] OF: DT-Overlay configfs interface +Subject: [PATCH 064/580] 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 838cc2df461165f076851eeb963034f9b099dd5d Mon Sep 17 00:00:00 2001 +From e149a40e21f023fb988cccc648033dfc2f75d40f Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 065/533] brcm: adds support for BCM43341 wifi +Subject: [PATCH 065/580] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -123971,7 +123971,7 @@ Signed-off-by: Phil Elwell 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index 0ee421f30aa2..28dba5d86ee6 100644 +index 23e6422c2251..76eac1606b8c 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -2937,7 +2937,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, @@ -123983,7 +123983,7 @@ index 0ee421f30aa2..28dba5d86ee6 100644 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, pm); if (err) { -@@ -7350,12 +7350,18 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], +@@ -7353,12 +7353,18 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], struct brcmfmac_pd_cc *country_codes; struct brcmfmac_pd_cc_entry *cc; s32 found_index; @@ -124004,7 +124004,7 @@ index 0ee421f30aa2..28dba5d86ee6 100644 } if ((alpha2[0] == ccreq->country_abbrev[0]) && -@@ -7379,10 +7385,14 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], +@@ -7382,10 +7388,14 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2], brcmf_dbg(TRACE, "No country code match found\n"); return -EINVAL; } @@ -124060,10 +124060,10 @@ index 59c2b2b6027d..2b642886430d 100644 2.18.4 -From cb25e8037150811bc90aa26c2b554e66717f2106 Mon Sep 17 00:00:00 2001 +From 590aafd299d9c30677890dd30676f89ade61c74e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 066/533] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 066/580] 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. @@ -124072,7 +124072,7 @@ other with conf_req and conf_rsp messages, in a demented game of tag. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c -index 78d635f1d156..1981a5a73fd2 100644 +index 996729e78105..6d179e455721 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -343,7 +343,8 @@ static void h5_handle_internal_rx(struct hci_uart *hu) @@ -124089,10 +124089,10 @@ index 78d635f1d156..1981a5a73fd2 100644 2.18.4 -From 7ef59c6b94d49e467a9cc3613b4f68a25a4ed3bb Mon Sep 17 00:00:00 2001 +From c64858e29ab0d2ba81b287a8cc3c307ec1ccabcc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 067/533] config: Add default configs +Subject: [PATCH 067/580] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1473 +++++++++++++++++++++++++ @@ -131467,10 +131467,10 @@ index 000000000000..d542d2522076 2.18.4 -From ac26e81ead8a4a1dc091309b40cbee559cba3b72 Mon Sep 17 00:00:00 2001 +From 3063e09c0068b1bdb5f6079f68179247005cf3ad Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 068/533] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 068/580] 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 4906432f9feed544ad0029f154d254877d046b9e Mon Sep 17 00:00:00 2001 +From 4986c25425c712bf6ce6a0f36bd1c6823d65336e Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 069/533] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 069/580] ARM64: Force hardware emulation of deprecated instructions. --- @@ -131581,10 +131581,10 @@ index 7364de008bab..a11467132346 100644 2.18.4 -From e12f123278cc7fb6f29b097954f6fdb1aac7153d Mon Sep 17 00:00:00 2001 +From 3335aca5d05d791eb002ab8e1d577260d21b0e24 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 070/533] cache: export clean and invalidate +Subject: [PATCH 070/580] cache: export clean and invalidate hack: cache: Fix linker error --- @@ -131642,10 +131642,10 @@ index dc8f152f3556..536df5db66e4 100644 2.18.4 -From 88fc9a273a711667552f6b9cff3983c22a49bc7c Mon Sep 17 00:00:00 2001 +From 3975ca71b76827e0257627f8cf04585419fb3ca0 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 14 Nov 2017 15:13:15 +0000 -Subject: [PATCH 071/533] AXI performance monitor driver (#2222) +Subject: [PATCH 071/580] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -132344,10 +132344,10 @@ index 000000000000..5ae2bdaa88b4 2.18.4 -From d8dd670083619ecf2763d254e6137941962d3c00 Mon Sep 17 00:00:00 2001 +From 7fc14aad4e6356d9f6b5a43a26596bd0a142e428 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH 072/533] cgroup: Disable cgroup "memory" by default +Subject: [PATCH 072/580] 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: @@ -132362,10 +132362,10 @@ Signed-off-by: Phil Elwell 1 file changed, 30 insertions(+) diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c -index e41c21819ba0..09d145eb6f4d 100644 +index 5d1fdf7c3ec6..ea5a1ea68dd8 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c -@@ -5664,6 +5664,8 @@ int __init cgroup_init_early(void) +@@ -5666,6 +5666,8 @@ int __init cgroup_init_early(void) } static u16 cgroup_disable_mask __initdata; @@ -132374,7 +132374,7 @@ index e41c21819ba0..09d145eb6f4d 100644 /** * cgroup_init - cgroup initialization -@@ -5703,6 +5705,12 @@ int __init cgroup_init(void) +@@ -5705,6 +5707,12 @@ int __init cgroup_init(void) mutex_unlock(&cgroup_mutex); @@ -132387,7 +132387,7 @@ index e41c21819ba0..09d145eb6f4d 100644 for_each_subsys(ss, ssid) { if (ss->early_init) { struct cgroup_subsys_state *css = -@@ -6250,6 +6258,28 @@ static int __init cgroup_disable(char *str) +@@ -6252,6 +6260,28 @@ static int __init cgroup_disable(char *str) } __setup("cgroup_disable=", cgroup_disable); @@ -132420,10 +132420,10 @@ index e41c21819ba0..09d145eb6f4d 100644 2.18.4 -From dada4b52189b00e9304fe6b02c51a9d7025620ef Mon Sep 17 00:00:00 2001 +From fff9a62ae7ea418dddb1401cffc2d3099f8c8e69 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/533] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 073/580] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -132489,10 +132489,10 @@ index bfc556f76720..73ec2427fbcf 100644 2.18.4 -From c098a33824415e8a5f3329d8da6ec08bdebdd687 Mon Sep 17 00:00:00 2001 +From ca8889e43aea7bfd1703af3ecffd38d033ad76a3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 16 Jul 2018 14:40:13 +0100 -Subject: [PATCH 074/533] dwc-otg: FIQ: Fix "bad mode in data abort handler" +Subject: [PATCH 074/580] dwc-otg: FIQ: Fix "bad mode in data abort handler" Create a semi-static mapping for the USB registers early in the boot process, before additional kernel threads are started, so all threads @@ -132611,10 +132611,10 @@ index 73ec2427fbcf..9b6c921106b5 100644 2.18.4 -From 9433094c94ed86cb70940c7cf7441cb8ee6bb25b Mon Sep 17 00:00:00 2001 +From ef1a58d5abbb2fa1ebadcf2f6878e735a84c07f1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Dec 2017 09:18:32 +0000 -Subject: [PATCH 075/533] ARM: Activate FIQs to avoid __irq_startup warnings +Subject: [PATCH 075/580] ARM: Activate FIQs to avoid __irq_startup warnings There is a new test in __irq_startup that the IRQ is activated, which hasn't been the case for FIQs since they bypass some of the usual setup. @@ -132653,10 +132653,10 @@ index 98ca3e3fa847..c3fe7d3cf482 100644 2.18.4 -From 77b2ed6dcf650482d240ab43a730647e02ef2d83 Mon Sep 17 00:00:00 2001 +From 4330b9e408cfb399ef53d7b21778a53d0207f907 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 14 Sep 2016 09:16:19 +0100 -Subject: [PATCH 076/533] raspberrypi-firmware: Export the general transaction +Subject: [PATCH 076/580] raspberrypi-firmware: Export the general transaction function. The vc4-firmware-kms module is going to be doing the MBOX FB call. @@ -132691,10 +132691,10 @@ index 5fec4accb24f..abb16e80a36c 100644 2.18.4 -From 9180a9fd4254b50c1b578166790316f24061a527 Mon Sep 17 00:00:00 2001 +From 0c3094bde49d3be37c17dfb6ba8dda9afaaf9cb8 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 20 Feb 2018 10:07:27 +0000 -Subject: [PATCH 077/533] i2c-gpio: Also set bus numbers from reg property +Subject: [PATCH 077/580] i2c-gpio: Also set bus numbers from reg property I2C busses can be assigned specific bus numbers using aliases in Device Tree - string properties where the name is the alias and the @@ -132732,10 +132732,10 @@ index a4a6825c8758..cfbcf3952ddc 100644 2.18.4 -From dbeb62f8110344f2b45e7f0f47a97eb0035eaee0 Mon Sep 17 00:00:00 2001 +From 42d3a263ded69edcd80810f58b2e02d67be24fe4 Mon Sep 17 00:00:00 2001 From: hdoverobinson Date: Tue, 13 Mar 2018 06:58:39 -0400 -Subject: [PATCH 078/533] added capture_clear option to pps-gpio via dtoverlay +Subject: [PATCH 078/580] added capture_clear option to pps-gpio via dtoverlay (#2433) --- @@ -132759,10 +132759,10 @@ index e0de1df2ede0..ee7d8f4e7f2e 100644 2.18.4 -From cfd31e2df53b27d2952a520c56fd6ceb3aa82bf6 Mon Sep 17 00:00:00 2001 +From 36492aeba8ea2d7f9379b3ada18e60906110db66 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Mar 2018 12:01:00 +0000 -Subject: [PATCH 079/533] lan78xx: Read initial EEE status from DT +Subject: [PATCH 079/580] lan78xx: Read initial EEE status from DT Add two new DT properties: * microchip,eee-enabled - a boolean to enable EEE @@ -132805,10 +132805,10 @@ index 306bf917d4ed..8e234a7c84ef 100644 2.18.4 -From c4c972afef6097d7674ed91fcdd156cd0c5e1879 Mon Sep 17 00:00:00 2001 +From 104dfebb228aee8171d62036d86122250933d6bc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 080/533] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 080/580] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -132843,10 +132843,10 @@ index 17a29ee0ac6c..1134d543e5d6 100644 2.18.4 -From d1d87e562c04e9c5ae1c1b0fb9ee48f740680c1b Mon Sep 17 00:00:00 2001 +From 7d7c7b09f787d4c25bc9dacdf72d18371be31e42 Mon Sep 17 00:00:00 2001 From: Nick Bulleid Date: Thu, 10 May 2018 21:57:02 +0100 -Subject: [PATCH 081/533] Add ability to export gpio used by gpio-poweroff +Subject: [PATCH 081/580] Add ability to export gpio used by gpio-poweroff Signed-off-by: Nick Bulleid @@ -132908,10 +132908,10 @@ index e458fa7b8848..3acbe711b792 100644 2.18.4 -From 41db89e312b398a8b8e631e197b7c84f1968dc63 Mon Sep 17 00:00:00 2001 +From d8d6331f8c2035c3c66b7d4a04e0d27ad0d42bc6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 12 May 2018 21:35:43 +0100 -Subject: [PATCH 082/533] firmware/raspberrypi: Notify firmware of a reboot +Subject: [PATCH 082/580] firmware/raspberrypi: Notify firmware of a reboot Register for reboot notifications, sending RPI_FIRMWARE_NOTIFY_REBOOT over the mailbox interface on reception. @@ -132998,10 +132998,10 @@ index abb16e80a36c..05a0ae2a8eb7 100644 2.18.4 -From dbd97258a9a343bd978e61407fd9f9fdfaeef781 Mon Sep 17 00:00:00 2001 +From e575c2e3a75447a60f551fdf3d44d5f02193dc37 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 11:21:04 +0100 -Subject: [PATCH 083/533] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time +Subject: [PATCH 083/580] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time ad83c7cb2f37 ("irqchip/irq-bcm2836: Add support for DT interrupt polarity") changed the way that the BCM2836/7 local interrupts are mapped; instead @@ -133070,10 +133070,10 @@ index 18b7483588c2..0e6c0811dc1e 100644 2.18.4 -From 9c329650de944493a62cd0ed3beaabb096b1c72b Mon Sep 17 00:00:00 2001 +From facfa3c6d9a925efbd50b2e4ab5c5ba69e3588c0 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 15:07:26 +0100 -Subject: [PATCH 084/533] of: configfs: Use of_overlay_fdt_apply API call +Subject: [PATCH 084/580] of: configfs: Use of_overlay_fdt_apply API call The published API to the dynamic overlay application mechanism now takes a Flattened Device Tree blob as input so that it can manage the @@ -133190,10 +133190,10 @@ index 178f0629b0f0..ac04301dabe1 100644 2.18.4 -From 7ebce0a0018aac040413e423a146ea7b9313c08d Mon Sep 17 00:00:00 2001 +From 76cca44e11e076764993d249ca710777cbf9755d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Jun 2018 15:21:10 +0100 -Subject: [PATCH 085/533] net: lan78xx: Disable TCP Segmentation Offload (TSO) +Subject: [PATCH 085/580] net: lan78xx: Disable TCP Segmentation Offload (TSO) TSO seems to be having issues when packets are dropped and the remote end uses Selective Acknowledge (SACK) to denote that @@ -133252,10 +133252,10 @@ index 8e234a7c84ef..681a6b949140 100644 2.18.4 -From 750342217deba2777cfe42e957fcaf723da3a2ed Mon Sep 17 00:00:00 2001 +From f49798a0aa0c8e6aaf587c84550360b776f028d7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Jun 2018 12:20:01 +0100 -Subject: [PATCH 086/533] brcmfmac: Re-enable firmware roaming support +Subject: [PATCH 086/580] brcmfmac: Re-enable firmware roaming support As of 4.18, a firmware that implements the update_connect_params method but doesn't claim to support roaming causes an error. We @@ -133287,10 +133287,10 @@ index 591dcd04b4b4..e3758bd86acf 100644 2.18.4 -From 9ce953595ae17626a9d04e598f3e0bf7af983920 Mon Sep 17 00:00:00 2001 +From f7a9d014f78882fb18e90647a404b6d003dfd02f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Apr 2018 14:46:11 +0100 -Subject: [PATCH 087/533] lan78xx: Move enabling of EEE into PHY init code +Subject: [PATCH 087/580] lan78xx: Move enabling of EEE into PHY init code Enable EEE mode as soon as possible after connecting to the PHY, and before phy_start. This avoids a second link negotiation, which speeds @@ -133357,10 +133357,10 @@ index 681a6b949140..68d0aec53f3a 100644 2.18.4 -From b3215d28bf2da8385892e73d9b38f4d1eea7a30a Mon Sep 17 00:00:00 2001 +From 73aaf2912a9c3967023bf05bb697971a9fd8925a Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 9 Jul 2018 12:54:25 +0100 -Subject: [PATCH 088/533] Add rpi-poe-fan driver +Subject: [PATCH 088/580] Add rpi-poe-fan driver Signed-off-by: Serge Schneider @@ -133955,10 +133955,10 @@ index 000000000000..c9654e9e9f2d 2.18.4 -From 0a20ca55289382bd970ab267d56464657a77fc40 Mon Sep 17 00:00:00 2001 +From a1602940651a6ce3e447c79cdb763944d05ae0d2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 17 Sep 2018 17:31:18 +0100 -Subject: [PATCH 089/533] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 +Subject: [PATCH 089/580] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT --- @@ -133981,10 +133981,10 @@ index 857ef4ace6e9..deae75ea3c44 100644 2.18.4 -From 52c8f8ce6a4dc16a28eb7109f37d3a0e09e5e91e Mon Sep 17 00:00:00 2001 +From dff70e39ffc0064399ad8c81a8c7e22bc8fde6ee Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 6 Oct 2018 16:46:18 +0200 -Subject: [PATCH 090/533] hwmon: raspberrypi: Prevent voltage low warnings from +Subject: [PATCH 090/580] hwmon: raspberrypi: Prevent voltage low warnings from filling log Although the correct fix for low voltage warnings is to @@ -134062,10 +134062,10 @@ index d3a64a35f7a9..db3b03438dd0 100644 2.18.4 -From 23729e0f704e4bd1824b1de09f55baaa5197aa94 Mon Sep 17 00:00:00 2001 +From e2a1335b68043e93baaf973fb7ebd028b8223c25 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 13 Oct 2018 13:31:21 +0200 -Subject: [PATCH 091/533] firmware: raspberrypi: Add backward compatible +Subject: [PATCH 091/580] firmware: raspberrypi: Add backward compatible get_throttled Avoid a hard userspace ABI change by adding a compatible get_throttled @@ -134147,10 +134147,10 @@ index 05a0ae2a8eb7..f7d605a62801 100644 2.18.4 -From 471bfd9b630ce023c42e49074af5fde67a83c0c4 Mon Sep 17 00:00:00 2001 +From f9d8d84cba3478ca9b99bb77065da104e7787c19 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 6 Nov 2018 12:57:48 +0000 -Subject: [PATCH 092/533] sc16is7xx: Don't spin if no data received +Subject: [PATCH 092/580] sc16is7xx: Don't spin if no data received See: https://github.com/raspberrypi/linux/issues/2676 @@ -134176,10 +134176,10 @@ index f86ec2d2635b..ae48749d72fd 100644 2.18.4 -From a66d8b0f959743139a10bbe57cbc2872d852896d Mon Sep 17 00:00:00 2001 +From 1554c4fa263ff7f546f3a49bc08dada59baf3a2a Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Mon, 7 May 2018 11:54:08 -0600 -Subject: [PATCH 093/533] drivers: thermal: step_wise: add support for +Subject: [PATCH 093/580] drivers: thermal: step_wise: add support for hysteresis Step wise governor increases the mitigation level when the temperature @@ -134276,10 +134276,10 @@ index 2ae7198d3067..abe34cfe21fe 100644 2.18.4 -From dff382c1b8bb1bb66b627e894b4817e7a9efa745 Mon Sep 17 00:00:00 2001 +From b03e1ba1023fb6fdce98d3b4a753d2a4f103846f Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 2 Oct 2018 11:14:15 +0100 -Subject: [PATCH 094/533] drivers: thermal: step_wise: avoid throttling at +Subject: [PATCH 094/580] drivers: thermal: step_wise: avoid throttling at hysteresis temperature after dropping below it Signed-off-by: Serge Schneider @@ -134304,10 +134304,10 @@ index abe34cfe21fe..5c8602933201 100644 2.18.4 -From 1d0c19df372a6ba00fe6d7b069a57e58c7caa936 Mon Sep 17 00:00:00 2001 +From 8a438a6795f9794d593c1729997d38b00bc38da4 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Fri, 2 Nov 2018 11:55:49 +0000 -Subject: [PATCH 095/533] Update issue templates (#2736) +Subject: [PATCH 095/580] Update issue templates (#2736) --- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++++++++++++++++++ @@ -134358,10 +134358,10 @@ index 000000000000..09bdc4a96838 2.18.4 -From bbb0d3cb8de3a23e30a842151f677088bdb08d7b Mon Sep 17 00:00:00 2001 +From 9c60e99fa64790bebe761b47194dce915e891f33 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Nov 2018 19:46:58 +0000 -Subject: [PATCH 096/533] net: lan78xx: Support auto-downshift to 100Mb/s +Subject: [PATCH 096/580] net: lan78xx: Support auto-downshift to 100Mb/s Ethernet cables with faulty or missing pairs (specifically pairs C and D) allow auto-negotiation to 1000Mbs, but do not support the successful @@ -134459,10 +134459,10 @@ index 517288da19fd..626c450d71f4 100644 2.18.4 -From ef0d017fd2fbb1cfd1bba6eef8fc3b1ddf34fe1a Mon Sep 17 00:00:00 2001 +From 0e88769a9fe668c2a21d4f54591a29f0e3d0aa0a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 10 Jan 2019 17:58:06 +0000 -Subject: [PATCH 097/533] firmware: raspberrypi: Report the fw variant during +Subject: [PATCH 097/580] firmware: raspberrypi: Report the fw variant during probe The driver already reported the firmware build date during probe. @@ -134568,10 +134568,10 @@ index 16253b6875c9..d0c827064999 100644 2.18.4 -From 85c3e363a70c058800227352cbd7fc8aa7916dde Mon Sep 17 00:00:00 2001 +From 21e7dbc960255dc8d23b7b55583ce31d51356831 Mon Sep 17 00:00:00 2001 From: Joshua Emele Date: Wed, 7 Nov 2018 16:07:40 -0800 -Subject: [PATCH 098/533] lan78xx: Debounce link events to minimize poll storm +Subject: [PATCH 098/580] lan78xx: Debounce link events to minimize poll storm The bInterval is set to 4 (i.e. 8 microframes => 1ms) and the only bit that the driver pays attention to is "link was reset". If there's a @@ -134619,10 +134619,10 @@ index 68d0aec53f3a..e5bd18aa1cfa 100644 2.18.4 -From 0e2858d4d474c735e6ee28711248635edd7b7b48 Mon Sep 17 00:00:00 2001 +From 5f6f3e7fcf42c5fe2dbc5fa2d0e1b7770e825b0e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 Mar 2019 09:51:22 +0000 -Subject: [PATCH 099/533] lan78xx: EEE support is now a PHY property +Subject: [PATCH 099/580] lan78xx: EEE support is now a PHY property Now that EEE support is a property of the PHY, use the PHY's DT node when querying the EEE-related properties. @@ -134651,10 +134651,10 @@ index e5bd18aa1cfa..a03bcbdd04f3 100644 2.18.4 -From d1ff6ffa226283cf1216648cef7abfad57c80969 Mon Sep 17 00:00:00 2001 +From b2500e69a98cf724876c7b7194be966761d4f6ea Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 20 Jul 2018 22:03:41 +0100 -Subject: [PATCH 100/533] bcm2835-dma: Add support for per-channel flags +Subject: [PATCH 100/580] bcm2835-dma: Add support for per-channel flags Add the ability to interpret the high bits of the dreq specifier as flags to be included in the DMA_CS register. The motivation for this @@ -134705,10 +134705,10 @@ index bf7ba96a39f9..87b5d0bef355 100644 2.18.4 -From befdec008a056ef81bacfc1c39bf42f729cc0b56 Mon Sep 17 00:00:00 2001 +From 4b4e885f57214a55df0d297a46d56be69924b146 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 29 Mar 2019 10:53:14 +0000 -Subject: [PATCH 101/533] rtc: rv3028: Add backup switchover mode support +Subject: [PATCH 101/580] rtc: rv3028: Add backup switchover mode support Signed-off-by: Phil Howard --- @@ -134761,10 +134761,10 @@ index fa226f0fe67d..20baf2257631 100644 2.18.4 -From 2da42b13162678e828ca50ada7592d162661ccb2 Mon Sep 17 00:00:00 2001 +From cc11bc7e3b5b51ef655925316336be48058049a2 Mon Sep 17 00:00:00 2001 From: P33M Date: Thu, 2 May 2019 11:53:45 +0100 -Subject: [PATCH 102/533] lan78xx: use default alignment for rx buffers +Subject: [PATCH 102/580] lan78xx: use default alignment for rx buffers The lan78xx uses a 12-byte hardware rx header, so there is no need to allocate SKBs with NET_IP_ALIGN set. Removes alignment faults @@ -134790,10 +134790,10 @@ index a03bcbdd04f3..58f5b90f11d4 100644 2.18.4 -From c2bcfff4a08f8a9a10c3c3018839592b37f56882 Mon Sep 17 00:00:00 2001 +From 1f601a9f91ba41856c4d1bc218ceb3a1b0bcd9e8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:55:37 +0000 -Subject: [PATCH 103/533] media: ov5647: Add set_fmt and get_fmt calls. +Subject: [PATCH 103/580] media: ov5647: Add set_fmt and get_fmt calls. There's no way to query the subdevice for the supported resolutions. @@ -134843,10 +134843,10 @@ index e7d2e5b4ad4b..3e587eb0a30e 100644 2.18.4 -From 67ed1aa90a1cb8010f92846072040c9fd137eefc Mon Sep 17 00:00:00 2001 +From b02aabc8aed9822cd093937d8dbedf80b8452f7b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:33 +0000 -Subject: [PATCH 104/533] media: ov5647: Add support for PWDN GPIO. +Subject: [PATCH 104/580] media: ov5647: Add support for PWDN GPIO. Add support for an optional GPIO connected to PWDN on the sensor. @@ -134941,10 +134941,10 @@ index 3e587eb0a30e..c39e3d20e3ef 100644 2.18.4 -From 5b78847db8ff79f44e40d468c598d90b4fd0237d Mon Sep 17 00:00:00 2001 +From de8a5d2764dbf0400259b10dbe40b85dc0b1b60d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:47 +0000 -Subject: [PATCH 105/533] media: ov5647: Add support for non-continuous clock +Subject: [PATCH 105/580] media: ov5647: Add support for non-continuous clock mode The driver was only supporting continuous clock mode @@ -135026,10 +135026,10 @@ index c39e3d20e3ef..8a1a515388e0 100644 2.18.4 -From 8f6fe71b9a74d5fe95b8560d6f15cab6c4d72e01 Mon Sep 17 00:00:00 2001 +From f1cf7fb688107e86cec40ce2b2474582cac2fe74 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:59 +0000 -Subject: [PATCH 106/533] media: tc358743: Increase FIFO level to 374. +Subject: [PATCH 106/580] 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 +135063,10 @@ index 831b5b54fd78..8ca6d67a2b3e 100644 2.18.4 -From e6a14cd01256895ce4a34c5e0e9c1699b0425790 Mon Sep 17 00:00:00 2001 +From 30d552f9624af86439326ae4807980d977260c68 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Thu, 21 Sep 2017 17:30:24 +0200 -Subject: [PATCH 107/533] media: tc358743: fix connected/active CSI-2 lane +Subject: [PATCH 107/580] media: tc358743: fix connected/active CSI-2 lane reporting g_mbus_config was supposed to indicate all supported lane numbers, not @@ -135145,10 +135145,10 @@ index c20e2dc6d432..396fb88266be 100644 2.18.4 -From a3118c7b13b5bff98f77cb7bde5375b7d36b9f90 Mon Sep 17 00:00:00 2001 +From 6ba7d09592da93d08a090468967840aca26924bf Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:21 +0000 -Subject: [PATCH 108/533] media: tc358743: Add support for 972Mbit/s link freq. +Subject: [PATCH 108/580] 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 +135230,10 @@ index 46ea2d034580..0856a711ee33 100644 2.18.4 -From ae747eafbaa5596b9eaef9636c991280962110ad Mon Sep 17 00:00:00 2001 +From eac17a4c2c9a0e32f5f36b64e76b5d1c341bb909 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:34 +0000 -Subject: [PATCH 109/533] media: tc358743: Check I2C succeeded during probe. +Subject: [PATCH 109/580] 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 +135334,10 @@ index 0856a711ee33..056fc6b884dd 100644 2.18.4 -From 2733b76fd8dd7c85e5cffd5238a4e016ac9834c8 Mon Sep 17 00:00:00 2001 +From eb6d6cd3a1d41e2da74cdd86082c7ca7255182e0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:46 +0000 -Subject: [PATCH 110/533] media: adv7180: Default to the first valid input +Subject: [PATCH 110/580] media: adv7180: Default to the first valid input The hardware default is differential CVBS on AIN1 & 2, which isn't very useful. @@ -135385,10 +135385,10 @@ index 4498d14d3429..e98dd2bee1e5 100644 2.18.4 -From 4c9decda42299a2ebd9e3a25ed49e9d372098f97 Mon Sep 17 00:00:00 2001 +From 02095c49eee9049b71e0cd2693cf422378f78ea4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:56 +0000 -Subject: [PATCH 111/533] media: adv7180: Add YPrPb support for ADV7282M +Subject: [PATCH 111/580] media: adv7180: Add YPrPb support for ADV7282M The ADV7282M can support YPbPr on AIN1-3, but this was not selectable from the driver. Add it to the list of @@ -135415,10 +135415,10 @@ index e98dd2bee1e5..4103690a71df 100644 2.18.4 -From b9088e51587f8b5d8b9b56d43f22dabc62d371cc Mon Sep 17 00:00:00 2001 +From b1e9ca5d8fe32ed94c934c132433b92e5176103b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:58:08 +0000 -Subject: [PATCH 112/533] media: videodev2: Add helper defines for printing +Subject: [PATCH 112/580] media: videodev2: Add helper defines for printing FOURCCs New helper defines that allow printing of a FOURCC using @@ -135449,10 +135449,10 @@ index 534eaa4d39bc..56c443cc2c3d 100644 2.18.4 -From e084333c51430b0e22cdee5b2b85040cd9c7e0f1 Mon Sep 17 00:00:00 2001 +From 1b89c4e39f9cc386f80f0209296310f5b375618b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:06 +0000 -Subject: [PATCH 113/533] dt-bindings: Document BCM283x CSI2/CCP2 receiver +Subject: [PATCH 113/580] dt-bindings: Document BCM283x CSI2/CCP2 receiver Document the DT bindings for the CSI2/CCP2 receiver peripheral (known as Unicam) on BCM283x SoCs. @@ -135559,10 +135559,10 @@ index 000000000000..7714fb374b34 2.18.4 -From 6cd7b0f4204388e4d3c1c2da48e50c9fc1157b67 Mon Sep 17 00:00:00 2001 +From 2b0cca94295cbe9fe03b7555ac0fa22ca4f92ef8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:40 +0000 -Subject: [PATCH 114/533] MAINTAINERS: Add entry for BCM2835 Unicam driver +Subject: [PATCH 114/580] MAINTAINERS: Add entry for BCM2835 Unicam driver Adds entry for the new BCM2835 Unicam (CSI-2 receiver) driver @@ -135572,7 +135572,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS -index 281de213ef47..29c300b73e89 100644 +index 24cdfcf334ea..4b0478749279 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3417,6 +3417,13 @@ N: bcm113* @@ -135593,10 +135593,10 @@ index 281de213ef47..29c300b73e89 100644 2.18.4 -From a98684565b5bce2d10f3d31e65420f150a39a848 Mon Sep 17 00:00:00 2001 +From 91886b0dcc40ef8e0ec4706be43d9b0f62a73250 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Nov 2018 17:31:06 +0000 -Subject: [PATCH 115/533] media: tc358743: Return an appropriate colorspace +Subject: [PATCH 115/580] media: tc358743: Return an appropriate colorspace from tc358743_set_fmt When calling tc358743_set_fmt, the code was calling tc358743_get_fmt @@ -135697,10 +135697,10 @@ index 056fc6b884dd..0a8a25ff7872 100644 2.18.4 -From 91c1cca21b60837aebcbc1adcc81beba6fcffa6b Mon Sep 17 00:00:00 2001 +From 664453188a7c6ff62328ca5dd1350f49517b5c8b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 16:20:46 +0000 -Subject: [PATCH 116/533] staging: mmal-vchiq: Avoid use of bool in structures +Subject: [PATCH 116/580] staging: mmal-vchiq: Avoid use of bool in structures Fixes up a checkpatch error "Avoid using bool structure members because of possible alignment issues". @@ -135727,10 +135727,10 @@ index 9097bcbd67d8..8734a09498b1 100644 2.18.4 -From ab77207069db87a5f89835f895946590a8048e15 Mon Sep 17 00:00:00 2001 +From ef327a55a2c8e0820da1a28790d9081e22556a9b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:15:38 +0100 -Subject: [PATCH 117/533] staging: mmal-vchiq: Add support for event callbacks. +Subject: [PATCH 117/580] staging: mmal-vchiq: Add support for event callbacks. (Preparation for the codec driver). The codec uses the event mechanism to report things such as @@ -136095,10 +136095,10 @@ index 1dc81ecf9268..e87f88f99338 100644 2.18.4 -From 636de4223cbcbe67a0072758efbd3d922d84d585 Mon Sep 17 00:00:00 2001 +From 2329a1b7ea03be001b1c6322138b689115bb779b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:26:02 +0100 -Subject: [PATCH 118/533] staging: vc04_services: Support sending data to MMAL +Subject: [PATCH 118/580] staging: vc04_services: Support sending data to MMAL ports Add the ability to send data to ports. This only supports @@ -136143,10 +136143,10 @@ index 1a66c9484aa7..2361a11f1e20 100644 2.18.4 -From e744db217f232a8c27cce9b9fcf32ec180b567dd Mon Sep 17 00:00:00 2001 +From 5214b06fb9170ce8ccf4141a9d7c3deef8d24b85 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 17:57:45 +0000 -Subject: [PATCH 119/533] media: videobuf2: Allow exporting of a struct dmabuf +Subject: [PATCH 119/580] media: videobuf2: Allow exporting of a struct dmabuf videobuf2 only allowed exporting a dmabuf as a file descriptor, but there are instances where having the struct dma_buf is @@ -136234,10 +136234,10 @@ index bbb3f26fbde9..7a4aa9cb28c9 100644 2.18.4 -From feca5a02956480e0892fb0e99066153b15d14be5 Mon Sep 17 00:00:00 2001 +From 7c99c28a6e4cd17a27f6bb0d7d5352b161ed1f57 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 22 Jan 2019 12:04:09 +0000 -Subject: [PATCH 120/533] staging: mmal-vchiq: Fix client_component for 64 bit +Subject: [PATCH 120/580] staging: mmal-vchiq: Fix client_component for 64 bit kernel The MMAL client_component field is used with the event @@ -136275,10 +136275,10 @@ index 2361a11f1e20..3e2209847761 100644 2.18.4 -From 133bb6011e91bd357fcc25bca08d4fe86bd1b24b Mon Sep 17 00:00:00 2001 +From f487ae88420bbaadf78b624cac971a07a9a0794b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 24 Jan 2019 15:09:28 +0000 -Subject: [PATCH 121/533] clk: clk-bcm2835: Use %zd when printing size_t +Subject: [PATCH 121/580] clk: clk-bcm2835: Use %zd when printing size_t The debug text for how many clocks have been registered uses "%d" with a size_t. Correct it to "%zd". @@ -136305,10 +136305,10 @@ index f1ef788c1194..2674b979a072 100644 2.18.4 -From c1fd5de672e408f657fa35d4032f362b98e1284e Mon Sep 17 00:00:00 2001 +From b511ee97d051c8c6a13b1996b872c6375bb9eb61 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Sep 2018 11:08:51 +0100 -Subject: [PATCH 122/533] media: ov5647: Use gpiod_set_value_cansleep +Subject: [PATCH 122/580] media: ov5647: Use gpiod_set_value_cansleep All calls to the gpio library are in contexts that can sleep, therefore there is no issue with having those GPIOs controlled @@ -136365,10 +136365,10 @@ index 8a1a515388e0..07550377be2e 100644 2.18.4 -From 9673f79a108b1c6c87d1ce3a7bcd3f6c2cb51665 Mon Sep 17 00:00:00 2001 +From 90772948d117b88d996e129605ea59d00514beb8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Feb 2019 12:33:29 +0000 -Subject: [PATCH 123/533] staging: mmal_vchiq: Add in the Bayer encoding +Subject: [PATCH 123/580] staging: mmal_vchiq: Add in the Bayer encoding formats The list of formats was copied before Bayer support was added. @@ -136422,10 +136422,10 @@ index 2be9941a1f30..44ba91aa6d47 100644 2.18.4 -From 92c4ab419d87eeda455081dbc49c973e1563c4b1 Mon Sep 17 00:00:00 2001 +From cfd18860d11a1f1c1a37b3ae2fbb46ac5905e16b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 18 Feb 2019 15:52:29 +0000 -Subject: [PATCH 124/533] staging: mmal-vchiq: Update mmal_parameters.h with +Subject: [PATCH 124/580] staging: mmal-vchiq: Update mmal_parameters.h with recently defined params mmal_parameters.h hasn't been updated to reflect additions made @@ -136484,10 +136484,10 @@ index a1e39b1b1701..1793103b18fd 100644 2.18.4 -From 0ee4f9668484e4115e2dcde5bc076f5827d70076 Mon Sep 17 00:00:00 2001 +From 0d34a13cf6a365b42db0cdaec9b155813f88ef8a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 May 2019 13:27:23 +0100 -Subject: [PATCH 125/533] staging: mmal-vchiq: Free the event context for +Subject: [PATCH 125/580] staging: mmal-vchiq: Free the event context for control ports vchiq_mmal_component_init calls init_event_context for the @@ -136518,10 +136518,10 @@ index 3e2209847761..d4d9ad3500b6 100644 2.18.4 -From afba95156f71fe79de7349f65d038eb1faebcb2e Mon Sep 17 00:00:00 2001 +From 8cd0fc6283d79ee29de6b04b709596d1157f8678 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 May 2019 15:50:01 +0100 -Subject: [PATCH 126/533] staging: mmal-vchiq: Fix memory leak in error path +Subject: [PATCH 126/580] staging: mmal-vchiq: Fix memory leak in error path On error, vchiq_mmal_component_init could leave the event context allocated for ports. @@ -136600,10 +136600,10 @@ index d4d9ad3500b6..14bdfdea5770 100644 2.18.4 -From 36d440baf6050984083e056ee32e738751febdcc Mon Sep 17 00:00:00 2001 +From 2064603e827702fc98c814936a253a2ccc4fa30e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jun 2019 17:15:05 +0100 -Subject: [PATCH 127/533] w1: w1-gpio: Make GPIO an output for strong pullup +Subject: [PATCH 127/580] w1: w1-gpio: Make GPIO an output for strong pullup The logic to drive the data line high to implement a strong pullup assumed that the pin was already an output - setting a value does @@ -136633,10 +136633,10 @@ index d4632aace402..4832cd8c2596 100644 2.18.4 -From bc197ad99e6e2baf0f0cc7cf188840795bb6e852 Mon Sep 17 00:00:00 2001 +From ed167e0f378e9ce139b93563e67bbb18aad36074 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Feb 2019 08:49:39 +0000 -Subject: [PATCH 128/533] arm: bcm2835: Fix FIQ early ioremap +Subject: [PATCH 128/580] arm: bcm2835: Fix FIQ early ioremap The ioremapping creates mappings within the vmalloc area. The equivalent early function, create_mapping, now checks that the @@ -136712,10 +136712,10 @@ index 9b6c921106b5..9bd9842da59f 100644 2.18.4 -From c7ada481be302f1a857807bd41a8187bed8308d0 Mon Sep 17 00:00:00 2001 +From 41aa457a7f0254a094f4c06610d3d4c160adbfc9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 May 2019 15:47:42 +0100 -Subject: [PATCH 129/533] arm: bcm2835: DMA can only address 1GB +Subject: [PATCH 129/580] arm: bcm2835: DMA can only address 1GB The legacy peripherals can only address the first gigabyte of RAM, so ensure that DMA allocations are restricted to that region. @@ -136743,10 +136743,10 @@ index 9bd9842da59f..7d59a9364175 100644 2.18.4 -From 9a03565e4ba895c7661193e20bdd23a994a33ec7 Mon Sep 17 00:00:00 2001 +From 66d31f6421e5b6f5dfa743049db360f2e1c33183 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 4 May 2019 17:06:15 +0200 -Subject: [PATCH 130/533] hwrng: iproc-rng200: Add BCM2838 support +Subject: [PATCH 130/580] hwrng: iproc-rng200: Add BCM2838 support The HWRNG on the BCM2838 is compatible to iproc-rng200, so add the support to this driver instead of bcm2835-rng. @@ -136904,10 +136904,10 @@ index 01583faf9893..2a92ea658096 100644 2.18.4 -From b66e84c2df50515654931056a5f30c604a5ce5d4 Mon Sep 17 00:00:00 2001 +From ac6ec8442e62ca8e40f1efc14e082dc859a5e363 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 2 Aug 2019 15:20:11 +0100 -Subject: [PATCH 131/533] mmc: sdhci-iproc: Fix vmmc regulators on iProc +Subject: [PATCH 131/580] 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 @@ -136923,7 +136923,7 @@ Signed-off-by: Phil Elwell 1 file changed, 12 insertions(+) diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c -index c9434b461aab..a7191341a47b 100644 +index ddeaf8e1f72f..57257a014022 100644 --- a/drivers/mmc/host/sdhci-iproc.c +++ b/drivers/mmc/host/sdhci-iproc.c @@ -173,6 +173,17 @@ static unsigned int sdhci_iproc_get_max_clock(struct sdhci_host *host) @@ -136956,10 +136956,10 @@ index c9434b461aab..a7191341a47b 100644 2.18.4 -From f5df17336f9a5e9e9eb052952d8d9b7ee015cd06 Mon Sep 17 00:00:00 2001 +From 7732ce06dbe634b1eba8a04f56e57cd51aa306af Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 1 Nov 2018 17:31:37 +0000 -Subject: [PATCH 132/533] vchiq: Add 36-bit address support +Subject: [PATCH 132/580] 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 @@ -137129,7 +137129,7 @@ index 8782ebe0b39a..6f941c1b6be1 100644 /* Partial cache lines (fragments) require special measures */ diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index 01125d9f991b..4d10e6025926 100644 +index 3d378da119e7..b8579af3948c 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -118,6 +118,11 @@ static struct vchiq_drvdata bcm2836_drvdata = { @@ -137144,7 +137144,7 @@ index 01125d9f991b..4d10e6025926 100644 static const char *const ioctl_names[] = { "CONNECT", "SHUTDOWN", -@@ -2677,6 +2682,7 @@ void vchiq_platform_conn_state_changed(struct vchiq_state *state, +@@ -2679,6 +2684,7 @@ void vchiq_platform_conn_state_changed(struct vchiq_state *state, static const struct of_device_id vchiq_of_match[] = { { .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_drvdata }, { .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_drvdata }, @@ -137168,17 +137168,17 @@ index 0784c5002417..f8b1c005af62 100644 2.18.4 -From 3f4f7a7a44e6acd7d2037b8e5f1f62c5a3b6c09e Mon Sep 17 00:00:00 2001 +From 487f31928f5c18f44370b21914cb3e6f413f1241 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 30 Apr 2019 19:15:30 +0100 -Subject: [PATCH 133/533] bcm2835-pcm.c: Support multichannel audio +Subject: [PATCH 133/580] bcm2835-pcm.c: Support multichannel audio --- .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -index f783b632141b..446724e718f9 100644 +index 096f2c54258a..3c0033101e6e 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c @@ -14,9 +14,9 @@ static const struct snd_pcm_hardware snd_bcm2835_playback_hw = { @@ -137220,10 +137220,10 @@ index f783b632141b..446724e718f9 100644 2.18.4 -From 755c69870dcfe0525fc2dd5822753f0778453b64 Mon Sep 17 00:00:00 2001 +From 3fd91650c0dd8850f9474f444f18bc1cfcb1b025 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 12 Sep 2018 14:44:53 +0100 -Subject: [PATCH 134/533] bcmgenet: constrain max DMA burst length +Subject: [PATCH 134/580] bcmgenet: constrain max DMA burst length --- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- @@ -137246,10 +137246,10 @@ index f6ca01da141d..45ea07829b8c 100644 2.18.4 -From 4f49b7e34212ef702551f376c9b01e6b054202fe Mon Sep 17 00:00:00 2001 +From 1f63c05c5e8fa19841f63210478699f9f7d75c3a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 Mar 2019 13:45:46 +0000 -Subject: [PATCH 135/533] bcmgenet: Better coalescing parameter defaults +Subject: [PATCH 135/580] bcmgenet: Better coalescing parameter defaults Set defaults for TX and RX packet coalescing to be equivalent to: @@ -137295,10 +137295,10 @@ index fcca023f22e5..848c29c5c33d 100644 2.18.4 -From 1ffe9ffff57a6f1e418e3ee26f44d0c511c269e5 Mon Sep 17 00:00:00 2001 +From d478db811538feeb82eb44f498c14aad78569066 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:17:59 +0100 -Subject: [PATCH 136/533] net: genet: enable link energy detect powerdown for +Subject: [PATCH 136/580] net: genet: enable link energy detect powerdown for external PHYs There are several warts surrounding bcmgenet_mii_probe() as this @@ -137332,10 +137332,10 @@ index 6fb6c3556285..2e516f4c435e 100644 2.18.4 -From 2695afea021f03f1a79f76519f42a0b11e1f5840 Mon Sep 17 00:00:00 2001 +From fc39b213e4c38c4b951ad8605a57773fa5a5ddc8 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Fri, 22 Mar 2019 09:47:14 +0000 -Subject: [PATCH 137/533] usb: xhci: Disable the XHCI 5 second timeout +Subject: [PATCH 137/580] usb: xhci: Disable the XHCI 5 second timeout If the VL805 EEPROM has not been programmed then boot will hang for five seconds. The timeout seems to be arbitrary and is an unecessary @@ -137349,7 +137349,7 @@ on the first boot. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 73f1373d517a..360f64183e03 100644 +index c449de6164b1..b9ce60af9696 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -196,8 +196,9 @@ int xhci_reset(struct xhci_hcd *xhci) @@ -137367,10 +137367,10 @@ index 73f1373d517a..360f64183e03 100644 2.18.4 -From 05d79ad667147e4681790a9515049ce4c0a440b6 Mon Sep 17 00:00:00 2001 +From 7e40b1af41cb89b91a8a95b360974c2aaa676f45 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Mon, 13 May 2019 11:05:27 +0000 -Subject: [PATCH 138/533] spi: bcm2835: enable shared interrupt support +Subject: [PATCH 138/580] spi: bcm2835: enable shared interrupt support Add shared interrupt support for this driver. @@ -137408,10 +137408,10 @@ index 197485f2c2b2..5c7aa77f504e 100644 2.18.4 -From 0301e7dea82d59b8b768c3df7319ad4bbd05df5a Mon Sep 17 00:00:00 2001 +From 6497f9523c9340d57f637fc11a09b9b5e745687d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Jan 2019 16:11:50 +0000 -Subject: [PATCH 139/533] clk-bcm2835: Don't wait for pllh lock +Subject: [PATCH 139/580] clk-bcm2835: Don't wait for pllh lock Signed-off-by: Phil Elwell --- @@ -137452,10 +137452,10 @@ index 2674b979a072..38f97f1707d2 100644 2.18.4 -From 32aff97c4d239a80cdc90e493445654efb5da053 Mon Sep 17 00:00:00 2001 +From 6d57701862dee4e5dd18b5d9525ab08ab7212380 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 11 Jan 2019 17:31:07 -0800 -Subject: [PATCH 140/533] soc: bcm: bcm2835-pm: Add support for 2711. +Subject: [PATCH 140/580] soc: bcm: bcm2835-pm: Add support for 2711. Without the actual power management part any more, there's a lot less to set up for V3D. We just need to clear the RSTN field for the power @@ -137564,10 +137564,10 @@ index ed37dc40e82a..b2d157091e12 100644 2.18.4 -From 652e6bab7337c8ef6e9ec365c7a81df2b2eea0c3 Mon Sep 17 00:00:00 2001 +From e19b8f0abe7e7cbdd7c8830eb943fdf609acfa35 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:11:05 -0700 -Subject: [PATCH 141/533] clk: bcm2835: Add support for setting leaf clock +Subject: [PATCH 141/580] clk: bcm2835: Add support for setting leaf clock rates while running. As long as you wait for !BUSY, you can do glitch-free updates of clock @@ -137623,10 +137623,10 @@ index 38f97f1707d2..4cf4f5e12fe2 100644 2.18.4 -From b9da01668c40dcf1b0d3c4c34de67759c480ddf7 Mon Sep 17 00:00:00 2001 +From 43aa65e984d72d0055f9047f22f3f602730aa469 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:24:04 -0700 -Subject: [PATCH 142/533] clk: bcm2835: Allow reparenting leaf clocks while +Subject: [PATCH 142/580] clk: bcm2835: Allow reparenting leaf clocks while they're running. This falls under the same "we can reprogram glitch-free as long as we @@ -137700,10 +137700,10 @@ index 4cf4f5e12fe2..3c55594684cd 100644 2.18.4 -From 6511faf9543bb5dc4d2ee6ff9e831e41b13291ce Mon Sep 17 00:00:00 2001 +From 26ecd3de35110d5a45c2a7bfbb47a80174c43abb Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 10:55:00 +0100 -Subject: [PATCH 143/533] usb: add plumbing for updating interrupt endpoint +Subject: [PATCH 143/580] usb: add plumbing for updating interrupt endpoint interval state xHCI caches device and endpoint data after the interface is configured, @@ -137728,10 +137728,10 @@ Signed-off-by: Jonathan Bell 4 files changed, 34 insertions(+) diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c -index 2c6b9578a7d3..9693cefdf26f 100644 +index 99908d8d2dd3..07f5a39a6e31 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c -@@ -1938,6 +1938,16 @@ int usb_hcd_alloc_bandwidth(struct usb_device *udev, +@@ -1945,6 +1945,16 @@ int usb_hcd_alloc_bandwidth(struct usb_device *udev, return ret; } @@ -137775,10 +137775,10 @@ index 6138a21cf0f1..6f0c19d76515 100644 * usb_disable_endpoint -- Disable an endpoint by address * @dev: the device whose endpoint is being disabled diff --git a/include/linux/usb.h b/include/linux/usb.h -index 7d72c4e0713c..75d9ef39a878 100644 +index d6a41841b93e..32be892f53cf 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h -@@ -1836,6 +1836,8 @@ extern int usb_clear_halt(struct usb_device *dev, int pipe); +@@ -1838,6 +1838,8 @@ extern int usb_clear_halt(struct usb_device *dev, int pipe); extern int usb_reset_configuration(struct usb_device *dev); extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate); extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr); @@ -137816,10 +137816,10 @@ index 3dbb42c637c1..a60b7fc02fce 100644 2.18.4 -From 1b5e218edba4b013cd41c330d5cd8f82f18e91b4 Mon Sep 17 00:00:00 2001 +From f3cd2c8d5daba0da6eeb5e8458a623d342bcc642 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:33:39 +0100 -Subject: [PATCH 144/533] xhci: implement xhci_fixup_endpoint for interval +Subject: [PATCH 144/580] xhci: implement xhci_fixup_endpoint for interval adjustments Must be called in a non-atomic context, after the endpoint @@ -137832,10 +137832,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 98 insertions(+) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 360f64183e03..1bf56351f556 100644 +index b9ce60af9696..2c31bfbf6b93 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1455,6 +1455,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1463,6 +1463,103 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -137939,7 +137939,7 @@ index 360f64183e03..1bf56351f556 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5342,6 +5439,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5350,6 +5447,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -137951,10 +137951,10 @@ index 360f64183e03..1bf56351f556 100644 2.18.4 -From 5138d8ca0947a267c0d832e66cd20f0aaf99c29b Mon Sep 17 00:00:00 2001 +From 34f290372ead14daccba726ce011dcab3409d095 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:42:03 +0100 -Subject: [PATCH 145/533] usbhid: call usb_fixup_endpoint after mangling +Subject: [PATCH 145/580] usbhid: call usb_fixup_endpoint after mangling intervals Lets the mousepoll override mechanism work with xhci. @@ -137980,10 +137980,10 @@ index 1134d543e5d6..3d5d82f7176f 100644 2.18.4 -From c49528ff9b129ed89f9016a52df13b497d460091 Mon Sep 17 00:00:00 2001 +From 09f996b40781cda4a92a203d2e5bac61c1b6d459 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Jun 2019 17:38:28 +0100 -Subject: [PATCH 146/533] arm: bcm2835: Add bcm2838 compatible string. +Subject: [PATCH 146/580] arm: bcm2835: Add bcm2838 compatible string. Signed-off-by: Phil Elwell --- @@ -138006,10 +138006,10 @@ index 7d59a9364175..282a023027fc 100644 2.18.4 -From b410d6259b96655e9f42804abe2a4f7bba073877 Mon Sep 17 00:00:00 2001 +From a343e49a5a1c7d03f95e075095a65169d216e91f Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 4 Oct 2018 17:22:43 -0700 -Subject: [PATCH 147/533] drm/v3d: Add support for 2711. +Subject: [PATCH 147/580] drm/v3d: Add support for 2711. Signed-off-by: Eric Anholt --- @@ -138032,10 +138032,10 @@ index 9f7c26193831..a463f8c0ad4c 100644 2.18.4 -From 0ba3009f496d50bf11888b73a5ddb6daf7443d70 Mon Sep 17 00:00:00 2001 +From d61157f9579e7b239abbd491be34e4d8306c36aa Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 12:35:43 -0800 -Subject: [PATCH 148/533] drm/v3d: Skip MMU flush if the device is currently +Subject: [PATCH 148/580] drm/v3d: Skip MMU flush if the device is currently off. If it's off, we know it will be reset on poweron, so the MMU won't @@ -138090,10 +138090,10 @@ index 5a453532901f..8986e7b96461 100644 2.18.4 -From bbc122585c3481ebd35e5b0f500752349b8cf8fa Mon Sep 17 00:00:00 2001 +From d8c31601241e73bcabad04e0e411de7f3dfdf76b Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 14:47:57 -0800 -Subject: [PATCH 149/533] drm/v3d: Hook up the runtime PM ops. +Subject: [PATCH 149/580] drm/v3d: Hook up the runtime PM ops. In translating the runtime PM code from vc4, I missed the ".pm" assignment to actually connect them up. Fixes missing MMU setup if @@ -138130,10 +138130,10 @@ index a463f8c0ad4c..5f581fe8c918 100644 2.18.4 -From 1c30de2e76553fe59202ee7a41d7454ee7fa9db0 Mon Sep 17 00:00:00 2001 +From 8a51a914de2d5cdc83a8f1c53af9e042676c1ac9 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 11 Jul 2019 17:55:43 +0100 -Subject: [PATCH 150/533] xhci: add quirk for host controllers that don't +Subject: [PATCH 150/580] xhci: add quirk for host controllers that don't update endpoint DCS Seen on a VLI VL805 PCIe to USB controller. For non-stream endpoints @@ -138154,10 +138154,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 84da8406d5b4..551ef6445c6b 100644 +index 5bbccc9a0179..96e37f60c7c2 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -269,8 +269,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -270,8 +270,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) pdev->device == 0x3432) xhci->quirks |= XHCI_BROKEN_STREAMS; @@ -138170,7 +138170,7 @@ index 84da8406d5b4..551ef6445c6b 100644 if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index db8612ec82d3..6cf0b04d2f6f 100644 +index 054840a69eb4..a9bd2e340ead 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -533,7 +533,10 @@ void xhci_find_new_dequeue_state(struct xhci_hcd *xhci, @@ -138215,14 +138215,14 @@ index db8612ec82d3..6cf0b04d2f6f 100644 /* diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index d90c0d5df3b3..0aa1ccede6b1 100644 +index d01241f1daf3..03e4280dbb5a 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1879,6 +1879,7 @@ struct xhci_hcd { - #define XHCI_SKIP_PHY_INIT BIT_ULL(37) +@@ -1880,6 +1880,7 @@ struct xhci_hcd { #define XHCI_DISABLE_SPARSE BIT_ULL(38) #define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39) -+#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(40) + #define XHCI_NO_SOFT_RETRY BIT_ULL(40) ++#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(41) unsigned int num_active_eps; unsigned int limit_active_eps; @@ -138230,10 +138230,10 @@ index d90c0d5df3b3..0aa1ccede6b1 100644 2.18.4 -From 04436fa1506f95535b2bc49d6937f95ce4de2f85 Mon Sep 17 00:00:00 2001 +From 6b98325f6694aef2ee1b3e1ac09b520d0e3a512e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Jul 2019 15:38:35 +0100 -Subject: [PATCH 151/533] i2c: bcm2835: Set clock-stretch timeout to 35ms +Subject: [PATCH 151/580] i2c: bcm2835: Set clock-stretch timeout to 35ms The BCM2835 I2C blocks have a register to set the clock-stretch timeout - how long the device is allowed to hold SCL low - in bus @@ -138283,10 +138283,10 @@ index 18b2e9e3d752..5b2589b6b9cc 100644 2.18.4 -From 1119680cc7bde1c2b925cb5e6d5dd7ecfc223510 Mon Sep 17 00:00:00 2001 +From 7267bf7e6a80d5c749b5c1cef94fa7ea2195265b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Aug 2019 15:23:14 +0100 -Subject: [PATCH 152/533] clk-bcm2835: Avoid null pointer exception +Subject: [PATCH 152/580] clk-bcm2835: Avoid null pointer exception clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating @@ -138318,10 +138318,10 @@ index 3c55594684cd..d686c51a68a9 100644 2.18.4 -From 0072e87a348f348a7fea3d76eb6b7d823ced028d Mon Sep 17 00:00:00 2001 +From e595509cc84dc81a5168502600d9a05b108dab2f Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 14 Jan 2019 15:13:17 -0800 -Subject: [PATCH 153/533] drm/v3d: HACK: gut runtime pm for now. +Subject: [PATCH 153/580] drm/v3d: HACK: gut runtime pm for now. Something is still unstable -- on starting a new glxgears from an idle X11, I get an MMU violation in high addresses. The CTS also failed @@ -138435,10 +138435,10 @@ index 5f581fe8c918..e6dffb116eb3 100644 2.18.4 -From 335eca6fb6d48012815335cba5595086f0332475 Mon Sep 17 00:00:00 2001 +From c53e140e1b9a60c1bf0c1768ea5a6e3810fad615 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 13:22:53 -0700 -Subject: [PATCH 154/533] drm/v3d: Clock V3D down when not in use. +Subject: [PATCH 154/580] drm/v3d: Clock V3D down when not in use. My various attempts at re-enabling runtime PM have failed, so just crank the clock down when V3D is idle to reduce power consumption. @@ -138606,10 +138606,10 @@ index 182c586525eb..b7b439de8660 100644 2.18.4 -From 78b4fd2795a91ef2dfd84320022d3f15481eee50 Mon Sep 17 00:00:00 2001 +From 3d556d3f1686876cdbd24ee95c72d3aff318f89f Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 9 May 2019 14:30:37 +0100 -Subject: [PATCH 155/533] drivers: char: add chardev for mmap'ing the RPiVid +Subject: [PATCH 155/580] drivers: char: add chardev for mmap'ing the RPiVid control registers Based on the gpiomem driver, allow mapping of the decoder register @@ -139064,10 +139064,10 @@ index b2d157091e12..f70a810c55f7 100644 2.18.4 -From 02d22e7f6ce95a48a120f0e3baf485bcc05f31fd Mon Sep 17 00:00:00 2001 +From 5402f65c8d37a25edd68ee7d54a8084a55e8c02f Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 1 Aug 2019 16:41:20 +0100 -Subject: [PATCH 156/533] hid: usb: Add device quirks for Freeway Airmouse T3 +Subject: [PATCH 156/580] hid: usb: Add device quirks for Freeway Airmouse T3 and MX3 These wireless mouse/keyboard combo remote control devices specify @@ -139088,7 +139088,7 @@ Signed-off-by: Jonathan Bell 2 files changed, 8 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 94180c63571e..95fa95ee0012 100644 +index 06813f297dcc..e476ca6aa80d 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -220,6 +220,9 @@ @@ -139101,7 +139101,7 @@ index 94180c63571e..95fa95ee0012 100644 #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1260,6 +1263,9 @@ +@@ -1263,6 +1266,9 @@ #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 @@ -139112,7 +139112,7 @@ index 94180c63571e..95fa95ee0012 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 bf7ecab5d9e5..3cde18e1be7b 100644 +index 2e38340e19df..bdc135f029bd 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 +139123,7 @@ index bf7ecab5d9e5..3cde18e1be7b 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 }, -@@ -190,6 +191,7 @@ static const struct hid_device_id hid_quirks[] = { +@@ -191,6 +192,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 +139135,10 @@ index bf7ecab5d9e5..3cde18e1be7b 100644 2.18.4 -From e6ad903dd58b610bb2864e9b727ec110f4b75ed2 Mon Sep 17 00:00:00 2001 +From 9f98546e1604b58a37ac22700e138af1735f42b5 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 16 Jul 2019 12:18:21 +0100 -Subject: [PATCH 157/533] Add HDMI1 facility to the driver. +Subject: [PATCH 157/580] 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 @@ -139149,7 +139149,7 @@ test those. 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -index 86b921030db7..4d5b99d8ae9d 100644 +index b42917c25050..eb8a8a5b7ec8 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c @@ -79,7 +79,11 @@ static int bcm2835_audio_alsa_newpcm(struct bcm2835_chip *chip, @@ -139228,10 +139228,10 @@ index 1b36475872d6..02f50768af96 100644 2.18.4 -From 9e3561b2c9ea5536dd9052f00fc2bf00826faa7a Mon Sep 17 00:00:00 2001 +From 3ea3646fb240d523965354c1089658639b96df28 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Aug 2019 08:51:43 +0100 -Subject: [PATCH 158/533] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail +Subject: [PATCH 158/580] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail Some combinations of Pi 4Bs and Ethernet switches don't reliably get a DCHP-assigned IP address, leaving the unit with a self=assigned 169.254 @@ -139285,10 +139285,10 @@ index 848c29c5c33d..8336558e4738 100644 2.18.4 -From 93d750a46e6fc3d690ae1d3a07ee90b87705275b Mon Sep 17 00:00:00 2001 +From 71f3d55efb266abcbd58c8ff153abb1882194962 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 13 Aug 2019 15:53:29 +0100 -Subject: [PATCH 159/533] xhci: Use more event ring segment table entries +Subject: [PATCH 159/580] 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 @@ -139335,7 +139335,7 @@ index 138ba4528dd3..994e13c11a3a 100644 "// Write ERST size = %i to ir_set 0 (some bits preserved)", val); diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 0aa1ccede6b1..b814cf58b39b 100644 +index 03e4280dbb5a..4f24ad7eccd9 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1649,8 +1649,8 @@ struct urb_priv { @@ -139353,10 +139353,10 @@ index 0aa1ccede6b1..b814cf58b39b 100644 2.18.4 -From 8b35023503f7ab20c0bca42bde0eb88551daa90c Mon Sep 17 00:00:00 2001 +From c2a039ae19974083d5575e8eb89b8f84ffeccd34 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 15 Aug 2019 12:02:34 +0100 -Subject: [PATCH 160/533] configs: arm64/bcm2711: Enable V3D +Subject: [PATCH 160/580] configs: arm64/bcm2711: Enable V3D Enable the V3D driver, which depends on BCM2835_POWER. @@ -139387,10 +139387,10 @@ index 9a5c44606337..b0e048697964 100644 2.18.4 -From e82dd3682a3436f03f7b4e3403ad6d6f5f8a3734 Mon Sep 17 00:00:00 2001 +From 8444ae8621b211ed7c033a26e04c9721e34ef52b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:16:56 +0100 -Subject: [PATCH 161/533] arch/arm: Add model string to cpuinfo +Subject: [PATCH 161/580] arch/arm: Add model string to cpuinfo Signed-off-by: Phil Elwell --- @@ -139429,10 +139429,10 @@ index 3f65d0ac9f63..6f39d21f4254 100644 2.18.4 -From 5077b2f211efa5106fea7b8e7aa02c941b042725 Mon Sep 17 00:00:00 2001 +From ea4e93a00a2fb9694d2bb20e2490214709494612 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:17:25 +0100 -Subject: [PATCH 162/533] arch/arm64: Add Revision, Serial, Model to cpuinfo +Subject: [PATCH 162/580] arch/arm64: Add Revision, Serial, Model to cpuinfo Signed-off-by: Phil Elwell --- @@ -139493,10 +139493,10 @@ index 77605aec25fe..721350d21074 100644 2.18.4 -From 997cfc6d6e19146a4f3a68a2f43ca1fb68dd66f3 Mon Sep 17 00:00:00 2001 +From ac91fa00c5acc96baaa1941c3a5bc8b4d62a4bde Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Aug 2019 13:34:30 +0100 -Subject: [PATCH 163/533] media: dt-bindings: Add binding for the Sony IMX219 +Subject: [PATCH 163/580] media: dt-bindings: Add binding for the Sony IMX219 sensor The IMX219 is an 8MPix CSI2 sensor, supporting 2 or 4 data lanes. @@ -139577,10 +139577,10 @@ index 000000000000..a02f1ce1e120 2.18.4 -From f0aaa0fc380f7eec15899c909aaaaeb6e41a95cc Mon Sep 17 00:00:00 2001 +From 289dc9241a401b4befe13d632d38718e9bc81f9a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:04:51 +0100 -Subject: [PATCH 164/533] v4l2: Add a Greyworld AWB mode. +Subject: [PATCH 164/580] v4l2: Add a Greyworld AWB mode. Adds a simple greyworld white balance preset, mainly for use with cameras without an IR filter (eg Raspberry Pi NoIR) @@ -139592,7 +139592,7 @@ Signed-off-by: Dave Stevenson 2 files changed, 2 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c -index bd7f330c941c..bc2157311f14 100644 +index cfe422d9f439..8d73cab469d1 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -275,6 +275,7 @@ const char * const *v4l2_ctrl_get_menu(u32 id) @@ -139619,10 +139619,10 @@ index a184c4939438..fbe96b80a748 100644 2.18.4 -From 07ae0a0601bc46a63ca472cb204fd9b9e19a6ed8 Mon Sep 17 00:00:00 2001 +From cc00c069278e5f62fdd926f22da219a604ee5eb6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:13:06 +0100 -Subject: [PATCH 165/533] staging: bcm2835-camera: Add greyworld AWB mode +Subject: [PATCH 165/580] staging: bcm2835-camera: Add greyworld AWB mode This is mainly used for the NoIR camera which has no IR filter and can completely confuse normal AWB presets. @@ -139664,10 +139664,10 @@ index 1793103b18fd..27bafc5f01d2 100644 2.18.4 -From 23d3873c4c3e70b5e69764cbf5659486354dceb1 Mon Sep 17 00:00:00 2001 +From e3e86fccea39886c82be33046ae40d674361121e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 18 Sep 2019 17:22:36 +0100 -Subject: [PATCH 166/533] drm/v3d: Delete pm_runtime support +Subject: [PATCH 166/580] drm/v3d: Delete pm_runtime support The pm_runtime was blocking changelist submission, so delete it as a temporary workaround. @@ -139734,10 +139734,10 @@ index 8986e7b96461..618503f2f2f1 100644 2.18.4 -From 0b940a5201be4236254ab28217c2c3d9d9e1cf15 Mon Sep 17 00:00:00 2001 +From fc96b433e4891541cae9f944e24e701571ac2632 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Sep 2019 09:26:41 +0100 -Subject: [PATCH 167/533] kbuild: Allow .dtbo overlays to be built piecemeal +Subject: [PATCH 167/580] 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,10 +139759,10 @@ Signed-off-by: Phil Elwell 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile -index bb3770be9779..68fbdd575b57 100644 +index 1d4a50ebe3b7..eef742a97205 100644 --- a/Makefile +++ b/Makefile -@@ -1337,6 +1337,9 @@ ifneq ($(dtstree),) +@@ -1353,6 +1353,9 @@ ifneq ($(dtstree),) %.dtb: include/config/kernel.release scripts_dtc $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ @@ -139776,10 +139776,10 @@ index bb3770be9779..68fbdd575b57 100644 2.18.4 -From 6d4ec57abaf000d6b88586b49eb3febaee530f62 Mon Sep 17 00:00:00 2001 +From 20bb4b7b6f26166809d2496d9d9d68027af0730a Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Thu, 19 Sep 2019 20:45:30 +0200 -Subject: [PATCH 168/533] ARM: bcm: Switch board, clk and pinctrl to bcm2711 +Subject: [PATCH 168/580] ARM: bcm: Switch board, clk and pinctrl to bcm2711 compatible After the decision to use bcm2711 compatible for upstream, we should @@ -139808,10 +139808,10 @@ index 282a023027fc..e538e0f899a5 100644 2.18.4 -From 792723a589a66198599d3ed6112138df32b1b9d5 Mon Sep 17 00:00:00 2001 +From bda93e70b90e3e0fe9f9a1c1810b6afd881f5dc8 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 24 Sep 2019 18:26:55 +0100 -Subject: [PATCH 169/533] Rename HDMI ALSA device names, check for enable state +Subject: [PATCH 169/580] 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 @@ -139830,7 +139830,7 @@ Signed-off-by: James Hughes 1 file changed, 63 insertions(+), 7 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -index 4d5b99d8ae9d..2f465dba54bf 100644 +index eb8a8a5b7ec8..f926784c622d 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c @@ -9,8 +9,9 @@ @@ -139953,10 +139953,10 @@ index 4d5b99d8ae9d..2f465dba54bf 100644 2.18.4 -From fc0aa180867315c304d305c9ced86608603d5271 Mon Sep 17 00:00:00 2001 +From b682e623655dd75f9dd9364075ff4a3a2b496221 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:08 +0200 -Subject: [PATCH 170/533] dt-bindings: Add binding for the Infineon IRS1125 +Subject: [PATCH 170/580] dt-bindings: Add binding for the Infineon IRS1125 sensor Adds a binding for the Infineon IRS1125 time-of-flight depth @@ -140026,10 +140026,10 @@ index 000000000000..25a48028c957 2.18.4 -From d635cac221d39dd8a96a19906dcb6568d892c0b1 Mon Sep 17 00:00:00 2001 +From f01cdaa606eabcfb098df53312e345a2ff38eae7 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:36 +0200 -Subject: [PATCH 171/533] media: i2c: Add a driver for the Infineon IRS1125 +Subject: [PATCH 171/580] media: i2c: Add a driver for the Infineon IRS1125 depth sensor The Infineon IRS1125 is a time of flight depth sensor that @@ -141271,10 +141271,10 @@ index 000000000000..dccaca23aa76 2.18.4 -From d5a9574179534e6df5be61e8a57d45308d7028ce Mon Sep 17 00:00:00 2001 +From c9bfdfe2f85360975cc261535415b9d63b45a18b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 14:01:41 +0000 -Subject: [PATCH 172/533] drm/v3d: Don't clear MMU control bits on exception +Subject: [PATCH 172/580] drm/v3d: Don't clear MMU control bits on exception MMU exception conditions are reported in the V3D_MMU_CTRL register as write-1-to-clear (W1C) bits. The MMU interrupt handling code clears any @@ -141311,10 +141311,10 @@ index c88686489b88..b804783e2795 100644 2.18.4 -From d2ade2d9b1559b75308af5b3743023b13305ee99 Mon Sep 17 00:00:00 2001 +From efbb73d1b2cbdaf1cb03c9fcbf00c95c8d4b968d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 20:18:08 +0000 -Subject: [PATCH 173/533] drm/v3d: Suppress all but the first MMU error +Subject: [PATCH 173/580] drm/v3d: Suppress all but the first MMU error The v3d driver currently encounters a lot of MMU PTE exceptions, so only log the first to avoid swamping the kernel log. @@ -141356,10 +141356,10 @@ index b804783e2795..063418907a19 100644 2.18.4 -From 212b954a6df4ee03abae2416b3de1ae3102340ec Mon Sep 17 00:00:00 2001 +From f127498b2f3a313478478b45be3a7fe538e05e89 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Nov 2019 16:41:21 +0000 -Subject: [PATCH 174/533] drm/v3d: Plug dma_fence leak +Subject: [PATCH 174/580] drm/v3d: Plug dma_fence leak The irq_fence and done_fence are given a reference that is never released. The necessary dma_fence_put()s seem to have been @@ -141390,10 +141390,10 @@ index 49c7920608e2..bfbe33a9492d 100644 2.18.4 -From 757e8596357f3d4ab9d3f28005f1144bd98d97d2 Mon Sep 17 00:00:00 2001 +From 3044bd10b7f2b0a702ea5f5a332f5e703ac08756 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:48 +0000 -Subject: [PATCH 175/533] staging: vchiq_arm: Register vcsm-cma as a platform +Subject: [PATCH 175/580] staging: vchiq_arm: Register vcsm-cma as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -141405,7 +141405,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 3 insertions(+) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index 4d10e6025926..e4781e8544ce 100644 +index b8579af3948c..5d4b976820fa 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -109,6 +109,7 @@ static struct class *vchiq_class; @@ -141416,7 +141416,7 @@ index 4d10e6025926..e4781e8544ce 100644 static struct vchiq_drvdata bcm2835_drvdata = { .cache_line_size = 32, -@@ -2763,6 +2764,7 @@ static int vchiq_probe(struct platform_device *pdev) +@@ -2765,6 +2766,7 @@ static int vchiq_probe(struct platform_device *pdev) VCHIQ_VERSION, VCHIQ_VERSION_MIN, MAJOR(vchiq_devid), MINOR(vchiq_devid)); @@ -141424,7 +141424,7 @@ index 4d10e6025926..e4781e8544ce 100644 bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); -@@ -2779,6 +2781,7 @@ static int vchiq_remove(struct platform_device *pdev) +@@ -2781,6 +2783,7 @@ static int vchiq_remove(struct platform_device *pdev) { platform_device_unregister(bcm2835_audio); platform_device_unregister(bcm2835_camera); @@ -141436,10 +141436,10 @@ index 4d10e6025926..e4781e8544ce 100644 2.18.4 -From 0205c8df401e278f57716fda9eb41a65d9038a00 Mon Sep 17 00:00:00 2001 +From 70da7e166de65d9d84861a0176b42fb170aec7f4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:58 +0000 -Subject: [PATCH 176/533] staging: vchiq_arm: Register bcm2835-codec as a +Subject: [PATCH 176/580] staging: vchiq_arm: Register bcm2835-codec as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -141451,7 +141451,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 3 insertions(+) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index e4781e8544ce..3a2a7c1539af 100644 +index 5d4b976820fa..3bbe533007e5 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -109,6 +109,7 @@ static struct class *vchiq_class; @@ -141462,7 +141462,7 @@ index e4781e8544ce..3a2a7c1539af 100644 static struct platform_device *vcsm_cma; static struct vchiq_drvdata bcm2835_drvdata = { -@@ -2765,6 +2766,7 @@ static int vchiq_probe(struct platform_device *pdev) +@@ -2767,6 +2768,7 @@ static int vchiq_probe(struct platform_device *pdev) MAJOR(vchiq_devid), MINOR(vchiq_devid)); vcsm_cma = vchiq_register_child(pdev, "vcsm-cma"); @@ -141470,7 +141470,7 @@ index e4781e8544ce..3a2a7c1539af 100644 bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); -@@ -2781,6 +2783,7 @@ static int vchiq_remove(struct platform_device *pdev) +@@ -2783,6 +2785,7 @@ static int vchiq_remove(struct platform_device *pdev) { platform_device_unregister(bcm2835_audio); platform_device_unregister(bcm2835_camera); @@ -141482,10 +141482,10 @@ index e4781e8544ce..3a2a7c1539af 100644 2.18.4 -From d6fa26929c5685bcdfdaa7464d4d60c8d739b304 Mon Sep 17 00:00:00 2001 +From 08bb8415da344fe099ff6038ac7721e627be29f4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Nov 2019 11:59:01 +0000 -Subject: [PATCH 177/533] net: bcmgenet: The second IRQ is optional +Subject: [PATCH 177/580] net: bcmgenet: The second IRQ is optional As of 5.4, the kernel logs errors for absent IRQs unless requested with platform_get_irq_optional. @@ -141512,10 +141512,10 @@ index 063418907a19..0f7a23f051df 100644 2.18.4 -From d2a3d289a05acecf3fd88de9e08c3c8565a09e36 Mon Sep 17 00:00:00 2001 +From c8acf863cdd9d87efcbf099e1ba06d74bb50300c Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 31 Oct 2019 14:39:44 +0000 -Subject: [PATCH 178/533] net:phy:2711 Allow ethernet LED mode to be set via +Subject: [PATCH 178/580] net:phy:2711 Allow ethernet LED mode to be set via device tree Add device tree entries and code to allow the specification of @@ -141527,10 +141527,10 @@ Signed-off-by: James Hughes 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c -index cd271de9609b..457b214d3601 100644 +index dbed15dc0fe7..10d70bde381c 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c -@@ -257,6 +257,9 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) +@@ -313,6 +313,9 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) static int bcm54xx_config_init(struct phy_device *phydev) { int reg, err, val; @@ -141540,7 +141540,7 @@ index cd271de9609b..457b214d3601 100644 reg = phy_read(phydev, MII_BCM54XX_ECR); if (reg < 0) -@@ -305,6 +308,8 @@ static int bcm54xx_config_init(struct phy_device *phydev) +@@ -368,6 +371,8 @@ static int bcm54xx_config_init(struct phy_device *phydev) bcm54xx_phydsp_config(phydev); @@ -141549,7 +141549,7 @@ index cd271de9609b..457b214d3601 100644 /* Encode link speed into LED1 and LED3 pair (green/amber). * Also flash these two LEDs on activity. This means configuring * them for MULTICOLOR and encoding link/activity into them. -@@ -314,8 +319,8 @@ static int bcm54xx_config_init(struct phy_device *phydev) +@@ -377,8 +382,8 @@ static int bcm54xx_config_init(struct phy_device *phydev) bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val); val = BCM_LED_MULTICOLOR_IN_PHASE | @@ -141564,10 +141564,10 @@ index cd271de9609b..457b214d3601 100644 2.18.4 -From af76817931ed07566d9f08f649a2d9efb9e11f9e Mon Sep 17 00:00:00 2001 +From 981d9ec5f86cb89f0038885e72f8e402daf91329 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 7 Nov 2019 14:59:59 +0000 -Subject: [PATCH 179/533] net:phy:2711 Change the default ethernet LED actions +Subject: [PATCH 179/580] net:phy:2711 Change the default ethernet LED actions This should return default behaviour back to that of previous releases. @@ -141576,10 +141576,10 @@ releases. 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c -index 457b214d3601..84ec5f2fae73 100644 +index 10d70bde381c..6de9b072b6b9 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c -@@ -258,7 +258,7 @@ static int bcm54xx_config_init(struct phy_device *phydev) +@@ -314,7 +314,7 @@ static int bcm54xx_config_init(struct phy_device *phydev) { int reg, err, val; u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT, @@ -141588,7 +141588,7 @@ index 457b214d3601..84ec5f2fae73 100644 struct device_node *np = phydev->mdio.dev.of_node; reg = phy_read(phydev, MII_BCM54XX_ECR); -@@ -310,10 +310,6 @@ static int bcm54xx_config_init(struct phy_device *phydev) +@@ -373,10 +373,6 @@ static int bcm54xx_config_init(struct phy_device *phydev) of_property_read_u32_array(np, "led-modes", led_modes, 2); @@ -141603,10 +141603,10 @@ index 457b214d3601..84ec5f2fae73 100644 2.18.4 -From 23fce296535c10b544868f68c5e71f8cf19884d5 Mon Sep 17 00:00:00 2001 +From a95cf65f854db521b74e94c5c2d37e1736a92279 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 23 Aug 2019 16:34:38 +0100 -Subject: [PATCH 180/533] v3d_drv: Handle missing clock more gracefully +Subject: [PATCH 180/580] v3d_drv: Handle missing clock more gracefully Signed-off-by: popcornmix --- @@ -141636,10 +141636,10 @@ index 065fb20cc4a8..bfbea29c6c1f 100644 2.18.4 -From a898ca9f059d09982f02bab2c0946b6ec4ec7fc7 Mon Sep 17 00:00:00 2001 +From 28328ade927c073dfe2e4b6769289a2f69ac9fb6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Sep 2019 17:59:14 +0100 -Subject: [PATCH 181/533] v3d_gem: Kick the clock so firmware knows we are +Subject: [PATCH 181/580] v3d_gem: Kick the clock so firmware knows we are using firmware clock interface Setting the v3d clock to low value allows firmware to handle dvfs in case @@ -141669,10 +141669,10 @@ index bfbe33a9492d..b4fb899a9409 100644 2.18.4 -From 883b1ac008e5ddff98a889bb39d24567739e1e98 Mon Sep 17 00:00:00 2001 +From ae33c3c90ff19da2df0d4bb2ffba3477fc4044e2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 9 Sep 2019 15:49:56 +0100 -Subject: [PATCH 182/533] clk-raspberrypi: Allow cpufreq driver to also adjust +Subject: [PATCH 182/580] clk-raspberrypi: Allow cpufreq driver to also adjust gpu clocks For performance/power it is beneficial to adjust gpu clocks with arm clock. @@ -141700,10 +141700,10 @@ index f89b9cfc4309..f4884a5b598a 100644 2.18.4 -From e170aadc50db963283a487f0e37a9997b5ea9c96 Mon Sep 17 00:00:00 2001 +From ca3bc34fece40d97c5cee3afe5e2db6225948224 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 3 Sep 2019 20:28:00 +0100 -Subject: [PATCH 183/533] clk-bcm2835: Disable v3d clock +Subject: [PATCH 183/580] clk-bcm2835: Disable v3d clock This is controlled by firmware, see clk-raspberrypi.c @@ -141764,10 +141764,10 @@ index d686c51a68a9..84f24244d1b5 100644 2.18.4 -From 0ddd5798a4d4dd1cf9bf5f839a4f6b4967295af0 Mon Sep 17 00:00:00 2001 +From c5634574eea5203ad85eeaacba4013be26566f5d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Nov 2019 16:23:32 +0000 -Subject: [PATCH 184/533] drm/v3d: Set dma_mask as well as coherent_dma_mask +Subject: [PATCH 184/580] drm/v3d: Set dma_mask as well as coherent_dma_mask Both coherent_dma_mask and dma_mask act as constraints on allocations and bounce buffer usage, so be sure to set dma_mask to the appropriate @@ -141797,10 +141797,10 @@ index bfbea29c6c1f..3237f47a4792 100644 2.18.4 -From 730c3fba120337f3665d3ba25412d08f61dbc927 Mon Sep 17 00:00:00 2001 +From 46983e4c182ad3a90f47c6ace7918b3892c9b07a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 29 Jan 2019 16:13:25 +0000 -Subject: [PATCH 185/533] staging: vchiq_arm: Set up dma ranges on child +Subject: [PATCH 185/580] staging: vchiq_arm: Set up dma ranges on child devices The VCHIQ driver now loads the audio, camera, codec, and vc-sm @@ -141816,10 +141816,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 6 insertions(+) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index 3a2a7c1539af..a9502b0a53a5 100644 +index 3bbe533007e5..ed6c1747be64 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -2708,6 +2708,12 @@ vchiq_register_child(struct platform_device *pdev, const char *name) +@@ -2710,6 +2710,12 @@ vchiq_register_child(struct platform_device *pdev, const char *name) child = NULL; } @@ -141836,10 +141836,10 @@ index 3a2a7c1539af..a9502b0a53a5 100644 2.18.4 -From 5f4f65eed056fcdec61039f13f62e0f97d970831 Mon Sep 17 00:00:00 2001 +From 0eb419263d301d71cef6c00c6ec79b2bea27edf9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Jun 2019 12:15:50 +0100 -Subject: [PATCH 186/533] staging: vchiq: Use the old dma controller for OF +Subject: [PATCH 186/580] 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 @@ -141854,10 +141854,10 @@ Signed-off-by: Dave Stevenson 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index a9502b0a53a5..afbf76c83cf6 100644 +index ed6c1747be64..5e704b366676 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -2694,6 +2694,7 @@ vchiq_register_child(struct platform_device *pdev, const char *name) +@@ -2696,6 +2696,7 @@ vchiq_register_child(struct platform_device *pdev, const char *name) { struct platform_device_info pdevinfo; struct platform_device *child; @@ -141865,7 +141865,7 @@ index a9502b0a53a5..afbf76c83cf6 100644 memset(&pdevinfo, 0, sizeof(pdevinfo)); -@@ -2709,10 +2710,20 @@ vchiq_register_child(struct platform_device *pdev, const char *name) +@@ -2711,10 +2712,20 @@ vchiq_register_child(struct platform_device *pdev, const char *name) } /* @@ -141893,10 +141893,10 @@ index a9502b0a53a5..afbf76c83cf6 100644 2.18.4 -From 42865be8bee66f5c1adb23de4c588b3c1647e920 Mon Sep 17 00:00:00 2001 +From 72b6d8514db7a23f6f15e200aa67486abc55dbe2 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Fri, 27 Dec 2019 11:40:56 +0100 -Subject: [PATCH 187/533] ARM: bcm: Backport BCM2711 support from upstream +Subject: [PATCH 187/580] ARM: bcm: Backport BCM2711 support from upstream Make the BCM2711 a different machine, but keep it in board_bcm2835. @@ -141946,10 +141946,10 @@ index e538e0f899a5..91a758c61f48 100644 2.18.4 -From b797c423c0c087fc57980994f3f511d2c91fbb2f Mon Sep 17 00:00:00 2001 +From ce5b590af1676510c306d0193200e854265ebc1d 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/533] Initialise rpi-firmware before clk-bcm2835 +Subject: [PATCH 188/580] Initialise rpi-firmware before clk-bcm2835 The IMA (Integrity Measurement Architecture) looks for a TPM (Trusted Platform Module) having been registered when it initialises; otherwise @@ -142001,10 +142001,10 @@ index e7df000f8b2c..8da5be17b906 100644 2.18.4 -From 3170ba63d5322dc90f6b72d2fb52dff327b99c3c Mon Sep 17 00:00:00 2001 +From 4b6d9e4083adf3f13602cc1b4897f2cefc6af737 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 17:30:46 +0000 -Subject: [PATCH 189/533] staging: vchiq_arm: Give vchiq children DT nodes +Subject: [PATCH 189/580] 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 @@ -142018,10 +142018,10 @@ Signed-off-by: Phil Elwell 1 file changed, 8 insertions(+) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index afbf76c83cf6..0da9b267797d 100644 +index 5e704b366676..8d518bd9a6cd 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -2703,12 +2703,20 @@ vchiq_register_child(struct platform_device *pdev, const char *name) +@@ -2705,12 +2705,20 @@ vchiq_register_child(struct platform_device *pdev, const char *name) pdevinfo.id = PLATFORM_DEVID_NONE; pdevinfo.dma_mask = DMA_BIT_MASK(32); @@ -142046,10 +142046,10 @@ index afbf76c83cf6..0da9b267797d 100644 2.18.4 -From dc1e742ab0c6a142c71cdf26f9c3dee653787bc6 Mon Sep 17 00:00:00 2001 +From f2499b0b2d9f7d17bf5e6d5d3277b4bbce15bef6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 16:04:30 +0000 -Subject: [PATCH 190/533] pinctrl: bcm2835: Remove gpiochip on error +Subject: [PATCH 190/580] pinctrl: bcm2835: Remove gpiochip on error A failure in gpiochip_irqchip_add leads to a leak of a gpiochip. Fix the leak with the use of devm_gpiochip_add_data. @@ -142077,10 +142077,10 @@ index bbf761c41dc5..2696029e1689 100644 2.18.4 -From e8c396c4387a47e57993eee9dd29f46188db0a86 Mon Sep 17 00:00:00 2001 +From e7a171f41668719bc395ab5c1db276ff9d8f10b3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 14:05:42 +0000 -Subject: [PATCH 191/533] pinctrl: bcm2835: Change init order for gpio hogs +Subject: [PATCH 191/580] pinctrl: bcm2835: Change init order for gpio hogs pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio side is registered first, but this breaks gpio hogs (which are @@ -142161,10 +142161,10 @@ index 2696029e1689..edb3a863871d 100644 2.18.4 -From 2720a96b132e32fca87f3f6db478eda9e3f93b01 Mon Sep 17 00:00:00 2001 +From 84045e8fa9e850d5f34cdb589eafd1487255ac15 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 25 Feb 2020 17:38:20 +0000 -Subject: [PATCH 192/533] pinctrl: bcm2835: Accept fewer than expected IRQs +Subject: [PATCH 192/580] pinctrl: bcm2835: Accept fewer than expected IRQs The downstream .dts files only request two GPIO IRQs. Truncate the array of parent IRQs when irq_of_parse_and_map returns 0. @@ -142198,10 +142198,10 @@ index edb3a863871d..bda29f421e78 100644 2.18.4 -From 0e6f455a0efb90b01c076500bd69b7c3ba28f1b7 Mon Sep 17 00:00:00 2001 +From a17869a5cc08e3bd00cb1ca31a9d1664d9158bc6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:40:19 +0000 -Subject: [PATCH 193/533] drivers: char: vcio: Use common compat header +Subject: [PATCH 193/580] drivers: char: vcio: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -142227,10 +142227,10 @@ index d2598663a2b5..a39155a94fb7 100644 2.18.4 -From 9c17dfe44f03399a75dfa3138916c0dd28a58f73 Mon Sep 17 00:00:00 2001 +From 05492930517be7b8a9029b9b2ce2fc456467989e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:42:23 +0000 -Subject: [PATCH 194/533] video: fbdev: bcm2708_fb: Use common compat header +Subject: [PATCH 194/580] video: fbdev: bcm2708_fb: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -142256,10 +142256,10 @@ index 0e9ec3f593b8..17e9260655e4 100644 2.18.4 -From 07adaedb7ff22d373b92147e1741bfb13f940ed0 Mon Sep 17 00:00:00 2001 +From cc2c293801352cdfc897333ea01a66b57be213e2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 6 Feb 2020 12:23:15 +0000 -Subject: [PATCH 195/533] of: overlay: Correct symbol path fixups +Subject: [PATCH 195/580] 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 +142299,10 @@ index 50bbe0edf538..7e585d201ba0 100644 2.18.4 -From 99137021272b09c31f0e58d2c7ae726f763d7916 Mon Sep 17 00:00:00 2001 +From 30c193fb88033e9d846f545bf31a0400870faa55 Mon Sep 17 00:00:00 2001 From: Jim Quinlan Date: Mon, 15 Jan 2018 18:28:39 -0500 -Subject: [PATCH 196/533] dt-bindings: pci: Add DT docs for Brcmstb PCIe device +Subject: [PATCH 196/580] dt-bindings: pci: Add DT docs for Brcmstb PCIe device The DT bindings description of the Brcmstb PCIe device is described. This node can be used by almost all Broadcom settop box chips, using @@ -142383,10 +142383,10 @@ index 000000000000..a1a9ad5e70ca 2.18.4 -From 0dd4d16a4b5f25d3c93c121f05d25f22f9cfdde9 Mon Sep 17 00:00:00 2001 +From 651a922db5aec50d610f0c6879b98aa54585ad00 Mon Sep 17 00:00:00 2001 From: Nataliya Korovkina Date: Thu, 12 Mar 2020 17:22:53 -0400 -Subject: [PATCH 197/533] Kbuild: Allow .dtbo overlays to be built, adjust. +Subject: [PATCH 197/580] Kbuild: Allow .dtbo overlays to be built, adjust. This is adjustment to commit d368ceaacdccd7732dc97d1d7987bdf7149d62e3 "kbuild: Allow .dtbo overlays to be built piecemeal" @@ -142399,10 +142399,10 @@ Signed-off-by: Nataliya Korovkina 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 68fbdd575b57..dc34b4a48f29 100644 +index eef742a97205..89704cbfa616 100644 --- a/Makefile +++ b/Makefile -@@ -1337,7 +1337,7 @@ ifneq ($(dtstree),) +@@ -1353,7 +1353,7 @@ ifneq ($(dtstree),) %.dtb: include/config/kernel.release scripts_dtc $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ @@ -142415,10 +142415,10 @@ index 68fbdd575b57..dc34b4a48f29 100644 2.18.4 -From 376e0894a8a61d6ab73a97abcc6ed38fb5c207e0 Mon Sep 17 00:00:00 2001 +From 38a67590d57fd5da1766ae9315516be22d7e7d0c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 Apr 2020 11:22:44 +0100 -Subject: [PATCH 198/533] bcmgenet: Disable skip_umac_reset by default +Subject: [PATCH 198/580] bcmgenet: Disable skip_umac_reset by default Possible fixed upstream by 'net: bcmgenet: keep MAC in reset until PHY is up' @@ -142444,10 +142444,10 @@ index 8336558e4738..ae7011c1e1f7 100644 2.18.4 -From 30e8209d6230dc02469433c622854fcbd37b4a03 Mon Sep 17 00:00:00 2001 +From 8dd6aec7323559d06d8110048db96165a0c50ef4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:22:06 +0000 -Subject: [PATCH 199/533] drm/fourcc: Add packed 10bit YUV 4:2:0 format +Subject: [PATCH 199/580] 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). @@ -142475,7 +142475,7 @@ index 722c7ebe4e88..bdc7c605f43e 100644 unsigned int i; diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h -index 82f327801267..f6fae56328de 100644 +index 5498d7a6556a..3aeab2680295 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -287,6 +287,13 @@ extern "C" { @@ -142507,10 +142507,10 @@ index 82f327801267..f6fae56328de 100644 2.18.4 -From 7d551b89c23c353f45578031461e4b1dc05e4c0c Mon Sep 17 00:00:00 2001 +From 4c2328301e90a221aa8fbd3165cbe4f7d0af562a Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:25 +0100 -Subject: [PATCH 200/533] media: uapi: hevc: Add scaling matrix control +Subject: [PATCH 200/580] media: uapi: hevc: Add scaling matrix control Taken from https://patchwork.linuxtv.org/patch/60728/ Changes (mainly documentation) have been requested. @@ -142590,7 +142590,7 @@ index d585909bc4e2..f817c643761b 100644 Buffers associated with this pixel format must contain the appropriate number of macroblocks to decode a full corresponding frame. diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c -index bc2157311f14..9dd3b7fe02fe 100644 +index 8d73cab469d1..653b0040a5f7 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -1022,6 +1022,7 @@ const char *v4l2_ctrl_get_name(u32 id) @@ -142621,7 +142621,7 @@ index bc2157311f14..9dd3b7fe02fe 100644 case V4L2_CTRL_TYPE_AREA: area = p; if (!area->width || !area->height) -@@ -2627,6 +2634,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl, +@@ -2628,6 +2635,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl, case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params); break; @@ -142669,10 +142669,10 @@ index 1009cf0891cc..1592e52c3614 100644 2.18.4 -From cb23faf1e027f68114a6d9f378b8b2d9482cdb99 Mon Sep 17 00:00:00 2001 +From e61f82a6779c3fbfd0c1fc1a2f869939c859172b Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 13 Dec 2019 17:04:27 +0100 -Subject: [PATCH 201/533] media: uapi: hevc: Add segment address field +Subject: [PATCH 201/580] media: uapi: hevc: Add segment address field From https://patchwork.linuxtv.org/patch/60725/ Changes requested, but mainly docs. @@ -142738,10 +142738,10 @@ index 1592e52c3614..3e2e32098312 100644 2.18.4 -From d2d5060ea61f3fc106a9bc1d9182a451414abc5c Mon Sep 17 00:00:00 2001 +From ba7e2a7f524d19b886150c4fccbc6de365d52b5d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 23 Mar 2020 18:34:01 +0000 -Subject: [PATCH 202/533] media: hevc_ctrls: Add slice param dependent slice +Subject: [PATCH 202/580] media: hevc_ctrls: Add slice param dependent slice segment Adds V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT define. @@ -142767,10 +142767,10 @@ index 3e2e32098312..0ba7735465a2 100644 2.18.4 -From 35174ef2a64fc6f8d8e9b9ac9ba509f482aad618 Mon Sep 17 00:00:00 2001 +From 6ccf9341b89de1c7b2bbda6d845e30cbbcc16d3e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 23 Mar 2020 19:00:17 +0000 -Subject: [PATCH 203/533] media: uapi: Add hevc ctrls for WPP decoding +Subject: [PATCH 203/580] media: uapi: Add hevc ctrls for WPP decoding WPP can allow greater parallelism within the decode, but needs offset information to be passed in. @@ -142813,10 +142813,10 @@ index 0ba7735465a2..9c976b3cf092 100644 2.18.4 -From b8241a32f510502a507c0b3cb8d366c70ec3dde1 Mon Sep 17 00:00:00 2001 +From d80517027e11ecc633e2f5cfc0f27c1c3756a20d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:28:21 +0000 -Subject: [PATCH 204/533] media: videodev2.h: Add a format for column YUV4:2:0 +Subject: [PATCH 204/580] 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 @@ -143099,7 +143099,7 @@ index 4a05a105a9e6..e4514f1a35f1 100644 pixfmt-nv16m pixfmt-nv24 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index eeff398fbdcc..73b162a10571 100644 +index 9eda8b91d17a..cc7cb09b7116 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1325,6 +1325,8 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) @@ -143130,10 +143130,10 @@ index 56c443cc2c3d..568801746d2d 100644 2.18.4 -From c697257831bb26d0160d98764e14f61343dbe875 Mon Sep 17 00:00:00 2001 +From d95044151026cd57ce7caae6354cfd72db4d973f Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 14:46:54 +0000 -Subject: [PATCH 205/533] media: v4l2-mem2mem: allow request job buffer +Subject: [PATCH 205/580] media: v4l2-mem2mem: allow request job buffer processing after job finish Allow the capture buffer to be detached from a v4l2 request job such @@ -143412,10 +143412,10 @@ index c203047eb834..260593fffbc8 100644 2.18.4 -From 09fbd70b77b993b888df2f0f5f62fdc8eca04f72 Mon Sep 17 00:00:00 2001 +From 4433c91a789ae98029cb78bbfdf3303ca9ed721f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Mar 2020 10:53:16 +0000 -Subject: [PATCH 206/533] media: dt-bindings: media: Add binding for the +Subject: [PATCH 206/580] media: dt-bindings: media: Add binding for the Raspberry PI HEVC decoder Adds a binding for the HEVC decoder found on the BCM2711 / Raspberry Pi 4. @@ -143506,7 +143506,7 @@ index 000000000000..ce6b81a10303 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 29c300b73e89..f0dc2b9527e0 100644 +index 4b0478749279..da6f87b1f53e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3417,6 +3417,13 @@ N: bcm113* @@ -143527,10 +143527,10 @@ index 29c300b73e89..f0dc2b9527e0 100644 2.18.4 -From 71fd2116cf0992588e99247ea3ded42be5c11228 Mon Sep 17 00:00:00 2001 +From d2b720aa8489364662d57fa3b92d937a8fc4b4fe Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 18:30:41 +0000 -Subject: [PATCH 207/533] staging: media: Add Raspberry Pi V4L2 H265 decoder +Subject: [PATCH 207/580] staging: media: Add Raspberry Pi V4L2 H265 decoder This driver is for the HEVC/H265 decoder block on the Raspberry Pi 4, and conforms to the V4L2 stateless decoder API. @@ -147909,10 +147909,10 @@ index 000000000000..9c4f3fb2f9f6 2.18.4 -From b586d8b93b26d4cf1016f83dce5a5a6ed36be8be Mon Sep 17 00:00:00 2001 +From 0475f96eb5a0ea52c66e8a24e36219542c5b0197 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 6 Dec 2019 13:05:27 +0100 -Subject: [PATCH 208/533] mmc: sdhci: Silence MMC warnings +Subject: [PATCH 208/580] mmc: sdhci: Silence MMC warnings When the MMC isn't plugged in, the driver will spam the console which is pretty annoying when using NFS. @@ -147923,7 +147923,7 @@ Signed-off-by: Maxime Ripard 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c -index 3561ae8a481a..97c6634ecf9c 100644 +index 6edf9fffd934..a72823b45f77 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -41,7 +41,7 @@ @@ -147957,10 +147957,10 @@ index 3561ae8a481a..97c6634ecf9c 100644 2.18.4 -From 9219e9d64f52806761098d58a92f4fc4ef0fd4f7 Mon Sep 17 00:00:00 2001 +From f0f8462fe2c51fbdc4509dd00a1e17a6bf9b7e1e Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 17:51:09 +0100 -Subject: [PATCH 209/533] dt-bindings: clock: Add a binding for the RPi +Subject: [PATCH 209/580] dt-bindings: clock: Add a binding for the RPi Firmware clocks The firmare running on the RPi VideoCore can be used to discover and @@ -148027,10 +148027,10 @@ index 000000000000..d37bc311321d 2.18.4 -From ed866079ce08738c0f9e06ba245d897df05e4c0b Mon Sep 17 00:00:00 2001 +From eddbfbb7981968d8aa876bbbea987fac6f891f90 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 13 Feb 2020 16:45:24 +0100 -Subject: [PATCH 210/533] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI +Subject: [PATCH 210/580] dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI controllers bindings The HDMI controllers found in the BCM2711 SoC need some adjustments to the @@ -148207,10 +148207,10 @@ index f54b4e4808f0..899d8cfa1731 100644 2.18.4 -From 682b4b3ad78dd17a1dfb070136bf12140379e911 Mon Sep 17 00:00:00 2001 +From 671539b89ae8fb86b7475c5a93799555d8b708db Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 27 Jan 2020 10:22:44 +0000 -Subject: [PATCH 211/533] drm: Checking of the pitch is only valid for linear +Subject: [PATCH 211/580] drm: Checking of the pitch is only valid for linear formats framebuffer_check was computing a minimum pitch value and ensuring @@ -148253,10 +148253,10 @@ index 2f5b0c2bb0fe..89ced6af9c5c 100644 2.18.4 -From a7fde87e0a2ebcb741f80bd4d610430f401093ee Mon Sep 17 00:00:00 2001 +From 6c626d65495fbead6a42e98f6881bd49e6c67305 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Apr 2020 11:59:39 +0100 -Subject: [PATCH 212/533] overlays: Fix dtc warnings in i2c-gpio +Subject: [PATCH 212/580] overlays: Fix dtc warnings in i2c-gpio Better late than never. @@ -148283,10 +148283,10 @@ index 63231b5d7c0c..2323a61edf07 100644 2.18.4 -From 9bf3a2e0be8e7bc5836053e96c528ac423e54c91 Mon Sep 17 00:00:00 2001 +From 45cfa1b96ec1bca6d6e190e08564a3f02638d3ab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 22:18:52 +0100 -Subject: [PATCH 213/533] driver: char: rpivid: Remove legacy name support +Subject: [PATCH 213/580] driver: char: rpivid: Remove legacy name support Signed-off-by: Phil Elwell --- @@ -148342,10 +148342,10 @@ index fbf3d4f3fe0c..5f4c91924ec1 100644 2.18.4 -From f056e2c11e82998c7399448e3d5601cfb2855bcf Mon Sep 17 00:00:00 2001 +From 6c794a50f3488185c0d4dba805f29607da146294 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Apr 2020 10:46:19 +0100 -Subject: [PATCH 214/533] spi: Force CS_HIGH if GPIO descriptors are used +Subject: [PATCH 214/580] 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,7 +148375,7 @@ Signed-off-by: Phil Elwell 1 file changed, 9 insertions(+) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c -index 7694e1ae5b0b..994576ff2da9 100644 +index 4257a2d368f7..8b283b2c1668 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -3322,6 +3322,7 @@ static int __spi_validate_bits_per_word(struct spi_controller *ctlr, @@ -148405,10 +148405,10 @@ index 7694e1ae5b0b..994576ff2da9 100644 2.18.4 -From 2527d2609d18c6ae6ab57d54f66c43b573f53fab Mon Sep 17 00:00:00 2001 +From 7286b73d08e2d50ff3a0895903399cc932398d0a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Apr 2020 11:30:23 +0100 -Subject: [PATCH 215/533] driver: char: rpivid: Don't map more than wanted +Subject: [PATCH 215/580] driver: char: rpivid: Don't map more than wanted Limit mappings to the permitted range, but don't map more than asked for otherwise we walk off the end of the allocated VMA. @@ -148462,10 +148462,10 @@ index 5f4c91924ec1..9f38083f4cb6 100644 2.18.4 -From 80d2b5894cbb37d3bb631f0ec9f87124ff6ec7e6 Mon Sep 17 00:00:00 2001 +From f6216d068d176689506ef0cdf85d6c184e682523 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:39:49 +0100 -Subject: [PATCH 216/533] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 216/580] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add driver for the Unicam camera receiver block on @@ -148491,7 +148491,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index f0dc2b9527e0..10d2d88cd6cc 100644 +index da6f87b1f53e..8cecd3fd5dad 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3425,7 +3425,7 @@ F: Documentation/devicetree/bindings/media/rpivid_hevc.jaml @@ -151193,10 +151193,10 @@ index 000000000000..ae059a171d0f 2.18.4 -From 582a5c62f6fe950dc1a4d54542f213410432a04a Mon Sep 17 00:00:00 2001 +From 7896e40ca1fc14c873e585593a1397a8391a86bd Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:46:29 +0100 -Subject: [PATCH 217/533] media: uapi: v4l2-core: Add sensor ancillary data +Subject: [PATCH 217/580] media: uapi: v4l2-core: Add sensor ancillary data V4L2 foucc type. Add V4L2_META_FMT_SENSOR_DATA format 4CC. @@ -151264,7 +151264,7 @@ index 000000000000..4a67e204d08a +and cannot be modified with a call to :c:type:`VIDIOC_SUBDEV_S_FMT`. + diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index 73b162a10571..a8b1b87f7a98 100644 +index cc7cb09b7116..dd6cd2dabdb7 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1404,6 +1404,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) @@ -151291,10 +151291,10 @@ index 568801746d2d..d93d5bb7059b 100644 2.18.4 -From 15b562797785acadf19cdbdcb67e5e0722723415 Mon Sep 17 00:00:00 2001 +From 4721fae8bb2b6bc1df84d0a7c1739f56f519d26f Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Jan 2020 14:06:47 +0000 -Subject: [PATCH 218/533] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus +Subject: [PATCH 218/580] 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 +151363,10 @@ index 84fa53ffb13f..3c2848e91c1b 100644 2.18.4 -From c83dfc817584523fdd362064943eec5350284fe3 Mon Sep 17 00:00:00 2001 +From 38b2d0f5d317c58fc6c3fa34a82df8cee7139326 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 7 Apr 2020 10:42:14 +0100 -Subject: [PATCH 219/533] media: bcm2835-unicam: Add support for mulitple +Subject: [PATCH 219/580] media: bcm2835-unicam: Add support for mulitple device nodes. Move device node specific state out of the device state structure and @@ -152452,10 +152452,10 @@ index 9da9f22c3db5..b34551a3f44b 100644 2.18.4 -From 22590666518605432f6732c20a9359a163f32c1e Mon Sep 17 00:00:00 2001 +From 0704162750d23ff6164d0255f951996951bfb240 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 16 Apr 2020 11:35:41 +0100 -Subject: [PATCH 220/533] media: bcm2835-unicam: Add embedded data node. +Subject: [PATCH 220/580] media: bcm2835-unicam: Add embedded data node. This patch adds a new node in the bcm2835-unicam driver to support CSI-2 embedded data streams. The subdevice is queried to see if @@ -153626,10 +153626,10 @@ index b34551a3f44b..d5e0f70b600c 100644 2.18.4 -From b051e49739cec3b29e578cb6f89e1f2f4b7fbbde Mon Sep 17 00:00:00 2001 +From 63f58acb101a72630142130a64589a8304088a6b Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 2 Apr 2020 16:08:51 +0100 -Subject: [PATCH 221/533] media: bcm2835-unicam: Use dummy buffer if none have +Subject: [PATCH 221/580] media: bcm2835-unicam: Use dummy buffer if none have been queued If no buffer has been queued by a userland application, we use an @@ -153940,10 +153940,10 @@ index d5e0f70b600c..933f1ba49e3d 100644 2.18.4 -From 65fdad481d1938015255b778feccd9a6178cd1c5 Mon Sep 17 00:00:00 2001 +From 533cce077225d65a07ff9745dc376ebc0ef64cc0 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 222/533] media: bcm2835-unicam: Disable event-related ioctls +Subject: [PATCH 222/580] media: bcm2835-unicam: Disable event-related ioctls on metadata node The unicam driver supports both the SOURCE_CHANGE and CTRL events. Both @@ -153977,10 +153977,10 @@ index 933f1ba49e3d..2d4c7a247fc5 100644 2.18.4 -From 56a4fdab2b42f8ee3266729ff259326f595e1b33 Mon Sep 17 00:00:00 2001 +From 8715a80319e3f60d5ad37afad998dae98181b39c Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 24 Mar 2020 23:13:02 +0200 -Subject: [PATCH 223/533] media: bcm2835-unicam: Add support for the FRAME_SYNC +Subject: [PATCH 223/580] media: bcm2835-unicam: Add support for the FRAME_SYNC event The FRAME_SYNC event is useful for userspace image processing algorithms @@ -154038,10 +154038,10 @@ index 2d4c7a247fc5..21d3a8585118 100644 2.18.4 -From 91ba5de49b1f375c3b0abefa9bebc6cebb85c361 Mon Sep 17 00:00:00 2001 +From bcb65761e4902319acddbec2308434ed31dbc847 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 12 Mar 2020 14:09:38 +0000 -Subject: [PATCH 224/533] media: imx219: Advertise embedded data node on media +Subject: [PATCH 224/580] media: imx219: Advertise embedded data node on media pad 1 This commit updates the imx219 driver to adverise support for embedded @@ -154380,10 +154380,10 @@ index 0ae66091a696..aec43b602649 100644 2.18.4 -From 0ce996014905cc065bc0a35c6387e7ce1e1bdb37 Mon Sep 17 00:00:00 2001 +From e2525b88de132112f19dc03d33059bf12d9f6270 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 16:26:03 +0100 -Subject: [PATCH 225/533] media: bcm2835-unicam: Re-fetch mbus code from subdev +Subject: [PATCH 225/580] media: bcm2835-unicam: Re-fetch mbus code from subdev on a g_fmt call The sensor subdevice may change the Bayer order if a H/V flip is @@ -154435,10 +154435,10 @@ index 21d3a8585118..d4684fb2797f 100644 2.18.4 -From d32214c609c8f1eca824ecb89fbd49da0716e770 Mon Sep 17 00:00:00 2001 +From 3fac263f188914d6f4fdb5f95a3c9468d963f16e Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:20:26 +0100 -Subject: [PATCH 226/533] media: uapi: v4l2-core: Add ISP statistics output +Subject: [PATCH 226/580] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Add V4L2_META_FMT_BCM2835_ISP_STATS V4L2 format type. @@ -154515,7 +154515,7 @@ index 000000000000..f974774c8252 + bcm2835_isp_stats_focus bcm2835_isp_stats + diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index a8b1b87f7a98..610f0f76bc83 100644 +index dd6cd2dabdb7..d85a2b5abaee 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1405,6 +1405,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) @@ -154542,10 +154542,10 @@ index d93d5bb7059b..e9fbb04a3519 100644 2.18.4 -From 5fdb89a1fdbcee51ef9a149f656455810be75ecc Mon Sep 17 00:00:00 2001 +From 52aa78739205acc554d95887e60fb4ad1b1ac8dd Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 15:06:19 +0100 -Subject: [PATCH 227/533] media: uapi: v4l-ctrls: Add CID base for the +Subject: [PATCH 227/580] media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver We are reserving controls for the new bcm2835-isp driver. @@ -154722,10 +154722,10 @@ index fbe96b80a748..0b8ae128b961 100644 2.18.4 -From 12ada49869add6f0e3b4772c17a91df959538a7f Mon Sep 17 00:00:00 2001 +From 533f6b0976b992ca771a30df017544cc35282136 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 22 Apr 2020 08:32:32 +0100 -Subject: [PATCH 228/533] staging: vchiq: Load bcm2835_isp driver from vchiq +Subject: [PATCH 228/580] 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. @@ -154736,7 +154736,7 @@ Signed-off-by: Naushir Patuck 1 file changed, 3 insertions(+) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index 0da9b267797d..e585534c7df6 100644 +index 8d518bd9a6cd..08083aa61808 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -111,6 +111,7 @@ static struct platform_device *bcm2835_camera; @@ -154747,7 +154747,7 @@ index 0da9b267797d..e585534c7df6 100644 static struct vchiq_drvdata bcm2835_drvdata = { .cache_line_size = 32, -@@ -2794,6 +2795,7 @@ static int vchiq_probe(struct platform_device *pdev) +@@ -2796,6 +2797,7 @@ static int vchiq_probe(struct platform_device *pdev) bcm2835_codec = vchiq_register_child(pdev, "bcm2835-codec"); bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); @@ -154755,7 +154755,7 @@ index 0da9b267797d..e585534c7df6 100644 return 0; -@@ -2806,6 +2808,7 @@ static int vchiq_probe(struct platform_device *pdev) +@@ -2808,6 +2810,7 @@ static int vchiq_probe(struct platform_device *pdev) static int vchiq_remove(struct platform_device *pdev) { @@ -154767,10 +154767,10 @@ index 0da9b267797d..e585534c7df6 100644 2.18.4 -From 5e1d1682a60837d7a568029ea07c31eda548f527 Mon Sep 17 00:00:00 2001 +From 1703377119b1861bb00f545c06e3118e6255e055 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 4 Apr 2019 13:33:47 +0100 -Subject: [PATCH 229/533] bcm2835-dma: Add proper 40-bit DMA support +Subject: [PATCH 229/580] bcm2835-dma: Add proper 40-bit DMA support BCM2711 has 4 DMA channels with a 40-bit address range, allowing them to access the full 4GB of memory on a Pi 4. @@ -155573,10 +155573,10 @@ index 87b5d0bef355..ac0458a8027f 100644 2.18.4 -From 08dcc96a4b7b5401be1337add9e470deb7e42c09 Mon Sep 17 00:00:00 2001 +From 6599d7ae16a5fb85767ae0e36bf3aa6a449176cf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 1 May 2020 17:56:13 +0100 -Subject: [PATCH 230/533] overlays: Make the i2c-gpio overlay safe again +Subject: [PATCH 230/580] overlays: Make the i2c-gpio overlay safe again Like many overlays, the i2c-gpio overlay goes to efforts to avoid generating warnings about #address-cells and #size-cells not @@ -155611,10 +155611,10 @@ index 2323a61edf07..63231b5d7c0c 100644 2.18.4 -From 5ad23563cfef6d79daf33a93a63c63b8f3aad2f6 Mon Sep 17 00:00:00 2001 +From bfc3d49839ba99a0f3eacc200c34c604e237806d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 20 Apr 2020 11:01:21 +0100 -Subject: [PATCH 231/533] media: i2c: imx219: Declare that the driver can +Subject: [PATCH 231/580] 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 +155644,10 @@ index aec43b602649..473134c1e40f 100644 2.18.4 -From b29cfbd7c1b7e25d6ab313110d3d8bb8c1aac43e Mon Sep 17 00:00:00 2001 +From 8f769936278c91500268b9aaa4c112faf17b9fb7 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 15 Jan 2020 13:40:38 +0000 -Subject: [PATCH 232/533] media: ov5647: Fix return codes from +Subject: [PATCH 232/580] media: ov5647: Fix return codes from ov5647_write/ov5647_read functions. Previously they were returning positive non-zero codes for success, @@ -155724,10 +155724,10 @@ index 07550377be2e..6ecc018ac431 100644 2.18.4 -From 379cd3756b08337a51f898561ce6a018956db04b Mon Sep 17 00:00:00 2001 +From feb7327b537ced120f2045b4ae94081ba57dedf8 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:30:53 +0000 -Subject: [PATCH 233/533] media: ov5647: Add basic support for multiple sensor +Subject: [PATCH 233/580] media: ov5647: Add basic support for multiple sensor modes. Specifically: @@ -156137,10 +156137,10 @@ index 6ecc018ac431..0d84b7640cf3 100644 2.18.4 -From 8bdd65c172430f607310bb664de4f714c0614844 Mon Sep 17 00:00:00 2001 +From 5f4a08428e2e5696d4ce8e3b75a91a499baba63e Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:23 +0000 -Subject: [PATCH 234/533] media: ov5647: Add V4L2 controls for analogue gain, +Subject: [PATCH 234/580] media: ov5647: Add V4L2 controls for analogue gain, exposure and AWB Added basic v4l2_ctrl_handler infrastructure (there was none @@ -156420,10 +156420,10 @@ index 0d84b7640cf3..16cfafc9cf9c 100644 2.18.4 -From 8bec26cb1a156535c8df76dd623cbcf19258d9d1 Mon Sep 17 00:00:00 2001 +From 8527eb43e2099c2fe21ca3360d69eb49b1d76b5c Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:28 +0000 -Subject: [PATCH 235/533] media: ov5647: Add extra 10-bit sensor modes. +Subject: [PATCH 235/580] media: ov5647: Add extra 10-bit sensor modes. The 8-bit VGA mode remains, we add the following 10-bit modes: @@ -156975,10 +156975,10 @@ index 16cfafc9cf9c..fc6c5d9c4532 100644 2.18.4 -From c25c5c64ae73e4f4504c99807a3f060286398894 Mon Sep 17 00:00:00 2001 +From 848ca3195b4e8ce71daac50736a12e578b17bf94 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 29 Jan 2020 15:31:32 +0000 -Subject: [PATCH 236/533] media: ov5647: change defaults to better match raw +Subject: [PATCH 236/580] media: ov5647: change defaults to better match raw camera applications. Specifically: @@ -157040,10 +157040,10 @@ index fc6c5d9c4532..66b3ee5cc190 100644 2.18.4 -From 89a6a455617814cc6d3ce8686f8777d26ccbef14 Mon Sep 17 00:00:00 2001 +From 300c75ae28228174f207604c0d8bd8ca2a03c2ab Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 11:46:07 +0100 -Subject: [PATCH 237/533] media: i2c: ov5647: Add support for g_selection to +Subject: [PATCH 237/580] media: i2c: ov5647: Add support for g_selection to reflect cropping/binning In order to apply lens shading correctly the client needs to know how @@ -157252,10 +157252,10 @@ index 66b3ee5cc190..e7c7e3ab4b38 100644 2.18.4 -From 37095d7e15f561b6fbb7074338b3e2f4c6b063c7 Mon Sep 17 00:00:00 2001 +From ea2fd8cd2eb13f59159502c3d59af14de9b042bd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 11:50:52 +0100 -Subject: [PATCH 238/533] media: i2c: ov5467: Fixup error path to release mutex +Subject: [PATCH 238/580] media: i2c: ov5467: Fixup error path to release mutex "87f3ab9 media: ov5647: Add basic support for multiple sensor modes." added a return path ov5647_set_fmt that didn't release the device @@ -157287,10 +157287,10 @@ index e7c7e3ab4b38..09d68b0b4a13 100644 2.18.4 -From 14abfdeb65d3b878d1451a60c6838c5cdd021a82 Mon Sep 17 00:00:00 2001 +From b3cd83a331989dc75da31ca87048b5d87d1204f7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 12:25:13 +0100 -Subject: [PATCH 239/533] media: i2c: ov5647: Support V4L2_CID_PIXEL_RATE +Subject: [PATCH 239/580] media: i2c: ov5647: Support V4L2_CID_PIXEL_RATE Clients need to know the pixel rate in order to compute exposure and frame rate values. @@ -157424,10 +157424,10 @@ index 09d68b0b4a13..02d72feb837e 100644 2.18.4 -From de2d3e7ba5b1b9dedb199c3e0acbd3357409abf2 Mon Sep 17 00:00:00 2001 +From 08970cdc171a45b0a7118a57a3db48ec99e7857f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 17:25:56 +0100 -Subject: [PATCH 240/533] media: i2c: ov5647: Set V4L2_SUBDEV_FL_HAS_EVENTS +Subject: [PATCH 240/580] media: i2c: ov5647: Set V4L2_SUBDEV_FL_HAS_EVENTS flag The ov5647 subdev can generate control events, therefore set @@ -157573,10 +157573,10 @@ index 02d72feb837e..c012e0b3d68b 100644 2.18.4 -From ed1457bed035ce7c5f1003d85aae3e970d4822f8 Mon Sep 17 00:00:00 2001 +From 2b74979d87c71a027a113baf09debf3dee6c0877 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 21:39:58 +0100 -Subject: [PATCH 241/533] media: i2c: ov5647: Add support for V4L2_CID_VBLANK +Subject: [PATCH 241/580] media: i2c: ov5647: Add support for V4L2_CID_VBLANK Adds vblank control to allow for frame rate control. @@ -157784,10 +157784,10 @@ index c012e0b3d68b..445a0ce186ec 100644 2.18.4 -From b499c11a2ef9e8e9b40b245f0b983b5440388fe3 Mon Sep 17 00:00:00 2001 +From c78bb8f3a96f656d8fcaa7721414b15bd6a70c61 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 21:47:25 +0100 -Subject: [PATCH 242/533] media: i2c: ov5647: Neither analogue gain nor +Subject: [PATCH 242/580] media: i2c: ov5647: Neither analogue gain nor exposure need EXECUTE_ON_WRITE The controls for analogue gain and exposure were defined with @@ -157848,10 +157848,10 @@ index 445a0ce186ec..49247711221c 100644 2.18.4 -From 41703fe8e06e35c0ca80d0a183710077e5f49532 Mon Sep 17 00:00:00 2001 +From 2a8b3fb97137810a4e6cea9d7a681ae5659a972f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 22:11:01 +0100 -Subject: [PATCH 243/533] media: i2c: ov5647: Use member names in mode tables +Subject: [PATCH 243/580] media: i2c: ov5647: Use member names in mode tables To make adding new members to the mode structures easier, use the member names in the initialisers. @@ -157965,10 +157965,10 @@ index 49247711221c..da4ef30d8f32 100644 2.18.4 -From 05b0b02f8c6143c72b71f380c531600dd59f8d5a Mon Sep 17 00:00:00 2001 +From a2bb71c92078d5cca49172ef74f8faca16655e13 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 11:03:00 +0100 -Subject: [PATCH 244/533] media: i2c: ov5647: Advertise the correct exposure +Subject: [PATCH 244/580] media: i2c: ov5647: Advertise the correct exposure range Exposure is clipped by the VTS of the mode, so needs to be updated as @@ -158090,10 +158090,10 @@ index da4ef30d8f32..6d84d2785f74 100644 2.18.4 -From 916907e7243086c85a17557845ba92695a3f07b4 Mon Sep 17 00:00:00 2001 +From 4ba0871f9381874199a3a485c3c8c5ad6e10fea4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 16:45:02 +0100 -Subject: [PATCH 245/533] media: bcm2835-unicam: Add support for +Subject: [PATCH 245/580] media: bcm2835-unicam: Add support for VIDIOC_[S|G]_SELECTION Sensors are now reflecting cropping and scaling parameters through @@ -158178,10 +158178,10 @@ index d4684fb2797f..0e1d525a0b35 100644 2.18.4 -From b6ecd88e522376ab6aaea1f2174404e51d6a98af Mon Sep 17 00:00:00 2001 +From e8df6bd260637c88b2bd9ebf0569e66400dfe0f6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Apr 2020 22:05:09 +0100 -Subject: [PATCH 246/533] media: bcm2835-unicam: Do not stop streaming in +Subject: [PATCH 246/580] media: bcm2835-unicam: Do not stop streaming in unicam_release unicam_release calls _vb2_fop_release, which will call stop_streaming @@ -158212,10 +158212,10 @@ index 0e1d525a0b35..c7e211d04ed3 100644 2.18.4 -From c695c07cfc8d38f4f7fa0d49e8057e38481b1047 Mon Sep 17 00:00:00 2001 +From 7cfb2686b78f8521c2fcaeb3f72c185a138ed449 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Apr 2020 09:52:50 +0100 -Subject: [PATCH 247/533] media: bcm2835-unicam: Fix reference counting in +Subject: [PATCH 247/580] media: bcm2835-unicam: Fix reference counting in unicam_open The reference counting of node->open was only incremented after @@ -158256,10 +158256,10 @@ index c7e211d04ed3..a79fc4d99d36 100644 2.18.4 -From c2bea8986a9219ef1419ed7a89ddbaab6248dd60 Mon Sep 17 00:00:00 2001 +From 863e5efe45dd3b09f10f1e81ea276bb28fde51ca Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:28:14 +0200 -Subject: [PATCH 248/533] media: i2c: tc358743: Fix fallthrough warning +Subject: [PATCH 248/580] media: i2c: tc358743: Fix fallthrough warning Signed-off-by: Jacko Dirks --- @@ -158282,10 +158282,10 @@ index 0a8a25ff7872..b3b8d6e15ea2 100644 2.18.4 -From 483dd60799133bbbb9cf9a90df3842b7caafcc08 Mon Sep 17 00:00:00 2001 +From 6db456bd75358b114e61ec975776560bf53aa676 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 249/533] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 249/580] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -158309,10 +158309,10 @@ index a79fc4d99d36..92e5deb4c6fd 100644 2.18.4 -From 996a38e4eb024249041ff8bc0553016a7c054f38 Mon Sep 17 00:00:00 2001 +From c23e5c87813d0aeeb85422d7b4877b079ef46347 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 19:45:41 +0100 -Subject: [PATCH 250/533] video: bcm2708_fb: Disable FB if no displays found +Subject: [PATCH 250/580] video: bcm2708_fb: Disable FB if no displays found If the firmware hasn't detected a display, the driver would assume one display was available, but because it had failed to retrieve the @@ -158349,10 +158349,10 @@ index 17e9260655e4..dac5c021ce52 100644 2.18.4 -From 31fe6283fe055ddd1c143aa94cb7f214b81f1c1c Mon Sep 17 00:00:00 2001 +From 09a6a1b2496370873a674d7b470f39bc87d0d35f Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 7 May 2020 15:50:54 +0100 -Subject: [PATCH 251/533] dt-bindings: media: i2c: Add IMX477 CMOS sensor +Subject: [PATCH 251/580] dt-bindings: media: i2c: Add IMX477 CMOS sensor binding Add YAML device tree binding for IMX477 CMOS image sensor. @@ -158486,10 +158486,10 @@ index 000000000000..0994e13e67f6 2.18.4 -From a49863874143c1397fb734616a26c0c38f291c8d Mon Sep 17 00:00:00 2001 +From 01eab64903f0311a4938326cf1c25047e9d4ae9f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 252/533] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 252/580] media: bcm2835-unicam: Always service interrupts From when bringing up the driver, there was a check in the isr to ignore interrupts (claiming them handled) should the driver @@ -158543,10 +158543,10 @@ index 92e5deb4c6fd..52a534d932bf 100644 2.18.4 -From f13d2219f207e376e9fd0ccd3c07b88582dfb828 Mon Sep 17 00:00:00 2001 +From 8df8c581f8d283c500838f1d1c614d99d02716ef Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 May 2020 20:10:15 +0100 -Subject: [PATCH 253/533] sc16is7xx: Fix for hardware flow control +Subject: [PATCH 253/580] sc16is7xx: Fix for hardware flow control The SC16IS7XX hardware flow control is mishandled by the driver in a number of ways: @@ -158619,10 +158619,10 @@ index ae48749d72fd..f6ce041d0c3d 100644 2.18.4 -From 62c717ff64ef5fe811ed80efac5868a3a6618930 Mon Sep 17 00:00:00 2001 +From cc349a9be8086593a0b0fbd28489849ff76c55bd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:42:10 +0100 -Subject: [PATCH 254/533] staging: vc04_services: mmal-vchiq: Update parameters +Subject: [PATCH 254/580] staging: vc04_services: mmal-vchiq: Update parameters list Adds in a couple of new MMAL parameter defines. @@ -158653,10 +158653,10 @@ index 27bafc5f01d2..89059bca0b77 100644 2.18.4 -From 7356e10d8acc94817d6ce749cf3acec2748007c8 Mon Sep 17 00:00:00 2001 +From 198353f41518b1387892e1adf31927102f1d425a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:48:59 +0100 -Subject: [PATCH 255/533] staging:vc04_services: bcm2835-camera: Request +Subject: [PATCH 255/580] staging:vc04_services: bcm2835-camera: Request headers with I-frame V4L2 wishes to have the codec header bytes in the same buffer as the @@ -158689,10 +158689,10 @@ index df90c1f9d148..bea37cb163fc 100644 2.18.4 -From ed5f6e3f6acb0c4b53c98a98da8307211d55719c Mon Sep 17 00:00:00 2001 +From 7f26bd14299586361a950a73ef120aeaac1122d7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 8 Apr 2020 15:23:56 +0100 -Subject: [PATCH 256/533] kbuild: Disable gcc plugins +Subject: [PATCH 256/580] kbuild: Disable gcc plugins The GCC plugin feature leads to different kernel configurations on what ought to be equivalent build systems because they depend on the build @@ -158723,10 +158723,10 @@ index b79fd0bea838..c3d0c8fedbdd 100755 2.18.4 -From 428fd40f82b0167d0b8a5b5fa79075c7b443731a Mon Sep 17 00:00:00 2001 +From 28ca59a77435a68d4ebda0e234d3f0cabe43fcc2 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 257/533] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 257/580] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -158777,10 +158777,10 @@ index 52a534d932bf..b32b2d33a4e2 100644 2.18.4 -From 0a2534a8cba65d0f80caf97524a8d209f3c01331 Mon Sep 17 00:00:00 2001 +From 9c089c16036f1ebe1030bed1aa6441f0c2384950 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 15:23:32 +0100 -Subject: [PATCH 258/533] zswap: Defer zswap initialisation +Subject: [PATCH 258/580] zswap: Defer zswap initialisation Enabling zswap support in the kernel configuration costs about 1.5MB of RAM, even when zswap is not enabled at runtime. This cost can be @@ -158908,10 +158908,10 @@ index fbb782924ccc..0ca7f6a68d20 100644 2.18.4 -From 5e67c9804d372e45a0c506790ddea1ae9e107dd8 Mon Sep 17 00:00:00 2001 +From 667ec5d9b7bf558d789146157f97ace6a73acf60 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 May 2020 11:35:33 +0100 -Subject: [PATCH 259/533] SQUASH: pinctrl: bcm2835: Set base for bcm2711 GPIO +Subject: [PATCH 259/580] SQUASH: pinctrl: bcm2835: Set base for bcm2711 GPIO to 0 Without this patch GPIOs don't seem to work properly, primarily @@ -158941,10 +158941,10 @@ index bda29f421e78..c5d88157f4b2 100644 2.18.4 -From 6982a5288d3e35094c7bdde672f0d3c75a18357f Mon Sep 17 00:00:00 2001 +From 3b8260a14d39625e62daedbfd1656cec11a22f5e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 May 2020 16:36:33 +0100 -Subject: [PATCH 260/533] staging: vchiq_arm: Clean up 40-bit DMA support +Subject: [PATCH 260/580] 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- @@ -159093,10 +159093,10 @@ index 6f941c1b6be1..76179739de12 100644 pagelistinfo->scatterlist_mapped = 0; diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index e585534c7df6..f85b9b932a4f 100644 +index 08083aa61808..c3ca18e4e85c 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -2718,22 +2718,8 @@ vchiq_register_child(struct platform_device *pdev, const char *name) +@@ -2720,22 +2720,8 @@ vchiq_register_child(struct platform_device *pdev, const char *name) child->dev.of_node = np; @@ -159123,10 +159123,10 @@ index e585534c7df6..f85b9b932a4f 100644 2.18.4 -From 57dbb7dcd64a988fe97219aa3c2d13b52bdc9700 Mon Sep 17 00:00:00 2001 +From 1292c3016e86df439b643b1ad57a23ade673c8d8 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 261/533] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 261/580] media: bcm2835-unicam: change minimum number of vb2_queue buffers to 1 Since the unicam driver was modified to write to a dummy buffer when no @@ -159157,10 +159157,10 @@ index b32b2d33a4e2..e76323af0952 100644 2.18.4 -From 6830c23703d0ee6c1bd802393d3abc6f1b6ab4c2 Mon Sep 17 00:00:00 2001 +From 52cde0aa968a500c9e3e0602ceaffb5afba71ec1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 May 2020 09:46:12 +0100 -Subject: [PATCH 262/533] brcmfmac: BCM43436 needs dedicated firmware +Subject: [PATCH 262/580] brcmfmac: BCM43436 needs dedicated firmware Signed-off-by: Phil Elwell --- @@ -159193,10 +159193,10 @@ index 2b642886430d..dce241d99684 100644 2.18.4 -From c8ecb4a66429c6c207c51f31e9b82af8282e9cc0 Mon Sep 17 00:00:00 2001 +From 7084e935cd7c05f9ecfb562455f3e6892753376f Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Fri, 5 Jun 2020 09:22:49 +0000 -Subject: [PATCH 263/533] snd_bcm2835: disable HDMI audio when vc4 is used +Subject: [PATCH 263/580] snd_bcm2835: disable HDMI audio when vc4 is used (#3640) Things don't work too well when both the vc4 driver and the firmware @@ -159214,7 +159214,7 @@ Signed-off-by: Hristo Venev 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -index 2f465dba54bf..a53c39d1bbaa 100644 +index f926784c622d..31968fec297f 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c @@ -381,7 +381,9 @@ static int snd_bcm2835_alsa_probe(struct platform_device *pdev) @@ -159232,10 +159232,10 @@ index 2f465dba54bf..a53c39d1bbaa 100644 2.18.4 -From 36eacae680de3890ccecfceda10f77b7d606b0c4 Mon Sep 17 00:00:00 2001 +From fd89f6a9f6bc4c704cb1cf525a139b171f3efc13 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Apr 2018 14:42:27 +0100 -Subject: [PATCH 264/533] gpiolib: Don't prevent IRQ usage of output GPIOs +Subject: [PATCH 264/580] 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 @@ -159250,7 +159250,7 @@ Signed-off-by: Phil Elwell 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c -index 4ad3c4b276dc..55bbc86107a9 100644 +index 0a2c4adcd833..e20ebd7e10c7 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -51,6 +51,8 @@ @@ -159262,7 +159262,7 @@ index 4ad3c4b276dc..55bbc86107a9 100644 /* Device and char device-related information */ static DEFINE_IDA(gpio_ida); static dev_t gpio_devt; -@@ -2431,8 +2433,8 @@ int gpiod_direction_output(struct gpio_desc *desc, int value) +@@ -2448,8 +2450,8 @@ int gpiod_direction_output(struct gpio_desc *desc, int value) value = !!value; /* GPIOs used for enabled IRQs shall not be set as output */ @@ -159273,7 +159273,7 @@ index 4ad3c4b276dc..55bbc86107a9 100644 gpiod_err(desc, "%s: tried to set a GPIO tied to an IRQ as output\n", __func__); -@@ -3237,8 +3239,8 @@ int gpiochip_lock_as_irq(struct gpio_chip *gc, unsigned int offset) +@@ -3254,8 +3256,8 @@ int gpiochip_lock_as_irq(struct gpio_chip *gc, unsigned int offset) } /* To be valid for IRQ the line needs to be input or open drain */ @@ -159288,10 +159288,10 @@ index 4ad3c4b276dc..55bbc86107a9 100644 2.18.4 -From 6dda4a89284fd2d646dbd98839a3ddfd06e8bdcf Mon Sep 17 00:00:00 2001 +From d6cc293a708b0ced037f800a2b31ccb768c5a1e1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jun 2020 09:57:03 +0100 -Subject: [PATCH 265/533] PCI: brcmstb: Add DT property to control L1SS +Subject: [PATCH 265/580] PCI: brcmstb: Add DT property to control L1SS The BRCM PCIe block has controls to enable control of the CLKREQ# signal by the L1SS, and to gate the refclk with the CLKREQ# input. @@ -159373,10 +159373,10 @@ index 9c3d2982248d..fea54f6fb7b1 100644 2.18.4 -From 30e74de55bd84db439e81271462ea0d4ac5229c6 Mon Sep 17 00:00:00 2001 +From 654952edec34d606aadea9f31b1dd0f0941d0eb6 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:24:31 +0200 -Subject: [PATCH 266/533] media: irs1125: Using i2c_transfer for ic2 reads +Subject: [PATCH 266/580] media: irs1125: Using i2c_transfer for ic2 reads Reading data over i2c is done by using i2c_transfer to ensure that this operation can't be interrupted. @@ -159444,10 +159444,10 @@ index 25e1dd5a08ef..6680afea5894 100644 2.18.4 -From a19771ac8827a1ad07a51cc6920ebd9a6e2d415e Mon Sep 17 00:00:00 2001 +From c4b3b579d2b8d816a3a852ef3a20aa71fbc9f728 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:27:42 +0200 -Subject: [PATCH 267/533] media: irs1125: Refactoring and debug messages +Subject: [PATCH 267/580] media: irs1125: Refactoring and debug messages Changed some variable names to comply with checkpatch --strict mode. Debug messages added. @@ -159573,10 +159573,10 @@ index 6680afea5894..289f0c25b141 100644 2.18.4 -From 11ffb48b79a01a25ac73c5e27cc14351ff53acdf Mon Sep 17 00:00:00 2001 +From 42d97fa059c39b87f427ce45296f71bddacc1006 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:31:36 +0200 -Subject: [PATCH 268/533] media: irs1125: Atomic access to imager +Subject: [PATCH 268/580] media: irs1125: Atomic access to imager reconfiguration Instead of changing the exposure and framerate settings for all sequences, @@ -159962,10 +159962,10 @@ index dccaca23aa76..96d676123d5e 100644 2.18.4 -From 5f1a56c1b0ca21bccdc5b36c46a9ce8eb261856b Mon Sep 17 00:00:00 2001 +From e62fc321c27cc54b5b736a1f4fec8651326586e0 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:33:56 +0200 -Subject: [PATCH 269/533] media: irs1125: Keep HW in sync after imager reset +Subject: [PATCH 269/580] media: irs1125: Keep HW in sync after imager reset When closing the video device, the irs1125 is put in power down state. To keep V4L2 ctrls and the HW in sync, v4l2_ctrl_handler_setup is @@ -160149,10 +160149,10 @@ index d59e05004a03..30c3d2640386 100644 2.18.4 -From e581889ecf6ef824a87f19ff4603bd1733a6f3a7 Mon Sep 17 00:00:00 2001 +From 220f2259a4273dad16c041e8e71bbfd5953ff698 Mon Sep 17 00:00:00 2001 From: Maxim Mikityanskiy Date: Sat, 20 Jun 2020 15:40:00 +0300 -Subject: [PATCH 270/533] staging: bcm2835-audio: Add missing MODULE_ALIAS +Subject: [PATCH 270/580] 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 @@ -160173,7 +160173,7 @@ Signed-off-by: Maxim Mikityanskiy 1 file changed, 1 insertion(+) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -index a53c39d1bbaa..b9716f3e264c 100644 +index 31968fec297f..a0cba3823e5e 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c @@ -438,3 +438,4 @@ module_platform_driver(bcm2835_alsa_driver); @@ -160185,10 +160185,10 @@ index a53c39d1bbaa..b9716f3e264c 100644 2.18.4 -From 0523a52f931fe3622a573d7d3e5c76610ecd0904 Mon Sep 17 00:00:00 2001 +From b89a103356c2871b019e379e1fb63ba6d3a459cb Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2020 11:51:05 +0100 -Subject: [PATCH 271/533] brcmfmac: Prefer a ccode from OTP over nvram file +Subject: [PATCH 271/580] 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. @@ -160200,7 +160200,7 @@ Signed-off-by: Phil Elwell 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index 28dba5d86ee6..cdc1aeb72005 100644 +index 76eac1606b8c..38ef415cfbba 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -9,6 +9,7 @@ @@ -160211,7 +160211,7 @@ index 28dba5d86ee6..cdc1aeb72005 100644 #include #include #include -@@ -7407,31 +7408,45 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, +@@ -7410,31 +7411,45 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0); struct brcmf_pub *drvr = cfg->pub; struct brcmf_fil_country_le ccreq; @@ -160322,10 +160322,10 @@ index d821a4758f8c..adfea97c9a43 100644 2.18.4 -From d51b2c3df0fca66a418bef0eeda588694f4b8aee Mon Sep 17 00:00:00 2001 +From ae89d25dd318fa8a85c836d3a692eaa6aa6ec32f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 10:05:57 +0100 -Subject: [PATCH 272/533] drivers: media: Remove the downstream version of +Subject: [PATCH 272/580] drivers: media: Remove the downstream version of bcm2835-unicam About to be replaced by the upstream version. @@ -163513,10 +163513,10 @@ index ae059a171d0f..000000000000 2.18.4 -From 1628e50c7cee3c46f924f643caf98b12d74c90fc Mon Sep 17 00:00:00 2001 +From 761aa6924db4ac0c925d8a081d358e0570ae1b00 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 4 May 2020 12:25:41 +0300 -Subject: [PATCH 273/533] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 273/580] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add a driver for the Unicam camera receiver block on BCM283x processors. @@ -163545,7 +163545,7 @@ Reported-by: kbuild test robot create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index 10d2d88cd6cc..edbe69e78f78 100644 +index 8cecd3fd5dad..349b2abe4152 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3429,7 +3429,7 @@ M: Raspberry Pi Kernel Maintenance @@ -166681,10 +166681,10 @@ index 000000000000..ae059a171d0f 2.18.4 -From 6605c7fd4fbd1aa94e6ed46dc813b95c3c2a20be Mon Sep 17 00:00:00 2001 +From 96715b6e367e92e00636a6d54cd1bd6b7cc81de0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 14:32:51 +0100 -Subject: [PATCH 274/533] media: bcm2835-unicam: Add support for +Subject: [PATCH 274/580] media: bcm2835-unicam: Add support for get_mbus_config to set num lanes Use the get_mbus_config pad subdev call to allow a source to use @@ -166743,10 +166743,10 @@ index 2e9387cbc1e0..9adfb2d217af 100644 2.18.4 -From 1134ff69653a31c9389df158df1794b32662e86b Mon Sep 17 00:00:00 2001 +From 41226034807de0cfcce17f8230f9acd10dccb3b4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 15:53:44 +0100 -Subject: [PATCH 275/533] media: bcm2835-unicam: Avoid gcc warning over {0} on +Subject: [PATCH 275/580] media: bcm2835-unicam: Avoid gcc warning over {0} on endpoint Older gcc versions object to = { 0 } initialisation if the first @@ -166776,10 +166776,10 @@ index 9adfb2d217af..a65e1da55142 100644 2.18.4 -From e7a85934b77f90501661b701ce09132aa8aff8aa Mon Sep 17 00:00:00 2001 +From 4fe472d00981f8bb01c867ecf9c08439626995d5 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 12 Jun 2020 15:53:46 +0200 -Subject: [PATCH 276/533] media: i2c: imx290: set the format before +Subject: [PATCH 276/580] media: i2c: imx290: set the format before VIDIOC_SUBDEV_G_FMT is called Commit d46cfdc86c30d5ec768924f0b1e2683c8d20b671 upstream. @@ -166822,10 +166822,10 @@ index adcddf3204f7..ad2318390678 100644 2.18.4 -From f72b44a23998712cf191a21af8b36f112897b94b Mon Sep 17 00:00:00 2001 +From 7010c1482321085b4af9ee903b3b40c785dd4139 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 08:28:51 +0100 -Subject: [PATCH 277/533] media: i2c: imx290: Add support for 74.25MHz clock +Subject: [PATCH 277/580] media: i2c: imx290: Add support for 74.25MHz clock The existing driver only supported a clock of 37.125MHz, but the sensor also supports 74.25MHz. @@ -167092,10 +167092,10 @@ index ad2318390678..fe1078f7721e 100644 2.18.4 -From a92223f68f36b04f914663904f05ad3e295f7605 Mon Sep 17 00:00:00 2001 +From 64847318433ae16056cbac80ccd8addd7ac1e4ef Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 13:41:43 +0100 -Subject: [PATCH 278/533] media: i2c: imx290: Correct range for V4L2_CID_GAIN +Subject: [PATCH 278/580] media: i2c: imx290: Correct range for V4L2_CID_GAIN to 0-238 The datasheet lists the gain as being 0.0 to 72.0dB in 0.3dB steps, which @@ -167124,10 +167124,10 @@ index fe1078f7721e..c193b7b8d8e5 100644 2.18.4 -From 9e13043718522fd0df9645880ce7fc59396b8b35 Mon Sep 17 00:00:00 2001 +From f0c77d8a9e36e36e1c2f2ae88613120f683ffc5f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 14:36:40 +0100 -Subject: [PATCH 279/533] media: i2c: imx290: Convert HMAX setting into +Subject: [PATCH 279/580] media: i2c: imx290: Convert HMAX setting into V4L2_CID_HBLANK Userspace needs to know HBLANK if it is to work out exposure times @@ -167289,10 +167289,10 @@ index c193b7b8d8e5..b12213f6355b 100644 2.18.4 -From e06827a59a93de503a49b6551cf40ac66b50c0c3 Mon Sep 17 00:00:00 2001 +From 0fc94ccca3d8af4ddff8f8d6fb0650d0794db886 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:09:12 +0100 -Subject: [PATCH 280/533] media: i2c: imx290: Add support for V4L2_CID_VBLANK +Subject: [PATCH 280/580] media: i2c: imx290: Add support for V4L2_CID_VBLANK In order to calculate framerate and durations userspace needs the vertical blanking information. This can be configurable, @@ -167436,10 +167436,10 @@ index b12213f6355b..357614af64f7 100644 2.18.4 -From aac4ab649e663a132bd001d6c12b185a8ab28f9a Mon Sep 17 00:00:00 2001 +From 7459cf58f257720d4bad62c9646e23d5e8f9133d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:19:13 +0100 -Subject: [PATCH 281/533] media: i2c: imx290: Add exposure control to the +Subject: [PATCH 281/580] media: i2c: imx290: Add exposure control to the driver. Adds support for V4L2_CID_EXPOSURE so that userspace can control @@ -167535,10 +167535,10 @@ index 357614af64f7..2eae36b0ad5c 100644 2.18.4 -From d497dbc581af292172e1413304b86e5a1c5a2a34 Mon Sep 17 00:00:00 2001 +From 71e90e2eb9ad07ea3693bc0267333af7206c79a6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Jun 2020 18:34:16 +0100 -Subject: [PATCH 282/533] media: i2c: imx290: Add H and V flip controls +Subject: [PATCH 282/580] media: i2c: imx290: Add H and V flip controls The sensor supports horizontal and vertical flips, so support them through V4L2_CID_HFLIP and V4L2_CID_VFLIP. @@ -167624,10 +167624,10 @@ index 2eae36b0ad5c..3d6734da7d64 100644 2.18.4 -From a7922b41d46d4316ed6cb4ba508763c9cb3c2af2 Mon Sep 17 00:00:00 2001 +From e3ba033777bc78f8775d0454eec1619603b344e4 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 16:52:14 +0100 -Subject: [PATCH 283/533] media: dt-bindings: media: i2c: Add mono version to +Subject: [PATCH 283/580] media: dt-bindings: media: i2c: Add mono version to IMX290 bindings The IMX290 module is available as either monochrome or colour and @@ -167666,10 +167666,10 @@ index a3cc21410f7c..294e63650d9e 100644 2.18.4 -From b80971c06c613b80f6208cf3a0cf3653b9d3b543 Mon Sep 17 00:00:00 2001 +From d01a92f8013e6b4036c5032e761e451737f43353 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:03:11 +0100 -Subject: [PATCH 284/533] media : i2c: imx290: Add support for the mono sensor +Subject: [PATCH 284/580] media : i2c: imx290: Add support for the mono sensor variant. The IMX290 module is available as either mono or colour (Bayer). @@ -167857,10 +167857,10 @@ index 3d6734da7d64..09df70849928 100644 2.18.4 -From 79dc1ccd82fbd99b7b01b4b57f6b6dca552226e8 Mon Sep 17 00:00:00 2001 +From b6c18f15671c878ea455744176d968a694c7ed78 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 18:11:49 +0100 -Subject: [PATCH 285/533] media: i2c: imx290: Switch set_hmax to use +Subject: [PATCH 285/580] media: i2c: imx290: Switch set_hmax to use imx290_write_buffered_reg imx290_set_hmax was using two independent writes to set up hmax, @@ -167906,10 +167906,10 @@ index 09df70849928..b824dfe29bbd 100644 2.18.4 -From c261848725dac5c4c0cf6133c4bd4d82bf1526e8 Mon Sep 17 00:00:00 2001 +From 8de36c0ffda95f3acb74731954b10958086c2c57 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 2 Jul 2020 13:53:20 +0100 -Subject: [PATCH 286/533] serial: 8250: bcm2835aux - defer if clock is zero +Subject: [PATCH 286/580] serial: 8250: bcm2835aux - defer if clock is zero See: https://github.com/raspberrypi/linux/issues/3700 @@ -167940,10 +167940,10 @@ index fd95860cd661..fc36e5963e30 100644 2.18.4 -From 4fc6591dab548b4f0befdd605d9b5609423fffa7 Mon Sep 17 00:00:00 2001 +From 4811d4a04219668f024dd7bf7d2a3729b11fb272 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 May 2020 16:59:03 +0100 -Subject: [PATCH 287/533] media: Add a pixel format for MIPI packed 12bit luma +Subject: [PATCH 287/580] media: Add a pixel format for MIPI packed 12bit luma only. This is the format used by monochrome 12bit image sensors. @@ -168021,7 +168021,7 @@ index e4514f1a35f1..c6e4d17ccd68 100644 pixfmt-y10b pixfmt-y10p diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index 610f0f76bc83..182ad6bbb9eb 100644 +index d85a2b5abaee..1dc10b5c4ee0 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1283,6 +1283,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) @@ -168048,10 +168048,10 @@ index e9fbb04a3519..e72c28ea0235 100644 2.18.4 -From e13e52cbc70e7596ea8fa1ee9f2bd9536f717796 Mon Sep 17 00:00:00 2001 +From 491702839bf4fef2c7b42b63ee89fd0955bb80a1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:51:03 +0100 -Subject: [PATCH 288/533] media: Add a pixel format for MIPI packed 14bit luma +Subject: [PATCH 288/580] media: Add a pixel format for MIPI packed 14bit luma only. This is the format used by monochrome 14bit image sensors. @@ -168138,7 +168138,7 @@ index c6e4d17ccd68..ba3a5b599362 100644 pixfmt-y10p pixfmt-y16 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index 182ad6bbb9eb..cee70ff20e9c 100644 +index 1dc10b5c4ee0..d72b462bb054 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1284,6 +1284,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) @@ -168165,10 +168165,10 @@ index e72c28ea0235..53d526dbe004 100644 2.18.4 -From 4e8a9290b1bb70a4d52fadc2450133b0bb6236f2 Mon Sep 17 00:00:00 2001 +From b19da540a6e659a223e95e4e3c02ae6f7aeb219b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:53:32 +0100 -Subject: [PATCH 289/533] media: bcm2835-unicam: Add support for 12bit mono +Subject: [PATCH 289/580] media: bcm2835-unicam: Add support for 12bit mono packed format Now that V4L2_PIX_FMT_Y12P is defined, allow passing raw 12bit @@ -168196,10 +168196,10 @@ index a65e1da55142..5edb58cc9f03 100644 2.18.4 -From b0a3ce2e7f7aee9ac8e523f46b17a0c937e975b0 Mon Sep 17 00:00:00 2001 +From d5ec107a9ec7395f634e599fc18e0476f2b2aca3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 18:03:47 +0100 -Subject: [PATCH 290/533] media: bcm2835-unicam: Add support for 14bit mono +Subject: [PATCH 290/580] media: bcm2835-unicam: Add support for 14bit mono sources Now that V4L2_PIX_FMT_Y14 and V4L2_PIX_FMT_Y14P are defined, @@ -168231,10 +168231,10 @@ index 5edb58cc9f03..778153943160 100644 2.18.4 -From 7c9ec4d245a25539bae74dcc2d6206ee3796ea94 Mon Sep 17 00:00:00 2001 +From 23848135eadf8a7d449179c49f2e9fbd7bac9acd Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 Jul 2020 10:57:57 +0100 -Subject: [PATCH 291/533] media: bcm2835-unicam: Add support for unpacked 14bit +Subject: [PATCH 291/580] media: bcm2835-unicam: Add support for unpacked 14bit Bayer formats Now that the 14bit non-packed Bayer formats are defined, add them @@ -168279,10 +168279,10 @@ index 778153943160..c97ecfc0e55b 100644 2.18.4 -From c59638d6c3d8ad6d22a9d439670bc9fcaaa61f33 Mon Sep 17 00:00:00 2001 +From c12bdc0e1fd8b245edb05b2af1799594650eede1 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Jul 2020 20:28:27 +0100 -Subject: [PATCH 292/533] bcm2835-dma: Add NO_WAIT_RESP flag +Subject: [PATCH 292/580] bcm2835-dma: Add NO_WAIT_RESP flag Use bit 27 of the dreq value (the second cell of the DT DMA descriptor) to request that the WAIT_RESP bit is not set. @@ -168339,10 +168339,10 @@ index ac0458a8027f..84b1009da23b 100644 2.18.4 -From 8f33f6df54eb841b21eb05819ee70d78a31785f7 Mon Sep 17 00:00:00 2001 +From fdc26fb852c13b2a9cf9239cb4baf9f47ef1979e Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Fri, 17 May 2019 18:23:03 +0800 -Subject: [PATCH 293/533] media: i2c: add ov9281 driver. +Subject: [PATCH 293/580] media: i2c: add ov9281 driver. Change-Id: I7b77250bbc56d2f861450cf77271ad15f9b88ab1 Signed-off-by: Zefa Chen @@ -169568,10 +169568,10 @@ index 000000000000..4a6324a3e5da 2.18.4 -From 9cbe0a75a9834ac3ae2e99978c2950f4a393908a Mon Sep 17 00:00:00 2001 +From 3038bb0c45f94f31ed506ea33ac114e23de22f0f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:47:09 +0100 -Subject: [PATCH 294/533] media: i2c: ov9281: fix mclk issue when probe +Subject: [PATCH 294/580] media: i2c: ov9281: fix mclk issue when probe multiple camera. Takes the ov9281 part only from the Rockchip's patch. @@ -169634,10 +169634,10 @@ index 4a6324a3e5da..0d6759942f79 100644 2.18.4 -From 946e2963efed11af27e8d2a7475bacf9c7671512 Mon Sep 17 00:00:00 2001 +From 845715b1693e6490f974caa0b2ece330f25b8559 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 15:51:50 +0100 -Subject: [PATCH 295/533] media: i2c: ov9281: add enum_frame_interval function +Subject: [PATCH 295/580] media: i2c: ov9281: add enum_frame_interval function for iq tool 2.2 and hal3 Adds the ov9281 parts of the Rockchip patch adding enum_frame_interval to @@ -169737,10 +169737,10 @@ index 0d6759942f79..273aa904683c 100644 2.18.4 -From 9935ed8cf96d912d6b2d2c9f97fd05dbdcfd942b Mon Sep 17 00:00:00 2001 +From 776221d1daaa2bb4ae647fde3b1b33b0ccead40c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Apr 2020 16:12:33 +0100 -Subject: [PATCH 296/533] media: i2c: ov9281: Fixup for recent kernel releases, +Subject: [PATCH 296/580] media: i2c: ov9281: Fixup for recent kernel releases, and remove custom code The Rockchip driver was based on a 4.4 kernel, and had several custom @@ -170420,10 +170420,10 @@ index 273aa904683c..7b9bea476cfb 100644 2.18.4 -From 48401bbce8a685bea31f2b5dc93c59d227d30dad Mon Sep 17 00:00:00 2001 +From 47cfbe842fc263a40925443fe659e484dea60cc7 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 6 Jul 2020 17:51:32 +0100 -Subject: [PATCH 297/533] media: i2c: ov9281: Read chip ID via 2 reads +Subject: [PATCH 297/580] media: i2c: ov9281: Read chip ID via 2 reads Vision Components have made an OV9281 module which blocks reading back the majority of registers to comply with NDAs, and in doing @@ -170468,10 +170468,10 @@ index 7b9bea476cfb..bb8efc3d3cba 100644 2.18.4 -From 933a9c6f8488cf1bda3b6855f16751943185e885 Mon Sep 17 00:00:00 2001 +From 939e204ecf206232552d8b4642c1f83af248514d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 10:31:53 +0100 -Subject: [PATCH 298/533] media: i2c: imx290: Explicitly set v&h blank on mode +Subject: [PATCH 298/580] media: i2c: imx290: Explicitly set v&h blank on mode change __v4l2_ctrl_modify_range only updates the current value should @@ -170520,10 +170520,10 @@ index b824dfe29bbd..b28834823f86 100644 2.18.4 -From e9dca93ab5f8ff51eb96627bc79fa3f988f139cc Mon Sep 17 00:00:00 2001 +From d0ebb1b479a537ddd495483ff5cd3723d3041cf3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:23:48 +0100 -Subject: [PATCH 299/533] media: i2c: imx290: Add support for g_selection to +Subject: [PATCH 299/580] media: i2c: imx290: Add support for g_selection to report cropping Userspace needs to know the cropping arrangements for each mode, @@ -170682,10 +170682,10 @@ index b28834823f86..24bf40d729b7 100644 2.18.4 -From 4743a9730093fe9b6b0a59ff5c277f3534c7d6b9 Mon Sep 17 00:00:00 2001 +From 609df8e376c62e96f8bc69fbfe5f6b41dd3c666c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 11:51:26 +0100 -Subject: [PATCH 300/533] media: i2c: imx290: Set the colorspace fields in the +Subject: [PATCH 300/580] media: i2c: imx290: Set the colorspace fields in the format The colorspace fields were left untouched in imx290_set_fmt @@ -170719,10 +170719,10 @@ index 24bf40d729b7..2e646fb01856 100644 2.18.4 -From 8df39644fd437e497a0574767ad712787d67faa2 Mon Sep 17 00:00:00 2001 +From 5f0698f03b1ad61b0cf6b03c538e316597ac886c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:23:40 +0100 -Subject: [PATCH 301/533] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE +Subject: [PATCH 301/580] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE in the caps v4l2-compliance throws a failure if the device doesn't advertise @@ -170753,10 +170753,10 @@ index c97ecfc0e55b..20b46a9e04c3 100644 2.18.4 -From c5e1a925ddbb7de12d95af278ef88fdf5dec635c Mon Sep 17 00:00:00 2001 +From 6db9ebaa0c14873eb6496951c13143c70f7955a3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:52:43 +0100 -Subject: [PATCH 302/533] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE +Subject: [PATCH 302/580] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE in [g|s]_selection [g|s]_selection pass in a buffer type that needs to be validated @@ -170795,10 +170795,10 @@ index 20b46a9e04c3..de288f87ff2f 100644 2.18.4 -From d1bae625196e4e9c9ecfd3dd1b331c7b0da389e8 Mon Sep 17 00:00:00 2001 +From f1be27fcbcb1a8179f64164a8a6e96421c8f806d Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:02:22 +0100 -Subject: [PATCH 303/533] media: bcm2835: unicam: Set VPU min clock freq to +Subject: [PATCH 303/580] media: bcm2835: unicam: Set VPU min clock freq to 250Mhz. When streaming with Unicam, the VPU must have a clock frequency of at @@ -170928,10 +170928,10 @@ index de288f87ff2f..295db7564614 100644 2.18.4 -From 43d33beff9be0deafbe99df95f7d212642cbc8e0 Mon Sep 17 00:00:00 2001 +From 680c46a1d26da520e33f0382a280a717c517b5ae Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:06:27 +0100 -Subject: [PATCH 304/533] dt-bindings: bcm2835-unicam: Update documentation +Subject: [PATCH 304/580] dt-bindings: bcm2835-unicam: Update documentation with new clock params Update the documentation to reflect the new "VPU" clock needed @@ -170972,10 +170972,10 @@ index 7714fb374b34..164d0377dcd2 100644 2.18.4 -From 42d211b3e171c95d207555bfbbaa1ce0efd34457 Mon Sep 17 00:00:00 2001 +From 2b649fb7b53d7fd502066c18d02d830fef29c045 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 305/533] media: i2c: ov5647: Parse and register properties +Subject: [PATCH 305/580] media: i2c: ov5647: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -171027,10 +171027,10 @@ index 6d84d2785f74..86a821a172b3 100644 2.18.4 -From c3da7e3e4d90f180caffe76157bcccfc26659b06 Mon Sep 17 00:00:00 2001 +From 7d5b11e158eb5c83abb1d3d5f56846e48d7a3a14 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Jul 2020 10:33:19 +0100 -Subject: [PATCH 306/533] leds: Add the actpwr trigger +Subject: [PATCH 306/580] leds: Add the actpwr trigger The actpwr trigger is a meta trigger that cycles between an inverted mmc0 and default-on. It is written in a way that could fairly easily @@ -171273,10 +171273,10 @@ index 000000000000..1a52107ceb03 2.18.4 -From b53312afa6143dfd8e69a0e70030223661cce1eb Mon Sep 17 00:00:00 2001 +From f067e6c752848c5f29495e689f9ccecce548821a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Jul 2020 17:34:09 +0100 -Subject: [PATCH 307/533] staging: vchiq_arm: children inherit DMA config +Subject: [PATCH 307/580] 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 @@ -171289,10 +171289,10 @@ Signed-off-by: Phil Elwell 1 file changed, 10 insertions(+) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index f85b9b932a4f..170a80e4fe46 100644 +index c3ca18e4e85c..a936102dbc34 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -2718,8 +2718,18 @@ vchiq_register_child(struct platform_device *pdev, const char *name) +@@ -2720,8 +2720,18 @@ vchiq_register_child(struct platform_device *pdev, const char *name) child->dev.of_node = np; @@ -171315,10 +171315,10 @@ index f85b9b932a4f..170a80e4fe46 100644 2.18.4 -From 9650825157097bbcfdbbe562b1081a7697ef15ba Mon Sep 17 00:00:00 2001 +From b2df3d2703aeab52f2e223ccb8a115d91c8a1c20 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Jul 2020 17:59:31 +0100 -Subject: [PATCH 308/533] bcm2835-dma: Advertise the full DMA range +Subject: [PATCH 308/580] bcm2835-dma: Advertise the full DMA range Unless the DMA mask is set wider than 32 bits, DMA mapping will use a bounce buffer. @@ -171398,10 +171398,10 @@ index 84b1009da23b..d1127b9058a4 100644 2.18.4 -From 64eb235079acd0fe52e9933c4661d14c0e6a8b3e Mon Sep 17 00:00:00 2001 +From 4b44df9e48d573f1159c53675ac3a6be17e45a8a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jul 2020 13:47:55 +0100 -Subject: [PATCH 309/533] ARM: proc-v7: Force misalignment of early stmia +Subject: [PATCH 309/580] ARM: proc-v7: Force misalignment of early stmia In an attempt to prevent the problem of CPUn not starting, explicitly misalign the scratch space used to save registers acros the cache @@ -171464,10 +171464,10 @@ index 28c9d32fa99a..3e77e8982df3 100644 2.18.4 -From 1ce82a0be94b589504d2d7b4f826abe88cc38572 Mon Sep 17 00:00:00 2001 +From 9113737fe0346750d6c0b467d49bf1baf29d0a7a Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:02:22 +0300 -Subject: [PATCH 310/533] media: bcm2835: unicam: Select MEDIA_CONTROLLER and +Subject: [PATCH 310/580] media: bcm2835: unicam: Select MEDIA_CONTROLLER and VIDEO_V4L2_SUBDEV_API That is what almost all other drivers appear to be doing. @@ -171497,10 +171497,10 @@ index ec46e3ef053c..7d5a0e6ba762 100644 2.18.4 -From 6391ac02afc628b249e338cd68b6e81024d87db2 Mon Sep 17 00:00:00 2001 +From 94fddb5f722068fcde71787eced2f3064244373a Mon Sep 17 00:00:00 2001 From: Hristo Venev Date: Wed, 19 Aug 2020 17:05:53 +0300 -Subject: [PATCH 311/533] staging: media: rpivid: Select MEDIA_CONTROLLER and +Subject: [PATCH 311/580] staging: media: rpivid: Select MEDIA_CONTROLLER and MEDIA_CONTROLLER_REQUEST_API MEDIA_CONTROLLER_REQUEST_API is a hidden option. If rpivid depends on it, @@ -171535,10 +171535,10 @@ index 58b470c80db1..304c3edf0e71 100644 2.18.4 -From 5654f34cc43637e5f091f070dda4ff217d6e5f1b Mon Sep 17 00:00:00 2001 +From d0db656638b6f57ff1f25c4536dbe142cec0ce62 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 27 Aug 2020 16:30:26 +0100 -Subject: [PATCH 312/533] media: bcm2835-unicam: Drop WARN on uing direct cache +Subject: [PATCH 312/580] media: bcm2835-unicam: Drop WARN on uing direct cache alias Pi 0&1 pass all ARM accesses through the VPU L2 cache, therefore @@ -171575,10 +171575,10 @@ index 295db7564614..35ddb97f7f75 100644 2.18.4 -From 7b6d20094f1bdfba4d5448fe0f320fac24968d4a Mon Sep 17 00:00:00 2001 +From b16758b454b0beb08efb1dcdd7f39ab65c9fb043 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Jul 2020 12:40:50 +0100 -Subject: [PATCH 313/533] media: i2c: tc358743: Only allow supported pixel fmts +Subject: [PATCH 313/580] media: i2c: tc358743: Only allow supported pixel fmts in set_fmt Fix commit "media: tc358743: Return an appropriate colorspace from @@ -171611,10 +171611,10 @@ index b3b8d6e15ea2..eef6ab823c6c 100644 2.18.4 -From bebf393f4eb80c5b2e82b5fbc6d8fd3adcc35fbe Mon Sep 17 00:00:00 2001 +From 27b963e55cbe42f1ce02a7218ce656c865d52d14 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 18:29:10 +0100 -Subject: [PATCH 314/533] media: i2c: ov9281: Add support for 8 bit readout +Subject: [PATCH 314/580] media: i2c: ov9281: Add support for 8 bit readout The sensor supports 8 bit mode as well as 10bit, so add the relevant code to allow selection of this. @@ -171805,10 +171805,10 @@ index bb8efc3d3cba..9610c24ceff1 100644 2.18.4 -From 82768bfb26ecfe518eb680289219d929642d995c Mon Sep 17 00:00:00 2001 +From 3e2537b04cf810a6c280291042c33a7ca3f65188 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 3 Sep 2020 14:02:21 +0100 -Subject: [PATCH 315/533] bcm2835-mmc: uninitialized_var is no more +Subject: [PATCH 315/580] bcm2835-mmc: uninitialized_var is no more --- drivers/mmc/host/bcm2835-mmc.c | 2 +- @@ -171831,10 +171831,10 @@ index caf46be8eb0d..cdc1318e5936 100644 2.18.4 -From 467a919a413b6db21b2cbec92cc5083b37fca4f0 Mon Sep 17 00:00:00 2001 +From f1ca804852276959d5d2733b4323730632ad0027 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 3 Sep 2020 14:02:41 +0100 -Subject: [PATCH 316/533] dwc_otg: whitelist_table is now productlist_table +Subject: [PATCH 316/580] dwc_otg: whitelist_table is now productlist_table --- drivers/usb/core/otg_productlist.h | 2 +- @@ -171857,10 +171857,10 @@ index 1839e169469b..b16e528859a8 100644 2.18.4 -From 0bf959690becd39bc7bd2d29ffa3073053a85cc1 Mon Sep 17 00:00:00 2001 +From f8e38bc0978d5311db399748794d2ffe9ca93a0b Mon Sep 17 00:00:00 2001 From: detule Date: Tue, 2 Oct 2018 04:10:08 -0400 -Subject: [PATCH 317/533] vchiq_2835_arm: Implement a DMA pool for small bulk +Subject: [PATCH 317/580] vchiq_2835_arm: Implement a DMA pool for small bulk transfers (#2699) During a bulk transfer we request a DMA allocation to hold the @@ -171985,10 +171985,10 @@ index 76179739de12..2a1d8d6541b2 100644 2.18.4 -From 7d71e3793f1a8789109d140c81f595050ff4ee0a Mon Sep 17 00:00:00 2001 +From 178a6fa6bafef928e41c8922f2dada7dd277223f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Sep 2020 17:09:07 +0100 -Subject: [PATCH 318/533] include/firmware: Add enum for +Subject: [PATCH 318/580] include/firmware: Add enum for RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_ID Used by audio and FKMS. @@ -172014,10 +172014,10 @@ index d0c827064999..d0ee609a9043 100644 2.18.4 -From dc31c78d6ecce23af297fbb5aac578e68341856c Mon Sep 17 00:00:00 2001 +From 4251b0977c3c41ec6bc2f9b680890d4b1937f95a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Apr 2020 19:07:50 +0100 -Subject: [PATCH 319/533] vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC +Subject: [PATCH 319/580] vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC to work Signed-off-by: popcornmix @@ -172027,10 +172027,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 eaba98e15de4..3244fb620611 100644 +index af5f01eff872..6095a005b68c 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -610,23 +610,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) +@@ -643,23 +643,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) return; } @@ -172055,7 +172055,7 @@ index eaba98e15de4..3244fb620611 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); -@@ -821,6 +805,39 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { +@@ -856,6 +840,39 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { .enable = vc4_hdmi_encoder_enable, }; @@ -172095,7 +172095,7 @@ index eaba98e15de4..3244fb620611 100644 static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) { int i; -@@ -1848,6 +1865,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -1897,6 +1914,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 +172103,7 @@ index eaba98e15de4..3244fb620611 100644 .channel_map = vc4_hdmi_channel_map, }; -@@ -1874,6 +1892,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -1923,6 +1941,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 +172111,7 @@ index eaba98e15de4..3244fb620611 100644 .channel_map = vc5_hdmi_channel_map, }; -@@ -1900,6 +1919,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -1949,6 +1968,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,107 +172137,10 @@ index 0526a9cf608a..32d09132fb44 100644 2.18.4 -From 01894f1c42150a813ad3b54c42c92329c4ea3c84 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 7 May 2020 18:16:07 +0100 -Subject: [PATCH 320/533] vc4_hdmi: Fix register offset when sending longer CEC - messages - -Signed-off-by: Dom Cobley ---- - 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 3244fb620611..1538a9f7cbac 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1335,8 +1335,13 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) - - msg->len = 1 + ((cntrl1 & VC4_HDMI_CEC_REC_WRD_CNT_MASK) >> - VC4_HDMI_CEC_REC_WRD_CNT_SHIFT); -+ -+ if (msg->len > 16) { -+ DRM_ERROR("Attempting to read too much data (%d)\n", msg->len); -+ return; -+ } - for (i = 0; i < msg->len; i += 4) { -- u32 val = HDMI_READ(HDMI_CEC_RX_DATA_1 + i); -+ u32 val = HDMI_READ(HDMI_CEC_RX_DATA_1 + (i >> 2)); - - msg->msg[i] = val & 0xff; - msg->msg[i + 1] = (val >> 8) & 0xff; -@@ -1432,8 +1437,12 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, - u32 val; - unsigned int i; - -+ if (msg->len > 16) { -+ DRM_ERROR("Attempting to transmit too much data (%d)\n", msg->len); -+ return -ENOMEM; -+ } - for (i = 0; i < msg->len; i += 4) -- HDMI_WRITE(HDMI_CEC_TX_DATA_1 + i, -+ HDMI_WRITE(HDMI_CEC_TX_DATA_1 + (i >> 2), - (msg->msg[i]) | - (msg->msg[i + 1] << 8) | - (msg->msg[i + 2] << 16) | --- -2.18.4 - - -From 0dd50086dbb2b0c4c202eaaedef020c438da3ec5 Mon Sep 17 00:00:00 2001 +From 0ffcadfd11ace61a40301fb7d8b4b3affa5e1ada Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:07 +0100 -Subject: [PATCH 321/533] vc4_hdmi: Fix up CEC registers - -Fix an incorrect register address, add a -missing one and reorder into address order - -Signed-off-by: Dom Cobley ---- - drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -index 7c6b4818f245..0548b7bb5006 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -@@ -24,11 +24,12 @@ enum vc4_hdmi_field { - HDMI_CEC_CNTRL_3, - HDMI_CEC_CNTRL_4, - HDMI_CEC_CNTRL_5, -+ HDMI_CEC_CPU_STATUS, -+ HDMI_CEC_CPU_SET, - HDMI_CEC_CPU_CLEAR, -- HDMI_CEC_CPU_MASK_CLEAR, -- HDMI_CEC_CPU_MASK_SET, - HDMI_CEC_CPU_MASK_STATUS, -- HDMI_CEC_CPU_STATUS, -+ HDMI_CEC_CPU_MASK_SET, -+ HDMI_CEC_CPU_MASK_CLEAR, - - /* - * Transmit data, first byte is low byte of the 32-bit reg. -@@ -196,9 +197,10 @@ static const struct vc4_hdmi_register vc4_hdmi_fields[] = { - VC4_HDMI_REG(HDMI_TX_PHY_RESET_CTL, 0x02c0), - VC4_HDMI_REG(HDMI_TX_PHY_CTL_0, 0x02c4), - VC4_HDMI_REG(HDMI_CEC_CPU_STATUS, 0x0340), -+ VC4_HDMI_REG(HDMI_CEC_CPU_SET, 0x0344), - VC4_HDMI_REG(HDMI_CEC_CPU_CLEAR, 0x0348), - VC4_HDMI_REG(HDMI_CEC_CPU_MASK_STATUS, 0x034c), -- VC4_HDMI_REG(HDMI_CEC_CPU_MASK_SET, 0x034c), -+ VC4_HDMI_REG(HDMI_CEC_CPU_MASK_SET, 0x0350), - VC4_HDMI_REG(HDMI_CEC_CPU_MASK_CLEAR, 0x0354), - VC4_HDMI_REG(HDMI_RAM_PACKET_START, 0x0400), - }; --- -2.18.4 - - -From 02e1733c040f1b7a846c69ede61033605cd8ff95 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 7 May 2020 18:16:07 +0100 -Subject: [PATCH 322/533] vc4_hdmi_regs: Add Intr2 register block +Subject: [PATCH 320/580] vc4_hdmi_regs: Add Intr2 register block Signed-off-by: Dom Cobley --- @@ -172247,10 +172150,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 1538a9f7cbac..697b5bdd5896 100644 +index 6095a005b68c..7edb44947b28 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1653,6 +1653,14 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -1690,6 +1690,14 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) if (!vc4_hdmi->dvp_regs) return -ENOMEM; @@ -172279,7 +172182,7 @@ index 32d09132fb44..1142f332b300 100644 int hpd_gpio; bool hpd_active_low; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -index 0548b7bb5006..2081287c7e2d 100644 +index 6c0dfbbe1a7e..10dd6097f2b5 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h @@ -15,6 +15,7 @@ enum vc4_hdmi_regs { @@ -172338,10 +172241,10 @@ index 0548b7bb5006..2081287c7e2d 100644 2.18.4 -From 496e16a177e2bd15b7e06cfc6d31fd5d2a1bb32a Mon Sep 17 00:00:00 2001 +From 143516b8e4bd7883feb2e6ba9cc2ffad5a21355a Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:08 +0100 -Subject: [PATCH 323/533] vc4_hdmi_regs: Make interrupt mask variant specific +Subject: [PATCH 321/580] vc4_hdmi_regs: Make interrupt mask variant specific Signed-off-by: Dom Cobley --- @@ -172351,10 +172254,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 697b5bdd5896..7e11043f0aa8 100644 +index 7edb44947b28..727619248923 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1356,7 +1356,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1393,7 +1393,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) u32 stat = HDMI_READ(HDMI_CEC_CPU_STATUS); u32 cntrl1, cntrl5; @@ -172363,7 +172266,7 @@ index 697b5bdd5896..7e11043f0aa8 100644 return IRQ_NONE; vc4_hdmi->cec_rx_msg.len = 0; cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1); -@@ -1372,7 +1372,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -1409,7 +1409,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); @@ -172372,7 +172275,7 @@ index 697b5bdd5896..7e11043f0aa8 100644 return IRQ_WAKE_THREAD; } -@@ -1411,9 +1411,9 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -1448,9 +1448,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)); @@ -172384,7 +172287,7 @@ index 697b5bdd5896..7e11043f0aa8 100644 HDMI_WRITE(HDMI_CEC_CNTRL_5, val | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); } -@@ -1884,6 +1884,8 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -1924,6 +1924,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, @@ -172393,7 +172296,7 @@ index 697b5bdd5896..7e11043f0aa8 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { -@@ -1911,6 +1913,8 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -1951,6 +1953,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, @@ -172402,7 +172305,7 @@ index 697b5bdd5896..7e11043f0aa8 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { -@@ -1938,6 +1942,8 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -1978,6 +1982,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, @@ -172449,10 +172352,10 @@ index be2c32a519b3..39630e9de1b0 100644 2.18.4 -From da3e33c0ad78a2715d588193cd75fe50ee895a2f Mon Sep 17 00:00:00 2001 +From 1aa4802143cc733c907fa7427a58dd2d3039efa7 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 May 2020 18:16:08 +0100 -Subject: [PATCH 324/533] vc4_hdmi: Make irq shared +Subject: [PATCH 322/580] vc4_hdmi: Make irq shared Signed-off-by: Dom Cobley --- @@ -172460,11 +172363,11 @@ 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 7e11043f0aa8..cdae04162fb0 100644 +index 727619248923..e8a20404fe9b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1499,7 +1499,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - HDMI_WRITE(HDMI_CEC_CNTRL_1, value); +@@ -1536,7 +1536,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, - vc4_cec_irq_handler_thread, 0, @@ -172477,164 +172380,10 @@ index 7e11043f0aa8..cdae04162fb0 100644 2.18.4 -From 735af552f3e74d7fa43b4b4c856608e43f606faa Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 7 May 2020 18:16:08 +0100 -Subject: [PATCH 325/533] vc4_hdmi: Adjust CEC ref clock based on its input - clock - -2711 uses a fixed 27MHz input, earlier models use the HSM clock - -Signed-off-by: Dom Cobley ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 14 +++++++++++--- - drivers/gpu/drm/vc4/vc4_hdmi.h | 3 +++ - 2 files changed, 14 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index cdae04162fb0..d08b4719764a 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -80,8 +80,12 @@ - # define VC4_HD_M_ENABLE BIT(0) - - #define CEC_CLOCK_FREQ 40000 -+/* Threshold for adjusting the BVB clock */ - #define VC4_HSM_MID_CLOCK 149985000 - -+/* Fixed HVS4 HSM clock rate */ -+#define VC4_HSM_CLOCK 163682864 -+ - static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) - { - struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -812,8 +816,7 @@ static u32 vc4_hdmi_calc_hsm_clock(struct vc4_hdmi *vc4_hdmi, unsigned long pixe - * clock, so make it constant to avoid having to reconfigure CEC on - * every mode change. - */ -- -- return 163682864; -+ return VC4_HSM_CLOCK; - } - - static u32 vc5_hdmi_calc_hsm_clock(struct vc4_hdmi *vc4_hdmi, unsigned long pixel_rate) -@@ -1470,6 +1473,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - struct cec_connector_info conn_info; - struct platform_device *pdev = vc4_hdmi->pdev; - u32 value; -+ u32 clk_cnt; - int ret; - - if (!vc4_hdmi->variant->cec_available) -@@ -1494,8 +1498,9 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - * divider: the hsm_clock rate and this divider setting will - * give a 40 kHz CEC clock. - */ -+ clk_cnt = vc4_hdmi->variant->cec_input_clock / CEC_CLOCK_FREQ; - value |= VC4_HDMI_CEC_ADDR_MASK | -- (4091 << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT); -+ ((clk_cnt - 1) << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT); - HDMI_WRITE(HDMI_CEC_CNTRL_1, value); - ret = devm_request_threaded_irq(&pdev->dev, platform_get_irq(pdev, 0), - vc4_cec_irq_handler, -@@ -1871,6 +1876,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { - .debugfs_name = "hdmi_regs", - .card_name = "vc4-hdmi", - .max_pixel_clock = 162000000, -+ .cec_input_clock = VC4_HSM_CLOCK, - .cec_available = true, - .registers = vc4_hdmi_fields, - .num_registers = ARRAY_SIZE(vc4_hdmi_fields), -@@ -1894,6 +1900,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { - .debugfs_name = "hdmi0_regs", - .card_name = "vc4-hdmi-0", - .max_pixel_clock = 297000000, -+ .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi0_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi0_fields), - .phy_lane_mapping = { -@@ -1923,6 +1930,7 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { - .debugfs_name = "hdmi1_regs", - .card_name = "vc4-hdmi-1", - .max_pixel_clock = 297000000, -+ .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi1_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi1_fields), - .phy_lane_mapping = { -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 16cc0e9abc36..60b099a40e4e 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -49,6 +49,9 @@ struct vc4_hdmi_variant { - /* Maximum pixel clock supported by the controller (in Hz) */ - unsigned long long max_pixel_clock; - -+ /* Input clock frequency of CEC block (in Hz) */ -+ unsigned long cec_input_clock; -+ - /* List of the registers available on that variant */ - const struct vc4_hdmi_register *registers; - --- -2.18.4 - - -From 061b9327a9a5d1e246a16ebaf440c86d17ee3e26 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 7 May 2020 18:16:09 +0100 -Subject: [PATCH 326/533] vc4_hdmi: Remove cec_available flag as always - supported - -Signed-off-by: Dom Cobley ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ---- - drivers/gpu/drm/vc4/vc4_hdmi.h | 3 --- - 2 files changed, 7 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index d08b4719764a..09af5aac091f 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1476,9 +1476,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - u32 clk_cnt; - int ret; - -- if (!vc4_hdmi->variant->cec_available) -- return 0; -- - vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops, - vc4_hdmi, "vc4", - CEC_CAP_DEFAULTS | -@@ -1877,7 +1874,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { - .card_name = "vc4-hdmi", - .max_pixel_clock = 162000000, - .cec_input_clock = VC4_HSM_CLOCK, -- .cec_available = true, - .registers = vc4_hdmi_fields, - .num_registers = ARRAY_SIZE(vc4_hdmi_fields), - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 60b099a40e4e..77abacf043c4 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -43,9 +43,6 @@ struct vc4_hdmi_variant { - /* Filename to expose the registers in debugfs */ - const char *debugfs_name; - -- /* Set to true when the CEC support is available */ -- bool cec_available; -- - /* Maximum pixel clock supported by the controller (in Hz) */ - unsigned long long max_pixel_clock; - --- -2.18.4 - - -From 67677d5bc740da5486fd2314cd91b6816af052cf Mon Sep 17 00:00:00 2001 +From 72b9343847e27a37b286fe684167e2c06ae15521 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 14:54:28 +0100 -Subject: [PATCH 327/533] drm/vc4: Adopt the dma configuration from the HVS or +Subject: [PATCH 323/580] 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 @@ -172691,10 +172440,10 @@ index 839610f8092a..de02c57ed276 100644 2.18.4 -From fd38dff03e651368e82991147594a1c5a58815a6 Mon Sep 17 00:00:00 2001 +From b5c8dd2b8e5b4105234abbdf84ea42d01d737ebc Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 23 Jun 2020 18:37:01 +0100 -Subject: [PATCH 328/533] vc4_hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET +Subject: [PATCH 324/580] vc4_hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET Symptom is random switching of speakers when using multichannel. @@ -172721,10 +172470,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 09af5aac091f..5d39342a3ad3 100644 +index e8a20404fe9b..dd7c15bcce6d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1065,7 +1065,9 @@ static int vc4_hdmi_audio_trigger(struct snd_pcm_substream *substream, int cmd, +@@ -1097,7 +1097,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) | @@ -172739,10 +172488,10 @@ index 09af5aac091f..5d39342a3ad3 100644 2.18.4 -From 6357793347991a23fc07bbcfce566546cec019ad Mon Sep 17 00:00:00 2001 +From e0445a4cfddc0148f6699e5fbc7b2b8bb7b5720a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Mar 2020 22:21:15 +0000 -Subject: [PATCH 329/533] vc4_hdmi: Set HDMI_MAI_FMT +Subject: [PATCH 325/580] vc4_hdmi: Set HDMI_MAI_FMT The hardware uses this for generating the right audio data island packets when using formats other than PCM @@ -172754,10 +172503,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 5d39342a3ad3..e2a9dd687d84 100644 +index dd7c15bcce6d..dcd6d09b7b9e 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -979,6 +979,44 @@ static void vc4_hdmi_audio_shutdown(struct snd_pcm_substream *substream, +@@ -1011,6 +1011,44 @@ static void vc4_hdmi_audio_shutdown(struct snd_pcm_substream *substream, vc4_hdmi->audio.substream = NULL; } @@ -172802,7 +172551,7 @@ index 5d39342a3ad3..e2a9dd687d84 100644 /* HDMI audio codec callbacks */ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, -@@ -989,6 +1027,8 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, +@@ -1021,6 +1059,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; @@ -172811,7 +172560,7 @@ index 5d39342a3ad3..e2a9dd687d84 100644 if (substream != vc4_hdmi->audio.substream) return -EINVAL; -@@ -1009,6 +1049,14 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, +@@ -1041,6 +1081,14 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, vc4_hdmi_audio_set_mai_clock(vc4_hdmi); @@ -172871,10 +172620,10 @@ index 39630e9de1b0..c10402e103d6 100644 2.18.4 -From a280ef4a319260137dc664b982e99e0c2d8e22a4 Mon Sep 17 00:00:00 2001 +From 24610d4c2dfa6ac2a13fd2f2a28259a8106c1710 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 17 Mar 2020 12:12:22 +0100 -Subject: [PATCH 330/533] drm/vc4: add iec958 controls to vc4_hdmi +Subject: [PATCH 326/580] 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 @@ -172890,7 +172639,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 e2a9dd687d84..119e49dcff7d 100644 +index dcd6d09b7b9e..866f9e083ae4 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -44,6 +44,7 @@ @@ -172901,7 +172650,7 @@ index e2a9dd687d84..119e49dcff7d 100644 #include #include #include -@@ -1170,6 +1171,47 @@ static int vc4_hdmi_audio_eld_ctl_get(struct snd_kcontrol *kcontrol, +@@ -1202,6 +1203,47 @@ static int vc4_hdmi_audio_eld_ctl_get(struct snd_kcontrol *kcontrol, return 0; } @@ -172949,7 +172698,7 @@ index e2a9dd687d84..119e49dcff7d 100644 static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { { .access = SNDRV_CTL_ELEM_ACCESS_READ | -@@ -1179,6 +1221,19 @@ static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { +@@ -1211,6 +1253,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, }, @@ -172969,7 +172718,7 @@ index e2a9dd687d84..119e49dcff7d 100644 }; static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = { -@@ -1299,6 +1354,11 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) +@@ -1331,6 +1386,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; @@ -172982,7 +172731,7 @@ index e2a9dd687d84..119e49dcff7d 100644 if (ret) { dev_err(dev, "Could not register PCM component: %d\n", ret); diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 77abacf043c4..d416d2eeed1a 100644 +index 16cc0e9abc36..c75d4c9e1515 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -116,6 +116,8 @@ struct vc4_hdmi_audio { @@ -172998,10 +172747,10 @@ index 77abacf043c4..d416d2eeed1a 100644 2.18.4 -From 3e2cae80e7233daec273b89180e034a677067ddd Mon Sep 17 00:00:00 2001 +From 0c21d3b8eaae4377415e11ae8a908348acfeaae2 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 19 Mar 2020 20:00:35 +0100 -Subject: [PATCH 331/533] drm/vc4: move setup from hw_params to prepare +Subject: [PATCH 327/580] 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 @@ -173013,10 +172762,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 119e49dcff7d..2e1eaea5d7ac 100644 +index 866f9e083ae4..b0780168e574 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1019,9 +1019,8 @@ static int sample_rate_to_mai_fmt(int samplerate) +@@ -1051,9 +1051,8 @@ static int sample_rate_to_mai_fmt(int samplerate) } /* HDMI audio codec callbacks */ @@ -173028,7 +172777,7 @@ index 119e49dcff7d..2e1eaea5d7ac 100644 { struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai); struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base; -@@ -1034,12 +1033,15 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, +@@ -1066,12 +1065,15 @@ static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream, if (substream != vc4_hdmi->audio.substream) return -EINVAL; @@ -173049,7 +172798,7 @@ index 119e49dcff7d..2e1eaea5d7ac 100644 HDMI_WRITE(HDMI_MAI_CTL, VC4_HD_MAI_CTL_RESET | -@@ -1261,7 +1263,7 @@ static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = { +@@ -1293,7 +1295,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, @@ -173062,10 +172811,10 @@ index 119e49dcff7d..2e1eaea5d7ac 100644 2.18.4 -From b1cc872c3df3fa667b0abf4dff6652eb04d78317 Mon Sep 17 00:00:00 2001 +From 3ca155f06e3d23e5b805a498241429d7a6c82ba5 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 10 Jul 2020 11:51:16 +0100 -Subject: [PATCH 332/533] drm/vc4: enable HBR MAI format on HBR streams +Subject: [PATCH 328/580] drm/vc4: enable HBR MAI format on HBR streams Signed-off-by: Matthias Reichl --- @@ -173073,10 +172822,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 2e1eaea5d7ac..2013cbbd002a 100644 +index b0780168e574..08cc24f23675 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1053,7 +1053,11 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1085,7 +1085,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); @@ -173093,10 +172842,10 @@ index 2e1eaea5d7ac..2013cbbd002a 100644 2.18.4 -From 491b0428b6de47aeff9908eb5e6388004e1b62f5 Mon Sep 17 00:00:00 2001 +From 2eec85b51139aece4a6fe3696b605b19e6ed8b30 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 25 Jun 2020 18:48:40 +0100 -Subject: [PATCH 333/533] vc4_hdmi: Remove firmware logic for MAI threshold +Subject: [PATCH 329/580] vc4_hdmi: Remove firmware logic for MAI threshold setting This was a workaround for bugs in hardware on earlier Pi models @@ -173110,10 +172859,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 2013cbbd002a..f0f862ce9f1a 100644 +index 08cc24f23675..156d9e8ad869 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1074,22 +1074,12 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1106,22 +1106,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); @@ -173146,10 +172895,10 @@ index 2013cbbd002a..f0f862ce9f1a 100644 2.18.4 -From 29b18bd61c1332c0c45243e4c620297f11d686cc Mon Sep 17 00:00:00 2001 +From 83156ea622eef219849c1bcd8ee4b381cf920cc8 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 30 Jun 2020 11:23:49 +0100 -Subject: [PATCH 334/533] vc_hdmi: Set VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE +Subject: [PATCH 330/580] 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 @@ -173161,10 +172910,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 f0f862ce9f1a..2d014cbf5341 100644 +index 156d9e8ad869..69b16d4d3e25 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1083,6 +1083,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1115,6 +1115,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, HDMI_WRITE(HDMI_MAI_CONFIG, VC4_HDMI_MAI_CONFIG_BIT_REVERSE | @@ -173176,10 +172925,10 @@ index f0f862ce9f1a..2d014cbf5341 100644 2.18.4 -From e8b3d59dd07242a64cab87a759a538cc6f28f01a Mon Sep 17 00:00:00 2001 +From 0846e839510e3d1827b43a7e9905d792ed111726 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 20 Apr 2020 18:00:38 +0100 -Subject: [PATCH 335/533] vc4: Report channel mapping back to userspace +Subject: [PATCH 331/580] 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 @@ -173196,7 +172945,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 2d014cbf5341..6e04c4d768f0 100644 +index 69b16d4d3e25..69994693c23d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -49,6 +49,7 @@ @@ -173207,9 +172956,9 @@ index 2d014cbf5341..6e04c4d768f0 100644 #include "media/cec.h" #include "vc4_drv.h" #include "vc4_hdmi.h" -@@ -87,6 +88,311 @@ - /* Fixed HVS4 HSM clock rate */ - #define VC4_HSM_CLOCK 163682864 +@@ -83,6 +84,311 @@ + #define CEC_CLOCK_FREQ 40000 + #define VC4_HSM_MID_CLOCK 149985000 +#define HDMI_CODEC_CHMAP_IDX_UNKNOWN -1 + @@ -173519,7 +173268,7 @@ index 2d014cbf5341..6e04c4d768f0 100644 static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) { struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -345,6 +651,9 @@ static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder) +@@ -374,6 +680,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; @@ -173529,7 +173278,7 @@ index 2d014cbf5341..6e04c4d768f0 100644 vc4_hdmi_write_infoframe(encoder, &frame); } -@@ -943,6 +1252,10 @@ static int vc4_hdmi_audio_startup(struct snd_pcm_substream *substream, +@@ -975,6 +1284,10 @@ static int vc4_hdmi_audio_startup(struct snd_pcm_substream *substream, if (ret) return ret; @@ -173540,7 +173289,7 @@ index 2d014cbf5341..6e04c4d768f0 100644 return 0; } -@@ -1029,6 +1342,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1061,6 +1374,7 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, u32 channel_map; u32 mai_audio_format; u32 mai_sample_rate; @@ -173548,7 +173297,7 @@ index 2d014cbf5341..6e04c4d768f0 100644 if (substream != vc4_hdmi->audio.substream) return -EINVAL; -@@ -1091,6 +1405,14 @@ static int vc4_hdmi_audio_prepare(struct snd_pcm_substream *substream, +@@ -1123,6 +1437,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); @@ -173563,7 +173312,7 @@ index 2d014cbf5341..6e04c4d768f0 100644 vc4_hdmi_set_audio_infoframe(encoder); return 0; -@@ -1209,6 +1531,89 @@ static int vc4_spdif_mask_get(struct snd_kcontrol *kcontrol, +@@ -1241,6 +1563,89 @@ static int vc4_spdif_mask_get(struct snd_kcontrol *kcontrol, return 0; } @@ -173653,7 +173402,7 @@ index 2d014cbf5341..6e04c4d768f0 100644 static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { { .access = SNDRV_CTL_ELEM_ACCESS_READ | -@@ -1231,6 +1636,16 @@ static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { +@@ -1263,6 +1668,16 @@ static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = { .info = vc4_spdif_info, .get = vc4_spdif_mask_get, }, @@ -173671,7 +173420,7 @@ index 2d014cbf5341..6e04c4d768f0 100644 static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = { diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index d416d2eeed1a..e78ae694e359 100644 +index c75d4c9e1515..1680e1a56149 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -118,6 +118,9 @@ struct vc4_hdmi_audio { @@ -173688,72 +173437,10 @@ index d416d2eeed1a..e78ae694e359 100644 2.18.4 -From 7b025379b0543f8b373481cf10136f1af3cb008c Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Wed, 3 Jun 2020 12:20:19 +0100 -Subject: [PATCH 336/533] vc4: cec: Restore cec physical address on reconnect - -Currently we call cec_phys_addr_invalidate on a hotplug deassert. -That may be due to a TV power cycling, or an AVR being switched -on (and switching edid). This makes CEC unusable. - -Set it back up again on the hotplug assert. - -Signed-off-by: Dom Cobley ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 25 +++++++++++++++++-------- - 1 file changed, 17 insertions(+), 8 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 6e04c4d768f0..24da24f3f325 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -434,20 +434,29 @@ 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); -+ bool connected = false; - - if (vc4_hdmi->hpd_gpio) { - if (gpio_get_value_cansleep(vc4_hdmi->hpd_gpio) ^ - vc4_hdmi->hpd_active_low) -- return connector_status_connected; -- cec_phys_addr_invalidate(vc4_hdmi->cec_adap); -- return connector_status_disconnected; -- } -- -- if (drm_probe_ddc(vc4_hdmi->ddc)) -- return connector_status_connected; -- -+ connected = true; -+ } else if (drm_probe_ddc(vc4_hdmi->ddc)) -+ connected = true; - if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) -+ connected = true; -+ if (connected) { -+ if (connector->status != connector_status_connected) { -+ struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc); -+ -+ if (edid) { -+ cec_s_phys_addr_from_edid(vc4_hdmi->cec_adap, edid); -+ vc4_hdmi->encoder.hdmi_monitor = drm_detect_hdmi_monitor(edid); -+ drm_connector_update_edid_property(connector, edid); -+ kfree(edid); -+ } -+ } - return connector_status_connected; -+ } - cec_phys_addr_invalidate(vc4_hdmi->cec_adap); - return connector_status_disconnected; - } --- -2.18.4 - - -From 02a89d978b0b7e066db6e1f537eb6ebbb92b91dd Mon Sep 17 00:00:00 2001 +From ed70d37111bd91be4766753c07d6c2ee81d1fd7b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:25:41 +0000 -Subject: [PATCH 337/533] drm/vc4: Add support for DRM_FORMAT_P030 to vc4 +Subject: [PATCH 332/580] drm/vc4: Add support for DRM_FORMAT_P030 to vc4 planes This currently doesn't handle non-zero source rectangles correctly, @@ -173768,7 +173455,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 57 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c -index 5612cab55227..0346513be158 100644 +index af4b8944a603..ec591839810a 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -33,6 +33,7 @@ static const struct hvs_format { @@ -173792,7 +173479,7 @@ index 5612cab55227..0346513be158 100644 }; static const struct hvs_format *vc4_get_hvs_format(u32 drm_format) -@@ -761,27 +768,33 @@ static int vc4_plane_mode_set(struct drm_plane *plane, +@@ -769,27 +776,33 @@ static int vc4_plane_mode_set(struct drm_plane *plane, uint32_t param = fourcc_mod_broadcom_param(fb->modifier); u32 tile_w, tile, x_off, pix_per_tile; @@ -173844,7 +173531,7 @@ index 5612cab55227..0346513be158 100644 return -EINVAL; } -@@ -791,6 +804,13 @@ static int vc4_plane_mode_set(struct drm_plane *plane, +@@ -799,6 +812,13 @@ static int vc4_plane_mode_set(struct drm_plane *plane, /* Adjust the base pointer to the first pixel to be scanned * out. @@ -173858,7 +173545,7 @@ index 5612cab55227..0346513be158 100644 */ for (i = 0; i < num_planes; i++) { vc4_state->offsets[i] += param * tile_w * tile; -@@ -952,7 +972,8 @@ static int vc4_plane_mode_set(struct drm_plane *plane, +@@ -960,7 +980,8 @@ static int vc4_plane_mode_set(struct drm_plane *plane, /* Pitch word 1/2 */ for (i = 1; i < num_planes; i++) { @@ -173868,7 +173555,7 @@ index 5612cab55227..0346513be158 100644 vc4_dlist_write(vc4_state, VC4_SET_FIELD(fb->pitches[i], SCALER_SRC_PITCH)); -@@ -1310,6 +1331,13 @@ static bool vc4_format_mod_supported(struct drm_plane *plane, +@@ -1320,6 +1341,13 @@ static bool vc4_format_mod_supported(struct drm_plane *plane, default: return false; } @@ -173882,7 +173569,7 @@ index 5612cab55227..0346513be158 100644 case DRM_FORMAT_RGBX1010102: case DRM_FORMAT_BGRX1010102: case DRM_FORMAT_RGBA1010102: -@@ -1342,8 +1370,11 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, +@@ -1352,8 +1380,11 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, struct drm_plane *plane = NULL; struct vc4_plane *vc4_plane; u32 formats[ARRAY_SIZE(hvs_formats)]; @@ -173894,7 +173581,7 @@ index 5612cab55227..0346513be158 100644 static const uint64_t modifiers[] = { DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED, DRM_FORMAT_MOD_BROADCOM_SAND128, -@@ -1358,13 +1389,17 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, +@@ -1368,13 +1399,17 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, if (!vc4_plane) return ERR_PTR(-ENOMEM); @@ -173919,10 +173606,10 @@ index 5612cab55227..0346513be158 100644 2.18.4 -From 4b3fbc4fe21d0b804c9372a17c2cf54e83ce0fe4 Mon Sep 17 00:00:00 2001 +From 348e51c855915bcc1a2eb202459a237a908a9629 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Sep 2019 18:28:17 +0100 -Subject: [PATCH 338/533] drm/vc4: Add support for YUV color encodings and +Subject: [PATCH 333/580] drm/vc4: Add support for YUV color encodings and ranges The BT601/BT709 color encoding and limited vs full @@ -173938,10 +173625,10 @@ Signed-off-by: Dave Stevenson 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c -index 0346513be158..b5586c92bfe5 100644 +index ec591839810a..3d33fe3dacea 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c -@@ -620,6 +620,53 @@ static int vc4_plane_allocate_lbm(struct drm_plane_state *state) +@@ -628,6 +628,53 @@ static int vc4_plane_allocate_lbm(struct drm_plane_state *state) return 0; } @@ -173995,7 +173682,7 @@ index 0346513be158..b5586c92bfe5 100644 /* Writes out a full display list for an active plane to the plane's * private dlist state. */ -@@ -984,9 +1031,20 @@ static int vc4_plane_mode_set(struct drm_plane *plane, +@@ -992,9 +1039,20 @@ static int vc4_plane_mode_set(struct drm_plane *plane, /* Colorspace conversion words */ if (vc4_state->is_yuv) { @@ -174019,7 +173706,7 @@ index 0346513be158..b5586c92bfe5 100644 } vc4_state->lbm_offset = 0; -@@ -1413,6 +1471,14 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, +@@ -1423,6 +1481,14 @@ struct drm_plane *vc4_plane_init(struct drm_device *dev, DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y); @@ -174066,10 +173753,10 @@ index c10402e103d6..1f1ed7efaff7 100644 2.18.4 -From f0740a03e69c7e25caf2f8f1dd9247cc910dc6d2 Mon Sep 17 00:00:00 2001 +From cc3e66e0a54a3b68a5dd4298231e799ea0e575f1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Sep 2020 17:32:27 +0100 -Subject: [PATCH 339/533] drm/vc4: Add firmware-kms mode +Subject: [PATCH 334/580] drm/vc4: Add firmware-kms mode This is a squash of all firmware-kms related patches from previous branches, up to and including @@ -176450,10 +176137,10 @@ index d0ee609a9043..05c6989ec4c6 100644 2.18.4 -From 31f05db82fe52c16e2aef60c7ed632700cb4e90f Mon Sep 17 00:00:00 2001 +From 1ad74d2b55baa7a4b7191e634d0d43e8fbcc276c Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 16:20:30 +0100 -Subject: [PATCH 340/533] drm/vc4: Add FKMS as an acceptable node for dma +Subject: [PATCH 335/580] drm/vc4: Add FKMS as an acceptable node for dma ranges. Under FKMS, the firmware (via FKMS) also requires the VideoCore cache @@ -176483,10 +176170,10 @@ index c8f9031fa946..d6576841d0fe 100644 2.18.4 -From 2111687294da5802d033cbee96d5e05ec56d2eb4 Mon Sep 17 00:00:00 2001 +From 4c1c5d4c6f390d2820d191dcc75b2745d78d035f Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 10:00:12 +0100 -Subject: [PATCH 341/533] media: i2c: Add driver for Sony IMX477 sensor +Subject: [PATCH 336/580] 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 @@ -176509,10 +176196,10 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/media/i2c/imx477.c diff --git a/MAINTAINERS b/MAINTAINERS -index edbe69e78f78..8b0ae41a1476 100644 +index 349b2abe4152..ba4dc85810dd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -16346,6 +16346,14 @@ S: Maintained +@@ -16345,6 +16345,14 @@ S: Maintained T: git git://linuxtv.org/media_tree.git F: drivers/media/i2c/imx355.c @@ -178762,10 +178449,10 @@ index 000000000000..ec56b0cfd57b 2.18.4 -From 4ad2885845629451ce253bc61664ebedcb7c8b6f Mon Sep 17 00:00:00 2001 +From 2325fcb4c0e47202efb735a6820992c03d67f3f5 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 8 May 2020 09:41:17 +0100 -Subject: [PATCH 342/533] media: i2c: imx477: Add support for adaptive frame +Subject: [PATCH 337/580] media: i2c: imx477: Add support for adaptive frame control Use V4L2_CID_EXPOSURE_AUTO_PRIORITY to control if the driver should @@ -178950,10 +178637,10 @@ index ec56b0cfd57b..bd0e2c291a32 100644 2.18.4 -From c811c4db9dad47ecb737802c7d6e0246676aefd1 Mon Sep 17 00:00:00 2001 +From 97ad8aa7150a5519f727856b8c6e477392f9d0ea Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 19 May 2020 16:56:33 +0100 -Subject: [PATCH 343/533] media: i2c: imx477: Return correct result on sensor +Subject: [PATCH 338/580] media: i2c: imx477: Return correct result on sensor id verification The test should return -EIO if the register read id does not match @@ -178981,10 +178668,10 @@ index bd0e2c291a32..e42a8633087d 100644 2.18.4 -From 5142b78129598a7662774b84ea4d8b615cd3c480 Mon Sep 17 00:00:00 2001 +From 568da0bef29898a5b92840ca638464778518875a Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 344/533] media: i2c: imx477: Parse and register properties +Subject: [PATCH 339/580] media: i2c: imx477: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -179032,10 +178719,10 @@ index e42a8633087d..3fbb173fa079 100644 2.18.4 -From d60050616cb2b56b62303d4550e75f47e7aa8a95 Mon Sep 17 00:00:00 2001 +From 67dee33ab56be7f642734402b9b0dad90d9bc6fb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 345/533] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 340/580] 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 @@ -179089,10 +178776,10 @@ index 35ddb97f7f75..d4ba911fe7e7 100644 2.18.4 -From 270e82ab97a8aba5510fceb6e00dea140632d46c Mon Sep 17 00:00:00 2001 +From 3df1fb370c0a9dd14a6bda196c6fb38a493bf06c Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 346/533] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 341/580] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -179116,10 +178803,10 @@ index d4ba911fe7e7..8b091d3a0d15 100644 2.18.4 -From ce573d190c7a821a1a83b9f8f4deda4e0ba170d3 Mon Sep 17 00:00:00 2001 +From 739f4d96675c39e658337300d3a3bd55fa51b001 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 15:14:05 +0100 -Subject: [PATCH 347/533] media: bcm2835-unicam: Fixup review comments from +Subject: [PATCH 342/580] media: bcm2835-unicam: Fixup review comments from Hans. Updates the driver based on the upstream review comments from @@ -179368,10 +179055,10 @@ index 8b091d3a0d15..7dc96c3e8e83 100644 2.18.4 -From 46890f8a28514dc62c644611e8d27daf17ac2fe1 Mon Sep 17 00:00:00 2001 +From 91a1f38a0c42e0028bee41444db75a8767cab139 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 348/533] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 343/580] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -179422,10 +179109,10 @@ index 7dc96c3e8e83..98ae97c367ea 100644 2.18.4 -From 5730d0ffbf44ce9e24b9b817cf9ea6b202cff33e Mon Sep 17 00:00:00 2001 +From 4485f5f582ff0d857b9ea0bccc0d522c5e53f59b Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 349/533] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 344/580] 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 @@ -179456,10 +179143,10 @@ index 98ae97c367ea..6501fb205e20 100644 2.18.4 -From 9b013cac165b2e2fd65bec9ca79f92408b4d44cf Mon Sep 17 00:00:00 2001 +From e76c174c30222bbdfa2268a4c6f0c9e571790f1d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 1 Sep 2020 18:15:27 +0100 -Subject: [PATCH 350/533] staging/fbtft: Add support for display variants +Subject: [PATCH 345/580] 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 @@ -179671,10 +179358,10 @@ index 76f8c090a837..f4f5ff0dc0c0 100644 2.18.4 -From 546891023b0721320a522742d3e8dca4d8015eef Mon Sep 17 00:00:00 2001 +From e1ab32ee330be7eaccb7f91741dad29fff842b86 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 09:32:22 +0000 -Subject: [PATCH 351/533] brcmfmac: Increase power saving delay to 2s +Subject: [PATCH 346/580] 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, @@ -179686,7 +179373,7 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index cdc1aeb72005..525bf62d5b3c 100644 +index 38ef415cfbba..380a5ece63da 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -2938,7 +2938,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, @@ -179710,10 +179397,10 @@ index cdc1aeb72005..525bf62d5b3c 100644 2.18.4 -From 99fd5ff2e57cbba2353487b1a370133182814746 Mon Sep 17 00:00:00 2001 +From 064ea97937244c388028258f56de5fe2500d773d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Sep 2020 14:02:44 +0100 -Subject: [PATCH 352/533] rpivid_h265: Fix width/height typo +Subject: [PATCH 347/580] rpivid_h265: Fix width/height typo Signed-off-by: popcornmix --- @@ -179737,10 +179424,10 @@ index 47d4de42c584..b677910e237c 100644 2.18.4 -From eb69ed11abcc231bfa94929e81a14c7c1cdcaf6a Mon Sep 17 00:00:00 2001 +From 80fb26d15b0531bbc4c6c2e247692035976b3c0a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 25 Sep 2020 15:07:23 +0100 -Subject: [PATCH 353/533] net: bcmgenet: Reset RBUF on first open +Subject: [PATCH 348/580] 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 @@ -179813,10 +179500,10 @@ index ae7011c1e1f7..3cbfe5bebc57 100644 2.18.4 -From 5e0c26899003ae6637bc32d19700f4274f98f8ee Mon Sep 17 00:00:00 2001 +From 9ed88ad17f4bbb024577c50de126b52482d5a5fb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2020 20:23:30 +0100 -Subject: [PATCH 354/533] char: Add broadcom char drivers back to build files +Subject: [PATCH 349/580] char: Add broadcom char drivers back to build files See: https://github.com/raspberrypi/linux/issues/3875 Signed-off-by: popcornmix @@ -179851,10 +179538,10 @@ index ffce287ef415..463ff9f136e4 100644 2.18.4 -From 23f0d4b2b0e7706ad24fd5879693162c6522c438 Mon Sep 17 00:00:00 2001 +From aaae5b523f1677d7fe3001e6869710739f4bb505 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 19:23:43 +0100 -Subject: [PATCH 355/533] USB: gadget: f_hid: avoid crashes and log spam +Subject: [PATCH 350/580] 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. @@ -179917,10 +179604,10 @@ index 1125f4715830..8315fca29cff 100644 2.18.4 -From 1013c20deb7b5712f6621f31e0d191d3baed2b47 Mon Sep 17 00:00:00 2001 +From 524dcfc001798d7bca9ee366450f7132ed195dd0 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 7 Oct 2020 15:09:29 +0100 -Subject: [PATCH 356/533] dwc_otg: initialise sched_frame for periodic QHs that +Subject: [PATCH 351/580] 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 @@ -179956,10 +179643,10 @@ index 2823dc9af63f..4503af692aef 100644 2.18.4 -From a11aa1f557a061b74a6b551d8e674bea0210688f Mon Sep 17 00:00:00 2001 +From ea08834f8fbed3a4f44a75959f2327c552bc3c81 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 15:35:14 +0100 -Subject: [PATCH 357/533] staging: bcm2835-camera: Replace deprecated +Subject: [PATCH 352/580] staging: bcm2835-camera: Replace deprecated V4L2_PIX_FMT_BGR32 V4L2_PIX_FMT_BGR32 is deprecated as it is ambiguous over where @@ -179992,10 +179679,10 @@ index bea37cb163fc..e0a96dbb843d 100644 2.18.4 -From 2251c8863bdb53f313a5692b4547559e25c56a8e Mon Sep 17 00:00:00 2001 +From d84865398cff1d5851bd18aefa4c2aee841330fb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 18:49:52 +0100 -Subject: [PATCH 358/533] staging: vc04_services: Add new vc-sm-cma driver +Subject: [PATCH 353/580] staging: vc04_services: Add new vc-sm-cma driver Add Broadcom VideoCore Shared Memory support. @@ -182956,10 +182643,10 @@ index 000000000000..988fdd967922 2.18.4 -From 026cd6aab19b04e9698cca1fc43df54257b0efad Mon Sep 17 00:00:00 2001 +From 1523c5d10561f1e0470b1ba84467998a56279d5a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:09:04 +0100 -Subject: [PATCH 359/533] staging: vchiq-mmal: Add support for 14bit Bayer +Subject: [PATCH 354/580] staging: vchiq-mmal: Add support for 14bit Bayer Add in the missing defines. @@ -182989,10 +182676,10 @@ index 44ba91aa6d47..be8af09a6c80 100644 2.18.4 -From 5ee2b21bb27202cda21dc99e399a7b8e902fce43 Mon Sep 17 00:00:00 2001 +From a2f5dc42978fb1d439b385fc31adff937a759c1e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:11:14 +0100 -Subject: [PATCH 360/533] staging: mmal-vchiq: Add monochrome image formats +Subject: [PATCH 355/580] staging: mmal-vchiq: Add monochrome image formats Adds support for monochrome image formats in the various MIPI packings. @@ -183024,10 +182711,10 @@ index be8af09a6c80..897e6cdf8dd9 100644 2.18.4 -From 9830166adf39e2a7df566d8d9dfc1e52456769a3 Mon Sep 17 00:00:00 2001 +From 39393092088829c2e5d93aead61409a52b3d7bee Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 25 Sep 2018 16:07:55 +0100 -Subject: [PATCH 361/533] staging: mmal-vchiq: Use vc-sm-cma to support zero +Subject: [PATCH 356/580] 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 @@ -183198,10 +182885,10 @@ index e87f88f99338..247521fbcc1d 100644 2.18.4 -From aedc5b3f0f8379ea3549cf1a4ffdbc5f2bdb012e Mon Sep 17 00:00:00 2001 +From cceb60efb6e4df5525807b844bbbc7fb2134003e Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 20:24:12 +0100 -Subject: [PATCH 362/533] staging: vc04_services: Add a V4L2 M2M codec driver +Subject: [PATCH 357/580] staging: vc04_services: Add a V4L2 M2M codec driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -186288,10 +185975,10 @@ index 000000000000..d490ff67f747 2.18.4 -From e24d0d1abb353078706e54d1393ad3156792339d Mon Sep 17 00:00:00 2001 +From f86cbf0fc9952cdf944ff9942e813cf8128ef144 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2020 00:48:55 +0200 -Subject: [PATCH 363/533] bcm2835-dma: only reserve channel 0 if legacy dma +Subject: [PATCH 358/580] 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 @@ -186326,10 +186013,10 @@ index d1127b9058a4..0cbfa9d559a2 100644 2.18.4 -From 78f336c9f6b2d3fd47f240c584137a432daa796f Mon Sep 17 00:00:00 2001 +From 1e587e6d1d8db4c800e3c43e17c77ceda9fdbbab Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 12 Oct 2020 17:03:14 +0100 -Subject: [PATCH 364/533] uapi: bcm2835-isp: Add bcm2835-isp uapi header file +Subject: [PATCH 359/580] 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. @@ -186671,10 +186358,10 @@ index 000000000000..cf8c0437f159 2.18.4 -From 21d335be8df277ae9350b74a070a1ba222e74fca Mon Sep 17 00:00:00 2001 +From a9f48389b409fa85f56e2c0f68e39b283fd15574 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:17:37 +0100 -Subject: [PATCH 365/533] staging: vc04_services: ISP: Add a more complex ISP +Subject: [PATCH 360/580] staging: vc04_services: ISP: Add a more complex ISP processing component Driver for the BCM2835 ISP hardware block. This driver uses the MMAL @@ -186707,7 +186394,7 @@ Signed-off-by: Naushir Patuck create mode 100644 drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c diff --git a/MAINTAINERS b/MAINTAINERS -index 8b0ae41a1476..00112c044608 100644 +index ba4dc85810dd..efee3d01475d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3431,6 +3431,15 @@ S: Maintained @@ -189106,10 +188793,10 @@ index 89059bca0b77..5b596b5c057f 100644 2.18.4 -From 49b8037c029baaa22b32c5cf6da15a70cc25c2fb Mon Sep 17 00:00:00 2001 +From acb3813bd42b7c8838a2e210c4bd4cbb4e789b3b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Jul 2019 17:36:34 +0100 -Subject: [PATCH 366/533] drm/vc4: A present but empty dmas disables audio +Subject: [PATCH 361/580] 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 @@ -189123,10 +188810,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 24da24f3f325..cd257ce10045 100644 +index 69994693c23d..05f841ff4f19 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1745,10 +1745,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) +@@ -1768,10 +1768,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) const __be32 *addr; int index; int ret; @@ -189145,10 +188832,10 @@ index 24da24f3f325..cd257ce10045 100644 2.18.4 -From e31fc021b735309f1fdfedfbab7df69d7735d662 Mon Sep 17 00:00:00 2001 +From 20447426cdd500fcc65fb5cedb55101748e5bbb9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 6 Oct 2020 18:44:42 +0100 -Subject: [PATCH 367/533] drm/vc4: Add debugfs node that dumps the current +Subject: [PATCH 362/580] drm/vc4: Add debugfs node that dumps the current display lists This allows easy analysis of display lists when debugging. @@ -189221,10 +188908,10 @@ index ad691571d759..b5015d036d46 100644 2.18.4 -From 8582d33919dbef3d3dfe160c7477c02b19e84e01 Mon Sep 17 00:00:00 2001 +From 6b1901e34b3b8ce49e33eca566199dc39e725fca Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 12:00:54 +0100 -Subject: [PATCH 368/533] gpio: Add gpio-fsm driver +Subject: [PATCH 363/580] 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 @@ -189246,10 +188933,10 @@ Signed-off-by: Phil Elwell create mode 100644 include/dt-bindings/gpio/gpio-fsm.h diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index eb6e824a1965..c33cce6d5256 100644 +index 852a8c71680c..630a7dd257b1 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -1163,6 +1163,15 @@ config HTC_EGPIO +@@ -1164,6 +1164,15 @@ config HTC_EGPIO several HTC phones. It provides basic support for input pins, output pins, and irqs. @@ -190417,50 +190104,10 @@ index 000000000000..eb40cfdc71df 2.18.4 -From 998fa2e95deab80c50b7eeb2a6939a70f43b8074 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Thu, 22 Oct 2020 12:05:43 +0100 -Subject: [PATCH 369/533] drm/vc4: Reading the hotplug register is only valid - if no GPIO defined - -The order of precedence should be: -- hotplug GPIO being defined -- DDC probe -- hotplug register - -In particular the hotplug register is not valid if a GPIO is defined -(eg on Pi0-3), but was being checked. - -Fixes "943f078 vc4: cec: Restore cec physical address on reconnect" - -Signed-off-by: Dave Stevenson ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 3 ++- - 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 cd257ce10045..08c78fa3ef1f 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -442,8 +442,9 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) - connected = true; - } else if (drm_probe_ddc(vc4_hdmi->ddc)) - connected = true; -- if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) -+ else if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) - connected = true; -+ - if (connected) { - if (connector->status != connector_status_connected) { - struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc); --- -2.18.4 - - -From ebefd4fff1e01cc73bde1d104673a24067f37230 Mon Sep 17 00:00:00 2001 +From f68b08614d4b42795bd2080ae7cc9748a4ceebed Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 21 Oct 2020 18:34:56 +0100 -Subject: [PATCH 370/533] drm/vc4: Add all the HDMI registers into the debugfs +Subject: [PATCH 364/580] drm/vc4: Add all the HDMI registers into the debugfs dumps The vc5 HDMI registers hadn't been added into the debugfs @@ -190474,10 +190121,10 @@ 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 08c78fa3ef1f..9682b55f74dc 100644 +index 05f841ff4f19..c04e54752991 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -401,6 +401,13 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) +@@ -397,6 +397,13 @@ static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) drm_print_regset32(&p, &vc4_hdmi->hdmi_regset); drm_print_regset32(&p, &vc4_hdmi->hd_regset); @@ -190491,7 +190138,7 @@ index 08c78fa3ef1f..9682b55f74dc 100644 return 0; } -@@ -2148,6 +2155,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2173,6 +2180,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; @@ -190499,7 +190146,7 @@ index 08c78fa3ef1f..9682b55f74dc 100644 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi"); if (!res) -@@ -2246,6 +2254,42 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2271,6 +2279,42 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) return PTR_ERR(vc4_hdmi->reset); } @@ -190543,7 +190190,7 @@ index 08c78fa3ef1f..9682b55f74dc 100644 } diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index e78ae694e359..724e5de48ed1 100644 +index 1680e1a56149..1eb1fc0d95a3 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -175,8 +175,17 @@ struct vc4_hdmi { @@ -190568,10 +190215,10 @@ index e78ae694e359..724e5de48ed1 100644 2.18.4 -From 244cd4279f0bf8d1f83ef72da39900b6d67b1e97 Mon Sep 17 00:00:00 2001 +From 731b7411a1ce040781e09356aa665129988aa746 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 19 Mar 2020 10:04:46 +0000 -Subject: [PATCH 371/533] ARM: dts: bcm271x: Use a53 pmu, drop RPI364 +Subject: [PATCH 365/580] 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 @@ -190651,10 +190298,10 @@ index 1fd86f81f542..bf69a4b0b172 100644 2.18.4 -From 66d520a5e7f1d045111e5421543a16e961e83a06 Mon Sep 17 00:00:00 2001 +From 03674b1815c4c4a998db5661238c8616b9884400 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 23 Oct 2020 14:15:41 +0100 -Subject: [PATCH 372/533] overlays: Add option to disable composite to +Subject: [PATCH 366/580] overlays: Add option to disable composite to vc4-kms-v3d Composite gets enabled automatically if HDMI isn't detected, @@ -190695,10 +190342,10 @@ index 6d34a2bff49b..5a4efdeed663 100644 2.18.4 -From 5d4251aa954317183c8e8f2e68a99f95bf2c3158 Mon Sep 17 00:00:00 2001 +From 15bf08ee520118b86b3a8fe87f6703e0136f1411 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 11 Mar 2020 12:07:57 +0000 -Subject: [PATCH 373/533] overlays: imx219: Correct link frequency to match the +Subject: [PATCH 367/580] overlays: imx219: Correct link frequency to match the upstream driver The upstream driver is checking the link frequency parameter, and @@ -190726,10 +190373,10 @@ index 3484bde5a9e8..dce07b335c4e 100644 2.18.4 -From ad5713032b8538f7b40e8d037423431b27130949 Mon Sep 17 00:00:00 2001 +From 427593ebde16a4dff8c1de69b1b1f0626a7ee4ee Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 23 Oct 2020 15:45:11 +0100 -Subject: [PATCH 374/533] dts: Add CM4 to arm64 dt files +Subject: [PATCH 368/580] dts: Add CM4 to arm64 dt files Signed-off-by: Dave Stevenson --- @@ -190763,10 +190410,10 @@ index 000000000000..8064a58155f1 2.18.4 -From d9fd4ec02c49597429bfcf066cd4a5d5e12c1168 Mon Sep 17 00:00:00 2001 +From 1cd181bd518047b8f8a932c88c43ea97617a6563 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 26 Oct 2020 12:38:27 +0000 -Subject: [PATCH 375/533] drm/vc4: Add the 2711 HVS as a suitable DMA node +Subject: [PATCH 369/580] 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. @@ -190793,10 +190440,10 @@ index d6576841d0fe..617c113b033f 100644 2.18.4 -From 6f7c884e2f8862a7b444127245f966143a0f55be Mon Sep 17 00:00:00 2001 +From 1a19f5ccc9befbd4120025f095cd6427e387bb4b Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 26 Oct 2020 14:03:35 +0000 -Subject: [PATCH 376/533] xhci: quirks: add link TRB quirk for VL805 +Subject: [PATCH 370/580] 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 @@ -190816,10 +190463,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 12 insertions(+) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 551ef6445c6b..f8e397962909 100644 +index 96e37f60c7c2..d4e3941bfee9 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -272,6 +272,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -273,6 +273,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; @@ -190828,7 +190475,7 @@ index 551ef6445c6b..f8e397962909 100644 if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 6cf0b04d2f6f..6637f3c2562e 100644 +index a9bd2e340ead..35b246aeb902 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -630,6 +630,16 @@ void xhci_find_new_dequeue_state(struct xhci_hcd *xhci, @@ -190849,14 +190496,14 @@ index 6cf0b04d2f6f..6637f3c2562e 100644 state->new_deq_ptr = new_deq; diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index b814cf58b39b..2f5996fd8709 100644 +index 4f24ad7eccd9..2cc777f66cdf 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -1880,6 +1880,7 @@ struct xhci_hcd { - #define XHCI_DISABLE_SPARSE BIT_ULL(38) +@@ -1881,6 +1881,7 @@ struct xhci_hcd { #define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39) - #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(40) -+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(41) + #define XHCI_NO_SOFT_RETRY BIT_ULL(40) + #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(41) ++#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(42) unsigned int num_active_eps; unsigned int limit_active_eps; @@ -190864,10 +190511,10 @@ index b814cf58b39b..2f5996fd8709 100644 2.18.4 -From da49717b447abe5e4ba2f603a837a38d0b35bbfd Mon Sep 17 00:00:00 2001 +From 6ac8394a3f5f4c77f32b6f130795aa35c05e414a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 15:01:21 +0000 -Subject: [PATCH 377/533] dts: Tidy the Raspberry Pi Makefile entries +Subject: [PATCH 371/580] dts: Tidy the Raspberry Pi Makefile entries Signed-off-by: Phil Elwell --- @@ -190915,10 +190562,10 @@ index 1e861e2bf2e0..996e670a6018 100644 2.18.4 -From 3f4d236e87ce77234b8d1d85d1081309038b9139 Mon Sep 17 00:00:00 2001 +From eac1158ceab053dcee3c7700af1f19c69692c573 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:23:22 +0000 -Subject: [PATCH 378/533] staging: bcm2835-audio: Add disable-headphones flag +Subject: [PATCH 372/580] 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. @@ -190929,7 +190576,7 @@ Signed-off-by: Phil Elwell 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -index b9716f3e264c..092ccbfd5243 100644 +index a0cba3823e5e..ccda115ab9e0 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c @@ -381,11 +381,16 @@ static int snd_bcm2835_alsa_probe(struct platform_device *pdev) @@ -190955,10 +190602,10 @@ index b9716f3e264c..092ccbfd5243 100644 2.18.4 -From 4d7b195126a6ef8da44961efaf554ffbf89f7f42 Mon Sep 17 00:00:00 2001 +From 8d77680e6ad5a1e1a1d2de810c76a77f3110a2ba Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:18:50 +0000 -Subject: [PATCH 379/533] ARM: dts: Disable headphone audio on Zeroes, CM4 +Subject: [PATCH 373/580] ARM: dts: Disable headphone audio on Zeroes, CM4 Signed-off-by: Phil Elwell --- @@ -191007,10 +190654,10 @@ index 0ca3a0126220..fa7b16040f36 100644 2.18.4 -From d7378cdbfe0a8715ed713d1bf009d01e67867883 Mon Sep 17 00:00:00 2001 +From 2b4a34d1170dfa23e4156dc31e6bbf8f65afd177 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:21:23 +0000 -Subject: [PATCH 380/533] overlays: Enable headphone audio in audremap +Subject: [PATCH 374/580] overlays: Enable headphone audio in audremap Signed-off-by: Phil Elwell --- @@ -191039,10 +190686,10 @@ index d624bb3a3fea..7324890ead86 100644 2.18.4 -From 8beb2be5ae9b9e4bb560486f8865702f68940700 Mon Sep 17 00:00:00 2001 +From 5de1ebc8ff1dc6de626c0bde7f32b388454a6cc1 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 26 Oct 2020 16:38:21 +0000 -Subject: [PATCH 381/533] rpisense-fb: Set pseudo_pallete to prevent crash on +Subject: [PATCH 375/580] rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover Signed-off-by: Serge Schneider @@ -191075,10 +190722,10 @@ index 26432a5a0b4b..325977def531 100644 2.18.4 -From 5bc9101710e7b9b7ec7fde76f85c942c8f6ca1a6 Mon Sep 17 00:00:00 2001 +From 3ce4d499ff100e26563c88077cdfafa9fc1e2447 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 10:35:43 +0000 -Subject: [PATCH 382/533] ARM: dts: Expand PCIe space on BCM2711 +Subject: [PATCH 376/580] 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 @@ -191111,10 +190758,10 @@ index b4a18b627359..8ad6c3012fe3 100644 2.18.4 -From b6459ccaee90c954492dbe1811b386d76e0fa191 Mon Sep 17 00:00:00 2001 +From 945ba7698b38ef62383389445c241d6093b1afd2 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Oct 2020 21:51:29 +0000 -Subject: [PATCH 383/533] configs: Set RASPBERRYPI_FIRMWARE for arm64 bcm2711 +Subject: [PATCH 377/580] 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 @@ -191265,10 +190912,10 @@ index d542d2522076..6247c74639f7 100644 2.18.4 -From a72eb0444ca61a15091eb93b1179aded8dd84695 Mon Sep 17 00:00:00 2001 +From 2d602aede01e16d8e74e7087e6ffefbca8c63cfa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 09:59:49 +0000 -Subject: [PATCH 384/533] dwc_otg: Minimise header and fix build warnings +Subject: [PATCH 378/580] 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. @@ -192170,10 +191817,10 @@ index e55ea9c74be4..76e94b4ebb43 100644 2.18.4 -From df2ba6e4cf41ed8fbdb52447507f194d0902295a Mon Sep 17 00:00:00 2001 +From eb5836045993841b7b982b045705b08d63ba3d29 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:10:04 +0000 -Subject: [PATCH 385/533] gpio-fsm: Fix a build warning +Subject: [PATCH 379/580] gpio-fsm: Fix a build warning Signed-off-by: Phil Elwell --- @@ -192198,10 +191845,10 @@ index eb8b4d58d2d0..2cab50e51315 100644 2.18.4 -From 76f155876a2a1b515725237dbdfd3c929ae75ff9 Mon Sep 17 00:00:00 2001 +From 3ade5aa724d334428176e469216bba16f0900f00 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:10:40 +0000 -Subject: [PATCH 386/533] rpivid_h625: Fix build warnings +Subject: [PATCH 380/580] rpivid_h625: Fix build warnings Signed-off-by: Phil Elwell --- @@ -192272,10 +191919,10 @@ index b677910e237c..fc3caed58187 100644 2.18.4 -From 60c256da657a9a95cd34ac89fcebc9f47e26ba76 Mon Sep 17 00:00:00 2001 +From d0c9d9d8d3b74573eb137ddbc43a5f6ce118907d Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:12:22 +0000 -Subject: [PATCH 387/533] bcm2708_fb: Fix a build warning +Subject: [PATCH 381/580] bcm2708_fb: Fix a build warning Signed-off-by: Phil Elwell --- @@ -192300,10 +191947,10 @@ index dac5c021ce52..365c5b96b8a0 100644 2.18.4 -From 45d75bde673b44f7158eae82ca6899e388612901 Mon Sep 17 00:00:00 2001 +From d03acdde125fcf72304d8eb7f07de34d8f8b53a4 Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:18:42 +0000 -Subject: [PATCH 388/533] PiFi-40 defconfigs +Subject: [PATCH 382/580] PiFi-40 defconfigs Signed-off-by: David Knell --- @@ -192378,10 +192025,10 @@ index 6247c74639f7..bc02ce537715 100644 2.18.4 -From 450976bcf9f85c2b9b089db31f954e823da4c3af Mon Sep 17 00:00:00 2001 +From d744d04ad8a7e07e9ca1d3d56766e2c662a8c2bc Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:20:56 +0000 -Subject: [PATCH 389/533] PiFi-40 Devicetree files +Subject: [PATCH 383/580] PiFi-40 Devicetree files Signed-off-by: David Knell --- @@ -192480,10 +192127,10 @@ index 000000000000..51a20e54977f 2.18.4 -From 4a2716e6bce8c8a26a14bad4a362b51c1895a9b1 Mon Sep 17 00:00:00 2001 +From aec991c6de23efedf12de2f8f8dd0e5126507c60 Mon Sep 17 00:00:00 2001 From: David Knell Date: Wed, 28 Oct 2020 14:21:37 +0000 -Subject: [PATCH 390/533] PiFi-40 driver, Makefile and Kconfig +Subject: [PATCH 384/580] PiFi-40 driver, Makefile and Kconfig Signed-off-by: David Knell --- @@ -192823,10 +192470,10 @@ index 000000000000..ae699fb0485c 2.18.4 -From 5ca2286c4244f5488dfc6e0d1c9ddee1f23f2fdb Mon Sep 17 00:00:00 2001 +From 5efda6a22471f967f2a6808bec81ac8af67f38b1 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 27 Oct 2020 12:24:14 +0000 -Subject: [PATCH 391/533] bcm2835-pcm: Fix up multichannel pcm audio +Subject: [PATCH 385/580] bcm2835-pcm: Fix up multichannel pcm audio Fixes: a9c1660ff5f02d048c5f31abf1fd1108ccf9ef87 Signed-off-by: Dom Cobley @@ -192835,7 +192482,7 @@ Signed-off-by: Dom Cobley 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -index 446724e718f9..d1e432709ca7 100644 +index 3c0033101e6e..fa5cf5b9550f 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c @@ -14,14 +14,14 @@ static const struct snd_pcm_hardware snd_bcm2835_playback_hw = { @@ -192884,10 +192531,10 @@ index 446724e718f9..d1e432709ca7 100644 2.18.4 -From 601edcdba822d3b79ae73c7c488b97a93f46bf06 Mon Sep 17 00:00:00 2001 +From 73c50c20d7512930dcc9aabb48dcb8648d4910ba Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Thu, 22 Oct 2020 15:30:55 +0100 -Subject: [PATCH 392/533] watchdog: bcm2835: Ignore params after the partition +Subject: [PATCH 386/580] watchdog: bcm2835: Ignore params after the partition number Use sscanf to extract the partition number and ignore extra parameters @@ -192919,10 +192566,10 @@ index 62937e6f83ca..de25e3682f03 100644 2.18.4 -From 287159c1f57de1e6b46442caa56df15a351d7843 Mon Sep 17 00:00:00 2001 +From fc96b88911191b80a7236791d6f0b2fbe093e944 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 20 Oct 2020 11:55:37 +0100 -Subject: [PATCH 393/533] firmware: raspberrypi: Add support for tryonce reboot +Subject: [PATCH 387/580] firmware: raspberrypi: Add support for tryonce reboot flag Define a new mailbox (SET_REBOOT_FLAGS) which may be used to @@ -192999,10 +192646,10 @@ index 05c6989ec4c6..6b393bbe7f52 100644 2.18.4 -From b19ab5e14a098420226bd48730e2c7f4cabf27e1 Mon Sep 17 00:00:00 2001 +From c0d2283e18c5b642603bda845adef65250d98fde Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:00:41 +0100 -Subject: [PATCH 394/533] phy: broadcom: split out the BCM54213PE from the +Subject: [PATCH 388/580] phy: broadcom: split out the BCM54213PE from the BCM54210E IDs The last nibble is a revision ID, and the 54213pe is a later rev @@ -193016,10 +192663,10 @@ Signed-off-by: Jonathan Bell 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c -index 84ec5f2fae73..e7aa799fc8e8 100644 +index 6de9b072b6b9..671517aae345 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c -@@ -196,7 +196,8 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) +@@ -252,7 +252,8 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610 && BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M && BRCM_PHY_MODEL(phydev) != PHY_ID_BCM54810 && @@ -193029,7 +192676,7 @@ index 84ec5f2fae73..e7aa799fc8e8 100644 return; val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3); -@@ -694,12 +695,20 @@ static struct phy_driver broadcom_drivers[] = { +@@ -763,12 +764,20 @@ static struct phy_driver broadcom_drivers[] = { .config_intr = bcm_phy_config_intr, }, { .phy_id = PHY_ID_BCM54210E, @@ -193051,7 +192698,7 @@ index 84ec5f2fae73..e7aa799fc8e8 100644 }, { .phy_id = PHY_ID_BCM5461, .phy_id_mask = 0xfffffff0, -@@ -855,7 +864,8 @@ module_phy_driver(broadcom_drivers); +@@ -924,7 +933,8 @@ module_phy_driver(broadcom_drivers); static struct mdio_device_id __maybe_unused broadcom_tbl[] = { { PHY_ID_BCM5411, 0xfffffff0 }, { PHY_ID_BCM5421, 0xfffffff0 }, @@ -193062,7 +192709,7 @@ index 84ec5f2fae73..e7aa799fc8e8 100644 { PHY_ID_BCM54612E, 0xfffffff0 }, { PHY_ID_BCM54616S, 0xfffffff0 }, diff --git a/include/linux/brcmphy.h b/include/linux/brcmphy.h -index d0bd226d6bd9..055e591f27c1 100644 +index 54665952d6ad..92948c26da2a 100644 --- a/include/linux/brcmphy.h +++ b/include/linux/brcmphy.h @@ -22,6 +22,7 @@ @@ -193077,21 +192724,21 @@ index d0bd226d6bd9..055e591f27c1 100644 2.18.4 -From 07e738f110523e598b12a7fb6ca1d766618fd1c3 Mon Sep 17 00:00:00 2001 +From d890cb1d76bf086acf9dc290b3595e48be0a4b66 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 29 Oct 2020 14:10:56 +0000 -Subject: [PATCH 395/533] phy: broadcom: Add bcm54213pe configuration +Subject: [PATCH 389/580] phy: broadcom: Add bcm54213pe configuration Signed-off-by: Phil Elwell --- - drivers/net/phy/broadcom.c | 9 +++++++++ - 1 file changed, 9 insertions(+) + drivers/net/phy/broadcom.c | 8 ++++++++ + 1 file changed, 8 insertions(+) diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c -index e7aa799fc8e8..3130377108b1 100644 +index 671517aae345..8b0ac38742d0 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c -@@ -43,6 +43,11 @@ static int bcm54210e_config_init(struct phy_device *phydev) +@@ -82,6 +82,11 @@ static int bcm54210e_config_init(struct phy_device *phydev) return 0; } @@ -193103,25 +192750,24 @@ index e7aa799fc8e8..3130377108b1 100644 static int bcm54612e_config_init(struct phy_device *phydev) { int reg; -@@ -291,6 +296,10 @@ static int bcm54xx_config_init(struct phy_device *phydev) - err = bcm54210e_config_init(phydev); - if (err) - return err; -+ } else if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54213PE) { -+ err = bcm54213pe_config_init(phydev); -+ if (err) -+ return err; - } else if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54612E) { +@@ -354,6 +359,9 @@ static int bcm54xx_config_init(struct phy_device *phydev) + case PHY_ID_BCM54612E: err = bcm54612e_config_init(phydev); - if (err) + break; ++ case PHY_ID_BCM54213PE: ++ err = bcm54213pe_config_init(phydev); ++ break; + case PHY_ID_BCM54616S: + err = bcm54616s_config_init(phydev); + break; -- 2.18.4 -From 4f3f899baf2cb029aa702486d8896c7fd328dcf5 Mon Sep 17 00:00:00 2001 +From d70982c21018e439cd1693f391264bf67f17064a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Nov 2020 14:56:18 +0000 -Subject: [PATCH 396/533] configs: Add CONFIG_MAX31856=m +Subject: [PATCH 390/580] configs: Add CONFIG_MAX31856=m Enable support for MAX31856 temperature sensors. @@ -193200,10 +192846,10 @@ index bc02ce537715..680b51ab0642 100644 2.18.4 -From 6820f731ef0adbd698f3e8e3569fc8e39a653e1d Mon Sep 17 00:00:00 2001 +From 25eefbdaa40fbd92c37b86f9ba7bcb7a29df03df Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 22 Oct 2020 17:11:12 +0100 -Subject: [PATCH 397/533] overlays: Add MAX31856 support to maxtherm overlay +Subject: [PATCH 391/580] 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 @@ -193310,10 +192956,10 @@ index 34d5727069ec..9964e246c14f 100644 2.18.4 -From 863d7beb8a5472217b2c79b6ffd120988e6e7e89 Mon Sep 17 00:00:00 2001 +From b2b3f4d0a841a041dc2f784b526d2a0d1d5f24e9 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2020 14:21:33 +0100 -Subject: [PATCH 398/533] ARM: dts: Add bcm2711-rpi-400.dts +Subject: [PATCH 392/580] ARM: dts: Add bcm2711-rpi-400.dts Signed-off-by: Phil Elwell --- @@ -193981,10 +193627,10 @@ index 000000000000..90c2b5a195d4 2.18.4 -From ed9f833cfe8d87bbdce25f1488613894a9cdfa70 Mon Sep 17 00:00:00 2001 +From b30022ad94ec7e3834735fd8e2f6f7478039ca62 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 4 Nov 2020 11:25:02 +0000 -Subject: [PATCH 399/533] overlays: Deprecate and delete the sdtweak overlay +Subject: [PATCH 393/580] 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. @@ -194106,10 +193752,10 @@ index 38157d2f9bf3..000000000000 2.18.4 -From f12f7f7987dd14aad17eedba8cb92bd6f9122bac Mon Sep 17 00:00:00 2001 +From 8adfab319df6346bae904c47da89819127d44f40 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Nov 2020 11:39:35 +0000 -Subject: [PATCH 400/533] ARM: dts: bcm27xx: Remove enable_headphones setting +Subject: [PATCH 394/580] 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 @@ -194236,10 +193882,10 @@ index fa7b16040f36..49c69fdaef49 100644 2.18.4 -From 4d5876e3dc9cc340609403357c9e89a4f61c2146 Mon Sep 17 00:00:00 2001 +From 939e93d3242981f87a67b0b1e13d0e09c0d9c742 Mon Sep 17 00:00:00 2001 From: menschel Date: Fri, 6 Nov 2020 23:32:22 +0100 -Subject: [PATCH 401/533] configs: Add CAN_MCP251XFD=m and CAN_ISOTP=m +Subject: [PATCH 395/580] 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. @@ -194331,10 +193977,10 @@ index 680b51ab0642..ff74c23ef24e 100644 2.18.4 -From 3b7cb8e76b6e46ebeb14361ae57536b3281c58fb Mon Sep 17 00:00:00 2001 +From a68bdb23a4ee3bbbb72cbb3f1d1a04b5ee07401e Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 9 Nov 2020 19:49:32 +0000 -Subject: [PATCH 402/533] vc4_hdmi: Report that 3d/stereo is allowed +Subject: [PATCH 396/580] vc4_hdmi: Report that 3d/stereo is allowed Signed-off-by: Dom Cobley --- @@ -194342,10 +193988,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 9682b55f74dc..4f5146547850 100644 +index c04e54752991..63e9dd62cde8 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -540,6 +540,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -559,6 +559,7 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, connector->interlace_allowed = 1; connector->doublescan_allowed = 0; @@ -194357,10 +194003,10 @@ index 9682b55f74dc..4f5146547850 100644 2.18.4 -From 7094aa24b65d44fd8ee22c89fb8450ee67362a87 Mon Sep 17 00:00:00 2001 +From 6918ae05e5c6a2110877bc3fded2465d0a9c5b90 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2020 17:08:33 +0000 -Subject: [PATCH 403/533] PCI: brcmstb: Restore initial fundamental reset +Subject: [PATCH 397/580] 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 @@ -194398,10 +194044,10 @@ index fea54f6fb7b1..bd0263d739c9 100644 2.18.4 -From b53f83abf942a978e84632050de60ced21b451b1 Mon Sep 17 00:00:00 2001 +From 85202ea8e3c41a612bd527d35a2f8bb5ac81f938 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 10 Nov 2020 20:04:08 +0000 -Subject: [PATCH 404/533] vc4: Clear unused infoframe packet RAM registers +Subject: [PATCH 398/580] vc4: Clear unused infoframe packet RAM registers Using a hdmi analyser the bytes in packet ram registers beyond the length were visible in the @@ -194415,10 +194061,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 4f5146547850..81f0cd7f846b 100644 +index 63e9dd62cde8..4a3e020364af 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -568,9 +568,11 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -587,9 +587,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; @@ -194431,7 +194077,7 @@ index 4f5146547850..81f0cd7f846b 100644 ssize_t len, i; int ret; -@@ -603,6 +605,13 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, +@@ -622,6 +624,13 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, packet_reg += 4; } @@ -194449,10 +194095,10 @@ index 4f5146547850..81f0cd7f846b 100644 2.18.4 -From 01bdfb818c6cf0d90df5e221388ba8ae450d64a8 Mon Sep 17 00:00:00 2001 +From 69029ecd030d7bdb2a6556ff45f5cb7ffc0c0caf Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:45:10 +0000 -Subject: [PATCH 405/533] Input: edt-ft5x06: Poll the device if no interrupt is +Subject: [PATCH 399/580] Input: edt-ft5x06: Poll the device if no interrupt is configured. Not all systems have the interrupt line wired up, so switch to @@ -194552,10 +194198,10 @@ index 6ff81d48da86..7e8acc0c19be 100644 2.18.4 -From 1b78a277adb95ba28913f88771a6b62859203b18 Mon Sep 17 00:00:00 2001 +From 8f96c85c4fa847a7e751d4a47f546eb6ae8cfc99 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:52:25 +0000 -Subject: [PATCH 406/533] dtoverlays: Add an overlay for the EDT FT5406 +Subject: [PATCH 400/580] dtoverlays: Add an overlay for the EDT FT5406 touchscreen This touchscreen controller is used by the 7" DSI panel, and @@ -194659,10 +194305,10 @@ index 000000000000..407af59bf468 2.18.4 -From 8ef25ea74c86d5a6a3bd835d98ef058a483b412a Mon Sep 17 00:00:00 2001 +From 4be4b6378cdf4b804e84ff34937324f679fb1b60 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 23 Apr 2020 10:17:18 +0100 -Subject: [PATCH 407/533] drm/panel/raspberrypi-touchscreen: Use independent +Subject: [PATCH 401/580] drm/panel/raspberrypi-touchscreen: Use independent I2C actions with delay. We now have the hardware I2C controller pinmuxed to the drive the @@ -194723,10 +194369,10 @@ index 5e9ccefb88f6..7ebb5ee2a47d 100644 2.18.4 -From 9f50d2bdc940b0283fe17738afba8d403f14e30e Mon Sep 17 00:00:00 2001 +From 43e5511ab5861e8be1cb083bb66f8b51393bb4e0 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 11:21:56 +0000 -Subject: [PATCH 408/533] drm/panel/raspberrypi-ts: Insert delay before polling +Subject: [PATCH 402/580] drm/panel/raspberrypi-ts: Insert delay before polling for startup state In switching to the hardware I2C controller there is an issue @@ -194755,10 +194401,10 @@ index 7ebb5ee2a47d..abb8a8586b6f 100644 2.18.4 -From 83b3f06afeaf6c7b5d580de53d3db1618608e2b2 Mon Sep 17 00:00:00 2001 +From b76abb75f99d59a4f99fc7b8d902c48e8d9943a8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 17:49:35 +0000 -Subject: [PATCH 409/533] Add devicetree support for RaspberryPi 7" panel over +Subject: [PATCH 403/580] Add devicetree support for RaspberryPi 7" panel over DSI I2C Signed-off-by: Dave Stevenson @@ -194866,10 +194512,10 @@ index 000000000000..086f4ffd633a 2.18.4 -From c3c7349fb558079907994416ba15fe6cfcef09ae Mon Sep 17 00:00:00 2001 +From 96d8306fc1be679607e18d20bf78c7af48e9d148 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Fri, 15 Nov 2019 00:54:07 +0100 -Subject: [PATCH 410/533] mcp251xfd: add overlay +Subject: [PATCH 404/580] mcp251xfd: add overlay Signed-off-by: Marc Kleine-Budde --- @@ -195160,10 +194806,10 @@ index 000000000000..65c861bbd340 2.18.4 -From a3a10077fb091ba0d5d7757fa6c7db3f0aa87339 Mon Sep 17 00:00:00 2001 +From ee70852d50ac13430b62a59f8801c1a7d50bee6f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Nov 2020 14:53:14 +0000 -Subject: [PATCH 411/533] configs: Regenerate the defconfigs +Subject: [PATCH 405/580] 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 @@ -195275,10 +194921,10 @@ index ff74c23ef24e..6939accc59bf 100644 2.18.4 -From 06fa2f265bd71a3c6e0000b516d4b571dd057eb2 Mon Sep 17 00:00:00 2001 +From 426db5292181bb4285037047b660a04e3db8fc2e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Nov 2020 14:56:18 +0000 -Subject: [PATCH 412/533] configs: Restore BRIDGE_NETFILTER=m +Subject: [PATCH 406/580] 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 @@ -195360,10 +195006,10 @@ index 6939accc59bf..88ae301afcb4 100644 2.18.4 -From f24002b41092a30db64a7dda209e8c7ed6fdf837 Mon Sep 17 00:00:00 2001 +From 13f1dc18b8edcc2a1cfe5b739c75d0b90d2999ef Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 23 Nov 2020 16:17:31 +0100 -Subject: [PATCH 413/533] configs: Enable WireGuard kernel module on armhf +Subject: [PATCH 407/580] configs: Enable WireGuard kernel module on armhf configs CONFIG_WIREGUARD=m implies CONFIG_ARM_CRYPTO=y, hence the latter is removed. @@ -195439,10 +195085,10 @@ index d8484c28caed..77c400a1ecd9 100644 2.18.4 -From 16a87e87d0f7b84593abd8597a449d2e7530372e Mon Sep 17 00:00:00 2001 +From 8962db50b7e6ea6d62aa0ad10ae2f8042a05098b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 22 Nov 2020 11:01:08 +0000 -Subject: [PATCH 414/533] media: ov9281: Add 1280x720 and 640x480 modes +Subject: [PATCH 408/580] media: ov9281: Add 1280x720 and 640x480 modes Breaks out common register set and adds the different registers for 1280x720 (cropped) and 640x480 (skipped) modes @@ -195654,10 +195300,10 @@ index 9610c24ceff1..12621c2dccd5 100644 2.18.4 -From ecbcf62d79f5186c8438c558cb3bc3333574bab2 Mon Sep 17 00:00:00 2001 +From 932b1f357f91fd8cfb60ed7281bc353a50b7bdd9 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 11 Nov 2020 17:18:01 +0000 -Subject: [PATCH 415/533] drm/vc4: Add support for DSI0 +Subject: [PATCH 409/580] 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 @@ -195735,10 +195381,10 @@ index eaf276978ee7..1680adf9fe31 100644 2.18.4 -From e7bad0ba40d670982b1d9d14e3a7b4964e82469e Mon Sep 17 00:00:00 2001 +From af405a7c111bb566140622c768357df974c21969 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:01:52 +0000 -Subject: [PATCH 416/533] dt-bindings: Add compatible for BCM2711 DSI1 +Subject: [PATCH 410/580] 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. @@ -195764,10 +195410,10 @@ index eb44e072b6e5..90ee069ada8d 100644 2.18.4 -From 484bf1032a0f770b4493cf4aba749798945eb7bc Mon Sep 17 00:00:00 2001 +From e04ac9c0cac6cb768a3a9bb6be1007f3908af95d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:18:13 +0000 -Subject: [PATCH 417/533] drm/vc4: Add configuration for BCM2711 DSI1. +Subject: [PATCH 411/580] 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 @@ -195809,10 +195455,10 @@ index 1680adf9fe31..0cd40d31e82d 100644 2.18.4 -From d76d56b8ff7226b6f70cff631a46c854186c714d Mon Sep 17 00:00:00 2001 +From 05af89a350ffff5c971f0cbc849335a9d1b695c3 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 18:42:30 +0000 -Subject: [PATCH 418/533] dt: Use compatible string for BCM2711 DSI1 +Subject: [PATCH 412/580] dt: Use compatible string for BCM2711 DSI1 Updates the compatible string for DSI1 on BCM2711 to differentiate it from BCM2835. @@ -195838,59 +195484,10 @@ index 8ad6c3012fe3..7c2d374cb749 100644 2.18.4 -From 95a3ba7543d320edbd35557c37722a266a8056e6 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 22 Oct 2020 19:07:24 +0100 -Subject: [PATCH 419/533] vc4_hdmi: Move hdmi reset to bind - -The hdmi reset got moved to a later point in -"drm/vc4: hdmi: Add reset callback" - -which now occurs after vc4_hdmi_cec_init -and so tramples the setup of registers like -HDMI_CEC_CNTRL_1 - -This only affects pi0-3 as on pi4 the cec -resgisters are in a separate block - -Fixes: ed9a1f6eb4402b25b8a983dc4bfe40f025176e03 -Signed-off-by: Dom Cobley ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 6 +++--- - 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 81f0cd7f846b..452c4a514bfd 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -986,9 +986,6 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) - return; - } - -- if (vc4_hdmi->variant->reset) -- vc4_hdmi->variant->reset(vc4_hdmi); -- - if (vc4_hdmi->variant->phy_init) - vc4_hdmi->variant->phy_init(vc4_hdmi, mode); - -@@ -2366,6 +2363,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"); - -+ if (vc4_hdmi->variant->reset) -+ vc4_hdmi->variant->reset(vc4_hdmi); -+ - pm_runtime_enable(dev); - - drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS); --- -2.18.4 - - -From 9cbebf199b0a199010b154b36b91f094232aa0f5 Mon Sep 17 00:00:00 2001 +From 929b9795706dbfeea71aa5fb174054f7995018df Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 30 Nov 2020 16:16:03 +0000 -Subject: [PATCH 420/533] drm/vc4: Correct DSI register definition +Subject: [PATCH 413/580] 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 @@ -195927,10 +195524,10 @@ index 0cd40d31e82d..bac5e07c05de 100644 2.18.4 -From 85ba0f0b9861e1343f01230cae97ab4fd0ece132 Mon Sep 17 00:00:00 2001 +From a1ae3c864f0a2bbede2589111407351942b83914 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:47:17 +0530 -Subject: [PATCH 421/533] Allo boss2 driver +Subject: [PATCH 414/580] Allo boss2 driver Signed-off-by: Sudeep --- @@ -197123,10 +196720,10 @@ index 000000000000..5ad7f16964aa 2.18.4 -From b1f8a472cf696da64ad43f19985c2276445d781e Mon Sep 17 00:00:00 2001 +From 5803e126db4d08bd97c73d8d0f2b66a402b1dfb2 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:51:15 +0530 -Subject: [PATCH 422/533] Add allo boss2 overlay +Subject: [PATCH 415/580] Add allo boss2 overlay Signed-off-by: Sudeep --- @@ -197232,10 +196829,10 @@ index 000000000000..a6adfb495eb9 2.18.4 -From 00c195c2460d810b54a7845d768bf6146d5014bb Mon Sep 17 00:00:00 2001 +From 99925c9ba9f56e4e5392eadd18045f6d7a9fff35 Mon Sep 17 00:00:00 2001 From: Sudeep Date: Fri, 23 Oct 2020 15:52:38 +0530 -Subject: [PATCH 423/533] Add allo boss2 config +Subject: [PATCH 416/580] Add allo boss2 config Signed-off-by: Sudeep --- @@ -197310,10 +196907,10 @@ index 88ae301afcb4..2359f9c08650 100644 2.18.4 -From 25a0bd2c9132d96903c7086760d0c27a30b712cd Mon Sep 17 00:00:00 2001 +From f9d996e2767e4a867fadb5d9e8ca064c34545284 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 424/533] Overlay: Update Allo Piano Plus dac driver for 5.4.y +Subject: [PATCH 417/580] Overlay: Update Allo Piano Plus dac driver for 5.4.y kernels. Create unique names for the two instances of the codec driver. @@ -197346,10 +196943,10 @@ index 374c553db062..d47a35def4f7 100644 2.18.4 -From c5c45e75ab5ba5ede3e97a588181b98506aef071 Mon Sep 17 00:00:00 2001 +From df5b30dc657ad738b22b462d054ef6c93fefa8dd Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:22:23 +0000 -Subject: [PATCH 425/533] media: bcm2835-unicam: Correctly handle error +Subject: [PATCH 418/580] media: bcm2835-unicam: Correctly handle error propagation for stream on On a failure in start_streaming(), the error code would not propagate to @@ -197379,10 +196976,10 @@ index 6501fb205e20..c13a0a20fd12 100644 2.18.4 -From c35472fca8df385859478b8b392e73cad698ff2b Mon Sep 17 00:00:00 2001 +From 290d9f4bc8cfb81e85f5aa87ec466858b104cf9b Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:26:09 +0000 -Subject: [PATCH 426/533] media: bcm2835-unicam: Return early from +Subject: [PATCH 419/580] media: bcm2835-unicam: Return early from stop_streaming() if stopped clk_disable_unprepare() is called unconditionally in stop_streaming(). @@ -197449,10 +197046,10 @@ index c13a0a20fd12..60309de02369 100644 2.18.4 -From 2faab4b6271dc4b9e0986a1ce508c862560dc071 Mon Sep 17 00:00:00 2001 +From af1a09539835120961d544c3e71e7001b4222925 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 16:48:41 +0000 -Subject: [PATCH 427/533] media: bcm2835-unicam: Clear clock state when +Subject: [PATCH 420/580] media: bcm2835-unicam: Clear clock state when stopping streaming Commit 65e08c465020d4c5b51afb452efc2246d80fd66f failed to clear the @@ -197480,10 +197077,10 @@ index 60309de02369..a8b3f5433f04 100644 2.18.4 -From 5fafe25c43d587cdd564287517eb79162f3077ff Mon Sep 17 00:00:00 2001 +From 88fb83d2710a61fb8a2255bceea5b779564ce687 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 3 Dec 2020 13:44:42 +0000 -Subject: [PATCH 428/533] PCI: brcmstb: Advertise MSI-X support +Subject: [PATCH 421/580] 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 @@ -197513,10 +197110,10 @@ index bd0263d739c9..840f264f7a9b 100644 2.18.4 -From 6fda9e6b9d06aa2e07f28d1eb5c70c30be2daf5d Mon Sep 17 00:00:00 2001 +From 8fc7185289da02a16c29bb93bf84b0efe91c2c63 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 09:35:57 +0000 -Subject: [PATCH 429/533] ARM: dts: CM4 audio pins are not connected +Subject: [PATCH 422/580] ARM: dts: CM4 audio pins are not connected Signed-off-by: Phil Elwell --- @@ -197540,10 +197137,10 @@ index 49c69fdaef49..dbe8afe9ac5f 100644 2.18.4 -From 8b99ea020ed3884e9bda9dcfb770b71ba30e7957 Mon Sep 17 00:00:00 2001 +From 13919f4a36bd9a0d155fe7b81d9f858e5f35ffe4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 08:33:19 +0000 -Subject: [PATCH 430/533] configs: Add RTC_DRV_PCF85063=m +Subject: [PATCH 423/580] configs: Add RTC_DRV_PCF85063=m Include the driver module for the PCF85063 and PCF85063A RTC devices. @@ -197620,10 +197217,10 @@ index 2359f9c08650..5d6f27ec87f6 100644 2.18.4 -From 9357644adde5e673a0b4543d5e5458257bcc8823 Mon Sep 17 00:00:00 2001 +From a3a7db8bf666282b0e78bd743b4a70db848eba71 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 08:49:53 +0000 -Subject: [PATCH 431/533] overlays: Add PCF85063 and PCF85063A to i2c-rtc +Subject: [PATCH 424/580] overlays: Add PCF85063 and PCF85063A to i2c-rtc Add support for the PCF85063 and PCF85063A RTC devices to the i2c-rtc overlay. @@ -197967,10 +197564,10 @@ index 735ca303e4fa..759f532d5be1 100644 2.18.4 -From 4686cb82291ab0f02c1e9fc234c675c7d4e9adb2 Mon Sep 17 00:00:00 2001 +From bab1339a3461dde998402854ecd5f9326e5ae6f4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Dec 2020 17:18:39 +0000 -Subject: [PATCH 432/533] overlays: Fix cut-and-paste error in README +Subject: [PATCH 425/580] overlays: Fix cut-and-paste error in README Signed-off-by: Phil Elwell --- @@ -197997,10 +197594,10 @@ index d4cf4176a54b..2fa2bbb943cd 100644 2.18.4 -From 04d12834adf7eca4817b56980af05bc19ea08452 Mon Sep 17 00:00:00 2001 +From f4cc458cbc561a6af955ed2a53eaa2638a46523f Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 4 Nov 2020 18:31:02 +0000 -Subject: [PATCH 433/533] staging/bcm2835-codec: Ensure OUTPUT timestamps are +Subject: [PATCH 426/580] staging/bcm2835-codec: Ensure OUTPUT timestamps are always forwarded The firmware by default tries to ensure that decoded frame @@ -198058,10 +197655,10 @@ index 5b596b5c057f..efda4dc039c3 100644 2.18.4 -From 4278a282570ebd2270df70a477a0fc3318050438 Mon Sep 17 00:00:00 2001 +From bff6614254013219853b5ccc01a1b601dc42293a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 16:38:37 +0000 -Subject: [PATCH 434/533] net: lan78xx: Ack pending PHY ints when resetting +Subject: [PATCH 427/580] 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 @@ -198096,10 +197693,10 @@ index 58f5b90f11d4..3cf5ad0bf0c1 100644 2.18.4 -From af027848f118e76b770319bcfe0245adbc93070e Mon Sep 17 00:00:00 2001 +From e9c2d442a928d9cf392337ec73e687fffe113a0b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 17:02:17 +0000 -Subject: [PATCH 435/533] overlays: mpu6050: Add 'addr' parameter +Subject: [PATCH 428/580] 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 @@ -198140,10 +197737,10 @@ index 3109d90562ae..1b4c06535687 100644 2.18.4 -From 812fff97e3b7e42274a2a477551ec73ab4669953 Mon Sep 17 00:00:00 2001 +From f33c5ceb253e622b7afdfade9228e38f7e679553 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 15 Dec 2020 16:26:51 +0000 -Subject: [PATCH 436/533] drm/vc4: Make normalize_zpos conditional on using +Subject: [PATCH 429/580] drm/vc4: Make normalize_zpos conditional on using fkms Eric's view was that there was no point in having zpos @@ -198175,10 +197772,10 @@ index 65513a90d606..5d0974cdeaaa 100644 2.18.4 -From cb651587c0eefb0b94bed0a62fd43130dad674b1 Mon Sep 17 00:00:00 2001 +From d75d60c811f6c92e7598aa4c4fa3baf2583fd6e3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Dec 2020 09:28:17 +0000 -Subject: [PATCH 437/533] overlays: Add missing addresses to ads1015/ads1115 +Subject: [PATCH 430/580] 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 @@ -198224,10 +197821,10 @@ index 4fc571c2db33..e44ced704ee2 100644 2.18.4 -From 863531aee85a735406f7b2e37b9a09227e21d1ec Mon Sep 17 00:00:00 2001 +From dd06f4f934fea04c2cacd64ea5f5580418ec8ef7 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 9 Dec 2020 11:30:12 +0000 -Subject: [PATCH 438/533] media: i2c: imx477: Selection compliance fixes +Subject: [PATCH 431/580] 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 @@ -198310,10 +197907,10 @@ index 3fbb173fa079..f68e7718b09c 100644 2.18.4 -From 077c225a2c1d66c0db4a3f7ade03783addbbda66 Mon Sep 17 00:00:00 2001 +From b602e469c5f2bc7de2dfa8a82ed180338aa8bf88 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 13 Dec 2020 16:45:58 +0000 -Subject: [PATCH 439/533] staging/vc04_services/codec: Add support for CID +Subject: [PATCH 432/580] staging/vc04_services/codec: Add support for CID MPEG_HEADER_MODE Control V4L2_CID_MPEG_VIDEO_HEADER_MODE controls whether the encoder @@ -198380,10 +197977,10 @@ index 3791ab4b4244..c368246cbb6a 100644 2.18.4 -From e898647df4eeebf0d46851f7c67c8810d1afdb38 Mon Sep 17 00:00:00 2001 +From 681d09168e495406dd7502a0ca835802fa587313 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 13 Dec 2020 16:54:43 +0000 -Subject: [PATCH 440/533] staging/vc04_services/codec: Clear last buf dequeued +Subject: [PATCH 433/580] staging/vc04_services/codec: Clear last buf dequeued flag on START It appears that the V4L2 M2M framework requires the driver to manually @@ -198423,10 +198020,10 @@ index c368246cbb6a..9673d807ca67 100644 2.18.4 -From 3248f39d7ff5544b0d37162cba474cb313988e9a Mon Sep 17 00:00:00 2001 +From 69ea7f494ccf96a474a666fa777c351fd5e06ff9 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Oct 2020 14:44:08 +0200 -Subject: [PATCH 441/533] drm/atomic: Pass the full state to CRTC atomic +Subject: [PATCH 434/580] drm/atomic: Pass the full state to CRTC atomic enable/disable Commit 351f950db4ab28c321a1bd4b92e4bb03e34c4703 upstream. @@ -199142,7 +198739,7 @@ index a0253297bc76..6b03ceeb5ba1 100644 struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); struct mdp4_kms *mdp4_kms = get_kms(crtc); diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c -index c39dad151bb6..747dd8a7aa6e 100644 +index 7d7668998501..6082b0db700f 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c @@ -483,7 +483,7 @@ static u32 mdp5_crtc_get_vblank_counter(struct drm_crtc *crtc) @@ -199208,10 +198805,10 @@ index 328a4a74f534..fef3b0032fd8 100644 struct omap_drm_private *priv = crtc->dev->dev_private; struct omap_crtc *omap_crtc = to_omap_crtc(crtc); diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index 6063f3a15329..a1f1d10c542d 100644 +index 862ef59d4d03..25a3eb7fb5f8 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -444,13 +444,13 @@ static const struct drm_framebuffer_funcs qxl_fb_funcs = { +@@ -445,13 +445,13 @@ static const struct drm_framebuffer_funcs qxl_fb_funcs = { }; static void qxl_crtc_atomic_enable(struct drm_crtc *crtc, @@ -199228,7 +198825,7 @@ index 6063f3a15329..a1f1d10c542d 100644 qxl_crtc_update_monitors_config(crtc, "disable"); } diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -index fe86a3e67757..4c360a255849 100644 +index 1b9738e44909..85da65c71794 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c @@ -710,7 +710,7 @@ static int rcar_du_crtc_atomic_check(struct drm_crtc *crtc, @@ -199240,7 +198837,7 @@ index fe86a3e67757..4c360a255849 100644 { struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc); struct rcar_du_crtc_state *rstate = to_rcar_crtc_state(crtc->state); -@@ -748,8 +748,10 @@ static void rcar_du_crtc_atomic_enable(struct drm_crtc *crtc, +@@ -745,8 +745,10 @@ static void rcar_du_crtc_atomic_enable(struct drm_crtc *crtc, } static void rcar_du_crtc_atomic_disable(struct drm_crtc *crtc, @@ -199344,7 +198941,7 @@ index 3a153648b369..999deb64bd70 100644 struct drm_encoder *encoder = sun4i_crtc_get_encoder(crtc); struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc); diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c -index 424ad60b4f38..52acc2f8f798 100644 +index 3a244ef7f30f..cdbd0e83a521 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -1742,7 +1742,7 @@ static int tegra_dc_wait_idle(struct tegra_dc *dc, unsigned long timeout) @@ -199609,10 +199206,10 @@ index cf3aafd00837..5b04ec047ef3 100644 struct vmw_private *dev_priv; struct vmw_screen_target_display_unit *stdu; diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c b/drivers/gpu/drm/xlnx/zynqmp_disp.c -index 98bd48f13fd1..0b3bd62e7631 100644 +index 8cd8af35cfaa..db4c8b03dda7 100644 --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c -@@ -1449,7 +1449,7 @@ static int zynqmp_disp_crtc_setup_clock(struct drm_crtc *crtc, +@@ -1441,7 +1441,7 @@ static int zynqmp_disp_crtc_setup_clock(struct drm_crtc *crtc, static void zynqmp_disp_crtc_atomic_enable(struct drm_crtc *crtc, @@ -199621,7 +199218,7 @@ index 98bd48f13fd1..0b3bd62e7631 100644 { struct zynqmp_disp *disp = crtc_to_disp(crtc); struct drm_display_mode *adjusted_mode = &crtc->state->adjusted_mode; -@@ -1480,8 +1480,10 @@ zynqmp_disp_crtc_atomic_enable(struct drm_crtc *crtc, +@@ -1472,8 +1472,10 @@ zynqmp_disp_crtc_atomic_enable(struct drm_crtc *crtc, static void zynqmp_disp_crtc_atomic_disable(struct drm_crtc *crtc, @@ -199696,10 +199293,10 @@ index 4efec30f8bad..bde42988c4b5 100644 2.18.4 -From f37b6c65cbd9d4c9ce8db656c179b1178338f89e Mon Sep 17 00:00:00 2001 +From 653eed3a94844a6e9d96f9a4b59ab84feffcb9f1 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 28 Oct 2020 13:32:21 +0100 -Subject: [PATCH 442/533] drm/atomic: Pass the full state to CRTC atomic_check +Subject: [PATCH 435/580] 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 @@ -199898,10 +199495,10 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max 30 files changed, 168 insertions(+), 110 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -index 0f7749e9424d..655ba0e43fd7 100644 +index c07737c45677..3562dac4b55f 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c -@@ -5519,17 +5519,19 @@ static void dm_update_crtc_active_planes(struct drm_crtc *crtc, +@@ -5558,17 +5558,19 @@ static void dm_update_crtc_active_planes(struct drm_crtc *crtc, } static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, @@ -199925,7 +199522,7 @@ index 0f7749e9424d..655ba0e43fd7 100644 WARN_ON(1); return ret; } -@@ -5540,8 +5542,8 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, +@@ -5579,8 +5581,8 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc, * planes are disabled, which is not supported by the hardware. And there is legacy * userspace which stops using the HW cursor altogether in response to the resulting EINVAL. */ @@ -200304,7 +199901,7 @@ index 6b03ceeb5ba1..af80f3baf05b 100644 struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); DBG("%s: check", mdp4_crtc->name); diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c -index 747dd8a7aa6e..500f885c0eae 100644 +index 6082b0db700f..3d6aeb8916f2 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c @@ -7,6 +7,7 @@ @@ -200455,7 +200052,7 @@ index fef3b0032fd8..69a0770ba38e 100644 /* Mirror new values for zpos and rotation in omap_crtc_state */ omap_crtc_state->zpos = pri_state->zpos; diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -index 4c360a255849..460fb07b786f 100644 +index 85da65c71794..f4020f44589d 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c @@ -682,20 +682,23 @@ static void rcar_du_crtc_stop(struct rcar_du_crtc *rcrtc) @@ -200743,10 +200340,10 @@ index 3ee03227607c..b3d4e7b4c8c5 100644 struct drm_crtc_state *old_crtc_state); void vmw_du_crtc_atomic_flush(struct drm_crtc *crtc, diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c b/drivers/gpu/drm/xlnx/zynqmp_disp.c -index 0b3bd62e7631..12d3877b3685 100644 +index db4c8b03dda7..178b310c0979 100644 --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c -@@ -1506,9 +1506,11 @@ zynqmp_disp_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -1505,9 +1505,11 @@ zynqmp_disp_crtc_atomic_disable(struct drm_crtc *crtc, } static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc, @@ -200787,10 +200384,10 @@ index bde42988c4b5..b97441deaf93 100644 2.18.4 -From 37cfe71eebd350ddfae392f049f9dda1ef42bb34 Mon Sep 17 00:00:00 2001 +From d7a5b03405a9abbe5110bb9bcc388fd195e4a39b Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 28 Oct 2020 13:32:22 +0100 -Subject: [PATCH 443/533] drm/atomic: Pass the full state to CRTC atomic begin +Subject: [PATCH 436/580] drm/atomic: Pass the full state to CRTC atomic begin and flush MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -201482,7 +201079,7 @@ index af80f3baf05b..34e3186e236d 100644 struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); struct drm_device *dev = crtc->dev; diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c -index 500f885c0eae..4a53d7b42e9c 100644 +index 3d6aeb8916f2..baf9f1d550c6 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c @@ -772,13 +772,13 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, @@ -201534,10 +201131,10 @@ index 69a0770ba38e..d7442aa55f89 100644 struct omap_drm_private *priv = crtc->dev->dev_private; struct omap_crtc *omap_crtc = to_omap_crtc(crtc); diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index a1f1d10c542d..32e7d4bd8636 100644 +index 25a3eb7fb5f8..c64a836d5d4a 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -372,7 +372,7 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc, +@@ -373,7 +373,7 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc, } static void qxl_crtc_atomic_flush(struct drm_crtc *crtc, @@ -201547,10 +201144,10 @@ index a1f1d10c542d..32e7d4bd8636 100644 qxl_crtc_update_monitors_config(crtc, "flush"); } diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -index 460fb07b786f..b5fb941e0f53 100644 +index f4020f44589d..e23b9c7b4afe 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -@@ -785,7 +785,7 @@ static void rcar_du_crtc_atomic_disable(struct drm_crtc *crtc, +@@ -779,7 +779,7 @@ static void rcar_du_crtc_atomic_disable(struct drm_crtc *crtc, } static void rcar_du_crtc_atomic_begin(struct drm_crtc *crtc, @@ -201559,7 +201156,7 @@ index 460fb07b786f..b5fb941e0f53 100644 { struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc); -@@ -814,7 +814,7 @@ static void rcar_du_crtc_atomic_begin(struct drm_crtc *crtc, +@@ -808,7 +808,7 @@ static void rcar_du_crtc_atomic_begin(struct drm_crtc *crtc, } static void rcar_du_crtc_atomic_flush(struct drm_crtc *crtc, @@ -201648,7 +201245,7 @@ index 8f91391832db..45d9eb552d86 100644 struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc); struct drm_pending_vblank_event *event = crtc->state->event; diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c -index 52acc2f8f798..2d86627b0d4e 100644 +index cdbd0e83a521..4f00d1b39cc4 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -1918,7 +1918,7 @@ static void tegra_crtc_atomic_enable(struct drm_crtc *crtc, @@ -201826,10 +201423,10 @@ index b3d4e7b4c8c5..03f3694015ce 100644 struct drm_crtc_state *vmw_du_crtc_duplicate_state(struct drm_crtc *crtc); void vmw_du_crtc_destroy_state(struct drm_crtc *crtc, diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c b/drivers/gpu/drm/xlnx/zynqmp_disp.c -index 12d3877b3685..0915cf2c97ac 100644 +index 178b310c0979..8d9cd623d995 100644 --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c -@@ -1515,14 +1515,14 @@ static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc, +@@ -1514,14 +1514,14 @@ static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc, static void zynqmp_disp_crtc_atomic_begin(struct drm_crtc *crtc, @@ -201885,10 +201482,10 @@ index b97441deaf93..f2de050085be 100644 2.18.4 -From 71047eba25dce3a8ef01b1fb4bf09b48d31afbc4 Mon Sep 17 00:00:00 2001 +From 96da4f37ea12986091f09b18b851bface67b8242 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 7 Dec 2020 16:57:11 +0100 -Subject: [PATCH 444/533] drm/vc4: hvs: Align the HVS atomic hooks to the new +Subject: [PATCH 437/580] 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 @@ -202006,10 +201603,10 @@ index 34612edcabbd..4a26750b5e93 100644 2.18.4 -From 6bbdab0d30f7ba1de52465554ff164f719acf563 Mon Sep 17 00:00:00 2001 +From bfc6be25a076d015d9d7d09637ad8317684d4a70 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:36 +0100 -Subject: [PATCH 445/533] drm/vc4: Pass the atomic state to encoder hooks +Subject: [PATCH 438/580] 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. @@ -202120,10 +201717,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 452c4a514bfd..72c58a2990bc 100644 +index 4a3e020364af..8a93a584bc2a 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -698,7 +698,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) +@@ -717,7 +717,8 @@ static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder) vc4_hdmi_set_audio_infoframe(encoder); } @@ -202133,7 +201730,7 @@ index 452c4a514bfd..72c58a2990bc 100644 { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); -@@ -711,7 +712,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder) +@@ -730,7 +731,8 @@ static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder) HDMI_READ(HDMI_VID_CTL) | VC4_HD_VID_CTL_BLANKPIX); } @@ -202143,7 +201740,7 @@ index 452c4a514bfd..72c58a2990bc 100644 { struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); int ret; -@@ -925,7 +927,8 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) +@@ -944,7 +946,8 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) "VC4_HDMI_FIFO_CTL_RECENTER_DONE"); } @@ -202153,7 +201750,7 @@ index 452c4a514bfd..72c58a2990bc 100644 { struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); -@@ -998,7 +1001,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) +@@ -1019,7 +1022,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder) vc4_hdmi->variant->set_timings(vc4_hdmi, mode); } @@ -202163,7 +201760,7 @@ index 452c4a514bfd..72c58a2990bc 100644 { struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode; struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder); -@@ -1020,7 +1024,8 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder) +@@ -1041,7 +1045,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); } @@ -202177,51 +201774,10 @@ index 452c4a514bfd..72c58a2990bc 100644 2.18.4 -From 431b5069bd0d2e9eede09d89b3c5ac1604de936e Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 15 Dec 2020 16:42:37 +0100 -Subject: [PATCH 446/533] drm/vc4: hdmi: Take into account the clock doubling - flag in atomic_check - -Commit 63495f6b4aed ("drm/vc4: hdmi: Make sure our clock rate is within -limits") was intended to compute the pixel rate to make sure we remain -within the boundaries of what the hardware can provide. - -However, unlike what mode_valid was checking for, we forgot to take -into account the clock doubling flag that can be set for modes. Let's -honor that flag if it's there. - -Acked-by: Thomas Zimmermann -Reported-by: Thomas Zimmermann -Reviewed-by: Dave Stevenson -Fixes: 63495f6b4aed ("drm/vc4: hdmi: Make sure our clock rate is within limits") -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 72c58a2990bc..35e596916372 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1118,6 +1118,9 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, - pixel_rate = mode->clock * 1000; - } - -+ if (mode->flags & DRM_MODE_FLAG_DBLCLK) -+ pixel_rate = pixel_rate * 2; -+ - if (pixel_rate > vc4_hdmi->variant->max_pixel_clock) - return -EINVAL; - --- -2.18.4 - - -From 4197cf93d07018e09bc895f7c7a03e0e4daef37e Mon Sep 17 00:00:00 2001 +From 7070661ec320173b776d1fc5e9321557bd13823a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:38 +0100 -Subject: [PATCH 447/533] drm/vc4: hdmi: Don't access the connector state in +Subject: [PATCH 439/580] 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 @@ -202241,10 +201797,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 35e596916372..e9a0b79ae2db 100644 +index 8a93a584bc2a..b14f7bd5a014 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -499,7 +499,9 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -518,7 +518,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); @@ -202259,10 +201815,10 @@ index 35e596916372..e9a0b79ae2db 100644 2.18.4 -From 83c2989a6919d4dea76c8e448836b0fb866a4208 Mon Sep 17 00:00:00 2001 +From 44bf3f598e02bee7d7bd40db83d8129e60d612ee Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:39 +0100 -Subject: [PATCH 448/533] drm/vc4: hdmi: Create a custom connector state +Subject: [PATCH 440/580] 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 @@ -202278,10 +201834,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 e9a0b79ae2db..55bb414d2011 100644 +index b14f7bd5a014..c307161e7794 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -498,10 +498,37 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) +@@ -517,10 +517,37 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) static void vc4_hdmi_connector_reset(struct drm_connector *connector) { @@ -202321,7 +201877,7 @@ index e9a0b79ae2db..55bb414d2011 100644 } static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { -@@ -509,7 +536,7 @@ static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { +@@ -528,7 +555,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, @@ -202331,7 +201887,7 @@ index e9a0b79ae2db..55bb414d2011 100644 }; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 724e5de48ed1..fd08adad2ef1 100644 +index 1eb1fc0d95a3..c4f24e1f1b20 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -202,6 +202,16 @@ encoder_to_vc4_hdmi(struct drm_encoder *encoder) @@ -202355,10 +201911,10 @@ index 724e5de48ed1..fd08adad2ef1 100644 2.18.4 -From 9213854f70e4f1e5dc07222a947ad7758ef5cc7f Mon Sep 17 00:00:00 2001 +From 4eabab9b02ec494271b3d03b2377009939fa9ec7 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:40 +0100 -Subject: [PATCH 449/533] drm/vc4: hdmi: Store pixel frequency in the connector +Subject: [PATCH 441/580] drm/vc4: hdmi: Store pixel frequency in the connector state The pixel rate is for now quite simple to compute, but with more features @@ -202377,10 +201933,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 55bb414d2011..e1e5a4a61a2e 100644 +index c307161e7794..9a7859269448 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -526,6 +526,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) +@@ -545,6 +545,7 @@ vc4_hdmi_connector_duplicate_state(struct drm_connector *connector) if (!new_state) return NULL; @@ -202388,7 +201944,7 @@ index 55bb414d2011..e1e5a4a61a2e 100644 __drm_atomic_helper_connector_duplicate_state(connector, &new_state->base); return &new_state->base; -@@ -956,9 +957,29 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) +@@ -975,9 +976,29 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi) "VC4_HDMI_FIFO_CTL_RECENTER_DONE"); } @@ -202418,7 +201974,7 @@ index 55bb414d2011..e1e5a4a61a2e 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; -@@ -970,7 +991,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -989,7 +1010,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -202427,7 +201983,7 @@ index 55bb414d2011..e1e5a4a61a2e 100644 ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate); if (ret) { DRM_ERROR("Failed to set pixel clock rate: %d\n", ret); -@@ -1123,6 +1144,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1144,6 +1165,7 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state, struct drm_connector_state *conn_state) { @@ -202435,7 +201991,7 @@ index 55bb414d2011..e1e5a4a61a2e 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; -@@ -1153,6 +1175,8 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1174,6 +1196,8 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, if (pixel_rate > vc4_hdmi->variant->max_pixel_clock) return -EINVAL; @@ -202445,7 +202001,7 @@ index 55bb414d2011..e1e5a4a61a2e 100644 } diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index fd08adad2ef1..6c3b1e094e3d 100644 +index c4f24e1f1b20..71816aba852b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -204,6 +204,7 @@ encoder_to_vc4_hdmi(struct drm_encoder *encoder) @@ -202460,10 +202016,10 @@ index fd08adad2ef1..6c3b1e094e3d 100644 2.18.4 -From 37f2147c28fd45520bc56eca89712a086dc15ed5 Mon Sep 17 00:00:00 2001 +From 76a68d703ec6472dd700ce38c6012814a35c0c32 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:41 +0100 -Subject: [PATCH 450/533] drm/vc4: hdmi: Use the connector state pixel rate for +Subject: [PATCH 442/580] drm/vc4: hdmi: Use the connector state pixel rate for the PHY The PHY initialisation parameters are not based on the pixel clock but @@ -202483,10 +202039,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 e1e5a4a61a2e..32d8b92cfb47 100644 +index 9a7859269448..dbe5d5b5f433 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1040,7 +1040,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1061,7 +1061,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, } if (vc4_hdmi->variant->phy_init) @@ -202496,7 +202052,7 @@ index e1e5a4a61a2e..32d8b92cfb47 100644 HDMI_WRITE(HDMI_SCHEDULER_CONTROL, HDMI_READ(HDMI_SCHEDULER_CONTROL) | diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 6c3b1e094e3d..01a307365f3a 100644 +index 71816aba852b..0bcdd84b6d87 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -21,10 +21,9 @@ to_vc4_hdmi_encoder(struct drm_encoder *encoder) @@ -202572,61 +202128,10 @@ index 057796b54c51..36535480f8e2 100644 2.18.4 -From ebc8aae56474c11d0ab31aa250a94bf21e792fd6 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 15 Dec 2020 16:42:42 +0100 -Subject: [PATCH 451/533] drm/vc4: hdmi: Limit the BCM2711 to the max without - scrambling - -Unlike the previous generations, the HSM clock limitation is way above -what we can reach without scrambling, so let's move the maximum -frequency we support to the maximum clock frequency without scrambling. - -Reviewed-by: Dave Stevenson -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 6 ++++-- - 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 32d8b92cfb47..683c4f8415a9 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -393,6 +393,8 @@ static void hdmi_codec_eld_chmap(struct vc4_hdmi *vc4_hdmi) - vc4_hdmi->audio.chmap = hdmi_codec_stereo_chmaps; - } - -+#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) -+ - static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) - { - struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -2544,7 +2546,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", -- .max_pixel_clock = 297000000, -+ .max_pixel_clock = HDMI_14_MAX_TMDS_CLK, - .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi0_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi0_fields), -@@ -2574,7 +2576,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", -- .max_pixel_clock = 297000000, -+ .max_pixel_clock = HDMI_14_MAX_TMDS_CLK, - .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi1_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi1_fields), --- -2.18.4 - - -From 85ae4a3660f66f1b01442b17f3b0c10279d0f322 Mon Sep 17 00:00:00 2001 +From 63b3e6e0372a78655085d033deea2180c4404d80 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:43 +0100 -Subject: [PATCH 452/533] drm/vc4: hdmi: Enable 10/12 bpc output +Subject: [PATCH 443/580] 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. @@ -202640,7 +202145,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 683c4f8415a9..2386c7303a21 100644 +index dbe5d5b5f433..4dd0951f4ab1 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -78,6 +78,17 @@ @@ -202661,7 +202166,7 @@ index 683c4f8415a9..2386c7303a21 100644 # define VC4_HD_M_SW_RST BIT(2) # define VC4_HD_M_ENABLE BIT(0) -@@ -514,6 +525,8 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector) +@@ -531,6 +542,8 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector) if (!new_state) return; @@ -202670,7 +202175,7 @@ index 683c4f8415a9..2386c7303a21 100644 drm_atomic_helper_connector_tv_reset(connector); } -@@ -560,12 +573,20 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, +@@ -577,12 +590,20 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, vc4_hdmi->ddc); drm_connector_helper_add(connector, &vc4_hdmi_connector_helper_funcs); @@ -202691,7 +202196,7 @@ index 683c4f8415a9..2386c7303a21 100644 connector->polled = (DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT); -@@ -844,6 +865,7 @@ static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable) +@@ -861,6 +882,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, @@ -202699,7 +202204,7 @@ index 683c4f8415a9..2386c7303a21 100644 struct drm_display_mode *mode) { bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC; -@@ -887,7 +909,9 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -904,7 +926,9 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); } @@ -202709,7 +202214,7 @@ index 683c4f8415a9..2386c7303a21 100644 struct drm_display_mode *mode) { bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC; -@@ -907,6 +931,9 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -924,6 +948,9 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, mode->crtc_vsync_end - interlaced, VC4_HDMI_VERTB_VBP)); @@ -202719,7 +202224,7 @@ index 683c4f8415a9..2386c7303a21 100644 HDMI_WRITE(HDMI_VEC_INTERFACE_XBAR, 0x354021); HDMI_WRITE(HDMI_HORZA, -@@ -932,6 +959,39 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, +@@ -949,6 +976,39 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi, HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); @@ -202759,7 +202264,7 @@ index 683c4f8415a9..2386c7303a21 100644 HDMI_WRITE(HDMI_CLOCK_STOP, 0); } -@@ -1050,7 +1110,7 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1069,7 +1129,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) @@ -202768,7 +202273,7 @@ index 683c4f8415a9..2386c7303a21 100644 } static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder, -@@ -1171,6 +1231,14 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, +@@ -1190,6 +1250,14 @@ static int vc4_hdmi_encoder_atomic_check(struct drm_encoder *encoder, pixel_rate = mode->clock * 1000; } @@ -202784,7 +202289,7 @@ index 683c4f8415a9..2386c7303a21 100644 pixel_rate = pixel_rate * 2; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 01a307365f3a..8682d8bbf839 100644 +index 0bcdd84b6d87..b0baed2e1a78 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -77,6 +77,7 @@ struct vc4_hdmi_variant { @@ -202796,7 +202301,7 @@ index 01a307365f3a..8682d8bbf839 100644 /* Callback to initialize the PHY according to the connector state */ diff --git a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -index 2081287c7e2d..149b4b4cfdde 100644 +index 10dd6097f2b5..9e85266e53f5 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h @@ -61,9 +61,12 @@ enum vc4_hdmi_field { @@ -202836,10 +202341,10 @@ index 2081287c7e2d..149b4b4cfdde 100644 2.18.4 -From d6e1372e6a26193f3119778d446f2210b4400d3f Mon Sep 17 00:00:00 2001 +From e3eb72bcc359ce33a9e7353da4e7c64e678b8707 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Dec 2020 14:57:41 +0000 -Subject: [PATCH 453/533] drm/vc4: Fixup fkms for API change +Subject: [PATCH 444/580] drm/vc4: Fixup fkms for API change Atomic flush and check changed API, so fix up the downstream-only FKMS driver. @@ -202892,53 +202397,10 @@ index f83efe013a5b..44b1addeb22e 100644 2.18.4 -From f2fe3e8a453ba91500dea76b5412a31a07a0b94a Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Tue, 22 Dec 2020 16:13:17 +0000 -Subject: [PATCH 454/533] staging: vchiq: Fix bulk userdata handling - -The addition of the local 'userdata' pointer to -vchiq_irq_queue_bulk_tx_rx omitted the case where neither BLOCKING nor -WAITING modes are used, in which case the value provided by the -caller is replaced with a NULL. - -Fixes: 4184da4f316a ("staging: vchiq: fix __user annotations") - -Signed-off-by: Phil Elwell ---- - drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index 170a80e4fe46..e8e2e70ba314 100644 ---- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -961,7 +961,7 @@ static int vchiq_irq_queue_bulk_tx_rx(struct vchiq_instance *instance, - struct vchiq_service *service; - struct bulk_waiter_node *waiter = NULL; - bool found = false; -- void *userdata = NULL; -+ void *userdata; - int status = 0; - int ret; - -@@ -1000,6 +1000,8 @@ static int vchiq_irq_queue_bulk_tx_rx(struct vchiq_instance *instance, - "found bulk_waiter %pK for pid %d", waiter, - current->pid); - userdata = &waiter->bulk_waiter; -+ } else { -+ userdata = args->userdata; - } - - /* --- -2.18.4 - - -From afd1e0c89af83566de819fc18cf98249edcdaa3a Mon Sep 17 00:00:00 2001 +From 6fbfaebed77d76b95dd99f0362c80cec5dc55612 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Dec 2020 20:00:38 +0000 -Subject: [PATCH 455/533] overlays: Rebuild "upstream" with latest ovmerge +Subject: [PATCH 445/580] overlays: Rebuild "upstream" with latest ovmerge The latest ovmerge drops disabled fragments, causing the "upstream" overlay to change. @@ -203234,10 +202696,10 @@ index 6195e02bf9ff..e0f7cc8ba9ea 100644 2.18.4 -From c8f24cfd2e0df4571896898f948b5f3aaaafe3e0 Mon Sep 17 00:00:00 2001 +From 172eb76b0e510adf95b100d6e3ca577264630f83 Mon Sep 17 00:00:00 2001 From: menschel Date: Wed, 30 Dec 2020 21:55:34 +0100 -Subject: [PATCH 456/533] Add overlay for Seeed Studio CAN BUS FD HAT (#4034) +Subject: [PATCH 446/580] 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. @@ -203462,10 +202924,10 @@ index 000000000000..e843d0b19745 2.18.4 -From b1016f1d4bef3d526b64bf72722a3fe34e6a9c4d Mon Sep 17 00:00:00 2001 +From 0a699e428cb2e7c5f75dfd4a491c76300b2660b7 Mon Sep 17 00:00:00 2001 From: gesangtome Date: Fri, 1 Jan 2021 18:03:17 +0800 -Subject: [PATCH 457/533] vc-sm-cma: fixed kbuild problem +Subject: [PATCH 447/580] vc-sm-cma: fixed kbuild problem error logs: drivers/staging/vc04_services/vc-sm-cma/Kconfig:1:error: recursive dependency detected! @@ -203498,44 +202960,10 @@ index a7c1a7bf516e..5df9198cdab1 100644 2.18.4 -From 58ae0a4e168e945c28520b918cca5b96553f3fbb Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Mon, 4 Jan 2021 11:06:51 +0000 -Subject: [PATCH 458/533] staging: vchiq: Fix bulk transfers on 64-bit builds - -The recent change to the bulk transfer compat function missed the fact -the relevant ioctl command is VCHIQ_IOC_QUEUE_BULK_TRANSMIT32, not -VCHIQ_IOC_QUEUE_BULK_TRANSMIT, as any attempt to send a bulk block -to the VPU would have shown. - -Fixes: a4367cd2b231 ("staging: vchiq: convert compat bulk transfer") - -Signed-off-by: Phil Elwell ---- - drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index e8e2e70ba314..a936102dbc34 100644 ---- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -1722,7 +1722,7 @@ vchiq_compat_ioctl_queue_bulk(struct file *file, - { - struct vchiq_queue_bulk_transfer32 args32; - struct vchiq_queue_bulk_transfer args; -- enum vchiq_bulk_dir dir = (cmd == VCHIQ_IOC_QUEUE_BULK_TRANSMIT) ? -+ enum vchiq_bulk_dir dir = (cmd == VCHIQ_IOC_QUEUE_BULK_TRANSMIT32) ? - VCHIQ_BULK_TRANSMIT : VCHIQ_BULK_RECEIVE; - - if (copy_from_user(&args32, argp, sizeof(args32))) --- -2.18.4 - - -From b2c8d0a6590c3564cadbc66c684c166443f6af7d Mon Sep 17 00:00:00 2001 +From ff9c56e8f2f8975bd222237795241ca9200a6830 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sat, 2 Jan 2021 10:51:58 +0000 -Subject: [PATCH 459/533] staging/vc04-services/codec: Fix logical precedence +Subject: [PATCH 448/580] staging/vc04-services/codec: Fix logical precedence issue Two issues identified with operator precedence in logical @@ -203574,10 +203002,10 @@ index 9673d807ca67..8a8f1e8db7d0 100644 2.18.4 -From fc08a10335f22820c1fa0b90681ed5dfea338f6e Mon Sep 17 00:00:00 2001 +From bcd0e08951fae5821b45b25e425947eaa2111592 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 5 Jan 2021 14:34:20 +0000 -Subject: [PATCH 460/533] staging/mmal-vchiq: Fix incorrect static +Subject: [PATCH 449/580] staging/mmal-vchiq: Fix incorrect static vchiq_instance. For some reason lost in history function vchiq_mmal_init used @@ -203613,10 +203041,10 @@ index 0f98494812c8..014fbace54cd 100644 2.18.4 -From 11c32da0be4ec92bae84cc56cb4b1b5d791ef5ba Mon Sep 17 00:00:00 2001 +From dabc650e87d9fac8d628ae087a98e1590368778a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:43:20 +0000 -Subject: [PATCH 461/533] staging/vc04_services: Add additional unpacked raw +Subject: [PATCH 450/580] staging/vc04_services: Add additional unpacked raw formats Support has been added for the unpacked (16bpp) versions of @@ -203670,10 +203098,10 @@ index 8eb6334ee055..59f7ad3a5b3b 100644 2.18.4 -From 445235980df07fa05a32ed65a0225ad05d45c2f2 Mon Sep 17 00:00:00 2001 +From 8c7f7e2424ff8e567e0127a299548323496e7eb6 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:45:16 +0000 -Subject: [PATCH 462/533] staging/bcm2835-codec: Add the unpacked (16bpp) raw +Subject: [PATCH 451/580] staging/bcm2835-codec: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -203843,10 +203271,10 @@ index 8a8f1e8db7d0..c883db63808f 100644 2.18.4 -From 5b26ccd0bc686bf7e7adf3d4dcfa68cac74a77e1 Mon Sep 17 00:00:00 2001 +From 3d6fd34f909071d6a1b9eede01383ebcccd3520d Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:41:26 +0000 -Subject: [PATCH 463/533] staging/bcm2835-codec: Log the number of excess +Subject: [PATCH 452/580] staging/bcm2835-codec: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -203892,10 +203320,10 @@ index c883db63808f..94691ab7175a 100644 2.18.4 -From 04d9d9f883d2ec8efabd78debab9941c858136b0 Mon Sep 17 00:00:00 2001 +From 0ee6a1972620e4b2eff78ce54112a0d7d569977a Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:37:10 +0000 -Subject: [PATCH 464/533] staging/bcm2835-isp: Add the unpacked (16bpp) raw +Subject: [PATCH 453/580] staging/bcm2835-isp: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -204074,10 +203502,10 @@ index 8bb3d115b27a..9a313ffcabf5 100644 2.18.4 -From 60683af93845a62aeea86f4f6e1c46d0232d31fe Mon Sep 17 00:00:00 2001 +From 9ee78d7e7d060f9d23c57aab849b5493b32e1fe1 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:43:22 +0000 -Subject: [PATCH 465/533] staging/bcm2835-isp: Log the number of excess +Subject: [PATCH 454/580] staging/bcm2835-isp: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -204109,10 +203537,10 @@ index 9a313ffcabf5..afac2ad65790 100644 2.18.4 -From b471e2fbd5f9a40496316e9d0e5b3d16b48a9074 Mon Sep 17 00:00:00 2001 +From 05fabf4f9cdc81d5f62ba4cd5556a3f045b0620b Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 30 Dec 2020 14:51:29 +0000 -Subject: [PATCH 466/533] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and +Subject: [PATCH 455/580] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and DMA_WIDE_DEST flags Use (reserved) bits 24 and 25 of the dreq value @@ -204179,10 +203607,10 @@ index 0cbfa9d559a2..5517d2135168 100644 2.18.4 -From 88e66b9b0369853690edf8ede83c5458acfbe3df Mon Sep 17 00:00:00 2001 +From f60acfaf3d42f47a5fadaa6025290a30211472fc Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 11 Jan 2021 14:49:33 +0000 -Subject: [PATCH 467/533] bcm2835-dma: Move WAIT_RESP from extra to info +Subject: [PATCH 456/580] bcm2835-dma: Move WAIT_RESP from extra to info Questionable: Might want to drop Signed-off-by: popcornmix @@ -204210,10 +203638,10 @@ index 5517d2135168..8b97b9f10a1a 100644 2.18.4 -From 66c62885a5abe704178137a7d8c9655bb4cbb2cb Mon Sep 17 00:00:00 2001 +From 526b0629994d2b3869627b53927499bd3193a128 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:10 +0000 -Subject: [PATCH 468/533] bcm2835-dma: Avoid losing CS flags after interrupt +Subject: [PATCH 457/580] bcm2835-dma: Avoid losing CS flags after interrupt Signed-off-by: Dom Cobley --- @@ -204237,10 +203665,10 @@ index 8b97b9f10a1a..94a1b40b1645 100644 2.18.4 -From 04d1f724cad5e82f51c5767c376579d5484e4488 Mon Sep 17 00:00:00 2001 +From 24bdd43d4084415f10aa56c96756a02680cf3206 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 11 Jan 2021 13:06:23 +0000 -Subject: [PATCH 469/533] dt: Enable DMA_WIDE_SOURCE and DMA_WIDE_DEST for hdmi +Subject: [PATCH 458/580] dt: Enable DMA_WIDE_SOURCE and DMA_WIDE_DEST for hdmi audio Signed-off-by: popcornmix @@ -204288,10 +203716,10 @@ index bd77ba3a3562..47b958428d0c 100644 2.18.4 -From 78dc1d90d60f81b2a56e74ae6109eb108faaf922 Mon Sep 17 00:00:00 2001 +From aa62a0e5bc9d45c828c43c368fa4ab60925e6264 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:29 +0000 -Subject: [PATCH 470/533] bcm2711-rpi.dtsi: Bump hdmi audio dma panic priority +Subject: [PATCH 459/580] bcm2711-rpi.dtsi: Bump hdmi audio dma panic priority to max Set panic priority to 15 and leave normal priority at 0 @@ -204327,10 +203755,10 @@ index 3dbfd601ca39..8053ef54acc8 100644 2.18.4 -From afd48929117a00b135f26109615c4064178db6e7 Mon Sep 17 00:00:00 2001 +From 2a646d90474c076eca3c118dbacf933aec6c3586 Mon Sep 17 00:00:00 2001 From: Paul Elder Date: Tue, 22 Dec 2020 14:27:46 +0900 -Subject: [PATCH 471/533] media: i2c: ov5647: Selection compliance fixes +Subject: [PATCH 460/580] 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 @@ -204421,10 +203849,10 @@ index 86a821a172b3..40d0d45a2481 100644 2.18.4 -From a15c7fb27600865bd65f7064fc66d82eb422cea8 Mon Sep 17 00:00:00 2001 +From c0cf06ea1340e3c3effa0812c3b23218e648ee71 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 2 Jan 2021 21:08:59 +0100 -Subject: [PATCH 472/533] overlays: give Seeed Studio CAN BUS FD HAT a -v2 +Subject: [PATCH 461/580] 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 @@ -204479,10 +203907,10 @@ rename to arch/arm/boot/dts/overlays/seeed-can-fd-hat-v2-overlay.dts 2.18.4 -From 4a66351ca8630771b1d3cd799e38688b8bf30cdc Mon Sep 17 00:00:00 2001 +From f0f013884c584de14a8fb5deb35c62de6aa99b32 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 2 Jan 2021 21:38:58 +0100 -Subject: [PATCH 473/533] overlays: Add overlay for Seeed Studio CAN BUS FD HAT +Subject: [PATCH 462/580] 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 @@ -204682,10 +204110,10 @@ index 000000000000..210d027a073e 2.18.4 -From 82f16ad780c9c3c4b6b8914f79f3747d1fb839f1 Mon Sep 17 00:00:00 2001 +From 50fa0ef167c057c02b84e08e0041da99bbdd8212 Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sat, 2 Jan 2021 02:34:03 +0000 -Subject: [PATCH 474/533] overlays: add wm8960-soundcard overlay +Subject: [PATCH 463/580] overlays: add wm8960-soundcard overlay add overlay for waveshare wm8960 simple-audio-card @@ -204822,10 +204250,10 @@ index 000000000000..289fa4dacdf1 2.18.4 -From 3458b13baa5866bf7486de79df9b5d4377acab72 Mon Sep 17 00:00:00 2001 +From f8dcab437a048b0a2d85b6b748eecba383e1bfae Mon Sep 17 00:00:00 2001 From: Aaron Shaw Date: Sat, 26 Dec 2020 03:13:14 +0000 -Subject: [PATCH 475/533] overlays: add spi override to merus-amp overlay +Subject: [PATCH 464/580] overlays: add spi override to merus-amp overlay adds an override to the merus-amp overlay to turn the spi bus off @@ -204874,10 +204302,10 @@ index 4501fbdc253d..bbffd7d26324 100644 2.18.4 -From caacec75294668f40df09c773d22aeb7afc46ff1 Mon Sep 17 00:00:00 2001 +From 05f2597990c26f05660ad0ffebc328135cc69d71 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Jan 2021 17:28:57 +0000 -Subject: [PATCH 476/533] dt: Add a camera regulator node to all downstream Pi +Subject: [PATCH 465/580] dt: Add a camera regulator node to all downstream Pi platforms The current firmware fixup of camera sensor overlays is not @@ -205235,10 +204663,10 @@ index 000000000000..55237d03ed94 2.18.4 -From 18f09422dfb2800ea6490764e7208e5950a6069d Mon Sep 17 00:00:00 2001 +From 14d07686d2df4167eba4051952bc2ed2099084cb Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Jan 2021 17:42:31 +0000 -Subject: [PATCH 477/533] dtoverlays: Update sensor overlays to use cam1_reg +Subject: [PATCH 466/580] dtoverlays: Update sensor overlays to use cam1_reg where possible Update those overlays that use the regulator framework to use the @@ -205492,10 +204920,10 @@ index 40b298d3dd86..b7a9c8c539da 100644 2.18.4 -From 30d9b4b55ca3d4af3eb5bab6f0060dde5d30da5b Mon Sep 17 00:00:00 2001 +From 1ea5d454dff8fbb2c49b356813d02f9254d3e09f Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Sat, 9 Jan 2021 17:03:32 +0100 -Subject: [PATCH 478/533] overlays: seeed-can-fd-hat: clarify how to identify +Subject: [PATCH 467/580] 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 @@ -205543,10 +204971,10 @@ index 5076ca440742..bc889782a30b 100644 2.18.4 -From 1c38bdf846684f2848d5332a61ded513c633b9d1 Mon Sep 17 00:00:00 2001 +From 31c95444cab892c9fcf2011e5089040e53d8a858 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 Jan 2021 21:25:38 +0000 -Subject: [PATCH 479/533] SQUASH: Revert: "overlays: Make the i2c-gpio overlay +Subject: [PATCH 468/580] SQUASH: Revert: "overlays: Make the i2c-gpio overlay safe again" This revert and its neighbour are opposites. When squashing, delete @@ -205575,10 +205003,10 @@ index 63231b5d7c0c..2323a61edf07 100644 2.18.4 -From 2632876de4e53d4382f811c876d8aab14cc9447b Mon Sep 17 00:00:00 2001 +From 1bfdec57e6b2e578822572f60ca81057ac6b9d70 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 13 Jan 2021 21:27:56 +0000 -Subject: [PATCH 480/533] SQUASH: Revert "overlays: Fix dtc warnings in +Subject: [PATCH 469/580] SQUASH: Revert "overlays: Fix dtc warnings in i2c-gpio" This reverts commit 1c15edc0dca002c8536e9f1f5e1ec43017815018. @@ -205609,10 +205037,10 @@ index 2323a61edf07..63231b5d7c0c 100644 2.18.4 -From 5647e0da8b54c19de7bb6e52f30eb34ee190b8aa Mon Sep 17 00:00:00 2001 +From d4819ff7b86b19747ad0385d845346a6e0af3ee6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 19 Jan 2021 08:57:21 +0000 -Subject: [PATCH 481/533] configs: Enable BCM2835 thermal driver in kernel8 +Subject: [PATCH 470/580] 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 @@ -205643,10 +205071,10 @@ index 325ff25a243d..eeb52d96e26b 100644 2.18.4 -From 817dd19f1219d5349b03573f998dba3da3142829 Mon Sep 17 00:00:00 2001 +From a6a177d248d04b8477ef76f56b3ce41acd0baca6 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:18:42 +0000 -Subject: [PATCH 482/533] uapi: bcm2835-isp: Add colour denoise configuration +Subject: [PATCH 471/580] uapi: bcm2835-isp: Add colour denoise configuration Add a configuration structure for colour denoise to the bcm2835_isp driver. @@ -205705,10 +205133,10 @@ index cf8c0437f159..c50e3ca81565 100644 2.18.4 -From 3f11ae8ceac9e99e556ed668571bcf9c524d6670 Mon Sep 17 00:00:00 2001 +From 96134e050d01514b8cd425d71af99c4c0bd6bff1 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:20:52 +0000 -Subject: [PATCH 483/533] staging: vc04_services: ISP: Add colour denoise +Subject: [PATCH 472/580] staging: vc04_services: ISP: Add colour denoise control Add colour denoise control to the bcm2835 driver through a new v4l2 @@ -205790,10 +205218,10 @@ index efda4dc039c3..79438d23912f 100644 2.18.4 -From fb52aa470032d9cb9d88a16076d1503753eb29cd Mon Sep 17 00:00:00 2001 +From bc461a1d004c37b4ba4740852c31a03e83b4755e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Jan 2021 18:27:08 +0000 -Subject: [PATCH 484/533] configs: Add CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +Subject: [PATCH 473/580] configs: Add CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m Signed-off-by: popcornmix --- @@ -205868,10 +205296,10 @@ index 5d6f27ec87f6..5b6a5d59b394 100644 2.18.4 -From 1f3e7de1f14217402221d824c6b68963cd7f017b Mon Sep 17 00:00:00 2001 +From 1e8a1d9240ede7f0145759c302aaca643e60ac1a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 09:28:06 +0000 -Subject: [PATCH 485/533] configs: Add CONFIG_USB_NET_AQC111=m +Subject: [PATCH 474/580] configs: Add CONFIG_USB_NET_AQC111=m See: https://github.com/raspberrypi/linux/pull/4086 @@ -205948,10 +205376,10 @@ index 5b6a5d59b394..655b1d87720b 100644 2.18.4 -From 3f1be6f5e5b8923aacf2c176630808eb7bf74206 Mon Sep 17 00:00:00 2001 +From 1b7f051a56274a3a5d7a5e05973ff19798d6d8ac Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Thu, 10 Dec 2020 19:22:45 +0100 -Subject: [PATCH 486/533] dt-bindings: nvmem: Add bindings for rmem driver +Subject: [PATCH 475/580] 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. @@ -206030,10 +205458,10 @@ index 000000000000..29b53871aa02 2.18.4 -From dce86e6903d5bc6dfb084e5c1823a1f1d013196f Mon Sep 17 00:00:00 2001 +From 1b58d5153a7f308dbdae9164507a6dc033ba5f5c Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Thu, 10 Dec 2020 12:13:49 +0100 -Subject: [PATCH 487/533] nvmem: Add driver to expose reserved memory as nvmem +Subject: [PATCH 476/580] 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. @@ -206206,10 +205634,10 @@ index b557a0fcd4ba..281856ac1988 100644 2.18.4 -From 9697ec0271181d2dbe8e987fe5c1782fafa4f7c7 Mon Sep 17 00:00:00 2001 +From ccefdd99b4eb81937e30b9c4ba1a3adbc9dac59c Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 12:22:01 +0100 -Subject: [PATCH 488/533] ARM: dts: bcm2711: Add reserved memory template to +Subject: [PATCH 477/580] ARM: dts: bcm2711: Add reserved memory template to hold firmware configuration RPi4's co-processor will copy the board's bootloader[1] configuration @@ -206272,10 +205700,10 @@ index dae841ce309f..22c562d4196a 100644 2.18.4 -From 2223dd9a26304a863832d546339b42df620241c1 Mon Sep 17 00:00:00 2001 +From 208487936073d5c9ab0c8979c605edac101a232a Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 13:04:37 +0100 -Subject: [PATCH 489/533] arm64: defconfig: Enable nvmem's rmem driver +Subject: [PATCH 478/580] arm64: defconfig: Enable nvmem's rmem driver It'll be used by the RPi4 family of boards to access its bootloader configuration. @@ -206301,10 +205729,10 @@ index 5cfe3cf6f2ac..a9f496d74639 100644 2.18.4 -From 38642f51e5379200430cfcf1c9ef62878e19f1b7 Mon Sep 17 00:00:00 2001 +From d6b9a550c1fa111f3d3b027765a259bcc1a86aaa Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Fri, 11 Dec 2020 13:15:41 +0100 -Subject: [PATCH 490/533] ARM: multi_v7_defconfig: Enable nvmem's rmem driver +Subject: [PATCH 479/580] ARM: multi_v7_defconfig: Enable nvmem's rmem driver It'll be used by the RPi4 family of boards to access its bootloader configuration. @@ -206330,10 +205758,10 @@ index a611b0c1e540..ea2715c9f923 100644 2.18.4 -From 091c14a0efe6b846c5af9682006692652038b84a Mon Sep 17 00:00:00 2001 +From a3398902e9fd30116affb9e1566429fbb47443a4 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 12:08:19 +0000 -Subject: [PATCH 491/533] configs: Add NVMEM_RMEM=m for 2711 +Subject: [PATCH 480/580] configs: Add NVMEM_RMEM=m for 2711 Signed-off-by: Phil Elwell --- @@ -206369,10 +205797,10 @@ index 590a235f9e25..4c4068953a97 100644 2.18.4 -From 8ca722cdb3a54aa52f3a7fc4ad22310aef3d71b4 Mon Sep 17 00:00:00 2001 +From 44812cb53f0a2fc0cde4524cb458281234b9b591 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 22 Jan 2021 16:15:06 +0000 -Subject: [PATCH 492/533] configs: Add CRYPTO_ADIANTUM=m +Subject: [PATCH 481/580] configs: Add CRYPTO_ADIANTUM=m See: https://github.com/raspberrypi/linux/issues/3648 @@ -206449,10 +205877,10 @@ index 655b1d87720b..1ca2f13a2af5 100644 2.18.4 -From 501b8622935b436fef00301720f0cc9ef7e51007 Mon Sep 17 00:00:00 2001 +From c6a81823026a606774396f3c3bbf73f148155331 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Jan 2021 11:30:04 +0000 -Subject: [PATCH 493/533] spi: bcm2835: Workaround/fix for zero-length +Subject: [PATCH 482/580] spi: bcm2835: Workaround/fix for zero-length transfers A relatively recent commit ([1]) contained optimisation for the PIO @@ -206505,10 +205933,10 @@ index 5c7aa77f504e..aab6c7e5c114 100644 2.18.4 -From 0fb6118136be0438aeb31453c1ec2a63a38ff001 Mon Sep 17 00:00:00 2001 +From e27f2956cf485028411252f1a3c4b225c4c77cd3 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Jan 2021 10:34:11 +0000 -Subject: [PATCH 494/533] kbuild: Silence unavoidable dtc overlay warnings +Subject: [PATCH 483/580] 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 @@ -206542,85 +205970,10 @@ index 9c0df5bde46c..43758c8d4b68 100644 2.18.4 -From ad2b7a5a4a2f717fbfa2d515a5ce87d9f50541e8 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Fri, 29 Jan 2021 15:29:04 +0100 -Subject: [PATCH 495/533] drm/vc4: hvs: Fix buffer overflow with the dlist - handling - -Commit 0a038c1c29a7 ("drm/vc4: Move LBM creation out of -vc4_plane_mode_set()") changed the LBM allocation logic from first -allocating the LBM memory for the plane to running mode_set, -adding a gap in the LBM, and then running the dlist allocation filling -that gap. - -The gap was introduced by incrementing the dlist array index, but was -never checking whether or not we were over the array length, leading -eventually to memory corruptions if we ever crossed this limit. - -vc4_dlist_write had that logic though, and was reallocating a larger -dlist array when reaching the end of the buffer. Let's share the logic -between both functions. - -Cc: Boris Brezillon -Cc: Eric Anholt -Fixes: 0a038c1c29a7 ("drm/vc4: Move LBM creation out of vc4_plane_mode_set()") -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_plane.c | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c -index b5586c92bfe5..3d33fe3dacea 100644 ---- a/drivers/gpu/drm/vc4/vc4_plane.c -+++ b/drivers/gpu/drm/vc4/vc4_plane.c -@@ -227,7 +227,7 @@ static void vc4_plane_reset(struct drm_plane *plane) - __drm_atomic_helper_plane_reset(plane, &vc4_state->base); - } - --static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val) -+static void vc4_dlist_counter_increment(struct vc4_plane_state *vc4_state) - { - if (vc4_state->dlist_count == vc4_state->dlist_size) { - u32 new_size = max(4u, vc4_state->dlist_count * 2); -@@ -242,7 +242,15 @@ static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val) - vc4_state->dlist_size = new_size; - } - -- vc4_state->dlist[vc4_state->dlist_count++] = val; -+ vc4_state->dlist_count++; -+} -+ -+static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val) -+{ -+ unsigned int idx = vc4_state->dlist_count; -+ -+ vc4_dlist_counter_increment(vc4_state); -+ vc4_state->dlist[idx] = val; - } - - /* Returns the scl0/scl1 field based on whether the dimensions need to -@@ -1057,8 +1065,10 @@ static int vc4_plane_mode_set(struct drm_plane *plane, - * be set when calling vc4_plane_allocate_lbm(). - */ - if (vc4_state->y_scaling[0] != VC4_SCALING_NONE || -- vc4_state->y_scaling[1] != VC4_SCALING_NONE) -- vc4_state->lbm_offset = vc4_state->dlist_count++; -+ vc4_state->y_scaling[1] != VC4_SCALING_NONE) { -+ vc4_state->lbm_offset = vc4_state->dlist_count; -+ vc4_dlist_counter_increment(vc4_state); -+ } - - if (num_planes > 1) { - /* Emit Cb/Cr as channel 0 and Y as channel --- -2.18.4 - - -From ae88eb5729194df5059f812a97a18a8a05a9fb15 Mon Sep 17 00:00:00 2001 +From 9e8d43bb45de9b5435eec520651bcab52cceee2a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 1 Feb 2021 12:45:29 +0000 -Subject: [PATCH 496/533] configs: Enable CONFIG_MEDIA_CEC_RC +Subject: [PATCH 484/580] configs: Enable CONFIG_MEDIA_CEC_RC See: https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=301072 --- @@ -206703,10 +206056,10 @@ index 1ca2f13a2af5..aa89eb5704cb 100644 2.18.4 -From 8f16a60597cb69962d02e7a87a0a7989c1a6ef36 Mon Sep 17 00:00:00 2001 +From d5ac478b638fd9acdba5ef5c869148cb783816b0 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 29 Jan 2021 08:26:44 +0100 -Subject: [PATCH 497/533] Adds the DT-overlays to support Hifiberry AMP100 +Subject: [PATCH 485/580] Adds the DT-overlays to support Hifiberry AMP100 Adds new DT-overlay to control AMP100. @@ -206846,10 +206199,10 @@ index 000000000000..ebdef55d6110 2.18.4 -From e6db4e01175880c665f403d8693fa9c000ff78d4 Mon Sep 17 00:00:00 2001 +From 1174164073e896a03e4fba0b7b11f2b660e0b27f Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Fri, 29 Jan 2021 16:16:39 +0100 -Subject: [PATCH 498/533] Enhances the Hifiberry DAC+ driver for Hifiberry +Subject: [PATCH 486/580] Enhances the Hifiberry DAC+ driver for Hifiberry AMP100 support Adds the necessary GPIO handling and ALSA mixer extensions. @@ -207090,10 +206443,10 @@ index 157ab4c2cc85..bdcac1b6992c 100644 2.18.4 -From 6b13e1e2aa8618379326da20ed47948093b90940 Mon Sep 17 00:00:00 2001 +From a4d8ca6198f26ab6a0d09feb6e962eb314cc39aa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 3 Feb 2021 16:23:43 +0000 -Subject: [PATCH 499/533] ARM: dts: Declare Pi400 and CM4 have no audio pins +Subject: [PATCH 487/580] 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 @@ -207139,10 +206492,10 @@ index 7ab0aba5f1a3..9ab2feb4424f 100644 2.18.4 -From af3c152d8a62f58da982910b3d8055dff68d20ba Mon Sep 17 00:00:00 2001 +From 803e6181c14b6754a6dda945c60d0d275361270f Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 17:29:32 +0000 -Subject: [PATCH 500/533] media: i2c: imx290: Replace V4L2_CID_GAIN with +Subject: [PATCH 488/580] media: i2c: imx290: Replace V4L2_CID_GAIN with V4L2_CID_ANALOGUE_GAIN Most software (including libcamera) requires V4L2_CID_ANALOGUE_GAIN, @@ -207183,10 +206536,10 @@ index 2e646fb01856..a2df46e4aabc 100644 2.18.4 -From ffe67e8fb45c3e770c886a9b84da8c0f99541e44 Mon Sep 17 00:00:00 2001 +From c58e93b764104549a250d0ac336734d0927395a1 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 4 Feb 2021 21:21:44 +0000 -Subject: [PATCH 501/533] media: i2c: imx290: Fix number of controls in +Subject: [PATCH 489/580] media: i2c: imx290: Fix number of controls in v4l2_ctrl_handler_init The number is only a hint, but may as well be correct. @@ -207217,10 +206570,10 @@ index a2df46e4aabc..33ce80686163 100644 2.18.4 -From 165d616ffcb79ed8a36af2c2406138bd1e7488fa Mon Sep 17 00:00:00 2001 +From 08842d8ffb4d11f3819703390072473d1cffe40c Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Feb 2021 09:20:31 +0000 -Subject: [PATCH 502/533] i2c: bcm2835: Handle untimely DONE signal +Subject: [PATCH 490/580] 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 @@ -207286,10 +206639,10 @@ index 5b2589b6b9cc..90ca593d8ae3 100644 2.18.4 -From 6a949e8051520a35ff9240e62e06d91723a668b0 Mon Sep 17 00:00:00 2001 +From 6e132a5ab76d4ac567e66d95e1fce59f9983a683 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 5 Feb 2021 12:04:06 +0000 -Subject: [PATCH 503/533] configs: Add MICREL_PHY=y +Subject: [PATCH 491/580] configs: Add MICREL_PHY=y Signed-off-by: Phil Elwell --- @@ -207325,56 +206678,10 @@ index 6acc0dbe9187..a2531896a8b6 100644 2.18.4 -From f924ef06a58e0d49291097911c84038212f47215 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 7 Jan 2021 17:00:54 +0000 -Subject: [PATCH 504/533] Revert "drm/vc4: hdmi: Limit the BCM2711 to the max - without scrambling" - -This reverts commit f5f5e195eea4a11585b2cba32c0ad65d6f0ed20b. ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 2386c7303a21..17934259ab5a 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -404,8 +404,6 @@ static void hdmi_codec_eld_chmap(struct vc4_hdmi *vc4_hdmi) - vc4_hdmi->audio.chmap = hdmi_codec_stereo_chmaps; - } - --#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) -- - static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) - { - struct drm_info_node *node = (struct drm_info_node *)m->private; -@@ -2614,7 +2612,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", -- .max_pixel_clock = HDMI_14_MAX_TMDS_CLK, -+ .max_pixel_clock = 297000000, - .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi0_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi0_fields), -@@ -2644,7 +2642,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", -- .max_pixel_clock = HDMI_14_MAX_TMDS_CLK, -+ .max_pixel_clock = 297000000, - .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi1_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi1_fields), --- -2.18.4 - - -From e9cc884e304be6b6865fa8343e5368c55c393438 Mon Sep 17 00:00:00 2001 +From 879dc52fbece898de5b357523de7f0acddbc4e10 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:11:26 +0100 -Subject: [PATCH 505/533] Revert "vc4_hdmi: Move hdmi reset to bind" +Subject: [PATCH 492/580] Revert "vc4_hdmi: Move hdmi reset to bind" This reverts commit fdb112d44c1b0659aec1ef841939dff0f0dee49e. --- @@ -207382,10 +206689,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 17934259ab5a..5f2c83694a44 100644 +index 4dd0951f4ab1..24f1d8386db7 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1099,6 +1099,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1120,6 +1120,9 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -207395,7 +206702,7 @@ index 17934259ab5a..5f2c83694a44 100644 if (vc4_hdmi->variant->phy_init) vc4_hdmi->variant->phy_init(vc4_hdmi, vc4_conn_state); -@@ -2492,9 +2495,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2517,9 +2520,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"); @@ -207409,249 +206716,10 @@ index 17934259ab5a..5f2c83694a44 100644 2.18.4 -From 45f8232dbe061851183e0a77f2d65bde75f1e4f9 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 8 Dec 2020 17:12:17 +0100 -Subject: [PATCH 506/533] Revert "drm/vc4: Reading the hotplug register is only - valid if no GPIO defined" - -This reverts commit 266fd375dab37b8421671f6315ed261e59076bfb. ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 3 +-- - 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 5f2c83694a44..93351245c77e 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -460,9 +460,8 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) - connected = true; - } else if (drm_probe_ddc(vc4_hdmi->ddc)) - connected = true; -- else if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) -+ if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) - connected = true; -- - if (connected) { - if (connector->status != connector_status_connected) { - struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc); --- -2.18.4 - - -From 4d1b1d13ae9eee5036e3987ac86e1e70325be4f5 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 8 Dec 2020 17:12:19 +0100 -Subject: [PATCH 507/533] Revert "vc4: cec: Restore cec physical address on - reconnect" - -This reverts commit 250344082a3957825d425ded325547e72a34fd65. ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 25 ++++++++----------------- - 1 file changed, 8 insertions(+), 17 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 93351245c77e..6ba26f929bf7 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -452,29 +452,20 @@ 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); -- bool connected = false; - - if (vc4_hdmi->hpd_gpio) { - if (gpio_get_value_cansleep(vc4_hdmi->hpd_gpio) ^ - vc4_hdmi->hpd_active_low) -- connected = true; -- } else if (drm_probe_ddc(vc4_hdmi->ddc)) -- connected = true; -+ return connector_status_connected; -+ cec_phys_addr_invalidate(vc4_hdmi->cec_adap); -+ return connector_status_disconnected; -+ } -+ -+ if (drm_probe_ddc(vc4_hdmi->ddc)) -+ return connector_status_connected; -+ - if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) -- connected = true; -- if (connected) { -- if (connector->status != connector_status_connected) { -- struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc); -- -- if (edid) { -- cec_s_phys_addr_from_edid(vc4_hdmi->cec_adap, edid); -- vc4_hdmi->encoder.hdmi_monitor = drm_detect_hdmi_monitor(edid); -- drm_connector_update_edid_property(connector, edid); -- kfree(edid); -- } -- } - return connector_status_connected; -- } - cec_phys_addr_invalidate(vc4_hdmi->cec_adap); - return connector_status_disconnected; - } --- -2.18.4 - - -From ebd085a4c7bd9243704ddec0278ffcde3dada4dc Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 8 Dec 2020 17:12:54 +0100 -Subject: [PATCH 508/533] Revert "vc4_hdmi: Remove cec_available flag as always - supported" - -This reverts commit 855cef03d18c9bc023a2787f9feac5476dbb4179. ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++++ - drivers/gpu/drm/vc4/vc4_hdmi.h | 3 +++ - 2 files changed, 7 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 6ba26f929bf7..4d6d88e21b08 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2146,6 +2146,9 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - u32 clk_cnt; - int ret; - -+ if (!vc4_hdmi->variant->cec_available) -+ return 0; -+ - vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops, - vc4_hdmi, "vc4", - CEC_CAP_DEFAULTS | -@@ -2581,6 +2584,7 @@ static const struct vc4_hdmi_variant bcm2835_variant = { - .card_name = "vc4-hdmi", - .max_pixel_clock = 162000000, - .cec_input_clock = VC4_HSM_CLOCK, -+ .cec_available = true, - .registers = vc4_hdmi_fields, - .num_registers = ARRAY_SIZE(vc4_hdmi_fields), - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 8682d8bbf839..988b672c7de8 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -42,6 +42,9 @@ struct vc4_hdmi_variant { - /* Filename to expose the registers in debugfs */ - const char *debugfs_name; - -+ /* Set to true when the CEC support is available */ -+ bool cec_available; -+ - /* Maximum pixel clock supported by the controller (in Hz) */ - unsigned long long max_pixel_clock; - --- -2.18.4 - - -From a8e5c98af784d52314252e87465c5a77cbbdabe3 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 8 Dec 2020 17:13:30 +0100 -Subject: [PATCH 509/533] Revert "vc4_hdmi: Adjust CEC ref clock based on its - input clock" - -This reverts commit 7269a05437b3157a842f57bcb665a0801225702b. ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 14 +++----------- - drivers/gpu/drm/vc4/vc4_hdmi.h | 3 --- - 2 files changed, 3 insertions(+), 14 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 4d6d88e21b08..251b03382ae4 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -93,12 +93,8 @@ - # define VC4_HD_M_ENABLE BIT(0) - - #define CEC_CLOCK_FREQ 40000 --/* Threshold for adjusting the BVB clock */ - #define VC4_HSM_MID_CLOCK 149985000 - --/* Fixed HVS4 HSM clock rate */ --#define VC4_HSM_CLOCK 163682864 -- - #define HDMI_CODEC_CHMAP_IDX_UNKNOWN -1 - - /* -@@ -1272,7 +1268,8 @@ static u32 vc4_hdmi_calc_hsm_clock(struct vc4_hdmi *vc4_hdmi, unsigned long pixe - * clock, so make it constant to avoid having to reconfigure CEC on - * every mode change. - */ -- return VC4_HSM_CLOCK; -+ -+ return 163682864; - } - - static u32 vc5_hdmi_calc_hsm_clock(struct vc4_hdmi *vc4_hdmi, unsigned long pixel_rate) -@@ -2143,7 +2140,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - struct cec_connector_info conn_info; - struct platform_device *pdev = vc4_hdmi->pdev; - u32 value; -- u32 clk_cnt; - int ret; - - if (!vc4_hdmi->variant->cec_available) -@@ -2168,9 +2164,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - * divider: the hsm_clock rate and this divider setting will - * give a 40 kHz CEC clock. - */ -- clk_cnt = vc4_hdmi->variant->cec_input_clock / CEC_CLOCK_FREQ; - value |= VC4_HDMI_CEC_ADDR_MASK | -- ((clk_cnt - 1) << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT); -+ (4091 << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT); - HDMI_WRITE(HDMI_CEC_CNTRL_1, value); - ret = devm_request_threaded_irq(&pdev->dev, platform_get_irq(pdev, 0), - vc4_cec_irq_handler, -@@ -2583,7 +2578,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { - .debugfs_name = "hdmi_regs", - .card_name = "vc4-hdmi", - .max_pixel_clock = 162000000, -- .cec_input_clock = VC4_HSM_CLOCK, - .cec_available = true, - .registers = vc4_hdmi_fields, - .num_registers = ARRAY_SIZE(vc4_hdmi_fields), -@@ -2607,7 +2601,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { - .debugfs_name = "hdmi0_regs", - .card_name = "vc4-hdmi-0", - .max_pixel_clock = 297000000, -- .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi0_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi0_fields), - .phy_lane_mapping = { -@@ -2637,7 +2630,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { - .debugfs_name = "hdmi1_regs", - .card_name = "vc4-hdmi-1", - .max_pixel_clock = 297000000, -- .cec_input_clock = 27000000, - .registers = vc5_hdmi_hdmi1_fields, - .num_registers = ARRAY_SIZE(vc5_hdmi_hdmi1_fields), - .phy_lane_mapping = { -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h -index 988b672c7de8..b0baed2e1a78 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h -@@ -48,9 +48,6 @@ struct vc4_hdmi_variant { - /* Maximum pixel clock supported by the controller (in Hz) */ - unsigned long long max_pixel_clock; - -- /* Input clock frequency of CEC block (in Hz) */ -- unsigned long cec_input_clock; -- - /* List of the registers available on that variant */ - const struct vc4_hdmi_register *registers; - --- -2.18.4 - - -From ab63b6ab3f960ed53478e6c3b9546d408942e9d3 Mon Sep 17 00:00:00 2001 +From e6a0353bc64852ed8efcdb489e9d55e26798ed49 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:32 +0100 -Subject: [PATCH 510/533] Revert "vc4_hdmi: Make irq shared" +Subject: [PATCH 493/580] Revert "vc4_hdmi: Make irq shared" This reverts commit cd59e087d8bba4ba834565b4d48ba983143b5f27. --- @@ -207659,11 +206727,11 @@ 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 251b03382ae4..49040f88c228 100644 +index 24f1d8386db7..6aa97ac11a7c 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2169,8 +2169,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - HDMI_WRITE(HDMI_CEC_CNTRL_1, value); +@@ -2206,8 +2206,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, - vc4_cec_irq_handler_thread, @@ -207676,10 +206744,10 @@ index 251b03382ae4..49040f88c228 100644 2.18.4 -From 905561050a576a6b499df1ca5b62cb13da7b6c1b Mon Sep 17 00:00:00 2001 +From fa8ee1e2c35c026b88b6869cd486a6b599396ee0 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:33 +0100 -Subject: [PATCH 511/533] Revert "vc4_hdmi_regs: Make interrupt mask variant +Subject: [PATCH 494/580] Revert "vc4_hdmi_regs: Make interrupt mask variant specific" This reverts commit 37c74a07cf22a7385c93170a723d22b95ff20a51. @@ -207690,10 +206758,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 49040f88c228..b07a70e86bb7 100644 +index 6aa97ac11a7c..b6239ead9078 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2026,7 +2026,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -2063,7 +2063,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) u32 stat = HDMI_READ(HDMI_CEC_CPU_STATUS); u32 cntrl1, cntrl5; @@ -207702,7 +206770,7 @@ index 49040f88c228..b07a70e86bb7 100644 return IRQ_NONE; vc4_hdmi->cec_rx_msg.len = 0; cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1); -@@ -2042,7 +2042,7 @@ static irqreturn_t vc4_cec_irq_handler(int irq, void *priv) +@@ -2079,7 +2079,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); @@ -207711,7 +206779,7 @@ index 49040f88c228..b07a70e86bb7 100644 return IRQ_WAKE_THREAD; } -@@ -2081,9 +2081,9 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable) +@@ -2118,9 +2118,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)); @@ -207723,7 +206791,7 @@ index 49040f88c228..b07a70e86bb7 100644 HDMI_WRITE(HDMI_CEC_CNTRL_5, val | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); } -@@ -2591,8 +2591,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -2628,8 +2628,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, @@ -207732,7 +206800,7 @@ index 49040f88c228..b07a70e86bb7 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { -@@ -2620,8 +2618,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2657,8 +2655,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, @@ -207741,7 +206809,7 @@ index 49040f88c228..b07a70e86bb7 100644 }; static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { -@@ -2649,8 +2645,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2686,8 +2682,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, @@ -207788,10 +206856,10 @@ index 1f1ed7efaff7..78fd28599aeb 100644 2.18.4 -From 681c075732edfd558a8bcd92c9118ee95362b259 Mon Sep 17 00:00:00 2001 +From b27d0ada43b9638df725510182ee5cb463a77b4f Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:35 +0100 -Subject: [PATCH 512/533] Revert "vc4_hdmi_regs: Add Intr2 register block" +Subject: [PATCH 495/580] Revert "vc4_hdmi_regs: Add Intr2 register block" This reverts commit c865bb1bb6b481acfa4157e4331db278a176f887. --- @@ -207801,7 +206869,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 b07a70e86bb7..c6a71a4949a8 100644 +index b6239ead9078..ef055c10e23f 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) @@ -207812,7 +206880,7 @@ index b07a70e86bb7..c6a71a4949a8 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); -@@ -2324,14 +2323,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2361,14 +2360,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) if (!vc4_hdmi->dvp_regs) return -ENOMEM; @@ -207827,7 +206895,7 @@ index b07a70e86bb7..c6a71a4949a8 100644 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy"); if (!res) return -ENODEV; -@@ -2412,10 +2403,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) +@@ -2449,10 +2440,6 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) if (ret) return ret; @@ -207860,7 +206928,7 @@ index 64d05f8af5f3..b0ba2421cc04 100644 struct debugfs_regset32 ram_regset; struct debugfs_regset32 rm_regset; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -index 149b4b4cfdde..2ec40189c703 100644 +index 9e85266e53f5..20a1438a72cb 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h +++ b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h @@ -15,7 +15,6 @@ enum vc4_hdmi_regs { @@ -207919,58 +206987,10 @@ index 149b4b4cfdde..2ec40189c703 100644 2.18.4 -From 4c3d485553cb744bec55fa3b78da358e78be1e9e Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 8 Dec 2020 17:13:36 +0100 -Subject: [PATCH 513/533] Revert "vc4_hdmi: Fix register offset when sending - longer CEC messages" - -This reverts commit 3042fe2d9556f571fe52aae9df1275d9f3aa8b59. ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 13 ++----------- - 1 file changed, 2 insertions(+), 11 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index c6a71a4949a8..38f54c038094 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2004,13 +2004,8 @@ static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) - - msg->len = 1 + ((cntrl1 & VC4_HDMI_CEC_REC_WRD_CNT_MASK) >> - VC4_HDMI_CEC_REC_WRD_CNT_SHIFT); -- -- if (msg->len > 16) { -- DRM_ERROR("Attempting to read too much data (%d)\n", msg->len); -- return; -- } - for (i = 0; i < msg->len; i += 4) { -- u32 val = HDMI_READ(HDMI_CEC_RX_DATA_1 + (i >> 2)); -+ u32 val = HDMI_READ(HDMI_CEC_RX_DATA_1 + i); - - msg->msg[i] = val & 0xff; - msg->msg[i + 1] = (val >> 8) & 0xff; -@@ -2106,12 +2101,8 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, - u32 val; - unsigned int i; - -- if (msg->len > 16) { -- DRM_ERROR("Attempting to transmit too much data (%d)\n", msg->len); -- return -ENOMEM; -- } - for (i = 0; i < msg->len; i += 4) -- HDMI_WRITE(HDMI_CEC_TX_DATA_1 + (i >> 2), -+ HDMI_WRITE(HDMI_CEC_TX_DATA_1 + i, - (msg->msg[i]) | - (msg->msg[i + 1] << 8) | - (msg->msg[i + 2] << 16) | --- -2.18.4 - - -From 61a976cfae74c041ba6a7b3ce3ccaee8ee1bc2be Mon Sep 17 00:00:00 2001 +From 0995b0a228028c9fcd5e6e29699e04d3b0af93f3 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 8 Dec 2020 17:13:38 +0100 -Subject: [PATCH 514/533] Revert "vc4_hdmi: BCM2835 requires a fixed hsm clock +Subject: [PATCH 496/580] Revert "vc4_hdmi: BCM2835 requires a fixed hsm clock for CEC to work" This reverts commit 1cad24365e9f4325d68d4a16025f77abe3eda2f7. @@ -207980,10 +207000,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 38f54c038094..84dd0e82789e 100644 +index ef055c10e23f..9c943fc99c0c 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1049,7 +1049,23 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1082,7 +1082,23 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -208008,7 +207028,7 @@ index 38f54c038094..84dd0e82789e 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); -@@ -1260,39 +1276,6 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { +@@ -1295,39 +1311,6 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = { .enable = vc4_hdmi_encoder_enable, }; @@ -208048,7 +207068,7 @@ index 38f54c038094..84dd0e82789e 100644 static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask) { int i; -@@ -2567,7 +2550,6 @@ static const struct vc4_hdmi_variant bcm2835_variant = { +@@ -2613,7 +2596,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, @@ -208056,7 +207076,7 @@ index 38f54c038094..84dd0e82789e 100644 .channel_map = vc4_hdmi_channel_map, }; -@@ -2594,7 +2576,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2640,7 +2622,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, @@ -208064,7 +207084,7 @@ index 38f54c038094..84dd0e82789e 100644 .channel_map = vc5_hdmi_channel_map, }; -@@ -2621,7 +2602,6 @@ static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2667,7 +2648,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, @@ -208090,56 +207110,10 @@ index b0ba2421cc04..f18f1d775241 100644 2.18.4 -From b3b81fc941b148a362b38aa4425a585fc8ae6274 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Tue, 8 Dec 2020 17:15:22 +0100 -Subject: [PATCH 515/533] Revert "vc4_hdmi: Fix up CEC registers" - -This reverts commit 411944140cb321bca7e45a83dffcd1050866662c. ---- - drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -index 2ec40189c703..013fd57febd8 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -@@ -24,12 +24,11 @@ enum vc4_hdmi_field { - HDMI_CEC_CNTRL_3, - HDMI_CEC_CNTRL_4, - HDMI_CEC_CNTRL_5, -- HDMI_CEC_CPU_STATUS, -- HDMI_CEC_CPU_SET, - HDMI_CEC_CPU_CLEAR, -- HDMI_CEC_CPU_MASK_STATUS, -- HDMI_CEC_CPU_MASK_SET, - HDMI_CEC_CPU_MASK_CLEAR, -+ HDMI_CEC_CPU_MASK_SET, -+ HDMI_CEC_CPU_MASK_STATUS, -+ HDMI_CEC_CPU_STATUS, - - /* - * Transmit data, first byte is low byte of the 32-bit reg. -@@ -200,10 +199,9 @@ static const struct vc4_hdmi_register vc4_hdmi_fields[] = { - VC4_HDMI_REG(HDMI_TX_PHY_RESET_CTL, 0x02c0), - VC4_HDMI_REG(HDMI_TX_PHY_CTL_0, 0x02c4), - VC4_HDMI_REG(HDMI_CEC_CPU_STATUS, 0x0340), -- VC4_HDMI_REG(HDMI_CEC_CPU_SET, 0x0344), - VC4_HDMI_REG(HDMI_CEC_CPU_CLEAR, 0x0348), - VC4_HDMI_REG(HDMI_CEC_CPU_MASK_STATUS, 0x034c), -- VC4_HDMI_REG(HDMI_CEC_CPU_MASK_SET, 0x0350), -+ VC4_HDMI_REG(HDMI_CEC_CPU_MASK_SET, 0x034c), - VC4_HDMI_REG(HDMI_CEC_CPU_MASK_CLEAR, 0x0354), - VC4_HDMI_REG(HDMI_RAM_PACKET_START, 0x0400), - }; --- -2.18.4 - - -From 933bd3370ccc4796b3bac30e8627f1d49f8ea773 Mon Sep 17 00:00:00 2001 +From 11a252f3a1c82656d910620b020731c803a6988a Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:22:55 +0100 -Subject: [PATCH 516/533] ARM: bcm: Select BRCMSTB_L2_IRQ for bcm2835 +Subject: [PATCH 497/580] 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). @@ -208181,10 +207155,10 @@ index 5c4ac1c9f4e0..2c5620822895 100644 2.18.4 -From c9d65ef8a1e28aaa87772298ce696501d6a0779f Mon Sep 17 00:00:00 2001 +From 3b6c95252d02c839e2c2af68e487878bbbd9fa90 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 15:22:56 +0100 -Subject: [PATCH 517/533] drm/vc4: hdmi: Move hdmi reset to bind +Subject: [PATCH 498/580] 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"). @@ -208204,10 +207178,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 84dd0e82789e..857747f28e37 100644 +index 9c943fc99c0c..83693ad916d3 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1100,9 +1100,6 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, +@@ -1135,9 +1135,6 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, return; } @@ -208217,7 +207191,7 @@ index 84dd0e82789e..857747f28e37 100644 if (vc4_hdmi->variant->phy_init) vc4_hdmi->variant->phy_init(vc4_hdmi, vc4_conn_state); -@@ -2443,6 +2440,9 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +@@ -2489,6 +2486,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"); @@ -208231,339 +207205,10 @@ index 84dd0e82789e..857747f28e37 100644 2.18.4 -From 6e3e07fd5738072c6025fd42d86c96411955ca4b Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Mon, 11 Jan 2021 15:22:57 +0100 -Subject: [PATCH 518/533] drm/vc4: hdmi: Fix register offset with longer CEC - messages - -The code prior to 311e305fdb4e ("drm/vc4: hdmi: Implement a register -layout abstraction") was relying on the fact that the register offset -was incremented by 4 for each readl call. That worked since the register -width is 4 bytes. - -However, since that commit the HDMI_READ macro is now taking an enum, -and the offset doesn't increment by 4 but 1 now. Divide the index by 4 -to fix this. - -Fixes: 311e305fdb4e ("drm/vc4: hdmi: Implement a register layout abstraction") -Reviewed-by: Dave Stevenson -Signed-off-by: Dom Cobley -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 857747f28e37..c62c202ae59b 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1979,13 +1979,20 @@ static irqreturn_t vc4_cec_irq_handler_thread(int irq, void *priv) - - static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1) - { -+ struct drm_device *dev = vc4_hdmi->connector.dev; - struct cec_msg *msg = &vc4_hdmi->cec_rx_msg; - unsigned int i; - - msg->len = 1 + ((cntrl1 & VC4_HDMI_CEC_REC_WRD_CNT_MASK) >> - VC4_HDMI_CEC_REC_WRD_CNT_SHIFT); -+ -+ if (msg->len > 16) { -+ drm_err(dev, "Attempting to read too much data (%d)\n", msg->len); -+ return; -+ } -+ - for (i = 0; i < msg->len; i += 4) { -- u32 val = HDMI_READ(HDMI_CEC_RX_DATA_1 + i); -+ u32 val = HDMI_READ(HDMI_CEC_RX_DATA_1 + (i >> 2)); - - msg->msg[i] = val & 0xff; - msg->msg[i + 1] = (val >> 8) & 0xff; -@@ -2078,11 +2085,17 @@ static int vc4_hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts, - u32 signal_free_time, struct cec_msg *msg) - { - struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); -+ struct drm_device *dev = vc4_hdmi->connector.dev; - u32 val; - unsigned int i; - -+ if (msg->len > 16) { -+ drm_err(dev, "Attempting to transmit too much data (%d)\n", msg->len); -+ return -ENOMEM; -+ } -+ - for (i = 0; i < msg->len; i += 4) -- HDMI_WRITE(HDMI_CEC_TX_DATA_1 + i, -+ HDMI_WRITE(HDMI_CEC_TX_DATA_1 + (i >> 2), - (msg->msg[i]) | - (msg->msg[i + 1] << 8) | - (msg->msg[i + 2] << 16) | --- -2.18.4 - - -From af2c3d72905a393f0850e5b1b5116431ce3295e8 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Mon, 11 Jan 2021 15:22:58 +0100 -Subject: [PATCH 519/533] drm/vc4: hdmi: Fix up CEC registers - -The commit 311e305fdb4e ("drm/vc4: hdmi: Implement a register layout -abstraction") forgot one CEC register, and made a copy and paste mistake -for another one. Fix those mistakes. - -Fixes: 311e305fdb4e ("drm/vc4: hdmi: Implement a register layout abstraction") -Reviewed-by: Dave Stevenson -Signed-off-by: Dom Cobley -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -index 013fd57febd8..20a1438a72cb 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -+++ b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h -@@ -29,6 +29,7 @@ enum vc4_hdmi_field { - HDMI_CEC_CPU_MASK_SET, - HDMI_CEC_CPU_MASK_STATUS, - HDMI_CEC_CPU_STATUS, -+ HDMI_CEC_CPU_SET, - - /* - * Transmit data, first byte is low byte of the 32-bit reg. -@@ -199,9 +200,10 @@ static const struct vc4_hdmi_register vc4_hdmi_fields[] = { - VC4_HDMI_REG(HDMI_TX_PHY_RESET_CTL, 0x02c0), - VC4_HDMI_REG(HDMI_TX_PHY_CTL_0, 0x02c4), - VC4_HDMI_REG(HDMI_CEC_CPU_STATUS, 0x0340), -+ VC4_HDMI_REG(HDMI_CEC_CPU_SET, 0x0344), - VC4_HDMI_REG(HDMI_CEC_CPU_CLEAR, 0x0348), - VC4_HDMI_REG(HDMI_CEC_CPU_MASK_STATUS, 0x034c), -- VC4_HDMI_REG(HDMI_CEC_CPU_MASK_SET, 0x034c), -+ VC4_HDMI_REG(HDMI_CEC_CPU_MASK_SET, 0x0350), - VC4_HDMI_REG(HDMI_CEC_CPU_MASK_CLEAR, 0x0354), - VC4_HDMI_REG(HDMI_RAM_PACKET_START, 0x0400), - }; --- -2.18.4 - - -From ca86d2c93ab46806e79415da87a4d26216b64676 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Mon, 11 Jan 2021 15:22:59 +0100 -Subject: [PATCH 520/533] drm/vc4: hdmi: Restore cec physical address on - reconnect - -Currently we call cec_phys_addr_invalidate on a hotplug deassert. -That may be due to a TV power cycling, or an AVR being switched -on (and switching edid). - -This makes CEC unusable since our controller wouldn't have a physical -address anymore. - -Set it back up again on the hotplug assert. - -Fixes: 15b4511a4af6 ("drm/vc4: add HDMI CEC support") -Signed-off-by: Dom Cobley -Signed-off-by: Maxime Ripard -Acked-by: Dave Stevenson ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 24 ++++++++++++++++++------ - 1 file changed, 18 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index c62c202ae59b..ca47a20d19bf 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -447,20 +447,32 @@ 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); -+ bool connected = false; - - if (vc4_hdmi->hpd_gpio) { - if (gpio_get_value_cansleep(vc4_hdmi->hpd_gpio) ^ - vc4_hdmi->hpd_active_low) -- return connector_status_connected; -- cec_phys_addr_invalidate(vc4_hdmi->cec_adap); -- return connector_status_disconnected; -+ connected = true; -+ } else if (drm_probe_ddc(vc4_hdmi->ddc)) { -+ connected = true; -+ } else if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) { -+ connected = true; - } - -- if (drm_probe_ddc(vc4_hdmi->ddc)) -- return connector_status_connected; -+ if (connected) { -+ if (connector->status != connector_status_connected) { -+ struct edid *edid = drm_get_edid(connector, vc4_hdmi->ddc); -+ -+ if (edid) { -+ cec_s_phys_addr_from_edid(vc4_hdmi->cec_adap, edid); -+ vc4_hdmi->encoder.hdmi_monitor = drm_detect_hdmi_monitor(edid); -+ kfree(edid); -+ } -+ } - -- if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) - return connector_status_connected; -+ } -+ - cec_phys_addr_invalidate(vc4_hdmi->cec_adap); - return connector_status_disconnected; - } --- -2.18.4 - - -From 1dac08ef0422e730abbaf78787b274b1507122f2 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Mon, 11 Jan 2021 15:23:00 +0100 -Subject: [PATCH 521/533] drm/vc4: hdmi: Compute the CEC clock divider from the - clock rate - -The CEC clock divider needs to output a frequency of 40kHz from the HSM -rate on the BCM2835. The driver used to have a fixed frequency for it, -but that changed for the BCM2711 and we now need to compute it -dynamically to maintain the proper rate. - -Fixes: cd4cb49dc5bb ("drm/vc4: hdmi: Adjust HSM clock rate depending on pixel rate") -Reviewed-by: Dave Stevenson -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 4 +++- - 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 ca47a20d19bf..490633ca0a7f 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2134,6 +2134,7 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - { - struct cec_connector_info conn_info; - struct platform_device *pdev = vc4_hdmi->pdev; -+ u16 clk_cnt; - u32 value; - int ret; - -@@ -2159,8 +2160,9 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - * divider: the hsm_clock rate and this divider setting will - * give a 40 kHz CEC clock. - */ -+ clk_cnt = clk_get_rate(vc4_hdmi->hsm_clock) / CEC_CLOCK_FREQ; - value |= VC4_HDMI_CEC_ADDR_MASK | -- (4091 << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT); -+ (clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT); - HDMI_WRITE(HDMI_CEC_CNTRL_1, value); - ret = devm_request_threaded_irq(&pdev->dev, platform_get_irq(pdev, 0), - vc4_cec_irq_handler, --- -2.18.4 - - -From d9aa6f2d2f590ca02aab2588c90ed34e122d1637 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard -Date: Mon, 11 Jan 2021 15:23:01 +0100 -Subject: [PATCH 522/533] drm/vc4: hdmi: Update the CEC clock divider on HSM - rate change - -As part of the enable sequence we might change the HSM clock rate if the -pixel rate is different than the one we were already dealing with. - -On the BCM2835 however, the CEC clock derives from the HSM clock so any -rate change will need to be reflected in the CEC clock divider to output -40kHz. - -Fixes: cd4cb49dc5bb ("drm/vc4: hdmi: Adjust HSM clock rate depending on pixel rate") -Reviewed-by: Dave Stevenson -Signed-off-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 39 +++++++++++++++++++++++++--------- - 1 file changed, 29 insertions(+), 10 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 490633ca0a7f..83693ad916d3 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -443,6 +443,27 @@ static void vc5_hdmi_reset(struct vc4_hdmi *vc4_hdmi) - HDMI_READ(HDMI_CLOCK_STOP) | VC4_DVP_HT_CLOCK_STOP_PIXEL); - } - -+#ifdef CONFIG_DRM_VC4_HDMI_CEC -+static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) -+{ -+ u16 clk_cnt; -+ u32 value; -+ -+ value = HDMI_READ(HDMI_CEC_CNTRL_1); -+ value &= ~VC4_HDMI_CEC_DIV_CLK_CNT_MASK; -+ -+ /* -+ * Set the clock divider: the hsm_clock rate and this divider -+ * setting will give a 40 kHz CEC clock. -+ */ -+ clk_cnt = clk_get_rate(vc4_hdmi->hsm_clock) / CEC_CLOCK_FREQ; -+ value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT; -+ HDMI_WRITE(HDMI_CEC_CNTRL_1, value); -+} -+#else -+static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) {} -+#endif -+ - static enum drm_connector_status - vc4_hdmi_connector_detect(struct drm_connector *connector, bool force) - { -@@ -1091,6 +1112,8 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder, - return; - } - -+ vc4_hdmi_cec_update_clk_div(vc4_hdmi); -+ - /* - * FIXME: When the pixel freq is 594MHz (4k60), this needs to be setup - * at 300MHz. -@@ -2134,7 +2157,6 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - { - struct cec_connector_info conn_info; - struct platform_device *pdev = vc4_hdmi->pdev; -- u16 clk_cnt; - u32 value; - int ret; - -@@ -2153,17 +2175,14 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi) - cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info); - - HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, 0xffffffff); -+ - value = HDMI_READ(HDMI_CEC_CNTRL_1); -- value &= ~VC4_HDMI_CEC_DIV_CLK_CNT_MASK; -- /* -- * Set the logical address to Unregistered and set the clock -- * divider: the hsm_clock rate and this divider setting will -- * give a 40 kHz CEC clock. -- */ -- clk_cnt = clk_get_rate(vc4_hdmi->hsm_clock) / CEC_CLOCK_FREQ; -- value |= VC4_HDMI_CEC_ADDR_MASK | -- (clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT); -+ /* Set the logical address to Unregistered */ -+ value |= VC4_HDMI_CEC_ADDR_MASK; - HDMI_WRITE(HDMI_CEC_CNTRL_1, value); -+ -+ vc4_hdmi_cec_update_clk_div(vc4_hdmi); -+ - ret = devm_request_threaded_irq(&pdev->dev, platform_get_irq(pdev, 0), - vc4_cec_irq_handler, - vc4_cec_irq_handler_thread, 0, --- -2.18.4 - - -From 524233131f974971afb9ffefe0946e6a867836d3 Mon Sep 17 00:00:00 2001 +From 78c7c190eb7406cb22f96bf1b84ddd4afebc4c3e Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:02 +0100 -Subject: [PATCH 523/533] drm/vc4: hdmi: Introduce a CEC clock +Subject: [PATCH 499/580] 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. @@ -208628,10 +207273,10 @@ index f18f1d775241..c9b4b7678df4 100644 2.18.4 -From ff717d1743f68cf66ef8e13dec0f8faedb69b30a Mon Sep 17 00:00:00 2001 +From 8436843813c3ef88208cd4d79e22d50c8343cc27 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:03 +0100 -Subject: [PATCH 524/533] drm/vc4: hdmi: Split the interrupt handlers +Subject: [PATCH 500/580] 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 @@ -208775,10 +207420,10 @@ index e1862ffbc5e6..5643a4fb5b98 100644 2.18.4 -From 9936a3e7d38baa2012e64487d48653acdbf8035a Mon Sep 17 00:00:00 2001 +From 76e5631309e2804ecd9340d5e20fb92a4630cbe5 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:04 +0100 -Subject: [PATCH 525/533] drm/vc4: hdmi: Support BCM2711 CEC interrupt setup +Subject: [PATCH 501/580] 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 @@ -208899,10 +207544,10 @@ index c9b4b7678df4..ae1be14812b8 100644 2.18.4 -From ef6afc73f26d3ae14cba9a37f0edbcf3ce7f9889 Mon Sep 17 00:00:00 2001 +From e4e614793f333d4c1fec4354a637f08a477095de Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 15:23:05 +0100 -Subject: [PATCH 526/533] drm/vc4: hdmi: Remove cec_available flag +Subject: [PATCH 502/580] drm/vc4: hdmi: Remove cec_available flag Now that our HDMI controller supports CEC for the BCM2711, let's remove that flag. @@ -208955,10 +207600,10 @@ index ae1be14812b8..cb2af9f144df 100644 2.18.4 -From cced90a1db6e003c14d11d1ee10af59ab325dcac Mon Sep 17 00:00:00 2001 +From 897e5a1206ee401f62164e1ba19f2cf98419c23d Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:06 +0100 -Subject: [PATCH 527/533] drm/vc4: hdmi: Don't register the CEC adapter if +Subject: [PATCH 503/580] 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, @@ -208998,10 +207643,10 @@ index 66963eeb4db0..e0cff1935fbd 100644 2.18.4 -From ef66f8b7afce0e7066933450f16526b0436231d1 Mon Sep 17 00:00:00 2001 +From 20b63108c66c64111cc7dad34bc309c9b018eb54 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:07 +0100 -Subject: [PATCH 528/533] dt-binding: display: bcm2711-hdmi: Add CEC and +Subject: [PATCH 504/580] dt-binding: display: bcm2711-hdmi: Add CEC and hotplug interrupts The CEC and hotplug interrupts were missing when that binding was @@ -209055,10 +207700,10 @@ index 7ce06f9f9f8e..6e8ac910bdd8 100644 2.18.4 -From 9b5f9a763ebb6a365ca5e51954c425c324475ded Mon Sep 17 00:00:00 2001 +From a071a181b7c5ec1e07191132be6a6b2440324392 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:08 +0100 -Subject: [PATCH 529/533] ARM: dts: bcm2711: Add the BSC interrupt controller +Subject: [PATCH 505/580] 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. @@ -209110,10 +207755,10 @@ index 7c2d374cb749..786faf7050fc 100644 2.18.4 -From 2878080700fe708c928d55261dba1fbbf596e031 Mon Sep 17 00:00:00 2001 +From af05632517e4c286c8320c77139c67ac6546a0b0 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jan 2021 15:23:09 +0100 -Subject: [PATCH 530/533] ARM: dts: bcm2711: Add the CEC interrupt controller +Subject: [PATCH 506/580] ARM: dts: bcm2711: Add the CEC interrupt controller The CEC and hotplug interrupts go through an interrupt controller shared between the two HDMI controllers. @@ -209174,10 +207819,10 @@ index 786faf7050fc..9e0d9b2ca586 100644 2.18.4 -From 66c8a87880055620b53370579199bc84b354d6e6 Mon Sep 17 00:00:00 2001 +From 238d6d054dfff41b910bdda1a820c3a805844039 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 9 Dec 2020 16:37:01 +0000 -Subject: [PATCH 531/533] bcm2711: Disable bsc_intr and aon_intr by default and +Subject: [PATCH 507/580] bcm2711: Disable bsc_intr and aon_intr by default and enable in overlay Signed-off-by: Dom Cobley @@ -209235,10 +207880,10 @@ index f721f12d729d..8e9220f303f0 100644 2.18.4 -From bb386ebcb4eeb021a5b3fe7071ad673f0d6695a5 Mon Sep 17 00:00:00 2001 +From 0e61c39f8b8501eeda794ffacf1b449c55b7a960 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 15 Dec 2020 16:42:42 +0100 -Subject: [PATCH 532/533] drm/vc4: hdmi: Limit the BCM2711 to the max without +Subject: [PATCH 508/580] drm/vc4: hdmi: Limit the BCM2711 to the max without scrambling Unlike the previous generations, the HSM clock limitation is way above @@ -209286,10 +207931,10 @@ index e0cff1935fbd..2d1359b1cb38 100644 2.18.4 -From 059a74fb80af1e77998127a445096c28ef443774 Mon Sep 17 00:00:00 2001 +From f2eec657918866fa4ee6fc9cc40be811fdf10c90 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 11 Jan 2021 17:08:20 +0000 -Subject: [PATCH 533/533] bcm2711: Remove old GIC interrupt +Subject: [PATCH 509/580] bcm2711: Remove old GIC interrupt Now handled through aon_intr @@ -209321,3 +207966,6213 @@ index 0ef7bde01555..9d2730c27637 100644 -- 2.18.4 + +From eb61dbf5e6b66ecec24775b44ad6c60307ccfedb Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 8 Feb 2021 11:48:35 +0000 +Subject: [PATCH 510/580] staging:bcm2835-camera: Fix the cherry-pick of AWB + Greyworld + +The cherry-pick of the patch that added the greyworld AWB mode +was incomplete. Fix it up. + +Fixes: b3ef481fe243 "staging: bcm2835-camera: Add greyworld AWB mode" +Signed-off-by: Dave Stevenson +--- + drivers/staging/vc04_services/bcm2835-camera/controls.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-camera/controls.c b/drivers/staging/vc04_services/bcm2835-camera/controls.c +index a7af25f90449..f73daa38fa66 100644 +--- a/drivers/staging/vc04_services/bcm2835-camera/controls.c ++++ b/drivers/staging/vc04_services/bcm2835-camera/controls.c +@@ -1056,8 +1056,8 @@ static const struct bm2835_mmal_v4l2_ctrl v4l2_ctrls[V4L2_CTRL_COUNT] = { + { + .id = V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE, + .type = MMAL_CONTROL_TYPE_STD_MENU, +- .min = ~0x3ff, +- .max = V4L2_WHITE_BALANCE_SHADE, ++ .min = ~0x7ff, ++ .max = V4L2_WHITE_BALANCE_GREYWORLD, + .def = V4L2_WHITE_BALANCE_AUTO, + .step = 0, + .imenu = NULL, +-- +2.18.4 + + +From 4b9ffa798dceb0c6593a50335a925156a73fcf9a Mon Sep 17 00:00:00 2001 +From: David Knell +Date: Mon, 8 Feb 2021 03:33:30 +0000 +Subject: [PATCH 511/580] Overlays for PiFi-Mini amp + +Signed-off-by: David Knell +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 6 +++ + .../dts/overlays/pifi-mini-210-overlay.dts | 42 +++++++++++++++++++ + 3 files changed, 49 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/pifi-mini-210-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 2db8fa686a1d..1df451bb418d 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -130,6 +130,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + pibell.dtbo \ + pifacedigital.dtbo \ + pifi-40.dtbo \ ++ pifi-mini-210.dtbo \ + piglow.dtbo \ + piscreen.dtbo \ + piscreen2r.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index e020bac74df1..6a0b874730d8 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2131,6 +2131,12 @@ Load: dtoverlay=pifi-40 + Params: + + ++Name: pifi-mini-210 ++Info: Configures the PiFi Mini stereo amplifier ++Load: dtoverlay=pifi-mini-210 ++Params: ++ ++ + Name: piglow + Info: Configures the PiGlow by pimoroni.com + Load: dtoverlay=piglow +diff --git a/arch/arm/boot/dts/overlays/pifi-mini-210-overlay.dts b/arch/arm/boot/dts/overlays/pifi-mini-210-overlay.dts +new file mode 100644 +index 000000000000..963597d611b5 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pifi-mini-210-overlay.dts +@@ -0,0 +1,42 @@ ++// Definitions for PiFi Mini 210 ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&i2s>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&i2c1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ tas5711@1a { ++ #sound-dai-cells = <0>; ++ compatible = "ti,tas5711"; ++ reg = <0x1a>; ++ status = "okay"; ++ pdn-gpios = <&gpio 23 1>; ++ reset-gpios = <&gpio 24 1>; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&sound>; ++ __overlay__ { ++ compatible = "pifi,pifi-mini-210"; ++ i2s-controller = <&i2s>; ++ ++ status = "okay"; ++ }; ++ }; ++}; +-- +2.18.4 + + +From d4f6b0aeea29e988a6664d2f56d06a50cebc1723 Mon Sep 17 00:00:00 2001 +From: David Knell +Date: Mon, 8 Feb 2021 03:35:15 +0000 +Subject: [PATCH 512/580] Added PiFi-Mini to rpi-simple-soundcard.c + +Signed-off-by: David Knell +--- + sound/soc/bcm/rpi-simple-soundcard.c | 94 +++++++++++++++++++++++++--- + 1 file changed, 87 insertions(+), 7 deletions(-) + +diff --git a/sound/soc/bcm/rpi-simple-soundcard.c b/sound/soc/bcm/rpi-simple-soundcard.c +index bf61a4239073..c25351e6ee90 100644 +--- a/sound/soc/bcm/rpi-simple-soundcard.c ++++ b/sound/soc/bcm/rpi-simple-soundcard.c +@@ -32,6 +32,7 @@ + + #include + #include ++#include + + #include + #include +@@ -45,6 +46,13 @@ struct snd_rpi_simple_drvdata { + unsigned int fixed_bclk_ratio; + }; + ++static struct snd_soc_card snd_rpi_simple = { ++ .driver_name = "RPi-simple", ++ .owner = THIS_MODULE, ++ .dai_link = NULL, ++ .num_links = 1, /* Only a single DAI supported at the moment */ ++}; ++ + static int snd_rpi_simple_init(struct snd_soc_pcm_runtime *rtd) + { + struct snd_rpi_simple_drvdata *drvdata = +@@ -58,6 +66,60 @@ static int snd_rpi_simple_init(struct snd_soc_pcm_runtime *rtd) + return 0; + } + ++static int pifi_mini_210_init(struct snd_soc_pcm_runtime *rtd) ++{ ++ struct snd_soc_component *dac; ++ struct gpio_desc *pdn_gpio, *rst_gpio; ++ struct snd_soc_dai *codec_dai; ++ int ret; ++ ++ snd_rpi_simple_init(rtd); ++ codec_dai = asoc_rtd_to_codec(rtd, 0); ++ ++ dac = codec_dai[0].component; ++ ++ pdn_gpio = devm_gpiod_get_optional(snd_rpi_simple.dev, "pdn", ++ GPIOD_OUT_LOW); ++ if (IS_ERR(pdn_gpio)) { ++ ret = PTR_ERR(pdn_gpio); ++ dev_err(snd_rpi_simple.dev, "failed to get pdn gpio: %d\n", ret); ++ return ret; ++ } ++ ++ rst_gpio = devm_gpiod_get_optional(snd_rpi_simple.dev, "rst", ++ GPIOD_OUT_LOW); ++ if (IS_ERR(rst_gpio)) { ++ ret = PTR_ERR(rst_gpio); ++ dev_err(snd_rpi_simple.dev, "failed to get rst gpio: %d\n", ret); ++ return ret; ++ } ++ ++ // Set up cards - pulse power down and reset first, then ++ // set up according to datasheet ++ gpiod_set_value_cansleep(pdn_gpio, 1); ++ gpiod_set_value_cansleep(rst_gpio, 1); ++ usleep_range(1000, 10000); ++ gpiod_set_value_cansleep(pdn_gpio, 0); ++ usleep_range(20000, 30000); ++ gpiod_set_value_cansleep(rst_gpio, 0); ++ usleep_range(20000, 30000); ++ ++ // Oscillator trim ++ snd_soc_component_write(dac, 0x1b, 0); ++ usleep_range(60000, 80000); ++ ++ // MCLK at 64fs, sample rate 44.1 or 48kHz ++ snd_soc_component_write(dac, 0x00, 0x60); ++ ++ // Set up for BTL - AD/BD mode - AD is 0x00107772, BD is 0x00987772 ++ snd_soc_component_write(dac, 0x20, 0x00107772); ++ ++ // End mute ++ snd_soc_component_write(dac, 0x05, 0x00); ++ ++ return 0; ++} ++ + static int snd_rpi_simple_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) + { +@@ -255,6 +317,29 @@ static struct snd_rpi_simple_drvdata drvdata_merus_amp = { + .fixed_bclk_ratio = 64, + }; + ++SND_SOC_DAILINK_DEFS(pifi_mini_210, ++ DAILINK_COMP_ARRAY(COMP_EMPTY()), ++ DAILINK_COMP_ARRAY(COMP_CODEC("tas571x.1-001a", "tas571x-hifi")), ++ DAILINK_COMP_ARRAY(COMP_EMPTY())); ++ ++static struct snd_soc_dai_link snd_pifi_mini_210_dai[] = { ++ { ++ .name = "PiFi Mini 210", ++ .stream_name = "PiFi Mini 210 HiFi", ++ .init = pifi_mini_210_init, ++ .dai_fmt = SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBS_CFS, ++ SND_SOC_DAILINK_REG(pifi_mini_210), ++ }, ++}; ++ ++static struct snd_rpi_simple_drvdata drvdata_pifi_mini_210 = { ++ .card_name = "snd_pifi_mini_210", ++ .dai = snd_pifi_mini_210_dai, ++ .fixed_bclk_ratio = 64, ++}; ++ + static const struct of_device_id snd_rpi_simple_of_match[] = { + { .compatible = "adi,adau1977-adc", + .data = (void *) &drvdata_adau1977 }, +@@ -269,16 +354,11 @@ static const struct of_device_id snd_rpi_simple_of_match[] = { + { .compatible = "rpi,rpi-dac", &drvdata_rpi_dac}, + { .compatible = "merus,merus-amp", + .data = (void *) &drvdata_merus_amp }, ++ { .compatible = "pifi,pifi-mini-210", ++ .data = (void *) &drvdata_pifi_mini_210 }, + {}, + }; + +-static struct snd_soc_card snd_rpi_simple = { +- .driver_name = "RPi-simple", +- .owner = THIS_MODULE, +- .dai_link = NULL, +- .num_links = 1, /* Only a single DAI supported at the moment */ +-}; +- + static int snd_rpi_simple_probe(struct platform_device *pdev) + { + int ret = 0; +-- +2.18.4 + + +From 1cb3af60ace42b839c87ea3eeb8c4e96fd0829e3 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Tue, 12 Jan 2021 13:55:39 +0000 +Subject: [PATCH 513/580] bcm2835-isp: Allow formats with different colour + spaces. + +Each supported format now includes a mask showing the allowed colour +spaces, as well as a default colour space for when one was not +specified. + +Additionally we translate the colour space to mmal format and pass it +over to the VideoCore. + +Signed-off-by: David Plowman +--- + .../bcm2835-isp/bcm2835-isp-fmts.h | 180 ++++++++++++------ + .../bcm2835-isp/bcm2835-v4l2-isp.c | 66 ++++++- + 2 files changed, 190 insertions(+), 56 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 12d8ec85d2c4..7541fb316cb9 100644 +--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h ++++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h +@@ -20,10 +20,29 @@ struct bcm2835_isp_fmt { + int bytesperline_align; + u32 mmal_fmt; + int size_multiplier_x2; +- enum v4l2_colorspace colorspace; ++ u32 colorspace_mask; ++ enum v4l2_colorspace colorspace_default; + unsigned int step_size; + }; + ++#define V4L2_COLORSPACE_MASK(colorspace) BIT(colorspace) ++ ++#define V4L2_COLORSPACE_MASK_JPEG V4L2_COLORSPACE_MASK(V4L2_COLORSPACE_JPEG) ++#define V4L2_COLORSPACE_MASK_SMPTE170M V4L2_COLORSPACE_MASK(V4L2_COLORSPACE_SMPTE170M) ++#define V4L2_COLORSPACE_MASK_REC709 V4L2_COLORSPACE_MASK(V4L2_COLORSPACE_REC709) ++#define V4L2_COLORSPACE_MASK_SRGB V4L2_COLORSPACE_MASK(V4L2_COLORSPACE_SRGB) ++#define V4L2_COLORSPACE_MASK_RAW V4L2_COLORSPACE_MASK(V4L2_COLORSPACE_RAW) ++ ++/* ++ * The colour spaces we support for YUV outputs. SRGB features here because, ++ * once you assign the default transfer func and so on, it and JPEG effectively ++ * mean the same. ++ */ ++#define V4L2_COLORSPACE_MASK_YUV (V4L2_COLORSPACE_MASK_JPEG | \ ++ V4L2_COLORSPACE_MASK_SRGB | \ ++ V4L2_COLORSPACE_MASK_SMPTE170M | \ ++ V4L2_COLORSPACE_MASK_REC709) ++ + static const struct bcm2835_isp_fmt supported_formats[] = { + { + /* YUV formats */ +@@ -32,7 +51,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_I420, + .size_multiplier_x2 = 3, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_JPEG, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_YVU420, +@@ -40,7 +60,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_YV12, + .size_multiplier_x2 = 3, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_NV12, +@@ -48,7 +69,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_NV12, + .size_multiplier_x2 = 3, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_NV21, +@@ -56,7 +78,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_NV21, + .size_multiplier_x2 = 3, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_YUYV, +@@ -64,7 +87,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_YUYV, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_UYVY, +@@ -72,7 +96,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_UYVY, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_YVYU, +@@ -80,7 +105,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_YVYU, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_VYUY, +@@ -88,7 +114,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_VYUY, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SMPTE170M, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_YUV, ++ .colorspace_default = V4L2_COLORSPACE_SMPTE170M, + .step_size = 2, + }, { + /* RGB formats */ +@@ -97,7 +124,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_RGB24, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { + .fourcc = V4L2_PIX_FMT_RGB565, +@@ -105,7 +133,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_RGB16, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { + .fourcc = V4L2_PIX_FMT_BGR24, +@@ -113,7 +142,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BGR24, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { + .fourcc = V4L2_PIX_FMT_XBGR32, +@@ -121,7 +151,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_BGRA, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { + .fourcc = V4L2_PIX_FMT_RGBX32, +@@ -129,7 +160,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 64, + .mmal_fmt = MMAL_ENCODING_RGBA, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_SRGB, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_SRGB, ++ .colorspace_default = V4L2_COLORSPACE_SRGB, + .step_size = 1, + }, { + /* Bayer formats */ +@@ -139,7 +171,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB8, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR8, +@@ -147,7 +180,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR8, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG8, +@@ -155,7 +189,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG8, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG8, +@@ -163,7 +198,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG8, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 10 bit */ +@@ -172,7 +208,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB10P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR10P, +@@ -180,7 +217,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR10P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG10P, +@@ -188,7 +226,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG10P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG10P, +@@ -196,7 +235,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG10P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 12 bit */ +@@ -205,7 +245,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB12P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR12P, +@@ -213,7 +254,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR12P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG12P, +@@ -221,7 +263,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG12P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG12P, +@@ -229,7 +272,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG12P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 14 bit */ +@@ -238,7 +282,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB14P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR14P, +@@ -246,7 +291,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR14P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG14P, +@@ -254,7 +300,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG14P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG14P, +@@ -262,7 +309,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG14P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 16 bit */ +@@ -271,7 +319,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB16, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR16, +@@ -279,7 +328,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR16, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG16, +@@ -287,7 +337,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG16, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG16, +@@ -295,7 +346,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG16, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* Bayer formats unpacked to 16bpp */ +@@ -305,7 +357,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB10, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR10, +@@ -313,7 +366,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR10, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG10, +@@ -321,7 +375,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG10, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG10, +@@ -329,7 +384,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG10, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 12 bit */ +@@ -338,7 +394,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB12, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR12, +@@ -346,7 +403,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR12, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG12, +@@ -354,7 +412,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG12, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG12, +@@ -362,7 +421,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG12, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 14 bit */ +@@ -371,7 +431,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB14, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR14, +@@ -379,7 +440,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR14, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG14, +@@ -387,7 +449,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG14, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG14, +@@ -395,7 +458,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG14, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* Monochrome MIPI formats */ +@@ -405,7 +469,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_GREY, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 10 bit */ +@@ -414,7 +479,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_Y10P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 12 bit */ +@@ -423,7 +489,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_Y12P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 14 bit */ +@@ -432,7 +499,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_Y14P, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 16 bit */ +@@ -441,7 +509,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_Y16, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 10 bit as 16bpp */ +@@ -450,7 +519,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_Y10, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 12 bit as 16bpp */ +@@ -459,7 +529,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_Y12, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + /* 14 bit as 16bpp */ +@@ -468,7 +539,8 @@ static const struct bcm2835_isp_fmt supported_formats[] = { + .bytesperline_align = 32, + .mmal_fmt = MMAL_ENCODING_Y14, + .size_multiplier_x2 = 2, +- .colorspace = V4L2_COLORSPACE_RAW, ++ .colorspace_mask = V4L2_COLORSPACE_MASK_RAW, ++ .colorspace_default = V4L2_COLORSPACE_RAW, + .step_size = 2, + }, { + .fourcc = V4L2_META_FMT_BCM2835_ISP_STATS, +diff --git a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c +index 4d24aec7203d..5cca8bdd1d65 100644 +--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c ++++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c +@@ -72,6 +72,7 @@ struct bcm2835_isp_q_data { + unsigned int width; + unsigned int height; + unsigned int sizeimage; ++ enum v4l2_colorspace colorspace; + const struct bcm2835_isp_fmt *fmt; + }; + +@@ -311,6 +312,43 @@ static void mmal_buffer_cb(struct vchiq_mmal_instance *instance, + complete(&dev->frame_cmplt); + } + ++struct colorspace_translation { ++ enum v4l2_colorspace v4l2_value; ++ u32 mmal_value; ++}; ++ ++static u32 translate_color_space(enum v4l2_colorspace color_space) ++{ ++ static const struct colorspace_translation translations[] = { ++ { V4L2_COLORSPACE_DEFAULT, MMAL_COLOR_SPACE_UNKNOWN }, ++ { V4L2_COLORSPACE_SMPTE170M, MMAL_COLOR_SPACE_ITUR_BT601 }, ++ { V4L2_COLORSPACE_SMPTE240M, MMAL_COLOR_SPACE_SMPTE240M }, ++ { V4L2_COLORSPACE_REC709, MMAL_COLOR_SPACE_ITUR_BT709 }, ++ /* V4L2_COLORSPACE_BT878 unavailable */ ++ { V4L2_COLORSPACE_470_SYSTEM_M, MMAL_COLOR_SPACE_BT470_2_M }, ++ { V4L2_COLORSPACE_470_SYSTEM_BG, MMAL_COLOR_SPACE_BT470_2_BG }, ++ { V4L2_COLORSPACE_JPEG, MMAL_COLOR_SPACE_JPEG_JFIF }, ++ /* ++ * We don't have an encoding for SRGB as such, but VideoCore ++ * will do the right thing if it gets "unknown". ++ */ ++ { V4L2_COLORSPACE_SRGB, MMAL_COLOR_SPACE_UNKNOWN }, ++ /* V4L2_COLORSPACE_OPRGB unavailable */ ++ /* V4L2_COLORSPACE_BT2020 unavailable */ ++ /* V4L2_COLORSPACE_RAW unavailable */ ++ /* V4L2_COLORSPACE_DCI_P3 unavailable */ ++ }; ++ ++ unsigned int i; ++ ++ for (i = 0; i < ARRAY_SIZE(translations); i++) { ++ if (color_space == translations[i].v4l2_value) ++ return translations[i].mmal_value; ++ } ++ ++ return MMAL_COLOR_SPACE_UNKNOWN; ++} ++ + static void setup_mmal_port_format(struct bcm2835_isp_node *node, + struct vchiq_mmal_port *port) + { +@@ -324,6 +362,7 @@ static void setup_mmal_port_format(struct bcm2835_isp_node *node, + port->es.video.crop.height = q_data->height; + port->es.video.crop.x = 0; + port->es.video.crop.y = 0; ++ port->es.video.color_space = translate_color_space(q_data->colorspace); + }; + + static int setup_mmal_port(struct bcm2835_isp_node *node) +@@ -827,6 +866,9 @@ static int populate_qdata_fmt(struct v4l2_format *f, + /* All parameters should have been set correctly by try_fmt */ + q_data->bytesperline = f->fmt.pix.bytesperline; + q_data->sizeimage = f->fmt.pix.sizeimage; ++ ++ /* We must indicate which of the allowed colour spaces we have. */ ++ q_data->colorspace = f->fmt.pix.colorspace; + } else { + v4l2_dbg(1, debug, &dev->v4l2_dev, + "%s: Setting meta format for fmt: %08x, size %u\n", +@@ -838,6 +880,9 @@ static int populate_qdata_fmt(struct v4l2_format *f, + q_data->height = 0; + q_data->bytesperline = 0; + q_data->sizeimage = f->fmt.meta.buffersize; ++ ++ /* This won't mean anything for metadata, but may as well fill it in. */ ++ q_data->colorspace = V4L2_COLORSPACE_DEFAULT; + } + + v4l2_dbg(1, debug, &dev->v4l2_dev, +@@ -901,7 +946,7 @@ static int bcm2835_isp_node_g_fmt(struct file *file, void *priv, + f->fmt.pix.pixelformat = q_data->fmt->fourcc; + f->fmt.pix.bytesperline = q_data->bytesperline; + f->fmt.pix.sizeimage = q_data->sizeimage; +- f->fmt.pix.colorspace = q_data->fmt->colorspace; ++ f->fmt.pix.colorspace = q_data->colorspace; + } + + return 0; +@@ -968,13 +1013,29 @@ static int bcm2835_isp_node_try_fmt(struct file *file, void *priv, + fmt = get_default_format(node); + + if (!node_is_stats(node)) { ++ int is_rgb; ++ + f->fmt.pix.width = max(min(f->fmt.pix.width, MAX_DIM), + MIN_DIM); + f->fmt.pix.height = max(min(f->fmt.pix.height, MAX_DIM), + MIN_DIM); + + f->fmt.pix.pixelformat = fmt->fourcc; +- f->fmt.pix.colorspace = fmt->colorspace; ++ ++ /* ++ * Fill in the actual colour space when the requested one was ++ * not supported. This also catches the case when the "default" ++ * colour space was requested (as that's never in the mask). ++ */ ++ if (!(V4L2_COLORSPACE_MASK(f->fmt.pix.colorspace) & fmt->colorspace_mask)) ++ f->fmt.pix.colorspace = fmt->colorspace_default; ++ /* In all cases, we only support the defaults for these: */ ++ f->fmt.pix.ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(f->fmt.pix.colorspace); ++ f->fmt.pix.xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(f->fmt.pix.colorspace); ++ is_rgb = f->fmt.pix.colorspace == V4L2_COLORSPACE_SRGB; ++ f->fmt.pix.quantization = V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, f->fmt.pix.colorspace, ++ f->fmt.pix.ycbcr_enc); ++ + f->fmt.pix.bytesperline = get_bytesperline(f->fmt.pix.width, + fmt); + f->fmt.pix.field = V4L2_FIELD_NONE; +@@ -1299,6 +1360,7 @@ static int register_node(struct bcm2835_isp_dev *dev, + node->q_data.width, + node->q_data.height, + node->q_data.fmt); ++ node->q_data.colorspace = node->q_data.fmt->colorspace_default; + + queue->io_modes = VB2_MMAP | VB2_DMABUF; + queue->drv_priv = node; +-- +2.18.4 + + +From 67bf370a3ceff27a8d69dee120a31fa911e82510 Mon Sep 17 00:00:00 2001 +From: Joerg Schambacher +Date: Mon, 1 Feb 2021 16:53:46 +0100 +Subject: [PATCH 514/580] Hifiberry DAC+ADC Pro fix for the PLL when changing + sample rates + +Adds 2 msecs delay when switching between oscillators to allow +correct PLL settling. +Thanks to Clive Messer for the support! + +Signed-off-by: Joerg Schambacher +--- + sound/soc/bcm/hifiberry_dacplusadcpro.c | 14 ++++---------- + 1 file changed, 4 insertions(+), 10 deletions(-) + +diff --git a/sound/soc/bcm/hifiberry_dacplusadcpro.c b/sound/soc/bcm/hifiberry_dacplusadcpro.c +index 4c03927107e3..8b04d30bcbee 100644 +--- a/sound/soc/bcm/hifiberry_dacplusadcpro.c ++++ b/sound/soc/bcm/hifiberry_dacplusadcpro.c +@@ -190,6 +190,7 @@ static void snd_rpi_hifiberry_dacplusadcpro_select_clk( + PCM512x_GPIO_CONTROL_1, 0x24, 0x04); + break; + } ++ usleep_range(2000, 2100); + } + + static void snd_rpi_hifiberry_dacplusadcpro_clk_gpio(struct snd_soc_component *component) +@@ -207,13 +208,6 @@ static bool snd_rpi_hifiberry_dacplusadcpro_is_sclk(struct snd_soc_component *co + return (!(sck & 0x40)); + } + +-static bool snd_rpi_hifiberry_dacplusadcpro_is_sclk_sleep( +- struct snd_soc_component *component) +-{ +- msleep(2); +- return snd_rpi_hifiberry_dacplusadcpro_is_sclk(component); +-} +- + static bool snd_rpi_hifiberry_dacplusadcpro_is_pro_card(struct snd_soc_component *component) + { + bool isClk44EN, isClk48En, isNoClk; +@@ -221,13 +215,13 @@ static bool snd_rpi_hifiberry_dacplusadcpro_is_pro_card(struct snd_soc_component + snd_rpi_hifiberry_dacplusadcpro_clk_gpio(component); + + snd_rpi_hifiberry_dacplusadcpro_select_clk(component, HIFIBERRY_DACPRO_CLK44EN); +- isClk44EN = snd_rpi_hifiberry_dacplusadcpro_is_sclk_sleep(component); ++ isClk44EN = snd_rpi_hifiberry_dacplusadcpro_is_sclk(component); + + snd_rpi_hifiberry_dacplusadcpro_select_clk(component, HIFIBERRY_DACPRO_NOCLOCK); +- isNoClk = snd_rpi_hifiberry_dacplusadcpro_is_sclk_sleep(component); ++ isNoClk = snd_rpi_hifiberry_dacplusadcpro_is_sclk(component); + + snd_rpi_hifiberry_dacplusadcpro_select_clk(component, HIFIBERRY_DACPRO_CLK48EN); +- isClk48En = snd_rpi_hifiberry_dacplusadcpro_is_sclk_sleep(component); ++ isClk48En = snd_rpi_hifiberry_dacplusadcpro_is_sclk(component); + + return (isClk44EN && isClk48En && !isNoClk); + } +-- +2.18.4 + + +From 7923a895098ef798a9cc7b9a83fdbe3fa5c0d8b7 Mon Sep 17 00:00:00 2001 +From: Mathias Anhalt +Date: Sun, 24 Jan 2021 15:15:01 +0100 +Subject: [PATCH 515/580] Fixed picture line bug in all ov9281 modes + +Signed-off-by: Mathias Anhalt +--- + drivers/media/i2c/ov9281.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/media/i2c/ov9281.c b/drivers/media/i2c/ov9281.c +index 12621c2dccd5..c646f11ef1d5 100644 +--- a/drivers/media/i2c/ov9281.c ++++ b/drivers/media/i2c/ov9281.c +@@ -205,7 +205,7 @@ static const struct regval ov9281_common_regs[] = { + }; + + static const struct regval ov9281_1280x800_regs[] = { +- {0x3778, 0x10}, ++ {0x3778, 0x00}, + {0x3800, 0x00}, + {0x3801, 0x00}, + {0x3802, 0x00}, +@@ -241,7 +241,7 @@ static const struct regval ov9281_1280x800_regs[] = { + }; + + static const struct regval ov9281_1280x720_regs[] = { +- {0x3778, 0x10}, ++ {0x3778, 0x00}, + {0x3800, 0x00}, + {0x3801, 0x00}, + {0x3802, 0x00}, +@@ -277,6 +277,7 @@ static const struct regval ov9281_1280x720_regs[] = { + }; + + static const struct regval ov9281_640x400_regs[] = { ++ {0x3778, 0x10}, + {0x3800, 0x00}, + {0x3801, 0x00}, + {0x3802, 0x00}, +-- +2.18.4 + + +From 5c9bbd92427b3c4173bfe644589628413281546a Mon Sep 17 00:00:00 2001 +From: Mathias Anhalt +Date: Wed, 3 Feb 2021 20:34:09 +0100 +Subject: [PATCH 516/580] Added hflip and vflip controls to ov9281 + +Signed-off-by: Mathias Anhalt +--- + drivers/media/i2c/ov9281.c | 58 +++++++++++++++++++++++++++++++++++++- + 1 file changed, 57 insertions(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/ov9281.c b/drivers/media/i2c/ov9281.c +index c646f11ef1d5..16777b6f8e14 100644 +--- a/drivers/media/i2c/ov9281.c ++++ b/drivers/media/i2c/ov9281.c +@@ -40,6 +40,10 @@ + #define CHIP_ID 0x9281 + #define OV9281_REG_CHIP_ID 0x300a + ++#define OV9281_REG_TIMING_FORMAT_1 0x3820 ++#define OV9281_REG_TIMING_FORMAT_2 0x3821 ++#define OV9281_FLIP_BIT BIT(2) ++ + #define OV9281_REG_CTRL_MODE 0x0100 + #define OV9281_MODE_SW_STANDBY 0x0 + #define OV9281_MODE_STREAMING BIT(0) +@@ -123,6 +127,8 @@ struct ov9281 { + struct v4l2_ctrl *digi_gain; + struct v4l2_ctrl *hblank; + struct v4l2_ctrl *vblank; ++ struct v4l2_ctrl *hflip; ++ struct v4l2_ctrl *vflip; + struct v4l2_ctrl *pixel_rate; + struct v4l2_ctrl *test_pattern; + struct mutex mutex; +@@ -615,6 +621,42 @@ static int ov9281_enable_test_pattern(struct ov9281 *ov9281, u32 pattern) + OV9281_REG_VALUE_08BIT, val); + } + ++static int ov9281_set_ctrl_hflip(struct ov9281 *ov9281, int value) ++{ ++ u32 current_val; ++ int ret = ov9281_read_reg(ov9281->client, OV9281_REG_TIMING_FORMAT_2, ++ OV9281_REG_VALUE_08BIT, ¤t_val); ++ if (!ret) { ++ if (value) ++ current_val |= OV9281_FLIP_BIT; ++ else ++ current_val &= ~OV9281_FLIP_BIT; ++ return ov9281_write_reg(ov9281->client, ++ OV9281_REG_TIMING_FORMAT_2, ++ OV9281_REG_VALUE_08BIT, ++ current_val); ++ } ++ return ret; ++} ++ ++static int ov9281_set_ctrl_vflip(struct ov9281 *ov9281, int value) ++{ ++ u32 current_val; ++ int ret = ov9281_read_reg(ov9281->client, OV9281_REG_TIMING_FORMAT_1, ++ OV9281_REG_VALUE_08BIT, ¤t_val); ++ if (!ret) { ++ if (value) ++ current_val |= OV9281_FLIP_BIT; ++ else ++ current_val &= ~OV9281_FLIP_BIT; ++ return ov9281_write_reg(ov9281->client, ++ OV9281_REG_TIMING_FORMAT_1, ++ OV9281_REG_VALUE_08BIT, ++ current_val); ++ } ++ return ret; ++} ++ + static const struct v4l2_rect * + __ov9281_get_pad_crop(struct ov9281 *ov9281, struct v4l2_subdev_pad_config *cfg, + unsigned int pad, enum v4l2_subdev_format_whence which) +@@ -933,6 +975,12 @@ static int ov9281_set_ctrl(struct v4l2_ctrl *ctrl) + return 0; + + switch (ctrl->id) { ++ case V4L2_CID_HFLIP: ++ ret = ov9281_set_ctrl_hflip(ov9281, ctrl->val); ++ break; ++ case V4L2_CID_VFLIP: ++ ret = ov9281_set_ctrl_vflip(ov9281, ctrl->val); ++ break; + case V4L2_CID_EXPOSURE: + /* 4 least significant bits of expsoure are fractional part */ + ret = ov9281_write_reg(ov9281->client, OV9281_REG_EXPOSURE, +@@ -981,7 +1029,7 @@ static int ov9281_initialize_controls(struct ov9281 *ov9281) + + handler = &ov9281->ctrl_handler; + mode = ov9281->cur_mode; +- ret = v4l2_ctrl_handler_init(handler, 8); ++ ret = v4l2_ctrl_handler_init(handler, 9); + if (ret) + return ret; + handler->lock = &ov9281->mutex; +@@ -1022,6 +1070,14 @@ static int ov9281_initialize_controls(struct ov9281 *ov9281) + OV9281_GAIN_STEP, + OV9281_GAIN_DEFAULT); + ++ ov9281->vflip = v4l2_ctrl_new_std(handler, &ov9281_ctrl_ops, ++ V4L2_CID_VFLIP, ++ 0, 1, 1, 0); ++ ++ ov9281->hflip = v4l2_ctrl_new_std(handler, &ov9281_ctrl_ops, ++ V4L2_CID_HFLIP, ++ 0, 1, 1, 0); ++ + ov9281->test_pattern = + v4l2_ctrl_new_std_menu_items(handler, &ov9281_ctrl_ops, + V4L2_CID_TEST_PATTERN, +-- +2.18.4 + + +From 8276be2768abf16d4cc8833d9aa1e90b0dd2c8db Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 12 Feb 2021 17:45:57 +0000 +Subject: [PATCH 517/580] Partial revert "bcm2711: Disable bsc_intr and + aon_intr by default and enable in overlay" + +This reverts commit c765fd45856a34b9e46daa9263faeafe006c3985. + +bsc_intr is being removed again as it causes issues. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/bcm2711.dtsi | 1 - + arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts | 7 ------- + 2 files changed, 8 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi +index 9d2730c27637..be2f9ba08ea8 100644 +--- a/arch/arm/boot/dts/bcm2711.dtsi ++++ b/arch/arm/boot/dts/bcm2711.dtsi +@@ -314,7 +314,6 @@ + interrupts = ; + interrupt-controller; + #interrupt-cells = <1>; +- status = "disabled"; + }; + + aon_intr: interrupt-controller@7ef00100 { +diff --git a/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts +index 8e9220f303f0..6a11260a4f1a 100644 +--- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts ++++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts +@@ -167,13 +167,6 @@ + }; + + fragment@23 { +- target = <&bsc_intr>; +- __overlay__ { +- status = "okay"; +- }; +- }; +- +- fragment@24 { + target = <&aon_intr>; + __overlay__ { + status = "okay"; +-- +2.18.4 + + +From d0f948226c2aa1370d3134809753e90cb7646c9c Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 12 Feb 2021 17:49:25 +0000 +Subject: [PATCH 518/580] Revert "ARM: dts: bcm2711: Add the BSC interrupt + controller" + +This reverts commit 93a3b097c467bd5efc1ae3a271c336fdad3b2108. + +GIC interrupt 117 is shared with the HDMI interrupt controller +and all the standard BSC I2C controllers. Whilst the BSC driver +flags the interrupt as shared, there doesn't appear to be an +easy way to flag the controller as being on a shared parent +interrupt. + +Revert to polling the I2C controllers. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/bcm2711.dtsi | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi +index be2f9ba08ea8..b4bca5af95e1 100644 +--- a/arch/arm/boot/dts/bcm2711.dtsi ++++ b/arch/arm/boot/dts/bcm2711.dtsi +@@ -308,14 +308,6 @@ + #reset-cells = <1>; + }; + +- bsc_intr: interrupt-controller@7ef00040 { +- compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc"; +- reg = <0x7ef00040 0x30>; +- interrupts = ; +- interrupt-controller; +- #interrupt-cells = <1>; +- }; +- + aon_intr: interrupt-controller@7ef00100 { + compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc"; + reg = <0x7ef00100 0x30>; +@@ -369,8 +361,6 @@ + reg = <0x7ef04500 0x100>, <0x7ef00b00 0x300>; + reg-names = "bsc", "auto-i2c"; + clock-frequency = <97500>; +- interrupt-parent = <&bsc_intr>; +- interrupts = <0>; + status = "disabled"; + }; + +@@ -418,8 +408,6 @@ + reg = <0x7ef09500 0x100>, <0x7ef05b00 0x300>; + reg-names = "bsc", "auto-i2c"; + clock-frequency = <97500>; +- interrupt-parent = <&bsc_intr>; +- interrupts = <1>; + status = "disabled"; + }; + }; +-- +2.18.4 + + +From 3e3391d7e97b1f7be97e342aed03c5cdf7d3571e Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 15 Feb 2021 10:25:35 +0000 +Subject: [PATCH 519/580] 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" +resembles a declaration of a GPIO called "num-soft", causing the value +to be interpreted as a phandle, the owner of which is checked for a +"#gpio-cells" property. + +To avoid this warning, rename the gpio-fsm property to "num-swgpios". + +Signed-off-by: Phil Elwell +--- + drivers/gpio/gpio-fsm.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpio/gpio-fsm.c b/drivers/gpio/gpio-fsm.c +index 2cab50e51315..708f258fda35 100644 +--- a/drivers/gpio/gpio-fsm.c ++++ b/drivers/gpio/gpio-fsm.c +@@ -866,8 +866,9 @@ static int gpio_fsm_probe(struct platform_device *pdev) + [SYM_SHUTDOWN] = "shutdown_state", + }; + +- if (of_property_read_u32(np, "num-soft-gpios", &num_soft_gpios)) { +- dev_err(dev, "missing 'num-soft-gpios' property\n"); ++ if (of_property_read_u32(np, "num-swgpios", &num_soft_gpios) && ++ of_property_read_u32(np, "num-soft-gpios", &num_soft_gpios)) { ++ dev_err(dev, "missing 'num-swgpios' property\n"); + return -EINVAL; + } + +-- +2.18.4 + + +From 8903c3ec9a6ced1c52f05e1afab52da54a495234 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 15 Feb 2021 10:32:18 +0000 +Subject: [PATCH 520/580] 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 +phandle that just happens to match the number of soft GPIOs. Rename +the property to "num-swgpios" to avoid the warning. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/fsm-demo-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/ghost-amp-overlay.dts | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts b/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts +index 9e06e388e4d3..9b5da179914f 100644 +--- a/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts ++++ b/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts +@@ -22,7 +22,7 @@ + debug = <0>; + gpio-controller; + #gpio-cells = <2>; +- num-soft-gpios = <1>; ++ num-swgpios = <1>; + gpio-line-names = "button2"; + input-gpios = <&gpio 6 1>; // BUTTON1 (active-low) + output-gpios = <&gpio 7 0>, // RED +diff --git a/arch/arm/boot/dts/overlays/ghost-amp-overlay.dts b/arch/arm/boot/dts/overlays/ghost-amp-overlay.dts +index afc9f034b5fc..3c997266a67d 100644 +--- a/arch/arm/boot/dts/overlays/ghost-amp-overlay.dts ++++ b/arch/arm/boot/dts/overlays/ghost-amp-overlay.dts +@@ -58,7 +58,7 @@ + debug = <0>; + gpio-controller; + #gpio-cells = <2>; +- num-soft-gpios = <1>; ++ num-swgpios = <1>; + gpio-line-names = "enable"; + input-gpios = <&gpio 5 1>; // FAULT (active low) + output-gpios = <&gpio 22 0>, // RELAY1 +-- +2.18.4 + + +From 4828c7cd7e387f911e81b131279d8efc6acf0568 Mon Sep 17 00:00:00 2001 +From: Laurentiu Palcu +Date: Wed, 27 Nov 2019 14:42:35 +0000 +Subject: [PATCH 521/580] 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 +SM_7 bits. Currently, only Static Metadata Type 1 is supported and this is +indicated by setting the SM_0 bit to 1. + +However, the connector->hdr_sink_metadata.hdmi_type1.metadata_type is always +0, because hdr_metadata_type() in drm_edid.c checks the wrong bit. + +This patch corrects the HDMI_STATIC_METADATA_TYPE1 bit position. + +Signed-off-by: Laurentiu Palcu +--- + include/linux/hdmi.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h +index 9850d59d6f1c..c8ec982ff498 100644 +--- a/include/linux/hdmi.h ++++ b/include/linux/hdmi.h +@@ -156,7 +156,7 @@ enum hdmi_content_type { + }; + + enum hdmi_metadata_type { +- HDMI_STATIC_METADATA_TYPE1 = 1, ++ HDMI_STATIC_METADATA_TYPE1 = 0, + }; + + enum hdmi_eotf { +-- +2.18.4 + + +From 1a083f7287a3fc3504cb4fac31b0f3077d55d143 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 2 Dec 2020 18:36:24 +0000 +Subject: [PATCH 522/580] drm/vc4: Add HDR metadata property to the VC5 HDMI + connectors + +Now that we can export deeper colour depths, add in the signalling +for HDR metadata. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 28 ++++++++++++++++++++++++++++ + drivers/gpu/drm/vc4/vc4_hdmi.h | 3 +++ + 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 +--- 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, + connector->doublescan_allowed = 0; + connector->stereo_allowed = 1; + ++ if (vc4_hdmi->variant->supports_hdr) ++ drm_object_attach_property(&connector->base, ++ connector->dev->mode_config.hdr_output_metadata_property, 0); ++ + drm_connector_attach_encoder(connector, encoder); + + return 0; +@@ -755,6 +759,25 @@ static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder) + vc4_hdmi_write_infoframe(encoder, &frame); + } + ++static void vc4_hdmi_set_hdr_infoframe(struct drm_encoder *encoder) ++{ ++ struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); ++ struct drm_connector *connector = &vc4_hdmi->connector; ++ struct drm_connector_state *conn_state = connector->state; ++ union hdmi_infoframe frame; ++ ++ if (!vc4_hdmi->variant->supports_hdr) ++ return; ++ ++ if (!conn_state->hdr_output_metadata) ++ return; ++ ++ if (drm_hdmi_infoframe_set_hdr_metadata(&frame.drm, conn_state)) ++ return; ++ ++ vc4_hdmi_write_infoframe(encoder, &frame); ++} ++ + 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) + */ + if (vc4_hdmi->audio.streaming) + vc4_hdmi_set_audio_infoframe(encoder); ++ ++ vc4_hdmi_set_hdr_infoframe(encoder); + } + + static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder, +@@ -2672,6 +2697,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, ++ .supports_hdr = false, + }; + + static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = { +@@ -2699,6 +2725,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, ++ .supports_hdr = true, + }; + + static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = { +@@ -2726,6 +2753,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, ++ .supports_hdr = true, + }; + + static const struct of_device_id vc4_hdmi_dt_match[] = { +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h +index cb2af9f144df..33b5f120bbeb 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.h ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.h +@@ -99,6 +99,9 @@ struct vc4_hdmi_variant { + + /* Callback to get channel map */ + u32 (*channel_map)(struct vc4_hdmi *vc4_hdmi, u32 channel_mask); ++ ++ /* Enables HDR metadata */ ++ bool supports_hdr; + }; + + /* HDMI audio information */ +-- +2.18.4 + + +From 510be631d724e4c4e612e7c8cbb0e89ce83c3314 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 5 Feb 2021 14:07:12 +0000 +Subject: [PATCH 523/580] drm/vc4: Add connector check to trigger mode_change + when hdr metadata changes + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 40 ++++++++++++++++++++++++++++++++++ + 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 +--- 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) + return ret; + } + ++static bool hdr_metadata_equal(const struct drm_connector_state *old_state, ++ const struct drm_connector_state *new_state) ++{ ++ struct drm_property_blob *old_blob = old_state->hdr_output_metadata; ++ struct drm_property_blob *new_blob = new_state->hdr_output_metadata; ++ ++ if (!old_blob || !new_blob) ++ return old_blob == new_blob; ++ ++ if (old_blob->length != new_blob->length) ++ return false; ++ ++ return !memcmp(old_blob->data, new_blob->data, old_blob->length); ++} ++ ++static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector, ++ struct drm_atomic_state *state) ++{ ++ struct drm_connector_state *old_state = ++ drm_atomic_get_old_connector_state(state, connector); ++ struct drm_connector_state *new_state = ++ drm_atomic_get_new_connector_state(state, connector); ++ struct drm_crtc *crtc = new_state->crtc; ++ struct drm_crtc_state *crtc_state; ++ ++ if (!crtc) ++ return 0; ++ ++ if (!hdr_metadata_equal(old_state, new_state)) { ++ crtc_state = drm_atomic_get_crtc_state(state, crtc); ++ if (IS_ERR(crtc_state)) ++ return PTR_ERR(crtc_state); ++ ++ crtc_state->mode_changed = true; ++ } ++ ++ return 0; ++} ++ + 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 = { + + static const struct drm_connector_helper_funcs vc4_hdmi_connector_helper_funcs = { + .get_modes = vc4_hdmi_connector_get_modes, ++ .atomic_check = vc4_hdmi_connector_atomic_check, + }; + + static int vc4_hdmi_connector_init(struct drm_device *dev, +-- +2.18.4 + + +From 85df4178700173bb10c8a3ad3f77e06f50f0df4e Mon Sep 17 00:00:00 2001 +From: John Cox +Date: Mon, 8 Feb 2021 16:01:37 +0000 +Subject: [PATCH 524/580] 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 +all further decode. + +Signed-off-by: John Cox +--- + drivers/staging/media/rpivid/rpivid.h | 3 ++ + drivers/staging/media/rpivid/rpivid_h265.c | 44 +++++++++++++++++++++- + 2 files changed, 45 insertions(+), 2 deletions(-) + +diff --git a/drivers/staging/media/rpivid/rpivid.h b/drivers/staging/media/rpivid/rpivid.h +index faafe936b878..0e8280b803a3 100644 +--- a/drivers/staging/media/rpivid/rpivid.h ++++ b/drivers/staging/media/rpivid/rpivid.h +@@ -88,6 +88,9 @@ struct rpivid_ctx { + struct v4l2_pix_format src_fmt; + struct v4l2_pix_format dst_fmt; + int dst_fmt_set; ++ // fatal_err is set if an error has occurred s.t. decode cannot ++ // continue (such as running out of CMA) ++ int fatal_err; + + struct v4l2_ctrl_handler hdl; + struct v4l2_ctrl **ctrls; +diff --git a/drivers/staging/media/rpivid/rpivid_h265.c b/drivers/staging/media/rpivid/rpivid_h265.c +index fc3caed58187..e6b07920aa8c 100644 +--- a/drivers/staging/media/rpivid/rpivid_h265.c ++++ b/drivers/staging/media/rpivid/rpivid_h265.c +@@ -73,10 +73,18 @@ static void gptr_free(struct rpivid_dev *const dev, + gptr->attrs = 0; + } + +-/* Realloc but do not copy */ ++/* Realloc but do not copy ++ * ++ * Frees then allocs. ++ * If the alloc fails then it attempts to re-allocote the old size ++ * On error then check gptr->ptr to determine if anything is currently ++ * allocated. ++ */ + static int gptr_realloc_new(struct rpivid_dev * const dev, + struct rpivid_gptr * const gptr, size_t size) + { ++ const size_t old_size = gptr->size; ++ + if (size == gptr->size) + return 0; + +@@ -88,7 +96,21 @@ static int gptr_realloc_new(struct rpivid_dev * const dev, + gptr->size = size; + gptr->ptr = dma_alloc_attrs(dev->dev, gptr->size, + &gptr->addr, GFP_KERNEL, gptr->attrs); +- return gptr->ptr ? 0 : -ENOMEM; ++ ++ if (!gptr->ptr) { ++ gptr->addr = 0; ++ gptr->size = old_size; ++ gptr->ptr = dma_alloc_attrs(dev->dev, gptr->size, ++ &gptr->addr, GFP_KERNEL, gptr->attrs); ++ if (!gptr->ptr) { ++ gptr->size = 0; ++ gptr->addr = 0; ++ gptr->attrs = 0; ++ } ++ return -ENOMEM; ++ } ++ ++ return 0; + } + + /* floor(log2(x)) */ +@@ -2020,6 +2042,12 @@ static void phase1_thread(struct rpivid_dev *const dev, void *v) + return; + + fail: ++ if (!pu_gptr->addr || !coeff_gptr->addr) { ++ v4l2_err(&dev->v4l2_dev, ++ "%s: Fatal: failed to reclaim old alloc\n", ++ __func__); ++ ctx->fatal_err = 1; ++ } + dec_env_delete(de); + xtrace_fin(dev, de); + v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, +@@ -2093,6 +2121,9 @@ static void phase1_claimed(struct rpivid_dev *const dev, void *v) + + xtrace_in(dev, de); + ++ if (ctx->fatal_err) ++ goto fail; ++ + de->pu_base_vc = pu_gptr->addr; + de->pu_stride = + ALIGN_DOWN(pu_gptr->size / de->pic_height_in_ctbs_y, 64); +@@ -2116,6 +2147,14 @@ static void phase1_claimed(struct rpivid_dev *const dev, void *v) + apb_write_vc_addr_final(dev, RPI_CFBASE, de->cmd_copy_gptr->addr); + + xtrace_ok(dev, de); ++ return; ++ ++fail: ++ dec_env_delete(de); ++ xtrace_fin(dev, de); ++ v4l2_m2m_buf_done_and_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx, ++ VB2_BUF_STATE_ERROR); ++ xtrace_fail(dev, de); + } + + static void dec_state_delete(struct rpivid_ctx *const ctx) +@@ -2186,6 +2225,7 @@ static int rpivid_h265_start(struct rpivid_ctx *ctx) + v4l2_info(&dev->v4l2_dev, "%s: (%dx%d)\n", __func__, + ctx->dst_fmt.width, ctx->dst_fmt.height); + ++ ctx->fatal_err = 0; + ctx->dec0 = NULL; + ctx->state = kzalloc(sizeof(*ctx->state), GFP_KERNEL); + if (!ctx->state) { +-- +2.18.4 + + +From 5a9023cee9dbb65176fb6245639dceab5a874ed4 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 4 Feb 2021 14:23:58 +0000 +Subject: [PATCH 525/580] dt: Add option for dpi without DE and PCLK (for + VGA666) + +VGA666 doesn't use the DE or PCLK signals, therefore there is +no point in claiming their use. It's also then possible to +use GPIOs 0&1 for DDC to read the EDID from the display. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/bcm270x.dtsi | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi +index e657affae46f..12c7b0b2bb5f 100644 +--- a/arch/arm/boot/dts/bcm270x.dtsi ++++ b/arch/arm/boot/dts/bcm270x.dtsi +@@ -170,6 +170,12 @@ + 20 21>; + brcm,function = ; + }; ++ dpi_18bit_gpio2: dpi_18bit_gpio2 { ++ brcm,pins = <2 3 4 5 6 7 8 9 10 11 ++ 12 13 14 15 16 17 18 19 ++ 20 21>; ++ brcm,function = ; ++ }; + }; + + &uart0 { +-- +2.18.4 + + +From 22dd361e9bc6bd70c66075413c4927c71cf993ab Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 4 Feb 2021 14:50:59 +0000 +Subject: [PATCH 526/580] defconfigs: Add DRM_DISPLAY_CONNECTOR and + DRM_SIMPLE_BRIDGE for VGA666 + +VGA666 uses "vga-connector" from DRM_DISPLAY_CONNECTOR, and +"dumb-vga-dac" from DRM_SIMPLE_BRIDGE to connect up, so add them +to the defconfigs. + +Signed-off-by: Dave Stevenson +--- + arch/arm/configs/bcm2709_defconfig | 2 ++ + arch/arm/configs/bcm2711_defconfig | 2 ++ + arch/arm/configs/bcmrpi_defconfig | 2 ++ + arch/arm64/configs/bcm2711_defconfig | 2 ++ + arch/arm64/configs/bcmrpi3_defconfig | 2 ++ + 5 files changed, 10 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index e67c4e2337f9..2b1cabdf07d8 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -919,6 +919,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m + CONFIG_DRM_PANEL_SIMPLE=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m ++CONFIG_DRM_DISPLAY_CONNECTOR=m ++CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_VC4=m + CONFIG_DRM_VC4_HDMI_CEC=y + CONFIG_TINYDRM_ILI9225=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 9fe97bb713db..256b79d50bef 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -930,6 +930,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m + CONFIG_DRM_PANEL_SIMPLE=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m ++CONFIG_DRM_DISPLAY_CONNECTOR=m ++CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_V3D=m + CONFIG_DRM_VC4=m + CONFIG_DRM_VC4_HDMI_CEC=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 453af019ce99..bdcd84425173 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -912,6 +912,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m + CONFIG_DRM_PANEL_SIMPLE=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m ++CONFIG_DRM_DISPLAY_CONNECTOR=m ++CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_VC4=m + CONFIG_DRM_VC4_HDMI_CEC=y + CONFIG_TINYDRM_ILI9225=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index a2531896a8b6..360cec436ff7 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -930,6 +930,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m + CONFIG_DRM_PANEL_SIMPLE=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m ++CONFIG_DRM_DISPLAY_CONNECTOR=m ++CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_V3D=m + CONFIG_DRM_VC4=m + CONFIG_DRM_VC4_HDMI_CEC=y +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index aa89eb5704cb..f0a791a03abd 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -855,6 +855,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y + CONFIG_DRM_UDL=m + CONFIG_DRM_PANEL_SIMPLE=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m ++CONFIG_DRM_DISPLAY_CONNECTOR=m ++CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_VC4=m + CONFIG_DRM_VC4_HDMI_CEC=y + CONFIG_FB=y +-- +2.18.4 + + +From e375a84f2c73e2bd5c4236c8277db845f8ed175d Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 4 Feb 2021 14:41:10 +0000 +Subject: [PATCH 527/580] 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 +from the display. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 10 ++ + .../dts/overlays/vc4-kms-vga666-overlay.dts | 100 ++++++++++++++++++ + 3 files changed, 111 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-vga666-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 1df451bb418d..52f62bdeb993 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -211,6 +211,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + vc4-kms-kippah-7inch.dtbo \ + vc4-kms-v3d.dtbo \ + vc4-kms-v3d-pi4.dtbo \ ++ vc4-kms-vga666.dtbo \ + vga666.dtbo \ + w1-gpio.dtbo \ + w1-gpio-pullup.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 6a0b874730d8..090e7c107986 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -3120,10 +3120,20 @@ Params: cma-512 CMA is 512MB + outputs) + + ++Name: vc4-kms-vga666 ++Info: Enable the VGA666 (resistor ladder ADC) for the vc4-kms-v3d driver. ++ Requires vc4-kms-v3d to be loaded. ++Load: dtoverlay=vc4-kms-vga666, ++Params: ddc Enables GPIOs 0&1 as the I2C to read the EDID ++ from the display. NB These are NOT 5V tolerant ++ GPIOs, therefore level shifters are required. ++ ++ + Name: vga666 + Info: Overlay for the Fen Logic VGA666 board + This uses GPIOs 2-21 (so no I2C), and activates the output 2-3 seconds + after the kernel has started. ++ NOT for use with vc4-kms-v3d. + Load: dtoverlay=vga666 + Params: + +diff --git a/arch/arm/boot/dts/overlays/vc4-kms-vga666-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-vga666-overlay.dts +new file mode 100644 +index 000000000000..6e787099e861 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/vc4-kms-vga666-overlay.dts +@@ -0,0 +1,100 @@ ++/* ++ * vc4-kms-vga666-overlay.dts ++ * Configures a FenLogic or similar VGA666 DPI adapter when using the ++ * vc4-kms-v3d driver. ++ * If a suitable I2C level shifter is connected to GPIOs 0&1 and the VGA ++ * ID1/SDA (pin 12) and ID3/SCL (pin 15) lines, then there is the option to ++ * enable reading the EDID from the display. ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++#include ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target-path = "/"; ++ __overlay__ { ++ vga_connector: vga_connector { ++ compatible = "vga-connector"; ++ label = "vga"; ++ ++ port { ++ vga_con_in: endpoint { ++ remote-endpoint = <&vga666_out>; ++ }; ++ }; ++ }; ++ ++ vga_dac { ++ compatible = "dumb-vga-dac"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ ++ vga666_in: endpoint { ++ remote-endpoint = <&dpi_out>; ++ }; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ ++ vga666_out: endpoint { ++ remote-endpoint = <&vga_con_in>; ++ }; ++ }; ++ }; ++ }; ++ ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&dpi>; ++ __overlay__ { ++ status = "okay"; ++ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&dpi_18bit_gpio2>; ++ ++ port { ++ dpi_out: endpoint@0 { ++ remote-endpoint = <&vga666_in>; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&vga_connector>; ++ __dormant__ { ++ ddc-i2c-bus = <&i2c_vc>; ++ }; ++ }; ++ ++ fragment@3 { ++ target = <&i2c0if>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@4 { ++ target = <&i2c0mux>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ ddc = <0>,"=2", <0>,"=3", <0>,"=4"; ++ }; ++}; +-- +2.18.4 + + +From 512895a3543204c009c9f3fb3ccf43e0e2692236 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 12 Feb 2021 17:31:37 +0000 +Subject: [PATCH 528/580] 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 +been meaningless. +In theory we should be able to pass the desired format for the +adjacent bridge chip through, but framework seems to be missing +for that. + +As the main device to use DPI is the VGA666 or Adafruit Kippah, +both of which use RGB666, change the default to being RGB666 instead +of RGB888. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_dpi.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c +index a90f2545baee..db63f4e11b17 100644 +--- a/drivers/gpu/drm/vc4/vc4_dpi.c ++++ b/drivers/gpu/drm/vc4/vc4_dpi.c +@@ -178,8 +178,8 @@ static void vc4_dpi_encoder_enable(struct drm_encoder *encoder) + break; + } + } else { +- /* Default to 24bit if no connector found. */ +- dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB, DPI_FORMAT); ++ /* Default to 18bit if no connector found. */ ++ dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1, DPI_FORMAT); + } + + if (mode->flags & DRM_MODE_FLAG_NHSYNC) +-- +2.18.4 + + +From a89ed4a5894476508c4059436eed082c2fa376c7 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Sat, 17 Oct 2020 15:42:54 +0100 +Subject: [PATCH 529/580] 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 +after a delay, and the current value of that delay. + +Signed-off-by: Phil Elwell +--- + drivers/gpio/gpio-fsm.c | 112 ++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 108 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpio/gpio-fsm.c b/drivers/gpio/gpio-fsm.c +index 708f258fda35..d71a81d9b669 100644 +--- a/drivers/gpio/gpio-fsm.c ++++ b/drivers/gpio/gpio-fsm.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + #include + +@@ -120,6 +121,7 @@ struct gpio_fsm { + struct fsm_state *current_state; + struct fsm_state *next_state; + struct fsm_state *delay_target_state; ++ unsigned int delay_jiffies; + int delay_ms; + unsigned int debug; + bool shutting_down; +@@ -364,9 +366,10 @@ static void gpio_fsm_enter_state(struct gpio_fsm *gf, + jiffies + msecs_to_jiffies(state->shutdown_ms); + + if (gf->shutting_down) { ++ gf->delay_jiffies = gf->shutdown_jiffies; + gf->delay_target_state = state->shutdown_target; + gf->delay_ms = state->shutdown_ms; +- mod_timer(&gf->timer, gf->shutdown_jiffies); ++ mod_timer(&gf->timer, gf->delay_jiffies); + } + } + +@@ -421,9 +424,10 @@ static void gpio_fsm_enter_state(struct gpio_fsm *gf, + // 6. Schedule a timer callback if delay_target + if (state->delay_target) { + gf->delay_target_state = state->delay_target; ++ gf->delay_jiffies = jiffies + ++ msecs_to_jiffies(state->delay_ms); + gf->delay_ms = state->delay_ms; +- mod_timer(&gf->timer, +- jiffies + msecs_to_jiffies(state->delay_ms)); ++ mod_timer(&gf->timer, gf->delay_jiffies); + } + } + +@@ -847,10 +851,81 @@ static int resolve_sym_to_state(struct gpio_fsm *gf, struct fsm_state **pstate) + return 0; + } + ++ ++/* ++ * /sys/class/gpio-fsm// ++ * /state ... the current state ++ */ ++ ++static ssize_t state_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ const struct gpio_fsm *gf = dev_get_drvdata(dev); ++ ++ return sprintf(buf, "%s\n", gf->current_state->name); ++} ++static DEVICE_ATTR_RO(state); ++ ++static ssize_t delay_state_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ const struct gpio_fsm *gf = dev_get_drvdata(dev); ++ ++ return sprintf(buf, "%s\n", ++ gf->delay_target_state ? gf->delay_target_state->name : ++ "-"); ++} ++ ++static DEVICE_ATTR_RO(delay_state); ++ ++static ssize_t delay_ms_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ const struct gpio_fsm *gf = dev_get_drvdata(dev); ++ int jiffies_left; ++ ++ jiffies_left = gf->delay_jiffies - jiffies; ++ return sprintf(buf, ++ gf->delay_target_state ? "%u\n" : "-\n", ++ jiffies_to_msecs(jiffies_left)); ++} ++static DEVICE_ATTR_RO(delay_ms); ++ ++static struct attribute *gpio_fsm_attrs[] = { ++ &dev_attr_state.attr, ++ &dev_attr_delay_state.attr, ++ &dev_attr_delay_ms.attr, ++ NULL, ++}; ++ ++static const struct attribute_group gpio_fsm_group = { ++ .attrs = gpio_fsm_attrs, ++ //.is_visible = gpio_is_visible, ++}; ++ ++static const struct attribute_group *gpio_fsm_groups[] = { ++ &gpio_fsm_group, ++ NULL ++}; ++ ++static struct attribute *gpio_fsm_class_attrs[] = { ++ // There are no top-level attributes ++ NULL, ++}; ++ATTRIBUTE_GROUPS(gpio_fsm_class); ++ ++static struct class gpio_fsm_class = { ++ .name = MODULE_NAME, ++ .owner = THIS_MODULE, ++ ++ .class_groups = gpio_fsm_class_groups, ++}; ++ + static int gpio_fsm_probe(struct platform_device *pdev) + { + struct input_gpio_state *inp_state; + struct device *dev = &pdev->dev; ++ struct device *sysfs_dev; + struct device_node *np = dev->of_node; + struct device_node *cp; + struct gpio_fsm *gf; +@@ -1029,6 +1104,13 @@ static int gpio_fsm_probe(struct platform_device *pdev) + + platform_set_drvdata(pdev, gf); + ++ sysfs_dev = device_create_with_groups(&gpio_fsm_class, dev, ++ MKDEV(0, 0), gf, ++ gpio_fsm_groups, ++ "%s", np->name); ++ if (IS_ERR(sysfs_dev)) ++ dev_err(gf->dev, "Error creating sysfs entry\n"); ++ + if (gf->debug) + dev_info(gf->dev, "Start -> %s\n", gf->start_state->name); + +@@ -1097,7 +1179,29 @@ static struct platform_driver gpio_fsm_driver = { + .remove = gpio_fsm_remove, + .shutdown = gpio_fsm_shutdown, + }; +-module_platform_driver(gpio_fsm_driver); ++ ++static int gpio_fsm_init(void) ++{ ++ int ret; ++ ++ ret = class_register(&gpio_fsm_class); ++ if (ret) ++ return ret; ++ ++ ret = platform_driver_register(&gpio_fsm_driver); ++ if (ret) ++ class_unregister(&gpio_fsm_class); ++ ++ return ret; ++} ++module_init(gpio_fsm_init); ++ ++static void gpio_fsm_exit(void) ++{ ++ platform_driver_unregister(&gpio_fsm_driver); ++ class_unregister(&gpio_fsm_class); ++} ++module_exit(gpio_fsm_exit); + + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Phil Elwell "); +-- +2.18.4 + + +From b46a9eb8e630d23d6e9a7ed513164479dbf04501 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 17 Feb 2021 09:21:30 +0000 +Subject: [PATCH 530/580] 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 +inverted. + +Signed-off-by: Phil Elwell +--- + drivers/gpio/gpio-fsm.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpio/gpio-fsm.c b/drivers/gpio/gpio-fsm.c +index d71a81d9b669..306f5123546c 100644 +--- a/drivers/gpio/gpio-fsm.c ++++ b/drivers/gpio/gpio-fsm.c +@@ -1142,7 +1142,8 @@ static int gpio_fsm_remove(struct platform_device *pdev) + gf->current_state->shutdown_target == + gf->current_state, + msecs_to_jiffies(gf->shutdown_timeout_ms)); +- if (gf->current_state->shutdown_target == gf->current_state) ++ /* On failure to reach a shutdown state, jump to one */ ++ if (gf->current_state->shutdown_target != gf->current_state) + gpio_fsm_enter_state(gf, gf->shutdown_state); + } + cancel_work_sync(&gf->work); +-- +2.18.4 + + +From bdbe5af37f9644042820b78db5d176ace96d9ae4 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 17 Feb 2021 09:29:26 +0000 +Subject: [PATCH 531/580] 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 +skipped. Ensure that all LEDs are turned off regardless by explicitly +doing so in the shutdown state, as an example of good practices. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/fsm-demo-overlay.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts b/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts +index 9b5da179914f..e9944f5cd258 100644 +--- a/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts ++++ b/arch/arm/boot/dts/overlays/fsm-demo-overlay.dts +@@ -92,7 +92,7 @@ + + shutdown4 { + shutdown_state; +- set = ; ++ set = , , ; + }; + }; + }; +-- +2.18.4 + + +From 2733cd89984a79317ac9e558b125937f9f458320 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 17 Feb 2021 09:52:27 +0000 +Subject: [PATCH 532/580] configs: Add various missing IPV6 modules + +See: https://github.com/raspberrypi/linux/issues/4144 + +(from https://github.com/RPi-Distro/repo/issues/229) + +Signed-off-by: Phil Elwell +--- + arch/arm/configs/bcm2709_defconfig | 10 ++++++++-- + arch/arm/configs/bcm2711_defconfig | 10 ++++++++-- + arch/arm/configs/bcmrpi_defconfig | 10 ++++++++-- + arch/arm64/configs/bcm2711_defconfig | 10 ++++++++-- + arch/arm64/configs/bcmrpi3_defconfig | 10 ++++++++-- + 5 files changed, 40 insertions(+), 10 deletions(-) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 2b1cabdf07d8..ac3090040c48 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -96,8 +96,8 @@ CONFIG_IP_MROUTE=y + CONFIG_IP_MROUTE_MULTIPLE_TABLES=y + CONFIG_IP_PIMSM_V1=y + CONFIG_IP_PIMSM_V2=y +-CONFIG_SYN_COOKIES=y + CONFIG_NET_IPVTI=m ++CONFIG_NET_FOU=m + CONFIG_INET_AH=m + CONFIG_INET_ESP=m + CONFIG_INET_IPCOMP=m +@@ -109,9 +109,12 @@ CONFIG_IPV6_ROUTER_PREF=y + CONFIG_IPV6_ROUTE_INFO=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m ++CONFIG_INET6_ESP_OFFLOAD=m + CONFIG_INET6_IPCOMP=m ++CONFIG_IPV6_ILA=m ++CONFIG_IPV6_VTI=m + CONFIG_IPV6_SIT_6RD=y +-CONFIG_IPV6_TUNNEL=m ++CONFIG_IPV6_GRE=m + CONFIG_IPV6_MULTIPLE_TABLES=y + CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y +@@ -287,11 +290,14 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m + CONFIG_IP6_NF_MATCH_MH=m + CONFIG_IP6_NF_MATCH_RPFILTER=m + CONFIG_IP6_NF_MATCH_RT=m ++CONFIG_IP6_NF_MATCH_SRH=m + CONFIG_IP6_NF_TARGET_HL=m + CONFIG_IP6_NF_FILTER=m + CONFIG_IP6_NF_TARGET_REJECT=m ++CONFIG_IP6_NF_TARGET_SYNPROXY=m + CONFIG_IP6_NF_MANGLE=m + CONFIG_IP6_NF_RAW=m ++CONFIG_IP6_NF_SECURITY=m + CONFIG_IP6_NF_NAT=m + CONFIG_IP6_NF_TARGET_MASQUERADE=m + CONFIG_IP6_NF_TARGET_NPT=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 256b79d50bef..b0e58d871a60 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -97,8 +97,8 @@ CONFIG_IP_MROUTE=y + CONFIG_IP_MROUTE_MULTIPLE_TABLES=y + CONFIG_IP_PIMSM_V1=y + CONFIG_IP_PIMSM_V2=y +-CONFIG_SYN_COOKIES=y + CONFIG_NET_IPVTI=m ++CONFIG_NET_FOU=m + CONFIG_INET_AH=m + CONFIG_INET_ESP=m + CONFIG_INET_IPCOMP=m +@@ -110,9 +110,12 @@ CONFIG_IPV6_ROUTER_PREF=y + CONFIG_IPV6_ROUTE_INFO=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m ++CONFIG_INET6_ESP_OFFLOAD=m + CONFIG_INET6_IPCOMP=m ++CONFIG_IPV6_ILA=m ++CONFIG_IPV6_VTI=m + CONFIG_IPV6_SIT_6RD=y +-CONFIG_IPV6_TUNNEL=m ++CONFIG_IPV6_GRE=m + CONFIG_IPV6_MULTIPLE_TABLES=y + CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y +@@ -288,11 +291,14 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m + CONFIG_IP6_NF_MATCH_MH=m + CONFIG_IP6_NF_MATCH_RPFILTER=m + CONFIG_IP6_NF_MATCH_RT=m ++CONFIG_IP6_NF_MATCH_SRH=m + CONFIG_IP6_NF_TARGET_HL=m + CONFIG_IP6_NF_FILTER=m + CONFIG_IP6_NF_TARGET_REJECT=m ++CONFIG_IP6_NF_TARGET_SYNPROXY=m + CONFIG_IP6_NF_MANGLE=m + CONFIG_IP6_NF_RAW=m ++CONFIG_IP6_NF_SECURITY=m + CONFIG_IP6_NF_NAT=m + CONFIG_IP6_NF_TARGET_MASQUERADE=m + CONFIG_IP6_NF_TARGET_NPT=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index bdcd84425173..6d19d0ff49db 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -90,8 +90,8 @@ CONFIG_IP_MROUTE=y + CONFIG_IP_MROUTE_MULTIPLE_TABLES=y + CONFIG_IP_PIMSM_V1=y + CONFIG_IP_PIMSM_V2=y +-CONFIG_SYN_COOKIES=y + CONFIG_NET_IPVTI=m ++CONFIG_NET_FOU=m + CONFIG_INET_AH=m + CONFIG_INET_ESP=m + CONFIG_INET_IPCOMP=m +@@ -103,9 +103,12 @@ CONFIG_IPV6_ROUTER_PREF=y + CONFIG_IPV6_ROUTE_INFO=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m ++CONFIG_INET6_ESP_OFFLOAD=m + CONFIG_INET6_IPCOMP=m ++CONFIG_IPV6_ILA=m ++CONFIG_IPV6_VTI=m + CONFIG_IPV6_SIT_6RD=y +-CONFIG_IPV6_TUNNEL=m ++CONFIG_IPV6_GRE=m + CONFIG_IPV6_MULTIPLE_TABLES=y + CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y +@@ -281,11 +284,14 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m + CONFIG_IP6_NF_MATCH_MH=m + CONFIG_IP6_NF_MATCH_RPFILTER=m + CONFIG_IP6_NF_MATCH_RT=m ++CONFIG_IP6_NF_MATCH_SRH=m + CONFIG_IP6_NF_TARGET_HL=m + CONFIG_IP6_NF_FILTER=m + CONFIG_IP6_NF_TARGET_REJECT=m ++CONFIG_IP6_NF_TARGET_SYNPROXY=m + CONFIG_IP6_NF_MANGLE=m + CONFIG_IP6_NF_RAW=m ++CONFIG_IP6_NF_SECURITY=m + CONFIG_IP6_NF_NAT=m + CONFIG_IP6_NF_TARGET_MASQUERADE=m + CONFIG_IP6_NF_TARGET_NPT=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 360cec436ff7..b5dce7480cff 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -94,8 +94,8 @@ CONFIG_IP_MROUTE=y + CONFIG_IP_MROUTE_MULTIPLE_TABLES=y + CONFIG_IP_PIMSM_V1=y + CONFIG_IP_PIMSM_V2=y +-CONFIG_SYN_COOKIES=y + CONFIG_NET_IPVTI=m ++CONFIG_NET_FOU=m + CONFIG_INET_AH=m + CONFIG_INET_ESP=m + CONFIG_INET_IPCOMP=m +@@ -107,9 +107,12 @@ CONFIG_IPV6_ROUTER_PREF=y + CONFIG_IPV6_ROUTE_INFO=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m ++CONFIG_INET6_ESP_OFFLOAD=m + CONFIG_INET6_IPCOMP=m ++CONFIG_IPV6_ILA=m ++CONFIG_IPV6_VTI=m + CONFIG_IPV6_SIT_6RD=y +-CONFIG_IPV6_TUNNEL=m ++CONFIG_IPV6_GRE=m + CONFIG_IPV6_MULTIPLE_TABLES=y + CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y +@@ -285,11 +288,14 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m + CONFIG_IP6_NF_MATCH_MH=m + CONFIG_IP6_NF_MATCH_RPFILTER=m + CONFIG_IP6_NF_MATCH_RT=m ++CONFIG_IP6_NF_MATCH_SRH=m + CONFIG_IP6_NF_TARGET_HL=m + CONFIG_IP6_NF_FILTER=m + CONFIG_IP6_NF_TARGET_REJECT=m ++CONFIG_IP6_NF_TARGET_SYNPROXY=m + CONFIG_IP6_NF_MANGLE=m + CONFIG_IP6_NF_RAW=m ++CONFIG_IP6_NF_SECURITY=m + CONFIG_IP6_NF_NAT=m + CONFIG_IP6_NF_TARGET_MASQUERADE=m + CONFIG_IP6_NF_TARGET_NPT=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index f0a791a03abd..60bda75b6965 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -96,7 +96,7 @@ CONFIG_IP_MROUTE=y + CONFIG_IP_MROUTE_MULTIPLE_TABLES=y + CONFIG_IP_PIMSM_V1=y + CONFIG_IP_PIMSM_V2=y +-CONFIG_SYN_COOKIES=y ++CONFIG_NET_FOU=m + CONFIG_INET_AH=m + CONFIG_INET_ESP=m + CONFIG_INET_IPCOMP=m +@@ -107,8 +107,11 @@ CONFIG_IPV6=m + CONFIG_IPV6_ROUTER_PREF=y + CONFIG_INET6_AH=m + CONFIG_INET6_ESP=m ++CONFIG_INET6_ESP_OFFLOAD=m + CONFIG_INET6_IPCOMP=m +-CONFIG_IPV6_TUNNEL=m ++CONFIG_IPV6_ILA=m ++CONFIG_IPV6_VTI=m ++CONFIG_IPV6_GRE=m + CONFIG_IPV6_MULTIPLE_TABLES=y + CONFIG_IPV6_SUBTREES=y + CONFIG_IPV6_MROUTE=y +@@ -284,11 +287,14 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m + CONFIG_IP6_NF_MATCH_MH=m + CONFIG_IP6_NF_MATCH_RPFILTER=m + CONFIG_IP6_NF_MATCH_RT=m ++CONFIG_IP6_NF_MATCH_SRH=m + CONFIG_IP6_NF_TARGET_HL=m + CONFIG_IP6_NF_FILTER=m + CONFIG_IP6_NF_TARGET_REJECT=m ++CONFIG_IP6_NF_TARGET_SYNPROXY=m + CONFIG_IP6_NF_MANGLE=m + CONFIG_IP6_NF_RAW=m ++CONFIG_IP6_NF_SECURITY=m + CONFIG_IP6_NF_NAT=m + CONFIG_IP6_NF_TARGET_MASQUERADE=m + CONFIG_IP6_NF_TARGET_NPT=m +-- +2.18.4 + + +From 18c6b9573c3025dcf03e6db90523c9703e0acc23 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Wed, 10 Feb 2021 10:18:53 +0000 +Subject: [PATCH 533/580] media: i2c: imx477: Remove auto frame length + adjusting + +The V4L2_CID_EXPOSURE_AUTO_PRIORITY was used to let the sensor control +frame length (effectively framerate) based on the requested exposure +time requested. Remove this feature as it is never used, and goes +against how V4L2 likes to handle exposure and vblank controls. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx477.c | 83 +++----------------------------------- + 1 file changed, 6 insertions(+), 77 deletions(-) + +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index f68e7718b09c..30055244166b 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -1082,8 +1082,6 @@ struct imx477 { + struct v4l2_ctrl *hflip; + struct v4l2_ctrl *vblank; + struct v4l2_ctrl *hblank; +- /* This ctrl allows automatic variable framerate */ +- struct v4l2_ctrl *exposure_auto; + + /* Current mode */ + const struct imx477_mode *mode; +@@ -1280,66 +1278,14 @@ static int imx477_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) + return 0; + } + +-static int imx477_set_exposure(struct imx477 *imx477, unsigned int val) +-{ +- int ret; +- +- ret = imx477_write_reg(imx477, IMX477_REG_EXPOSURE, +- IMX477_REG_VALUE_16BIT, val); +- +- /* Setup the frame length in the case of auto framerate mode. */ +- if (imx477->exposure_auto->val) { +- unsigned int frame_length, frame_length_max, frame_length_min; +- +- frame_length_min = imx477->vblank->minimum + +- imx477->mode->height; +- frame_length_max = imx477->vblank->maximum + +- imx477->mode->height; +- frame_length = max(frame_length_min, +- val + IMX477_EXPOSURE_OFFSET); +- frame_length = min(frame_length_max, frame_length); +- ret += imx477_write_reg(imx477, IMX477_REG_FRAME_LENGTH, +- IMX477_REG_VALUE_16BIT, frame_length); +- } +- +- return ret; +-} +- + static void imx477_adjust_exposure_range(struct imx477 *imx477, + struct v4l2_ctrl *ctrl) + { + int exposure_max, exposure_def; + +- if (ctrl->id == V4L2_CID_VBLANK || !ctrl->val) { +- /* +- * Either VBLANK has been changed or auto framerate +- * adjusting has been disabled. Honour the VBLANK limits +- * when setting exposure. +- */ +- exposure_max = imx477->mode->height + imx477->vblank->val - +- IMX477_EXPOSURE_OFFSET; +- +- if (ctrl->id == V4L2_CID_EXPOSURE_AUTO_PRIORITY) { +- /* +- * Allow VBLANK adjustments since the driver is not +- * handling frame length control automatically. +- */ +- __v4l2_ctrl_grab(imx477->vblank, false); +- } +- } else { +- /* +- * Auto framerate adjusting has been enabled. VBLANK +- * ctrl has been disabled and exposure can ramp up +- * to the maximum allowable value. +- */ +- exposure_max = IMX477_EXPOSURE_MAX; +- /* +- * Do not allow VBLANK adjustments if the driver is +- * handling it frame length control automatically. +- */ +- __v4l2_ctrl_grab(imx477->vblank, true); +- } +- ++ /* Honour the VBLANK limits when setting exposure. */ ++ exposure_max = imx477->mode->height + imx477->vblank->val - ++ IMX477_EXPOSURE_OFFSET; + exposure_def = min(exposure_max, imx477->exposure->val); + __v4l2_ctrl_modify_range(imx477->exposure, imx477->exposure->minimum, + exposure_max, imx477->exposure->step, +@@ -1353,14 +1299,8 @@ static int imx477_set_ctrl(struct v4l2_ctrl *ctrl) + struct i2c_client *client = v4l2_get_subdevdata(&imx477->sd); + int ret = 0; + +- if (ctrl->id == V4L2_CID_VBLANK || +- ctrl->id == V4L2_CID_EXPOSURE_AUTO_PRIORITY) { +- /* +- * These controls may change the limits of usable exposure, +- * so check and adjust if necessary. +- */ ++ if (ctrl->id == V4L2_CID_VBLANK) + imx477_adjust_exposure_range(imx477, ctrl); +- } + + /* + * Applying V4L2 control value only happens +@@ -1375,14 +1315,8 @@ static int imx477_set_ctrl(struct v4l2_ctrl *ctrl) + IMX477_REG_VALUE_16BIT, ctrl->val); + break; + case V4L2_CID_EXPOSURE: +- ret = imx477_set_exposure(imx477, ctrl->val); +- break; +- case V4L2_CID_EXPOSURE_AUTO_PRIORITY: +- /* +- * imx477_set_exposure() will recalculate the frame length +- * to adjust the framerate to match the exposure. +- */ +- ret = imx477_set_exposure(imx477, imx477->exposure->val); ++ ret = imx477_write_reg(imx477, IMX477_REG_EXPOSURE, ++ IMX477_REG_VALUE_16BIT, ctrl->val); + break; + case V4L2_CID_DIGITAL_GAIN: + ret = imx477_write_reg(imx477, IMX477_REG_DIGITAL_GAIN, +@@ -2005,11 +1939,6 @@ static int imx477_init_controls(struct imx477 *imx477) + IMX477_DGTL_GAIN_MIN, IMX477_DGTL_GAIN_MAX, + IMX477_DGTL_GAIN_STEP, IMX477_DGTL_GAIN_DEFAULT); + +- imx477->exposure_auto = +- v4l2_ctrl_new_std(ctrl_hdlr, &imx477_ctrl_ops, +- V4L2_CID_EXPOSURE_AUTO_PRIORITY, +- 0, 1, 1, 0); +- + imx477->hflip = v4l2_ctrl_new_std(ctrl_hdlr, &imx477_ctrl_ops, + V4L2_CID_HFLIP, 0, 1, 1, 0); + if (imx477->hflip) +-- +2.18.4 + + +From 2acf80028bb1b15fd2f8411a8235fb58cc312689 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Wed, 10 Feb 2021 10:50:32 +0000 +Subject: [PATCH 534/580] media: i2c: imx477: Add very long exposure control to + the driver + +Add support for very long exposures by using the exposure multiplier +register. Userland does not need to pass any additional controls to +enable long exposures, it simply requests a larger vblank to extend the +exposure control range appropriately. + +Currently, since hblank is fixed, a maximum of approximately 124 seconds +of exposure time can be used. In a future change, hblank could also be +controlled in userland to give over 200 seconds of exposure time. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx477.c | 47 +++++++++++++++++++++++++++++++++----- + 1 file changed, 41 insertions(+), 6 deletions(-) + +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index 30055244166b..0143e3129258 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -44,6 +44,10 @@ + #define IMX477_REG_FRAME_LENGTH 0x0340 + #define IMX477_FRAME_LENGTH_MAX 0xffdc + ++/* Long exposure multiplier */ ++#define IMX477_LONG_EXP_SHIFT_MAX 7 ++#define IMX477_LONG_EXP_SHIFT_REG 0x3100 ++ + /* Exposure control */ + #define IMX477_REG_EXPOSURE 0x0202 + #define IMX477_EXPOSURE_OFFSET 22 +@@ -1097,6 +1101,9 @@ struct imx477 { + + /* Rewrite common registers on stream on? */ + bool common_regs_written; ++ ++ /* Current long exposure factor in use. Set through V4L2_CID_VBLANK */ ++ unsigned int long_exp_shift; + }; + + static inline struct imx477 *to_imx477(struct v4l2_subdev *_sd) +@@ -1285,13 +1292,33 @@ static void imx477_adjust_exposure_range(struct imx477 *imx477, + + /* Honour the VBLANK limits when setting exposure. */ + exposure_max = imx477->mode->height + imx477->vblank->val - +- IMX477_EXPOSURE_OFFSET; ++ (IMX477_EXPOSURE_OFFSET << imx477->long_exp_shift); + exposure_def = min(exposure_max, imx477->exposure->val); + __v4l2_ctrl_modify_range(imx477->exposure, imx477->exposure->minimum, + exposure_max, imx477->exposure->step, + exposure_def); + } + ++static int imx477_set_frame_length(struct imx477 *imx477, unsigned int val) ++{ ++ int ret = 0; ++ ++ imx477->long_exp_shift = 0; ++ ++ while (val > IMX477_FRAME_LENGTH_MAX) { ++ imx477->long_exp_shift++; ++ val >>= 1; ++ } ++ ++ ret = imx477_write_reg(imx477, IMX477_REG_FRAME_LENGTH, ++ IMX477_REG_VALUE_16BIT, val); ++ if (ret) ++ return ret; ++ ++ return imx477_write_reg(imx477, IMX477_LONG_EXP_SHIFT_REG, ++ IMX477_REG_VALUE_08BIT, imx477->long_exp_shift); ++} ++ + static int imx477_set_ctrl(struct v4l2_ctrl *ctrl) + { + struct imx477 *imx477 = +@@ -1299,6 +1326,10 @@ static int imx477_set_ctrl(struct v4l2_ctrl *ctrl) + struct i2c_client *client = v4l2_get_subdevdata(&imx477->sd); + int ret = 0; + ++ /* ++ * The VBLANK control may change the limits of usable exposure, so check ++ * and adjust if necessary. ++ */ + if (ctrl->id == V4L2_CID_VBLANK) + imx477_adjust_exposure_range(imx477, ctrl); + +@@ -1316,7 +1347,8 @@ static int imx477_set_ctrl(struct v4l2_ctrl *ctrl) + break; + case V4L2_CID_EXPOSURE: + ret = imx477_write_reg(imx477, IMX477_REG_EXPOSURE, +- IMX477_REG_VALUE_16BIT, ctrl->val); ++ IMX477_REG_VALUE_16BIT, ctrl->val >> ++ imx477->long_exp_shift); + break; + case V4L2_CID_DIGITAL_GAIN: + ret = imx477_write_reg(imx477, IMX477_REG_DIGITAL_GAIN, +@@ -1350,9 +1382,8 @@ static int imx477_set_ctrl(struct v4l2_ctrl *ctrl) + imx477->vflip->val << 1); + break; + case V4L2_CID_VBLANK: +- ret = imx477_write_reg(imx477, IMX477_REG_FRAME_LENGTH, +- IMX477_REG_VALUE_16BIT, +- imx477->mode->height + ctrl->val); ++ ret = imx477_set_frame_length(imx477, ++ imx477->mode->height + ctrl->val); + break; + default: + dev_info(&client->dev, +@@ -1521,9 +1552,13 @@ static void imx477_set_framing_limits(struct imx477 *imx477) + frm_length_default = + imx477_get_frame_length(mode, &mode->timeperframe_default); + ++ /* Default to no long exposure multiplier. */ ++ imx477->long_exp_shift = 0; ++ + /* Update limits and set FPS to default */ + __v4l2_ctrl_modify_range(imx477->vblank, frm_length_min - mode->height, +- IMX477_FRAME_LENGTH_MAX - mode->height, ++ ((1 << IMX477_LONG_EXP_SHIFT_MAX) * ++ IMX477_FRAME_LENGTH_MAX) - mode->height, + 1, frm_length_default - mode->height); + + /* Setting this will adjust the exposure limits as well. */ +-- +2.18.4 + + +From 33325688c27a52ebced903cd9545dcfaff5f8733 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Wed, 17 Feb 2021 18:08:12 +0000 +Subject: [PATCH 535/580] media: i2c: imx290: Fix up exposure calcuations and + ranges + +Should now correspond exactly to the datasheet. + +Signed-off-by: David Plowman +--- + drivers/media/i2c/imx290.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c +index 33ce80686163..43e2f294a53b 100644 +--- a/drivers/media/i2c/imx290.c ++++ b/drivers/media/i2c/imx290.c +@@ -50,7 +50,7 @@ enum imx290_clk_index { + #define IMX290_HMAX_MIN_4LANE 2200 /* Min of 2200 pixels = 60fps */ + #define IMX290_HMAX_MAX 0xffff + +-#define IMX290_EXPOSURE_MIN 2 ++#define IMX290_EXPOSURE_MIN 1 + #define IMX290_EXPOSURE_STEP 1 + #define IMX290_EXPOSURE_LOW 0x3020 + #define IMX290_PGCTRL 0x308c +@@ -584,7 +584,7 @@ static int imx290_set_gain(struct imx290 *imx290, u32 value) + static int imx290_set_exposure(struct imx290 *imx290, u32 value) + { + u32 exposure = (imx290->current_mode->height + imx290->vblank->val) - +- value; ++ value - 1; + int ret; + + ret = imx290_write_buffered_reg(imx290, IMX290_EXPOSURE_LOW, 3, +@@ -855,10 +855,10 @@ static int imx290_set_fmt(struct v4l2_subdev *sd, + } + if (imx290->exposure) + __v4l2_ctrl_modify_range(imx290->exposure, +- mode->vmax - mode->height, +- mode->vmax - 4, ++ IMX290_EXPOSURE_MIN, ++ mode->vmax - 2, + IMX290_EXPOSURE_STEP, +- mode->vmax - 4); ++ mode->vmax - 2); + } + + *format = fmt->format; +@@ -1349,9 +1349,9 @@ static int imx290_probe(struct i2c_client *client) + imx290->exposure = v4l2_ctrl_new_std(&imx290->ctrls, &imx290_ctrl_ops, + V4L2_CID_EXPOSURE, + IMX290_EXPOSURE_MIN, +- mode->vmax - 4, ++ mode->vmax - 2, + IMX290_EXPOSURE_STEP, +- mode->vmax - 4); ++ mode->vmax - 2); + + imx290->hflip = v4l2_ctrl_new_std(&imx290->ctrls, &imx290_ctrl_ops, + V4L2_CID_HFLIP, 0, 1, 1, 0); +-- +2.18.4 + + +From 5f3d39118b923b7de857272da6bd635432aa5ab7 Mon Sep 17 00:00:00 2001 +From: David Plowman +Date: Thu, 18 Feb 2021 11:58:29 +0000 +Subject: [PATCH 536/580] media: i2c: imx290: Handle exposure correctly when + vblank changes + +When vblank changes we must modify the exposure range. Also, with this +sensor, the effective exposure time implicitly changes when vblank +does, so we have to reset it after every vblank update. + +Signed-off-by: David Plowman +--- + drivers/media/i2c/imx290.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c +index 43e2f294a53b..255f66985306 100644 +--- a/drivers/media/i2c/imx290.c ++++ b/drivers/media/i2c/imx290.c +@@ -618,6 +618,24 @@ static int imx290_set_vmax(struct imx290 *imx290, u32 val) + if (ret) + dev_err(imx290->dev, "Unable to write vmax\n"); + ++ /* ++ * Changing vblank changes the allowed range for exposure. ++ * We don't supply the current exposure as default here as it ++ * may lie outside the new range. We will reset it just below. ++ */ ++ __v4l2_ctrl_modify_range(imx290->exposure, ++ IMX290_EXPOSURE_MIN, ++ vmax - 2, ++ IMX290_EXPOSURE_STEP, ++ vmax - 2); ++ ++ /* ++ * Becuse of the way exposure works for this sensor, updating ++ * vblank causes the effective exposure to change, so we must ++ * set it back to the "new" correct value. ++ */ ++ imx290_set_exposure(imx290, imx290->exposure->val); ++ + return ret; + } + +-- +2.18.4 + + +From 0ed8681f026397c7eec8d1f13f11457231ef45da 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/580] DAC overlays (#4154) + +Adding overlays for PiFi DAC Zero and PiFi DAC HD. + +Signed-off-by: David Knell +--- + arch/arm/boot/dts/overlays/Makefile | 2 + + arch/arm/boot/dts/overlays/README | 12 +++++ + .../boot/dts/overlays/pifi-dac-hd-overlay.dts | 49 +++++++++++++++++++ + .../dts/overlays/pifi-dac-zero-overlay.dts | 49 +++++++++++++++++++ + 4 files changed, 112 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/pifi-dac-hd-overlay.dts + create mode 100644 arch/arm/boot/dts/overlays/pifi-dac-zero-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 52f62bdeb993..ef0a0cc3da99 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -130,6 +130,8 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + pibell.dtbo \ + pifacedigital.dtbo \ + pifi-40.dtbo \ ++ pifi-dac-hd.dtbo \ ++ pifi-dac-zero.dtbo \ + pifi-mini-210.dtbo \ + piglow.dtbo \ + piscreen.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 090e7c107986..c062102ad995 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2131,6 +2131,18 @@ Load: dtoverlay=pifi-40 + Params: + + ++Name: pifi-dac-hd ++Info: Configures the PiFi DAC HD ++Load: dtoverlay=pifi-dac-hd ++Params: ++ ++ ++Name: pifi-dac-zero ++Info: Configures the PiFi DAC Zero ++Load: dtoverlay=pifi-dac-zero ++Params: ++ ++ + Name: pifi-mini-210 + Info: Configures the PiFi Mini stereo amplifier + Load: dtoverlay=pifi-mini-210 +diff --git a/arch/arm/boot/dts/overlays/pifi-dac-hd-overlay.dts b/arch/arm/boot/dts/overlays/pifi-dac-hd-overlay.dts +new file mode 100644 +index 000000000000..67f50db7861a +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pifi-dac-hd-overlay.dts +@@ -0,0 +1,49 @@ ++// Overlay for PiFi-DAC-HD ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&i2s>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&i2c1>; ++ __overlay__ { ++ status = "okay"; ++ #address-cells = <1>; ++ #size-cells =<0>; ++ ++ pcm5142: pcm5142@4c { ++ #sound-dai-cells = <0>; ++ compatible = "ti,pcm5142"; ++ reg = <0x4c>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&sound>; ++ __overlay__ { ++ compatible = "simple-audio-card"; ++ simple-audio-card,name = "PiFi-DAC-HD"; ++ status = "okay"; ++ ++ simple-audio-card,dai-link@1 { ++ format = "i2s"; ++ cpu { ++ sound-dai = <&i2s>; ++ }; ++ codec { ++ sound-dai = <&pcm5142>; ++ }; ++ }; ++ }; ++ }; ++}; +diff --git a/arch/arm/boot/dts/overlays/pifi-dac-zero-overlay.dts b/arch/arm/boot/dts/overlays/pifi-dac-zero-overlay.dts +new file mode 100644 +index 000000000000..645ea74cb435 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pifi-dac-zero-overlay.dts +@@ -0,0 +1,49 @@ ++// Overlay for PiFi-DAC-Zero ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&sound>; ++ __overlay__ { ++ compatible = "simple-audio-card"; ++ simple-audio-card,name = "PiFi-DAC-Zero"; ++ status = "okay"; ++ ++ simple-audio-card,dai-link@1 { ++ format = "i2s"; ++ ++ cpu { ++ sound-dai = <&i2s>; ++ dai-tdm-slot-num = <2>; ++ dai-tdm-slot-width = <32>; ++ }; ++ ++ codec { ++ sound-dai = <&codec_out>; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target-path = "/"; ++ __overlay__ { ++ codec_out: pcm5102a-codec { ++ #sound-dai-cells = <0>; ++ compatible = "ti,pcm5102a"; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2s>; ++ __overlay__ { ++ #sound-dai-cells = <0>; ++ status = "okay"; ++ }; ++ }; ++}; +-- +2.18.4 + + +From f4c938378ba87613d0e21f9e1c9688133fd15ff4 Mon Sep 17 00:00:00 2001 +From: Peter Harper +Date: Mon, 22 Feb 2021 12:34:20 +0000 +Subject: [PATCH 538/580] configs: Change CONFIG_BLK_DEV_NVME=y for 2711 + +See https://github.com/raspberrypi/linux/issues/4163 +--- + arch/arm/configs/bcm2711_defconfig | 2 +- + arch/arm64/configs/bcm2711_defconfig | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index b0e58d871a60..4b5dc70da6f4 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -467,7 +467,7 @@ CONFIG_BLK_DEV_NBD=m + CONFIG_BLK_DEV_RAM=y + CONFIG_CDROM_PKTCDVD=m + CONFIG_ATA_OVER_ETH=m +-CONFIG_BLK_DEV_NVME=m ++CONFIG_BLK_DEV_NVME=y + CONFIG_EEPROM_AT24=m + CONFIG_TI_ST=m + CONFIG_SCSI=y +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index b5dce7480cff..8a643571a458 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -461,7 +461,7 @@ CONFIG_BLK_DEV_NBD=m + CONFIG_BLK_DEV_RAM=y + CONFIG_CDROM_PKTCDVD=m + CONFIG_ATA_OVER_ETH=m +-CONFIG_BLK_DEV_NVME=m ++CONFIG_BLK_DEV_NVME=y + CONFIG_EEPROM_AT24=m + CONFIG_TI_ST=m + CONFIG_SCSI=y +-- +2.18.4 + + +From a2ceb3d37abe6280f2b4541994e0caaf197bad73 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Thu, 18 Feb 2021 15:05:57 +0000 +Subject: [PATCH 539/580] media: i2c: imx477: Fix crop height for 2028x1080 + mode + +The crop height for this mode was set at 2600 lines, it should be 2160 +lines instead. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx477.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index 0143e3129258..e3d164555b09 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -955,7 +955,7 @@ static const struct imx477_mode supported_modes_12bit[] = { + .left = IMX477_PIXEL_ARRAY_LEFT, + .top = IMX477_PIXEL_ARRAY_TOP + 440, + .width = 4056, +- .height = 2600, ++ .height = 2160, + }, + .timeperframe_min = { + .numerator = 100, +-- +2.18.4 + + +From ba1dd6adef22f9772e19ed1c99cc9b9943b871cf Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Thu, 18 Feb 2021 15:23:11 +0000 +Subject: [PATCH 540/580] 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 +mode instead. This new mode has a smaller field of view, but does not +suffer from the bad IQ of the original mode. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx477.c | 97 ++++++++++++++++++++------------------ + 1 file changed, 50 insertions(+), 47 deletions(-) + +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index e3d164555b09..0c552b9d54c5 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -770,7 +770,7 @@ static const struct imx477_reg mode_2028x1080_regs[] = { + }; + + /* 4x4 binned. 120fps */ +-static const struct imx477_reg mode_1012x760_regs[] = { ++static const struct imx477_reg mode_1332x990_regs[] = { + {0x420b, 0x01}, + {0x990c, 0x00}, + {0x990d, 0x08}, +@@ -786,28 +786,31 @@ static const struct imx477_reg mode_1012x760_regs[] = { + {0x0112, 0x0a}, + {0x0113, 0x0a}, + {0x0114, 0x01}, +- {0x0342, 0x14}, +- {0x0343, 0x60}, ++ {0x0342, 0x1a}, ++ {0x0343, 0x08}, ++ {0x0340, 0x04}, ++ {0x0341, 0x1a}, + {0x0344, 0x00}, + {0x0345, 0x00}, +- {0x0346, 0x00}, +- {0x0347, 0x00}, ++ {0x0346, 0x02}, ++ {0x0347, 0x10}, + {0x0348, 0x0f}, +- {0x0349, 0xd3}, +- {0x034a, 0x0b}, +- {0x034b, 0xdf}, ++ {0x0349, 0xd7}, ++ {0x034a, 0x09}, ++ {0x034b, 0xcf}, + {0x00e3, 0x00}, + {0x00e4, 0x00}, + {0x00fc, 0x0a}, + {0x00fd, 0x0a}, + {0x00fe, 0x0a}, + {0x00ff, 0x0a}, ++ {0xe013, 0x00}, + {0x0220, 0x00}, + {0x0221, 0x11}, + {0x0381, 0x01}, + {0x0383, 0x01}, + {0x0385, 0x01}, +- {0x0387, 0x03}, ++ {0x0387, 0x01}, + {0x0900, 0x01}, + {0x0901, 0x22}, + {0x0902, 0x02}, +@@ -831,29 +834,29 @@ static const struct imx477_reg mode_1012x760_regs[] = { + {0x936d, 0x5f}, + {0x9304, 0x03}, + {0x9305, 0x80}, +- {0x9e9a, 0x3f}, +- {0x9e9b, 0x3f}, +- {0x9e9c, 0x3f}, +- {0x9e9d, 0x27}, +- {0x9e9e, 0x27}, +- {0x9e9f, 0x27}, ++ {0x9e9a, 0x2f}, ++ {0x9e9b, 0x2f}, ++ {0x9e9c, 0x2f}, ++ {0x9e9d, 0x00}, ++ {0x9e9e, 0x00}, ++ {0x9e9f, 0x00}, + {0xa2a9, 0x27}, + {0xa2b7, 0x03}, +- {0x0401, 0x01}, ++ {0x0401, 0x00}, + {0x0404, 0x00}, +- {0x0405, 0x20}, +- {0x0408, 0x00}, +- {0x0409, 0x00}, ++ {0x0405, 0x10}, ++ {0x0408, 0x01}, ++ {0x0409, 0x5c}, + {0x040a, 0x00}, + {0x040b, 0x00}, +- {0x040c, 0x07}, +- {0x040d, 0xea}, +- {0x040e, 0x02}, +- {0x040f, 0xf8}, +- {0x034c, 0x03}, +- {0x034d, 0xf4}, +- {0x034e, 0x02}, +- {0x034f, 0xf8}, ++ {0x040c, 0x05}, ++ {0x040d, 0x34}, ++ {0x040e, 0x03}, ++ {0x040f, 0xde}, ++ {0x034c, 0x05}, ++ {0x034d, 0x34}, ++ {0x034e, 0x03}, ++ {0x034f, 0xde}, + {0x0301, 0x05}, + {0x0303, 0x02}, + {0x0305, 0x02}, +@@ -870,21 +873,21 @@ static const struct imx477_reg mode_1012x760_regs[] = { + {0x0822, 0x00}, + {0x0823, 0x00}, + {0x080a, 0x00}, +- {0x080b, 0x6f}, ++ {0x080b, 0x7f}, + {0x080c, 0x00}, +- {0x080d, 0x3f}, ++ {0x080d, 0x4f}, + {0x080e, 0x00}, +- {0x080f, 0xff}, ++ {0x080f, 0x77}, + {0x0810, 0x00}, +- {0x0811, 0x4f}, ++ {0x0811, 0x5f}, + {0x0812, 0x00}, +- {0x0813, 0x47}, ++ {0x0813, 0x57}, + {0x0814, 0x00}, +- {0x0815, 0x37}, +- {0x0816, 0x00}, +- {0x0817, 0xe7}, ++ {0x0815, 0x4f}, ++ {0x0816, 0x01}, ++ {0x0817, 0x27}, + {0x0818, 0x00}, +- {0x0819, 0x2f}, ++ {0x0819, 0x3f}, + {0xe04c, 0x00}, + {0xe04d, 0x5f}, + {0xe04e, 0x00}, +@@ -893,7 +896,7 @@ static const struct imx477_reg mode_1012x760_regs[] = { + {0x3e37, 0x00}, + {0x3f50, 0x00}, + {0x3f56, 0x00}, +- {0x3f57, 0x96}, ++ {0x3f57, 0xbf}, + }; + + /* Mode configs */ +@@ -974,9 +977,9 @@ static const struct imx477_mode supported_modes_12bit[] = { + + static const struct imx477_mode supported_modes_10bit[] = { + { +- /* 720P 120fps. 4x4 binned */ +- .width = 1012, +- .height = 760, ++ /* 120fps. 2x2 binned and cropped */ ++ .width = 1332, ++ .height = 990, + .line_length_pix = 0x1460, + .crop = { + /* +@@ -987,10 +990,10 @@ static const struct imx477_mode supported_modes_10bit[] = { + * rectangle once the driver is expanded to represent + * its processing blocks with multiple subdevs. + */ +- .left = IMX477_PIXEL_ARRAY_LEFT + 4, +- .top = IMX477_PIXEL_ARRAY_TOP, +- .width = 4052, +- .height = 3040, ++ .left = IMX477_PIXEL_ARRAY_LEFT + 696, ++ .top = IMX477_PIXEL_ARRAY_TOP + 528, ++ .width = 2664, ++ .height = 1980, + }, + .timeperframe_min = { + .numerator = 100, +@@ -998,11 +1001,11 @@ static const struct imx477_mode supported_modes_10bit[] = { + }, + .timeperframe_default = { + .numerator = 100, +- .denominator = 60000 ++ .denominator = 12000 + }, + .reg_list = { +- .num_of_regs = ARRAY_SIZE(mode_1012x760_regs), +- .regs = mode_1012x760_regs, ++ .num_of_regs = ARRAY_SIZE(mode_1332x990_regs), ++ .regs = mode_1332x990_regs, + } + } + }; +-- +2.18.4 + + +From 7247b58520a0caa1259d4cbcae321fb8a8e623cd Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Fri, 19 Feb 2021 10:30:49 +0000 +Subject: [PATCH 541/580] 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 +replace the struct with this single field. + +Save the format code in imx477_set_pad_format() when setting up a new +mode so that imx477_get_pad_format() performs the right lookup. +Otherwise, this caused a bug where the mode lookup occurred on the +12-bit table rather than the 10-bit table. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx477.c | 19 ++++--------------- + 1 file changed, 4 insertions(+), 15 deletions(-) + +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index 0c552b9d54c5..f43c86407d97 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -1073,7 +1073,7 @@ struct imx477 { + struct v4l2_subdev sd; + struct media_pad pad[NUM_PADS]; + +- struct v4l2_mbus_framefmt fmt; ++ unsigned int fmt_code; + + struct clk *xclk; + u32 xclk_freq; +@@ -1235,21 +1235,9 @@ static u32 imx477_get_format_code(struct imx477 *imx477, u32 code) + + static void imx477_set_default_format(struct imx477 *imx477) + { +- struct v4l2_mbus_framefmt *fmt = &imx477->fmt; +- + /* Set default mode to max resolution */ + imx477->mode = &supported_modes_12bit[0]; +- +- fmt->code = MEDIA_BUS_FMT_SRGGB12_1X12; +- fmt->colorspace = V4L2_COLORSPACE_SRGB; +- fmt->ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(fmt->colorspace); +- fmt->quantization = V4L2_MAP_QUANTIZATION_DEFAULT(true, +- fmt->colorspace, +- fmt->ycbcr_enc); +- fmt->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(fmt->colorspace); +- fmt->width = imx477->mode->width; +- fmt->height = imx477->mode->height; +- fmt->field = V4L2_FIELD_NONE; ++ imx477->fmt_code = MEDIA_BUS_FMT_SRGGB12_1X12; + } + + static int imx477_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) +@@ -1520,7 +1508,7 @@ static int imx477_get_pad_format(struct v4l2_subdev *sd, + imx477_update_image_pad_format(imx477, imx477->mode, + fmt); + fmt->format.code = +- imx477_get_format_code(imx477, imx477->fmt.code); ++ imx477_get_format_code(imx477, imx477->fmt_code); + } else { + imx477_update_metadata_pad_format(fmt); + } +@@ -1611,6 +1599,7 @@ static int imx477_set_pad_format(struct v4l2_subdev *sd, + *framefmt = fmt->format; + } else { + imx477->mode = mode; ++ imx477->fmt_code = fmt->format.code; + imx477_set_framing_limits(imx477); + } + } else { +-- +2.18.4 + + +From 4a78d3e30b8fc06412d56019065cf38ca5bce78e Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Fri, 19 Feb 2021 11:06:40 +0000 +Subject: [PATCH 542/580] 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. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx477.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/drivers/media/i2c/imx477.c b/drivers/media/i2c/imx477.c +index f43c86407d97..34bfd22cadc6 100644 +--- a/drivers/media/i2c/imx477.c ++++ b/drivers/media/i2c/imx477.c +@@ -1276,8 +1276,7 @@ static int imx477_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) + return 0; + } + +-static void imx477_adjust_exposure_range(struct imx477 *imx477, +- struct v4l2_ctrl *ctrl) ++static void imx477_adjust_exposure_range(struct imx477 *imx477) + { + int exposure_max, exposure_def; + +@@ -1322,7 +1321,7 @@ static int imx477_set_ctrl(struct v4l2_ctrl *ctrl) + * and adjust if necessary. + */ + if (ctrl->id == V4L2_CID_VBLANK) +- imx477_adjust_exposure_range(imx477, ctrl); ++ imx477_adjust_exposure_range(imx477); + + /* + * Applying V4L2 control value only happens +-- +2.18.4 + + +From 72602bbd7e5427938eb76e56b3181f31628c30fd Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 26 Feb 2021 14:19:00 +0000 +Subject: [PATCH 543/580] overlays: i2c-rtc: Add the Dallas DS1340 + +See: https://github.com/raspberrypi/linux/issues/4180 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/README | 2 ++ + arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts | 16 ++++++++++++++++ + 2 files changed, 18 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index c062102ad995..97adda31fbe2 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1311,6 +1311,8 @@ Params: abx80x Select one of the ABx80x family: + + ds1339 Select the DS1339 device + ++ ds1340 Select the DS1340 device ++ + ds3231 Select the DS3231 device + + m41t62 Select the M41T62 device +diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +index 759f532d5be1..408b71ec97b5 100644 +--- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +@@ -231,6 +231,20 @@ + }; + }; + ++ fragment@17 { ++ target = <&i2cbus>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ ds1340: ds1340@68 { ++ compatible = "dallas,ds1340"; ++ trickle-resistor-ohms = <0>; ++ reg = <0x68>; ++ }; ++ }; ++ }; ++ + frag100: fragment@100 { + target = <&i2c_arm>; + i2cbus: __overlay__ { +@@ -242,6 +256,7 @@ + abx80x = <0>,"+0"; + ds1307 = <0>,"+1"; + ds1339 = <0>,"+2"; ++ ds1340 = <0>,"+17"; + ds3231 = <0>,"+3"; + mcp7940x = <0>,"+4"; + mcp7941x = <0>,"+5"; +@@ -273,6 +288,7 @@ + trickle-diode-type = <&abx80x>,"abracon,tc-diode", + <&rv1805>,"abracon,tc-diode"; + trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0", ++ <&ds1340>,"trickle-resistor-ohms:0", + <&abx80x>,"abracon,tc-resistor:0", + <&rv3028>,"trickle-resistor-ohms:0", + <&rv1805>,"abracon,tc-resistor:0"; +-- +2.18.4 + + +From dea9ee19c7717e472ef3ff7561fbf41eaf5e8dec Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 26 Feb 2021 14:20:05 +0000 +Subject: [PATCH 544/580] overlays: Update the upstream overlay + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts b/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts +index e0f7cc8ba9ea..f73a1879e690 100644 +--- a/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts ++++ b/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts +@@ -116,6 +116,12 @@ + }; + }; + fragment@18 { ++ target = <&aon_intr>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ fragment@19 { + target = <&usb>; + #address-cells = <1>; + #size-cells = <1>; +-- +2.18.4 + + +From 0bc488d27670ee1b5bc206a760af4da00c326e7d Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 1 Mar 2021 09:12:44 +0000 +Subject: [PATCH 545/580] Revert "Bluetooth: Always request for user + confirmation for Just Works (LE SC)" + +This reverts commit ffee202a78c2980688bc5d2f7d56480e69a5e0c9. + +The commit "Bluetooth: Always request for user confirmation for Just +Works" prevents BLE devices pairing in (at least) the Raspberry Pi OS +GUI. After reverting it, pairing works again. Although this companion +commit ("... (LE SC)") has not been demonstrated to be problematic, +it follows the same logic and therefore could affect some use cases. + +If another solution to the problem is found then this reversion will +be removed. + +See: https://github.com/raspberrypi/linux/issues/4139 + +Signed-off-by: Phil Elwell +--- + net/bluetooth/smp.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c +index bf4bef13d935..248cdaf77a5f 100644 +--- a/net/bluetooth/smp.c ++++ b/net/bluetooth/smp.c +@@ -2201,7 +2201,7 @@ static u8 smp_cmd_pairing_random(struct l2cap_conn *conn, struct sk_buff *skb) + if (err) + return SMP_UNSPECIFIED; + +- if (smp->method == REQ_OOB) { ++ if (smp->method == JUST_WORKS || smp->method == REQ_OOB) { + if (hcon->out) { + sc_dhkey_check(smp); + SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK); +@@ -2216,9 +2216,6 @@ static u8 smp_cmd_pairing_random(struct l2cap_conn *conn, struct sk_buff *skb) + confirm_hint = 0; + + confirm: +- if (smp->method == JUST_WORKS) +- confirm_hint = 1; +- + err = mgmt_user_confirm_request(hcon->hdev, &hcon->dst, hcon->type, + hcon->dst_type, passkey, confirm_hint); + if (err) +-- +2.18.4 + + +From 14753fc715384b5f1e13444f655b5b734c680117 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 1 Mar 2021 09:14:35 +0000 +Subject: [PATCH 546/580] Revert "Bluetooth: Always request for user + confirmation for Just Works" + +This reverts commit 92516cd97fd4d8ad5b1421a0d51771044f453a5f. + +Thi commit "Bluetooth: Always request for user confirmation for Just +Works" prevents BLE devices pairing in (at least) the Raspberry Pi OS +GUI. After reverting it, pairing works again. + +If another solution to the problem is found then this reversion will +be removed. + +See: https://github.com/raspberrypi/linux/issues/4139 + +Signed-off-by: Phil Elwell +--- + net/bluetooth/smp.c | 11 ++--------- + 1 file changed, 2 insertions(+), 9 deletions(-) + +diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c +index 248cdaf77a5f..0f820decf511 100644 +--- a/net/bluetooth/smp.c ++++ b/net/bluetooth/smp.c +@@ -883,16 +883,9 @@ static int tk_request(struct l2cap_conn *conn, u8 remote_oob, u8 auth, + hcon->io_capability == HCI_IO_NO_INPUT_OUTPUT) + smp->method = JUST_WORKS; + +- /* If Just Works, Continue with Zero TK and ask user-space for +- * confirmation */ ++ /* If Just Works, Continue with Zero TK */ + if (smp->method == JUST_WORKS) { +- ret = mgmt_user_confirm_request(hcon->hdev, &hcon->dst, +- hcon->type, +- hcon->dst_type, +- passkey, 1); +- if (ret) +- return ret; +- set_bit(SMP_FLAG_WAIT_USER, &smp->flags); ++ set_bit(SMP_FLAG_TK_VALID, &smp->flags); + return 0; + } + +-- +2.18.4 + + +From f90565f5759864f367f37ecb8f236f46025283c4 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Fri, 5 Mar 2021 15:40:45 +0000 +Subject: [PATCH 547/580] media: bcm2835-unicam: Fix bug in buffer swapping + logic + +If multiple sets of interrupts occur simultaneously, it may be unsafe +to swap buffers, as the hardware may already be re-using the current +buffers. In such cases, avoid swapping buffers, and wait for the next +opportunity at the Frame End interrupt to signal completion. + +Additionally, check the packet compare status when watching for frame +end for buffers swaps, as this could also signify a frame end event. + +Signed-off-by: Naushir Patuck +--- + .../media/platform/bcm2835/bcm2835-unicam.c | 21 ++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +diff --git a/drivers/media/platform/bcm2835/bcm2835-unicam.c b/drivers/media/platform/bcm2835/bcm2835-unicam.c +index a8b3f5433f04..234f0eaf9c8c 100644 +--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c ++++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c +@@ -798,6 +798,7 @@ static irqreturn_t unicam_isr(int irq, void *dev) + unsigned int sequence = unicam->sequence; + unsigned int i; + u32 ista, sta; ++ bool fe; + u64 ts; + + sta = reg_read(unicam, UNICAM_STA); +@@ -814,13 +815,19 @@ static irqreturn_t unicam_isr(int irq, void *dev) + if (!(sta & (UNICAM_IS | UNICAM_PI0))) + return IRQ_HANDLED; + ++ /* ++ * Look for either the Frame End interrupt or the Packet Capture status ++ * to signal a frame end. ++ */ ++ fe = (ista & UNICAM_FEI || sta & UNICAM_PI0); ++ + /* + * We must run the frame end handler first. If we have a valid next_frm + * and we get a simultaneout FE + FS interrupt, running the FS handler + * first would null out the next_frm ptr and we would have lost the + * buffer forever. + */ +- if (ista & UNICAM_FEI || sta & UNICAM_PI0) { ++ if (fe) { + /* + * Ensure we have swapped buffers already as we can't + * stop the peripheral. If no buffer is available, use a +@@ -831,7 +838,15 @@ static irqreturn_t unicam_isr(int irq, void *dev) + if (!unicam->node[i].streaming) + continue; + +- if (unicam->node[i].cur_frm) ++ /* ++ * If cur_frm == next_frm, it means we have not had ++ * a chance to swap buffers, likely due to having ++ * multiple interrupts occurring simultaneously (like FE ++ * + FS + LS). In this case, we cannot signal the buffer ++ * as complete, as the HW will reuse that buffer. ++ */ ++ if (unicam->node[i].cur_frm && ++ unicam->node[i].cur_frm != unicam->node[i].next_frm) + unicam_process_buffer_complete(&unicam->node[i], + sequence); + unicam->node[i].cur_frm = unicam->node[i].next_frm; +@@ -868,7 +883,7 @@ static irqreturn_t unicam_isr(int irq, void *dev) + * where the HW does not actually swap it if the new frame has + * already started. + */ +- if (ista & (UNICAM_FSI | UNICAM_LCI) && !(ista & UNICAM_FEI)) { ++ if (ista & (UNICAM_FSI | UNICAM_LCI) && !fe) { + for (i = 0; i < ARRAY_SIZE(unicam->node); i++) { + if (!unicam->node[i].streaming) + continue; +-- +2.18.4 + + +From 7c64d68ae2d1b00c3a772f35ec2c9610d61726f3 Mon Sep 17 00:00:00 2001 +From: Ben Avison +Date: Mon, 8 Mar 2021 15:32:25 +0000 +Subject: [PATCH 548/580] Assign crypto aliases to different AES implementation + modules + +The kernel modules aes-neon-blk and aes-neon-bs perform poorly, at least on +Cortex-A72 without crypto extensions. In fact, aes-arm64 outperforms them +on benchmarks, despite it being a simpler implementation (only accelerating +the single-block AES cipher). + +For modes of operation where multiple cipher blocks can be processed in +parallel, aes-neon-bs outperforms aes-neon-blk by around 60-70% and aes-arm64 +is another 10-20% faster still. But the difference is even more marked with +modes of operation with dependencies between neighbouring blocks, such as +CBC encryption, which defeat parallelism: in these cases, aes-arm64 is +typically around 250% faster than either aes-neon-blk or aes-neon-bs. + +The key trade-off with aes-arm64 is that the look-up tables are situated in +RAM. This leaves them potentially open to cache timing attacks. The two other +modules, by contrast, load the look-up tables into NEON registers and so are +able to perform in constant time. + +This patch aims to load aes-arm64 more often. + +If none of the currently-loaded crypto modules implement a given algorithm, +a new one is typically selected for loading using a platform-neutral alias +describing the required algorithm. To enable users to still +load aes-neon-blk or aes-neon-bs if they really want them, while still +ensuring that aes-arm64 is usually selected, remove the aliases from +aes-neonbs-glue.c and aes-glue.c and apply them to aes-cipher-glue.c, but +still build the two NEON modules. + +Since aes-glue.c can also be used to build aes-ce-blk, leave them enabled +if USE_V8_CRYPTO_EXTENSIONS is defined, to ensure they are selected if we +in future use a CPU which has the crypto extensions enabled. + +Note that the algorithm priority specifiers are unchanged, so if +aes-neon-bs is loaded at the same time as aes-arm64, the former will be +used in preference. However, aes-neon-blk and aes-arm64 have tied priority, +so whichever module was loaded first will be used (assuming aes-neon-bs is +not loaded). + +Signed-off-by: Ben Avison +--- + arch/arm64/crypto/aes-cipher-glue.c | 10 ++++++++++ + arch/arm64/crypto/aes-glue.c | 4 ++-- + arch/arm64/crypto/aes-neonbs-glue.c | 5 ----- + 3 files changed, 12 insertions(+), 7 deletions(-) + +diff --git a/arch/arm64/crypto/aes-cipher-glue.c b/arch/arm64/crypto/aes-cipher-glue.c +index 8caf6dfefce8..2c5772889bdf 100644 +--- a/arch/arm64/crypto/aes-cipher-glue.c ++++ b/arch/arm64/crypto/aes-cipher-glue.c +@@ -9,6 +9,16 @@ + #include + #include + ++MODULE_ALIAS_CRYPTO("ecb(aes)"); ++MODULE_ALIAS_CRYPTO("cbc(aes)"); ++MODULE_ALIAS_CRYPTO("ctr(aes)"); ++MODULE_ALIAS_CRYPTO("xts(aes)"); ++MODULE_ALIAS_CRYPTO("cts(cbc(aes))"); ++MODULE_ALIAS_CRYPTO("essiv(cbc(aes),sha256)"); ++MODULE_ALIAS_CRYPTO("cmac(aes)"); ++MODULE_ALIAS_CRYPTO("xcbc(aes)"); ++MODULE_ALIAS_CRYPTO("cbcmac(aes)"); ++ + asmlinkage void __aes_arm64_encrypt(u32 *rk, u8 *out, const u8 *in, int rounds); + asmlinkage void __aes_arm64_decrypt(u32 *rk, u8 *out, const u8 *in, int rounds); + +diff --git a/arch/arm64/crypto/aes-glue.c b/arch/arm64/crypto/aes-glue.c +index 53c92e060c3d..a8b2061e792a 100644 +--- a/arch/arm64/crypto/aes-glue.c ++++ b/arch/arm64/crypto/aes-glue.c +@@ -55,17 +55,17 @@ MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 Crypto Extensions"); + #define aes_mac_update neon_aes_mac_update + MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 NEON"); + #endif +-#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS) ++#if defined(USE_V8_CRYPTO_EXTENSIONS) + MODULE_ALIAS_CRYPTO("ecb(aes)"); + MODULE_ALIAS_CRYPTO("cbc(aes)"); + MODULE_ALIAS_CRYPTO("ctr(aes)"); + MODULE_ALIAS_CRYPTO("xts(aes)"); +-#endif + MODULE_ALIAS_CRYPTO("cts(cbc(aes))"); + MODULE_ALIAS_CRYPTO("essiv(cbc(aes),sha256)"); + MODULE_ALIAS_CRYPTO("cmac(aes)"); + MODULE_ALIAS_CRYPTO("xcbc(aes)"); + MODULE_ALIAS_CRYPTO("cbcmac(aes)"); ++#endif + + MODULE_AUTHOR("Ard Biesheuvel "); + MODULE_LICENSE("GPL v2"); +diff --git a/arch/arm64/crypto/aes-neonbs-glue.c b/arch/arm64/crypto/aes-neonbs-glue.c +index fb507d569922..cc52829d426a 100644 +--- a/arch/arm64/crypto/aes-neonbs-glue.c ++++ b/arch/arm64/crypto/aes-neonbs-glue.c +@@ -18,11 +18,6 @@ + MODULE_AUTHOR("Ard Biesheuvel "); + MODULE_LICENSE("GPL v2"); + +-MODULE_ALIAS_CRYPTO("ecb(aes)"); +-MODULE_ALIAS_CRYPTO("cbc(aes)"); +-MODULE_ALIAS_CRYPTO("ctr(aes)"); +-MODULE_ALIAS_CRYPTO("xts(aes)"); +- + asmlinkage void aesbs_convert_key(u8 out[], u32 const rk[], int rounds); + + asmlinkage void aesbs_ecb_encrypt(u8 out[], u8 const in[], u8 const rk[], +-- +2.18.4 + + +From d4931c24adbc58444f397069f94d988344fbcbfd Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 Mar 2021 16:11:46 +0000 +Subject: [PATCH 549/580] 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 +on GPIOs 44 and 45. However, it didn't enable the other nodes necessary +for it to work - "dtparam=i2c_vc=on" was also required. + +Fix that. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +index 408b71ec97b5..b9842e11b5e0 100644 +--- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +@@ -252,6 +252,20 @@ + }; + }; + ++ fragment@101 { ++ target = <&i2c0if>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@102 { ++ target = <&i2c0mux>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ + __overrides__ { + abx80x = <0>,"+0"; + ds1307 = <0>,"+1"; +@@ -273,7 +287,8 @@ + pcf85063a = <0>,"+16"; + + i2c0 = <&frag100>, "target:0=",<&i2c0>; +- i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>; ++ i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>, ++ <0>,"+101+102"; + + addr = <&abx80x>, "reg:0", + <&ds1307>, "reg:0", +-- +2.18.4 + + +From 8e2f318edbd77dbd4d72bea09a7fafe3beff3966 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 Mar 2021 16:59:05 +0000 +Subject: [PATCH 550/580] 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 +hwclock -s in order to synchronise the system clock. + +See: https://github.com/raspberrypi/linux/issues/4205 + +Signed-off-by: Phil Elwell +--- + arch/arm/configs/bcm2709_defconfig | 1 - + arch/arm/configs/bcm2711_defconfig | 1 - + arch/arm/configs/bcmrpi_defconfig | 1 - + arch/arm64/configs/bcm2711_defconfig | 1 - + arch/arm64/configs/bcmrpi3_defconfig | 1 - + 5 files changed, 5 deletions(-) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index ac3090040c48..f4da60298fae 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -1223,7 +1223,6 @@ CONFIG_ACCESSIBILITY=y + CONFIG_SPEAKUP=m + CONFIG_SPEAKUP_SYNTH_SOFT=m + CONFIG_RTC_CLASS=y +-# CONFIG_RTC_HCTOSYS is not set + CONFIG_RTC_DRV_ABX80X=m + CONFIG_RTC_DRV_DS1307=m + CONFIG_RTC_DRV_DS1374=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 4b5dc70da6f4..b3a4441748e8 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -1257,7 +1257,6 @@ CONFIG_ACCESSIBILITY=y + CONFIG_SPEAKUP=m + CONFIG_SPEAKUP_SYNTH_SOFT=m + CONFIG_RTC_CLASS=y +-# CONFIG_RTC_HCTOSYS is not set + CONFIG_RTC_DRV_ABX80X=m + CONFIG_RTC_DRV_DS1307=m + CONFIG_RTC_DRV_DS1374=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 6d19d0ff49db..fcc63ee8b578 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -1234,7 +1234,6 @@ CONFIG_ACCESSIBILITY=y + CONFIG_SPEAKUP=m + CONFIG_SPEAKUP_SYNTH_SOFT=m + CONFIG_RTC_CLASS=y +-# CONFIG_RTC_HCTOSYS is not set + CONFIG_RTC_DRV_ABX80X=m + CONFIG_RTC_DRV_DS1307=m + CONFIG_RTC_DRV_DS1374=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 8a643571a458..73bb908fc4e9 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -1257,7 +1257,6 @@ CONFIG_ACCESSIBILITY=y + CONFIG_SPEAKUP=m + CONFIG_SPEAKUP_SYNTH_SOFT=m + CONFIG_RTC_CLASS=y +-# CONFIG_RTC_HCTOSYS is not set + CONFIG_RTC_DRV_ABX80X=m + CONFIG_RTC_DRV_DS1307=m + CONFIG_RTC_DRV_DS1374=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 60bda75b6965..584e82f7de99 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -1122,7 +1122,6 @@ CONFIG_ACCESSIBILITY=y + CONFIG_SPEAKUP=m + CONFIG_SPEAKUP_SYNTH_SOFT=m + CONFIG_RTC_CLASS=y +-# CONFIG_RTC_HCTOSYS is not set + CONFIG_RTC_DRV_ABX80X=m + CONFIG_RTC_DRV_DS1307=m + CONFIG_RTC_DRV_DS1374=m +-- +2.18.4 + + +From e754295cbadf54a2f762fe501514f36553800602 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 1 Feb 2021 18:48:47 +0000 +Subject: [PATCH 551/580] media/v4l2_m2m: In buffered mode run jobs if either + port is streaming + +In order to get the intended behaviour of the stateful video +decoder API where only the OUTPUT queue needs to be enabled and fed +buffers in order to get the SOURCE_CHANGED event that configures the +CAPTURE queue, we want the device to run should either queue be +streaming. + +Signed-off-by: Dave Stevenson +--- + drivers/media/v4l2-core/v4l2-mem2mem.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c +index 34dd8ba5469f..329dc316934e 100644 +--- a/drivers/media/v4l2-core/v4l2-mem2mem.c ++++ b/drivers/media/v4l2-core/v4l2-mem2mem.c +@@ -301,9 +301,10 @@ static void __v4l2_m2m_try_queue(struct v4l2_m2m_dev *m2m_dev, + + dprintk("Trying to schedule a job for m2m_ctx: %p\n", m2m_ctx); + +- if (!m2m_ctx->out_q_ctx.q.streaming +- || !m2m_ctx->cap_q_ctx.q.streaming) { +- dprintk("Streaming needs to be on for both queues\n"); ++ if (!(m2m_ctx->out_q_ctx.q.streaming && ++ m2m_ctx->cap_q_ctx.q.streaming) && ++ !(m2m_ctx->out_q_ctx.buffered && m2m_ctx->out_q_ctx.q.streaming)) { ++ dprintk("Streaming needs to be on for both queues, or buffered and OUTPUT streaming\n"); + return; + } + +-- +2.18.4 + + +From dae9f70b44bad3a6ed3a28d00aa73e36cf6d2312 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 1 Feb 2021 18:55:37 +0000 +Subject: [PATCH 552/580] staging/bcm2835-codec: Correct logging of size_t to + %zu + +Fixes: "staging/bcm2835-codec: Log the number of excess supported formats" +Which used %u for printing a size_t, and 64bit builds then log a warning. + +Signed-off-by: Dave Stevenson +--- + .../staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +index 94691ab7175a..0c4d8bf77b91 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -2837,7 +2837,7 @@ static int bcm2835_codec_get_supported_fmts(struct bcm2835_codec_dev *dev) + if (ret) { + if (ret == MMAL_MSG_STATUS_ENOSPC) { + v4l2_err(&dev->v4l2_dev, +- "%s: port has more encodings than we provided space for. Some are dropped (%u vs %u).\n", ++ "%s: port has more encodings than we provided space for. Some are dropped (%zu vs %u).\n", + __func__, param_size / sizeof(u32), + MAX_SUPPORTED_ENCODINGS); + num_encodings = MAX_SUPPORTED_ENCODINGS; +@@ -2883,7 +2883,7 @@ static int bcm2835_codec_get_supported_fmts(struct bcm2835_codec_dev *dev) + if (ret) { + if (ret == MMAL_MSG_STATUS_ENOSPC) { + v4l2_err(&dev->v4l2_dev, +- "%s: port has more encodings than we provided space for. Some are dropped (%u vs %u).\n", ++ "%s: port has more encodings than we provided space for. Some are dropped (%zu vs %u).\n", + __func__, param_size / sizeof(u32), + MAX_SUPPORTED_ENCODINGS); + num_encodings = MAX_SUPPORTED_ENCODINGS; +-- +2.18.4 + + +From eec53dfaa35a9d99de181bd1be049557620c58b8 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 2 Feb 2021 15:50:18 +0000 +Subject: [PATCH 553/580] staging/bcm2835-codec: Add support for pixel aspect + ratio + +If the format is detected by the driver and a V4L2_EVENT_SOURCE_CHANGE +event is generated, then pass on the pixel aspect ratio as well. + +Signed-off-by: Dave Stevenson +--- + .../bcm2835-codec/bcm2835-v4l2-codec.c | 31 +++++++++++++++++++ + 1 file changed, 31 insertions(+) + +diff --git a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +index 0c4d8bf77b91..46f659e55f18 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -602,6 +602,7 @@ struct bcm2835_codec_q_data { + unsigned int crop_width; + unsigned int crop_height; + bool selection_set; ++ struct v4l2_fract aspect_ratio; + + unsigned int sizeimage; + unsigned int sequence; +@@ -981,6 +982,9 @@ static void handle_fmt_changed(struct bcm2835_codec_ctx *ctx, + if (format->es.video.color_space) + color_mmal2v4l(ctx, format->es.video.color_space); + ++ q_data->aspect_ratio.numerator = format->es.video.par.num; ++ q_data->aspect_ratio.denominator = format->es.video.par.den; ++ + queue_res_chg_event(ctx); + } + +@@ -1657,6 +1661,29 @@ static int vidioc_g_parm(struct file *file, void *priv, + return 0; + } + ++static int vidioc_g_pixelaspect(struct file *file, void *fh, int type, ++ struct v4l2_fract *f) ++{ ++ struct bcm2835_codec_ctx *ctx = file2ctx(file); ++ ++ /* ++ * The selection API takes V4L2_BUF_TYPE_VIDEO_CAPTURE and ++ * V4L2_BUF_TYPE_VIDEO_OUTPUT, even if the device implements the MPLANE ++ * API. The V4L2 core will have converted the MPLANE variants to ++ * non-MPLANE. ++ * Open code this instead of using get_q_data in this case. ++ */ ++ if (ctx->dev->role != DECODE) ++ return -ENOIOCTLCMD; ++ ++ if (type != V4L2_BUF_TYPE_VIDEO_CAPTURE) ++ return -EINVAL; ++ ++ *f = ctx->q_data[V4L2_M2M_DST].aspect_ratio; ++ ++ return 0; ++} ++ + static int vidioc_subscribe_evt(struct v4l2_fh *fh, + const struct v4l2_event_subscription *sub) + { +@@ -2082,6 +2109,8 @@ static const struct v4l2_ioctl_ops bcm2835_codec_ioctl_ops = { + .vidioc_g_parm = vidioc_g_parm, + .vidioc_s_parm = vidioc_s_parm, + ++ .vidioc_g_pixelaspect = vidioc_g_pixelaspect, ++ + .vidioc_subscribe_event = vidioc_subscribe_evt, + .vidioc_unsubscribe_event = v4l2_event_unsubscribe, + +@@ -2640,6 +2669,8 @@ static int bcm2835_codec_open(struct file *file) + ctx->q_data[V4L2_M2M_DST].crop_width, + ctx->q_data[V4L2_M2M_DST].height, + ctx->q_data[V4L2_M2M_DST].fmt); ++ ctx->q_data[V4L2_M2M_DST].aspect_ratio.numerator = 1; ++ ctx->q_data[V4L2_M2M_DST].aspect_ratio.denominator = 1; + + ctx->colorspace = V4L2_COLORSPACE_REC709; + ctx->bitrate = 10 * 1000 * 1000; +-- +2.18.4 + + +From efe12fc057d3e38111d7855cfa9fb15e56c3d9c4 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 2 Feb 2021 16:46:39 +0000 +Subject: [PATCH 554/580] staging/bcm2835-codec: Implement additional + g_selection calls for decode + +v4l_cropcap calls our vidioc_g_pixelaspect function to get the pixel +aspect ratio, but also calls g_selection for V4L2_SEL_TGT_CROP_BOUNDS +and V4L2_SEL_TGT_CROP_DEFAULT. Whilst it allows for vidioc_g_pixelaspect +not to be implemented, it doesn't allow for either of the other two. + +Add in support for the additional selection targets. + +Signed-off-by: Dave Stevenson +--- + .../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +index 46f659e55f18..7aa6c53e279e 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -1517,6 +1517,14 @@ static int vidioc_g_selection(struct file *file, void *priv, + s->r.width = q_data->crop_width; + s->r.height = q_data->crop_height; + break; ++ case V4L2_SEL_TGT_CROP_BOUNDS: ++ case V4L2_SEL_TGT_CROP_DEFAULT: ++ s->r.left = 0; ++ s->r.top = 0; ++ s->r.width = (q_data->bytesperline << 3) / ++ q_data->fmt->depth; ++ s->r.height = q_data->height; ++ break; + default: + return -EINVAL; + } +-- +2.18.4 + + +From aee9b7da8b5452327a5be79dfe466f0fb41f2d25 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 10 Mar 2021 19:07:48 +0000 +Subject: [PATCH 555/580] staging/bcm2835-codec: Add VC-1 support. + +Providing the relevant licence has been purchased, then Pi0-3 +can decode VC-1. + +Signed-off-by: Dave Stevenson +--- + .../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +index 7aa6c53e279e..5729a8a7d94e 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -576,7 +576,12 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + .depth = 0, + .flags = V4L2_FMT_FLAG_COMPRESSED, + .mmal_fmt = MMAL_ENCODING_VP8, +- }, ++ }, { ++ .fourcc = V4L2_PIX_FMT_VC1_ANNEX_G, ++ .depth = 0, ++ .flags = V4L2_FMT_FLAG_COMPRESSED, ++ .mmal_fmt = MMAL_ENCODING_WVC1, ++ } + }; + + struct bcm2835_codec_fmt_list { +-- +2.18.4 + + +From f5a3bdbbd6d0be923621fc2b0b34837e4d5c0626 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Sun, 24 Jan 2021 15:44:10 +0000 +Subject: [PATCH 556/580] 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. + +Reduce the threshold where we deassert DREQ to avoid the fifo overfilling + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 8 ++++---- + 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 +--- 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, + + /* Set the MAI threshold */ + HDMI_WRITE(HDMI_MAI_THR, +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICHIGH) | +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICLOW) | +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQHIGH) | +- VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQLOW)); ++ VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_PANICHIGH) | ++ VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_PANICLOW) | ++ VC4_SET_FIELD(0x06, VC4_HD_MAI_THR_DREQHIGH) | ++ VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_DREQLOW)); + + HDMI_WRITE(HDMI_MAI_CONFIG, + VC4_HDMI_MAI_CONFIG_BIT_REVERSE | +-- +2.18.4 + + +From 5af957c624a845dd09483082e7f3b52ccacf12b9 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 12 Mar 2021 11:26:29 +0000 +Subject: [PATCH 557/580] 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 +HDMI_MAI_CTL which seem to correspond with audio dropouts. + +Increasing the normal AXI priority for dma is needed to avoid these + +Signed-off-by: Dom Cobley +--- + arch/arm/boot/dts/bcm2711-rpi.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi.dtsi b/arch/arm/boot/dts/bcm2711-rpi.dtsi +index 8053ef54acc8..20581ee97827 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi.dtsi +@@ -179,7 +179,7 @@ + }; + + &hdmi0 { +- dmas = <&dma (10|(1<<27)|(1<<24)|(0<<16)|(15<<20))>; ++ dmas = <&dma (10|(1<<27)|(1<<24)|(10<<16)|(15<<20))>; + status = "disabled"; + }; + +@@ -188,7 +188,7 @@ + }; + + &hdmi1 { +- dmas = <&dma (17|(1<<27)|(1<<24)|(0<<16)|(15<<20))>; ++ dmas = <&dma (17|(1<<27)|(1<<24)|(10<<16)|(15<<20))>; + status = "disabled"; + }; + +-- +2.18.4 + + +From d7814ac9958a24a2b21700016c3a67bcffef3137 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Thu, 11 Mar 2021 19:20:01 +0000 +Subject: [PATCH 558/580] drm/vc4: crtc: Reduce PV fifo threshold on hvs4 + +Experimentally have found PV on hvs4 reports fifo full +error with expected settings and does not with one less + +This appears as: +[drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:82:crtc-3] flip_done timed out + +with bit 10 of PV_STAT set "HVS driving pixels when the PV FIFO is full" + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_crtc.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c +index a3439756594c..6d71c7e6979a 100644 +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -210,6 +210,7 @@ static u32 vc4_get_fifo_full_level(struct vc4_crtc *vc4_crtc, u32 format) + { + const struct vc4_crtc_data *crtc_data = vc4_crtc_to_vc4_crtc_data(vc4_crtc); + const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); ++ struct vc4_dev *vc4 = to_vc4_dev(vc4_crtc->base.dev); + u32 fifo_len_bytes = pv_data->fifo_depth; + + /* +@@ -238,6 +239,13 @@ static u32 vc4_get_fifo_full_level(struct vc4_crtc *vc4_crtc, u32 format) + if (crtc_data->hvs_output == 5) + return 32; + ++ /* ++ * Experimentally have found PV on hvs4 reports fifo full ++ * error with expected settings and does not with one less ++ */ ++ if (!vc4->hvs->hvs5) ++ return fifo_len_bytes - 3 * HVS_FIFO_LATENCY_PIX - 1; ++ + return fifo_len_bytes - 3 * HVS_FIFO_LATENCY_PIX; + } + } +-- +2.18.4 + + +From 1d0a78da5e214cac73606bdc04c3a9bbb4c26689 Mon Sep 17 00:00:00 2001 +From: Assaf Gordon +Date: Fri, 12 Mar 2021 00:13:07 -0700 +Subject: [PATCH 559/580] overlays: gpio-led: new overlay + +Add generic connection between the kernel's LED framework and +RPI's GPIO pins. + +Signed-off-by: Assaf Gordon +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 56 +++++++++++ + .../boot/dts/overlays/gpio-led-overlay.dts | 97 +++++++++++++++++++ + 3 files changed, 154 insertions(+) + create mode 100755 arch/arm/boot/dts/overlays/gpio-led-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index ef0a0cc3da99..753733cac9a2 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -54,6 +54,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + gpio-ir.dtbo \ + gpio-ir-tx.dtbo \ + gpio-key.dtbo \ ++ gpio-led.dtbo \ + gpio-no-bank0-irq.dtbo \ + gpio-no-irq.dtbo \ + gpio-poweroff.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 97adda31fbe2..51fd09cccc7b 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -914,6 +914,62 @@ Params: gpio GPIO pin to trigger on (default 3) + keycode Set the key code for the button + + ++ ++Name: gpio-led ++Info: This is a generic overlay for activating LEDs (or any other component) ++ by a GPIO pin. Multiple LEDs can be set up using multiple calls to the ++ overlay. While there are many existing methods to activate LEDs on the ++ RPi, this method offers some advantages: ++ 1) Does not require any userspace programs. ++ 2) LEDs can be connected to the kernel's led-trigger framework, ++ and drive the LED based on triggers such as cpu load, heartbeat, ++ kernel panic, key input, timers and others. ++ 3) LED can be tied to the input state of another GPIO pin. ++ 4) The LED is setup early during the kernel boot process (useful ++ for cpu/heartbeat/panic triggers). ++ ++ Typical electrical connection is: ++ RPI-GPIO.19 -> LED -> 300ohm resister -> RPI-GND ++ The GPIO pin number can be changed with the 'gpio=' parameter. ++ ++ To control an LED from userspace, write a 0 or 1 value: ++ echo 1 > /sys/class/leds/myled1/brightness ++ The 'myled1' name can be changed with the 'label=' parameter. ++ ++ To connect the LED to a kernel trigger from userspace: ++ echo cpu > /sys/class/leds/myled1/trigger ++ echo heartbeat > /sys/class/leds/myled1/trigger ++ echo none > /sys/class/leds/myled1/trigger ++ To connect the LED to GPIO.26 pin (physical pin 37): ++ echo gpio > /sys/class/leds/myled1/trigger ++ echo 26 > /sys/class/leds/myled1/gpio ++ Available triggers: ++ cat /sys/class/leds/myled1/trigger ++ ++ More information about the Linux kernel LED/Trigger system: ++ https://www.kernel.org/doc/Documentation/leds/leds-class.rst ++ https://www.kernel.org/doc/Documentation/leds/ledtrig-oneshot.rst ++Load: dtoverlay=gpio-led,= ++Params: gpio GPIO pin connected to the LED (default 19) ++ label The label for this LED. It will appear under ++ /sys/class/leds/