From 360821cdcc857e75b0c7395503864f908bfd5834 Mon Sep 17 00:00:00 2001 From: Pablo Greco Date: Jun 05 2023 00:41:34 +0000 Subject: Update to 6.1.31 --- diff --git a/.raspberrypi2.metadata b/.raspberrypi2.metadata index 9da1fd0..f03da9c 100644 --- a/.raspberrypi2.metadata +++ b/.raspberrypi2.metadata @@ -1,3 +1,3 @@ 30996d7c1c59ddbd495bd9eb37c8dfdb1a67c1c3 SOURCES/linux-6.1.tar.xz -9306b76ca66da645153a1f2ef131ad13a984283e SOURCES/add727346b1459c04995e2b66e2b01686eca20c9.tar.gz -6788e2d2ee052e5ca3252f2ff636ee04bfeef856 SOURCES/patch-6.1.23.xz +62f4117436e8eaa59e4974300a4481174a4ef1af SOURCES/cb9500d6021e083a182ba168fe4424e3db2494cf.tar.gz +7fb75dae049c3687780b214931dca33820ebddc9 SOURCES/patch-6.1.31.xz diff --git a/SOURCES/rpi-6.1.x.patch b/SOURCES/rpi-6.1.x.patch index e0a7ec8..e5f32e8 100644 --- a/SOURCES/rpi-6.1.x.patch +++ b/SOURCES/rpi-6.1.x.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joerg Quinten Date: Fri, 18 Jun 2021 13:02:29 +0200 -Subject: [PATCH 001/717] Support RPi DPI interface in mode6 for 18-bit color +Subject: [PATCH 001/784] Support RPi DPI interface in mode6 for 18-bit color A matching media bus format was added and an overlay for using it, both with FB and VC4 was added as well. @@ -39,7 +39,7 @@ index 61ef7d232a12..8ba53af107f8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 16:20:30 +0100 -Subject: [PATCH 002/717] drm/vc4: Add FKMS as an acceptable node for dma +Subject: [PATCH 002/784] drm/vc4: Add FKMS as an acceptable node for dma ranges. Under FKMS, the firmware (via FKMS) also requires the VideoCore cache @@ -72,7 +72,7 @@ index 8c329c071c62..5a1c2f3ded30 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 26 Oct 2020 12:38:27 +0000 -Subject: [PATCH 003/717] drm/vc4: Add the 2711 HVS as a suitable DMA node +Subject: [PATCH 003/784] 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. @@ -102,7 +102,7 @@ index 5a1c2f3ded30..f8053b591317 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 12 Feb 2021 17:31:37 +0000 -Subject: [PATCH 004/717] drm/vc4: Change the default DPI format to being +Subject: [PATCH 004/784] 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 @@ -142,7 +142,7 @@ index 8ba53af107f8..96b5d34f6bd7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 16:30:55 +0000 -Subject: [PATCH 005/717] drm/atomic: Don't fixup modes that haven't been reset +Subject: [PATCH 005/784] drm/atomic: Don't fixup modes that haven't been reset Signed-off-by: Dave Stevenson --- @@ -172,7 +172,7 @@ index 02b4a7dc92f5..f3e59236a8ee 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:07:30 +0200 -Subject: [PATCH 006/717] drm/vc4: Fix timings for VEC modes +Subject: [PATCH 006/784] drm/vc4: Fix timings for VEC modes This commit fixes vertical timings of the VEC (composite output) modes to accurately represent the 525-line ("NTSC") and 625-line ("PAL") ITU-R @@ -305,7 +305,7 @@ index 7258975331ca..308b0e1c8af4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:07:53 +0200 -Subject: [PATCH 007/717] drm/vc4: Fix definition of PAL-M mode +Subject: [PATCH 007/784] drm/vc4: Fix definition of PAL-M mode PAL-M is a Brazilian analog TV standard that uses a PAL-style chroma subcarrier at 3.575611[888111] MHz on top of 525-line (480i60) timings. @@ -388,7 +388,7 @@ index 0b3333865702..de4dec160e72 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:07:58 +0200 -Subject: [PATCH 008/717] drm/vc4: Add support for more analog TV standards +Subject: [PATCH 008/784] drm/vc4: Add support for more analog TV standards Add support for the following composite output modes (all of them are somewhat more obscure than the previously defined ones): @@ -542,7 +542,7 @@ index de4dec160e72..edf73378bfe6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:01 +0200 -Subject: [PATCH 009/717] drm/vc4: Allow setting the TV norm via module +Subject: [PATCH 009/784] drm/vc4: Allow setting the TV norm via module parameter Similar to the ch7006 and nouveau drivers, introduce a "tv_mode" module @@ -691,7 +691,7 @@ index edf73378bfe6..369a5e79676b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:05 +0200 -Subject: [PATCH 010/717] drm/vc4: Refactor mode checking logic +Subject: [PATCH 010/784] drm/vc4: Refactor mode checking logic Replace drm_encoder_helper_funcs::atomic_check with drm_connector_helper_funcs::atomic_check - the former is not called @@ -779,7 +779,7 @@ index 369a5e79676b..c613f930f079 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Sep 2020 17:32:27 +0100 -Subject: [PATCH 011/717] drm/vc4: Add firmware-kms mode +Subject: [PATCH 011/784] drm/vc4: Add firmware-kms mode This is a squash of all firmware-kms related patches from previous branches, up to and including @@ -3275,7 +3275,7 @@ index 000000000000..e8d2b4b162f7 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 27 Apr 2021 14:24:21 +0200 -Subject: [PATCH 012/717] drm/vc4: Add support for gamma on BCM2711 +Subject: [PATCH 012/784] drm/vc4: Add support for gamma on BCM2711 BCM2711 changes from a 256 entry lookup table to a 16 point piecewise linear function as the pipeline bitdepth has increased @@ -3563,7 +3563,7 @@ index 1256f0877ff6..e162d3f3bd3c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 28 Apr 2021 12:32:10 +0200 -Subject: [PATCH 013/717] drm/vc4: Add debugfs node that dumps the vc5 gamma +Subject: [PATCH 013/784] drm/vc4: Add debugfs node that dumps the vc5 gamma PWL entries This helps with debugging the conversion from a 256 point gamma LUT to @@ -3691,7 +3691,7 @@ index 303f1341db46..5374502bce37 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Jun 2021 15:28:30 +0200 -Subject: [PATCH 014/717] drm/vc4: hvs: Force modeset on gamma lut change +Subject: [PATCH 014/784] drm/vc4: hvs: Force modeset on gamma lut change The HVS Gamma block can only be updated when idle, so we need to disable the HVS channel when the gamma property is set in an atomic commit. @@ -3806,7 +3806,7 @@ index 5374502bce37..950d719a126b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:08 +0200 -Subject: [PATCH 015/717] drm/vc4: Relax VEC modeline requirements and add +Subject: [PATCH 015/784] drm/vc4: Relax VEC modeline requirements and add progressive mode support Make vc4_vec_encoder_atomic_check() accept arbitrary modelines, as long @@ -3963,7 +3963,7 @@ index c613f930f079..e32a7b45b2b9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mateusz Kwiatkowski Date: Thu, 15 Jul 2021 01:08:11 +0200 -Subject: [PATCH 016/717] drm/vc4: Make VEC progressive modes readily +Subject: [PATCH 016/784] drm/vc4: Make VEC progressive modes readily accessible Add predefined modelines for the 240p (NTSC) and 288p (PAL) progressive @@ -4135,7 +4135,7 @@ index e32a7b45b2b9..32ca0b3d1549 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 2 Nov 2021 16:01:36 +0000 -Subject: [PATCH 017/717] drm: Check whether the gamma lut has changed before +Subject: [PATCH 017/784] drm: Check whether the gamma lut has changed before updating drm_crtc_legacy_gamma_set updates the gamma_lut blob unconditionally, @@ -4171,7 +4171,7 @@ index d021497841b8..996f12438016 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Nov 2021 17:32:45 +0000 -Subject: [PATCH 018/717] drm/vc4: Enable gamma block only when required. +Subject: [PATCH 018/784] drm/vc4: Enable gamma block only when required. With HVS5 the gamma block is now only reprogrammed with a disable/enable. Loading the table from vc4_hvs_init_channel @@ -4243,7 +4243,7 @@ index 950d719a126b..7ce6b713b020 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Nov 2021 18:25:49 +0000 -Subject: [PATCH 019/717] drm/vc4: Only add gamma properties once. +Subject: [PATCH 019/784] drm/vc4: Only add gamma properties once. Two calls were made to drm_crtc_enable_color_mgmt to add gamma and CTM, however they were both set to add the gamma properties, @@ -4275,7 +4275,7 @@ index fc4e2e658e6d..7c29f67e4f73 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Nov 2021 16:36:12 +0000 -Subject: [PATCH 020/717] drm/vc4: Validate the size of the gamma_lut +Subject: [PATCH 020/784] drm/vc4: Validate the size of the gamma_lut Add a check to vc4_hvs_gamma_check to ensure a new non-empty gamma LUT is of the correct length before accepting it. @@ -4313,7 +4313,7 @@ index 7ce6b713b020..43ba463b6790 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 13 Jan 2022 11:30:42 +0000 -Subject: [PATCH 021/717] drm/vc4: Disable Gamma control on HVS5 due to issues +Subject: [PATCH 021/784] drm/vc4: Disable Gamma control on HVS5 due to issues writing the table Still under investigation, but the conditions under which the HVS @@ -4355,7 +4355,7 @@ index 7c29f67e4f73..0b16fb5acd7d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Apr 2020 16:12:02 +0100 -Subject: [PATCH 022/717] drm/vc4_hdmi: Add Broadcast RGB property to allow +Subject: [PATCH 022/784] drm/vc4_hdmi: Add Broadcast RGB property to allow override of RGB range Copy Intel's "Broadcast RGB" property semantics to add manual override @@ -4586,7 +4586,7 @@ index 1ad8e8c377e2..f57bfb13fc41 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 31 Jan 2022 16:28:43 +0000 -Subject: [PATCH 023/717] drm/vc4: Add DRM 210101010 RGB formats for hvs5. +Subject: [PATCH 023/784] drm/vc4: Add DRM 210101010 RGB formats for hvs5. HVS5 supports the 210101010 RGB[A|X] formats, but they were missing from the DRM to HVS mapping list, so weren't available. @@ -4643,7 +4643,7 @@ index eb08020154f3..9ae2feb34461 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:39:54 -0600 -Subject: [PATCH 024/717] drm/vc4: dpi: Support DPI interface in mode3 for +Subject: [PATCH 024/784] drm/vc4: dpi: Support DPI interface in mode3 for RGB565 Add support for the VC4 DPI driver to utilize DPI mode 3. This is @@ -4680,7 +4680,7 @@ index 96b5d34f6bd7..a7bebfa5d5b0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Feb 2022 12:20:20 +0000 -Subject: [PATCH 025/717] drm/panel: Add and initialise an orientation field to +Subject: [PATCH 025/784] drm/panel: Add and initialise an orientation field to drm_panel Current usage of drm_connector_set_panel_orientation is from a panel's @@ -4779,7 +4779,7 @@ index 994bfcdd84c5..8ea3885cd93f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 17 Dec 2021 13:36:52 +0000 -Subject: [PATCH 026/717] drm/dsi: Document the meaning and spec references for +Subject: [PATCH 026/784] drm/dsi: Document the meaning and spec references for MIPI_DSI_MODE_* The MIPI_DSI_MODE_* flags have fairly terse descriptions and no reference @@ -4861,7 +4861,7 @@ index 9054a5185e1a..de21b9ff3ac0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 20 Jan 2022 17:29:36 +0000 -Subject: [PATCH 027/717] drm/bridge: tc358762: Ignore EPROBE_DEFER when +Subject: [PATCH 027/784] drm/bridge: tc358762: Ignore EPROBE_DEFER when logging errors mipi_dsi_attach can fail due to resources not being available @@ -4892,7 +4892,7 @@ index 7f4fce1aa998..0adc4864beea 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 30 Sep 2021 17:51:16 +0100 -Subject: [PATCH 028/717] drm/vc4: Rename bridge to out_bridge +Subject: [PATCH 028/784] drm/vc4: Rename bridge to out_bridge In preparation for converting the encoder to being a bridge, rename the variable holding the next bridge in the chain to @@ -4954,7 +4954,7 @@ index 878e05d79e81..d9d951e9ab7c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Feb 2022 17:14:51 +0000 -Subject: [PATCH 029/717] drm/vc4: Move DSI initialisation to encoder_mode_set. +Subject: [PATCH 029/784] drm/vc4: Move DSI initialisation to encoder_mode_set. Breaking the bridge chain does not work for atomic bridges/panels and generally causes issues. @@ -5024,7 +5024,7 @@ index d9d951e9ab7c..c1bdd903f1ad 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:44:49 +0000 -Subject: [PATCH 030/717] drm/vc4: Remove splitting the bridge chain from the +Subject: [PATCH 030/784] drm/vc4: Remove splitting the bridge chain from the driver. Splitting the bridge chain fails for atomic bridges as the @@ -5148,7 +5148,7 @@ index c1bdd903f1ad..9109bee6c7d2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:47:14 +0000 -Subject: [PATCH 031/717] drm/vc4: Convert vc4_dsi to use atomic +Subject: [PATCH 031/784] drm/vc4: Convert vc4_dsi to use atomic enable/disable/mode_set. The atomic calls are preferred as the non-atomic ones @@ -5238,7 +5238,7 @@ index 9109bee6c7d2..4fd4b05d7530 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Dec 2021 17:57:45 +0000 -Subject: [PATCH 032/717] drm/vc4: Convert vc4_dsi to using a bridge instead of +Subject: [PATCH 032/784] drm/vc4: Convert vc4_dsi to using a bridge instead of encoder. Remove the encoder functions, and create a bridge attached to @@ -5510,7 +5510,7 @@ index 4fd4b05d7530..a7b8ffd995b0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 11 Feb 2022 14:15:26 +0000 -Subject: [PATCH 033/717] drm/vc4: Remove entry to ULPS from vc4_dsi +Subject: [PATCH 033/784] drm/vc4: Remove entry to ULPS from vc4_dsi post_disable Post_disable was sending the D-PHY sequence to put any device @@ -5548,7 +5548,7 @@ index a7b8ffd995b0..4f3805528aa1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Dec 2021 15:25:35 +0000 -Subject: [PATCH 034/717] drm/bridge: Introduce pre_enable_upstream_first to +Subject: [PATCH 034/784] drm/bridge: Introduce pre_enable_upstream_first to alter bridge init order DSI sink devices typically want the DSI host powered up and configured @@ -5864,7 +5864,7 @@ index 288c6feda5de..eed8394ed055 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 23 Feb 2022 15:36:56 +0000 -Subject: [PATCH 035/717] drm/panel: Add prepare_upstream_first flag to +Subject: [PATCH 035/784] drm/panel: Add prepare_upstream_first flag to drm_panel Mapping to the drm_bridge flag pre_enable_upstream_first, @@ -5920,7 +5920,7 @@ index 8ea3885cd93f..81ea5e5b272e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 11 Mar 2022 17:24:37 +0000 -Subject: [PATCH 036/717] drm: Include drm_connector.h from drm_panel.h +Subject: [PATCH 036/784] drm: Include drm_connector.h from drm_panel.h drm_panel.h wants to reference enum drm_panel_orientation which is defined in drm_connector.h (despite the name). @@ -5962,7 +5962,7 @@ index 81ea5e5b272e..451f88efcd1c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Dec 2021 15:33:43 +0000 -Subject: [PATCH 037/717] drm/tc358762: Set the pre_enable_upstream_first flag +Subject: [PATCH 037/784] drm/tc358762: Set the pre_enable_upstream_first flag to configure DSI host TC358762 wants the DSI host to be prepared before it is powered up, so @@ -5993,7 +5993,7 @@ index 0adc4864beea..9914cfb05b11 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 25 Jan 2022 17:28:18 +0000 -Subject: [PATCH 038/717] drm/vc4: Support zpos on all planes +Subject: [PATCH 038/784] drm/vc4: Support zpos on all planes Adds the zpos property to all planes, and creates the dlist by placing the fragments in the correct order based on zpos. @@ -6147,7 +6147,7 @@ index 9ae2feb34461..7c094e9f8218 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 7 Mar 2022 15:19:38 +0000 -Subject: [PATCH 039/717] drm/vc4: hdmi: Add CSC for BT601/709/2020 limited and +Subject: [PATCH 039/784] drm/vc4: hdmi: Add CSC for BT601/709/2020 limited and full range output The HVS always composes in the RGB domain, but there is a colourspace @@ -6453,7 +6453,7 @@ index e9cb32d3b0d5..431f901068a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 14 Mar 2022 17:56:10 +0000 -Subject: [PATCH 040/717] vc4/drm: vc4_plane: Keep fractional source coords +Subject: [PATCH 040/784] vc4/drm: vc4_plane: Keep fractional source coords inside state Signed-off-by: Dom Cobley @@ -6673,7 +6673,7 @@ index 7c094e9f8218..66b2fb65bb29 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Fri, 9 Apr 2021 15:00:40 +0100 -Subject: [PATCH 041/717] vc4/drm: Handle fractional coordinates using the +Subject: [PATCH 041/784] vc4/drm: Handle fractional coordinates using the phase field Signed-off-by: Dom Cobley @@ -6784,7 +6784,7 @@ index 66b2fb65bb29..db4267aada46 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 26 Jan 2022 15:58:13 +0000 -Subject: [PATCH 042/717] drm: Add chroma siting properties +Subject: [PATCH 042/784] drm: Add chroma siting properties Signed-off-by: Dom Cobley --- @@ -6968,7 +6968,7 @@ index 447e664e49d5..fba2bb6731df 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 27 Jan 2022 15:32:04 +0000 -Subject: [PATCH 043/717] vc4/drm:plane: Make use of chroma siting parameter +Subject: [PATCH 043/784] vc4/drm:plane: Make use of chroma siting parameter Signed-off-by: Dom Cobley --- @@ -7034,7 +7034,7 @@ index db4267aada46..646abd145800 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 1 Apr 2022 11:31:38 +0100 -Subject: [PATCH 044/717] drm/vc4: Force trigger of dlist update on margins +Subject: [PATCH 044/784] drm/vc4: Force trigger of dlist update on margins change When the margins are changed, the dlist needs to be regenerated @@ -7100,7 +7100,7 @@ index 3be66ba8ecdd..a3d058d3c788 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Fri, 23 Oct 2020 14:39:23 +0200 -Subject: [PATCH 045/717] drm/atomic-helpers: remove legacy_cursor_update hacks +Subject: [PATCH 045/784] drm/atomic-helpers: remove legacy_cursor_update hacks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -7188,7 +7188,7 @@ index f3e59236a8ee..e8d77ab10389 100644 commit->event = kzalloc(sizeof(*commit->event), GFP_KERNEL); diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c -index 3f3982ae9974..f55d58fd8b34 100644 +index 455d9ae6c41c..0a550989f904 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -7766,6 +7766,19 @@ static int intel_atomic_commit(struct drm_device *dev, @@ -7231,7 +7231,7 @@ index 1686fbb611fd..b3cfabebe5d6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 5 May 2022 18:50:04 +0100 -Subject: [PATCH 046/717] drm/vc4_hdmi: Force a modeset when Broadcast RGB +Subject: [PATCH 046/784] drm/vc4_hdmi: Force a modeset when Broadcast RGB setting changes Without this the change is not visible until the next modeset @@ -7270,7 +7270,7 @@ index 431f901068a0..3546c7af0329 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 1 Apr 2022 17:10:37 +0100 -Subject: [PATCH 047/717] drm/atomic: If margins are updated, update all +Subject: [PATCH 047/784] drm/atomic: If margins are updated, update all planes. Margins may be implemented by scaling the planes, but as there @@ -7336,7 +7336,7 @@ index 4531f7441578..f6856df35093 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 6 Dec 2021 16:32:10 +0100 -Subject: [PATCH 048/717] drm/vc4: hvs: Ignore atomic_flush if we're disabled +Subject: [PATCH 048/784] drm/vc4: hvs: Ignore atomic_flush if we're disabled atomic_flush will be called for each CRTC even if they aren't enabled. @@ -7369,7 +7369,7 @@ index 38669ea71c4a..67effc334715 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 3 Jun 2022 16:49:09 +0100 -Subject: [PATCH 049/717] drm: vc4: 0 is a valid value for pixel_order_hvs5, so +Subject: [PATCH 049/784] drm: vc4: 0 is a valid value for pixel_order_hvs5, so fix conditionals vc4_plane_mode_set for HVS5 was using pixel_order unless pixel_order_hvs5 @@ -7493,7 +7493,7 @@ index 646abd145800..a21898d885c7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 6 Jun 2022 12:23:28 +0100 -Subject: [PATCH 050/717] drm: vc4: Omit pixel_order from the hvs_format for +Subject: [PATCH 050/784] drm: vc4: Omit pixel_order from the hvs_format for hvs5 only formats pixel_order is used for the earlier versions of the HVS, so is @@ -7553,7 +7553,7 @@ index a21898d885c7..cdd1dd6a7e48 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 3 Jun 2022 16:57:04 +0100 -Subject: [PATCH 051/717] drm: vc4: Add 3:3:2 and 4:4:4:4 RGB/RGBX/RGBA formats +Subject: [PATCH 051/784] drm: vc4: Add 3:3:2 and 4:4:4:4 RGB/RGBX/RGBA formats The hardware supports the 332 8bpp and 4:4:4:4 16bpp formats, but the table of supported formats didn't include them. @@ -7663,7 +7663,7 @@ index cdd1dd6a7e48..6432055454ac 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 6 Jun 2022 14:53:56 +0100 -Subject: [PATCH 052/717] drm: vc4: Add comments for which HVS_PIXEL_ORDER_xxx +Subject: [PATCH 052/784] drm: vc4: Add comments for which HVS_PIXEL_ORDER_xxx defines apply The HVS_PIXEL_ORDER_xxx defines apply to specific HVS_PIXEL_FORMAT_xxx @@ -7705,7 +7705,7 @@ index e162d3f3bd3c..098173290411 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell <8911409+pelwell@users.noreply.github.com> Date: Wed, 24 Aug 2022 11:14:40 +0100 -Subject: [PATCH 053/717] drm/vc4: Add async update support for cursor planes +Subject: [PATCH 053/784] drm/vc4: Add async update support for cursor planes Now that cursors are implemented as regular planes, all cursor movements result in atomic updates. As the firmware-kms driver @@ -7798,7 +7798,7 @@ index 6856de434928..e7f56b3eb213 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Aug 2022 13:49:16 +0100 -Subject: [PATCH 054/717] drm/vc4: Configure the HVS COB allocations +Subject: [PATCH 054/784] drm/vc4: Configure the HVS COB allocations The HVS Composite Output Buffer (COB) is the memory used to generate the output pixel data. @@ -7900,7 +7900,7 @@ index 67effc334715..23f8da10ea53 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 11 Aug 2022 13:59:34 +0100 -Subject: [PATCH 055/717] drm/vc4: Set AXI panic modes for the HVS +Subject: [PATCH 055/784] drm/vc4: Set AXI panic modes for the HVS The HVS can change AXI request mode based on how full the COB FIFOs are. @@ -7945,7 +7945,7 @@ index 23f8da10ea53..97388f9a75bc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jul 2022 10:38:25 +0200 -Subject: [PATCH 056/717] drm/vc4: hvs: Skip DebugFS Registration for FKMS +Subject: [PATCH 056/784] drm/vc4: hvs: Skip DebugFS Registration for FKMS FKMS doesn't have an HVS and it's expected. Return from the debugfs init function immediately if we're running with fkms. @@ -7976,7 +7976,7 @@ index 97388f9a75bc..094887d4673e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 15 Aug 2022 13:34:02 +0200 -Subject: [PATCH 057/717] media: uapi: Add some RGB bus formats for VC4 DPI +Subject: [PATCH 057/784] media: uapi: Add some RGB bus formats for VC4 DPI output The VC4 DPI controller can output more RGB formats that aren't described @@ -8022,7 +8022,7 @@ index ec3323dbb927..d4228d038b54 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 7 Apr 2022 18:23:07 +0100 -Subject: [PATCH 058/717] raspberrypi-firmware: Update mailbox commands +Subject: [PATCH 058/784] raspberrypi-firmware: Update mailbox commands Signed-off-by: Dom Cobley --- @@ -8127,7 +8127,7 @@ index 811ea668c4a1..dd3bbc75e531 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 11 Jul 2022 15:58:36 +0200 -Subject: [PATCH 059/717] clk: bcm: rpi: Create helper to retrieve private data +Subject: [PATCH 059/784] clk: bcm: rpi: Create helper to retrieve private data The RaspberryPi firmware clocks driver uses in several instances a container_of to retrieve the struct raspberrypi_clk_data from a pointer @@ -8203,7 +8203,7 @@ index 679f4649a7ef..b967c7b714db 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 6 Jun 2022 11:02:16 +0200 -Subject: [PATCH 060/717] arm64: setup: Fix build warning +Subject: [PATCH 060/784] arm64: setup: Fix build warning Signed-off-by: Maxime Ripard --- @@ -8233,7 +8233,7 @@ index fea3223704b6..a2dd48655bc4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: notro Date: Wed, 9 Jul 2014 14:46:08 +0200 -Subject: [PATCH 061/717] BCM2708: Add core Device Tree support +Subject: [PATCH 061/784] BCM2708: Add core Device Tree support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -46100,7 +46100,7 @@ index 3aa384cec76b..ed87353646bf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 13 Apr 2015 17:16:29 +0100 -Subject: [PATCH 062/717] config: Add default configs +Subject: [PATCH 062/784] config: Add default configs --- arch/arm/configs/bcm2709_defconfig | 1557 +++++++++++++++++++++++++ @@ -53940,7 +53940,7 @@ index 000000000000..e089eb07e98e From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 12 Apr 2022 20:07:20 +0100 -Subject: [PATCH 063/717] clk-raspberrypi: Add ISP to exported clocks +Subject: [PATCH 063/784] clk-raspberrypi: Add ISP to exported clocks Signed-off-by: Dom Cobley --- @@ -53968,7 +53968,7 @@ index b967c7b714db..9c4af1e70cae 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martin Sperl Date: Fri, 2 Sep 2016 16:45:27 +0100 -Subject: [PATCH 064/717] Register the clocks early during the boot process, so +Subject: [PATCH 064/784] 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. @@ -54019,7 +54019,7 @@ index e74fe6219d14..1e629fa834bd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 065/717] clk-bcm2835: Mark used PLLs and dividers CRITICAL +Subject: [PATCH 065/784] 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 @@ -54053,7 +54053,7 @@ index 1e629fa834bd..03e583d07702 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Feb 2017 17:20:08 +0000 -Subject: [PATCH 066/717] clk-bcm2835: Add claim-clocks property +Subject: [PATCH 066/784] 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, @@ -54177,7 +54177,7 @@ index 03e583d07702..b6cdb19ef059 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2017 09:06:18 +0000 -Subject: [PATCH 067/717] clk-bcm2835: Read max core clock from firmware +Subject: [PATCH 067/784] 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 @@ -54298,7 +54298,7 @@ index b6cdb19ef059..406ac78b08a6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 24 Jan 2019 15:09:28 +0000 -Subject: [PATCH 068/717] clk: clk-bcm2835: Use %zd when printing size_t +Subject: [PATCH 068/784] 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". @@ -54328,7 +54328,7 @@ index 406ac78b08a6..060a45a59b70 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Jan 2019 16:11:50 +0000 -Subject: [PATCH 069/717] clk-bcm2835: Don't wait for pllh lock +Subject: [PATCH 069/784] clk-bcm2835: Don't wait for pllh lock Signed-off-by: Phil Elwell --- @@ -54372,7 +54372,7 @@ index 060a45a59b70..a808f35b75b9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:11:05 -0700 -Subject: [PATCH 070/717] clk: bcm2835: Add support for setting leaf clock +Subject: [PATCH 070/784] 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 @@ -54431,7 +54431,7 @@ index a808f35b75b9..bc029be289dc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 15:24:04 -0700 -Subject: [PATCH 071/717] clk: bcm2835: Allow reparenting leaf clocks while +Subject: [PATCH 071/784] clk: bcm2835: Allow reparenting leaf clocks while they're running. This falls under the same "we can reprogram glitch-free as long as we @@ -54508,7 +54508,7 @@ index bc029be289dc..971f0ad84b6b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Aug 2019 15:23:14 +0100 -Subject: [PATCH 072/717] clk-bcm2835: Avoid null pointer exception +Subject: [PATCH 072/784] clk-bcm2835: Avoid null pointer exception clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating @@ -54543,7 +54543,7 @@ index 971f0ad84b6b..3c59e5c29ec4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 3 Sep 2019 20:28:00 +0100 -Subject: [PATCH 073/717] clk-bcm2835: Disable v3d clock +Subject: [PATCH 073/784] clk-bcm2835: Disable v3d clock This is controlled by firmware, see clk-raspberrypi.c @@ -54607,7 +54607,7 @@ index 3c59e5c29ec4..90e16822f1d5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 8 Jul 2021 09:37:10 +0100 -Subject: [PATCH 074/717] clk: bcm2835: Pass DT node to rpi_firmware_get +Subject: [PATCH 074/784] clk: bcm2835: Pass DT node to rpi_firmware_get The fw_node pointer has already been retrieved, and using it allows us to remove a downstream patch to the firmware driver. @@ -54637,7 +54637,7 @@ index 90e16822f1d5..448c5fcedbdf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 19 Oct 2021 14:14:55 +0100 -Subject: [PATCH 075/717] clk-bcm2835: Remove VEC clock support +Subject: [PATCH 075/784] clk-bcm2835: Remove VEC clock support Signed-off-by: Dom Cobley --- @@ -54677,7 +54677,7 @@ index 448c5fcedbdf..fdef9aa7401e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Thu, 21 Sep 2017 09:55:42 -0500 -Subject: [PATCH 076/717] arm: partially revert +Subject: [PATCH 076/784] arm: partially revert 702b94bff3c50542a6e4ab9a4f4cef093262fe65 * Re-expose some dmi APIs for use in VCSM @@ -54788,7 +54788,7 @@ index e21249548e9f..33e4a9b8f1ba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 25 Aug 2017 19:18:13 +0100 -Subject: [PATCH 077/717] cache: export clean and invalidate +Subject: [PATCH 077/784] cache: export clean and invalidate hack: cache: Fix linker error --- @@ -54849,7 +54849,7 @@ index 7c9499b728c4..499e55bda16f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 20 Apr 2020 13:41:10 +0100 -Subject: [PATCH 078/717] Revert "spi: spidev: Fix CS polarity if GPIO +Subject: [PATCH 078/784] Revert "spi: spidev: Fix CS polarity if GPIO descriptors are used" This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28. @@ -54887,7 +54887,7 @@ index 71c3db60e968..1dcf8886efb9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:12:44 +0000 -Subject: [PATCH 079/717] Revert "Bluetooth: Always request for user +Subject: [PATCH 079/784] Revert "Bluetooth: Always request for user confirmation for Just Works (LE SC)" This reverts commit ffee202a78c2980688bc5d2f7d56480e69a5e0c9. @@ -54938,7 +54938,7 @@ index 70663229b3cc..903221ad7611 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 1 Mar 2021 09:14:35 +0000 -Subject: [PATCH 080/717] Revert "Bluetooth: Always request for user +Subject: [PATCH 080/784] Revert "Bluetooth: Always request for user confirmation for Just Works" This reverts commit 92516cd97fd4d8ad5b1421a0d51771044f453a5f. @@ -54987,7 +54987,7 @@ index 903221ad7611..0f7dafc9bf99 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Mar 2022 16:18:55 +0000 -Subject: [PATCH 081/717] Revert "net: bcmgenet: Request APD, DLL disable and +Subject: [PATCH 081/784] Revert "net: bcmgenet: Request APD, DLL disable and IDDQ-SR" This reverts commit c3a4c69360ab43560f212eed326c9d8bde35b14c, which @@ -55022,7 +55022,7 @@ index ded0e64a9f6a..7ec07f071fc9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 -Subject: [PATCH 082/717] smsx95xx: fix crimes against truesize +Subject: [PATCH 082/784] 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. @@ -55075,7 +55075,7 @@ index 563ecd27b93e..d7317043d45b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 1 Apr 2016 17:27:21 +0100 -Subject: [PATCH 083/717] smsc95xx: Experimental: Enable turbo_mode and +Subject: [PATCH 083/784] smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default See: http://forum.kodi.tv/showthread.php?tid=285288 @@ -55124,7 +55124,7 @@ index d7317043d45b..a28894575e85 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Mar 2013 17:26:38 +0000 -Subject: [PATCH 084/717] Allow mac address to be set in smsc95xx +Subject: [PATCH 084/784] Allow mac address to be set in smsc95xx Signed-off-by: popcornmix @@ -55229,7 +55229,7 @@ index a28894575e85..1ad90b08e97d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH 085/717] cgroup: Disable cgroup "memory" by default +Subject: [PATCH 085/784] 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: @@ -55320,7 +55320,7 @@ index 2319946715e0..0bd2f8acde59 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Mar 2015 12:43:36 +0000 -Subject: [PATCH 086/717] Protect __release_resource against resources without +Subject: [PATCH 086/784] Protect __release_resource against resources without parents Without this patch, removing a device tree overlay can crash here. @@ -55354,7 +55354,7 @@ index 1aeeededdd4c..7fb4f2338345 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:33:30 +0000 -Subject: [PATCH 087/717] irq-bcm2836: Avoid "Invalid trigger warning" +Subject: [PATCH 087/784] irq-bcm2836: Avoid "Invalid trigger warning" Initialise the level for each IRQ to avoid a warning from the arm arch timer code. @@ -55384,7 +55384,7 @@ index 51491c3c6fdd..d8d61a136225 100644 From 0000000000000000000000000000000000000000 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 088/717] irqchip: bcm2835: Add FIQ support +Subject: [PATCH 088/784] irqchip: bcm2835: Add FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -55519,7 +55519,7 @@ index e94e2882286c..c593c4020b61 100644 From 0000000000000000000000000000000000000000 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 089/717] irqchip: irq-bcm2835: Add 2836 FIQ support +Subject: [PATCH 089/784] irqchip: irq-bcm2835: Add 2836 FIQ support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -55624,7 +55624,7 @@ index c593c4020b61..71994904a3c7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 24 Jan 2022 13:41:16 +0000 -Subject: [PATCH 090/717] spi: spidev: Completely disable the spidev warning +Subject: [PATCH 090/784] 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. @@ -55654,7 +55654,7 @@ index 1dcf8886efb9..ebe13ca17fbb 100644 From 0000000000000000000000000000000000000000 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 091/717] dmaengine: bcm2835: Load driver early and support +Subject: [PATCH 091/784] dmaengine: bcm2835: Load driver early and support legacy API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -55763,7 +55763,7 @@ index 630dfbb01a40..bf7ba96a39f9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 15 Jun 2016 16:48:41 +0100 -Subject: [PATCH 092/717] rtc: Add SPI alias for pcf2123 driver +Subject: [PATCH 092/784] rtc: Add SPI alias for pcf2123 driver Without this alias, Device Tree won't cause the driver to be loaded. @@ -55789,7 +55789,7 @@ index e13b5e695d06..939a00c3dbc8 100644 From 0000000000000000000000000000000000000000 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 093/717] watchdog: bcm2835: Support setting reboot partition +Subject: [PATCH 093/784] watchdog: bcm2835: Support setting reboot partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -55897,7 +55897,7 @@ index 94907176a0e4..58d5a1b89584 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 Apr 2016 19:40:12 +0100 -Subject: [PATCH 094/717] reboot: Use power off rather than busy spinning when +Subject: [PATCH 094/784] reboot: Use power off rather than busy spinning when halt is requested --- @@ -55926,7 +55926,7 @@ index 3f0d5c3dae11..cfdbcc9826c0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Nov 2016 13:02:52 +0000 -Subject: [PATCH 095/717] bcm: Make RASPBERRYPI_POWER depend on PM +Subject: [PATCH 095/784] bcm: Make RASPBERRYPI_POWER depend on PM --- drivers/soc/bcm/Kconfig | 1 + @@ -55951,7 +55951,7 @@ index 24f92a6e882a..a6a705ec30c7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 6 Dec 2016 17:05:39 +0000 -Subject: [PATCH 096/717] bcm2835-rng: Avoid initialising if already enabled +Subject: [PATCH 096/784] bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it --- @@ -55982,7 +55982,7 @@ index e98fcac578d6..cd1713c2d058 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 9 Feb 2017 14:36:44 +0000 -Subject: [PATCH 097/717] sound: Demote deferral errors to INFO level +Subject: [PATCH 097/784] 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. @@ -56023,7 +56023,7 @@ index a409fbed8f34..e6ba3df17ed8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Claggy3 Date: Sat, 11 Feb 2017 14:00:30 +0000 -Subject: [PATCH 098/717] Update vfpmodule.c +Subject: [PATCH 098/784] 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 @@ -56166,7 +56166,7 @@ index 2cb355c1b5b7..1e2dcf81aefa 100644 From 0000000000000000000000000000000000000000 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 099/717] i2c: bcm2835: Add debug support +Subject: [PATCH 099/784] i2c: bcm2835: Add debug support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -56361,7 +56361,7 @@ index f72c6576d8a3..394282a37f67 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Jan 2018 16:52:45 +0000 -Subject: [PATCH 100/717] irqchip: irq-bcm2836: Remove regmap and syscon use +Subject: [PATCH 100/784] 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 @@ -56481,7 +56481,7 @@ index d8d61a136225..f049397bd00d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Oct 2017 15:04:29 +0100 -Subject: [PATCH 101/717] lan78xx: Enable LEDs and auto-negotiation +Subject: [PATCH 101/784] 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 @@ -56536,7 +56536,7 @@ index c458c030fadf..db3c5ce62f7f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 23 Feb 2016 17:26:48 +0000 -Subject: [PATCH 102/717] amba_pl011: Don't use DT aliases for numbering +Subject: [PATCH 102/784] 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 @@ -56571,7 +56571,7 @@ index 0a1cc36f93aa..74bd00adbc27 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Mar 2017 16:07:39 +0000 -Subject: [PATCH 103/717] amba_pl011: Round input clock up +Subject: [PATCH 103/784] 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 @@ -56663,7 +56663,7 @@ index 74bd00adbc27..302749bb2470 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 104/717] amba_pl011: Insert mb() for correct FIFO handling +Subject: [PATCH 104/784] 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 @@ -56696,7 +56696,7 @@ index 302749bb2470..5d4e0bc232dc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Sep 2017 10:32:19 +0100 -Subject: [PATCH 105/717] amba_pl011: Add cts-event-workaround DT property +Subject: [PATCH 105/784] 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 @@ -56754,7 +56754,7 @@ index 5d4e0bc232dc..7245c4a5db56 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Jan 2020 09:35:19 +0000 -Subject: [PATCH 106/717] tty: amba-pl011: Avoid rare write-when-full error +Subject: [PATCH 106/784] 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 @@ -56802,7 +56802,7 @@ index 7245c4a5db56..6f92f581e18c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: notro Date: Thu, 10 Jul 2014 13:59:47 +0200 -Subject: [PATCH 107/717] pinctrl-bcm2835: Set base to 0 give expected gpio +Subject: [PATCH 107/784] pinctrl-bcm2835: Set base to 0 give expected gpio numbering Signed-off-by: Noralf Tronnes @@ -56820,10 +56820,10 @@ Signed-off-by: Phil Elwell 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index c7cdccdb4332..dc603204d2d2 100644 +index 0f1ab0829ffe..2091ff962cf3 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -383,7 +383,7 @@ static const struct gpio_chip bcm2835_gpio_chip = { +@@ -393,7 +393,7 @@ static const struct gpio_chip bcm2835_gpio_chip = { .get = bcm2835_gpio_get, .set = bcm2835_gpio_set, .set_config = gpiochip_generic_config, @@ -56832,7 +56832,7 @@ index c7cdccdb4332..dc603204d2d2 100644 .ngpio = BCM2835_NUM_GPIOS, .can_sleep = false, .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback, -@@ -400,7 +400,7 @@ static const struct gpio_chip bcm2711_gpio_chip = { +@@ -410,7 +410,7 @@ static const struct gpio_chip bcm2711_gpio_chip = { .get = bcm2835_gpio_get, .set = bcm2835_gpio_set, .set_config = gpiochip_generic_config, @@ -56848,7 +56848,7 @@ index c7cdccdb4332..dc603204d2d2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 12 May 2013 12:24:19 +0100 -Subject: [PATCH 108/717] Main bcm2708/bcm2709 linux port +Subject: [PATCH 108/784] Main bcm2708/bcm2709 linux port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -57010,7 +57010,7 @@ index fbfd0202047c..7e0d62fbc83e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 May 2013 19:46:17 +0100 -Subject: [PATCH 109/717] Add dwc_otg driver +Subject: [PATCH 109/784] Add dwc_otg driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -118237,7 +118237,7 @@ index 000000000000..cdc9963176e5 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 17:06:34 +0100 -Subject: [PATCH 110/717] bcm2708 framebuffer driver +Subject: [PATCH 110/784] bcm2708 framebuffer driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -121798,7 +121798,7 @@ index 3c14e43b82fe..7626beb6a5bb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 14 Mar 2019 13:27:54 +0000 -Subject: [PATCH 111/717] Pulled in the multi frame buffer support from the Pi3 +Subject: [PATCH 111/784] Pulled in the multi frame buffer support from the Pi3 repo --- @@ -122581,7 +122581,7 @@ index 831e9a7b6818..f66957d48dc3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 17 Jun 2013 13:32:11 +0300 -Subject: [PATCH 112/717] fbdev: add FBIOCOPYAREA ioctl +Subject: [PATCH 112/784] fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 @@ -122825,7 +122825,7 @@ index f66957d48dc3..0e9ec3f593b8 100644 static int bcm2708_fb_register(struct bcm2708_fb *fb) diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c -index 14ef3aab7663..4f408d350424 100644 +index 221f3cfd13e2..eb04854d130e 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -1094,6 +1094,30 @@ fb_blank(struct fb_info *info, int blank) @@ -122867,7 +122867,7 @@ index 14ef3aab7663..4f408d350424 100644 void __user *argp = (void __user *)arg; long ret = 0; -@@ -1181,6 +1206,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, +@@ -1183,6 +1208,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, unlock_fb_info(info); console_unlock(); break; @@ -122883,7 +122883,7 @@ index 14ef3aab7663..4f408d350424 100644 default: lock_fb_info(info); fb = info->fbops; -@@ -1320,6 +1354,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, +@@ -1322,6 +1356,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, case FBIOPAN_DISPLAY: case FBIOGET_CON2FBMAP: case FBIOPUT_CON2FBMAP: @@ -122928,7 +122928,7 @@ index 3a49913d006c..d9960887cf9e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Fri, 22 Nov 2013 14:22:53 +0100 -Subject: [PATCH 113/717] dmaengine: Add support for BCM2708 +Subject: [PATCH 113/784] dmaengine: Add support for BCM2708 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -123594,7 +123594,7 @@ index 000000000000..6ca874d332a8 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 114/717] MMC: added alternative MMC driver +Subject: [PATCH 114/784] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -123844,7 +123844,7 @@ Signed-off-by: Phil Elwell create mode 100644 drivers/mmc/host/bcm2835-mmc.c diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c -index db6d8a099910..f12e774df12a 100644 +index 498333b769fd..bc1b8faed8cd 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -173,6 +173,13 @@ static DEFINE_MUTEX(open_lock); @@ -123861,7 +123861,7 @@ index db6d8a099910..f12e774df12a 100644 static inline int mmc_blk_part_switch(struct mmc_card *card, unsigned int part_type); static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, -@@ -2964,6 +2971,8 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2969,6 +2976,8 @@ static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md; int ret = 0; @@ -123870,7 +123870,7 @@ index db6d8a099910..f12e774df12a 100644 /* * Check that the card supports the command class(es) we need. -@@ -2971,7 +2980,16 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2976,7 +2985,16 @@ static int mmc_blk_probe(struct mmc_card *card) if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -123888,7 +123888,7 @@ index db6d8a099910..f12e774df12a 100644 card->complete_wq = alloc_workqueue("mmc_complete", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); -@@ -2986,6 +3004,17 @@ static int mmc_blk_probe(struct mmc_card *card) +@@ -2991,6 +3009,17 @@ static int mmc_blk_probe(struct mmc_card *card) goto out_free; } @@ -125635,7 +125635,7 @@ index c726ea781255..a228f33a1e69 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Mar 2015 17:49:47 +0000 -Subject: [PATCH 115/717] Adding bcm2835-sdhost driver, and an overlay to +Subject: [PATCH 115/784] Adding bcm2835-sdhost driver, and an overlay to enable it BCM2835 has two SD card interfaces. This driver uses the other one. @@ -128148,7 +128148,7 @@ index 000000000000..c29ef052425d From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 28 Oct 2016 15:36:43 +0100 -Subject: [PATCH 116/717] vc_mem: Add vc_mem driver for querying firmware +Subject: [PATCH 116/784] vc_mem: Add vc_mem driver for querying firmware memory addresses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -128657,7 +128657,7 @@ index 000000000000..3c7079237496 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Fri, 21 Aug 2015 23:14:48 +0100 -Subject: [PATCH 117/717] Add /dev/gpiomem device for rootless user GPIO access +Subject: [PATCH 117/784] Add /dev/gpiomem device for rootless user GPIO access Signed-off-by: Luke Wren @@ -128967,7 +128967,7 @@ index 000000000000..f5e7f1ba8fb6 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Sat, 5 Sep 2015 01:14:45 +0100 -Subject: [PATCH 118/717] Add SMI driver +Subject: [PATCH 118/784] Add SMI driver Signed-off-by: Luke Wren @@ -130961,7 +130961,7 @@ index 000000000000..ee3a75edfc03 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 17 Jun 2015 15:44:08 +0100 -Subject: [PATCH 119/717] Add Chris Boot's i2c driver +Subject: [PATCH 119/784] Add Chris Boot's i2c driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -131632,7 +131632,7 @@ index 000000000000..962f2e5c7455 From 0000000000000000000000000000000000000000 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 120/717] char: broadcom: Add vcio module +Subject: [PATCH 120/784] char: broadcom: Add vcio module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -131916,7 +131916,7 @@ index 000000000000..ac314617229c From 0000000000000000000000000000000000000000 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 121/717] firmware: bcm2835: Support ARCH_BCM270x +Subject: [PATCH 121/784] firmware: bcm2835: Support ARCH_BCM270x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -131996,7 +131996,7 @@ index dba315f675bc..2ace1a4e4822 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 6 Feb 2015 13:50:57 +0000 -Subject: [PATCH 122/717] leds: Add the "input" trigger, for pwr_led +Subject: [PATCH 122/784] leds: Add the "input" trigger, for pwr_led The "input" trigger makes the associated GPIO an input. This is to support the Raspberry Pi PWR LED, which is driven by external hardware in normal use. @@ -132179,7 +132179,7 @@ index ba4861ec73d3..3f57ad16cefc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 3 Jul 2013 00:54:08 +0100 -Subject: [PATCH 123/717] Added Device IDs for August DVB-T 205 +Subject: [PATCH 123/784] Added Device IDs for August DVB-T 205 --- drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++ @@ -132207,7 +132207,7 @@ index 795a012d4020..adb1028d5f25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Nov 2016 16:50:04 +0000 -Subject: [PATCH 124/717] Improve __copy_to_user and __copy_from_user +Subject: [PATCH 124/784] Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use @@ -133643,7 +133643,7 @@ index 000000000000..087d68ea5d18 +ENDPROC(memset) +ENDPROC(mmioset) diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c -index 14eecaaf295f..6994e2860b12 100644 +index e4c2677cc1e9..4f90eca3855c 100644 --- a/arch/arm/lib/uaccess_with_memcpy.c +++ b/arch/arm/lib/uaccess_with_memcpy.c @@ -19,6 +19,14 @@ @@ -133855,7 +133855,7 @@ index 780704f29dd4..d3206a2a257b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 25 Jun 2015 12:16:11 +0100 -Subject: [PATCH 125/717] gpio-poweroff: Allow it to work on Raspberry Pi +Subject: [PATCH 125/784] 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 @@ -133896,7 +133896,7 @@ index 1c5af2fef142..3e670131f2a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 14 Jul 2015 14:32:47 +0100 -Subject: [PATCH 126/717] mfd: Add Raspberry Pi Sense HAT core driver +Subject: [PATCH 126/784] mfd: Add Raspberry Pi Sense HAT core driver mfd: Add rpi_sense_core of compatible string --- @@ -134780,7 +134780,7 @@ index 000000000000..56196dc2af10 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Florian Meier Date: Mon, 25 Jan 2016 15:48:59 +0000 -Subject: [PATCH 127/717] Add support for all the downstream rpi sound card +Subject: [PATCH 127/784] Add support for all the downstream rpi sound card drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -149798,7 +149798,7 @@ index 000000000000..835d0f9420e7 +MODULE_DESCRIPTION("ASoC Raspberry Pi Hat generic digi driver for WM8804 based cards"); +MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 3f16ad1c3758..714c79b087cb 100644 +index 965ae55fa160..94c5060441b5 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -109,6 +109,7 @@ config SND_SOC_ALL_CODECS @@ -149825,7 +149825,7 @@ index 3f16ad1c3758..714c79b087cb 100644 imply SND_SOC_PCM3008 imply SND_SOC_PCM3060_I2C imply SND_SOC_PCM3060_SPI -@@ -233,6 +236,7 @@ config SND_SOC_ALL_CODECS +@@ -234,6 +237,7 @@ config SND_SOC_ALL_CODECS imply SND_SOC_TLV320ADCX140 imply SND_SOC_TLV320AIC23_I2C imply SND_SOC_TLV320AIC23_SPI @@ -149833,7 +149833,7 @@ index 3f16ad1c3758..714c79b087cb 100644 imply SND_SOC_TLV320AIC26 imply SND_SOC_TLV320AIC31XX imply SND_SOC_TLV320AIC32X4_I2C -@@ -382,12 +386,12 @@ config SND_SOC_AD193X +@@ -383,12 +387,12 @@ config SND_SOC_AD193X tristate config SND_SOC_AD193X_SPI @@ -149848,7 +149848,7 @@ index 3f16ad1c3758..714c79b087cb 100644 depends on I2C select SND_SOC_AD193X -@@ -990,6 +994,13 @@ config SND_SOC_LOCHNAGAR_SC +@@ -991,6 +995,13 @@ config SND_SOC_LOCHNAGAR_SC This driver support the sound card functionality of the Cirrus Logic Lochnagar audio development board. @@ -149862,7 +149862,7 @@ index 3f16ad1c3758..714c79b087cb 100644 config SND_SOC_MADERA tristate default y if SND_SOC_CS47L15=y -@@ -1327,6 +1338,10 @@ config SND_SOC_RT5616 +@@ -1333,6 +1344,10 @@ config SND_SOC_RT5616 tristate "Realtek RT5616 CODEC" depends on I2C @@ -149873,7 +149873,7 @@ index 3f16ad1c3758..714c79b087cb 100644 config SND_SOC_RT5631 tristate "Realtek ALC5631/RT5631 CODEC" depends on I2C -@@ -1616,6 +1631,9 @@ config SND_SOC_TFA9879 +@@ -1622,6 +1637,9 @@ config SND_SOC_TFA9879 tristate "NXP Semiconductors TFA9879 amplifier" depends on I2C @@ -149883,7 +149883,7 @@ index 3f16ad1c3758..714c79b087cb 100644 config SND_SOC_TFA989X tristate "NXP/Goodix TFA989X (TFA1) amplifiers" depends on I2C -@@ -2162,4 +2180,8 @@ config SND_SOC_LPASS_TX_MACRO +@@ -2168,4 +2186,8 @@ config SND_SOC_LPASS_TX_MACRO select SND_SOC_LPASS_MACRO_COMMON tristate "Qualcomm TX Macro in LPASS(Low Power Audio SubSystem)" @@ -149893,7 +149893,7 @@ index 3f16ad1c3758..714c79b087cb 100644 + endmenu diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile -index 9170ee1447dd..901a7c957d1a 100644 +index 71d3ce5867e4..6e1e71dc6474 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -113,6 +113,7 @@ snd-soc-hda-codec-objs := hda.o hda-dai.o @@ -149920,7 +149920,7 @@ index 9170ee1447dd..901a7c957d1a 100644 snd-soc-pcm3008-objs := pcm3008.o snd-soc-pcm3060-objs := pcm3060.o snd-soc-pcm3060-i2c-objs := pcm3060-i2c.o -@@ -255,6 +258,7 @@ snd-soc-tas6424-objs := tas6424.o +@@ -256,6 +259,7 @@ snd-soc-tas6424-objs := tas6424.o snd-soc-tda7419-objs := tda7419.o snd-soc-tas2770-objs := tas2770.o snd-soc-tfa9879-objs := tfa9879.o @@ -149928,7 +149928,7 @@ index 9170ee1447dd..901a7c957d1a 100644 snd-soc-tfa989x-objs := tfa989x.o snd-soc-tlv320adc3xxx-objs := tlv320adc3xxx.o snd-soc-tlv320aic23-objs := tlv320aic23.o -@@ -473,6 +477,7 @@ obj-$(CONFIG_SND_SOC_HDA) += snd-soc-hda-codec.o +@@ -474,6 +478,7 @@ obj-$(CONFIG_SND_SOC_HDA) += snd-soc-hda-codec.o obj-$(CONFIG_SND_SOC_ICS43432) += snd-soc-ics43432.o obj-$(CONFIG_SND_SOC_INNO_RK3036) += snd-soc-inno-rk3036.o obj-$(CONFIG_SND_SOC_ISABELLE) += snd-soc-isabelle.o @@ -149936,7 +149936,7 @@ index 9170ee1447dd..901a7c957d1a 100644 obj-$(CONFIG_SND_SOC_JZ4740_CODEC) += snd-soc-jz4740-codec.o obj-$(CONFIG_SND_SOC_JZ4725B_CODEC) += snd-soc-jz4725b-codec.o obj-$(CONFIG_SND_SOC_JZ4760_CODEC) += snd-soc-jz4760-codec.o -@@ -481,6 +486,7 @@ obj-$(CONFIG_SND_SOC_L3) += snd-soc-l3.o +@@ -482,6 +487,7 @@ obj-$(CONFIG_SND_SOC_L3) += snd-soc-l3.o obj-$(CONFIG_SND_SOC_LM4857) += snd-soc-lm4857.o obj-$(CONFIG_SND_SOC_LM49453) += snd-soc-lm49453.o obj-$(CONFIG_SND_SOC_LOCHNAGAR_SC) += snd-soc-lochnagar-sc.o @@ -149944,7 +149944,7 @@ index 9170ee1447dd..901a7c957d1a 100644 obj-$(CONFIG_SND_SOC_MADERA) += snd-soc-madera.o obj-$(CONFIG_SND_SOC_MAX9759) += snd-soc-max9759.o obj-$(CONFIG_SND_SOC_MAX9768) += snd-soc-max9768.o -@@ -538,6 +544,7 @@ obj-$(CONFIG_SND_SOC_PCM5102A) += snd-soc-pcm5102a.o +@@ -539,6 +545,7 @@ obj-$(CONFIG_SND_SOC_PCM5102A) += snd-soc-pcm5102a.o obj-$(CONFIG_SND_SOC_PCM512x) += snd-soc-pcm512x.o obj-$(CONFIG_SND_SOC_PCM512x_I2C) += snd-soc-pcm512x-i2c.o obj-$(CONFIG_SND_SOC_PCM512x_SPI) += snd-soc-pcm512x-spi.o @@ -149952,7 +149952,7 @@ index 9170ee1447dd..901a7c957d1a 100644 obj-$(CONFIG_SND_SOC_RK3328) += snd-soc-rk3328.o obj-$(CONFIG_SND_SOC_RK817) += snd-soc-rk817.o obj-$(CONFIG_SND_SOC_RL6231) += snd-soc-rl6231.o -@@ -611,6 +618,7 @@ obj-$(CONFIG_SND_SOC_TAS5805M) += snd-soc-tas5805m.o +@@ -613,6 +620,7 @@ obj-$(CONFIG_SND_SOC_TAS5805M) += snd-soc-tas5805m.o obj-$(CONFIG_SND_SOC_TAS6424) += snd-soc-tas6424.o obj-$(CONFIG_SND_SOC_TDA7419) += snd-soc-tda7419.o obj-$(CONFIG_SND_SOC_TAS2770) += snd-soc-tas2770.o @@ -152562,7 +152562,7 @@ index 3ecd1ba7fd4b..fd1c310f2990 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: P33M Date: Wed, 21 Oct 2015 14:55:21 +0100 -Subject: [PATCH 128/717] rpi_display: add backlight driver and overlay +Subject: [PATCH 128/784] 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 @@ -152745,7 +152745,7 @@ index 000000000000..14a0d9b03739 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 23 Feb 2016 19:56:04 +0000 -Subject: [PATCH 129/717] bcm2835-virtgpio: Virtual GPIO driver +Subject: [PATCH 129/784] bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. @@ -152769,7 +152769,7 @@ Signed-off-by: Phil Elwell create mode 100644 drivers/gpio/gpio-bcm-virt.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index a01af1180616..cbe925d16d5e 100644 +index e3af86f06c63..abcac7ec9146 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -194,6 +194,12 @@ config GPIO_BCM_XGS_IPROC @@ -153024,7 +153024,7 @@ index 000000000000..55c40190e88a From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Pantelis Antoniou Date: Wed, 3 Dec 2014 13:23:28 +0200 -Subject: [PATCH 130/717] OF: DT-Overlay configfs interface +Subject: [PATCH 130/784] 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. @@ -153442,7 +153442,7 @@ index 000000000000..ac04301dabe1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cheong2K Date: Fri, 26 Feb 2016 18:20:10 +0800 -Subject: [PATCH 131/717] brcm: adds support for BCM43341 wifi +Subject: [PATCH 131/784] brcm: adds support for BCM43341 wifi brcmfmac: Disable power management @@ -153501,10 +153501,10 @@ Signed-off-by: Phil Elwell 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index ea8409e0e70e..edfde4360519 100644 +index ad5a8d61d938..74a86a61f3cb 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2961,7 +2961,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, +@@ -2962,7 +2962,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, brcmf_dbg(INFO, "Do not enable power save for P2P clients\n"); pm = PM_OFF; } @@ -153554,7 +153554,7 @@ index e265a2e411a0..fba766873a33 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 17 Dec 2015 13:37:07 +0000 -Subject: [PATCH 132/717] hci_h5: Don't send conf_req when ACTIVE +Subject: [PATCH 132/784] 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. @@ -153563,7 +153563,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 6455bc4fb5bb..a006b12def07 100644 +index e90670955df2..e0a50fd27cbc 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -357,7 +357,8 @@ static void h5_handle_internal_rx(struct hci_uart *hu) @@ -153583,7 +153583,7 @@ index 6455bc4fb5bb..a006b12def07 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 14 Jan 2017 21:43:57 -0800 -Subject: [PATCH 133/717] ARM64: Round-Robin dispatch IRQs between CPUs. +Subject: [PATCH 133/784] 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 @@ -153663,7 +153663,7 @@ index f049397bd00d..ed7fdf27abfa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Zoran Date: Sat, 11 Feb 2017 01:18:31 -0800 -Subject: [PATCH 134/717] ARM64: Force hardware emulation of deprecated +Subject: [PATCH 134/784] ARM64: Force hardware emulation of deprecated instructions. --- @@ -153697,7 +153697,7 @@ index fb0e7c7b2e20..ac473d6dea78 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Tue, 14 Nov 2017 15:13:15 +0000 -Subject: [PATCH 135/717] AXI performance monitor driver (#2222) +Subject: [PATCH 135/784] AXI performance monitor driver (#2222) Uses the debugfs I/F to provide access to the AXI bus performance monitors. @@ -154399,7 +154399,7 @@ index 000000000000..5ae2bdaa88b4 From 0000000000000000000000000000000000000000 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 136/717] ARM: bcm2835: Set Serial number and Revision +Subject: [PATCH 136/784] ARM: bcm2835: Set Serial number and Revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -154468,7 +154468,7 @@ index bfc556f76720..73ec2427fbcf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 16 Jul 2018 14:40:13 +0100 -Subject: [PATCH 137/717] dwc-otg: FIQ: Fix "bad mode in data abort handler" +Subject: [PATCH 137/784] 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 @@ -154590,7 +154590,7 @@ index 73ec2427fbcf..9b6c921106b5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Dec 2017 09:18:32 +0000 -Subject: [PATCH 138/717] ARM: Activate FIQs to avoid __irq_startup warnings +Subject: [PATCH 138/784] 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. @@ -154632,7 +154632,7 @@ index 98ca3e3fa847..c3fe7d3cf482 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 20 Feb 2018 10:07:27 +0000 -Subject: [PATCH 139/717] i2c-gpio: Also set bus numbers from reg property +Subject: [PATCH 139/784] 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 @@ -154673,7 +154673,7 @@ index b1985c1667e1..7ff74c018463 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: hdoverobinson Date: Tue, 13 Mar 2018 06:58:39 -0400 -Subject: [PATCH 140/717] added capture_clear option to pps-gpio via dtoverlay +Subject: [PATCH 140/784] added capture_clear option to pps-gpio via dtoverlay (#2433) --- @@ -154701,7 +154701,7 @@ index 2f4b11b4dfcd..b10b43538542 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Mar 2018 12:01:00 +0000 -Subject: [PATCH 141/717] lan78xx: Read initial EEE status from DT +Subject: [PATCH 141/784] lan78xx: Read initial EEE status from DT Add two new DT properties: * microchip,eee-enabled - a boolean to enable EEE @@ -154747,7 +154747,7 @@ index db3c5ce62f7f..ce1efc212034 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 14 Jul 2014 22:02:09 +0100 -Subject: [PATCH 142/717] hid: Reduce default mouse polling interval to 60Hz +Subject: [PATCH 142/784] hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X --- @@ -154785,7 +154785,7 @@ index be4c731aaa65..ffbe95c9a00d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nick Bulleid Date: Thu, 10 May 2018 21:57:02 +0100 -Subject: [PATCH 143/717] Add ability to export gpio used by gpio-poweroff +Subject: [PATCH 143/784] Add ability to export gpio used by gpio-poweroff Signed-off-by: Nick Bulleid @@ -154887,7 +154887,7 @@ index 3e670131f2a8..e5dca66360a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 12 May 2018 21:35:43 +0100 -Subject: [PATCH 144/717] firmware/raspberrypi: Notify firmware of a reboot +Subject: [PATCH 144/784] firmware/raspberrypi: Notify firmware of a reboot Register for reboot notifications, sending RPI_FIRMWARE_NOTIFY_REBOOT over the mailbox interface on reception. @@ -154977,7 +154977,7 @@ index 2ace1a4e4822..11df82a893ef 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Jun 2018 11:21:04 +0100 -Subject: [PATCH 145/717] irqchip: irq-bcm2835: Calc. FIQ_START at boot-time +Subject: [PATCH 145/784] 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 @@ -155049,7 +155049,7 @@ index ada3d9d2ed97..b91ce4b6a107 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Jun 2018 15:21:10 +0100 -Subject: [PATCH 146/717] net: lan78xx: Disable TCP Segmentation Offload (TSO) +Subject: [PATCH 146/784] 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 @@ -155111,7 +155111,7 @@ index ce1efc212034..33a77a438605 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Jun 2018 12:20:01 +0100 -Subject: [PATCH 147/717] brcmfmac: Re-enable firmware roaming support +Subject: [PATCH 147/784] 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 @@ -155146,7 +155146,7 @@ index 53acff45294a..fc5232a89653 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Apr 2018 14:46:11 +0100 -Subject: [PATCH 148/717] lan78xx: Move enabling of EEE into PHY init code +Subject: [PATCH 148/784] 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 @@ -155216,7 +155216,7 @@ index 33a77a438605..4d50a1f1dec7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 17 Sep 2018 17:31:18 +0100 -Subject: [PATCH 149/717] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 +Subject: [PATCH 149/784] cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT --- @@ -155242,7 +155242,7 @@ index 4656afae5bb4..328ea94d14f9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 13 Oct 2018 13:31:21 +0200 -Subject: [PATCH 150/717] firmware: raspberrypi: Add backward compatible +Subject: [PATCH 150/784] firmware: raspberrypi: Add backward compatible get_throttled Avoid a hard userspace ABI change by adding a compatible get_throttled @@ -155327,7 +155327,7 @@ index 11df82a893ef..24eeb1700ed7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 6 Nov 2018 12:57:48 +0000 -Subject: [PATCH 151/717] sc16is7xx: Don't spin if no data received +Subject: [PATCH 151/784] sc16is7xx: Don't spin if no data received See: https://github.com/raspberrypi/linux/issues/2676 @@ -155356,7 +155356,7 @@ index 93cf5f788817..6864adaaba7d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ram Chandrasekar Date: Mon, 7 May 2018 11:54:08 -0600 -Subject: [PATCH 152/717] drivers: thermal: step_wise: add support for +Subject: [PATCH 152/784] drivers: thermal: step_wise: add support for hysteresis Step wise governor increases the mitigation level when the temperature @@ -155450,7 +155450,7 @@ index cdd3354bc27f..d5097e2cd6cc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Tue, 2 Oct 2018 11:14:15 +0100 -Subject: [PATCH 153/717] drivers: thermal: step_wise: avoid throttling at +Subject: [PATCH 153/784] drivers: thermal: step_wise: avoid throttling at hysteresis temperature after dropping below it Signed-off-by: Serge Schneider @@ -155478,7 +155478,7 @@ index d5097e2cd6cc..e68791e2667f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Fri, 2 Nov 2018 11:55:49 +0000 -Subject: [PATCH 154/717] Update issue templates (#2736) +Subject: [PATCH 154/784] Update issue templates (#2736) --- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++++++++++++++++++ @@ -155532,7 +155532,7 @@ index 000000000000..09bdc4a96838 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Nov 2018 19:46:58 +0000 -Subject: [PATCH 155/717] net: lan78xx: Support auto-downshift to 100Mb/s +Subject: [PATCH 155/784] 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 @@ -155633,7 +155633,7 @@ index 517288da19fd..626c450d71f4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 10 Jan 2019 17:58:06 +0000 -Subject: [PATCH 156/717] firmware: raspberrypi: Report the fw variant during +Subject: [PATCH 156/784] firmware: raspberrypi: Report the fw variant during probe The driver already reported the firmware build date during probe. @@ -155728,7 +155728,7 @@ index 24eeb1700ed7..843a77a0aaf3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joshua Emele Date: Wed, 7 Nov 2018 16:07:40 -0800 -Subject: [PATCH 157/717] lan78xx: Debounce link events to minimize poll storm +Subject: [PATCH 157/784] 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 @@ -155779,7 +155779,7 @@ index 4d50a1f1dec7..e12a25d2da10 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 Mar 2019 09:51:22 +0000 -Subject: [PATCH 158/717] lan78xx: EEE support is now a PHY property +Subject: [PATCH 158/784] 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. @@ -155811,7 +155811,7 @@ index e12a25d2da10..a0ddd522d926 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 20 Jul 2018 22:03:41 +0100 -Subject: [PATCH 159/717] bcm2835-dma: Add support for per-channel flags +Subject: [PATCH 159/784] 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 @@ -155865,7 +155865,7 @@ index bf7ba96a39f9..87b5d0bef355 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 29 Mar 2019 10:53:14 +0000 -Subject: [PATCH 160/717] rtc: rv3028: Add backup switchover mode support +Subject: [PATCH 160/784] rtc: rv3028: Add backup switchover mode support Signed-off-by: Phil Howard --- @@ -155951,7 +155951,7 @@ index dd170e3efd83..14b701a00e6a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:56:59 +0000 -Subject: [PATCH 161/717] media: tc358743: Increase FIFO level to 374. +Subject: [PATCH 161/784] 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 @@ -155988,7 +155988,7 @@ index 200841c1f5cf..76503a00772b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:21 +0000 -Subject: [PATCH 162/717] media: tc358743: Add support for 972Mbit/s link freq. +Subject: [PATCH 162/784] 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. @@ -156073,7 +156073,7 @@ index 76503a00772b..17254fe6283a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:34 +0000 -Subject: [PATCH 163/717] media: tc358743: Check I2C succeeded during probe. +Subject: [PATCH 163/784] 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. @@ -156177,7 +156177,7 @@ index 17254fe6283a..60708532e042 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:46 +0000 -Subject: [PATCH 164/717] media: adv7180: Default to the first valid input +Subject: [PATCH 164/784] media: adv7180: Default to the first valid input The hardware default is differential CVBS on AIN1 & 2, which isn't very useful. @@ -156228,7 +156228,7 @@ index 216fe396973f..88af88f16c42 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:57:56 +0000 -Subject: [PATCH 165/717] media: adv7180: Add YPrPb support for ADV7282M +Subject: [PATCH 165/784] 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 @@ -156258,7 +156258,7 @@ index 88af88f16c42..2aa29616081f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:58:08 +0000 -Subject: [PATCH 166/717] media: videodev2: Add helper defines for printing +Subject: [PATCH 166/784] media: videodev2: Add helper defines for printing FOURCCs New helper defines that allow printing of a FOURCC using @@ -156292,7 +156292,7 @@ index 29da1f4b4578..2b5f166b1ce7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:06 +0000 -Subject: [PATCH 167/717] dt-bindings: Document BCM283x CSI2/CCP2 receiver +Subject: [PATCH 167/784] dt-bindings: Document BCM283x CSI2/CCP2 receiver Document the DT bindings for the CSI2/CCP2 receiver peripheral (known as Unicam) on BCM283x SoCs. @@ -156402,7 +156402,7 @@ index 000000000000..7714fb374b34 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 14:59:40 +0000 -Subject: [PATCH 168/717] MAINTAINERS: Add entry for BCM2835 Unicam driver +Subject: [PATCH 168/784] MAINTAINERS: Add entry for BCM2835 Unicam driver Adds entry for the new BCM2835 Unicam (CSI-2 receiver) driver @@ -156412,7 +156412,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS -index 350d7e3ba94f..02f1afa1338c 100644 +index 301b9ba6af79..538c0cf726a6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4030,6 +4030,13 @@ N: bcm113* @@ -156436,7 +156436,7 @@ index 350d7e3ba94f..02f1afa1338c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Nov 2018 17:31:06 +0000 -Subject: [PATCH 169/717] media: tc358743: Return an appropriate colorspace +Subject: [PATCH 169/784] media: tc358743: Return an appropriate colorspace from tc358743_set_fmt When calling tc358743_set_fmt, the code was calling tc358743_get_fmt @@ -156540,7 +156540,7 @@ index 60708532e042..69127833f4c7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 16:20:46 +0000 -Subject: [PATCH 170/717] staging: mmal-vchiq: Avoid use of bool in structures +Subject: [PATCH 170/784] staging: mmal-vchiq: Avoid use of bool in structures Fixes up a checkpatch error "Avoid using bool structure members because of possible alignment issues". @@ -156570,7 +156570,7 @@ index cb921c94996a..17f8ceda87ca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:15:38 +0100 -Subject: [PATCH 171/717] staging: mmal-vchiq: Add support for event callbacks. +Subject: [PATCH 171/784] staging: mmal-vchiq: Add support for event callbacks. (Preparation for the codec driver). The codec uses the event mechanism to report things such as @@ -156938,7 +156938,7 @@ index 6006e29232b3..e3ecd70b9951 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 24 Sep 2018 18:26:02 +0100 -Subject: [PATCH 172/717] staging: vc04_services: Support sending data to MMAL +Subject: [PATCH 172/784] staging: vc04_services: Support sending data to MMAL ports Add the ability to send data to ports. This only supports @@ -156986,7 +156986,7 @@ index c2867f98afe5..f5bdd991721d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Oct 2018 17:57:45 +0000 -Subject: [PATCH 173/717] media: videobuf2: Allow exporting of a struct dmabuf +Subject: [PATCH 173/784] 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 @@ -157077,7 +157077,7 @@ index 3253bd2f6fee..caf574d26288 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 22 Jan 2019 12:04:09 +0000 -Subject: [PATCH 174/717] staging: mmal-vchiq: Fix client_component for 64 bit +Subject: [PATCH 174/784] staging: mmal-vchiq: Fix client_component for 64 bit kernel The MMAL client_component field is used with the event @@ -157118,7 +157118,7 @@ index f5bdd991721d..94ec3c2c342a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 Feb 2019 12:33:29 +0000 -Subject: [PATCH 175/717] staging: mmal_vchiq: Add in the Bayer encoding +Subject: [PATCH 175/784] staging: mmal_vchiq: Add in the Bayer encoding formats The list of formats was copied before Bayer support was added. @@ -157175,7 +157175,7 @@ index e15ae7b24f73..feca1c3d8878 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 18 Feb 2019 15:52:29 +0000 -Subject: [PATCH 176/717] staging: mmal-vchiq: Update mmal_parameters.h with +Subject: [PATCH 176/784] staging: mmal-vchiq: Update mmal_parameters.h with recently defined params mmal_parameters.h hasn't been updated to reflect additions made @@ -157237,7 +157237,7 @@ index a0cdd28101f2..33f4179d7712 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 May 2019 13:27:23 +0100 -Subject: [PATCH 177/717] staging: mmal-vchiq: Free the event context for +Subject: [PATCH 177/784] staging: mmal-vchiq: Free the event context for control ports vchiq_mmal_component_init calls init_event_context for the @@ -157271,7 +157271,7 @@ index 94ec3c2c342a..34f6ca423c7b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 May 2019 15:50:01 +0100 -Subject: [PATCH 178/717] staging: mmal-vchiq: Fix memory leak in error path +Subject: [PATCH 178/784] staging: mmal-vchiq: Fix memory leak in error path On error, vchiq_mmal_component_init could leave the event context allocated for ports. @@ -157353,7 +157353,7 @@ index 34f6ca423c7b..22ddd0c7d1db 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jun 2019 17:15:05 +0100 -Subject: [PATCH 179/717] w1: w1-gpio: Make GPIO an output for strong pullup +Subject: [PATCH 179/784] 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 @@ -157386,7 +157386,7 @@ index d4632aace402..4832cd8c2596 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 20 Feb 2019 08:49:39 +0000 -Subject: [PATCH 180/717] arm: bcm2835: Fix FIQ early ioremap +Subject: [PATCH 180/784] arm: bcm2835: Fix FIQ early ioremap The ioremapping creates mappings within the vmalloc area. The equivalent early function, create_mapping, now checks that the @@ -157465,7 +157465,7 @@ index 9b6c921106b5..9bd9842da59f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 May 2019 15:47:42 +0100 -Subject: [PATCH 181/717] arm: bcm2835: DMA can only address 1GB +Subject: [PATCH 181/784] 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. @@ -157496,7 +157496,7 @@ index 9bd9842da59f..7d59a9364175 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sat, 4 May 2019 17:06:15 +0200 -Subject: [PATCH 182/717] hwrng: iproc-rng200: Add BCM2838 support +Subject: [PATCH 182/784] 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. @@ -157657,7 +157657,7 @@ index 06bc060534d8..eb9cca3de7a9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 12 Sep 2018 14:44:53 +0100 -Subject: [PATCH 183/717] bcmgenet: constrain max DMA burst length +Subject: [PATCH 183/784] bcmgenet: constrain max DMA burst length --- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- @@ -157683,7 +157683,7 @@ index 946f6e283c4e..5253c3f66098 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 27 Mar 2019 13:45:46 +0000 -Subject: [PATCH 184/717] bcmgenet: Better coalescing parameter defaults +Subject: [PATCH 184/784] bcmgenet: Better coalescing parameter defaults Set defaults for TX and RX packet coalescing to be equivalent to: @@ -157699,7 +157699,7 @@ Signed-off-by: Phil Elwell 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index f679ed54b3ef..ccc587603591 100644 +index 4da2becfa950..9241cd492e1b 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2660,7 +2660,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_priv *priv, @@ -157711,7 +157711,7 @@ index f679ed54b3ef..ccc587603591 100644 /* Disable rate control for now */ bcmgenet_tdma_ring_writel(priv, index, flow_period_val, TDMA_FLOW_PERIOD); -@@ -4140,9 +4140,12 @@ static int bcmgenet_probe(struct platform_device *pdev) +@@ -4141,9 +4141,12 @@ static int bcmgenet_probe(struct platform_device *pdev) netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1); /* Set default coalescing parameters */ @@ -157732,7 +157732,7 @@ index f679ed54b3ef..ccc587603591 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:17:59 +0100 -Subject: [PATCH 185/717] net: genet: enable link energy detect powerdown for +Subject: [PATCH 185/784] net: genet: enable link energy detect powerdown for external PHYs There are several warts surrounding bcmgenet_mii_probe() as this @@ -157769,7 +157769,7 @@ index 7ec07f071fc9..e0fa9b0e00ab 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 10:55:00 +0100 -Subject: [PATCH 186/717] usb: add plumbing for updating interrupt endpoint +Subject: [PATCH 186/784] usb: add plumbing for updating interrupt endpoint interval state xHCI caches device and endpoint data after the interface is configured, @@ -157841,10 +157841,10 @@ index 7a32053e941f..e8045997d6ec 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 6c95af3317f7..8907b5063f03 100644 +index 3ce7b052a19f..45b9b40be5fc 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h -@@ -1838,6 +1838,8 @@ extern int usb_clear_halt(struct usb_device *dev, int pipe); +@@ -1843,6 +1843,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); @@ -157885,7 +157885,7 @@ index 78cd566ee238..7824240e629b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:33:39 +0100 -Subject: [PATCH 187/717] xhci: implement xhci_fixup_endpoint for interval +Subject: [PATCH 187/784] xhci: implement xhci_fixup_endpoint for interval adjustments Must be called in a non-atomic context, after the endpoint @@ -157898,10 +157898,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 104 insertions(+) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 2b280beb0011..c7aaba91062d 100644 +index c02ad4f76bb3..888e08e31e78 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1636,6 +1636,109 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, +@@ -1640,6 +1640,109 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, unsigned int slot_id, return ret; } @@ -158011,7 +158011,7 @@ index 2b280beb0011..c7aaba91062d 100644 /* * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it -@@ -5464,6 +5567,7 @@ static const struct hc_driver xhci_hc_driver = { +@@ -5469,6 +5572,7 @@ static const struct hc_driver xhci_hc_driver = { .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, @@ -158026,7 +158026,7 @@ index 2b280beb0011..c7aaba91062d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 11 Jun 2019 11:42:03 +0100 -Subject: [PATCH 188/717] usbhid: call usb_fixup_endpoint after mangling +Subject: [PATCH 188/784] usbhid: call usb_fixup_endpoint after mangling intervals Lets the mousepoll override mechanism work with xhci. @@ -158055,7 +158055,7 @@ index ffbe95c9a00d..88eda0a36c4c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 11 Jun 2019 17:38:28 +0100 -Subject: [PATCH 189/717] arm: bcm2835: Add bcm2838 compatible string. +Subject: [PATCH 189/784] arm: bcm2835: Add bcm2838 compatible string. Signed-off-by: Phil Elwell --- @@ -158081,7 +158081,7 @@ index 7d59a9364175..282a023027fc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Jul 2019 15:38:35 +0100 -Subject: [PATCH 190/717] i2c: bcm2835: Set clock-stretch timeout to 35ms +Subject: [PATCH 190/784] 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 @@ -158134,7 +158134,7 @@ index 394282a37f67..d768247c7e50 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 2 May 2019 13:22:53 -0700 -Subject: [PATCH 191/717] drm/v3d: Clock V3D down when not in use. +Subject: [PATCH 191/784] 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. @@ -158302,7 +158302,7 @@ index b8980440d137..9044690c55b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 9 May 2019 14:30:37 +0100 -Subject: [PATCH 192/717] drivers: char: add chardev for mmap'ing the RPiVid +Subject: [PATCH 192/784] drivers: char: add chardev for mmap'ing the RPiVid control registers Based on the gpiomem driver, allow mapping of the decoder register @@ -158685,7 +158685,7 @@ index 000000000000..9f38083f4cb6 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 1 Aug 2019 16:41:20 +0100 -Subject: [PATCH 193/717] hid: usb: Add device quirks for Freeway Airmouse T3 +Subject: [PATCH 193/784] hid: usb: Add device quirks for Freeway Airmouse T3 and MX3 These wireless mouse/keyboard combo remote control devices specify @@ -158706,7 +158706,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 2235d78784b1..9d0c484dbe3b 100644 +index 53c6692d7771..15ea084a7659 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -238,6 +238,9 @@ @@ -158719,7 +158719,7 @@ index 2235d78784b1..9d0c484dbe3b 100644 #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1365,6 +1368,9 @@ +@@ -1366,6 +1369,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 @@ -158756,7 +158756,7 @@ index 66e64350f138..f4700a0aa41b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 9 Aug 2019 08:51:43 +0100 -Subject: [PATCH 194/717] net: bcmgenet: Workaround #2 for Pi4 Ethernet fail +Subject: [PATCH 194/784] 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 @@ -158781,7 +158781,7 @@ Signed-off-by: Phil Elwell 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index ccc587603591..40d2e603b005 100644 +index 9241cd492e1b..8465b68bdfa1 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -67,6 +67,9 @@ @@ -158813,7 +158813,7 @@ index ccc587603591..40d2e603b005 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 13 Aug 2019 15:53:29 +0100 -Subject: [PATCH 195/717] xhci: Use more event ring segment table entries +Subject: [PATCH 195/784] 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 @@ -158860,7 +158860,7 @@ index 81ca2bc1f0be..2221aba82579 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 dcee7f3207ad..b762a7123935 100644 +index 6348cacdc65e..5a56acc16a26 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1671,8 +1671,8 @@ struct urb_priv { @@ -158881,7 +158881,7 @@ index dcee7f3207ad..b762a7123935 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:16:56 +0100 -Subject: [PATCH 196/717] arch/arm: Add model string to cpuinfo +Subject: [PATCH 196/784] arch/arm: Add model string to cpuinfo Signed-off-by: Phil Elwell --- @@ -158923,7 +158923,7 @@ index cb88c6e69377..9f8cdbfb993d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Sep 2019 18:17:25 +0100 -Subject: [PATCH 197/717] arch/arm64: Add Revision, Serial, Model to cpuinfo +Subject: [PATCH 197/784] arch/arm64: Add Revision, Serial, Model to cpuinfo Signed-off-by: Phil Elwell --- @@ -158987,7 +158987,7 @@ index 28d4f442b0bc..21836c76a3b3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Jun 2021 18:18:42 +0100 -Subject: [PATCH 198/717] media: i2c: imx258: Support for the Sony IMX258 +Subject: [PATCH 198/784] media: i2c: imx258: Support for the Sony IMX258 sensor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -160616,7 +160616,7 @@ index eab5fc1ee2f7..40ba66bf0985 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 12 Jun 2020 15:53:46 +0200 -Subject: [PATCH 199/717] media: i2c: imx290: Support for the Sony IMX290 +Subject: [PATCH 199/784] media: i2c: imx290: Support for the Sony IMX290 sensor media: i2c: imx290: set the format before VIDIOC_SUBDEV_G_FMT is called @@ -161915,7 +161915,7 @@ index 1ce64dcdf7f0..2c7103cb6933 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Manivannan Sadhasivam Date: Mon, 20 Dec 2021 00:09:47 +0200 -Subject: [PATCH 200/717] media: i2c: imx296: Support for the Sony IMX296 +Subject: [PATCH 200/784] media: i2c: imx296: Support for the Sony IMX296 sensor dt-bindings: media: i2c: Add IMX296 CMOS sensor binding @@ -162100,7 +162100,7 @@ index 000000000000..e8f9a73bf2db + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 02f1afa1338c..6998246c5666 100644 +index 538c0cf726a6..c642803f1b40 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19226,6 +19226,15 @@ T: git git://linuxtv.org/media_tree.git @@ -163460,7 +163460,7 @@ index 000000000000..d7fedcd28dc5 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 7 May 2020 15:50:54 +0100 -Subject: [PATCH 201/717] media: i2c: imx477: Support for the Sony IMX477 +Subject: [PATCH 201/784] media: i2c: imx477: Support for the Sony IMX477 sensor dt-bindings: media: i2c: Add IMX477 CMOS sensor binding @@ -163804,7 +163804,7 @@ index 000000000000..0994e13e67f6 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 6998246c5666..fc5783f14d33 100644 +index c642803f1b40..bcf2ea247ed3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19276,6 +19276,14 @@ T: git git://linuxtv.org/media_tree.git @@ -166177,7 +166177,7 @@ index 000000000000..b62fa1b53762 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 27 Aug 2021 14:36:55 +0800 -Subject: [PATCH 202/717] media: i2c: imx519: Support for the Sony IMX519 +Subject: [PATCH 202/784] media: i2c: imx519: Support for the Sony IMX519 sensor dt-bindings: media: i2c: Add IMX519 CMOS sensor binding @@ -166355,7 +166355,7 @@ index 000000000000..717230a21764 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index fc5783f14d33..5c76bd97d447 100644 +index bcf2ea247ed3..19caa664ba59 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19284,6 +19284,14 @@ T: git git://linuxtv.org/media_tree.git @@ -168510,7 +168510,7 @@ index 000000000000..fb25c57ced7e From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 29 Jun 2021 14:38:23 +0100 -Subject: [PATCH 203/717] Documentation: devicetree: Add documentation for +Subject: [PATCH 203/784] Documentation: devicetree: Add documentation for imx378 sensor The imx378 sensor is compatible with the imx477 and shares common @@ -168643,7 +168643,7 @@ index 000000000000..f832b4bfab93 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 5c76bd97d447..197683180730 100644 +index 19caa664ba59..b8d78c091e74 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19281,6 +19281,7 @@ M: Raspberry Pi Kernel Maintenance @@ -168661,7 +168661,7 @@ index 5c76bd97d447..197683180730 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:04:51 +0100 -Subject: [PATCH 204/717] v4l2: Add a Greyworld AWB mode. +Subject: [PATCH 204/784] 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) @@ -168690,7 +168690,7 @@ index b5e7d082b8ad..e1f09a8cf69c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Sep 2019 15:13:06 +0100 -Subject: [PATCH 205/717] staging: bcm2835-camera: Add greyworld AWB mode +Subject: [PATCH 205/784] 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. @@ -168735,7 +168735,7 @@ index 33f4179d7712..045eba62e9de 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Fri, 6 Aug 2021 14:32:44 +0100 -Subject: [PATCH 206/717] media: v4l2: Add Greyworld AWB control name +Subject: [PATCH 206/784] media: v4l2: Add Greyworld AWB control name Add name for greyworld to white_balance preset names. This patch previously applied to v4l2-ctrl.c but that was split @@ -168765,7 +168765,7 @@ index e22921e7ea61..25f528dcbe24 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 8 Feb 2021 11:48:35 +0000 -Subject: [PATCH 207/717] staging:bcm2835-camera: Fix the cherry-pick of AWB +Subject: [PATCH 207/784] staging:bcm2835-camera: Fix the cherry-pick of AWB Greyworld The cherry-pick of the patch that added the greyworld AWB mode @@ -168799,7 +168799,7 @@ index f0e0f2dff447..65577e3322e2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Thu, 19 Sep 2019 20:45:30 +0200 -Subject: [PATCH 208/717] ARM: bcm: Switch board, clk and pinctrl to bcm2711 +Subject: [PATCH 208/784] ARM: bcm: Switch board, clk and pinctrl to bcm2711 compatible After the decision to use bcm2711 compatible for upstream, we should @@ -168831,7 +168831,7 @@ index 282a023027fc..e538e0f899a5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:08 +0200 -Subject: [PATCH 209/717] dt-bindings: Add binding for the Infineon IRS1125 +Subject: [PATCH 209/784] dt-bindings: Add binding for the Infineon IRS1125 sensor Adds a binding for the Infineon IRS1125 time-of-flight depth @@ -168904,7 +168904,7 @@ index 000000000000..25a48028c957 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Thu, 10 Oct 2019 19:12:36 +0200 -Subject: [PATCH 210/717] media: i2c: Add a driver for the Infineon IRS1125 +Subject: [PATCH 210/784] media: i2c: Add a driver for the Infineon IRS1125 depth sensor The Infineon IRS1125 is a time of flight depth sensor that @@ -170149,7 +170149,7 @@ index 000000000000..dccaca23aa76 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 11 Nov 2019 20:18:08 +0000 -Subject: [PATCH 211/717] drm/v3d: Suppress all but the first MMU error +Subject: [PATCH 211/784] 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. @@ -170194,7 +170194,7 @@ index e714d5318f30..0f7a23f051df 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 12 Nov 2019 16:41:21 +0000 -Subject: [PATCH 212/717] drm/v3d: Plug dma_fence leak +Subject: [PATCH 212/784] 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 @@ -170228,7 +170228,7 @@ index 9044690c55b1..4e7ba9d83db0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:48 +0000 -Subject: [PATCH 213/717] staging: vchiq_arm: Register vcsm-cma as a platform +Subject: [PATCH 213/784] staging: vchiq_arm: Register vcsm-cma as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -170274,7 +170274,7 @@ index dc33490ba7fb..642fdbc0d654 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 Nov 2019 13:57:58 +0000 -Subject: [PATCH 214/717] staging: vchiq_arm: Register bcm2835-codec as a +Subject: [PATCH 214/784] staging: vchiq_arm: Register bcm2835-codec as a platform driver Following the same pattern as bcm2835-camera and bcm2835-audio, @@ -170320,7 +170320,7 @@ index 642fdbc0d654..bdc4bd4d5b96 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: James Hughes Date: Thu, 31 Oct 2019 14:39:44 +0000 -Subject: [PATCH 215/717] net:phy:2711 Allow ethernet LED mode to be set via +Subject: [PATCH 215/784] net:phy:2711 Allow ethernet LED mode to be set via device tree Add device tree entries and code to allow the specification of @@ -170381,7 +170381,7 @@ index ad71c88c87e7..257aa900fd2f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 23 Aug 2019 16:34:38 +0100 -Subject: [PATCH 216/717] v3d_drv: Handle missing clock more gracefully +Subject: [PATCH 216/784] v3d_drv: Handle missing clock more gracefully Signed-off-by: popcornmix --- @@ -170414,7 +170414,7 @@ index de5808f814d8..fd648199bfa5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 5 Sep 2019 17:59:14 +0100 -Subject: [PATCH 217/717] v3d_gem: Kick the clock so firmware knows we are +Subject: [PATCH 217/784] 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 @@ -170447,7 +170447,7 @@ index 4e7ba9d83db0..4817e57b21d0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 9 Sep 2019 15:49:56 +0100 -Subject: [PATCH 218/717] clk-raspberrypi: Allow cpufreq driver to also adjust +Subject: [PATCH 218/784] clk-raspberrypi: Allow cpufreq driver to also adjust gpu clocks For performance/power it is beneficial to adjust gpu clocks with arm clock. @@ -170478,7 +170478,7 @@ index 9c4af1e70cae..6c426f34dd24 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 29 Jan 2019 16:13:25 +0000 -Subject: [PATCH 219/717] staging: vchiq_arm: Set up dma ranges on child +Subject: [PATCH 219/784] staging: vchiq_arm: Set up dma ranges on child devices The VCHIQ driver now loads the audio, camera, codec, and vc-sm @@ -170517,7 +170517,7 @@ index bdc4bd4d5b96..5d937ee1086d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 18 Jun 2019 12:15:50 +0100 -Subject: [PATCH 220/717] staging: vchiq: Use the old dma controller for OF +Subject: [PATCH 220/784] 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 @@ -170574,7 +170574,7 @@ index 5d937ee1086d..e05028bcb1a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Fri, 27 Dec 2019 11:40:56 +0100 -Subject: [PATCH 221/717] ARM: bcm: Backport BCM2711 support from upstream +Subject: [PATCH 221/784] ARM: bcm: Backport BCM2711 support from upstream Make the BCM2711 a different machine, but keep it in board_bcm2835. @@ -170627,7 +170627,7 @@ index e538e0f899a5..91a758c61f48 100644 From 0000000000000000000000000000000000000000 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 222/717] Initialise rpi-firmware before clk-bcm2835 +Subject: [PATCH 222/784] 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 @@ -170682,7 +170682,7 @@ index 843a77a0aaf3..02513603d148 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 17:30:46 +0000 -Subject: [PATCH 223/717] staging: vchiq_arm: Give vchiq children DT nodes +Subject: [PATCH 223/784] 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 @@ -170727,7 +170727,7 @@ index e05028bcb1a8..716e52752752 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Jan 2020 16:04:30 +0000 -Subject: [PATCH 224/717] pinctrl: bcm2835: Remove gpiochip on error +Subject: [PATCH 224/784] 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. @@ -170739,10 +170739,10 @@ Signed-off-by: Phil Elwell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index dc603204d2d2..e16b376f055e 100644 +index 2091ff962cf3..18bd7084db32 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -1346,7 +1346,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) +@@ -1357,7 +1357,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) girq->default_type = IRQ_TYPE_NONE; girq->handler = handle_level_irq; @@ -170758,7 +170758,7 @@ index dc603204d2d2..e16b376f055e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 2 Mar 2020 14:42:23 +0000 -Subject: [PATCH 225/717] video: fbdev: bcm2708_fb: Use common compat header +Subject: [PATCH 225/784] video: fbdev: bcm2708_fb: Use common compat header The definition of compat_ptr is now common for most platforms, but requires the inclusion of . @@ -170787,7 +170787,7 @@ index 0e9ec3f593b8..17e9260655e4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 6 Feb 2020 12:23:15 +0000 -Subject: [PATCH 226/717] of: overlay: Correct symbol path fixups +Subject: [PATCH 226/784] 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 @@ -170830,7 +170830,7 @@ index ed4e6c144a68..170a23ed16ba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jim Quinlan Date: Mon, 15 Jan 2018 18:28:39 -0500 -Subject: [PATCH 227/717] dt-bindings: pci: Add DT docs for Brcmstb PCIe device +Subject: [PATCH 227/784] 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 @@ -170914,7 +170914,7 @@ index 000000000000..a1a9ad5e70ca From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 1 Apr 2020 11:22:44 +0100 -Subject: [PATCH 228/717] bcmgenet: Disable skip_umac_reset by default +Subject: [PATCH 228/784] bcmgenet: Disable skip_umac_reset by default Possible fixed upstream by 'net: bcmgenet: keep MAC in reset until PHY is up' @@ -170924,7 +170924,7 @@ Signed-off-by: popcornmix 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index 40d2e603b005..d65209ddfc64 100644 +index 8465b68bdfa1..3b8bcb4cf18f 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -67,7 +67,7 @@ @@ -170943,7 +170943,7 @@ index 40d2e603b005..d65209ddfc64 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 24 Jan 2020 14:28:21 +0000 -Subject: [PATCH 229/717] media: videodev2.h: Add a format for column YUV4:2:0 +Subject: [PATCH 229/784] 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 @@ -171267,7 +171267,7 @@ index 2b5f166b1ce7..128dbf862302 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 17 Mar 2020 10:53:16 +0000 -Subject: [PATCH 230/717] media: dt-bindings: media: Add binding for the +Subject: [PATCH 230/784] 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. @@ -171358,7 +171358,7 @@ index 000000000000..ce6b81a10303 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 197683180730..7cfb147515c6 100644 +index b8d78c091e74..63655891fd4c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4030,6 +4030,13 @@ N: bcm113* @@ -171382,7 +171382,7 @@ index 197683180730..7cfb147515c6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia Date: Sun, 21 Mar 2021 16:38:54 -0300 -Subject: [PATCH 231/717] RFC: media: Add media_request_{pin,unpin} API +Subject: [PATCH 231/784] RFC: media: Add media_request_{pin,unpin} API This is probably not the API we will want to add, but it should show what semantics are needed by drivers. @@ -171484,7 +171484,7 @@ index 3cd25a2717ce..0de5c2c94188 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 5 Mar 2020 18:30:41 +0000 -Subject: [PATCH 232/717] staging: media: rpivid: Add Raspberry Pi V4L2 H265 +Subject: [PATCH 232/784] staging: media: rpivid: Add Raspberry Pi V4L2 H265 decoder This driver is for the HEVC/H265 decoder block on the Raspberry @@ -176765,7 +176765,7 @@ index 000000000000..e22cc0e32aa3 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Apr 2020 10:46:19 +0100 -Subject: [PATCH 233/717] spi: Force CS_HIGH if GPIO descriptors are used +Subject: [PATCH 233/784] 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 @@ -176828,7 +176828,7 @@ index 5f9aedd1f0b6..728e1f7e4be3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:46:29 +0100 -Subject: [PATCH 234/717] media: uapi: v4l2-core: Add sensor ancillary data +Subject: [PATCH 234/784] media: uapi: v4l2-core: Add sensor ancillary data V4L2 foucc type. Add V4L2_META_FMT_SENSOR_DATA format 4CC. @@ -176926,7 +176926,7 @@ index 128dbf862302..c15a06440121 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Jan 2020 14:06:47 +0000 -Subject: [PATCH 235/717] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus +Subject: [PATCH 235/784] media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus format This patch adds MEDIA_BUS_FMT_SENSOR_DATA used by the bcm2835-unicam @@ -176997,7 +176997,7 @@ index d4228d038b54..72b2d893c849 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:20:26 +0100 -Subject: [PATCH 236/717] media: uapi: v4l2-core: Add ISP statistics output +Subject: [PATCH 236/784] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Add V4L2_META_FMT_BCM2835_ISP_STATS V4L2 format type. @@ -177104,7 +177104,7 @@ index c15a06440121..2b2c2b73bc4f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 21 Apr 2020 15:06:19 +0100 -Subject: [PATCH 237/717] media: uapi: v4l-ctrls: Add CID base for the +Subject: [PATCH 237/784] media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver We are reserving controls for the new bcm2835-isp driver. @@ -177284,7 +177284,7 @@ index e1f09a8cf69c..ea7e229cd245 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 22 Apr 2020 08:32:32 +0100 -Subject: [PATCH 238/717] staging: vchiq: Load bcm2835_isp driver from vchiq +Subject: [PATCH 238/784] 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. @@ -177329,7 +177329,7 @@ index 716e52752752..004ad2e7f168 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 4 Apr 2019 13:33:47 +0100 -Subject: [PATCH 239/717] bcm2835-dma: Add proper 40-bit DMA support +Subject: [PATCH 239/784] 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. @@ -178135,7 +178135,7 @@ index 87b5d0bef355..ac0458a8027f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:28:14 +0200 -Subject: [PATCH 240/717] media: i2c: tc358743: Fix fallthrough warning +Subject: [PATCH 240/784] media: i2c: tc358743: Fix fallthrough warning Signed-off-by: Jacko Dirks --- @@ -178161,7 +178161,7 @@ index 69127833f4c7..618fbdc51794 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 19:45:41 +0100 -Subject: [PATCH 241/717] video: bcm2708_fb: Disable FB if no displays found +Subject: [PATCH 241/784] 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 @@ -178201,7 +178201,7 @@ index 17e9260655e4..dac5c021ce52 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:42:10 +0100 -Subject: [PATCH 242/717] staging: vc04_services: mmal-vchiq: Update parameters +Subject: [PATCH 242/784] staging: vc04_services: mmal-vchiq: Update parameters list Adds in a couple of new MMAL parameter defines. @@ -178235,7 +178235,7 @@ index 045eba62e9de..3ede6be20633 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 May 2020 13:48:59 +0100 -Subject: [PATCH 243/717] staging:vc04_services: bcm2835-camera: Request +Subject: [PATCH 243/784] staging:vc04_services: bcm2835-camera: Request headers with I-frame V4L2 wishes to have the codec header bytes in the same buffer as the @@ -178271,7 +178271,7 @@ index fd456d1f7061..8bcf5956a916 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 5 May 2020 15:23:32 +0100 -Subject: [PATCH 244/717] zswap: Defer zswap initialisation +Subject: [PATCH 244/784] 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 @@ -178289,7 +178289,7 @@ Signed-off-by: Phil Elwell 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/mm/zswap.c b/mm/zswap.c -index 2d48fd59cc7a..f5d30557f788 100644 +index 708b82dbe8a4..11118f73780f 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -663,8 +663,9 @@ static struct zswap_pool *zswap_pool_create(char *type, char *compressor) @@ -178352,7 +178352,7 @@ index 2d48fd59cc7a..f5d30557f788 100644 } /********************************* -@@ -1473,7 +1489,6 @@ static int __init zswap_debugfs_init(void) +@@ -1489,7 +1505,6 @@ static int __init zswap_debugfs_init(void) **********************************/ static int __init init_zswap(void) { @@ -178360,7 +178360,7 @@ index 2d48fd59cc7a..f5d30557f788 100644 int ret; zswap_init_started = true; -@@ -1497,33 +1512,23 @@ static int __init init_zswap(void) +@@ -1513,33 +1528,23 @@ static int __init init_zswap(void) if (ret) goto hp_fail; @@ -178406,7 +178406,7 @@ index 2d48fd59cc7a..f5d30557f788 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Apr 2018 14:42:27 +0100 -Subject: [PATCH 245/717] gpiolib: Don't prevent IRQ usage of output GPIOs +Subject: [PATCH 245/784] 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 @@ -178462,7 +178462,7 @@ index 5974cfc61b41..ed3df6f43f05 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 11 Jun 2020 09:57:03 +0100 -Subject: [PATCH 246/717] PCI: brcmstb: Add DT property to control L1SS +Subject: [PATCH 246/784] 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. @@ -178543,7 +178543,7 @@ index 521acd632f1a..d64219d210f3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:24:31 +0200 -Subject: [PATCH 247/717] media: irs1125: Using i2c_transfer for ic2 reads +Subject: [PATCH 247/784] 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. @@ -178614,7 +178614,7 @@ index 25e1dd5a08ef..6680afea5894 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:27:42 +0200 -Subject: [PATCH 248/717] media: irs1125: Refactoring and debug messages +Subject: [PATCH 248/784] media: irs1125: Refactoring and debug messages Changed some variable names to comply with checkpatch --strict mode. Debug messages added. @@ -178743,7 +178743,7 @@ index 6680afea5894..289f0c25b141 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:31:36 +0200 -Subject: [PATCH 249/717] media: irs1125: Atomic access to imager +Subject: [PATCH 249/784] media: irs1125: Atomic access to imager reconfiguration Instead of changing the exposure and framerate settings for all sequences, @@ -179132,7 +179132,7 @@ index dccaca23aa76..96d676123d5e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Markus Proeller Date: Tue, 16 Jun 2020 13:33:56 +0200 -Subject: [PATCH 250/717] media: irs1125: Keep HW in sync after imager reset +Subject: [PATCH 250/784] 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 @@ -179319,7 +179319,7 @@ index d59e05004a03..30c3d2640386 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 26 Jun 2020 11:51:05 +0100 -Subject: [PATCH 251/717] brcmfmac: Prefer a ccode from OTP over nvram file +Subject: [PATCH 251/784] 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. @@ -179331,7 +179331,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 edfde4360519..ca296913e5fe 100644 +index 74a86a61f3cb..f24c3be86537 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -9,6 +9,7 @@ @@ -179342,7 +179342,7 @@ index edfde4360519..ca296913e5fe 100644 #include #include #include -@@ -7549,31 +7550,45 @@ static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, +@@ -7557,31 +7558,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; @@ -179457,7 +179457,7 @@ index 09d2f2dc2b46..da413308a564 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 4 May 2020 12:25:41 +0300 -Subject: [PATCH 252/717] media: bcm2835-unicam: Driver for CCP2/CSI2 camera +Subject: [PATCH 252/784] media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface Add a driver for the Unicam camera receiver block on BCM283x processors. @@ -179486,7 +179486,7 @@ Reported-by: kbuild test robot create mode 100644 drivers/media/platform/bcm2835/vc4-regs-unicam.h diff --git a/MAINTAINERS b/MAINTAINERS -index 7cfb147515c6..ef05321f5184 100644 +index 63655891fd4c..1de80b02a174 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4042,7 +4042,7 @@ M: Dave Stevenson @@ -182633,7 +182633,7 @@ index 000000000000..ae059a171d0f From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 1 Apr 2020 08:39:49 +0100 -Subject: [PATCH 253/717] media: bcm2835-unicam: Kconfig/Makefile for CCP2/CSI2 +Subject: [PATCH 253/784] media: bcm2835-unicam: Kconfig/Makefile for CCP2/CSI2 camera interface Signed-off-by: Dave Stevenson @@ -182645,7 +182645,7 @@ Signed-off-by: Naushir Patuck 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS -index ef05321f5184..8c572e177967 100644 +index 1de80b02a174..81b1f41e7c89 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4038,7 +4038,7 @@ F: Documentation/devicetree/bindings/media/rpivid_hevc.jaml @@ -182688,7 +182688,7 @@ index a91f42024273..c829ae68cecf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 14:32:51 +0100 -Subject: [PATCH 254/717] media: bcm2835-unicam: Add support for +Subject: [PATCH 254/784] 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 @@ -182750,7 +182750,7 @@ index 1edc32282fb0..fd441219c575 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Jun 2020 15:53:44 +0100 -Subject: [PATCH 255/717] media: bcm2835-unicam: Avoid gcc warning over {0} on +Subject: [PATCH 255/784] media: bcm2835-unicam: Avoid gcc warning over {0} on endpoint Older gcc versions object to = { 0 } initialisation if the first @@ -182783,7 +182783,7 @@ index fd441219c575..86ac379650d3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 2 Jul 2020 13:53:20 +0100 -Subject: [PATCH 256/717] serial: 8250: bcm2835aux - defer if clock is zero +Subject: [PATCH 256/784] serial: 8250: bcm2835aux - defer if clock is zero See: https://github.com/raspberrypi/linux/issues/3700 @@ -182817,7 +182817,7 @@ index 15a2387a5b25..43db1816fad6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 May 2020 16:59:03 +0100 -Subject: [PATCH 257/717] media: Add a pixel format for MIPI packed 12bit luma +Subject: [PATCH 257/784] media: Add a pixel format for MIPI packed 12bit luma only. This is the format used by monochrome 12bit image sensors. @@ -182925,7 +182925,7 @@ index 2b2c2b73bc4f..9300ba4cbe57 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:51:03 +0100 -Subject: [PATCH 258/717] media: Add a pixel format for MIPI packed 14bit luma +Subject: [PATCH 258/784] media: Add a pixel format for MIPI packed 14bit luma only. This is the format used by monochrome 14bit image sensors. @@ -183042,7 +183042,7 @@ index 9300ba4cbe57..ececbc57315e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 17:53:32 +0100 -Subject: [PATCH 259/717] media: bcm2835-unicam: Add support for 12bit mono +Subject: [PATCH 259/784] media: bcm2835-unicam: Add support for 12bit mono packed format Now that V4L2_PIX_FMT_Y12P is defined, allow passing raw 12bit @@ -183073,7 +183073,7 @@ index 86ac379650d3..e73827ccf6a6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Jun 2020 18:03:47 +0100 -Subject: [PATCH 260/717] media: bcm2835-unicam: Add support for 14bit mono +Subject: [PATCH 260/784] media: bcm2835-unicam: Add support for 14bit mono sources Now that V4L2_PIX_FMT_Y14 and V4L2_PIX_FMT_Y14P are defined, @@ -183108,7 +183108,7 @@ index e73827ccf6a6..db0ad09454b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 1 Jul 2020 10:57:57 +0100 -Subject: [PATCH 261/717] media: bcm2835-unicam: Add support for unpacked 14bit +Subject: [PATCH 261/784] media: bcm2835-unicam: Add support for unpacked 14bit Bayer formats Now that the 14bit non-packed Bayer formats are defined, add them @@ -183156,7 +183156,7 @@ index db0ad09454b1..0282c5fb7a5c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Jul 2020 20:28:27 +0100 -Subject: [PATCH 262/717] bcm2835-dma: Add NO_WAIT_RESP flag +Subject: [PATCH 262/784] 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. @@ -183216,7 +183216,7 @@ index ac0458a8027f..84b1009da23b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:23:40 +0100 -Subject: [PATCH 263/717] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE +Subject: [PATCH 263/784] media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE in the caps v4l2-compliance throws a failure if the device doesn't advertise @@ -183250,7 +183250,7 @@ index 0282c5fb7a5c..4118bf7ca042 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 7 Jul 2020 14:52:43 +0100 -Subject: [PATCH 264/717] media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE +Subject: [PATCH 264/784] 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 @@ -183292,7 +183292,7 @@ index 4118bf7ca042..efa83443aa53 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:02:22 +0100 -Subject: [PATCH 265/717] media: bcm2835: unicam: Set VPU min clock freq to +Subject: [PATCH 265/784] media: bcm2835: unicam: Set VPU min clock freq to 250Mhz. When streaming with Unicam, the VPU must have a clock frequency of at @@ -183425,7 +183425,7 @@ index efa83443aa53..1e9c9f5e530b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 11 May 2020 13:06:27 +0100 -Subject: [PATCH 266/717] dt-bindings: bcm2835-unicam: Update documentation +Subject: [PATCH 266/784] dt-bindings: bcm2835-unicam: Update documentation with new clock params Update the documentation to reflect the new "VPU" clock needed @@ -183469,7 +183469,7 @@ index 7714fb374b34..164d0377dcd2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 13 Jul 2020 10:33:19 +0100 -Subject: [PATCH 267/717] leds: Add the actpwr trigger +Subject: [PATCH 267/784] 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 @@ -183715,7 +183715,7 @@ index 000000000000..1a52107ceb03 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Jul 2020 17:59:31 +0100 -Subject: [PATCH 268/717] bcm2835-dma: Advertise the full DMA range +Subject: [PATCH 268/784] bcm2835-dma: Advertise the full DMA range Unless the DMA mask is set wider than 32 bits, DMA mapping will use a bounce buffer. @@ -183798,7 +183798,7 @@ index 84b1009da23b..d1127b9058a4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 27 Aug 2020 16:30:26 +0100 -Subject: [PATCH 269/717] media: bcm2835-unicam: Drop WARN on uing direct cache +Subject: [PATCH 269/784] media: bcm2835-unicam: Drop WARN on uing direct cache alias Pi 0&1 pass all ARM accesses through the VPU L2 cache, therefore @@ -183838,7 +183838,7 @@ index 1e9c9f5e530b..85e98ea89802 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Jul 2020 12:40:50 +0100 -Subject: [PATCH 270/717] media: i2c: tc358743: Only allow supported pixel fmts +Subject: [PATCH 270/784] media: i2c: tc358743: Only allow supported pixel fmts in set_fmt Fix commit "media: tc358743: Return an appropriate colorspace from @@ -183874,7 +183874,7 @@ index 618fbdc51794..cc699daf244c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 13 May 2020 18:28:27 +0100 -Subject: [PATCH 271/717] media: bcm2835-unicam: Always service interrupts +Subject: [PATCH 271/784] 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 @@ -183931,7 +183931,7 @@ index 85e98ea89802..f189ddb75e85 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jacko Dirks Date: Tue, 5 May 2020 14:33:31 +0200 -Subject: [PATCH 272/717] media: bcm2835: unicam: Fix uninitialized warning +Subject: [PATCH 272/784] media: bcm2835: unicam: Fix uninitialized warning Signed-off-by: Jacko Dirks --- @@ -183958,7 +183958,7 @@ index f189ddb75e85..1cb3c87b0657 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 23 Jun 2020 15:14:05 +0100 -Subject: [PATCH 273/717] media: bcm2835-unicam: Fixup review comments from +Subject: [PATCH 273/784] media: bcm2835-unicam: Fixup review comments from Hans. Updates the driver based on the upstream review comments from @@ -184179,7 +184179,7 @@ index 1cb3c87b0657..596f78bbce31 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 19 May 2020 11:46:47 +0100 -Subject: [PATCH 274/717] media: bcm2835-unicam: Retain packing information on +Subject: [PATCH 274/784] media: bcm2835-unicam: Retain packing information on G_FMT The change to retrieve the pixel format always on g_fmt didn't @@ -184233,7 +184233,7 @@ index 596f78bbce31..629a8c12326a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 28 May 2020 11:09:48 +0100 -Subject: [PATCH 275/717] media: bcm2835-unicam: change minimum number of +Subject: [PATCH 275/784] 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 @@ -184267,7 +184267,7 @@ index 629a8c12326a..8325f1fccd17 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 1 Sep 2020 18:15:27 +0100 -Subject: [PATCH 276/717] staging/fbtft: Add support for display variants +Subject: [PATCH 276/784] 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 @@ -184570,7 +184570,7 @@ index 2c2b5f1c1df3..7492c1abfdec 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 3 Feb 2020 09:32:22 +0000 -Subject: [PATCH 277/717] brcmfmac: Increase power saving delay to 2s +Subject: [PATCH 277/784] 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, @@ -184582,10 +184582,10 @@ 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 ca296913e5fe..674002ea408b 100644 +index f24c3be86537..e0f97cf6d273 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2962,7 +2962,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, +@@ -2963,7 +2963,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, brcmf_dbg(INFO, "Do not enable power save for P2P clients\n"); pm = PM_OFF; } @@ -184594,7 +184594,7 @@ index ca296913e5fe..674002ea408b 100644 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, pm); if (err) { -@@ -2972,6 +2972,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, +@@ -2973,6 +2973,7 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, bphy_err(drvr, "error (%d)\n", err); } @@ -184609,7 +184609,7 @@ index ca296913e5fe..674002ea408b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 25 Sep 2020 15:07:23 +0100 -Subject: [PATCH 278/717] net: bcmgenet: Reset RBUF on first open +Subject: [PATCH 278/784] 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 @@ -184631,7 +184631,7 @@ Signed-off-by: Phil Elwell 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index d65209ddfc64..2e157aceb7c8 100644 +index 3b8bcb4cf18f..e4e8f183fd66 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3307,7 +3307,7 @@ static void bcmgenet_get_hw_addr(struct bcmgenet_priv *priv, @@ -184669,7 +184669,7 @@ index d65209ddfc64..2e157aceb7c8 100644 /* Reinitialize TDMA and RDMA and SW housekeeping */ ret = bcmgenet_init_dma(priv); -@@ -4269,7 +4277,7 @@ static int bcmgenet_resume(struct device *d) +@@ -4270,7 +4278,7 @@ static int bcmgenet_resume(struct device *d) bcmgenet_hfb_create_rxnfc_filter(priv, rule); /* Disable RX/TX DMA and flush TX queues */ @@ -184685,7 +184685,7 @@ index d65209ddfc64..2e157aceb7c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 28 Sep 2020 20:23:30 +0100 -Subject: [PATCH 279/717] char: Add broadcom char drivers back to build files +Subject: [PATCH 279/784] char: Add broadcom char drivers back to build files See: https://github.com/raspberrypi/linux/issues/3875 Signed-off-by: popcornmix @@ -184723,7 +184723,7 @@ index 1b35d1724565..25eb2d5dcadf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 15:35:14 +0100 -Subject: [PATCH 280/717] staging: bcm2835-camera: Replace deprecated +Subject: [PATCH 280/784] staging: bcm2835-camera: Replace deprecated V4L2_PIX_FMT_BGR32 V4L2_PIX_FMT_BGR32 is deprecated as it is ambiguous over where @@ -184759,7 +184759,7 @@ index 8bcf5956a916..c9d5b009fa9d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 18:49:52 +0100 -Subject: [PATCH 281/717] staging: vc04_services: Add new vc-sm-cma driver +Subject: [PATCH 281/784] staging: vc04_services: Add new vc-sm-cma driver Add Broadcom VideoCore Shared Memory support. @@ -187758,7 +187758,7 @@ index 000000000000..988fdd967922 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:09:04 +0100 -Subject: [PATCH 282/717] staging: vchiq-mmal: Add support for 14bit Bayer +Subject: [PATCH 282/784] staging: vchiq-mmal: Add support for 14bit Bayer Add in the missing defines. @@ -187791,7 +187791,7 @@ index feca1c3d8878..1a9bbd371026 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 6 May 2020 18:11:14 +0100 -Subject: [PATCH 283/717] staging: mmal-vchiq: Add monochrome image formats +Subject: [PATCH 283/784] staging: mmal-vchiq: Add monochrome image formats Adds support for monochrome image formats in the various MIPI packings. @@ -187826,7 +187826,7 @@ index 1a9bbd371026..6c19040b05df 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 25 Sep 2018 16:07:55 +0100 -Subject: [PATCH 284/717] staging: mmal-vchiq: Use vc-sm-cma to support zero +Subject: [PATCH 284/784] 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 @@ -188000,7 +188000,7 @@ index e3ecd70b9951..9addd627ff5b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 8 Oct 2020 20:24:12 +0100 -Subject: [PATCH 285/717] staging: vc04_services: Add a V4L2 M2M codec driver +Subject: [PATCH 285/784] staging: vc04_services: Add a V4L2 M2M codec driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -192355,7 +192355,7 @@ index 3ede6be20633..5e3ce586945e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 11 Oct 2020 00:48:55 +0200 -Subject: [PATCH 286/717] bcm2835-dma: only reserve channel 0 if legacy dma +Subject: [PATCH 286/784] 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 @@ -192393,7 +192393,7 @@ index d1127b9058a4..0cbfa9d559a2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 12 Oct 2020 17:03:14 +0100 -Subject: [PATCH 287/717] uapi: bcm2835-isp: Add bcm2835-isp uapi header file +Subject: [PATCH 287/784] 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. @@ -192738,7 +192738,7 @@ index 000000000000..cf8c0437f159 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 23 Apr 2020 10:17:37 +0100 -Subject: [PATCH 288/717] staging: vc04_services: ISP: Add a more complex ISP +Subject: [PATCH 288/784] staging: vc04_services: ISP: Add a more complex ISP processing component Driver for the BCM2835 ISP hardware block. This driver uses the MMAL @@ -192771,7 +192771,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 8c572e177967..2d1ff0df8614 100644 +index 81b1f41e7c89..4a6bca428192 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4044,6 +4044,15 @@ S: Maintained @@ -195175,7 +195175,7 @@ index 5e3ce586945e..6ae26735a62d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Sep 2020 12:00:54 +0100 -Subject: [PATCH 289/717] gpio: Add gpio-fsm driver +Subject: [PATCH 289/784] 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 @@ -195236,7 +195236,7 @@ Signed-off-by: Phil Elwell create mode 100644 drivers/gpio/gpio-fsm.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index cbe925d16d5e..cd8b1a26d980 100644 +index abcac7ec9146..a6a90f15b64f 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -1243,6 +1243,15 @@ config HTC_EGPIO @@ -196490,7 +196490,7 @@ index 000000000000..3a348f1c6514 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 26 Oct 2020 16:38:21 +0000 -Subject: [PATCH 290/717] rpisense-fb: Set pseudo_pallete to prevent crash on +Subject: [PATCH 290/784] rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover Signed-off-by: Serge Schneider @@ -196526,7 +196526,7 @@ index 26432a5a0b4b..325977def531 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Oct 2020 12:12:22 +0000 -Subject: [PATCH 291/717] bcm2708_fb: Fix a build warning +Subject: [PATCH 291/784] bcm2708_fb: Fix a build warning Signed-off-by: Phil Elwell --- @@ -196554,7 +196554,7 @@ index dac5c021ce52..365c5b96b8a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Thu, 22 Oct 2020 15:30:55 +0100 -Subject: [PATCH 292/717] watchdog: bcm2835: Ignore params after the partition +Subject: [PATCH 292/784] watchdog: bcm2835: Ignore params after the partition number Use sscanf to extract the partition number and ignore extra parameters @@ -196589,7 +196589,7 @@ index 58d5a1b89584..e8d151d524fd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Tue, 20 Oct 2020 11:55:37 +0100 -Subject: [PATCH 293/717] firmware: raspberrypi: Add support for tryonce reboot +Subject: [PATCH 293/784] firmware: raspberrypi: Add support for tryonce reboot flag Define a new mailbox (SET_REBOOT_FLAGS) which may be used to @@ -196655,7 +196655,7 @@ index 02513603d148..81b6351fda83 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 14 May 2019 17:00:41 +0100 -Subject: [PATCH 294/717] phy: broadcom: split out the BCM54213PE from the +Subject: [PATCH 294/784] phy: broadcom: split out the BCM54213PE from the BCM54210E IDs The last nibble is a revision ID, and the 54213pe is a later rev @@ -196734,7 +196734,7 @@ index 9e77165f3ef6..31295e952c66 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 29 Oct 2020 14:10:56 +0000 -Subject: [PATCH 295/717] phy: broadcom: Add bcm54213pe configuration +Subject: [PATCH 295/784] phy: broadcom: Add bcm54213pe configuration Signed-off-by: Phil Elwell --- @@ -196774,7 +196774,7 @@ index 90c791524463..bb2143929885 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Nov 2020 17:08:33 +0000 -Subject: [PATCH 296/717] PCI: brcmstb: Restore initial fundamental reset +Subject: [PATCH 296/784] 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 @@ -196815,7 +196815,7 @@ index d64219d210f3..85096bebc4b8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Nov 2020 18:45:10 +0000 -Subject: [PATCH 297/717] Input: edt-ft5x06: Poll the device if no interrupt is +Subject: [PATCH 297/784] Input: edt-ft5x06: Poll the device if no interrupt is configured. Not all systems have the interrupt line wired up, so switch to @@ -196918,7 +196918,7 @@ index 9ac1378610bc..d5574835b198 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 23 Apr 2020 10:17:18 +0100 -Subject: [PATCH 298/717] drm/panel/raspberrypi-touchscreen: Use independent +Subject: [PATCH 298/784] drm/panel/raspberrypi-touchscreen: Use independent I2C actions with delay. We now have the hardware I2C controller pinmuxed to the drive the @@ -196982,7 +196982,7 @@ index 79f852465a84..704bd10c8716 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 11:21:56 +0000 -Subject: [PATCH 299/717] drm/panel/raspberrypi-ts: Insert delay before polling +Subject: [PATCH 299/784] drm/panel/raspberrypi-ts: Insert delay before polling for startup state In switching to the hardware I2C controller there is an issue @@ -197014,7 +197014,7 @@ index 704bd10c8716..6ce5ea3cd5b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 Nov 2020 17:01:52 +0000 -Subject: [PATCH 300/717] dt-bindings: Add compatible for BCM2711 DSI1 +Subject: [PATCH 300/784] 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. @@ -197043,7 +197043,7 @@ index c8b2459d64f6..af638b224619 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:22:23 +0000 -Subject: [PATCH 301/717] media: bcm2835-unicam: Correctly handle error +Subject: [PATCH 301/784] media: bcm2835-unicam: Correctly handle error propagation for stream on On a failure in start_streaming(), the error code would not propagate to @@ -197076,7 +197076,7 @@ index 8325f1fccd17..6979a13b5166 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 15:26:09 +0000 -Subject: [PATCH 302/717] media: bcm2835-unicam: Return early from +Subject: [PATCH 302/784] media: bcm2835-unicam: Return early from stop_streaming() if stopped clk_disable_unprepare() is called unconditionally in stop_streaming(). @@ -197146,7 +197146,7 @@ index 6979a13b5166..8f5e5927af0b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 2 Dec 2020 16:48:41 +0000 -Subject: [PATCH 303/717] media: bcm2835-unicam: Clear clock state when +Subject: [PATCH 303/784] media: bcm2835-unicam: Clear clock state when stopping streaming Commit 65e08c465020d4c5b51afb452efc2246d80fd66f failed to clear the @@ -197177,7 +197177,7 @@ index 8f5e5927af0b..5b505439ddb1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 3 Dec 2020 13:44:42 +0000 -Subject: [PATCH 304/717] PCI: brcmstb: Advertise MSI-X support +Subject: [PATCH 304/784] 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 @@ -197210,7 +197210,7 @@ index 85096bebc4b8..3e224a8db641 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 15 Dec 2020 16:38:37 +0000 -Subject: [PATCH 305/717] net: lan78xx: Ack pending PHY ints when resetting +Subject: [PATCH 305/784] 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 @@ -197248,7 +197248,7 @@ index a0ddd522d926..04842f081842 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: gesangtome Date: Fri, 1 Jan 2021 18:03:17 +0800 -Subject: [PATCH 306/717] vc-sm-cma: fixed kbuild problem +Subject: [PATCH 306/784] vc-sm-cma: fixed kbuild problem error logs: drivers/staging/vc04_services/vc-sm-cma/Kconfig:1:error: recursive dependency detected! @@ -197284,7 +197284,7 @@ index a7c1a7bf516e..5df9198cdab1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 10:43:20 +0000 -Subject: [PATCH 307/717] staging/vc04_services: Add additional unpacked raw +Subject: [PATCH 307/784] staging/vc04_services: Add additional unpacked raw formats Support has been added for the unpacked (16bpp) versions of @@ -197341,7 +197341,7 @@ index bd0ddccfbbff..d8d7ec5b962c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:37:10 +0000 -Subject: [PATCH 308/717] staging/bcm2835-isp: Add the unpacked (16bpp) raw +Subject: [PATCH 308/784] staging/bcm2835-isp: Add the unpacked (16bpp) raw formats Now that the firmware supports the unpacked (16bpp) variants @@ -197523,7 +197523,7 @@ index 3ecb8a15207c..1e3ef82b1104 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 7 Jan 2021 11:43:22 +0000 -Subject: [PATCH 309/717] staging/bcm2835-isp: Log the number of excess +Subject: [PATCH 309/784] staging/bcm2835-isp: Log the number of excess supported formats When logging that the firmware has provided more supported formats @@ -197558,7 +197558,7 @@ index 1e3ef82b1104..8fea61de3c49 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 6 Jan 2021 18:16:10 +0000 -Subject: [PATCH 310/717] bcm2835-dma: Avoid losing CS flags after interrupt +Subject: [PATCH 310/784] bcm2835-dma: Avoid losing CS flags after interrupt Signed-off-by: Dom Cobley --- @@ -197585,7 +197585,7 @@ index 0cbfa9d559a2..9878d1bed589 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 30 Dec 2020 14:51:29 +0000 -Subject: [PATCH 311/717] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and +Subject: [PATCH 311/784] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and DMA_WIDE_DEST flags Use (reserved) bits 24 and 25 of the dreq value @@ -197655,7 +197655,7 @@ index 9878d1bed589..6aee9e97d207 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:18:42 +0000 -Subject: [PATCH 312/717] uapi: bcm2835-isp: Add colour denoise configuration +Subject: [PATCH 312/784] uapi: bcm2835-isp: Add colour denoise configuration Add a configuration structure for colour denoise to the bcm2835_isp driver. @@ -197717,7 +197717,7 @@ index cf8c0437f159..c50e3ca81565 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 14 Jan 2021 09:20:52 +0000 -Subject: [PATCH 313/717] staging: vc04_services: ISP: Add colour denoise +Subject: [PATCH 313/784] staging: vc04_services: ISP: Add colour denoise control Add colour denoise control to the bcm2835 driver through a new v4l2 @@ -197802,7 +197802,7 @@ index 6ae26735a62d..722af059ff9d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Jan 2021 11:30:04 +0000 -Subject: [PATCH 314/717] spi: bcm2835: Workaround/fix for zero-length +Subject: [PATCH 314/784] spi: bcm2835: Workaround/fix for zero-length transfers A relatively recent commit ([1]) contained optimisation for the PIO @@ -197858,7 +197858,7 @@ index 747e03228c48..7bc7eab92759 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Jan 2021 10:34:11 +0000 -Subject: [PATCH 315/717] kbuild: Silence unavoidable dtc overlay warnings +Subject: [PATCH 315/784] 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 @@ -197895,7 +197895,7 @@ index ed87353646bf..8e90c3c38a83 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 12 Jan 2021 13:55:39 +0000 -Subject: [PATCH 316/717] bcm2835-isp: Allow formats with different colour +Subject: [PATCH 316/784] bcm2835-isp: Allow formats with different colour spaces. Each supported format now includes a mask showing the allowed colour @@ -198615,7 +198615,7 @@ index e8f3362d1fad..cc0b8f571f18 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 5 Mar 2021 15:40:45 +0000 -Subject: [PATCH 317/717] media: bcm2835-unicam: Fix bug in buffer swapping +Subject: [PATCH 317/784] media: bcm2835-unicam: Fix bug in buffer swapping logic If multiple sets of interrupts occur simultaneously, it may be unsafe @@ -198697,7 +198697,7 @@ index 5b505439ddb1..dee06ecef394 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Mon, 8 Mar 2021 15:32:25 +0000 -Subject: [PATCH 318/717] Assign crypto aliases to different AES implementation +Subject: [PATCH 318/784] Assign crypto aliases to different AES implementation modules The kernel modules aes-neon-blk and aes-neon-bs perform poorly, at least on @@ -198814,7 +198814,7 @@ index bac4cabef607..937189bc155c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 1 Feb 2021 18:48:47 +0000 -Subject: [PATCH 319/717] media/v4l2_m2m: In buffered mode run jobs if either +Subject: [PATCH 319/784] media/v4l2_m2m: In buffered mode run jobs if either port is streaming In order to get the intended behaviour of the stateful video @@ -198853,7 +198853,7 @@ index b71284728ac3..8fb6d3354f54 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Fri, 17 May 2019 18:23:03 +0800 -Subject: [PATCH 320/717] media: i2c: add ov9281 driver. +Subject: [PATCH 320/784] media: i2c: add ov9281 driver. Change-Id: I7b77250bbc56d2f861450cf77271ad15f9b88ab1 Signed-off-by: Zefa Chen @@ -200603,7 +200603,7 @@ index cc0b8f571f18..7d98096af459 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 15 Jan 2020 13:40:38 +0000 -Subject: [PATCH 321/717] media: ov5647: Fix return codes from +Subject: [PATCH 321/784] media: ov5647: Fix return codes from ov5647_write/ov5647_read functions. Previously they were returning positive non-zero codes for success, @@ -200698,7 +200698,7 @@ index 847a7bbb69c5..d59d2408751b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 4 Jul 2020 01:45:08 +0300 -Subject: [PATCH 322/717] media: i2c: ov5647: Parse and register properties +Subject: [PATCH 322/784] media: i2c: ov5647: Parse and register properties Parse device properties and register controls for them using the V4L2 fwnode properties helpers. @@ -200753,7 +200753,7 @@ index d59d2408751b..51adcbf54db2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 17 Mar 2021 12:34:57 +0000 -Subject: [PATCH 323/717] staging/bcm2835-camera: Add support for DMABUFs +Subject: [PATCH 323/784] staging/bcm2835-camera: Add support for DMABUFs DMABUFs are all handled by videobuf2, so there is no reason not to enable support for them. @@ -200796,7 +200796,7 @@ index c9d5b009fa9d..430e5c42d09d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 19 Feb 2021 10:25:01 +0000 -Subject: [PATCH 324/717] staging: fbtft: Add minipitft13 variant +Subject: [PATCH 324/784] staging: fbtft: Add minipitft13 variant The Adafruit Mini-PiTFT13 display needs offsets applying when rotated, so use the "variant" mechanism to select a custom set_addr_win method @@ -200906,7 +200906,7 @@ index 861a154144e6..3bcd9ee17b6c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Apr 2021 17:30:35 +0100 -Subject: [PATCH 325/717] drm/panel: jdi-lt070me05000: Use +Subject: [PATCH 325/784] drm/panel: jdi-lt070me05000: Use gpiod_set_value_cansleep There is no reason why the control GPIOs for the panel can not @@ -200979,7 +200979,7 @@ index 8f4f137a2af6..74350f95d1cf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 25 Mar 2021 18:34:50 +0000 -Subject: [PATCH 326/717] staging/bcm2835-camera: Add support for H264 levels +Subject: [PATCH 326/784] staging/bcm2835-camera: Add support for H264 levels 4.1 and 4.2 Whilst the hardware can't achieve the limits of level 4.2 under @@ -201043,7 +201043,7 @@ index 65577e3322e2..ccb4317074f5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 23 Apr 2021 16:16:49 +0100 -Subject: [PATCH 327/717] staging/bcm2835-isp: Fix compiler warning +Subject: [PATCH 327/784] staging/bcm2835-isp: Fix compiler warning The result of dividing a u32 by a size_t is an unsigned int on arm32 and a long unsigned int on arm64. Use "%zu" (the size_t format) to @@ -201074,7 +201074,7 @@ index 7d98096af459..f22f0e154667 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 27 Apr 2021 08:59:01 +0100 -Subject: [PATCH 328/717] gpio-poweroff: Remember the old poweroff handler +Subject: [PATCH 328/784] gpio-poweroff: Remember the old poweroff handler Keeping a copy of the old poweroff handler allows it to be restored should this module be unloaded, but also provides a fallback if the @@ -201133,7 +201133,7 @@ index e5dca66360a7..81e7acb8acb5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 11 May 2021 12:52:26 +0100 -Subject: [PATCH 329/717] media: i2c: ov5647: Correct pixel array offset +Subject: [PATCH 329/784] media: i2c: ov5647: Correct pixel array offset The top offset in the pixel array is actually 6 (see page 3-1 of the OV5647 data sheet). @@ -201164,7 +201164,7 @@ index 51adcbf54db2..904fbfd27f1d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 11 May 2021 12:57:22 +0100 -Subject: [PATCH 330/717] media: i2c: ov5647: Correct minimum VBLANK value +Subject: [PATCH 330/784] media: i2c: ov5647: Correct minimum VBLANK value Trial and error reveals that the minimum vblank value appears to be 24 (the OV5647 data sheet does not give any clues). This fixes streaming @@ -201196,7 +201196,7 @@ index 904fbfd27f1d..222f6ea95051 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 12 May 2021 07:39:21 +0100 -Subject: [PATCH 331/717] media: i2c: ov5647: Fix v4l2-compliance failure +Subject: [PATCH 331/784] media: i2c: ov5647: Fix v4l2-compliance failure subscribing to events Fixes the following v4l2-compliance failure: @@ -201228,7 +201228,7 @@ index 222f6ea95051..1e769d53d9c2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 29 Jun 2021 12:50:58 +0100 -Subject: [PATCH 332/717] staging: vc04_services: isp: Set the YUV420/YVU420 +Subject: [PATCH 332/784] staging: vc04_services: isp: Set the YUV420/YVU420 format stride to 64 bytes The bcm2835 ISP requires the base address of all input/output planes to have 32 @@ -201273,7 +201273,7 @@ index 7541fb316cb9..f6d6c88d13ba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Van=C4=9Bk?= Date: Wed, 7 Jul 2021 22:48:20 +0200 -Subject: [PATCH 333/717] media: bcm2835-unicam: Forward input status from +Subject: [PATCH 333/784] media: bcm2835-unicam: Forward input status from subdevice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -201332,7 +201332,7 @@ index a684ea98d315..a1c85bdeab37 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Aug 2021 11:33:33 +0100 -Subject: [PATCH 334/717] media: i2c: ov7251: Add fwnode properties controls +Subject: [PATCH 334/784] media: i2c: ov7251: Add fwnode properties controls Add call to v4l2_ctrl_new_fwnode_properties to read and create the fwnode based controls. @@ -201386,7 +201386,7 @@ index 88e987435285..05cea92277ca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 11 Aug 2021 15:33:57 +0100 -Subject: [PATCH 335/717] usb: xhci: workaround for bogus SET_DEQ_PENDING +Subject: [PATCH 335/784] usb: xhci: workaround for bogus SET_DEQ_PENDING endpoint state See https://github.com/raspberrypi/linux/issues/3981 @@ -201410,10 +201410,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index dce02d0aad8d..2f4a4a64e875 100644 +index 7a7ab525675b..96654a0987a1 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -677,9 +677,9 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, +@@ -697,9 +697,9 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, } if ((ep->ep_state & SET_DEQ_PENDING)) { @@ -201433,7 +201433,7 @@ index dce02d0aad8d..2f4a4a64e875 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 1 Nov 2018 17:31:37 +0000 -Subject: [PATCH 336/717] staging: vchiq_arm: Add 36-bit address support +Subject: [PATCH 336/784] staging: vchiq_arm: 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 @@ -201695,7 +201695,7 @@ index 004ad2e7f168..08bf8ac019c5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Jul 2020 17:34:09 +0100 -Subject: [PATCH 337/717] staging: vchiq_arm: children inherit DMA config +Subject: [PATCH 337/784] 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 @@ -201737,7 +201737,7 @@ index 08bf8ac019c5..1fded3fe2251 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: detule Date: Tue, 2 Oct 2018 04:10:08 -0400 -Subject: [PATCH 338/717] staging: vchiq_arm: Usa a DMA pool for small bulks +Subject: [PATCH 338/784] staging: vchiq_arm: Usa a DMA pool for small bulks During a bulk transfer we request a DMA allocation to hold the scatter-gather list. Most of the time, this allocation is small @@ -201861,7 +201861,7 @@ index 1fded3fe2251..021cc8c4d5b6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:21:38 +0100 -Subject: [PATCH 339/717] drm/panel/raspberrypi-touchscreen: Handle I2C errors. +Subject: [PATCH 339/784] drm/panel/raspberrypi-touchscreen: Handle I2C errors. rpi_touchscreen_i2c_read returns any errors from i2c_transfer, or the 8 bit received value. @@ -201901,7 +201901,7 @@ index 6ce5ea3cd5b1..310743ca2165 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Mar 2021 17:06:36 +0000 -Subject: [PATCH 340/717] drm/panel-simple: Add a timing for the Raspberry Pi +Subject: [PATCH 340/784] drm/panel-simple: Add a timing for the Raspberry Pi 7" panel The Raspberry Pi 7" 800x480 panel uses a Toshiba TC358762 DSI @@ -201966,7 +201966,7 @@ index 8a3b685c2fcc..930c3b9aa101 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:46:17 +0100 -Subject: [PATCH 341/717] Input: edt-ft54x6: Clean up timer and workqueue on +Subject: [PATCH 341/784] Input: edt-ft54x6: Clean up timer and workqueue on remove If no interrupt is defined then a timer and workqueue are used @@ -202003,7 +202003,7 @@ index d5574835b198..06731d73ec28 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Sun, 10 Jan 2021 19:05:17 +0000 -Subject: [PATCH 342/717] staging/vchiq-mmal: Add buffer flags for interlaced +Subject: [PATCH 342/784] staging/vchiq-mmal: Add buffer flags for interlaced video Add the buffer flags that the firmware uses to identify fields @@ -202051,7 +202051,7 @@ index ef84b4e35608..baf37254645a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 5 Aug 2021 16:38:34 +0100 -Subject: [PATCH 343/717] staging/vchiq-mmal: Add parameters for interlaced +Subject: [PATCH 343/784] staging/vchiq-mmal: Add parameters for interlaced video support Adds enum mmal_interlace_type and struct @@ -202118,7 +202118,7 @@ index 722af059ff9d..3ef8e1e05902 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 Aug 2021 15:44:21 +0100 -Subject: [PATCH 344/717] staging/vchiq-mmal: Add the deinterlace image effects +Subject: [PATCH 344/784] staging/vchiq-mmal: Add the deinterlace image effects enums As we're wanting to wrap the image_fx component for deinterlacing, @@ -202150,7 +202150,7 @@ index 3ef8e1e05902..825daadf2fea 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Serge Schneider Date: Mon, 2 Dec 2019 14:48:05 +0000 -Subject: [PATCH 345/717] Add Raspberry Pi PoE+ HAT support +Subject: [PATCH 345/784] Add Raspberry Pi PoE+ HAT support Signed-off-by: Serge Schneider --- @@ -202429,7 +202429,7 @@ index 000000000000..0c96b2c1e8ab From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Sep 2021 17:49:41 +0100 -Subject: [PATCH 346/717] staging/mmal-vchiq: Rationalise included headers +Subject: [PATCH 346/784] staging/mmal-vchiq: Rationalise included headers The list of includes was slightly over generic, and wasn't in alphabetical order. Clean it up. @@ -202471,7 +202471,7 @@ index 4a948d754185..6030680569a2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 15 Sep 2021 17:54:11 +0100 -Subject: [PATCH 347/717] staging/mmal-vchiq: Add module parameter to enable +Subject: [PATCH 347/784] staging/mmal-vchiq: Add module parameter to enable logging. Adds a module parameter "debug" to enable various logging levels. @@ -202788,7 +202788,7 @@ index 6030680569a2..8324897cb2ca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 21 Sep 2021 17:17:57 +0100 -Subject: [PATCH 348/717] staging: mmal-vchiq: Reset buffers_with_vpu on +Subject: [PATCH 348/784] staging: mmal-vchiq: Reset buffers_with_vpu on port_enable Should we go through the timeout failure case with port_disable @@ -202825,7 +202825,7 @@ index 8324897cb2ca..f112394b65d1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 14 Oct 2021 11:09:18 +0100 -Subject: [PATCH 349/717] drivers/gpio: Add a driver that wraps the PWM API as +Subject: [PATCH 349/784] drivers/gpio: Add a driver that wraps the PWM API as a GPIO controller For cases where spare PWM outputs are available, but are desired @@ -202841,7 +202841,7 @@ Signed-off-by: Dave Stevenson create mode 100644 drivers/gpio/gpio-pwm.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig -index cd8b1a26d980..a9c0c7c36330 100644 +index a6a90f15b64f..a4115105c7b8 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -500,6 +500,14 @@ config GPIO_PMIC_EIC_SPRD @@ -203028,7 +203028,7 @@ index 000000000000..89f5d6b353ab From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:47:00 +0100 -Subject: [PATCH 350/717] media: i2c: ov5647: Sensor should report RAW color +Subject: [PATCH 350/784] media: i2c: ov5647: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -203085,7 +203085,7 @@ index 1e769d53d9c2..dea016035c90 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:49:15 +0100 -Subject: [PATCH 351/717] vc04_services: isp: Report input node as wanting full +Subject: [PATCH 351/784] vc04_services: isp: Report input node as wanting full range RAW color space RAW color spaces are more usually reported as having full range @@ -203120,7 +203120,7 @@ index f22f0e154667..ee893f875c42 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 23 Sep 2020 15:16:18 +0100 -Subject: [PATCH 352/717] media/bcm2835-unicam: Parse pad numbers correctly +Subject: [PATCH 352/784] media/bcm2835-unicam: Parse pad numbers correctly The driver was making big assumptions about the source device using pad 0 and 1, which doesn't follow for more complex @@ -203358,7 +203358,7 @@ index a1c85bdeab37..c183e07f4a35 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 15 Oct 2021 17:57:27 +0100 -Subject: [PATCH 353/717] media/bcm2835-unicam: Add support for configuration +Subject: [PATCH 353/784] media/bcm2835-unicam: Add support for configuration via MC API Adds Media Controller API support for more complex pipelines. @@ -206080,7 +206080,7 @@ index c183e07f4a35..58b3e14ecbaf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: soyer Date: Sat, 23 Oct 2021 12:23:50 +0200 -Subject: [PATCH 354/717] staging/bcm2835-camera: Add support for H264_MIN_QP, +Subject: [PATCH 354/784] staging/bcm2835-camera: Add support for H264_MIN_QP, H264_MAX_QP Signed-off-by: Gergo Koteles @@ -206142,7 +206142,7 @@ index ccb4317074f5..7133791fda89 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Gergo Koteles Date: Sun, 24 Oct 2021 23:18:09 +0200 -Subject: [PATCH 355/717] staging/bcm2835-camera: Add support for +Subject: [PATCH 355/784] staging/bcm2835-camera: Add support for MPEG_VIDEO_FORCE_KEY_FRAME Signed-off-by: Gergo Koteles @@ -206193,7 +206193,7 @@ index 7133791fda89..4d1d6dc2a8d3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 2 Nov 2021 11:13:42 +0000 -Subject: [PATCH 356/717] brcmfmac: Don't promote INFO logging to ERR +Subject: [PATCH 356/784] brcmfmac: Don't promote INFO logging to ERR An unwanted side effect of enabling the BRCMDBG config setting is redefining brcmf_info to be brcmf_err. This can be alarming to users @@ -206231,7 +206231,7 @@ index 9bb5f709d41a..ca49700cca50 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Mon, 22 Nov 2021 13:10:39 +0000 -Subject: [PATCH 357/717] media: i2c: ov5647: Support HFLIP and VFLIP +Subject: [PATCH 357/784] media: i2c: ov5647: Support HFLIP and VFLIP Add these missing V4L2 controls. Tested binned and full resolution modes in all four orientations using Raspberry Pi running libcamera. @@ -206426,7 +206426,7 @@ index dea016035c90..30090697503a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 16 Nov 2021 12:38:44 +0000 -Subject: [PATCH 358/717] drivers: bcm2835_isp: Allow multiple users for the +Subject: [PATCH 358/784] drivers: bcm2835_isp: Allow multiple users for the ISP driver. Add a second (identical) set of device nodes to allow concurrent use of the ISP @@ -206607,7 +206607,7 @@ index ee893f875c42..87cd10548564 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 25 Nov 2021 08:59:58 +0000 -Subject: [PATCH 359/717] drivers: bcm2835_isp: Fix div by 0 bug. +Subject: [PATCH 359/784] drivers: bcm2835_isp: Fix div by 0 bug. Fix a possible division by 0 bug when setting up the mmal port for the stats port. @@ -206636,7 +206636,7 @@ index f6d6c88d13ba..a545dbf2b5dd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Nov 2021 12:14:49 +0000 -Subject: [PATCH 360/717] spi: spidev: Restore loading from Device Tree +Subject: [PATCH 360/784] spi: spidev: Restore loading from Device Tree As happens occasionally, an upstream change has once again prevented spidev from being loaded via Device Tree. We now need "spidev" to be @@ -206667,7 +206667,7 @@ index ebe13ca17fbb..500feb31b627 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 26 Nov 2021 14:37:40 +0000 -Subject: [PATCH 361/717] input: edt-ft5x06: Handle unreliable TOUCH_UP events +Subject: [PATCH 361/784] input: edt-ft5x06: Handle unreliable TOUCH_UP events The ft5x06 is unreliable in sending touch up events, so some touch IDs can become stuck in the detected state. @@ -206736,7 +206736,7 @@ index 06731d73ec28..f5202dafb458 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 30 Nov 2021 10:39:41 +0000 -Subject: [PATCH 362/717] drivers: bcm2835_unicam: Add logging message when a +Subject: [PATCH 362/784] drivers: bcm2835_unicam: Add logging message when a frame is dropped. If a dummy buffer is still active on a frame start, it indicates that this frame @@ -206768,7 +206768,7 @@ index 58b3e14ecbaf..7d5559a863a4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 29 Nov 2021 18:31:37 +0000 -Subject: [PATCH 363/717] regulator/rpi-panel-attiny: Don't read the LCD power +Subject: [PATCH 363/784] regulator/rpi-panel-attiny: Don't read the LCD power status The I2C to the Atmel is very fussy, and locks up easily on @@ -206820,7 +206820,7 @@ index 308f7972941b..a2bc495bf076 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 30 Nov 2021 17:28:50 +0000 -Subject: [PATCH 364/717] input: edt-ft5x06: Only look at the number of points +Subject: [PATCH 364/784] input: edt-ft5x06: Only look at the number of points reported Register 0x02 in the FT5x06 is TD_STATUS containing the number @@ -206870,7 +206870,7 @@ index f5202dafb458..8b7f3087aceb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 29 Oct 2018 14:45:45 +0000 -Subject: [PATCH 365/717] rtc: pcf8523: Fix oscillator stop bit handling +Subject: [PATCH 365/784] rtc: pcf8523: Fix oscillator stop bit handling See: https://github.com/raspberrypi/firmware/issues/1065 @@ -206933,7 +206933,7 @@ index 6174b3fd4b98..3a4eaa2dbb58 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:10:55 +0000 -Subject: [PATCH 366/717] drm/panel-simple: Populate bpc when using panel-dpi +Subject: [PATCH 366/784] drm/panel-simple: Populate bpc when using panel-dpi panel-dpi doesn't know the bit depth, so in the same way that DPI is guessed for the connector type, guess that it'll be 8bpc. @@ -206963,7 +206963,7 @@ index 930c3b9aa101..8028dbff4990 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 18:16:21 +0000 -Subject: [PATCH 367/717] drm/panel-simple: Allow the bus format to be read +Subject: [PATCH 367/784] drm/panel-simple: Allow the bus format to be read from DT for panel-dpi The "panel-dpi" compatible string configures panel from device tree, @@ -206997,7 +206997,7 @@ index 8028dbff4990..9f87f4c1f55a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 26 Oct 2020 14:03:35 +0000 -Subject: [PATCH 368/717] xhci: quirks: add link TRB quirk for VL805 +Subject: [PATCH 368/784] 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 @@ -207017,10 +207017,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 11 insertions(+) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 232e175e4e96..f8cddf28c02c 100644 +index 6e4dac71c409..8c072a1aeb93 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -295,6 +295,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -296,6 +296,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; @@ -207029,10 +207029,10 @@ index 232e175e4e96..f8cddf28c02c 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 2f4a4a64e875..97554ca8c789 100644 +index 96654a0987a1..f50c173aa7c1 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -667,6 +667,15 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, +@@ -687,6 +687,15 @@ static int xhci_move_dequeue_past_td(struct xhci_hcd *xhci, } while (!cycle_found || !td_last_trb_found); deq_found: @@ -207049,7 +207049,7 @@ index 2f4a4a64e875..97554ca8c789 100644 /* Don't update the ring cycle state for the producer (us). */ addr = xhci_trb_virt_to_dma(new_seg, new_deq); diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index b762a7123935..829a40b063e1 100644 +index 5a56acc16a26..10d20372b150 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1899,6 +1899,7 @@ struct xhci_hcd { @@ -207067,7 +207067,7 @@ index b762a7123935..829a40b063e1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 3 Dec 2021 14:32:05 +0000 -Subject: [PATCH 369/717] xhci: correct room_on_ring() for cases where there is +Subject: [PATCH 369/784] xhci: correct room_on_ring() for cases where there is a single segment Don't calculate space based on the number of TRBs in the current segment, @@ -207079,10 +207079,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 6 insertions(+) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index 97554ca8c789..c2ba570a98b6 100644 +index f50c173aa7c1..ebf90c84c61e 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -289,6 +289,12 @@ static inline int room_on_ring(struct xhci_hcd *xhci, struct xhci_ring *ring, +@@ -309,6 +309,12 @@ static inline int room_on_ring(struct xhci_hcd *xhci, struct xhci_ring *ring, return 0; if (ring->type != TYPE_COMMAND && ring->type != TYPE_EVENT) { @@ -207102,7 +207102,7 @@ index 97554ca8c789..c2ba570a98b6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 13 Dec 2021 15:05:56 +0000 -Subject: [PATCH 370/717] xhci: refactor out TRBS_PER_SEGMENT define in runtime +Subject: [PATCH 370/784] xhci: refactor out TRBS_PER_SEGMENT define in runtime code In anticipation of adjusting the number of utilised TRBs in a ring @@ -207257,7 +207257,7 @@ index 2221aba82579..ac6e8957c894 100644 seg = seg->next; } diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index c2ba570a98b6..323ca0dba61d 100644 +index ebf90c84c61e..74b5adbcf36c 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -90,15 +90,16 @@ static bool trb_is_link(union xhci_trb *trb) @@ -207309,7 +207309,7 @@ index c2ba570a98b6..323ca0dba61d 100644 xhci_err(xhci, "Tried to move enqueue past ring segment\n"); return; } -@@ -3096,7 +3099,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) +@@ -3123,7 +3126,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) * that clears the EHB. */ while (xhci_handle_event(xhci) > 0) { @@ -207318,7 +207318,7 @@ index c2ba570a98b6..323ca0dba61d 100644 continue; xhci_update_erst_dequeue(xhci, event_ring_deq); event_ring_deq = xhci->event_ring->dequeue; -@@ -3238,7 +3241,8 @@ static int prepare_ring(struct xhci_hcd *xhci, struct xhci_ring *ep_ring, +@@ -3265,7 +3268,8 @@ static int prepare_ring(struct xhci_hcd *xhci, struct xhci_ring *ep_ring, } } @@ -207329,10 +207329,10 @@ index c2ba570a98b6..323ca0dba61d 100644 return -EINVAL; } diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index c7aaba91062d..3e7ca9058df3 100644 +index 888e08e31e78..cc5059bfb72e 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -891,8 +891,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -895,8 +895,8 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) seg = ring->deq_seg; do { memset(seg->trbs, 0, @@ -207343,7 +207343,7 @@ index c7aaba91062d..3e7ca9058df3 100644 cpu_to_le32(~TRB_CYCLE); seg = seg->next; } while (seg != ring->deq_seg); -@@ -903,7 +903,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) +@@ -907,7 +907,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci) ring->enq_seg = ring->deq_seg; ring->enqueue = ring->dequeue; @@ -207353,7 +207353,7 @@ index c7aaba91062d..3e7ca9058df3 100644 * Ring is now zeroed, so the HW should look for change of ownership * when the cycle bit is set to 1. diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 829a40b063e1..4b6700b8e2ce 100644 +index 10d20372b150..b3a4e7b2620d 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1633,6 +1633,7 @@ struct xhci_ring { @@ -207371,7 +207371,7 @@ index 829a40b063e1..4b6700b8e2ce 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 13 Dec 2021 16:04:03 +0000 -Subject: [PATCH 371/717] usb: xhci: add VLI_TRB_CACHE_BUG quirk +Subject: [PATCH 371/784] usb: xhci: add VLI_TRB_CACHE_BUG quirk The VL805 fetches up to 4 transfer TRBs at a time. TRB reads don't cross a 64B boundary, and if a TRB is fetched and is not on a 64B boundary, @@ -207424,10 +207424,10 @@ index ac6e8957c894..e9d81cb1d6b0 100644 &ring->last_seg, num_segs, ring->trbs_per_seg, cycle_state, type, max_packet, flags); diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index f8cddf28c02c..374a3f992884 100644 +index 8c072a1aeb93..d65296b01129 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -296,6 +296,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -297,6 +297,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; @@ -207436,7 +207436,7 @@ index f8cddf28c02c..374a3f992884 100644 if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 4b6700b8e2ce..ce8541d6c28f 100644 +index b3a4e7b2620d..7f008fdb37b5 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1901,6 +1901,7 @@ struct xhci_hcd { @@ -207454,7 +207454,7 @@ index 4b6700b8e2ce..ce8541d6c28f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 22 Nov 2021 12:31:35 +0000 -Subject: [PATCH 372/717] media: i2c: ov5647: Add support for regulator +Subject: [PATCH 372/784] media: i2c: ov5647: Add support for regulator control. The driver supported using GPIOs to control the shutdown line, @@ -207571,7 +207571,7 @@ index 30090697503a..ccf1c28d3c8f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Dec 2021 17:18:49 +0000 -Subject: [PATCH 373/717] media: i2c: ov7251: Make the enable GPIO optional. +Subject: [PATCH 373/784] media: i2c: ov7251: Make the enable GPIO optional. Not all implementations wire up the enable GPIO and may just tie it to a supply rail. @@ -207603,7 +207603,7 @@ index 05cea92277ca..e5adaa17cddf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 16 Dec 2021 16:25:00 +0000 -Subject: [PATCH 374/717] staging/bcm2835-isp: Fix cleanup after init fail +Subject: [PATCH 374/784] staging/bcm2835-isp: Fix cleanup after init fail bcm2835_isp_remove is called on an initialisation failure, but at that point the drvdata hasn't been set. This causes a crash when e.g. using @@ -207647,7 +207647,7 @@ index 87cd10548564..a512994b7267 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 4 Jan 2022 13:56:42 +0000 -Subject: [PATCH 375/717] uapi/v4l2-controls: Reset +Subject: [PATCH 375/784] uapi/v4l2-controls: Reset V4L2_CID_USER_BCM2835_ISP_BASE to same as 5.10 https://github.com/raspberrypi/linux/issues/4440 @@ -207686,7 +207686,7 @@ index ea7e229cd245..af104013ac23 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 4 Jan 2022 14:46:01 +0000 -Subject: [PATCH 376/717] media: i2c: ov9281: Increase diff between VTS and max +Subject: [PATCH 376/784] media: i2c: ov9281: Increase diff between VTS and max exposure The driver did allow the exposure to go up to VTS - 4 lines, @@ -207752,7 +207752,7 @@ index 041171e3a0c5..36ead3b3b584 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Blaesius Date: Wed, 5 Jan 2022 20:38:39 +0100 -Subject: [PATCH 377/717] Use GitHubs issue form for bug reports +Subject: [PATCH 377/784] Use GitHubs issue form for bug reports Use GitHubs issue form for bug reports. @@ -207928,7 +207928,7 @@ index 000000000000..338282d8eb46 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Padmanabha Srinivasaiah Date: Thu, 30 Dec 2021 21:45:10 +0100 -Subject: [PATCH 378/717] bcm2835-v4l2-isp: Add missing lock initialization +Subject: [PATCH 378/784] bcm2835-v4l2-isp: Add missing lock initialization ISP device allocation is dynamic hence the locks too. struct mutex queue_lock is not initialized which result in bug. @@ -207985,7 +207985,7 @@ index a512994b7267..8fa6971edce0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 19 Jan 2022 17:22:57 +0000 -Subject: [PATCH 379/717] mfd: simple-mfd-i2c: Add configuration for RPi POE +Subject: [PATCH 379/784] mfd: simple-mfd-i2c: Add configuration for RPi POE HAT The Raspbery Pi PoE+ HAT exposes a fan controller and power @@ -208056,7 +208056,7 @@ index f4c8fc3ee463..9f60dfd35e9f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 19 Jan 2022 17:26:22 +0000 -Subject: [PATCH 380/717] pwm: raspberrypi-poe: Add option of being created by +Subject: [PATCH 380/784] pwm: raspberrypi-poe: Add option of being created by MFD or FW The firmware can only use I2C0 if the kernel isn't, therefore @@ -208073,7 +208073,7 @@ Signed-off-by: Dave Stevenson 1 file changed, 48 insertions(+), 33 deletions(-) diff --git a/drivers/pwm/pwm-raspberrypi-poe.c b/drivers/pwm/pwm-raspberrypi-poe.c -index 6ff73029f367..117a061a7a3e 100644 +index 2939b71a7ba7..4cf3d6fd5011 100644 --- a/drivers/pwm/pwm-raspberrypi-poe.c +++ b/drivers/pwm/pwm-raspberrypi-poe.c @@ -16,6 +16,7 @@ @@ -208158,8 +208158,8 @@ index 6ff73029f367..117a061a7a3e 100644 + return ret; } - static void raspberrypi_pwm_get_state(struct pwm_chip *chip, -@@ -117,7 +125,7 @@ static int raspberrypi_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, + static int raspberrypi_pwm_get_state(struct pwm_chip *chip, +@@ -119,7 +127,7 @@ static int raspberrypi_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, if (duty_cycle == rpipwm->duty_cycle) return 0; @@ -208168,7 +208168,7 @@ index 6ff73029f367..117a061a7a3e 100644 duty_cycle); if (ret) { dev_err(chip->dev, "Failed to set duty cycle: %pe\n", -@@ -144,28 +152,34 @@ static int raspberrypi_pwm_probe(struct platform_device *pdev) +@@ -146,28 +154,34 @@ static int raspberrypi_pwm_probe(struct platform_device *pdev) struct raspberrypi_pwm *rpipwm; int ret; @@ -208217,7 +208217,7 @@ index 6ff73029f367..117a061a7a3e 100644 &rpipwm->duty_cycle); if (ret) { dev_err(dev, "Failed to get duty cycle: %pe\n", ERR_PTR(ret)); -@@ -177,6 +191,7 @@ static int raspberrypi_pwm_probe(struct platform_device *pdev) +@@ -179,6 +193,7 @@ static int raspberrypi_pwm_probe(struct platform_device *pdev) static const struct of_device_id raspberrypi_pwm_of_match[] = { { .compatible = "raspberrypi,firmware-poe-pwm", }, @@ -208232,7 +208232,7 @@ index 6ff73029f367..117a061a7a3e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 20 Jan 2022 15:48:03 +0000 -Subject: [PATCH 381/717] power: rpi-poe: Drop CURRENT_AVG as it is not +Subject: [PATCH 381/784] power: rpi-poe: Drop CURRENT_AVG as it is not hardware averaged As documented the _AVG parameters are meant to be hardware @@ -208281,7 +208281,7 @@ index 0c96b2c1e8ab..7cf1014aa524 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 20 Jan 2022 15:50:27 +0000 -Subject: [PATCH 382/717] power: rpi-poe: Add option of being created by MFD or +Subject: [PATCH 382/784] power: rpi-poe: Add option of being created by MFD or FW The firmware can only use I2C0 if the kernel isn't, therefore @@ -208521,7 +208521,7 @@ index 7cf1014aa524..e96f98c39f0e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 18 Jan 2022 13:13:14 +0000 -Subject: [PATCH 383/717] drivers: bcm2835_unicam: Disable trigger mode +Subject: [PATCH 383/784] drivers: bcm2835_unicam: Disable trigger mode operation On a Pi3 B/B+ platform the imx219 sensor frequently generates a single corrupt @@ -208584,7 +208584,7 @@ index 7d5559a863a4..0a27ecf95818 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Penk Chen Date: Mon, 20 Dec 2021 03:44:56 +0900 -Subject: [PATCH 384/717] Extending ili9881c driver support for nwe080 panel +Subject: [PATCH 384/784] Extending ili9881c driver support for nwe080 panel Signed-off-by: Penk Chen --- @@ -208886,7 +208886,7 @@ index cbb68caa36f2..4d1017a621bf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:23:38 -0700 -Subject: [PATCH 385/717] media: bcm2835-unicam: Set ret on error path in +Subject: [PATCH 385/784] media: bcm2835-unicam: Set ret on error path in unicam_async_complete() Clang warns: @@ -208935,7 +208935,7 @@ index 0a27ecf95818..228d771e6597 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:50:43 -0700 -Subject: [PATCH 386/717] media: i2c: ov9281: Initialize id_msb to zero in +Subject: [PATCH 386/784] media: i2c: ov9281: Initialize id_msb to zero in ov9281_check_sensor_id() Clang warns: @@ -208989,7 +208989,7 @@ index 36ead3b3b584..028d96c97859 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alex Crawford Date: Fri, 28 Jan 2022 13:36:51 -0800 -Subject: [PATCH 387/717] i2c: bcm2835: Make clock-stretch timeout configurable +Subject: [PATCH 387/784] i2c: bcm2835: Make clock-stretch timeout configurable The default clock-stretch timeout is 35 mS, which works well for SMBus, but there are some I2C devices which can stretch the clock even @@ -209039,7 +209039,7 @@ index d768247c7e50..7408e2c136b0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: tiagofreire-pt <41837236+tiagofreire-pt@users.noreply.github.com> Date: Sat, 29 Jan 2022 10:01:36 +0000 -Subject: [PATCH 388/717] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE +Subject: [PATCH 388/784] Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE support --- @@ -209065,7 +209065,7 @@ index 04842f081842..033e0e6be78c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:37:43 -0600 -Subject: [PATCH 389/717] media: uapi: Document format +Subject: [PATCH 389/784] media: uapi: Document format MEDIA_BUS_FMT_RGB565_1X24_CPADHI Add support for MEDIA_BUS_FMT_RGB565_1X24_CPADHI. This format is used @@ -209131,7 +209131,7 @@ index d35b7cfbd2a9..8cdb545c887c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:40:50 -0600 -Subject: [PATCH 390/717] dt-bindings: vendor-prefixes: Add Geekworm +Subject: [PATCH 390/784] dt-bindings: vendor-prefixes: Add Geekworm Add vendor prefix for Geekworm (https://geekworm.com). @@ -209160,7 +209160,7 @@ index cf0e81449c58..dcaec826855e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:41:18 -0600 -Subject: [PATCH 391/717] dt-bindings: display: simple: add Geekworm MZP280 +Subject: [PATCH 391/784] dt-bindings: display: simple: add Geekworm MZP280 Panel The Geekworm MZP280 panel is a 480x640 (portrait) panel with a @@ -209200,7 +209200,7 @@ index 18241f4051d2..5b6a744d0371 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Fri, 28 Jan 2022 17:42:12 -0600 -Subject: [PATCH 392/717] drm/panel: simple: add Geekworm MZP280 Panel +Subject: [PATCH 392/784] drm/panel: simple: add Geekworm MZP280 Panel Add support for the Geekworm MZP280 Panel @@ -209264,7 +209264,7 @@ index 9f87f4c1f55a..1e7a31b2f444 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Feb 2022 12:24:51 +0000 -Subject: [PATCH 393/717] drm/panel: simple: Remove custom handling of +Subject: [PATCH 393/784] drm/panel: simple: Remove custom handling of orientation Panel orientation is now handled by the drm_panel and @@ -209321,7 +209321,7 @@ index 1e7a31b2f444..1705b34ef76b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 5 Jan 2022 19:14:48 +0000 -Subject: [PATCH 394/717] drm/panel: Add panel driver for Ilitek ILI9806E panel +Subject: [PATCH 394/784] drm/panel: Add panel driver for Ilitek ILI9806E panel The Ilitek ILI9806E driver is used in the Pimoroni HyperPixel4 and potentially other displays. Whilst it can support multiple @@ -209867,7 +209867,7 @@ index 000000000000..80e5bbe7a041 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 26 Jan 2022 16:02:31 +0000 -Subject: [PATCH 395/717] drm/panel: Add panel driver for TDO Y17B based panels +Subject: [PATCH 395/784] drm/panel: Add panel driver for TDO Y17B based panels The Top DisplayOptoelectronics (TDO) T17B driver chip is used in the TL040HDS20CT panel (found in the Pimoroni HyperPixel4 @@ -210207,7 +210207,7 @@ index 000000000000..28c2a33691fd From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 4 Feb 2022 11:33:28 +0000 -Subject: [PATCH 396/717] bindings: Add sck-idle-input to spi-gpio +Subject: [PATCH 396/784] bindings: Add sck-idle-input to spi-gpio Signed-off-by: Phil Elwell --- @@ -210236,7 +210236,7 @@ index 0d0b6d9dad1c..9136f081f420 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 12 Jan 2022 08:23:28 +0000 -Subject: [PATCH 397/717] spi: gpio: Add sck-idle-input property +Subject: [PATCH 397/784] spi: gpio: Add sck-idle-input property The sck-idle-input property indicates that the spi-gpio driver should return the SCK line to an input when the chip select signals are @@ -210299,7 +210299,7 @@ index 9c8c7948044e..5b52159e2dc0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 4 Feb 2022 16:12:35 +0000 -Subject: [PATCH 398/717] media: bcm2835-unicam: Handle a repeated frame start +Subject: [PATCH 398/784] media: bcm2835-unicam: Handle a repeated frame start with no end In the case of 2 frame starts being received with no frame end @@ -210368,7 +210368,7 @@ index 228d771e6597..7b7de978a214 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 16 Feb 2022 14:31:02 +0000 -Subject: [PATCH 399/717] usb: xhci: add a quirk for Superspeed bulk OUT +Subject: [PATCH 399/784] usb: xhci: add a quirk for Superspeed bulk OUT transfers on VL805 The VL805 has a bug in its internal FIFO space accounting that results @@ -210392,10 +210392,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 374a3f992884..8a70e6097ab8 100644 +index d65296b01129..bc7191307ef7 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -297,6 +297,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -298,6 +298,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG; @@ -210404,10 +210404,10 @@ index 374a3f992884..8a70e6097ab8 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 323ca0dba61d..dcb72ee18769 100644 +index 74b5adbcf36c..f82007a52c98 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3551,14 +3551,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3578,14 +3578,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, unsigned int num_trbs; unsigned int start_cycle, num_sgs = 0; unsigned int enqd_len, block_len, trb_buff_len, full_len; @@ -210425,7 +210425,7 @@ index 323ca0dba61d..dcb72ee18769 100644 full_len = urb->transfer_buffer_length; /* If we have scatter/gather list, we use it. */ if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) { -@@ -3595,6 +3596,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3622,6 +3623,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, start_cycle = ring->cycle_state; send_addr = addr; @@ -210443,7 +210443,7 @@ index 323ca0dba61d..dcb72ee18769 100644 /* Queue the TRBs, even if they are zero-length */ for (enqd_len = 0; first_trb || enqd_len < full_len; enqd_len += trb_buff_len) { -@@ -3607,6 +3619,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3634,6 +3646,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, if (enqd_len + trb_buff_len > full_len) trb_buff_len = full_len - enqd_len; @@ -210456,7 +210456,7 @@ index 323ca0dba61d..dcb72ee18769 100644 if (first_trb) { first_trb = false; diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index ce8541d6c28f..a8946c53110c 100644 +index 7f008fdb37b5..b5a3b037f14e 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1902,6 +1902,7 @@ struct xhci_hcd { @@ -210474,7 +210474,7 @@ index ce8541d6c28f..a8946c53110c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Feb 2022 14:48:30 +0000 -Subject: [PATCH 400/717] media: i2c: ov7251: Reinstate setting +Subject: [PATCH 400/784] media: i2c: ov7251: Reinstate setting ov7251_global_init_setting "media: i2c: Remove .s_power() from ov7251" removed the call that @@ -210512,7 +210512,7 @@ index e5adaa17cddf..a96a7622d5e4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 1 Mar 2022 15:12:15 +0000 -Subject: [PATCH 401/717] usb: xhci: rework XHCI_VLI_SS_BULK_OUT_BUG quirk +Subject: [PATCH 401/784] usb: xhci: rework XHCI_VLI_SS_BULK_OUT_BUG quirk Fix incorrectly applying the quirk for bulk IN endpoints and remove the commentary which is not completely accurate based on observed behaviour. @@ -210523,10 +210523,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index dcb72ee18769..d058a644a97a 100644 +index f82007a52c98..609e32c92bd1 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3551,7 +3551,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3578,7 +3578,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, unsigned int num_trbs; unsigned int start_cycle, num_sgs = 0; unsigned int enqd_len, block_len, trb_buff_len, full_len; @@ -210535,7 +210535,7 @@ index dcb72ee18769..d058a644a97a 100644 u32 field, length_field, remainder, maxpacket; u64 addr, send_addr; -@@ -3597,14 +3597,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3624,14 +3624,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, send_addr = addr; if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG && @@ -210553,7 +210553,7 @@ index dcb72ee18769..d058a644a97a 100644 } /* Queue the TRBs, even if they are zero-length */ -@@ -3619,7 +3614,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3646,7 +3641,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, if (enqd_len + trb_buff_len > full_len) trb_buff_len = full_len - enqd_len; @@ -210569,7 +210569,7 @@ index dcb72ee18769..d058a644a97a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 25 Feb 2022 18:16:13 +0000 -Subject: [PATCH 402/717] media/i2c: Add driver for Omnivision OV2311 +Subject: [PATCH 402/784] media/i2c: Add driver for Omnivision OV2311 Omnivision OV2311 is a CSI2 1600x1300 global shutter image sensor. Add a driver for it. @@ -211808,7 +211808,7 @@ index 000000000000..6d63e6519960 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 2 Mar 2022 16:47:37 +0000 -Subject: [PATCH 403/717] staging: vc04_services: isp: Permit all sRGB colour +Subject: [PATCH 403/784] staging: vc04_services: isp: Permit all sRGB colour spaces on ISP outputs ISP outputs actually support all colour spaces that are fundamentally @@ -211975,7 +211975,7 @@ index a545dbf2b5dd..5ab232ff9bd9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 3 Mar 2022 16:45:53 +0000 -Subject: [PATCH 404/717] drivers: staging: bcm2835-isp: Do not cleanup mmal +Subject: [PATCH 404/784] drivers: staging: bcm2835-isp: Do not cleanup mmal vcsm buffer on stop_streaming On stop_streaming() the vcsm buffer handle gets released by the buffer cleanup @@ -212024,7 +212024,7 @@ index 8fa6971edce0..44b1acff099e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Sep 2021 12:33:35 +0100 -Subject: [PATCH 405/717] dt-bindings: media: i2c: Add binding for ad5398 VCM +Subject: [PATCH 405/784] dt-bindings: media: i2c: Add binding for ad5398 VCM Add a binding for Analog Devices AD5398 10bit current sinking DAC when used as a lens VCM driver. @@ -212070,7 +212070,7 @@ index 000000000000..446ac9717598 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 29 Sep 2021 14:04:28 +0100 -Subject: [PATCH 406/717] media: i2c: Add driver for AD5398 VCM lens driver +Subject: [PATCH 406/784] media: i2c: Add driver for AD5398 VCM lens driver Adds a driver for the Analog Devices AD5398 10 bit I2C DAC which is commonly used for driving VCM lens @@ -212468,7 +212468,7 @@ index 000000000000..f3e3dc770446 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 16 Mar 2022 12:15:41 +0000 -Subject: [PATCH 407/717] media: i2c: ov5647: Use +Subject: [PATCH 407/784] media: i2c: ov5647: Use v4l2_async_register_subdev_sensor for lens binding v4l2_async_register_subdev doesn't bind in lens or flash drivers, @@ -212500,7 +212500,7 @@ index ccf1c28d3c8f..60214c1342e3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 17 Mar 2022 15:13:10 +0000 -Subject: [PATCH 408/717] media: i2c: Rename ad5398 to ad5398_vcm +Subject: [PATCH 408/784] media: i2c: Rename ad5398 to ad5398_vcm There's already a regulator module called ad5398 that exposes this device through the regulator API. That is meaningless in @@ -212539,7 +212539,7 @@ rename to drivers/media/i2c/ad5398_vcm.c From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 22 Mar 2022 15:16:40 +0000 -Subject: [PATCH 409/717] drivers: staging: bcm2835-isp: Clear LS table handle +Subject: [PATCH 409/784] drivers: staging: bcm2835-isp: Clear LS table handle in the firmware When all nodes have stopped streaming, ensure the firmware has released its @@ -212582,7 +212582,7 @@ index 44b1acff099e..c10fc6af1897 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 29 Mar 2022 16:10:06 +0100 -Subject: [PATCH 410/717] mm,page_alloc,cma: introduce a customisable threshold +Subject: [PATCH 410/784] mm,page_alloc,cma: introduce a customisable threshold for allocating pages in cma On some platforms the cma area can be half the entire system memory, @@ -212600,7 +212600,7 @@ Signed-off-by: David Plowman 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 5cae08963984..1c24d1369241 100644 +index 69668817fed3..f85702ff31b5 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -273,6 +273,27 @@ EXPORT_SYMBOL(init_on_alloc); @@ -212655,7 +212655,7 @@ index 5cae08963984..1c24d1369241 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 30 Mar 2022 09:48:41 +0100 -Subject: [PATCH 411/717] pinctrl: bcm2835: Only return non-GPIOs to inputs +Subject: [PATCH 411/784] pinctrl: bcm2835: Only return non-GPIOs to inputs Allowing GPIO state to persist allows the use of gpioset to control GPIO levels without having to use the --mode=wait feature. @@ -212666,10 +212666,10 @@ Signed-off-by: Phil Elwell 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index e16b376f055e..caa2540accc2 100644 +index 18bd7084db32..d9758d1d3b84 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -918,9 +918,12 @@ static int bcm2835_pmx_free(struct pinctrl_dev *pctldev, +@@ -928,9 +928,12 @@ static int bcm2835_pmx_free(struct pinctrl_dev *pctldev, unsigned offset) { struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev); @@ -212684,7 +212684,7 @@ index e16b376f055e..caa2540accc2 100644 return 0; } -@@ -962,10 +965,7 @@ static void bcm2835_pmx_gpio_disable_free(struct pinctrl_dev *pctldev, +@@ -972,10 +975,7 @@ static void bcm2835_pmx_gpio_disable_free(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset) { @@ -212703,7 +212703,7 @@ index e16b376f055e..caa2540accc2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 12:03:36 +0100 -Subject: [PATCH 412/717] drm/panel: ilitek-ili9881c: Clean up on +Subject: [PATCH 412/784] drm/panel: ilitek-ili9881c: Clean up on mipi_dsi_attach failure mipi_dsi_attach is allowed to fail, and currently the probe @@ -212740,7 +212740,7 @@ index 4d1017a621bf..bc4c846bf4a6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 31 Mar 2022 12:05:04 +0100 -Subject: [PATCH 413/717] drm/panel: panel-ilitek9881c: Add +Subject: [PATCH 413/784] drm/panel: panel-ilitek9881c: Add prepare_upstream_first flag The panel sends MIPI DCS commands during prepare and is expecting @@ -212774,7 +212774,7 @@ index bc4c846bf4a6..6136da4d0af8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alberto Solavagione Date: Wed, 20 Apr 2022 17:15:42 +0200 -Subject: [PATCH 414/717] clk-bcm2835: use subsys_initcall for the clock driver +Subject: [PATCH 414/784] clk-bcm2835: use subsys_initcall for the clock driver when IMA is enabled Co-authored-by: Davide Scovotto @@ -212808,7 +212808,7 @@ index 71129e60df9a..f2d07a851726 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Scovotto Davide Date: Wed, 20 Apr 2022 17:22:17 +0200 -Subject: [PATCH 415/717] tpm_tis_spi_main: Force probe routine to run +Subject: [PATCH 415/784] tpm_tis_spi_main: Force probe routine to run synchronously with driver and device registration when IMA is enabled Co-authored-by: Alberto Solavagione @@ -212842,7 +212842,7 @@ index a0963a3e92bd..1869bca4c7ee 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 29 Apr 2022 09:19:10 +0100 -Subject: [PATCH 416/717] staging: vchiq_arm: Add log_level module params +Subject: [PATCH 416/784] staging: vchiq_arm: Add log_level module params Add module parameters to control the logging levels for the various vchiq logging categories. @@ -212875,7 +212875,7 @@ index 021cc8c4d5b6..59e73109fbd6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 21 Apr 2022 14:14:29 +0800 -Subject: [PATCH 417/717] dt-bindings: vendor-prefixes: Add Arducam +Subject: [PATCH 417/784] dt-bindings: vendor-prefixes: Add Arducam Add vendor prefix for Arducam (https://arducam.com). @@ -212904,7 +212904,7 @@ index dcaec826855e..8e61f905d79c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 21 Apr 2022 14:18:44 +0800 -Subject: [PATCH 418/717] media: dt-bindings: media: i2c: Add Arducam Pivariety +Subject: [PATCH 418/784] media: dt-bindings: media: i2c: Add Arducam Pivariety Series CMOS sensor binding Add YAML device tree binding for Arducam Pivariety CMOS image sensor, and @@ -213036,7 +213036,7 @@ index 000000000000..92bf4ff32eb4 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 2d1ff0df8614..354482749468 100644 +index 4a6bca428192..6fa2a163daf3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1559,6 +1559,14 @@ S: Maintained @@ -213061,7 +213061,7 @@ index 2d1ff0df8614..354482749468 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Thu, 14 Apr 2022 17:31:01 +0800 -Subject: [PATCH 419/717] media: i2c: Add driver of Arducam Pivariety series +Subject: [PATCH 419/784] media: i2c: Add driver of Arducam Pivariety series camera Add a driver for the Arducam Pivariety series CSI2 camera sensor. @@ -214710,7 +214710,7 @@ index 000000000000..b2b8cbc47138 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 6 May 2022 15:34:44 +0100 -Subject: [PATCH 420/717] thermal: broadcom: Use dev_err_probe to suppress +Subject: [PATCH 420/784] thermal: broadcom: Use dev_err_probe to suppress defer errors It is quite common for the devm_thermal_zone_of_sensor_register @@ -214742,7 +214742,7 @@ index 1f8651d15160..3694e64fd308 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Shych Date: Sat, 30 Apr 2022 14:49:04 +0300 -Subject: [PATCH 421/717] dt-bindings: hwmon: add microchip,emc2305.yaml dt +Subject: [PATCH 421/784] dt-bindings: hwmon: add microchip,emc2305.yaml dt binding description. Submitted to linux-hwmon mailing list at @@ -214824,7 +214824,7 @@ index 000000000000..52ae4c2924d6 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 May 2022 14:03:30 +0100 -Subject: [PATCH 422/717] dtbindings: Fixup microchip,emc2305.yaml bindings +Subject: [PATCH 422/784] dtbindings: Fixup microchip,emc2305.yaml bindings The bindings submitted to mainline had some issues, so fix them up. @@ -214870,7 +214870,7 @@ index 52ae4c2924d6..efdc3cecb03d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 12 May 2022 14:29:48 +0100 -Subject: [PATCH 423/717] media: i2c: Update ov2311 Kconfig entry +Subject: [PATCH 423/784] media: i2c: Update ov2311 Kconfig entry Bring the OV2311 Kconfig declaration in line with upstream entries. @@ -214898,7 +214898,7 @@ index f3960dad23be..62c94d2ac69d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 12 May 2022 14:31:43 +0100 -Subject: [PATCH 424/717] media: i2c: Update ov9281 Kconfig entry +Subject: [PATCH 424/784] media: i2c: Update ov9281 Kconfig entry Bring the OV9281 Kconfig declaration in line with upstream entries. @@ -214926,7 +214926,7 @@ index 62c94d2ac69d..a253fe2cfbb6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 12 May 2022 14:32:26 +0100 -Subject: [PATCH 425/717] media: i2c: Update irs1125 Kconfig entry +Subject: [PATCH 425/784] media: i2c: Update irs1125 Kconfig entry Bring the IRS1125 Kconfig declaration in line with upstream entries. @@ -214957,7 +214957,7 @@ index a253fe2cfbb6..40432efc8a6a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 12 May 2022 17:42:08 +0100 -Subject: [PATCH 426/717] media: i2c: arducam-pivariety: Fixup for mainline API +Subject: [PATCH 426/784] media: i2c: arducam-pivariety: Fixup for mainline API changes Mainline APIs have changed the way in which the bus flags and @@ -215005,7 +215005,7 @@ index db008f944833..1806f44f343b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Mon, 16 May 2022 10:28:27 +0100 -Subject: [PATCH 427/717] mmc: block: Don't do single-sector reads during +Subject: [PATCH 427/784] mmc: block: Don't do single-sector reads during recovery See https://github.com/raspberrypi/linux/issues/5019 @@ -215026,10 +215026,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c -index f12e774df12a..3718a39c9dc5 100644 +index bc1b8faed8cd..fc861849e73e 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -1899,7 +1899,7 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req) +@@ -1902,7 +1902,7 @@ static void mmc_blk_mq_rw_recovery(struct mmc_queue *mq, struct request *req) return; } @@ -215045,7 +215045,7 @@ index f12e774df12a..3718a39c9dc5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 16 May 2022 17:33:48 +0100 -Subject: [PATCH 428/717] vc04_services: vchiq-mmal: Add defines for +Subject: [PATCH 428/784] vc04_services: vchiq-mmal: Add defines for mmal_es_format flags There is a flags field in struct mmal_es_format, but the defines @@ -215085,7 +215085,7 @@ index 5569876d8c7d..e8f5ca85a7c4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 7 Jun 2022 12:02:10 +0200 -Subject: [PATCH 429/717] random: do not use jump labels before they are +Subject: [PATCH 429/784] random: do not use jump labels before they are initialized [ I would like to pursue fixing this more directly first before actually @@ -215177,7 +215177,7 @@ index 5d1c8e1c99b5..fbf227c5b528 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 20 Apr 2022 18:08:38 +0100 -Subject: [PATCH 430/717] drm/v3d: Switch clock setting to new api +Subject: [PATCH 430/784] drm/v3d: Switch clock setting to new api Signed-off-by: Dom Cobley @@ -215272,7 +215272,7 @@ index 4817e57b21d0..cc1404b4f4b9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 20 Apr 2022 17:40:47 +0100 -Subject: [PATCH 431/717] clk-raspberrypi: Enable minimize for all firmware +Subject: [PATCH 431/784] clk-raspberrypi: Enable minimize for all firmware clocks Signed-off-by: Dom Cobley @@ -215318,7 +215318,7 @@ index 6c426f34dd24..5c82af720050 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 13 May 2022 17:21:42 +0800 -Subject: [PATCH 432/717] media: dt-bindings: media: i2c: Add Arducam 64MP CMOS +Subject: [PATCH 432/784] media: dt-bindings: media: i2c: Add Arducam 64MP CMOS sensor binding Add YAML device tree binding for Arducam 64MP CMOS image sensor, and @@ -215453,7 +215453,7 @@ index 000000000000..b71a19782f97 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 354482749468..4e1014876dd0 100644 +index 6fa2a163daf3..04ad1a3e9084 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1559,6 +1559,14 @@ S: Maintained @@ -215478,7 +215478,7 @@ index 354482749468..4e1014876dd0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 13 May 2022 17:11:35 +0800 -Subject: [PATCH 433/717] media: i2c: Add driver of Arducam 64MP camera +Subject: [PATCH 433/784] media: i2c: Add driver of Arducam 64MP camera Add a driver for the Arducam 64MP camera sensor. Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver @@ -217947,7 +217947,7 @@ index 000000000000..8b65caaf22a1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Wed, 18 May 2022 15:18:59 +0800 -Subject: [PATCH 434/717] media: i2c: arducam_64mp: Advertise embedded data +Subject: [PATCH 434/784] media: i2c: arducam_64mp: Advertise embedded data node on media pad 1 This commit updates the arducam_64mp driver to adverise support for @@ -218209,7 +218209,7 @@ index 8b65caaf22a1..58d1ba9a86bf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 8 Jun 2022 20:49:22 +0100 -Subject: [PATCH 435/717] Add HDMI1 facility to the driver. +Subject: [PATCH 435/784] Add HDMI1 facility to the driver. Also check for which HDMI devices are connected and only create devices for those that are present. @@ -218515,7 +218515,7 @@ index 38b7451d77b2..86eb04879797 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Lemon Date: Wed, 4 May 2022 14:33:05 -0700 -Subject: [PATCH 436/717] Populate phy driver block for BCM54213PE +Subject: [PATCH 436/784] Populate phy driver block for BCM54213PE The BCM54213PE identifier is a RPI-specific addition. Populate the remainder of the driver functions, including the @@ -218554,7 +218554,7 @@ index bb2143929885..d4c86aeb9748 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Dec 2021 13:53:36 +0000 -Subject: [PATCH 437/717] clk: bcm: rpi: Add the BCM283x pixel clock. +Subject: [PATCH 437/784] clk: bcm: rpi: Add the BCM283x pixel clock. The clk-bcm2835 handling of the pixel clock does not function correctly when the HDMI power domain is disabled. @@ -218586,7 +218586,7 @@ index 5c82af720050..d238afd6860a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 4 Jul 2022 18:10:23 +0100 -Subject: [PATCH 438/717] media: i2c: ov9281: Correct min/def vts for 640x400 +Subject: [PATCH 438/784] media: i2c: ov9281: Correct min/def vts for 640x400 A VTS of 421 in the 640x400 mode only streams at 130.2fps instead of the expected ~261fps. This appears to be an invalid @@ -218619,7 +218619,7 @@ index 028d96c97859..a15081618f80 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 4 Jul 2022 18:12:56 +0100 -Subject: [PATCH 439/717] media: i2c: ov9281: Change exposure default value +Subject: [PATCH 439/784] media: i2c: ov9281: Change exposure default value with mode choice When the exposure range is updated due to changing VBLANK, adopt @@ -218654,7 +218654,7 @@ index a15081618f80..297a5c0fd849 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Mon, 8 Aug 2022 10:01:41 +0100 -Subject: [PATCH 440/717] media: bcm2835-unicam: Correctly handle FS + FE ISR +Subject: [PATCH 440/784] media: bcm2835-unicam: Correctly handle FS + FE ISR condtion If we get a simultaneous FS + FE interrupt for the same frame, it cannot be @@ -218724,7 +218724,7 @@ index 7b7de978a214..2fd96081cda6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 15 Aug 2022 19:42:38 +0100 -Subject: [PATCH 441/717] drm/panel-simple: hack ignore orientation +Subject: [PATCH 441/784] drm/panel-simple: hack ignore orientation downstream removal of orientation plus upstream adding of new function --- @@ -218754,7 +218754,7 @@ index 1705b34ef76b..2e21f5075edb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 15 Aug 2022 19:44:20 +0100 -Subject: [PATCH 442/717] vc04_services/vc-sm-cma: Handle upstream require +Subject: [PATCH 442/784] vc04_services/vc-sm-cma: Handle upstream require vchiq_instance to be passed around --- @@ -218978,7 +218978,7 @@ index ed881c56d69c..a4f40d4cef05 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 29 Jul 2022 17:46:49 +0100 -Subject: [PATCH 443/717] media: video-mux: Read CSI2 config from FW, and pass +Subject: [PATCH 443/784] media: video-mux: Read CSI2 config from FW, and pass to receiver There is no obligation for all source devices on a video-mux to @@ -219133,7 +219133,7 @@ index 71d97042a470..d946b192d23a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 26 Aug 2022 11:41:49 +0800 -Subject: [PATCH 444/717] media: i2c: arducam-pivariety: Add custom controls +Subject: [PATCH 444/784] media: i2c: arducam-pivariety: Add custom controls Add support for strobe_shift, strobe_width and mode custom controls. @@ -219181,7 +219181,7 @@ index b2b8cbc47138..99d5ada309e8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 2 Sep 2022 08:35:35 +0100 -Subject: [PATCH 445/717] media: bcm2835-unicam: Fix for possible dummy buffer +Subject: [PATCH 445/784] media: bcm2835-unicam: Fix for possible dummy buffer overrun The Unicam hardware has been observed to cause a buffer overrun when using the @@ -219243,7 +219243,7 @@ index 2fd96081cda6..2cc4c2e468f3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 8 Sep 2022 15:50:15 +0100 -Subject: [PATCH 446/717] usb: xhci: expand mitigations for VLI_SS_BULK_OUT_BUG +Subject: [PATCH 446/784] usb: xhci: expand mitigations for VLI_SS_BULK_OUT_BUG quirk The VL805 can cause data corruption if a SS Bulk OUT endpoint enters a @@ -219338,7 +219338,7 @@ index e9d81cb1d6b0..b23a765afa5a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 22 Sep 2022 14:55:54 +0100 -Subject: [PATCH 447/717] usb: xhci: account for num_trbs_free when +Subject: [PATCH 447/784] usb: xhci: account for num_trbs_free when invalidating TDs If a ring has a number of TDs enqueued past the dequeue pointer, and the @@ -219367,10 +219367,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index d058a644a97a..55eb253d6adf 100644 +index 609e32c92bd1..e27089e2444d 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -1015,11 +1015,13 @@ static int xhci_invalidate_cancelled_tds(struct xhci_virt_ep *ep) +@@ -1035,11 +1035,13 @@ static int xhci_invalidate_cancelled_tds(struct xhci_virt_ep *ep) td->urb->stream_id, td->urb, cached_td->urb->stream_id, cached_td->urb); cached_td = td; @@ -219384,7 +219384,7 @@ index d058a644a97a..55eb253d6adf 100644 } } -@@ -1267,10 +1269,7 @@ static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, +@@ -1287,10 +1289,7 @@ static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, unsigned int ep_index) { union xhci_trb *dequeue_temp; @@ -219395,7 +219395,7 @@ index d058a644a97a..55eb253d6adf 100644 dequeue_temp = ep_ring->dequeue; /* If we get two back-to-back stalls, and the first stalled transfer -@@ -1285,8 +1284,6 @@ static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, +@@ -1305,8 +1304,6 @@ static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, } while (ep_ring->dequeue != dev->eps[ep_index].queued_deq_ptr) { @@ -219404,7 +219404,7 @@ index d058a644a97a..55eb253d6adf 100644 ep_ring->dequeue++; if (trb_is_link(ep_ring->dequeue)) { if (ep_ring->dequeue == -@@ -1296,15 +1293,10 @@ static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, +@@ -1316,15 +1313,10 @@ static void update_ring_for_set_deq_completion(struct xhci_hcd *xhci, ep_ring->dequeue = ep_ring->deq_seg->trbs; } if (ep_ring->dequeue == dequeue_temp) { @@ -219428,7 +219428,7 @@ index d058a644a97a..55eb253d6adf 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 7 Oct 2022 10:38:31 +0100 -Subject: [PATCH 448/717] nvmem: Use NVMEM_DEVID_AUTO +Subject: [PATCH 448/784] nvmem: Use NVMEM_DEVID_AUTO It is reasonable to declare multiple nvmem blocks. Unless a unique 'id' is passed in for each block there may be name clashes. @@ -219461,7 +219461,7 @@ index 80cb187f1481..752d0bf4445e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 28 Oct 2021 15:03:16 +0100 -Subject: [PATCH 449/717] brcmfmac: Read alternative firmware names from DT +Subject: [PATCH 449/784] brcmfmac: Read alternative firmware names from DT Add the ability to load the names of alternative firmwares from the Device Tree node. This permits separate firmwares for 43436s and 43438 @@ -219656,7 +219656,7 @@ index fba766873a33..887521d0a9a7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 18 Oct 2022 14:58:15 +0100 -Subject: [PATCH 450/717] configs: arm64: Restore the easy settings +Subject: [PATCH 450/784] configs: arm64: Restore the easy settings Setting ARCH_BCM=y fixes the majority of the breakage. @@ -219868,7 +219868,7 @@ index e089eb07e98e..8f2ad529cfed 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 18 Oct 2022 16:36:47 +0100 -Subject: [PATCH 451/717] drm/panel: Rename GEM CMA helpers GEM DMA helpers +Subject: [PATCH 451/784] drm/panel: Rename GEM CMA helpers GEM DMA helpers As a result of [1], DRM_GEM_CMA_HELPER has been replaced by DRM_GEM_CMA_HELPER. @@ -219909,7 +219909,7 @@ index 5147777dcb23..6c5956532550 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 18 Oct 2022 16:39:53 +0100 -Subject: [PATCH 452/717] configs: Re-enable more lost config settings +Subject: [PATCH 452/784] configs: Re-enable more lost config settings Signed-off-by: Phil Elwell --- @@ -220099,7 +220099,7 @@ index 8f2ad529cfed..e4a7e0427c62 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 18 Oct 2022 15:34:39 +0100 -Subject: [PATCH 453/717] configs: Re-enable some deprecated media drivers +Subject: [PATCH 453/784] configs: Re-enable some deprecated media drivers Signed-off-by: Phil Elwell --- @@ -220280,7 +220280,7 @@ index e4a7e0427c62..513205895c4a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 19 Oct 2022 13:33:10 +0100 -Subject: [PATCH 454/717] configs: Add and enable CONFIG_LRU_GEN +Subject: [PATCH 454/784] configs: Add and enable CONFIG_LRU_GEN --- arch/arm/configs/bcm2709_defconfig | 2 ++ @@ -220362,7 +220362,7 @@ index 513205895c4a..e2a9970f0a56 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 May 2022 15:46:07 +0100 -Subject: [PATCH 455/717] hwmon: emc2305: fixups for driver submitted to +Subject: [PATCH 455/784] hwmon: emc2305: fixups for driver submitted to mailing lists The driver had a number of issues, checkpatch warnings/errors, @@ -220531,7 +220531,7 @@ index e42ae43f3de4..bbe007c88e08 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Mon, 24 Oct 2022 13:57:23 +0100 -Subject: [PATCH 456/717] media: bcm2835-unicam: Fix up start/stop api change +Subject: [PATCH 456/784] media: bcm2835-unicam: Fix up start/stop api change Signed-off-by: Dom Cobley --- @@ -220576,7 +220576,7 @@ index 2cc4c2e468f3..0451affbffd9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Tue, 25 Oct 2022 10:50:10 +0100 -Subject: [PATCH 457/717] drivers: usb: dwc_otg: fix reference passing when +Subject: [PATCH 457/784] drivers: usb: dwc_otg: fix reference passing when checking bandwidth The pointer (struct usb_host_endpoint *)->hcpriv should contain a @@ -220641,7 +220641,7 @@ index 022488f6741b..ca646860a092 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Mon, 17 Oct 2022 15:18:24 +0100 -Subject: [PATCH 458/717] drivers/gpu/drm/vc4: Add missing 32-bit RGB formats +Subject: [PATCH 458/784] drivers/gpu/drm/vc4: Add missing 32-bit RGB formats The missing 32-bit per pixel ABGR and various "RGB with an X value" formats are added. Change sent by Dave Stevenson. @@ -220697,7 +220697,7 @@ index e7f56b3eb213..036ee3154c79 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 25 Oct 2022 20:33:39 +0100 -Subject: [PATCH 459/717] configs: Enable the AHT10 sensor driver module +Subject: [PATCH 459/784] configs: Enable the AHT10 sensor driver module Add support for the Aosong AHT10 temperature and humidity sensor. @@ -220779,7 +220779,7 @@ index e2a9970f0a56..eca03da7c431 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 25 Oct 2022 20:27:00 +0100 -Subject: [PATCH 460/717] overlays: Add i2c-sensor support for AHT10 +Subject: [PATCH 460/784] overlays: Add i2c-sensor support for AHT10 Add support for the Aosong AHT10 temperature and humidity sensor. @@ -220845,7 +220845,7 @@ index 2716898e24a4..231db98890fb 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 25 Oct 2022 20:08:51 +0100 -Subject: [PATCH 461/717] overlays: Add README entry for i2c-rtc,rv3032 +Subject: [PATCH 461/784] overlays: Add README entry for i2c-rtc,rv3032 Signed-off-by: Phil Elwell --- @@ -220881,7 +220881,7 @@ index 92b0dcb3c9f9..82968d9f1dd6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Wed, 26 Oct 2022 17:46:44 +0100 -Subject: [PATCH 462/717] drivers: dwc_otg: stop GCC from patching FIQ +Subject: [PATCH 462/784] drivers: dwc_otg: stop GCC from patching FIQ functions Configuring GCC to use task stack protector canaries means it will @@ -220932,7 +220932,7 @@ index f644acbce748..67e277804b2e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 1 Nov 2022 08:47:21 +0000 -Subject: [PATCH 463/717] overlays: i2c-sensor: Add mcp980x support +Subject: [PATCH 463/784] overlays: i2c-sensor: Add mcp980x support See: https://github.com/raspberrypi/linux/issues/5234 @@ -221003,7 +221003,7 @@ index 231db98890fb..77babe855da9 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 2 Nov 2022 09:54:39 +0000 -Subject: [PATCH 464/717] overlays: pisound: Make button pins owned by card +Subject: [PATCH 464/784] overlays: pisound: Make button pins owned by card The pisound overlay claims a number of GPIOs using a pinctrl node, but for some reason hangs this claim on the main gpio node. This obscures @@ -221058,7 +221058,7 @@ index 49efb2b768fb..a140ffc1f720 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "maxime@cerno.tech" Date: Thu, 20 Oct 2022 11:12:09 +0200 -Subject: [PATCH 465/717] firmware: raspberrypi: Introduce +Subject: [PATCH 465/784] firmware: raspberrypi: Introduce rpi_firmware_find_node() A significant number of RaspberryPi drivers using the firmware don't @@ -221142,7 +221142,7 @@ index dd3bbc75e531..eb933a9c6c20 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 20 Sep 2022 13:43:19 +0200 -Subject: [PATCH 466/717] firmware: raspberrypi: Move the clock IDs to the +Subject: [PATCH 466/784] firmware: raspberrypi: Move the clock IDs to the firmware header We'll need the clock IDs in more drivers than just the clock driver from @@ -221223,7 +221223,7 @@ index eb933a9c6c20..39bc15cc0547 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Tue, 20 Sep 2022 13:49:10 +0200 -Subject: [PATCH 467/717] firmware: raspberrypi: Provide a helper to query a +Subject: [PATCH 467/784] firmware: raspberrypi: Provide a helper to query a clock max rate The firmware allows to query for its clocks the operating range of a @@ -221327,7 +221327,7 @@ index 39bc15cc0547..c453978e62f6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 24 Mar 2022 11:57:57 +0100 -Subject: [PATCH 468/717] drm/vc4: hdmi: Fix hdmi_enable_4kp60 detection +Subject: [PATCH 468/784] drm/vc4: hdmi: Fix hdmi_enable_4kp60 detection In order to support higher HDMI frequencies, users have to set the hdmi_enable_4kp60 parameter in their config.txt file. @@ -221380,7 +221380,7 @@ index 3546c7af0329..fc8312d7702f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 24 Mar 2022 11:57:57 +0100 -Subject: [PATCH 469/717] drm/vc4: hdmi: Rework hdmi_enable_4kp60 detection +Subject: [PATCH 469/784] drm/vc4: hdmi: Rework hdmi_enable_4kp60 detection code In order to support higher HDMI frequencies, users have to set the @@ -221562,7 +221562,7 @@ index 094887d4673e..f93757542570 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 17 May 2022 12:46:42 +0100 -Subject: [PATCH 470/717] drm/vc4: hdmi: Add more checks for 4k resolutions +Subject: [PATCH 470/784] drm/vc4: hdmi: Add more checks for 4k resolutions At least the 4096x2160@60Hz mode requires some overclocking that isn't available by default, even if hdmi_enable_4kp60 is enabled. @@ -221660,7 +221660,7 @@ index f93757542570..60a33e0edc2c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Fri, 25 Mar 2022 17:09:41 +0100 -Subject: [PATCH 471/717] drm/vc4: Make sure we don't end up with a core clock +Subject: [PATCH 471/784] drm/vc4: Make sure we don't end up with a core clock too high Following the clock rate range improvements to the clock framework, @@ -221721,7 +221721,7 @@ index d5b16579fd33..1688659ba1d5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 5 Nov 2022 11:46:08 +0000 -Subject: [PATCH 472/717] net: phy: BCM54210PE does not support PTP +Subject: [PATCH 472/784] net: phy: BCM54210PE does not support PTP BCM54213PE is an Ethernet PHY that supports PTP hardware timestamping. BCM54210PW ia another Ethernet PHY, but one without PTP support. @@ -221771,7 +221771,7 @@ index ef00d6163061..30ee23e73a4b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 1 Jun 2022 15:43:51 +0100 -Subject: [PATCH 473/717] drm/vc4_hdmi: Allow hotplug detect to be forced +Subject: [PATCH 473/784] drm/vc4_hdmi: Allow hotplug detect to be forced See: https://forum.libreelec.tv/thread/24783-tv-avr-turns-back-on-right-after-turning-them-off @@ -221835,7 +221835,7 @@ index 61d08c3fc5ec..3e0bb29b2400 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 7 Nov 2022 15:31:43 +0000 -Subject: [PATCH 474/717] overlays: i2c-sensor: Add the jc42 class of sensor +Subject: [PATCH 474/784] overlays: i2c-sensor: Add the jc42 class of sensor This is a second attempt to solve issue 5234, since it turns out that the mcp980x driver only supports MCP9800-MCP9803. MCP9804, MCP9805 and @@ -221927,7 +221927,7 @@ index 77babe855da9..baac806e93bf 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 8 Nov 2022 14:40:52 +0000 -Subject: [PATCH 475/717] overlays: Extend audremap to supports other pins +Subject: [PATCH 475/784] overlays: Extend audremap to supports other pins Add the parameters pins_40_41 and pins_40_45 to support other audio pin options. Also, simplify the overlay using literal assignments. @@ -222014,7 +222014,7 @@ index 29399c5c84f6..edacc498b11c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 31 Oct 2018 15:00:04 +0000 -Subject: [PATCH 476/717] media: adv7180: Nasty hack to allow input selection. +Subject: [PATCH 476/784] media: adv7180: Nasty hack to allow input selection. Whilst the adv7180 driver support s_routing, nothing else does, and there is a missing lump of framework code to @@ -222109,7 +222109,7 @@ index 2aa29616081f..d2f8745dbf3a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 3 Nov 2022 13:45:37 +0000 -Subject: [PATCH 477/717] vc04_services: bcm2835_codec: Allow larger images +Subject: [PATCH 477/784] vc04_services: bcm2835_codec: Allow larger images through the ISP Whilst the codecs are restricted to 1920x1080 / 1080x1920, the ISP @@ -222216,7 +222216,7 @@ index 82032d1aa6b1..3fec9d2306fb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nick Hollinghurst Date: Fri, 11 Nov 2022 13:36:07 +0000 -Subject: [PATCH 478/717] imx296-overlay: clock-frequency defaults to 54MHz but +Subject: [PATCH 478/784] imx296-overlay: clock-frequency defaults to 54MHz but can be overridden Signed-off-by: Nick Hollinghurst @@ -222269,7 +222269,7 @@ index 85b6f7e7fca1..44257b4c9391 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Joerg Schambacher Date: Tue, 15 Nov 2022 18:04:45 +0100 -Subject: [PATCH 479/717] ASoC:ma120x0p: Corrects the volume level display +Subject: [PATCH 479/784] ASoC:ma120x0p: Corrects the volume level display Fixes the wrongly changed 'limiter volume' display back to -50dB minimum and sets the correct minimum volume level to -144dB to be aligned with @@ -222302,7 +222302,7 @@ index cd3808ea9849..dce60ded3ef9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 16 Nov 2022 14:54:08 +0000 -Subject: [PATCH 480/717] overlays: Add overlay pwm1 +Subject: [PATCH 480/784] overlays: Add overlay pwm1 pwm1 enables the second PWM interface found on BCM2711. It can only be mapped to GPIOs 40 & 41. @@ -222447,7 +222447,7 @@ index 000000000000..19b4db26cded From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 21 Nov 2022 14:18:57 +0000 -Subject: [PATCH 481/717] overlays: audremap: Include the fsels values +Subject: [PATCH 481/784] overlays: audremap: Include the fsels values Add the alt function selectors, and document that pins_40_45 is not suitable for BCM2711 because the pins are split across the two PWM @@ -222505,7 +222505,7 @@ index edacc498b11c..a73cc95934ba 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 23 Nov 2022 11:51:38 +0000 -Subject: [PATCH 482/717] overlays: i2c-sensor: Make smbus-timeout-disable +Subject: [PATCH 482/784] overlays: i2c-sensor: Make smbus-timeout-disable optional Although disabling the SMBUS timeout may be useful, not all chips @@ -222561,7 +222561,7 @@ index baac806e93bf..c81d8e5db548 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: reinisb Date: Fri, 25 Nov 2022 12:53:50 +0200 -Subject: [PATCH 483/717] overlays: Mention Digi2 Pro audio card in README +Subject: [PATCH 483/784] overlays: Mention Digi2 Pro audio card in README https://www.hifiberry.com/blog/the-new-digi2-pro/ --- @@ -222588,7 +222588,7 @@ index 36ff8228814e..37f1da9275c8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 29 Nov 2022 13:17:08 +0000 -Subject: [PATCH 484/717] configs: Enable Twofish crypto +Subject: [PATCH 484/784] configs: Enable Twofish crypto See: https://github.com/raspberrypi/linux/issues/5258 @@ -222668,7 +222668,7 @@ index eca03da7c431..16df4824429d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 1 Dec 2022 16:59:44 +0000 -Subject: [PATCH 485/717] usb: xhci: add XHCI_VLI_HUB_TT_QUIRK +Subject: [PATCH 485/784] usb: xhci: add XHCI_VLI_HUB_TT_QUIRK The integrated USB2.0 hub in the VL805 chipset has a bug where it incorrectly determines the remaining available frame time before the @@ -222696,10 +222696,10 @@ Signed-off-by: Jonathan Bell 3 files changed, 48 insertions(+) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 8a70e6097ab8..10473448885d 100644 +index bc7191307ef7..c4e8b5c20a09 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -298,6 +298,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -299,6 +299,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG; xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG; @@ -222708,10 +222708,10 @@ index 8a70e6097ab8..10473448885d 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 55eb253d6adf..296f3b6fe785 100644 +index e27089e2444d..d8a48202f3a9 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3528,6 +3528,48 @@ static int xhci_align_td(struct xhci_hcd *xhci, struct urb *urb, u32 enqd_len, +@@ -3555,6 +3555,48 @@ static int xhci_align_td(struct xhci_hcd *xhci, struct urb *urb, u32 enqd_len, return 1; } @@ -222760,7 +222760,7 @@ index 55eb253d6adf..296f3b6fe785 100644 /* This is very similar to what ehci-q.c qtd_fill() does */ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, int slot_id, unsigned int ep_index) -@@ -3696,6 +3738,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3723,6 +3765,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, } check_trb_math(urb, enqd_len); @@ -222769,7 +222769,7 @@ index 55eb253d6adf..296f3b6fe785 100644 giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, start_cycle, start_trb); return 0; -@@ -3831,6 +3875,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t mem_flags, +@@ -3858,6 +3902,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t mem_flags, /* Event on completion */ field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); @@ -222779,7 +222779,7 @@ index 55eb253d6adf..296f3b6fe785 100644 start_cycle, start_trb); return 0; diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index a8946c53110c..e9bd6e460767 100644 +index b5a3b037f14e..a1ae49e7aafd 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1903,6 +1903,7 @@ struct xhci_hcd { @@ -222797,7 +222797,7 @@ index a8946c53110c..e9bd6e460767 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 1 Dec 2022 13:54:49 +0000 -Subject: [PATCH 486/717] media: i2c: ov7251: Add module param to select ext +Subject: [PATCH 486/784] media: i2c: ov7251: Add module param to select ext trig mode As there isn't currently a defined mechanism for selecting an @@ -222891,7 +222891,7 @@ index a96a7622d5e4..628973639d03 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 6 Dec 2022 15:05:56 +0000 -Subject: [PATCH 487/717] vc4_hdmi: Avoid log spam for audio start failure +Subject: [PATCH 487/784] vc4_hdmi: Avoid log spam for audio start failure We regularly get dmesg error reports of: [ 18.184066] hdmi-audio-codec hdmi-audio-codec.3.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19 @@ -222938,7 +222938,7 @@ index 3e0bb29b2400..aab46968d077 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 29 Sep 2022 18:30:56 +0200 -Subject: [PATCH 488/717] drm/tests: Order Kunit tests in Makefile +Subject: [PATCH 488/784] drm/tests: Order Kunit tests in Makefile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -222984,7 +222984,7 @@ index 91b70f7d2769..2d9f49b62ecb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Nov 2022 14:00:21 +0100 -Subject: [PATCH 489/717] drm/tests: Add Kunit Helpers +Subject: [PATCH 489/784] drm/tests: Add Kunit Helpers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -223112,7 +223112,7 @@ index 000000000000..f13a18dd1c6d From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Nov 2022 10:17:10 +0100 -Subject: [PATCH 490/717] drm/tests: Include helpers header +Subject: [PATCH 490/784] drm/tests: Include helpers header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -223152,7 +223152,7 @@ index d3f0d681b685..dbd8ec24d4be 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Nov 2022 10:17:11 +0100 -Subject: [PATCH 491/717] drm/tests: helpers: Add module infos +Subject: [PATCH 491/784] drm/tests: helpers: Add module infos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -223189,7 +223189,7 @@ index dbd8ec24d4be..eea450de7de8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 16 Nov 2022 16:18:33 +0100 -Subject: [PATCH 492/717] drm/tests: helpers: Add SPDX header +Subject: [PATCH 492/784] drm/tests: helpers: Add SPDX header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -223234,7 +223234,7 @@ index f13a18dd1c6d..20ab6eec4c89 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:51 +0100 -Subject: [PATCH 493/717] drm/atomic: Constify the old/new state accessors +Subject: [PATCH 493/784] drm/atomic: Constify the old/new state accessors The drm_atomic_get_(old|new)_*_state don't modify the passed drm_atomic_state, so we can make it const. @@ -223441,7 +223441,7 @@ index 10b1990bc1f6..92586ab55ef5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:53 +0100 -Subject: [PATCH 494/717] drm/vc4: Constify container_of wrappers +Subject: [PATCH 494/784] drm/vc4: Constify container_of wrappers None of our wrappers around container_of to access our objects from the DRM object pointer actually modify the latter. @@ -223538,7 +223538,7 @@ index 27799092dfc7..f0811fbc35d9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:55 +0100 -Subject: [PATCH 495/717] drm/vc4: kms: Constify the HVS old/new state helpers +Subject: [PATCH 495/784] drm/vc4: kms: Constify the HVS old/new state helpers The vc4_hvs_get_(old|new)_global_state functions don't modify the drm_atomic_state passed as an argument, so let's make it const. @@ -223579,7 +223579,7 @@ index 1688659ba1d5..fc4f02842894 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:52 +0100 -Subject: [PATCH 496/717] drm/vc4: kms: Sort the CRTCs by output before +Subject: [PATCH 496/784] drm/vc4: kms: Sort the CRTCs by output before assigning them On the vc4 devices (and later), the blending is done by a single device @@ -223786,7 +223786,7 @@ index fc4f02842894..1eb964454240 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:56 +0100 -Subject: [PATCH 497/717] drm/vc4: txp: Reorder the variable assignments +Subject: [PATCH 497/784] drm/vc4: txp: Reorder the variable assignments The current order of variable assignments is unneccessarily complex, let's make it simpler. @@ -223850,7 +223850,7 @@ index bd181b5a7b52..b00c6fae972f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:57 +0100 -Subject: [PATCH 498/717] drm/vc4: Add TXP encoder type +Subject: [PATCH 498/784] drm/vc4: Add TXP encoder type The TXP is integrated as a separate CRTC/Encoder/Connector combo, but for some reason doesn't rely on the vc4_encoder type and it's associated @@ -223958,7 +223958,7 @@ index b00c6fae972f..0bb8e97d7891 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:58 +0100 -Subject: [PATCH 499/717] drm/vc4: txp: Initialise the CRTC before the encoder +Subject: [PATCH 499/784] drm/vc4: txp: Initialise the CRTC before the encoder and connector It makes more sense to register the CRTC before the encoder and @@ -224006,7 +224006,7 @@ index 0bb8e97d7891..c2a6bea6fd96 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:25:59 +0100 -Subject: [PATCH 500/717] drm/vc4: crtc: Pass the device and data in +Subject: [PATCH 500/784] drm/vc4: crtc: Pass the device and data in vc4_crtc_init Both users of vc4_crtc_init need the same extra initialization to set @@ -224119,7 +224119,7 @@ index c2a6bea6fd96..841da240d93a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:26:02 +0100 -Subject: [PATCH 501/717] drm/vc4: crtc: Provide a CRTC name +Subject: [PATCH 501/784] drm/vc4: crtc: Provide a CRTC name It's fairly hard to figure out the instance of the CRTC affected by an atomic change using the default name. @@ -224245,7 +224245,7 @@ index 841da240d93a..4f7ce5d3e8ad 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 28 Nov 2022 09:19:38 +0100 -Subject: [PATCH 502/717] drm/tests: helpers: Add missing export +Subject: [PATCH 502/784] drm/tests: helpers: Add missing export drm_kunit_device_init() is a public function meant to be used by other tests, but isn't exported. This leads to modpost errors when the other @@ -224276,7 +224276,7 @@ index f1662091f250..8c738384a992 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 28 Nov 2022 14:12:43 +0100 -Subject: [PATCH 503/717] drm/tests: helpers: Move the helper header to +Subject: [PATCH 503/784] drm/tests: helpers: Move the helper header to include/drm We'll need to use those helpers from drivers too, so let's move it to a @@ -224321,7 +224321,7 @@ rename to include/drm/drm_kunit_helpers.h From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 1 Dec 2022 13:37:20 +0100 -Subject: [PATCH 504/717] drm/tests: Introduce a config option for the KUnit +Subject: [PATCH 504/784] drm/tests: Introduce a config option for the KUnit helpers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -224405,7 +224405,7 @@ index b29ef1085cad..723344fb82be 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 28 Nov 2022 13:50:58 +0100 -Subject: [PATCH 505/717] drm/tests: helpers: Document drm_kunit_device_init() +Subject: [PATCH 505/784] drm/tests: helpers: Document drm_kunit_device_init() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -224455,7 +224455,7 @@ index 6600a4db3158..9ed3cfc2ac03 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 1 Dec 2022 14:59:07 +0100 -Subject: [PATCH 506/717] drm/tests: helpers: Switch to EXPORT_SYMBOL_GPL +Subject: [PATCH 506/784] drm/tests: helpers: Switch to EXPORT_SYMBOL_GPL drm_kunit_device_init() among other things will allocate a device and wrap around root_device_register. This function is exported with @@ -224488,7 +224488,7 @@ index 9ed3cfc2ac03..4fe131141718 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 13:22:59 +0100 -Subject: [PATCH 507/717] drm/tests: helpers: Rename the device init helper +Subject: [PATCH 507/784] drm/tests: helpers: Rename the device init helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -224559,7 +224559,7 @@ index 20ab6eec4c89..e9870c7911fe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 13:25:32 +0100 -Subject: [PATCH 508/717] drm/tests: helpers: Remove the name parameter +Subject: [PATCH 508/784] drm/tests: helpers: Remove the name parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -224633,7 +224633,7 @@ index e9870c7911fe..6c12b1426ba0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 11:11:52 +0100 -Subject: [PATCH 509/717] drm/tests: helpers: Create the device in another +Subject: [PATCH 509/784] drm/tests: helpers: Create the device in another function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -224768,7 +224768,7 @@ index 6c12b1426ba0..b4277fe92c38 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 13:33:37 +0100 -Subject: [PATCH 510/717] drm/tests: helpers: Switch to a platform_device +Subject: [PATCH 510/784] drm/tests: helpers: Switch to a platform_device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -224833,7 +224833,7 @@ index 4bf98bd0a8c6..b66ce779511b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 13:18:29 +0100 -Subject: [PATCH 511/717] drm/tests: helpers: Make sure the device is bound +Subject: [PATCH 511/784] drm/tests: helpers: Make sure the device is bound MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -224913,7 +224913,7 @@ index b66ce779511b..9bfd3cb9cde1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 14:28:44 +0100 -Subject: [PATCH 512/717] drm/tests: helpers: Allow for a custom device struct +Subject: [PATCH 512/784] drm/tests: helpers: Allow for a custom device struct to be allocated The current helper to allocate a DRM device doesn't allow for any @@ -225056,7 +225056,7 @@ index b4277fe92c38..df99fda95e89 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 17:02:15 +0100 -Subject: [PATCH 513/717] drm/tests: helpers: Allow to pass a custom drm_driver +Subject: [PATCH 513/784] drm/tests: helpers: Allow to pass a custom drm_driver Some tests will need to provide their own drm_driver instead of relying on the dumb one in the helpers, so let's create a helper that allows to @@ -225184,7 +225184,7 @@ index df99fda95e89..ed013fdcc1ff 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 10 Nov 2022 12:57:53 +0100 -Subject: [PATCH 514/717] drm/vc4: Move HVS state to main header +Subject: [PATCH 514/784] drm/vc4: Move HVS state to main header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -225308,7 +225308,7 @@ index 1eb964454240..56c6f24fb9d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Nov 2022 14:11:41 +0100 -Subject: [PATCH 515/717] drm/vc4: crtc: Introduce a lower-level crtc init +Subject: [PATCH 515/784] drm/vc4: crtc: Introduce a lower-level crtc init helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -225447,7 +225447,7 @@ index 21cc5ccd692c..cf45afb76c0c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Nov 2022 16:18:09 +0100 -Subject: [PATCH 516/717] drm/vc4: crtc: Make encoder lookup helper public +Subject: [PATCH 516/784] drm/vc4: crtc: Make encoder lookup helper public MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -225533,7 +225533,7 @@ index cf45afb76c0c..a9f6b9e2b8ca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Nov 2022 16:00:53 +0100 -Subject: [PATCH 517/717] drm/vc4: hvs: Provide a function to initialize the +Subject: [PATCH 517/784] drm/vc4: hvs: Provide a function to initialize the HVS structure We'll need to initialize the HVS structure without a backing device to @@ -225672,7 +225672,7 @@ index 60a33e0edc2c..6b2e3504e9a2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 18:18:40 +0100 -Subject: [PATCH 518/717] drm/vc4: tests: Introduce a mocking infrastructure +Subject: [PATCH 518/784] drm/vc4: tests: Introduce a mocking infrastructure In order to test the current atomic_check hooks we need to have a DRM device that has roughly the same capabilities and layout that the actual @@ -226444,7 +226444,7 @@ index 4f7ce5d3e8ad..2b69454b8534 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 21 Nov 2022 17:04:31 +0100 -Subject: [PATCH 519/717] drm/vc4: tests: Fail the current test if we access a +Subject: [PATCH 519/784] drm/vc4: tests: Fail the current test if we access a register Accessing a register when running under kunit is a bad idea since our @@ -226663,7 +226663,7 @@ index 32ca0b3d1549..6e7c6936fc2d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 14 Nov 2022 16:06:22 +0100 -Subject: [PATCH 520/717] drm/vc4: tests: Add unit test suite for the PV muxing +Subject: [PATCH 520/784] drm/vc4: tests: Add unit test suite for the PV muxing The HVS to PixelValve muxing code is fairly error prone and has a bunch of arbitrary constraints due to the hardware setup. @@ -227835,7 +227835,7 @@ index 000000000000..ae0bd0f81698 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 1 Dec 2022 11:08:24 +0100 -Subject: [PATCH 521/717] Documentation: gpu: vc4: Add KUnit Tests Section +Subject: [PATCH 521/784] Documentation: gpu: vc4: Add KUnit Tests Section Now that we have VC4-specific tests in place, let's document them properly. @@ -227879,7 +227879,7 @@ index 5df1d98b9544..a2375f1584e6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 8 Dec 2022 13:17:42 +0100 -Subject: [PATCH 522/717] .github: Add Github Workflow for KUnit +Subject: [PATCH 522/784] .github: Add Github Workflow for KUnit Now that we have some KUnit coverage, let's add a github actions file to run them on each push or pull request. @@ -227960,7 +227960,7 @@ index 000000000000..ee51bbc912e7 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 6 Dec 2022 18:11:58 +0000 -Subject: [PATCH 523/717] .github/workflows: Add dtoverlaycheck workflow +Subject: [PATCH 523/784] .github/workflows: Add dtoverlaycheck workflow Signed-off-by: Dave Stevenson --- @@ -228029,7 +228029,7 @@ index 000000000000..2e6d4f2a0b6d From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 11 Nov 2022 17:09:32 +0000 -Subject: [PATCH 524/717] .github/workflows: Create workflow to CI kernel +Subject: [PATCH 524/784] .github/workflows: Create workflow to CI kernel builds Builds the bcmrpi, bcm2709, bcm2711, and bcm2835 32 bit kernels, @@ -228321,7 +228321,7 @@ index 000000000000..8e551dc4d0c5 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 14 Nov 2022 17:14:15 +0000 -Subject: [PATCH 525/717] README: Add README.md with CI kernel build status +Subject: [PATCH 525/784] README: Add README.md with CI kernel build status tags This is a copy of README with the tags added. @@ -228378,7 +228378,7 @@ index 000000000000..605abc67589e From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Williams Date: Wed, 7 Dec 2022 18:20:40 -0700 -Subject: [PATCH 526/717] drm/panel: panel-ilitek9881c: Use cansleep methods +Subject: [PATCH 526/784] drm/panel: panel-ilitek9881c: Use cansleep methods Use cansleep version of gpiod_set_value so external IO drivers (like via I2C) can be used. @@ -228421,7 +228421,7 @@ index 6136da4d0af8..ae53800403aa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Williams Date: Wed, 7 Dec 2022 19:55:15 -0700 -Subject: [PATCH 527/717] drm/panel: panel-ilitek9881c: Crystalfontz support +Subject: [PATCH 527/784] drm/panel: panel-ilitek9881c: Crystalfontz support Add support for Crystalfontz CFAF7201280A0-050Tx panel. @@ -228703,7 +228703,7 @@ index ae53800403aa..dfb90334a77c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Williams Date: Wed, 7 Dec 2022 19:57:24 -0700 -Subject: [PATCH 528/717] configs: Enable LM3630A backlight module +Subject: [PATCH 528/784] configs: Enable LM3630A backlight module Added LM3630A module to defconfig to support Crystalfontz CFA050-PI-M. @@ -228783,7 +228783,7 @@ index 16df4824429d..cb0e91c6839c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Williams Date: Thu, 8 Dec 2022 04:58:05 -0700 -Subject: [PATCH 529/717] overlays: Add crystalfontz-cfa050_pi_m +Subject: [PATCH 529/784] overlays: Add crystalfontz-cfa050_pi_m Add support for the Crystalfontz CFA050-PI-M series of Raspberry Pi CM4-based modules using the CFAF7201280A0_050Tx TFT LCD displays. @@ -228965,7 +228965,7 @@ index 000000000000..544036589b66 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: lihgong Date: Tue, 13 Dec 2022 09:14:31 +0800 -Subject: [PATCH 530/717] configs: Add 8DEV USB2CAN driver support +Subject: [PATCH 530/784] configs: Add 8DEV USB2CAN driver support See: https://github.com/raspberrypi/linux/pull/5273 Requested-by: lihgong @@ -229045,7 +229045,7 @@ index cb0e91c6839c..0dac7e44292a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 14 Dec 2022 15:00:51 +0000 -Subject: [PATCH 531/717] net: bcmgenet: Add 'eee' module parameter +Subject: [PATCH 531/784] net: bcmgenet: Add 'eee' module parameter On some switches, having EEE enabled causes the link to become unstable. With this patch, adding 'genet.eee=N' to the kernel command @@ -229059,7 +229059,7 @@ Signed-off-by: Phil Elwell 1 file changed, 14 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index 2e157aceb7c8..1174684a7f23 100644 +index e4e8f183fd66..6c967a036e89 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -70,6 +70,9 @@ static void bcmgenet_set_rx_mode(struct net_device *dev); @@ -229097,7 +229097,7 @@ index 2e157aceb7c8..1174684a7f23 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 14 Dec 2022 15:28:16 +0000 -Subject: [PATCH 532/717] dts: bcm2711: Add 'eee' dtparam +Subject: [PATCH 532/784] dts: bcm2711: Add 'eee' dtparam The 'eee' dtparam allows EEE to be disabled on the onboard Ethernet controller. Adding 'dtparam=eee=off' to config.txt causes @@ -229135,7 +229135,7 @@ index 5f9a5bad98ad..f342e8547a8e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Dec 2022 15:57:18 +0000 -Subject: [PATCH 533/717] dtoverlays: Add overlay cm-swap-i2c0 to swap buses on +Subject: [PATCH 533/784] dtoverlays: Add overlay cm-swap-i2c0 to swap buses on i2c0mux The legacy camera stack wiring instructions connect the cameras @@ -229232,7 +229232,7 @@ index 000000000000..6b7f599f7611 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Dec 2022 15:59:28 +0000 -Subject: [PATCH 534/717] dt: Correct cam_reg GPIO assignments for CM1&3. +Subject: [PATCH 534/784] dt: Correct cam_reg GPIO assignments for CM1&3. The standard instructions for wiring up cameras on CM1&3 assign GPIOs for both the shutdown and LED pins on the @@ -229313,7 +229313,7 @@ index 84117e5b0f11..e48dfc34a944 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Dec 2022 16:13:07 +0000 -Subject: [PATCH 535/717] dt: Add camX_reg_gpio to CM4 +Subject: [PATCH 535/784] dt: Add camX_reg_gpio to CM4 To make it easier for custom routing of camera control GPIOs, add the camX_reg_gpio parameter to CM4 DT as well. @@ -229380,7 +229380,7 @@ index e48dfc34a944..e4d3812678b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 15 Dec 2022 16:15:27 +0000 -Subject: [PATCH 536/717] dt: Add camX_reg and camX_reg_gpio overrides to CM4S +Subject: [PATCH 536/784] dt: Add camX_reg and camX_reg_gpio overrides to CM4S CM4S follows the pattern of CM1&3 for routing camera GPIO control, but didn't have the overrides defined to @@ -229452,7 +229452,7 @@ index e4d3812678b1..2a9586721697 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tim Gover Date: Fri, 16 Dec 2022 15:51:17 +0000 -Subject: [PATCH 537/717] overlays: Add disable-emmc2 +Subject: [PATCH 537/784] overlays: Add disable-emmc2 Add a new overlay that disables the EMMC2 controller on BCM2711. This can be useful on a Compute Module 4 if the onboard EMMC2 @@ -229540,7 +229540,7 @@ index 627855bc500c..fda036488d41 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 16 Dec 2022 15:18:21 +0000 -Subject: [PATCH 538/717] xhci: constrain XHCI_VLI_HUB_TT_QUIRK to old firmware +Subject: [PATCH 538/784] xhci: constrain XHCI_VLI_HUB_TT_QUIRK to old firmware versions VLI have a firmware update for the VL805 which resolves the incorrect @@ -229553,10 +229553,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 10473448885d..a93cb6aaad4c 100644 +index c4e8b5c20a09..977435da71ac 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -26,6 +26,8 @@ +@@ -27,6 +27,8 @@ #define SPARSE_DISABLE_BIT 17 #define SPARSE_CNTL_ENABLE 0xC12C @@ -229565,7 +229565,7 @@ index 10473448885d..a93cb6aaad4c 100644 /* Device for a quirk */ #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73 #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000 -@@ -103,6 +105,16 @@ static int xhci_pci_reinit(struct xhci_hcd *xhci, struct pci_dev *pdev) +@@ -104,6 +106,16 @@ static int xhci_pci_reinit(struct xhci_hcd *xhci, struct pci_dev *pdev) return 0; } @@ -229582,7 +229582,7 @@ index 10473448885d..a93cb6aaad4c 100644 static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) { struct pci_dev *pdev = to_pci_dev(dev); -@@ -298,7 +310,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) +@@ -299,7 +311,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG; xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG; @@ -229599,7 +229599,7 @@ index 10473448885d..a93cb6aaad4c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell <8911409+pelwell@users.noreply.github.com> Date: Mon, 19 Dec 2022 16:32:33 +0000 -Subject: [PATCH 539/717] drm/panel: simple: Add Innolux AT056tN53V1 5.6" VGA +Subject: [PATCH 539/784] drm/panel: simple: Add Innolux AT056tN53V1 5.6" VGA Add support for the Innolux AT056tN53V1 5.6" VGA (640x480) TFT LCD panel. @@ -229786,7 +229786,7 @@ index 2e21f5075edb..fda264e28165 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 5 Jan 2023 15:43:03 +0000 -Subject: [PATCH 540/717] configs: Enable PWM drivers +Subject: [PATCH 540/784] configs: Enable PWM drivers Add CONFIG_PWM, which now predicates the PWM drivers. @@ -229866,7 +229866,7 @@ index 0dac7e44292a..dde7d045b176 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlenga Date: Thu, 29 Dec 2022 19:14:32 +0100 -Subject: [PATCH 541/717] overlays: audremap: Fix setting of the pin function +Subject: [PATCH 541/784] overlays: audremap: Fix setting of the pin function The brcm,function property must be set in the overlay fragment too - otherwise the parametrization won't work. At least that's the case for @@ -229905,7 +229905,7 @@ index a73cc95934ba..95027c5c8f9e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Jan 2023 15:44:10 +0000 -Subject: [PATCH 542/717] media: dt-bindings: Add DW9817 to DW9807 binding +Subject: [PATCH 542/784] media: dt-bindings: Add DW9817 to DW9807 binding The DW9817 is programmatically the same as DW9807, but the output drive is a bi-directional -100 to +100mA @@ -229957,7 +229957,7 @@ index aae246ca3fcf..1be649611ba2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Jan 2023 15:38:08 +0000 -Subject: [PATCH 543/717] media: dw9807-vcm: Add support for DW9817 +Subject: [PATCH 543/784] media: dw9807-vcm: Add support for DW9817 bidirectional VCM driver The DW9817 is effectively the same as DW9807 from a programming @@ -230186,7 +230186,7 @@ index 3599720db7e9..3fb5d6a7f771 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Jan 2023 16:41:08 +0000 -Subject: [PATCH 544/717] media: dt-bindings: Add regulator to dw9807-vcm +Subject: [PATCH 544/784] media: dt-bindings: Add regulator to dw9807-vcm The VCM driver will often be controlled via a regulator, therefore add in the relevant DT hooks. @@ -230234,7 +230234,7 @@ index 3fb5d6a7f771..258c53295005 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Jan 2023 16:35:59 +0000 -Subject: [PATCH 545/717] media: dw9807-vcm: Add regulator support to the +Subject: [PATCH 545/784] media: dw9807-vcm: Add regulator support to the driver Uses the regulator notifier framework so that the current @@ -230427,7 +230427,7 @@ index 258c53295005..0bd9fe75deb5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 3 Jan 2023 16:53:37 +0000 -Subject: [PATCH 546/717] media: dw9807-vcm: Smooth the first user movement of +Subject: [PATCH 546/784] media: dw9807-vcm: Smooth the first user movement of the lens The power up/down sequence is already ramped. Extend this to @@ -230482,7 +230482,7 @@ index 0bd9fe75deb5..85412361e991 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Dec 2022 14:08:35 +0000 -Subject: [PATCH 547/717] dtbindings: media: i2c: Add IMX708 CMOS sensor +Subject: [PATCH 547/784] dtbindings: media: i2c: Add IMX708 CMOS sensor binding Add YAML devicetree binding for IMX708 CMOS image sensor. @@ -230621,7 +230621,7 @@ index 000000000000..4b8645f6880c + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 4e1014876dd0..ef8a027faeeb 100644 +index 04ad1a3e9084..d3f8d9256e98 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19325,6 +19325,14 @@ T: git git://linuxtv.org/media_tree.git @@ -230646,7 +230646,7 @@ index 4e1014876dd0..ef8a027faeeb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nick Hollinghurst Date: Thu, 22 Dec 2022 13:59:33 +0000 -Subject: [PATCH 548/717] media/i2c: Add a driver for the Sony IMX708 image +Subject: [PATCH 548/784] media/i2c: Add a driver for the Sony IMX708 image sensor The imx708 is a 12MP MIPI sensor with a 16:9 aspect ratio, here using @@ -232702,7 +232702,7 @@ index 000000000000..f4c65aa3e18f From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Dec 2022 14:28:15 +0000 -Subject: [PATCH 549/717] defconfigs: Add IMX708 to all Pi defconfigs +Subject: [PATCH 549/784] defconfigs: Add IMX708 to all Pi defconfigs Adds the IMX708 image sensor driver to the defconfigs. @@ -232817,7 +232817,7 @@ index dde7d045b176..6af06a59eae5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 22 Dec 2022 14:12:54 +0000 -Subject: [PATCH 550/717] dtoverlays: Add overlays for the IMX708 image sensor +Subject: [PATCH 550/784] dtoverlays: Add overlays for the IMX708 image sensor New overlay to support the Sony IMX708 image sensor. This includes a VCM for lens control. @@ -233269,7 +233269,7 @@ index 000000000000..1381caf22668 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Jan 2023 16:00:21 +0000 -Subject: [PATCH 551/717] net: phy: broadcom: Make LEDs 3+4 shadow LEDs 1+2 +Subject: [PATCH 551/784] net: phy: broadcom: Make LEDs 3+4 shadow LEDs 1+2 CM4 uses BCM54210PE, which supports 2 additional LEDs, choosing LED3 for the amber LED because it shows activity by default (LED4 is not @@ -233310,7 +233310,7 @@ index d4c86aeb9748..ab7bbe2166d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 4 Jan 2023 09:14:53 +0000 -Subject: [PATCH 552/717] overlays: i2c-sensor: MS temp & pressure sensors +Subject: [PATCH 552/784] overlays: i2c-sensor: MS temp & pressure sensors Add support for the Measurement Specialities temperature and pressure sensors to the i2c-sensor overlay. The supported devices are MS5637, @@ -233468,7 +233468,7 @@ index c81d8e5db548..6504c7578b9d 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 4 Jan 2023 09:39:44 +0000 -Subject: [PATCH 553/717] configs: Enable the MS5637 temp + pressure driver +Subject: [PATCH 553/784] configs: Enable the MS5637 temp + pressure driver Signed-off-by: Phil Elwell --- @@ -233546,7 +233546,7 @@ index 6af06a59eae5..051ccf171b25 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 5 Jan 2023 14:44:48 +0000 -Subject: [PATCH 554/717] drivers: media: imx708: Enable long exposure mode +Subject: [PATCH 554/784] drivers: media: imx708: Enable long exposure mode Enable long exposure modes by using the long exposure shift register setting in the imx708 sensor. @@ -233654,7 +233654,7 @@ index f4c65aa3e18f..ee80035462d7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 10 Jan 2023 13:14:27 +0000 -Subject: [PATCH 555/717] drivers: media: i2c: imx708: Fix crop information +Subject: [PATCH 555/784] drivers: media: i2c: imx708: Fix crop information The 1536x864 mode contained incorrect crop information. @@ -233689,7 +233689,7 @@ index ee80035462d7..7c76fa0c0dc9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 11 Jan 2023 10:06:12 +0000 -Subject: [PATCH 556/717] configs: Add DM_MULTIPATH=m +Subject: [PATCH 556/784] configs: Add DM_MULTIPATH=m "Allow volume managers to support multipath hardware." @@ -233769,52 +233769,9 @@ index 051ccf171b25..affffde698bb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Dom Cobley -Date: Thu, 8 Dec 2022 17:21:00 +0000 -Subject: [PATCH 557/717] drm_probe_helper: Cancel previous job before starting - new one - -Currently we schedule a call to output_poll_execute from drm_kms_helper_poll_enable for 10s in future. -Later we try to replace that in drm_helper_probe_single_connector_modes with a 0s schedule with delayed_event set. - -But as there is already a job in the queue this fails, and the immediate job we wanted with delayed_event set -doesn't occur until 10s later. - -And that call acts as if connector state has changed, reprobing modes. -This has a side effect of waking up a display that has been blanked. - -Make sure we cancel the old job before submitting the immediate one. - -Signed-off-by: Dom Cobley ---- - drivers/gpu/drm/drm_probe_helper.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c -index 69b0b2b9cc1c..e248fb99e87a 100644 ---- a/drivers/gpu/drm/drm_probe_helper.c -+++ b/drivers/gpu/drm/drm_probe_helper.c -@@ -556,9 +556,11 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, - * disable itself again. - */ - dev->mode_config.delayed_event = true; -- if (dev->mode_config.poll_enabled) -+ if (dev->mode_config.poll_enabled) { -+ cancel_delayed_work_sync(&dev->mode_config.output_poll_work); - schedule_delayed_work(&dev->mode_config.output_poll_work, - 0); -+ } - } - - /* Re-enable polling in case the global poll config changed. */ --- -2.39.1 - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 14 Nov 2022 19:30:27 +0000 -Subject: [PATCH 558/717] drm/vc4: hdmi: Correct CSC setup for YCbCr4:4:4 +Subject: [PATCH 557/784] drm/vc4: hdmi: Correct CSC setup for YCbCr4:4:4 The CSC requires the coefficients to be swapped around for 4:4:4 mode, but the swap was incorrectly defined. @@ -233856,7 +233813,7 @@ index aab46968d077..cfdde90fd090 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Mon, 14 Nov 2022 19:32:10 +0000 -Subject: [PATCH 559/717] drm/vc4: hdmi: Add property to allow manual config of +Subject: [PATCH 558/784] drm/vc4: hdmi: Add property to allow manual config of RGB or YCbCr Add a custom property "Output format" that allows the overriding @@ -234040,7 +233997,7 @@ index 268ce4122090..8d0bf52f55e7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lukas Wunner Date: Sat, 14 Jan 2023 10:03:46 +0100 -Subject: [PATCH 560/717] bcm2835-mmc: Honor return value of mmc_of_parse() +Subject: [PATCH 559/784] bcm2835-mmc: Honor return value of mmc_of_parse() bcm2835_mmc_probe() ignores errors returned by mmc_of_parse() and in particular ignores -EPROBE_DEFER, which may be returned if the power @@ -234076,7 +234033,7 @@ index 3c7b78a5e85f..7fdadf554991 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 13 Jan 2023 14:32:45 +0000 -Subject: [PATCH 561/717] .github/workflows: Set warnings-as-errors for builds +Subject: [PATCH 560/784] .github/workflows: Set warnings-as-errors for builds To avoid code with build warnings being introduced into the tree, force CONFIG_WERROR=y in the build workflow. @@ -234145,7 +234102,7 @@ index 8e551dc4d0c5..5e446031c439 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 17 Jan 2023 15:47:04 +0000 -Subject: [PATCH 562/717] overlays: i2c-sensor: Add mpu6050 and mpu9250 +Subject: [PATCH 561/784] overlays: i2c-sensor: Add mpu6050 and mpu9250 Add support for the MPU6050 and MPU9250 IMU sensors to the i2c-sensor container overlay. At the same time, deprecate the standalone mpu6050 @@ -234323,7 +234280,7 @@ index fda036488d41..f1d1e0cf30d2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 18 Jan 2023 09:34:31 +0000 -Subject: [PATCH 563/717] .github/workflows: Correct kernel builds artifacts +Subject: [PATCH 562/784] .github/workflows: Correct kernel builds artifacts Modify the kernel build workflow to create artifacts with the correct names and structure, both as an example of what we expect and in case @@ -234476,7 +234433,7 @@ index 5e446031c439..231fcc2a4601 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: PolarStarWalker Date: Mon, 2 Jan 2023 02:17:20 +0300 -Subject: [PATCH 564/717] configs: Enable BNO055 IMU sensor +Subject: [PATCH 563/784] configs: Enable BNO055 IMU sensor Signed-off-by: PolarStarWalker --- @@ -234554,7 +234511,7 @@ index affffde698bb..5ded73782d58 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 18 Jan 2023 16:37:01 +0000 -Subject: [PATCH 565/717] overlays: i2c-sensor: Use TABs for indentation +Subject: [PATCH 564/784] overlays: i2c-sensor: Use TABs for indentation A whitespace-only change replacing groups of 8 spaces with TABs. @@ -234629,7 +234586,7 @@ index 4b3519e4be52..564746f0341c 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: PolarStarWalker Date: Mon, 2 Jan 2023 02:13:27 +0300 -Subject: [PATCH 566/717] overlays: i2c-sensor: Add BNO055 IMU sensor +Subject: [PATCH 565/784] overlays: i2c-sensor: Add BNO055 IMU sensor Add support for the Bosch BNO055 9-dof IMU sensor. @@ -234734,7 +234691,7 @@ index 564746f0341c..d97cbf4b8547 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 19 Jan 2023 19:51:49 +0000 -Subject: [PATCH 567/717] dtoverlay: Update vc4-kms-dpi-generic for changed +Subject: [PATCH 566/784] dtoverlay: Update vc4-kms-dpi-generic for changed mediabus formats Several of the media bus formats aren't merged upstream yet, @@ -234774,7 +234731,7 @@ index 85875c266296..8b006fcd9e58 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 16 Dec 2021 14:54:54 +0100 -Subject: [PATCH 568/717] drm/vc4: hvs: Defer dlist slots deallocation +Subject: [PATCH 567/784] drm/vc4: hvs: Defer dlist slots deallocation During normal operations, the cursor position update is done through an asynchronous plane update, which on the vc4 driver basically just @@ -235185,7 +235142,7 @@ index 6b2e3504e9a2..ecb19422e2ac 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Wed, 11 Jan 2023 17:30:58 +0000 -Subject: [PATCH 569/717] vc4/hdmi: Always enable GCP with AVMUTE cleared +Subject: [PATCH 568/784] vc4/hdmi: Always enable GCP with AVMUTE cleared See: https://forum.libreelec.tv/thread/24780-le-10-0-1-rpi4-no-picture-after-update-from-le-10-0-0 @@ -235295,7 +235252,7 @@ index 9fbe5d380046..914afb1e28f4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Thu, 19 Jan 2023 16:46:32 +0000 -Subject: [PATCH 570/717] media: bcm2835-v4l2-codec: Enable selection ioctl for +Subject: [PATCH 569/784] media: bcm2835-v4l2-codec: Enable selection ioctl for ISP The ISP cases do nothing. Remove the break that separates them from the @@ -235335,7 +235292,7 @@ index 3fec9d2306fb..462a5f8644da 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 23 Jan 2023 16:50:51 +0000 -Subject: [PATCH 571/717] .github/workflows: Switch to a matrix build +Subject: [PATCH 570/784] .github/workflows: Switch to a matrix build Remove the per-build duplication by putting build parameters in a matrix. @@ -235679,7 +235636,7 @@ index 231fcc2a4601..9bfff5998f21 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Jan 2023 11:43:46 +0000 -Subject: [PATCH 572/717] configs: Enable the sht4x driver +Subject: [PATCH 571/784] configs: Enable the sht4x driver See: https://github.com/raspberrypi/linux/issues/5334 @@ -235759,7 +235716,7 @@ index 5ded73782d58..46b4ef4476f6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Jan 2023 11:34:38 +0000 -Subject: [PATCH 573/717] overlays: i2c-sensor: Add SHT4X support +Subject: [PATCH 572/784] overlays: i2c-sensor: Add SHT4X support Add support for the Sensirion SHT4X temperature and humidity sensor. @@ -235841,7 +235798,7 @@ index d97cbf4b8547..52b08c68987a 100755 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Gow Date: Fri, 25 Nov 2022 16:43:04 +0800 -Subject: [PATCH 574/717] kunit: Provide a static key to check if KUnit is +Subject: [PATCH 573/784] kunit: Provide a static key to check if KUnit is actively running tests KUnit does a few expensive things when enabled. This hasn't been a @@ -235890,7 +235847,7 @@ index ebcdbddf8344..0011d34f4900 100644 /* Size of log associated with test. */ diff --git a/lib/kunit/test.c b/lib/kunit/test.c -index 2a6992fe7c3e..6dd27657d855 100644 +index 184df6f701b4..169ea50c2c0f 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -20,6 +20,8 @@ @@ -235902,7 +235859,7 @@ index 2a6992fe7c3e..6dd27657d855 100644 #if IS_BUILTIN(CONFIG_KUNIT) /* * Fail the current test and print an error message to the log. -@@ -612,10 +614,14 @@ int __kunit_test_suites_init(struct kunit_suite * const * const suites, int num_ +@@ -622,10 +624,14 @@ int __kunit_test_suites_init(struct kunit_suite * const * const suites, int num_ return 0; } @@ -235924,7 +235881,7 @@ index 2a6992fe7c3e..6dd27657d855 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Gow Date: Fri, 25 Nov 2022 16:43:05 +0800 -Subject: [PATCH 575/717] kunit: Use the static key when retrieving the current +Subject: [PATCH 574/784] kunit: Use the static key when retrieving the current test In order to detect if a KUnit test is running, and to access its @@ -236106,7 +236063,7 @@ index 5fc58081d511..c1b2e14eab64 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 25 Jan 2023 12:38:37 +0100 -Subject: [PATCH 576/717] drm/vc4: hvs: Initialize the dlist allocation list +Subject: [PATCH 575/784] drm/vc4: hvs: Initialize the dlist allocation list entry The vc4_hvs_dlist_allocation structure has a list that we don't @@ -236142,7 +236099,7 @@ index ecb19422e2ac..c9c7b841385d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 25 Jan 2023 12:54:36 +0100 -Subject: [PATCH 577/717] drm/vc4: hvs: Move the dlist allocation destruction +Subject: [PATCH 576/784] drm/vc4: hvs: Move the dlist allocation destruction to a function We'll need to destroy a dlist allocation in multiple code paths, so @@ -236194,7 +236151,7 @@ index c9c7b841385d..c39e44d53ea3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 25 Jan 2023 13:05:26 +0100 -Subject: [PATCH 578/717] drm/vc4: hvs: Destroy dlist allocations immediately +Subject: [PATCH 577/784] drm/vc4: hvs: Destroy dlist allocations immediately when running a test When running a kunit test, the driver runs with a mock device. As such, @@ -236248,7 +236205,7 @@ index c39e44d53ea3..4d952f31cf40 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 24 Jan 2023 16:54:16 +0000 -Subject: [PATCH 579/717] ARM: dts: Set the LED default-state to "off" +Subject: [PATCH 578/784] ARM: dts: Set the LED default-state to "off" The default-state property for an LED determines the state of the LED when its trigger is set to "none". Many users expect that specifying a @@ -236556,7 +236513,7 @@ index ee6cbabba714..81e6cc67cffe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell <8911409+pelwell@users.noreply.github.com> Date: Wed, 25 Jan 2023 10:19:52 +0000 -Subject: [PATCH 580/717] README.md: Replace 6.0 build status with 6.2 +Subject: [PATCH 579/784] README.md: Replace 6.0 build status with 6.2 6.0 is EOL and 6.2 is heading towards release, so update the build status display accordingly. --- @@ -236589,7 +236546,7 @@ index 605abc67589e..09fad0ca57dc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 25 Jan 2023 15:01:43 +0000 -Subject: [PATCH 581/717] .github/workflows: Retain artifacts for 90 days +Subject: [PATCH 580/784] .github/workflows: Retain artifacts for 90 days Signed-off-by: Phil Elwell --- @@ -236613,7 +236570,7 @@ index 9bfff5998f21..87eb13939be6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stanislav Zidek Date: Thu, 26 Jan 2023 11:36:57 +0100 -Subject: [PATCH 582/717] configs: add CONFIG_DM_INTEGRITY=m +Subject: [PATCH 581/784] configs: add CONFIG_DM_INTEGRITY=m This is necessary for volumes with integrity protection, both with and without DM_CRYPT. @@ -236694,7 +236651,7 @@ index 46b4ef4476f6..3310fcf694ac 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 30 Jan 2023 09:57:16 +0000 -Subject: [PATCH 583/717] configs: Add MTD_SPI_NAND=m +Subject: [PATCH 582/784] configs: Add MTD_SPI_NAND=m See: https://github.com/raspberrypi/linux/issues/5338 @@ -236774,7 +236731,7 @@ index 3310fcf694ac..1fd2d7bffe68 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Cox Date: Mon, 30 Jan 2023 16:34:55 +0000 -Subject: [PATCH 584/717] media: bcm2835-v4l2-codec: Add profile & level ctrls +Subject: [PATCH 583/784] media: bcm2835-v4l2-codec: Add profile & level ctrls to decode In order to support discovery of what profile & levels are supported by @@ -236901,7 +236858,7 @@ index 462a5f8644da..f25c5c70861d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Tue, 31 Jan 2023 15:14:32 +0000 -Subject: [PATCH 585/717] drm/vc4_plane: Add support for YUV444 formats +Subject: [PATCH 584/784] drm/vc4_plane: Add support for YUV444 formats Support displaying DRM_FORMAT_YUV444 and DRM_FORMAT_YVU444 formats. Tested with kmstest and kodi. e.g. @@ -236960,7 +236917,7 @@ index 6432055454ac..14757be7207b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 14 Jan 2023 16:24:39 +0100 -Subject: [PATCH 586/717] drm/vc4: Calculate bpc based on max_requested_bpc +Subject: [PATCH 585/784] drm/vc4: Calculate bpc based on max_requested_bpc This aligns vc4 with Intel, AMD and Synopsis drivers and fixes max bpc connector property not working as expected on monitors with YCbCr 4:2:2 @@ -236995,7 +236952,7 @@ index 914afb1e28f4..bd762b4e3e8f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Yassine Oudjana Date: Fri, 9 Dec 2022 17:37:39 +0300 -Subject: [PATCH 587/717] media: dt-bindings: ak7375: Convert to DT schema +Subject: [PATCH 586/784] media: dt-bindings: ak7375: Convert to DT schema commit 6d801f89ad7c485bbb14c0138d991beebd307aa6 upstream @@ -237075,7 +237032,7 @@ index 000000000000..22b1251b16ee + +... diff --git a/MAINTAINERS b/MAINTAINERS -index ef8a027faeeb..548ca27e4565 100644 +index d3f8d9256e98..ed749a95dd87 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3173,7 +3173,7 @@ M: Tianshu Qiu @@ -237094,7 +237051,7 @@ index ef8a027faeeb..548ca27e4565 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Yassine Oudjana Date: Fri, 9 Dec 2022 17:37:40 +0300 -Subject: [PATCH 588/717] media: dt-bindings: ak7375: Add supplies +Subject: [PATCH 587/784] media: dt-bindings: ak7375: Add supplies commit 04a79f078329b14f260db15250e84c97022f42cd upstream @@ -237147,7 +237104,7 @@ index 22b1251b16ee..22a810fc7222 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Yassine Oudjana Date: Fri, 9 Dec 2022 17:37:41 +0300 -Subject: [PATCH 589/717] media: i2c: ak7375: Add regulator management +Subject: [PATCH 588/784] media: i2c: ak7375: Add regulator management commit 90f7e76eac50c1ae54a445abc6a286837ade46cf upstream @@ -237261,7 +237218,7 @@ index 1af9f698eecf..e7cec45bc271 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 17 Feb 2023 10:36:29 +0800 -Subject: [PATCH 590/717] configs: Add CONFIG_VIDEO_AK7375=m +Subject: [PATCH 589/784] configs: Add CONFIG_VIDEO_AK7375=m Include the driver module for the AK7375. @@ -237341,7 +237298,7 @@ index 1fd2d7bffe68..a3c5c072872f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Mon, 20 Feb 2023 10:25:33 +0800 -Subject: [PATCH 591/717] dtoverlays: Add VCM option to imx519 +Subject: [PATCH 590/784] dtoverlays: Add VCM option to imx519 VCM is enabled by default, but you can use 'vcm=off' to disable VCM support. @@ -237503,7 +237460,7 @@ index 000000000000..1f240b6dd985 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Fri, 24 Feb 2023 08:33:34 +0800 -Subject: [PATCH 592/717] dtoverlays: Add IMX519 support to camera mux overlays +Subject: [PATCH 591/784] dtoverlays: Add IMX519 support to camera mux overlays Signed-off-by: Lee Jackson --- @@ -237759,7 +237716,7 @@ index 222fda6c8221..24d7c86eadc8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Feb 2023 15:35:43 +0000 -Subject: [PATCH 593/717] vc04_services: bcm2835_codec: Ignore READ_ONLY ctrls +Subject: [PATCH 592/784] vc04_services: bcm2835_codec: Ignore READ_ONLY ctrls in s_ctrl In adding the MPEG2/MPEG4/H264 level and profile controls to @@ -237946,7 +237903,7 @@ index f25c5c70861d..cd766f805009 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 28 Feb 2023 14:15:42 +0000 -Subject: [PATCH 594/717] ASoC: bcm: Fix Rpi-PROTO and audioinjector.net Pi +Subject: [PATCH 593/784] ASoC: bcm: Fix Rpi-PROTO and audioinjector.net Pi As of kernel 5.19 the WM8731 driver has separate I2C and SPI support modules. Change the Kconfig definitions for the audioinjector.net Pi @@ -237988,7 +237945,7 @@ index c865ad6f50b9..0c3eacabbb0a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Mon, 27 Feb 2023 08:47:23 +0800 -Subject: [PATCH 595/717] dtoverlays: Add VCM option to Arducam64MP +Subject: [PATCH 594/784] dtoverlays: Add VCM option to Arducam64MP VCM is enabled by default, but you can use 'vcm=off' to disable VCM support. @@ -238150,7 +238107,7 @@ index 000000000000..ed9f2e50c287 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Mon, 27 Feb 2023 19:38:05 +0800 -Subject: [PATCH 596/717] dtoverlays: Add Arducam64MP support to camera mux +Subject: [PATCH 595/784] dtoverlays: Add Arducam64MP support to camera mux overlays Signed-off-by: Lee Jackson @@ -238411,7 +238368,7 @@ index 24d7c86eadc8..841ac2cdd9bc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 1 Feb 2022 15:27:01 +0000 -Subject: [PATCH 597/717] drm/panel/panel-sitronix-st7701: Support SPI config +Subject: [PATCH 596/784] drm/panel/panel-sitronix-st7701: Support SPI config and RGB data The ST7701 supports numerous different interface mechanisms for @@ -238972,7 +238929,7 @@ index 225b9884f61a..3aed984d596f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2023 16:34:39 +0000 -Subject: [PATCH 598/717] overlays: Remove lirc-rpi from media-center +Subject: [PATCH 597/784] overlays: Remove lirc-rpi from media-center lirc-rpi was retired years ago, suggesting that this overlay is not being used. Before deleting outright, remove the lirc-rpi element. @@ -239081,7 +239038,7 @@ index 9fab935d89d3..4bc2eaa1f215 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2023 17:15:36 +0000 -Subject: [PATCH 599/717] overlays: pca953x: Fix a typos in the pcal variants +Subject: [PATCH 598/784] overlays: pca953x: Fix a typos in the pcal variants Signed-off-by: Phil Elwell --- @@ -239153,7 +239110,7 @@ index 8b6ee44665ce..ab414e92e366 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2023 20:04:34 +0000 -Subject: [PATCH 600/717] iio: adc: mcp3422: Add correct compatible strings +Subject: [PATCH 599/784] iio: adc: mcp3422: Add correct compatible strings Signed-off-by: Phil Elwell --- @@ -239187,7 +239144,7 @@ index da353dcb1e9d..533994ecb9a0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2023 20:48:14 +0000 -Subject: [PATCH 601/717] ASoC: adau1977: Add correct compatible strings +Subject: [PATCH 600/784] ASoC: adau1977: Add correct compatible strings Signed-off-by: Phil Elwell --- @@ -239225,7 +239182,7 @@ index 9f137a0634d5..8e36a9fb276f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2023 20:54:47 +0000 -Subject: [PATCH 602/717] overlays: Use vendor-qualified compatible strings +Subject: [PATCH 601/784] overlays: Use vendor-qualified compatible strings Signed-off-by: Phil Elwell --- @@ -239392,7 +239349,7 @@ index 51b7fec281c0..df3286929c2e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2023 20:56:08 +0000 -Subject: [PATCH 603/717] mfd: arizona-i2c: Declare of MODULE_DEVICE_TABLE +Subject: [PATCH 602/784] mfd: arizona-i2c: Declare of MODULE_DEVICE_TABLE Without a MODULE_DEVICE_TABLE declare for the of_device_ids, the compatible strings won't be turned into module aliases. @@ -239421,7 +239378,7 @@ index bfc7cf56ff2c..071920764eca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 6 Mar 2023 21:04:05 +0000 -Subject: [PATCH 604/717] gpio: pca953x: Add ti,tca9554 compatible string +Subject: [PATCH 603/784] gpio: pca953x: Add ti,tca9554 compatible string Signed-off-by: Phil Elwell --- @@ -239447,7 +239404,7 @@ index bf21803a0036..10e4bce9c2e4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Mar 2023 11:44:49 +0000 -Subject: [PATCH 605/717] configs: Enable some modules required by overlays +Subject: [PATCH 604/784] configs: Enable some modules required by overlays Signed-off-by: Phil Elwell --- @@ -239645,7 +239602,7 @@ index a3c5c072872f..35eece2cf4a1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Mar 2023 11:52:36 +0000 -Subject: [PATCH 606/717] hwmon: (aht10): Add DT compatible string +Subject: [PATCH 605/784] hwmon: (aht10): Add DT compatible string Signed-off-by: Phil Elwell --- @@ -239680,7 +239637,7 @@ index 2d9770cb4401..d1caa524b8ca 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Mar 2023 12:12:36 +0000 -Subject: [PATCH 607/717] hwmon: (ds1621) Add DT compatible strings +Subject: [PATCH 606/784] hwmon: (ds1621) Add DT compatible strings Signed-off-by: Phil Elwell --- @@ -239715,7 +239672,7 @@ index 0886abf6ebab..1288e35aa1f8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Mar 2023 20:51:53 +0000 -Subject: [PATCH 608/717] rtc: ds3232: Add DT compatible string for ds3234 +Subject: [PATCH 607/784] rtc: ds3232: Add DT compatible string for ds3234 Signed-off-by: Phil Elwell --- @@ -239750,7 +239707,7 @@ index dd31a60c1fc6..8d96f5090814 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Mar 2023 21:47:58 +0000 -Subject: [PATCH 609/717] hwmon: (sht3x) Add DT compatible string +Subject: [PATCH 608/784] hwmon: (sht3x) Add DT compatible string Signed-off-by: Phil Elwell --- @@ -239788,7 +239745,7 @@ index 3f279aa1cee5..a356cb29ffe4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Mar 2023 21:48:54 +0000 -Subject: [PATCH 610/717] iio: light: tsl4531: Add DT compatible string +Subject: [PATCH 609/784] iio: light: tsl4531: Add DT compatible string Signed-off-by: Phil Elwell --- @@ -239823,7 +239780,7 @@ index 090038fed889..b28711497985 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 7 Mar 2023 21:49:30 +0000 -Subject: [PATCH 611/717] iio: light: veml6070: Add DT compatible string +Subject: [PATCH 610/784] iio: light: veml6070: Add DT compatible string Signed-off-by: Phil Elwell --- @@ -239858,7 +239815,7 @@ index cfa4e9e7c803..513b1e07042e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Mar 2023 15:28:19 +0000 -Subject: [PATCH 612/717] workflows: We all love checkpatch, so add it to the +Subject: [PATCH 611/784] workflows: We all love checkpatch, so add it to the CI workflows This is currently running on defaults, so the --strict desired @@ -239914,7 +239871,7 @@ index 000000000000..5d79c37b1d8c From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 10 Mar 2023 10:02:35 +0000 -Subject: [PATCH 613/717] ARM: dts: Standardise on the upstream LED names +Subject: [PATCH 612/784] ARM: dts: Standardise on the upstream LED names Historically, downstream Pi DTS files have named the LEDs led0 and (if present) led1, while upstream have used the more meaningful "ACT" and @@ -240214,7 +240171,7 @@ index 81e6cc67cffe..fc9e1e423a0d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 10 Mar 2023 11:22:24 +0000 -Subject: [PATCH 614/717] ARM: dts: bcm2711-rpi-400: Restore the ACT LED +Subject: [PATCH 613/784] ARM: dts: bcm2711-rpi-400: Restore the ACT LED Pi 400 doesn't have an ACT LED, only a green PWR LED, but a user may wish to remap the ACT functionality to a GPIO on the 40-pin header. @@ -240286,7 +240243,7 @@ index 2f4bbb407f89..fa10d60fd354 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 10 Mar 2023 11:56:10 +0000 -Subject: [PATCH 615/717] ARM: dts: bcm2711-rpi-400: Add dummy cam1 regulator +Subject: [PATCH 614/784] ARM: dts: bcm2711-rpi-400: Add dummy cam1 regulator Adding the cam1_reg label to the dummy camera regulator gets rid of an error when all overlays are tried against all boards, and brings it @@ -240318,7 +240275,7 @@ index cfb335180ce7..b276f2d12af6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 10 Mar 2023 15:07:10 +0000 -Subject: [PATCH 616/717] overlays: vc4-kms/fkms-v3d: Raise CMA to 512MB +Subject: [PATCH 615/784] overlays: vc4-kms/fkms-v3d: Raise CMA to 512MB On Pi 4, raise the requested CMA size to 512MB by default, on the understanding that the firmware will cap that to 256MB if it's a @@ -240363,7 +240320,7 @@ index 1cf4ec5c8637..c1e53e3ed575 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Thu, 21 Oct 2021 14:41:55 +0100 -Subject: [PATCH 617/717] media: i2c: imx219: Sensor should report RAW color +Subject: [PATCH 616/784] media: i2c: imx219: Sensor should report RAW color space Tested on Raspberry Pi running libcamera. @@ -240402,7 +240359,7 @@ index 7a14688f8c22..a0ad81ea9bfd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Tue, 25 Jan 2022 15:48:53 +0000 -Subject: [PATCH 618/717] media: i2c: imx219: Correct the minimum vblanking +Subject: [PATCH 617/784] media: i2c: imx219: Correct the minimum vblanking value The datasheet for this sensor documents the minimum vblanking as being @@ -240434,7 +240391,7 @@ index a0ad81ea9bfd..f3ec5a07c4f7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Mar 2023 17:27:10 +0000 -Subject: [PATCH 619/717] media: i2c: imx219: make HBLANK r/w to allow longer +Subject: [PATCH 618/784] media: i2c: imx219: make HBLANK r/w to allow longer exposures The HBLANK control was read-only, and always configured such @@ -240545,7 +240502,7 @@ index f3ec5a07c4f7..4e095af0fdb6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 10 Mar 2023 17:43:57 +0000 -Subject: [PATCH 620/717] media: imx219: Advertise embedded data node on media +Subject: [PATCH 619/784] media: imx219: Advertise embedded data node on media pad 1 This commit updates the imx219 driver to adverise support for embedded @@ -240907,7 +240864,7 @@ index 4e095af0fdb6..b173caacf288 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 11 Mar 2023 22:41:17 +0100 -Subject: [PATCH 621/717] drm/vc4: drop unnecessary and harmful HDMI RGB format +Subject: [PATCH 620/784] drm/vc4: drop unnecessary and harmful HDMI RGB format check RGB is a mandatory format for all DVI and HDMI monitors so there's @@ -240950,7 +240907,7 @@ index bd762b4e3e8f..3c60c93c0f88 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 14 Mar 2023 10:03:25 +0000 -Subject: [PATCH 622/717] Revert "media: i2c: imx296: Support for the Sony +Subject: [PATCH 621/784] Revert "media: i2c: imx296: Support for the Sony IMX296 sensor" This reverts commit 26c9a943e4a9fde3355dd12a3127f2f22f7d5551. @@ -241066,7 +241023,7 @@ index e8f9a73bf2db..000000000000 - -... diff --git a/MAINTAINERS b/MAINTAINERS -index 548ca27e4565..634cecc3d80e 100644 +index ed749a95dd87..403441a315da 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19258,15 +19258,6 @@ T: git git://linuxtv.org/media_tree.git @@ -242426,7 +242383,7 @@ index d7fedcd28dc5..000000000000 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Manivannan Sadhasivam Date: Tue, 23 Aug 2022 03:58:21 +0300 -Subject: [PATCH 623/717] dt-bindings: media: i2c: Add IMX296 CMOS sensor +Subject: [PATCH 622/784] dt-bindings: media: i2c: Add IMX296 CMOS sensor binding Add YAML devicetree binding for IMX296 CMOS image sensor. Let's also @@ -242555,7 +242512,7 @@ index 000000000000..65ad9c100e45 + +... diff --git a/MAINTAINERS b/MAINTAINERS -index 634cecc3d80e..f4c45861ccbb 100644 +index 403441a315da..5b1cb9d771e4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19258,6 +19258,14 @@ T: git git://linuxtv.org/media_tree.git @@ -242580,7 +242537,7 @@ index 634cecc3d80e..f4c45861ccbb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 23 Aug 2022 03:58:22 +0300 -Subject: [PATCH 624/717] media: i2c: IMX296 camera sensor driver +Subject: [PATCH 623/784] media: i2c: IMX296 camera sensor driver The IMX296LLR is a monochrome 1.60MP CMOS sensor from Sony. The driver supports cropping and binning (but not both at the same time due to @@ -242601,7 +242558,7 @@ Signed-off-by: Sakari Ailus create mode 100644 drivers/media/i2c/imx296.c diff --git a/MAINTAINERS b/MAINTAINERS -index f4c45861ccbb..548ca27e4565 100644 +index 5b1cb9d771e4..ed749a95dd87 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19265,6 +19265,7 @@ L: linux-media@vger.kernel.org @@ -243833,7 +243790,7 @@ index 000000000000..3c12b6edeac9 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 14 Mar 2023 10:10:01 +0000 -Subject: [PATCH 625/717] media: i2c: imx296: Get sensor crop working +Subject: [PATCH 624/784] media: i2c: imx296: Get sensor crop working Add a missing register write (MIPIC_AREA3W) when setting up a crop window in the sensor to get this functionality working. @@ -243874,7 +243831,7 @@ index 3c12b6edeac9..a5358c3743b7 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 14 Mar 2023 12:55:14 +0000 -Subject: [PATCH 626/717] media: i2c: imx296: Disable binning for colour +Subject: [PATCH 625/784] media: i2c: imx296: Disable binning for colour variant Binning is only supported on the mono variant of the IMX296 sensor. @@ -243912,7 +243869,7 @@ index a5358c3743b7..29b0c229b155 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 14 Mar 2023 12:56:14 +0000 -Subject: [PATCH 627/717] media: i2c: imx296: Add helper for hblank control +Subject: [PATCH 626/784] media: i2c: imx296: Add helper for hblank control Add a helper function to setup the horizontal blanking control. Update the control limits on set_format as the horizontal blanking time must @@ -244002,7 +243959,7 @@ index 29b0c229b155..22ccfc5ac7cd 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 14 Mar 2023 10:46:46 +0000 -Subject: [PATCH 628/717] media: i2c: imx296: Set a 1 frame gain delay +Subject: [PATCH 627/784] media: i2c: imx296: Set a 1 frame gain delay Set the gain delay to 1 frame in the sensor. This avoids any race condition or ambiguity over when the setting is applied through @@ -244033,7 +243990,7 @@ index 22ccfc5ac7cd..4647270a07af 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 14 Mar 2023 11:00:48 +0000 -Subject: [PATCH 629/717] media: i2c: imx296: Add horizontal/vertical flip +Subject: [PATCH 628/784] media: i2c: imx296: Add horizontal/vertical flip support Add support for setting horizontal and/or vertial flips in the IMX296 @@ -244189,7 +244146,7 @@ index 4647270a07af..f440d25bd559 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Thu, 16 Mar 2023 09:29:41 +0000 -Subject: [PATCH 630/717] media: i2c: imx296: Adjust cropping limits +Subject: [PATCH 629/784] media: i2c: imx296: Adjust cropping limits Through emperical testing, the sensor can crop upto a 96x88 window to produce a valid Bayer frame. Adjust the ROIWH1_MIN ROIWV1_MIN @@ -244223,7 +244180,7 @@ index f440d25bd559..fbd113aa4ca6 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 16 Mar 2023 14:41:16 +0000 -Subject: [PATCH 631/717] reboot: Use power off rather than busy spinning when +Subject: [PATCH 630/784] reboot: Use power off rather than busy spinning when halt is requested Busy spinning after halt is dumb @@ -244262,7 +244219,7 @@ index 044a7d7f1f6a..0db7602f9e7d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Mar 2023 16:43:22 +0000 -Subject: [PATCH 632/717] Revert "hwrng: bcm2835 - use hwrng_msleep() instead +Subject: [PATCH 631/784] Revert "hwrng: bcm2835 - use hwrng_msleep() instead of cpu_relax()" This reverts commit 96cb9d0554457086664d3bd10630b11193d863f1. @@ -244294,7 +244251,7 @@ index cd1713c2d058..f9a4a89e762b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Wed, 22 Mar 2023 16:19:13 +0800 -Subject: [PATCH 633/717] media: i2c: Add PDAF support for IMX519 +Subject: [PATCH 632/784] media: i2c: Add PDAF support for IMX519 Add PDAF support for IMX519, and reduce the pixel rate to 426666667, link freq to 408000000. @@ -244727,7 +244684,7 @@ index fb25c57ced7e..141153b8b4fc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Jackson Date: Wed, 22 Mar 2023 16:24:19 +0800 -Subject: [PATCH 634/717] dtoverlays: Reduce the link-frequencies of IMX519 +Subject: [PATCH 633/784] dtoverlays: Reduce the link-frequencies of IMX519 Modify the link-frequencies of IMX519 to 408000000. @@ -244756,7 +244713,7 @@ index 1f240b6dd985..18cba1781ec4 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Plowman Date: Wed, 22 Mar 2023 12:01:57 +0000 -Subject: [PATCH 635/717] drivers: media: i2c: imx708: Fix WIDE_DYNAMIC_RANGE +Subject: [PATCH 634/784] drivers: media: i2c: imx708: Fix WIDE_DYNAMIC_RANGE control with long exposure Setting V4L2_CID_WIDE_DYNAMIC_RANGE was causing the long exposure @@ -244856,7 +244813,7 @@ index 7c76fa0c0dc9..7f5f07e4e16e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 24 Mar 2023 13:15:36 +0000 -Subject: [PATCH 636/717] rpisense-fb: Flush any deferred updates on release +Subject: [PATCH 635/784] rpisense-fb: Flush any deferred updates on release Since [1], writing to the Sense HAT framebuffer and immediately closing the file descriptor is likely to have no effect. This is because the @@ -244904,7 +244861,7 @@ index 325977def531..ef771f4d2722 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 27 Mar 2023 10:25:25 +0100 -Subject: [PATCH 637/717] rpisense-fb: Add explicit fb_deferred_io_mmap hook +Subject: [PATCH 636/784] rpisense-fb: Add explicit fb_deferred_io_mmap hook As of commit [1], introduced in 5.18, fbdev drivers that use deferred IO and need mmap support must include an explicit fb_mmap @@ -244936,7 +244893,7 @@ index ef771f4d2722..674787adb261 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Mar 2023 15:47:30 +0000 -Subject: [PATCH 638/717] Revert "Revert "hwrng: bcm2835 - use hwrng_msleep() +Subject: [PATCH 637/784] Revert "Revert "hwrng: bcm2835 - use hwrng_msleep() instead of cpu_relax()"" This reverts commit a9d98e9f7d84d7d66b02fdae9c37b19cd516c894. @@ -244966,7 +244923,7 @@ index f9a4a89e762b..cd1713c2d058 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 22 Mar 2023 15:30:38 +0000 -Subject: [PATCH 639/717] hwrng: bcm2835 - sleep more intelligently +Subject: [PATCH 638/784] hwrng: bcm2835 - sleep more intelligently While waiting for random data, use sleeps that are proportional to the amount of data expected. Prevent indefinite waits by @@ -245038,7 +244995,7 @@ index cd1713c2d058..6c9e81800668 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Fri, 10 Mar 2023 16:57:29 +0000 -Subject: [PATCH 640/717] vc04_services: bcm2835_codec: Set MPEG2_LEVEL control +Subject: [PATCH 639/784] vc04_services: bcm2835_codec: Set MPEG2_LEVEL control to READ_ONLY V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL was missed from @@ -245068,7 +245025,7 @@ index cd766f805009..fe7574cce14e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Mar 2023 14:29:52 +0000 -Subject: [PATCH 641/717] staging: bcm2835-codec: Add +Subject: [PATCH 640/784] staging: bcm2835-codec: Add V4L2_CID_MPEG_VIDEO_B_FRAMES control FFmpeg insists on trying to set V4L2_CID_MPEG_VIDEO_B_FRAMES to @@ -245123,7 +245080,7 @@ index fe7574cce14e..8e8ce8a1e3eb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 14 Mar 2023 16:49:46 +0000 -Subject: [PATCH 642/717] staging: bcm2835-codec: Add support for +Subject: [PATCH 641/784] staging: bcm2835-codec: Add support for V4L2_CID_MPEG_VIDEO_GOP_SIZE For H264, V4L2_CID_MPEG_VIDEO_H264_I_PERIOD is meant to be the intra @@ -245199,7 +245156,7 @@ index 8e8ce8a1e3eb..63f22cf136c2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 28 Mar 2023 05:11:58 +0200 -Subject: [PATCH 643/717] dtoverlays: Add inverted override property to +Subject: [PATCH 642/784] dtoverlays: Add inverted override property to ssd1306-spi The new ssd130x DRM driver supports both SSD1306 I2C and SPI panels and is @@ -245245,7 +245202,7 @@ index ffc90c7cecf6..679749fc3065 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 24 Nov 2022 18:09:07 +0000 -Subject: [PATCH 644/717] media: i2c: imx290: Reset to upstream. +Subject: [PATCH 643/784] media: i2c: imx290: Reset to upstream. For backporting a load of upstream commits, reset to upstream first. Downstream patches then need to be regenerated and applied. @@ -246253,7 +246210,7 @@ index 7d7bc0dcddb2..1ce64dcdf7f0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:05 +0300 -Subject: [PATCH 645/717] media: i2c: imx290: Use device lock for the control +Subject: [PATCH 644/784] media: i2c: imx290: Use device lock for the control handler Upstream commit 08878cbc0cbf. @@ -246289,7 +246246,7 @@ index 1ce64dcdf7f0..e5b758356a7a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:06 +0300 -Subject: [PATCH 646/717] media: i2c: imx290: Print error code when I2C +Subject: [PATCH 645/784] media: i2c: imx290: Print error code when I2C transfer fails Upstream commit fbe0a89dc7e3. @@ -246335,7 +246292,7 @@ index e5b758356a7a..f6ad4d250feb 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:07 +0300 -Subject: [PATCH 647/717] media: i2c: imx290: Replace macro with explicit +Subject: [PATCH 646/784] media: i2c: imx290: Replace macro with explicit ARRAY_SIZE() Upstream commit 2548df538cdd. @@ -246394,7 +246351,7 @@ index f6ad4d250feb..1d1a6fdc3954 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:08 +0300 -Subject: [PATCH 648/717] media: i2c: imx290: Drop imx290_write_buffered_reg() +Subject: [PATCH 647/784] media: i2c: imx290: Drop imx290_write_buffered_reg() Upstream commit b817888a0c50. @@ -246467,7 +246424,7 @@ index 1d1a6fdc3954..1219a06fec5f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:09 +0300 -Subject: [PATCH 649/717] media: i2c: imx290: Drop regmap cache +Subject: [PATCH 648/784] media: i2c: imx290: Drop regmap cache Upstream commit 72e4bf6dd136. @@ -246500,7 +246457,7 @@ index 1219a06fec5f..30e4ab508a74 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:10 +0300 -Subject: [PATCH 650/717] media: i2c: imx290: Specify HMAX values in decimal +Subject: [PATCH 649/784] media: i2c: imx290: Specify HMAX values in decimal Upstream commit 72825bc6f7f5. @@ -246560,7 +246517,7 @@ index 30e4ab508a74..5ca70f80d06a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:11 +0300 -Subject: [PATCH 651/717] media: i2c: imx290: Support variable-sized registers +Subject: [PATCH 650/784] media: i2c: imx290: Support variable-sized registers Upstream commit e70abe881463. @@ -246997,7 +246954,7 @@ index 5ca70f80d06a..dc07413d480e 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:12 +0300 -Subject: [PATCH 652/717] media: i2c: imx290: Correct register sizes +Subject: [PATCH 651/784] media: i2c: imx290: Correct register sizes Upstream commit 454a86f33dd0. @@ -247101,7 +247058,7 @@ index dc07413d480e..1a4782469984 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:13 +0300 -Subject: [PATCH 653/717] media: i2c: imx290: Simplify error handling when +Subject: [PATCH 652/784] media: i2c: imx290: Simplify error handling when writing registers Upstream commit e611f3dac54c. @@ -247307,7 +247264,7 @@ index 1a4782469984..eb007c40ff55 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 17 Oct 2022 11:35:45 +0300 -Subject: [PATCH 654/717] media: i2c: imx290: Define more register macros +Subject: [PATCH 653/784] media: i2c: imx290: Define more register macros Upstream commit 79d99ae8a77e. @@ -247607,7 +247564,7 @@ index eb007c40ff55..c7b55953f5b1 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:15 +0300 -Subject: [PATCH 655/717] media: i2c: imx290: Add exposure time control +Subject: [PATCH 654/784] media: i2c: imx290: Add exposure time control Upstream commit 827c7e69cb2d. @@ -247683,7 +247640,7 @@ index c7b55953f5b1..8c38119b9208 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:16 +0300 -Subject: [PATCH 656/717] media: i2c: imx290: Fix max gain value +Subject: [PATCH 655/784] media: i2c: imx290: Fix max gain value Upstream commit 6d7a87f2d3a6. @@ -247741,7 +247698,7 @@ index 8c38119b9208..d21b4fd2ff16 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:17 +0300 -Subject: [PATCH 657/717] media: i2c: imx290: Split control initialization to +Subject: [PATCH 656/784] media: i2c: imx290: Split control initialization to separate function Upstream commit 72c87b7ad560. @@ -247897,7 +247854,7 @@ index d21b4fd2ff16..98ffafd631fa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:18 +0300 -Subject: [PATCH 658/717] media: i2c: imx290: Implement HBLANK and VBLANK +Subject: [PATCH 657/784] media: i2c: imx290: Implement HBLANK and VBLANK controls Upstream commit 0c3b56c905e3. @@ -247986,7 +247943,7 @@ index 98ffafd631fa..d3acf5519789 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:19 +0300 -Subject: [PATCH 659/717] media: i2c: imx290: Create controls for fwnode +Subject: [PATCH 658/784] media: i2c: imx290: Create controls for fwnode properties Upstream commit 4c9c93cf8657. @@ -248039,7 +247996,7 @@ index d3acf5519789..d2dfda8de6a8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:20 +0300 -Subject: [PATCH 660/717] media: i2c: imx290: Move registers with fixed value +Subject: [PATCH 659/784] media: i2c: imx290: Move registers with fixed value to init array Upstream commit 0b274ef2208d. @@ -248114,7 +248071,7 @@ index d2dfda8de6a8..ba46d321a83a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:21 +0300 -Subject: [PATCH 661/717] media: i2c: imx290: Factor out format retrieval to +Subject: [PATCH 660/784] media: i2c: imx290: Factor out format retrieval to separate function Upstream commit b25537efeea9 @@ -248184,7 +248141,7 @@ index ba46d321a83a..0af5ad8a824d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:22 +0300 -Subject: [PATCH 662/717] media: i2c: imx290: Add crop selection targets +Subject: [PATCH 661/784] media: i2c: imx290: Add crop selection targets support Upstream commit b4ab57b07c5b. @@ -248326,7 +248283,7 @@ index 0af5ad8a824d..0f74a89c9196 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:23 +0300 -Subject: [PATCH 663/717] media: i2c: imx290: Replace GAIN control with +Subject: [PATCH 662/784] media: i2c: imx290: Replace GAIN control with ANALOGUE_GAIN Upstream commit 3dd10515a1d9 @@ -248370,7 +248327,7 @@ index 0f74a89c9196..218ded13fd80 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:38 +0100 -Subject: [PATCH 664/717] media: i2c: imx290: Group functions in sections +Subject: [PATCH 663/784] media: i2c: imx290: Group functions in sections Upstream commit cb7e1c8dbe60 @@ -249177,7 +249134,7 @@ index 218ded13fd80..ca2fa57c28fe 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:39 +0100 -Subject: [PATCH 665/717] media: i2c: imx290: Factor out subdev init and +Subject: [PATCH 664/784] media: i2c: imx290: Factor out subdev init and cleanup to functions Upstream commit dfb704da8300. @@ -249418,7 +249375,7 @@ index ca2fa57c28fe..5529bd39238f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:40 +0100 -Subject: [PATCH 666/717] media: i2c: imx290: Factor out control update code to +Subject: [PATCH 665/784] media: i2c: imx290: Factor out control update code to a function Upstream commit a7941da37c43 @@ -249502,7 +249459,7 @@ index 5529bd39238f..991e7285c40c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:41 +0100 -Subject: [PATCH 667/717] media: i2c: imx290: Access link_freq_index directly +Subject: [PATCH 666/784] media: i2c: imx290: Access link_freq_index directly Upstream commit 70bbf56aa82c @@ -249557,7 +249514,7 @@ index 991e7285c40c..4ad6eab4f2e2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:42 +0100 -Subject: [PATCH 668/717] media: i2c: imx290: Pass format and mode to +Subject: [PATCH 667/784] media: i2c: imx290: Pass format and mode to imx290_calc_pixel_rate() Upstream commit 31b54a422b3f @@ -249646,7 +249603,7 @@ index 4ad6eab4f2e2..25671ded7c2a 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:43 +0100 -Subject: [PATCH 669/717] media: i2c: imx290: Compute pixel rate and blanking +Subject: [PATCH 668/784] media: i2c: imx290: Compute pixel rate and blanking in one place Upstream commit 693b5cb598cc @@ -249783,7 +249740,7 @@ index 25671ded7c2a..d3279d88f253 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:44 +0100 -Subject: [PATCH 670/717] media: i2c: imx290: Factor out black level setting to +Subject: [PATCH 669/784] media: i2c: imx290: Factor out black level setting to a function Upstream commit ee4ce8936693 @@ -249920,7 +249877,7 @@ index d3279d88f253..e7043e9a8fd5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:45 +0100 -Subject: [PATCH 671/717] media: i2c: imx290: Factor out DT parsing to separate +Subject: [PATCH 670/784] media: i2c: imx290: Factor out DT parsing to separate function Upstream commit 6b69c52277ed @@ -250128,7 +250085,7 @@ index e7043e9a8fd5..530da5b03e61 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:46 +0100 -Subject: [PATCH 672/717] media: i2c: imx290: Use dev_err_probe() +Subject: [PATCH 671/784] media: i2c: imx290: Use dev_err_probe() Upstream commit 63127235bebd @@ -250190,7 +250147,7 @@ index 530da5b03e61..51f430ca3652 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:47 +0100 -Subject: [PATCH 673/717] media: i2c: imx290: Factor out clock initialization +Subject: [PATCH 672/784] media: i2c: imx290: Factor out clock initialization to separate function Upstream commit e5d363ca82b9 @@ -250309,7 +250266,7 @@ index 51f430ca3652..c1d18ec51e41 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 17 Oct 2022 12:44:27 +0200 -Subject: [PATCH 674/717] media: i2c: imx290: Use V4L2 subdev active state +Subject: [PATCH 673/784] media: i2c: imx290: Use V4L2 subdev active state Upstream commit a2514b9a634a @@ -250713,7 +250670,7 @@ index c1d18ec51e41..1aa5ab0c57ce 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 17 Oct 2022 12:44:27 +0200 -Subject: [PATCH 675/717] media: i2c: imx290: Rename, extend and expand usage +Subject: [PATCH 674/784] media: i2c: imx290: Rename, extend and expand usage of imx290_pixfmt Upstream commit 10591fe63691 @@ -250977,7 +250934,7 @@ index 1aa5ab0c57ce..7356279822e8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:50 +0100 -Subject: [PATCH 676/717] media: i2c: imx290: Use runtime PM autosuspend +Subject: [PATCH 675/784] media: i2c: imx290: Use runtime PM autosuspend Upstream commit a8c3e0c1bf1e @@ -251115,7 +251072,7 @@ index 7356279822e8..324d30ed5617 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:51 +0100 -Subject: [PATCH 677/717] media: i2c: imx290: Initialize runtime PM before +Subject: [PATCH 676/784] media: i2c: imx290: Initialize runtime PM before subdev Upstream commit 02852c01f654 @@ -251293,7 +251250,7 @@ index 324d30ed5617..4185835f065d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:52 +0100 -Subject: [PATCH 678/717] media: i2c: imx290: Configure data lanes at start +Subject: [PATCH 677/784] media: i2c: imx290: Configure data lanes at start time Upstream commit 7d399658f7c6 @@ -251340,7 +251297,7 @@ index 4185835f065d..34278d098218 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:53 +0100 -Subject: [PATCH 679/717] media: i2c: imx290: Simplify imx290_set_data_lanes() +Subject: [PATCH 678/784] media: i2c: imx290: Simplify imx290_set_data_lanes() Upstream commit 76c001287f6a @@ -251405,7 +251362,7 @@ index 34278d098218..bb8713813e29 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 16 Jan 2023 15:44:54 +0100 -Subject: [PATCH 680/717] media: i2c: imx290: Handle error from +Subject: [PATCH 679/784] media: i2c: imx290: Handle error from imx290_set_data_lanes() Upstream commit 05ef7ec49d6b @@ -251445,7 +251402,7 @@ index bb8713813e29..49d6c8bdec41 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 28 Mar 2023 14:49:41 +0100 -Subject: [PATCH 681/717] dtbindings: Reset imx290.txt to upstream +Subject: [PATCH 680/784] dtbindings: Reset imx290.txt to upstream Signed-off-by: Dave Stevenson --- @@ -251481,7 +251438,7 @@ index 294e63650d9e..a3cc21410f7c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 16 Oct 2022 09:15:04 +0300 -Subject: [PATCH 682/717] media: dt-bindings: Convert imx290.txt to YAML +Subject: [PATCH 681/784] media: dt-bindings: Convert imx290.txt to YAML Upstream commit a96dfea1df25 @@ -251704,7 +251661,7 @@ index 000000000000..21377daae026 + }; +... diff --git a/MAINTAINERS b/MAINTAINERS -index 548ca27e4565..a1d8dedaf646 100644 +index ed749a95dd87..d7626232ae8a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19255,7 +19255,7 @@ M: Manivannan Sadhasivam @@ -251723,7 +251680,7 @@ index 548ca27e4565..a1d8dedaf646 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:49 +0200 -Subject: [PATCH 683/717] media: dt-bindings: media: i2c: Add mono version to +Subject: [PATCH 682/784] media: dt-bindings: media: i2c: Add mono version to IMX290 bindings Should be upstream commit f0c720ff2d21 @@ -251798,7 +251755,7 @@ index 21377daae026..cafb6e1a7150 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Fri, 17 Feb 2023 10:52:20 +0100 -Subject: [PATCH 684/717] media: dt-bindings: media: i2c: Add imx327 version to +Subject: [PATCH 683/784] media: dt-bindings: media: i2c: Add imx327 version to IMX327 bindings Should be upstream commit 783ecfe5556a @@ -251833,7 +251790,7 @@ index cafb6e1a7150..a531badc16c9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Fri, 10 Feb 2023 00:12:05 +0200 -Subject: [PATCH 685/717] media: i2c: imx290: Make use of get_unaligned_le24(), +Subject: [PATCH 684/784] media: i2c: imx290: Make use of get_unaligned_le24(), put_unaligned_le24() Should be upstream commit 5d129c4539c3 @@ -251891,7 +251848,7 @@ index 49d6c8bdec41..330098a0772d 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Fri, 10 Feb 2023 00:09:54 +0200 -Subject: [PATCH 686/717] media: i2c: imx290: Use device_property_read_u32() +Subject: [PATCH 685/784] media: i2c: imx290: Use device_property_read_u32() directly Should be upstream commit 971458482809 @@ -251928,7 +251885,7 @@ index 330098a0772d..f51f21e73bdc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:50 +0200 -Subject: [PATCH 687/717] media: i2c: imx290: Add support for the mono sensor +Subject: [PATCH 686/784] media: i2c: imx290: Add support for the mono sensor variant Should be upstream commit 9bf52c7136d1 @@ -252150,7 +252107,7 @@ index f51f21e73bdc..a6461f1211d8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:51 +0200 -Subject: [PATCH 688/717] media: i2c: imx290: Match kernel coding style on +Subject: [PATCH 687/784] media: i2c: imx290: Match kernel coding style on whitespace Should be upstream commit 76d1bd4f0f45 @@ -252222,7 +252179,7 @@ index a6461f1211d8..7218c18662ed 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:52 +0200 -Subject: [PATCH 689/717] media: i2c: imx290: Set the colorspace fields in the +Subject: [PATCH 688/784] media: i2c: imx290: Set the colorspace fields in the format Should be upstream commit 7843b2eb081b @@ -252260,7 +252217,7 @@ index 7218c18662ed..987016f03dc0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:53 +0200 -Subject: [PATCH 690/717] media: i2c: imx290: Add V4L2_SUBDEV_FL_HAS_EVENTS and +Subject: [PATCH 689/784] media: i2c: imx290: Add V4L2_SUBDEV_FL_HAS_EVENTS and subscribe hooks Should be upstream commit 5f9dee39ab55 @@ -252332,7 +252289,7 @@ index 987016f03dc0..1a76188ef1aa 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:54 +0200 -Subject: [PATCH 691/717] media: i2c: imx290: Fix the pixel rate at 148.5Mpix/s +Subject: [PATCH 690/784] media: i2c: imx290: Fix the pixel rate at 148.5Mpix/s Should be upstream commit 4381df0c756f @@ -252427,7 +252384,7 @@ index 1a76188ef1aa..3036a4bb3b52 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:55 +0200 -Subject: [PATCH 692/717] media: i2c: imx290: Support 60fps in 2 lane operation +Subject: [PATCH 691/784] media: i2c: imx290: Support 60fps in 2 lane operation Should be upstream commit 7d4f22ba99cc @@ -252504,7 +252461,7 @@ index 3036a4bb3b52..3b4e782c1414 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:56 +0200 -Subject: [PATCH 693/717] media: i2c: imx290: Use CSI timings as per datasheet +Subject: [PATCH 692/784] media: i2c: imx290: Use CSI timings as per datasheet Should be upstream commit 34819ba0b450 @@ -252703,7 +252660,7 @@ index 3b4e782c1414..295a906b4ac2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:57 +0200 -Subject: [PATCH 694/717] media: i2c: imx290: Convert V4L2_CID_HBLANK to +Subject: [PATCH 693/784] media: i2c: imx290: Convert V4L2_CID_HBLANK to read/write Should be upstream commit 8cab2bd86307 @@ -252843,7 +252800,7 @@ index 295a906b4ac2..5725dfa2bd33 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:58 +0200 -Subject: [PATCH 695/717] media: i2c: imx290: Convert V4L2_CID_VBLANK to +Subject: [PATCH 694/784] media: i2c: imx290: Convert V4L2_CID_VBLANK to read/write Should be upstream commit 97792a11021b @@ -253026,7 +252983,7 @@ index 5725dfa2bd33..193d137adbfc 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:29:59 +0200 -Subject: [PATCH 696/717] media: i2c: imx290: VMAX is mode dependent +Subject: [PATCH 695/784] media: i2c: imx290: VMAX is mode dependent Should be upstream commit b3aa351ea88a @@ -253114,7 +253071,7 @@ index 193d137adbfc..e1595c4e6189 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:30:00 +0200 -Subject: [PATCH 697/717] media: i2c: imx290: Remove duplicated write to +Subject: [PATCH 696/784] media: i2c: imx290: Remove duplicated write to IMX290_CTRL_07 Should be upstream commit 454ce4c6d77b @@ -253153,7 +253110,7 @@ index e1595c4e6189..af503ac98359 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:30:01 +0200 -Subject: [PATCH 698/717] media: i2c: imx290: Add support for 74.25MHz external +Subject: [PATCH 697/784] media: i2c: imx290: Add support for 74.25MHz external clock Should be upstream commit b8b86dfe1aee @@ -253433,7 +253390,7 @@ index af503ac98359..02186cf69745 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:30:02 +0200 -Subject: [PATCH 699/717] media: i2c: imx290: Add support for H & V Flips +Subject: [PATCH 698/784] media: i2c: imx290: Add support for H & V Flips Should be upstream commit 42765b80f8c6 @@ -253615,7 +253572,7 @@ index 02186cf69745..0ed8046bacc5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 16 Feb 2023 00:30:03 +0200 -Subject: [PATCH 700/717] media: i2c: imx290: Add the error code to logs in +Subject: [PATCH 699/784] media: i2c: imx290: Add the error code to logs in start_streaming Should be upstream commit 5fcaecd6b5aa @@ -253693,7 +253650,7 @@ index 0ed8046bacc5..4b57225d177c 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Fri, 17 Feb 2023 10:52:21 +0100 -Subject: [PATCH 701/717] media: i2c: imx290: Add support for imx327 variant +Subject: [PATCH 700/784] media: i2c: imx290: Add support for imx327 variant Should be upstream commit 3c3f66b8125a @@ -253821,7 +253778,7 @@ index 4b57225d177c..84a82fcb5463 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 28 Mar 2023 15:16:57 +0100 -Subject: [PATCH 702/717] dtoverlays: Update compatible strings for +Subject: [PATCH 701/784] dtoverlays: Update compatible strings for imx290/327/462 Now upstream have accepted patches adding a mono version of @@ -253925,7 +253882,7 @@ index e2b54a7a9f98..610bcabbe24f 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Mar 2023 09:57:56 +0100 -Subject: [PATCH 703/717] Revert "rpisense-fb: Flush any deferred updates on +Subject: [PATCH 702/784] Revert "rpisense-fb: Flush any deferred updates on release" This reverts commit b70f2a8883802e33e1aeb1a25f570c69976ca6fb. @@ -253965,7 +253922,7 @@ index 674787adb261..e5a37d216db0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 29 Mar 2023 09:49:36 +0100 -Subject: [PATCH 704/717] fbdev: Don't cancel deferred work if pagelist empty +Subject: [PATCH 703/784] fbdev: Don't cancel deferred work if pagelist empty Since [1], the fbdev deferred IO framework is careful to cancel pending updates on close to prevent dirty pages being accessed after @@ -254007,7 +253964,7 @@ index a3cf1f764f29..85da3a21bab2 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 30 Mar 2023 11:31:55 +0100 -Subject: [PATCH 705/717] configs: Regenerate defconfigs +Subject: [PATCH 704/784] configs: Regenerate defconfigs Upstream change [1] has deleted the NET_CLS_TCINDEX Kconfig symbol. Regenerate our defconfigs without it. @@ -254090,7 +254047,7 @@ index 35eece2cf4a1..1c569b2aa543 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dom Cobley Date: Thu, 30 Mar 2023 11:24:42 +0100 -Subject: [PATCH 706/717] configs: Disable LRU_GEN_ENABLED on 32-bit kernels +Subject: [PATCH 705/784] configs: Disable LRU_GEN_ENABLED on 32-bit kernels We seem to be getting increased OOM failures with MGLRU enabled on 32-bit kernels. @@ -254148,7 +254105,7 @@ index 7ae9985f01ea..7f7faa4ac77b 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Fri, 10 Mar 2023 14:21:42 +0000 -Subject: [PATCH 707/717] usb: xhci: drop and add the endpoint context in +Subject: [PATCH 706/784] usb: xhci: drop and add the endpoint context in xhci_fixup_endpoint() Setting both the Drop and Add bits on the input context prevents the @@ -254165,10 +254122,10 @@ Signed-off-by: Jonathan Bell 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 3e7ca9058df3..b9f51c3c97c5 100644 +index cc5059bfb72e..d46ab02c7885 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1726,7 +1726,7 @@ static void xhci_fixup_endpoint(struct usb_hcd *hcd, struct usb_device *udev, +@@ -1730,7 +1730,7 @@ static void xhci_fixup_endpoint(struct usb_hcd *hcd, struct usb_device *udev, return; } ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index); @@ -254184,7 +254141,7 @@ index 3e7ca9058df3..b9f51c3c97c5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 14:56:09 +0100 -Subject: [PATCH 708/717] drivers: media: imx708: Increase usable link +Subject: [PATCH 707/784] drivers: media: imx708: Increase usable link frequencies Add support for three different usable link frequencies (default 450Mhz, @@ -254414,7 +254371,7 @@ index 7f5f07e4e16e..7b6983c31cd5 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 14:56:49 +0100 -Subject: [PATCH 709/717] dtoverlays: Add link-frequency parameter for the Sony +Subject: [PATCH 708/784] dtoverlays: Add link-frequency parameter for the Sony IMX708 sensor Add a parameter to change the sensor device CSI-2 link frequency to @@ -254458,7 +254415,7 @@ index 9107e985c2a8..6efbe0943211 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 10:07:26 +0100 -Subject: [PATCH 710/717] drivers: media: imx708: Remove unused control fields +Subject: [PATCH 709/784] drivers: media: imx708: Remove unused control fields Remove unused and redundant control fields from the state structure. @@ -254513,7 +254470,7 @@ index 7b6983c31cd5..6811e80307b9 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 10:33:51 +0100 -Subject: [PATCH 711/717] drivers: media: imx708: Tidy-ups to address upstream +Subject: [PATCH 710/784] drivers: media: imx708: Tidy-ups to address upstream review comments This commit addresses vaious tidy-ups requesed for upstreaming the @@ -254710,7 +254667,7 @@ index 6811e80307b9..f5b8cc8e0840 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 11:52:25 +0100 -Subject: [PATCH 712/717] dt-bindings: media: i2c: Replace IMX708 sensor +Subject: [PATCH 711/784] dt-bindings: media: i2c: Replace IMX708 sensor binding documentation file Replace the existing imx708.yaml file with sony,imx708.yaml that follows @@ -254985,7 +254942,7 @@ index 000000000000..286aad2e8c69 + }; +... diff --git a/MAINTAINERS b/MAINTAINERS -index a1d8dedaf646..fa3776d320f8 100644 +index d7626232ae8a..5c3e9772fc7b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19330,7 +19330,7 @@ M: Raspberry Pi Kernel Maintenance @@ -255004,7 +254961,7 @@ index a1d8dedaf646..fa3776d320f8 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 15:08:10 +0100 -Subject: [PATCH 713/717] dtoverlays: Follow the standard devicetree labels for +Subject: [PATCH 712/784] dtoverlays: Follow the standard devicetree labels for IMX708 Switch the system clock name from "xclk" to "inclk". @@ -255044,7 +255001,7 @@ index 1381caf22668..1558458d58ec 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 15:05:33 +0100 -Subject: [PATCH 714/717] drivers: media: imx708: Follow the standard +Subject: [PATCH 713/784] drivers: media: imx708: Follow the standard devicetree labels Switch the system clock name from "xclk" to "inclk". @@ -255146,7 +255103,7 @@ index f5b8cc8e0840..39d46be49172 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 31 Mar 2023 12:02:09 +0100 -Subject: [PATCH 715/717] drives: media: imx708: Put HFLIP and VFLIP controls +Subject: [PATCH 714/784] drives: media: imx708: Put HFLIP and VFLIP controls in a cluster Create a cluster for the HVLIP and VFLIP controls so they are treated @@ -255193,7 +255150,7 @@ index 39d46be49172..2453923a4ae3 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 28 Mar 2023 13:43:43 +0100 -Subject: [PATCH 716/717] media: bcm2835-unicam: Start and stop media_pipeline +Subject: [PATCH 715/784] media: bcm2835-unicam: Start and stop media_pipeline with same node media_pipeline_start and media_pipeline_stop now validate that @@ -255242,7 +255199,7 @@ index 0451affbffd9..51e5b0e275b0 100644 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Sat, 1 Apr 2023 11:50:07 +0100 -Subject: [PATCH 717/717] fixup! gpio-fsm: Avoid truncation of delay jiffies +Subject: [PATCH 716/784] fixup! gpio-fsm: Avoid truncation of delay jiffies The kernel's time unit of jiffies should be stored as an unsigned long value. Storing it as an unsigned int, as gpio-fsm did, leads to @@ -255270,3 +255227,7064 @@ index 3a348f1c6514..b708953c59f8 100644 -- 2.39.1 + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 12 Apr 2023 17:28:11 +0100 +Subject: [PATCH 717/784] staging: bcm2835-codec: Add missing alignment for + V4L2_PIX_FMT_RGBA32 + +The patch adding image encode (JPEG) to the driver missed adding +the alignment constraint for V4L2_PIX_FMT_RGBA32, which meant +it ended up giving a stride and size of 0. + +Signed-off-by: Dave Stevenson +--- + .../staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 2 +- + 1 file changed, 1 insertion(+), 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 63f22cf136c2..b38b5fff3c28 100644 +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -263,7 +263,7 @@ static const struct bcm2835_codec_fmt supported_formats[] = { + }, { + .fourcc = V4L2_PIX_FMT_RGBA32, + .depth = 32, +- .bytesperline_align = { 32, 32, 32, 32 }, ++ .bytesperline_align = { 32, 32, 32, 32, 32 }, + .flags = 0, + .mmal_fmt = MMAL_ENCODING_RGBA, + .size_multiplier_x2 = 2, +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 12 Apr 2023 16:11:40 +0100 +Subject: [PATCH 718/784] ARM: dts: bcm27xx: Add i2c_arm/vc and friends + +Since there is now a dedicated dts file for the rev1 Model B (the only +Pi to drive the primary camera with i2c1), move the creation of the +i2c_arm, i2c_vc and i2c labels, aliases and overrides into the base dts +files. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 6 ++++++ + arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts | 13 +++++++++++++ + arch/arm/boot/dts/bcm2708-rpi-b.dts | 6 ++++++ + arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 6 ++++++ + arch/arm/boot/dts/bcm2708-rpi-zero-w.dts | 3 +++ + arch/arm/boot/dts/bcm2708-rpi-zero.dts | 3 +++ + arch/arm/boot/dts/bcm2709-rpi.dtsi | 3 +++ + arch/arm/boot/dts/bcm270x-rpi.dtsi | 7 +++++++ + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 3 +++ + 9 files changed, 50 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts +index 9839960c753f..be1293368c84 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts +@@ -186,6 +186,12 @@ &cam1_reg { + cam0_reg: &cam_dummy_reg { + }; + ++i2c_arm: &i2c1 { ++}; ++ ++i2c_vc: &i2c0 { ++}; ++ + / { + __overrides__ { + audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; +diff --git a/arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts b/arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts +index 3335f6a0f0b9..84bf7c0b5c79 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts +@@ -197,6 +197,12 @@ &cam1_reg { + cam0_reg: &cam_dummy_reg { + }; + ++i2c_arm: &i2c0 { ++}; ++ ++i2c_vc: &i2c1 { ++}; ++ + / { + __overrides__ { + audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; +@@ -204,5 +210,12 @@ __overrides__ { + act_led_gpio = <&act_led>,"gpios:4"; + act_led_activelow = <&act_led>,"gpios:8"; + act_led_trigger = <&act_led>,"linux,default-trigger"; ++ ++ i2c = <&i2c0>,"status"; ++ i2c_arm = <&i2c0>,"status"; ++ i2c_vc = <&i2c1>,"status"; ++ i2c_baudrate = <&i2c0>,"clock-frequency:0"; ++ i2c_arm_baudrate = <&i2c0>,"clock-frequency:0"; ++ i2c_vc_baudrate = <&i2c1>,"clock-frequency:0"; + }; + }; +diff --git a/arch/arm/boot/dts/bcm2708-rpi-b.dts b/arch/arm/boot/dts/bcm2708-rpi-b.dts +index 634f0f6e6b49..6209c59f1fd4 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-b.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts +@@ -179,6 +179,12 @@ &cam1_reg { + cam0_reg: &cam_dummy_reg { + }; + ++i2c_arm: &i2c1 { ++}; ++ ++i2c_vc: &i2c0 { ++}; ++ + / { + __overrides__ { + audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0'}"; +diff --git a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi +index ec4b154e4014..41f2635893bb 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi +@@ -9,6 +9,12 @@ act_led: led-act { + }; + }; + ++i2c_arm: &i2c1 { ++}; ++ ++i2c_vc: &i2c0 { ++}; ++ + / { + __overrides__ { + act_led_gpio = <&act_led>,"gpios:4"; +diff --git a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts +index 8ce57a10611a..0da68c450ac0 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts +@@ -235,6 +235,9 @@ &cam1_reg { + cam0_reg: &cam_dummy_reg { + }; + ++i2c_arm: &i2c1 {}; ++i2c_vc: &i2c0 {}; ++ + / { + __overrides__ { + audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; +diff --git a/arch/arm/boot/dts/bcm2708-rpi-zero.dts b/arch/arm/boot/dts/bcm2708-rpi-zero.dts +index 7c6bbe9ca55b..eee17bf7757b 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-zero.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-zero.dts +@@ -176,6 +176,9 @@ &cam1_reg { + cam0_reg: &cam_dummy_reg { + }; + ++i2c_arm: &i2c1 {}; ++i2c_vc: &i2c0 {}; ++ + / { + __overrides__ { + audio = <&chosen>,"bootargs{on='snd_bcm2835.enable_hdmi=1',off='snd_bcm2835.enable_hdmi=0'}"; +diff --git a/arch/arm/boot/dts/bcm2709-rpi.dtsi b/arch/arm/boot/dts/bcm2709-rpi.dtsi +index babfa41cd9f7..7335e7fbcb71 100644 +--- a/arch/arm/boot/dts/bcm2709-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2709-rpi.dtsi +@@ -3,3 +3,6 @@ + &vchiq { + compatible = "brcm,bcm2836-vchiq", "brcm,bcm2835-vchiq"; + }; ++ ++i2c_arm: &i2c1 {}; ++i2c_vc: &i2c0 {}; +diff --git a/arch/arm/boot/dts/bcm270x-rpi.dtsi b/arch/arm/boot/dts/bcm270x-rpi.dtsi +index 1401d7b261f8..fafd81a3bb42 100644 +--- a/arch/arm/boot/dts/bcm270x-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm270x-rpi.dtsi +@@ -21,6 +21,7 @@ aliases { + i2c0 = &i2c0; + i2c1 = &i2c1; + i2c10 = &i2c_csi_dsi; ++ i2c = &i2c_arm; + spi0 = &spi0; + spi1 = &spi1; + spi2 = &spi2; +@@ -79,8 +80,14 @@ __overrides__ { + spi = <&spi0>,"status"; + i2c0 = <&i2c0if>,"status",<&i2c0mux>,"status"; + i2c1 = <&i2c1>,"status"; ++ i2c = <&i2c1>,"status"; ++ i2c_arm = <&i2c1>,"status"; ++ i2c_vc = <&i2c0if>,"status",<&i2c0mux>,"status"; + i2c0_baudrate = <&i2c0if>,"clock-frequency:0"; + i2c1_baudrate = <&i2c1>,"clock-frequency:0"; ++ i2c_baudrate = <&i2c1>,"clock-frequency:0"; ++ i2c_arm_baudrate = <&i2c1>,"clock-frequency:0"; ++ i2c_vc_baudrate = <&i2c0if>,"clock-frequency:0"; + + watchdog = <&watchdog>,"status"; + random = <&random>,"status"; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index f342e8547a8e..c1ad4791f6e2 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -267,6 +267,9 @@ &i2c0if { + interrupts = ; + }; + ++i2c_arm: &i2c1 {}; ++i2c_vc: &i2c0 {}; ++ + /delete-node/ &v3d; + + / { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MilkyDeveloper <48262994+MilkyDeveloper@users.noreply.github.com> +Date: Thu, 13 Apr 2023 03:51:27 -0500 +Subject: [PATCH 719/784] configs: CONFIG_USB_F_*=m CONFIG_USB_CONFIGFS_*=m + (Complete USB Gadget Support for bcmrpi3_defconfig) (#5427) + +Complete USB Gadget Support to bcmrpi3_defconfig + +Cross-referenced with bcm2711_defconfig to include the same USB gadgets. Adds support for the Pi 3 and derivative devices (BCM2837) such as the Pi Zero 2 W. + +See: https://github.com/raspberrypi/linux/pull/5427 +--- + arch/arm64/configs/bcmrpi3_defconfig | 33 ++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 1c569b2aa543..e6e7d42cf1b6 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -1187,6 +1187,39 @@ CONFIG_USB_UEAGLEATM=m + CONFIG_USB_XUSBATM=m + CONFIG_NOP_USB_XCEIV=y + CONFIG_USB_GADGET=y ++CONFIG_U_SERIAL_CONSOLE=y ++CONFIG_USB_CONFIGFS=m ++CONFIG_USB_CONFIGFS_SERIAL=y ++CONFIG_USB_CONFIGFS_ACM=y ++CONFIG_USB_CONFIGFS_OBEX=y ++CONFIG_USB_CONFIGFS_NCM=y ++CONFIG_USB_CONFIGFS_ECM=y ++CONFIG_USB_CONFIGFS_ECM_SUBSET=y ++CONFIG_USB_CONFIGFS_RNDIS=y ++CONFIG_USB_CONFIGFS_EEM=y ++CONFIG_USB_CONFIGFS_MASS_STORAGE=y ++CONFIG_USB_CONFIGFS_F_LB_SS=y ++CONFIG_USB_CONFIGFS_F_FS=y ++CONFIG_USB_CONFIGFS_F_UAC1=y ++CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y ++CONFIG_USB_CONFIGFS_F_UAC2=y ++CONFIG_USB_CONFIGFS_F_MIDI=y ++CONFIG_USB_CONFIGFS_F_HID=y ++CONFIG_USB_CONFIGFS_F_UVC=y ++CONFIG_USB_CONFIGFS_F_PRINTER=y ++CONFIG_USB_ZERO=m ++CONFIG_USB_AUDIO=m ++CONFIG_USB_ETH=m ++CONFIG_USB_GADGETFS=m ++CONFIG_USB_MASS_STORAGE=m ++CONFIG_USB_G_SERIAL=m ++CONFIG_USB_MIDI_GADGET=m ++CONFIG_USB_G_PRINTER=m ++CONFIG_USB_CDC_COMPOSITE=m ++CONFIG_USB_G_ACM_MS=m ++CONFIG_USB_G_MULTI=m ++CONFIG_USB_G_HID=m ++CONFIG_USB_G_WEBCAM=m + CONFIG_MMC=y + CONFIG_MMC_BLOCK_MINORS=32 + CONFIG_MMC_BCM2835_MMC=y +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Clarke X <1014930533@qq.com> +Date: Sat, 8 Apr 2023 11:29:16 +0800 +Subject: [PATCH 720/784] overlays: Add pcf857x support + +Add pcf857x overlay with related documents. + +Signed-off-by: Clarke X <1014930533@qq.com> +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 11 +++++++ + .../arm/boot/dts/overlays/pcf857x-overlay.dts | 32 +++++++++++++++++++ + 3 files changed, 44 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/pcf857x-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 0fab3056a939..4fe34bebad37 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -167,6 +167,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + ov9281.dtbo \ + papirus.dtbo \ + pca953x.dtbo \ ++ pcf857x.dtbo \ + pcie-32bit-dma.dtbo \ + pibell.dtbo \ + pifacedigital.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 875b58ab1723..abf022db760d 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -3065,6 +3065,17 @@ Params: addr I2C address of expander. Default 0x20. + xra1202 Select the Exar XRA1202 (8 bit) + + ++Name: pcf857x ++Info: NXP PCF857x family of I2C GPIO expanders. ++Load: dtoverlay=pcf857x,= ++Params: addr I2C address of expander. Default ++ depends on model selected. ++ pcf8574 Select the NXP PCF8574 (8 bit) ++ pcf8574a Select the NXP PCF8574A (8 bit) ++ pcf8575 Select the NXP PCF8575 (16 bit) ++ pca8574 Select the NXP PCA8574 (8 bit) ++ ++ + Name: pcie-32bit-dma + Info: Force PCIe config to support 32bit DMA addresses at the expense of + having to bounce buffers. +diff --git a/arch/arm/boot/dts/overlays/pcf857x-overlay.dts b/arch/arm/boot/dts/overlays/pcf857x-overlay.dts +new file mode 100644 +index 000000000000..68943e1c3320 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pcf857x-overlay.dts +@@ -0,0 +1,32 @@ ++// Definitions for PCF857X GPIO Extender from NXP ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&i2c_arm>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ pcf857x: pcf857x@0 { ++ compatible = ""; ++ reg = <0x00>; ++ gpio-controller; ++ #gpio-cells = <2>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ pcf8574 = <&pcf857x>,"compatible=nxp,pcf8574", <&pcf857x>,"reg:0=0x20"; ++ pcf8574a = <&pcf857x>,"compatible=nxp,pcf8574a", <&pcf857x>,"reg:0=0x38"; ++ pcf8575 = <&pcf857x>,"compatible=nxp,pcf8575", <&pcf857x>,"reg:0=0x20"; ++ pca8574 = <&pcf857x>,"compatible=nxp,pca8574", <&pcf857x>,"reg:0=0x20"; ++ addr = <&pcf857x>,"reg:0"; ++ }; ++}; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Clarke X <1014930533@qq.com> +Date: Sat, 8 Apr 2023 09:56:13 +0800 +Subject: [PATCH 721/784] overlays: Add gpio-charger support + +Add gpio-charger overlay for charger via gpio. + +Signed-off-by: Clarke X <1014930533@qq.com> +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 14 +++++++ + .../dts/overlays/gpio-charger-overlay.dts | 42 +++++++++++++++++++ + 3 files changed, 57 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/gpio-charger-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 4fe34bebad37..19cad78dcc6f 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -68,6 +68,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + ghost-amp.dtbo \ + goodix.dtbo \ + googlevoicehat-soundcard.dtbo \ ++ gpio-charger.dtbo \ + gpio-fan.dtbo \ + gpio-hog.dtbo \ + gpio-ir.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index abf022db760d..7bfe97816339 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1248,6 +1248,20 @@ Load: dtoverlay=googlevoicehat-soundcard + Params: + + ++Name: gpio-charger ++Info: This is a generic overlay for detecting charger with GPIO. ++Load: dtoverlay=gpio-charger,= ++Params: gpio GPIO pin to trigger on (default 4) ++ active_low When this is 1 (active low), a falling ++ edge generates a charging event and a ++ rising edge generates a discharging event. ++ When this is 0 (active high), this is ++ reversed. The default is 0 (active high) ++ gpio_pull Desired pull-up/down state (off, down, up) ++ Default is "down". ++ type Set a charger type for the pin. (Default: mains) ++ ++ + Name: gpio-fan + Info: Configure a GPIO pin to control a cooling fan. + Load: dtoverlay=gpio-fan,= +diff --git a/arch/arm/boot/dts/overlays/gpio-charger-overlay.dts b/arch/arm/boot/dts/overlays/gpio-charger-overlay.dts +new file mode 100644 +index 000000000000..2868aa06dd6d +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/gpio-charger-overlay.dts +@@ -0,0 +1,42 @@ ++// Definitions for gpio-charger module ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ // Configure the gpio pin controller ++ target = <&gpio>; ++ __overlay__ { ++ pin_state: charger_pins@0 { ++ brcm,pins = <4>; // gpio number ++ brcm,function = <0>; // 0 = input, 1 = output ++ brcm,pull = <1>; // 0 = none, 1 = pull down, 2 = pull up ++ }; ++ }; ++ }; ++ fragment@1 { ++ target-path = "/"; ++ __overlay__ { ++ charger: charger@0 { ++ compatible = "gpio-charger"; ++ pinctrl-0 = <&pin_state>; ++ status = "okay"; ++ gpios = <&gpio 4 0>; ++ charger-type = "mains"; ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ gpio = <&charger>,"reg:0", ++ <&charger>,"gpios:4", ++ <&pin_state>,"reg:0", ++ <&pin_state>,"brcm,pins:0"; ++ type = <&charger>,"charger-type"; ++ gpio_pull = <&pin_state>,"brcm,pull:0"; ++ active_low = <&charger>,"gpios:8"; ++ }; ++ ++}; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Clarke X <1014930533@qq.com> +Date: Sat, 8 Apr 2023 09:43:02 +0800 +Subject: [PATCH 722/784] configs: Add CONFIG_CHARGER_GPIO=m + +Add CHARGER_GPIO module into default kernel config + +Signed-off-by: Clarke X <1014930533@qq.com> +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 2c09f88e7c84..6b7e7a7f522d 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -724,6 +724,7 @@ CONFIG_POWER_RESET_GPIO=y + CONFIG_RPI_POE_POWER=m + CONFIG_BATTERY_DS2760=m + CONFIG_BATTERY_MAX17040=m ++CONFIG_CHARGER_GPIO=m + CONFIG_BATTERY_GAUGE_LTC2941=m + CONFIG_SENSORS_AHT10=m + CONFIG_SENSORS_DS1621=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index eb11b4f12e4f..24303b2cc969 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -741,6 +741,7 @@ CONFIG_POWER_RESET_GPIO=y + CONFIG_RPI_POE_POWER=m + CONFIG_BATTERY_DS2760=m + CONFIG_BATTERY_MAX17040=m ++CONFIG_CHARGER_GPIO=m + CONFIG_BATTERY_GAUGE_LTC2941=m + CONFIG_SENSORS_AHT10=m + CONFIG_SENSORS_DS1621=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 7f7faa4ac77b..997e8a65f2b6 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -718,6 +718,7 @@ CONFIG_POWER_RESET_GPIO=y + CONFIG_RPI_POE_POWER=m + CONFIG_BATTERY_DS2760=m + CONFIG_BATTERY_MAX17040=m ++CONFIG_CHARGER_GPIO=m + CONFIG_BATTERY_GAUGE_LTC2941=m + CONFIG_SENSORS_AHT10=m + CONFIG_SENSORS_DS1621=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index 630195fec52f..c6369bb31288 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -747,6 +747,7 @@ CONFIG_POWER_RESET_GPIO=y + CONFIG_RPI_POE_POWER=m + CONFIG_BATTERY_DS2760=m + CONFIG_BATTERY_MAX17040=m ++CONFIG_CHARGER_GPIO=m + CONFIG_BATTERY_GAUGE_LTC2941=m + CONFIG_SENSORS_AHT10=m + CONFIG_SENSORS_DS1621=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index e6e7d42cf1b6..3c23071d54a7 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -718,6 +718,7 @@ CONFIG_POWER_RESET_GPIO=y + CONFIG_RPI_POE_POWER=m + CONFIG_BATTERY_DS2760=m + CONFIG_BATTERY_MAX17040=m ++CONFIG_CHARGER_GPIO=m + CONFIG_BATTERY_GAUGE_LTC2941=m + CONFIG_SENSORS_AHT10=m + CONFIG_SENSORS_DS1621=m +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Tue, 18 Apr 2023 11:34:54 +0100 +Subject: [PATCH 723/784] configs: Enable LRU_GEN_ENABLED on non-pi4 32-bit + kernels + +We believe the OOM issue with MGLRU on 32-bit kernel +only affects Pi4 which uses CONFIG_VMSPLIT_3G. + +Pi0-3 which use CONFIG_VMSPLIT_2G is expected not to +suffer from this OOM issue. + +So lets enable MGLRU by default for these users, +who many benefit from the advantages it has. + +See: https://github.com/raspberrypi/linux/issues/5395 +Signed-off-by: Dom Cobley +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index 6b7e7a7f522d..ef4e2bce0dca 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -69,6 +69,7 @@ CONFIG_Z3FOLD=m + # CONFIG_COMPAT_BRK is not set + CONFIG_CMA=y + CONFIG_LRU_GEN=y ++CONFIG_LRU_GEN_ENABLED=y + CONFIG_NET=y + CONFIG_PACKET=y + CONFIG_UNIX=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 997e8a65f2b6..afef35a26897 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -64,6 +64,7 @@ CONFIG_Z3FOLD=m + # CONFIG_COMPAT_BRK is not set + CONFIG_CMA=y + CONFIG_LRU_GEN=y ++CONFIG_LRU_GEN_ENABLED=y + CONFIG_NET=y + CONFIG_PACKET=y + CONFIG_UNIX=y +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 23 Feb 2023 09:33:52 +0000 +Subject: [PATCH 724/784] Revert "amba_pl011: Round input clock up" + +This reverts commit 947ba6e85ea973b53e2f8d6860b191c0257e04fb. + +Since [1], the clock driver has automatically rounded up the +UART clock frequency, so this patch is no longer needed. + +[1] f690a4d7a8f6 ("clk: bcm2835: Round UART input clock up") + +Signed-off-by: Phil Elwell +--- + drivers/tty/serial/amba-pl011.c | 21 ++------------------- + 1 file changed, 2 insertions(+), 19 deletions(-) + +diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c +index 6f92f581e18c..2940e22d386c 100644 +--- a/drivers/tty/serial/amba-pl011.c ++++ b/drivers/tty/serial/amba-pl011.c +@@ -1730,23 +1730,6 @@ static void pl011_put_poll_char(struct uart_port *port, + + #endif /* CONFIG_CONSOLE_POLL */ + +-unsigned long pl011_clk_round(unsigned long clk) +-{ +- unsigned long scaler; +- +- /* +- * If increasing a clock by less than 0.1% changes it +- * from ..999.. to ..000.., round up. +- */ +- scaler = 1; +- while (scaler * 100000 < clk) +- scaler *= 10; +- if ((clk + scaler - 1)/scaler % 1000 == 0) +- clk = (clk/scaler + 1) * scaler; +- +- return clk; +-} +- + static int pl011_hwinit(struct uart_port *port) + { + struct uart_amba_port *uap = +@@ -1763,7 +1746,7 @@ static int pl011_hwinit(struct uart_port *port) + if (retval) + return retval; + +- uap->port.uartclk = pl011_clk_round(clk_get_rate(uap->clk)); ++ uap->port.uartclk = clk_get_rate(uap->clk); + + /* Clear pending error and receive interrupts */ + pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS | +@@ -2454,7 +2437,7 @@ static int pl011_console_setup(struct console *co, char *options) + plat->init(); + } + +- uap->port.uartclk = pl011_clk_round(clk_get_rate(uap->clk)); ++ uap->port.uartclk = clk_get_rate(uap->clk); + + if (uap->vendor->fixed_options) { + baud = uap->fixed_baud; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Tue, 8 Feb 2022 13:49:11 +0000 +Subject: [PATCH 725/784] media: i2c: imx219: Scale the pixel clock rate for + the 640x480 mode + +The 640x480 mode uses a special binning mode for high framerate operation where +the pixel rate is effectively doubled. Account for this when setting up the +pixel clock rate, and applying the vblank and exposure controls. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx219.c | 33 ++++++++++++++++++++++++++------- + 1 file changed, 26 insertions(+), 7 deletions(-) + +diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c +index b173caacf288..23b84cdfa520 100644 +--- a/drivers/media/i2c/imx219.c ++++ b/drivers/media/i2c/imx219.c +@@ -164,6 +164,9 @@ struct imx219_mode { + + /* 2x2 binning is used */ + bool binning; ++ ++ /* Relative pixel clock rate factor for the mode. */ ++ unsigned int rate_factor; + }; + + static const struct imx219_reg imx219_common_regs[] = { +@@ -402,6 +405,7 @@ static const struct imx219_mode supported_modes[] = { + .regs = mode_3280x2464_regs, + }, + .binning = false, ++ .rate_factor = 1, + }, + { + /* 1080P 30fps cropped */ +@@ -419,6 +423,7 @@ static const struct imx219_mode supported_modes[] = { + .regs = mode_1920_1080_regs, + }, + .binning = false, ++ .rate_factor = 1, + }, + { + /* 2x2 binned 30fps mode */ +@@ -436,6 +441,7 @@ static const struct imx219_mode supported_modes[] = { + .regs = mode_1640_1232_regs, + }, + .binning = true, ++ .rate_factor = 1, + }, + { + /* 640x480 30fps mode */ +@@ -453,6 +459,11 @@ static const struct imx219_mode supported_modes[] = { + .regs = mode_640_480_regs, + }, + .binning = true, ++ /* ++ * This mode uses a special 2x2 binning that doubles the ++ * internal pixel clock rate. ++ */ ++ .rate_factor = 2, + }, + }; + +@@ -675,7 +686,8 @@ static int imx219_set_ctrl(struct v4l2_ctrl *ctrl) + break; + case V4L2_CID_EXPOSURE: + ret = imx219_write_reg(imx219, IMX219_REG_EXPOSURE, +- IMX219_REG_VALUE_16BIT, ctrl->val); ++ IMX219_REG_VALUE_16BIT, ++ ctrl->val / imx219->mode->rate_factor); + break; + case V4L2_CID_DIGITAL_GAIN: + ret = imx219_write_reg(imx219, IMX219_REG_DIGITAL_GAIN, +@@ -695,7 +707,8 @@ static int imx219_set_ctrl(struct v4l2_ctrl *ctrl) + case V4L2_CID_VBLANK: + ret = imx219_write_reg(imx219, IMX219_REG_VTS, + IMX219_REG_VALUE_16BIT, +- imx219->mode->height + ctrl->val); ++ (imx219->mode->height + ctrl->val) / ++ imx219->mode->rate_factor); + break; + case V4L2_CID_HBLANK: + ret = imx219_write_reg(imx219, IMX219_REG_HTS, +@@ -877,7 +890,7 @@ static int imx219_set_pad_format(struct v4l2_subdev *sd, + struct imx219 *imx219 = to_imx219(sd); + const struct imx219_mode *mode; + struct v4l2_mbus_framefmt *framefmt; +- int exposure_max, exposure_def, hblank; ++ int exposure_max, exposure_def, hblank, pixel_rate; + unsigned int i; + + if (fmt->pad >= NUM_PADS) +@@ -942,6 +955,12 @@ static int imx219_set_pad_format(struct v4l2_subdev *sd, + 1, + IMX219_PPL_MIN - mode->width); + __v4l2_ctrl_s_ctrl(imx219->hblank, hblank); ++ ++ /* Scale the pixel rate based on the mode specific factor */ ++ pixel_rate = ++ IMX219_PIXEL_RATE * imx219->mode->rate_factor; ++ __v4l2_ctrl_modify_range(imx219->pixel_rate, pixel_rate, ++ pixel_rate, 1, pixel_rate); + } + } else { + if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) { +@@ -1323,7 +1342,7 @@ static int imx219_init_controls(struct imx219 *imx219) + struct v4l2_ctrl_handler *ctrl_hdlr; + unsigned int height = imx219->mode->height; + struct v4l2_fwnode_device_properties props; +- int exposure_max, exposure_def, hblank; ++ int exposure_max, exposure_def, hblank, pixel_rate; + int i, ret; + + ctrl_hdlr = &imx219->ctrl_handler; +@@ -1335,11 +1354,11 @@ static int imx219_init_controls(struct imx219 *imx219) + ctrl_hdlr->lock = &imx219->mutex; + + /* By default, PIXEL_RATE is read only */ ++ pixel_rate = IMX219_PIXEL_RATE * imx219->mode->rate_factor; + imx219->pixel_rate = v4l2_ctrl_new_std(ctrl_hdlr, &imx219_ctrl_ops, + V4L2_CID_PIXEL_RATE, +- IMX219_PIXEL_RATE, +- IMX219_PIXEL_RATE, 1, +- IMX219_PIXEL_RATE); ++ pixel_rate, pixel_rate, ++ 1, pixel_rate); + + imx219->link_freq = + v4l2_ctrl_new_int_menu(ctrl_hdlr, &imx219_ctrl_ops, +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 21 Apr 2023 14:49:38 +0100 +Subject: [PATCH 726/784] hwmon: emc2305: Add calls to initialise of cooling + maps + +Commit 46ef9d4ed26b ("hwmon: emc2305: fixups for driver submitted to +mailing lists") missed adding the call to thermal_of_cooling_device_register +required to configure any cooling maps for the device, hence stopping it +from actually ever changing speed. + +Signed-off-by: Dave Stevenson +--- + drivers/hwmon/emc2305.c | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/drivers/hwmon/emc2305.c b/drivers/hwmon/emc2305.c +index bbe007c88e08..cc4856d2a6dd 100644 +--- a/drivers/hwmon/emc2305.c ++++ b/drivers/hwmon/emc2305.c +@@ -348,9 +348,17 @@ static int emc2305_set_single_tz(struct device *dev, int idx) + cdev_idx = (idx) ? idx - 1 : 0; + pwm = data->pwm_min[cdev_idx]; + +- data->cdev_data[cdev_idx].cdev = +- thermal_cooling_device_register(emc2305_fan_name[idx], data, +- &emc2305_cooling_ops); ++ if (dev->of_node) ++ data->cdev_data[cdev_idx].cdev = ++ devm_thermal_of_cooling_device_register(dev, dev->of_node, ++ emc2305_fan_name[idx], ++ data, ++ &emc2305_cooling_ops); ++ else ++ data->cdev_data[cdev_idx].cdev = ++ thermal_cooling_device_register(emc2305_fan_name[idx], ++ data, ++ &emc2305_cooling_ops); + + if (IS_ERR(data->cdev_data[cdev_idx].cdev)) { + dev_err(dev, "Failed to register cooling device %s\n", emc2305_fan_name[idx]); +@@ -403,9 +411,11 @@ static void emc2305_unset_tz(struct device *dev) + int i; + + /* Unregister cooling device. */ +- for (i = 0; i < EMC2305_PWM_MAX; i++) +- if (data->cdev_data[i].cdev) +- thermal_cooling_device_unregister(data->cdev_data[i].cdev); ++ if (!dev->of_node) { ++ for (i = 0; i < EMC2305_PWM_MAX; i++) ++ if (data->cdev_data[i].cdev) ++ thermal_cooling_device_unregister(data->cdev_data[i].cdev); ++ } + } + + static umode_t +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 14 Apr 2023 13:50:08 +0100 +Subject: [PATCH 727/784] drm/panel: Add panel driver for Waveshare DSI + touchscreens + +Waveshare sell a range of DSI panels of varying sizes, all +using a common MCU to control the panel and backlight. + +Add a panel driver that supports these panels. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/panel/Kconfig | 10 + + drivers/gpu/drm/panel/Makefile | 1 + + drivers/gpu/drm/panel/panel-waveshare-dsi.c | 411 ++++++++++++++++++++ + 3 files changed, 422 insertions(+) + create mode 100644 drivers/gpu/drm/panel/panel-waveshare-dsi.c + +diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig +index 6c5956532550..168403f59175 100644 +--- a/drivers/gpu/drm/panel/Kconfig ++++ b/drivers/gpu/drm/panel/Kconfig +@@ -720,6 +720,16 @@ config DRM_PANEL_VISIONOX_RM69299 + Say Y here if you want to enable support for Visionox + RM69299 DSI Video Mode panel. + ++config DRM_PANEL_WAVESHARE_TOUCHSCREEN ++ tristate "Waveshare touchscreen panels" ++ depends on DRM_MIPI_DSI ++ depends on I2C ++ depends on BACKLIGHT_CLASS_DEVICE ++ help ++ Say Y here if you want to enable support for the Waveshare ++ DSI Touchscreens. To compile this driver as a module, ++ choose M here. ++ + config DRM_PANEL_WIDECHIPS_WS2401 + tristate "Widechips WS2401 DPI panel driver" + depends on SPI && GPIOLIB +diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile +index 57d878273d8b..bc4ded65aa4b 100644 +--- a/drivers/gpu/drm/panel/Makefile ++++ b/drivers/gpu/drm/panel/Makefile +@@ -73,5 +73,6 @@ obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o + obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o + obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o + obj-$(CONFIG_DRM_PANEL_VISIONOX_RM69299) += panel-visionox-rm69299.o ++obj-$(CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN) += panel-waveshare-dsi.o + obj-$(CONFIG_DRM_PANEL_WIDECHIPS_WS2401) += panel-widechips-ws2401.o + obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o +diff --git a/drivers/gpu/drm/panel/panel-waveshare-dsi.c b/drivers/gpu/drm/panel/panel-waveshare-dsi.c +new file mode 100644 +index 000000000000..224f3af15894 +--- /dev/null ++++ b/drivers/gpu/drm/panel/panel-waveshare-dsi.c +@@ -0,0 +1,411 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Copyright © 2023 Raspberry Pi Ltd ++ * ++ * Based on panel-raspberrypi-touchscreen by Broadcom ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#define WS_DSI_DRIVER_NAME "ws-ts-dsi" ++ ++struct ws_panel { ++ struct drm_panel base; ++ struct mipi_dsi_device *dsi; ++ struct i2c_client *i2c; ++ const struct drm_display_mode *mode; ++ enum drm_panel_orientation orientation; ++}; ++ ++/* 2.8inch 480x640 ++ * https://www.waveshare.com/product/raspberry-pi/displays/2.8inch-dsi-lcd.htm ++ */ ++static const struct drm_display_mode ws_panel_2_8_mode = { ++ .clock = 50000, ++ .hdisplay = 480, ++ .hsync_start = 480 + 150, ++ .hsync_end = 480 + 150 + 50, ++ .htotal = 480 + 150 + 50 + 150, ++ .vdisplay = 640, ++ .vsync_start = 640 + 150, ++ .vsync_end = 640 + 150 + 50, ++ .vtotal = 640 + 150 + 50 + 150, ++}; ++ ++/* 3.4inch 800x800 Round ++ * https://www.waveshare.com/product/displays/lcd-oled/3.4inch-dsi-lcd-c.htm ++ */ ++static const struct drm_display_mode ws_panel_3_4_mode = { ++ .clock = 50000, ++ .hdisplay = 800, ++ .hsync_start = 800 + 32, ++ .hsync_end = 800 + 32 + 6, ++ .htotal = 800 + 32 + 6 + 120, ++ .vdisplay = 800, ++ .vsync_start = 800 + 8, ++ .vsync_end = 800 + 8 + 4, ++ .vtotal = 800 + 8 + 4 + 16, ++}; ++ ++/* 4.0inch 480x800 ++ * https://www.waveshare.com/product/raspberry-pi/displays/4inch-dsi-lcd.htm ++ */ ++static const struct drm_display_mode ws_panel_4_0_mode = { ++ .clock = 50000, ++ .hdisplay = 480, ++ .hsync_start = 480 + 150, ++ .hsync_end = 480 + 150 + 100, ++ .htotal = 480 + 150 + 100 + 150, ++ .vdisplay = 800, ++ .vsync_start = 800 + 20, ++ .vsync_end = 800 + 20 + 100, ++ .vtotal = 800 + 20 + 100 + 20, ++}; ++ ++/* 7.0inch C 1024x600 ++ * https://www.waveshare.com/product/raspberry-pi/displays/lcd-oled/7inch-dsi-lcd-c-with-case-a.htm ++ */ ++static const struct drm_display_mode ws_panel_7_0_c_mode = { ++ .clock = 50000, ++ .hdisplay = 1024, ++ .hsync_start = 1024 + 100, ++ .hsync_end = 1024 + 100 + 100, ++ .htotal = 1024 + 100 + 100 + 100, ++ .vdisplay = 600, ++ .vsync_start = 600 + 10, ++ .vsync_end = 600 + 10 + 10, ++ .vtotal = 600 + 10 + 10 + 10, ++}; ++ ++/* 7.9inch 400x1280 ++ * https://www.waveshare.com/product/raspberry-pi/displays/7.9inch-dsi-lcd.htm ++ */ ++static const struct drm_display_mode ws_panel_7_9_mode = { ++ .clock = 50000, ++ .hdisplay = 400, ++ .hsync_start = 400 + 40, ++ .hsync_end = 400 + 40 + 30, ++ .htotal = 400 + 40 + 30 + 40, ++ .vdisplay = 1280, ++ .vsync_start = 1280 + 20, ++ .vsync_end = 1280 + 20 + 10, ++ .vtotal = 1280 + 20 + 10 + 20, ++}; ++ ++/* 8.0inch or 10.1inch 1280x800 ++ * https://www.waveshare.com/product/raspberry-pi/displays/8inch-dsi-lcd-c.htm ++ * https://www.waveshare.com/product/raspberry-pi/displays/10.1inch-dsi-lcd-c.htm ++ */ ++static const struct drm_display_mode ws_panel_10_1_mode = { ++ .clock = 76800, ++ .hdisplay = 1280, ++ .hsync_start = 1280 + 40, ++ .hsync_end = 1280 + 40 + 20, ++ .htotal = 1280 + 40 + 20 + 40, ++ .vdisplay = 800, ++ .vsync_start = 800 + 40, ++ .vsync_end = 800 + 40 + 48, ++ .vtotal = 800 + 40 + 48 + 40, ++}; ++ ++/* 11.9inch 320x1480 ++ * https://www.waveshare.com/product/raspberry-pi/displays/11.9inch-dsi-lcd.htm ++ */ ++static const struct drm_display_mode ws_panel_11_9_mode = { ++ .clock = 50000, ++ .hdisplay = 320, ++ .hsync_start = 320 + 60, ++ .hsync_end = 320 + 60 + 60, ++ .htotal = 320 + 60 + 60 + 120, ++ .vdisplay = 1480, ++ .vsync_start = 1480 + 60, ++ .vsync_end = 1480 + 60 + 60, ++ .vtotal = 1480 + 60 + 60 + 60, ++}; ++ ++static struct ws_panel *panel_to_ts(struct drm_panel *panel) ++{ ++ return container_of(panel, struct ws_panel, base); ++} ++ ++static void ws_panel_i2c_write(struct ws_panel *ts, u8 reg, u8 val) ++{ ++ int ret; ++ ++ ret = i2c_smbus_write_byte_data(ts->i2c, reg, val); ++ if (ret) ++ dev_err(&ts->i2c->dev, "I2C write failed: %d\n", ret); ++} ++ ++static int ws_panel_disable(struct drm_panel *panel) ++{ ++ struct ws_panel *ts = panel_to_ts(panel); ++ ++ ws_panel_i2c_write(ts, 0xad, 0x00); ++ ++ return 0; ++} ++ ++static int ws_panel_unprepare(struct drm_panel *panel) ++{ ++ return 0; ++} ++ ++static int ws_panel_prepare(struct drm_panel *panel) ++{ ++ return 0; ++} ++ ++static int ws_panel_enable(struct drm_panel *panel) ++{ ++ struct ws_panel *ts = panel_to_ts(panel); ++ ++ ws_panel_i2c_write(ts, 0xad, 0x01); ++ ++ return 0; ++} ++ ++static int ws_panel_get_modes(struct drm_panel *panel, ++ struct drm_connector *connector) ++{ ++ static const u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24; ++ struct ws_panel *ts = panel_to_ts(panel); ++ struct drm_display_mode *mode; ++ ++ mode = drm_mode_duplicate(connector->dev, ts->mode); ++ if (!mode) { ++ dev_err(panel->dev, "failed to add mode %ux%u@%u\n", ++ ts->mode->hdisplay, ++ ts->mode->vdisplay, ++ drm_mode_vrefresh(ts->mode)); ++ } ++ ++ mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; ++ ++ drm_mode_set_name(mode); ++ ++ drm_mode_probed_add(connector, mode); ++ ++ connector->display_info.bpc = 8; ++ connector->display_info.width_mm = 154; ++ connector->display_info.height_mm = 86; ++ drm_display_info_set_bus_formats(&connector->display_info, ++ &bus_format, 1); ++ ++ /* ++ * TODO: Remove once all drm drivers call ++ * drm_connector_set_orientation_from_panel() ++ */ ++ drm_connector_set_panel_orientation(connector, ts->orientation); ++ ++ return 1; ++} ++ ++static enum drm_panel_orientation ws_panel_get_orientation(struct drm_panel *panel) ++{ ++ struct ws_panel *ts = panel_to_ts(panel); ++ ++ return ts->orientation; ++} ++ ++static const struct drm_panel_funcs ws_panel_funcs = { ++ .disable = ws_panel_disable, ++ .unprepare = ws_panel_unprepare, ++ .prepare = ws_panel_prepare, ++ .enable = ws_panel_enable, ++ .get_modes = ws_panel_get_modes, ++ .get_orientation = ws_panel_get_orientation, ++}; ++ ++static int ws_panel_bl_update_status(struct backlight_device *bl) ++{ ++ struct ws_panel *ts = bl_get_data(bl); ++ ++ ws_panel_i2c_write(ts, 0xab, 0xff - backlight_get_brightness(bl)); ++ ws_panel_i2c_write(ts, 0xaa, 0x01); ++ ++ return 0; ++} ++ ++static const struct backlight_ops ws_panel_bl_ops = { ++ .update_status = ws_panel_bl_update_status, ++}; ++ ++static struct backlight_device * ++ws_panel_create_backlight(struct ws_panel *ts) ++{ ++ struct device *dev = ts->base.dev; ++ const struct backlight_properties props = { ++ .type = BACKLIGHT_RAW, ++ .brightness = 255, ++ .max_brightness = 255, ++ }; ++ ++ return devm_backlight_device_register(dev, dev_name(dev), dev, ts, ++ &ws_panel_bl_ops, &props); ++} ++ ++static int ws_panel_probe(struct i2c_client *i2c, ++ const struct i2c_device_id *id) ++{ ++ struct device *dev = &i2c->dev; ++ struct ws_panel *ts; ++ struct device_node *endpoint, *dsi_host_node; ++ struct mipi_dsi_host *host; ++ struct mipi_dsi_device_info info = { ++ .type = WS_DSI_DRIVER_NAME, ++ .channel = 0, ++ .node = NULL, ++ }; ++ int ret; ++ ++ ts = devm_kzalloc(dev, sizeof(*ts), GFP_KERNEL); ++ if (!ts) ++ return -ENOMEM; ++ ++ ts->mode = of_device_get_match_data(dev); ++ if (!ts->mode) ++ return -EINVAL; ++ ++ i2c_set_clientdata(i2c, ts); ++ ++ ts->i2c = i2c; ++ ++ ws_panel_i2c_write(ts, 0xc0, 0x01); ++ ws_panel_i2c_write(ts, 0xc2, 0x01); ++ ws_panel_i2c_write(ts, 0xac, 0x01); ++ ++ ret = of_drm_get_panel_orientation(dev->of_node, &ts->orientation); ++ if (ret) { ++ dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret); ++ return ret; ++ } ++ ++ /* Look up the DSI host. It needs to probe before we do. */ ++ endpoint = of_graph_get_next_endpoint(dev->of_node, NULL); ++ if (!endpoint) ++ return -ENODEV; ++ ++ dsi_host_node = of_graph_get_remote_port_parent(endpoint); ++ if (!dsi_host_node) ++ goto error; ++ ++ host = of_find_mipi_dsi_host_by_node(dsi_host_node); ++ of_node_put(dsi_host_node); ++ if (!host) { ++ of_node_put(endpoint); ++ return -EPROBE_DEFER; ++ } ++ ++ info.node = of_graph_get_remote_port(endpoint); ++ if (!info.node) ++ goto error; ++ ++ of_node_put(endpoint); ++ ++ ts->dsi = devm_mipi_dsi_device_register_full(dev, host, &info); ++ if (IS_ERR(ts->dsi)) { ++ dev_err(dev, "DSI device registration failed: %ld\n", ++ PTR_ERR(ts->dsi)); ++ return PTR_ERR(ts->dsi); ++ } ++ ++ drm_panel_init(&ts->base, dev, &ws_panel_funcs, ++ DRM_MODE_CONNECTOR_DSI); ++ ++ ts->base.backlight = ws_panel_create_backlight(ts); ++ if (IS_ERR(ts->base.backlight)) { ++ ret = PTR_ERR(ts->base.backlight); ++ dev_err(dev, "Failed to create backlight: %d\n", ret); ++ return ret; ++ } ++ ++ /* This appears last, as it's what will unblock the DSI host ++ * driver's component bind function. ++ */ ++ drm_panel_add(&ts->base); ++ ++ ts->dsi->mode_flags = (MIPI_DSI_MODE_VIDEO | ++ MIPI_DSI_MODE_VIDEO_SYNC_PULSE | ++ MIPI_DSI_MODE_LPM); ++ ts->dsi->format = MIPI_DSI_FMT_RGB888; ++ ts->dsi->lanes = 2; ++ ++ ret = devm_mipi_dsi_attach(dev, ts->dsi); ++ ++ if (ret) ++ dev_err(dev, "failed to attach dsi to host: %d\n", ret); ++ ++ return 0; ++ ++error: ++ of_node_put(endpoint); ++ return -ENODEV; ++} ++ ++static void ws_panel_remove(struct i2c_client *i2c) ++{ ++ struct ws_panel *ts = i2c_get_clientdata(i2c); ++ ++ drm_panel_remove(&ts->base); ++} ++ ++static const struct of_device_id ws_panel_of_ids[] = { ++ { ++ .compatible = "waveshare,2.8inch-panel", ++ .data = &ws_panel_2_8_mode, ++ }, { ++ .compatible = "waveshare,3.4inch-panel", ++ .data = &ws_panel_3_4_mode, ++ }, { ++ .compatible = "waveshare,4.0inch-panel", ++ .data = &ws_panel_4_0_mode, ++ }, { ++ .compatible = "waveshare,7.0inch-c-panel", ++ .data = &ws_panel_7_0_c_mode, ++ }, { ++ .compatible = "waveshare,7.9inch-panel", ++ .data = &ws_panel_7_9_mode, ++ }, { ++ .compatible = "waveshare,8.0inch-panel", ++ .data = &ws_panel_10_1_mode, ++ }, { ++ .compatible = "waveshare,10.1inch-panel", ++ .data = &ws_panel_10_1_mode, ++ }, { ++ .compatible = "waveshare,11.9inch-panel", ++ .data = &ws_panel_11_9_mode, ++ }, { ++ /* sentinel */ ++ } ++}; ++MODULE_DEVICE_TABLE(of, ws_panel_of_ids); ++ ++static struct i2c_driver ws_panel_driver = { ++ .driver = { ++ .name = "ws_touchscreen", ++ .of_match_table = ws_panel_of_ids, ++ }, ++ .probe = ws_panel_probe, ++ .remove = ws_panel_remove, ++}; ++module_i2c_driver(ws_panel_driver); ++ ++MODULE_AUTHOR("Dave Stevenson "); ++MODULE_DESCRIPTION("Waveshare DSI panel driver"); ++MODULE_LICENSE("GPL"); +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 30 Jan 2023 14:46:16 +0000 +Subject: [PATCH 728/784] input: goodix: Add option to poll instead of relying + on IRQ line + +The interrupt line from the touch controller is not necessarily +connected to the SoC, so add the option to poll for touch info. + +Signed-off-by: Dave Stevenson +--- + drivers/input/touchscreen/goodix.c | 70 +++++++++++++++++++++++++++--- + drivers/input/touchscreen/goodix.h | 2 + + 2 files changed, 66 insertions(+), 6 deletions(-) + +diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c +index 25e575183dd1..f309bbd6ed09 100644 +--- a/drivers/input/touchscreen/goodix.c ++++ b/drivers/input/touchscreen/goodix.c +@@ -48,6 +48,8 @@ + #define MAX_CONTACTS_LOC 5 + #define TRIGGER_LOC 6 + ++#define POLL_INTERVAL_MS 17 /* 17ms = 60fps */ ++ + /* Our special handling for GPIO accesses through ACPI is x86 specific */ + #if defined CONFIG_X86 && defined CONFIG_ACPI + #define ACPI_GPIO_SUPPORT +@@ -513,16 +515,67 @@ static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id) + return IRQ_HANDLED; + } + ++static void goodix_ts_irq_poll_timer(struct timer_list *t) ++{ ++ struct goodix_ts_data *ts = from_timer(ts, t, timer); ++ ++ schedule_work(&ts->work_i2c_poll); ++ mod_timer(&ts->timer, jiffies + msecs_to_jiffies(POLL_INTERVAL_MS)); ++} ++ ++static void goodix_ts_work_i2c_poll(struct work_struct *work) ++{ ++ struct goodix_ts_data *ts = container_of(work, ++ struct goodix_ts_data, work_i2c_poll); ++ ++ goodix_process_events(ts); ++ goodix_i2c_write_u8(ts->client, GOODIX_READ_COOR_ADDR, 0); ++} ++ ++static void goodix_enable_irq(struct goodix_ts_data *ts) ++{ ++ if (ts->client->irq) { ++ enable_irq(ts->client->irq); ++ } else { ++ ts->timer.expires = jiffies + msecs_to_jiffies(POLL_INTERVAL_MS); ++ add_timer(&ts->timer); ++ } ++} ++ ++static void goodix_disable_irq(struct goodix_ts_data *ts) ++{ ++ if (ts->client->irq) { ++ disable_irq(ts->client->irq); ++ } else { ++ del_timer(&ts->timer); ++ cancel_work_sync(&ts->work_i2c_poll); ++ } ++} ++ + static void goodix_free_irq(struct goodix_ts_data *ts) + { +- devm_free_irq(&ts->client->dev, ts->client->irq, ts); ++ if (ts->client->irq) { ++ devm_free_irq(&ts->client->dev, ts->client->irq, ts); ++ } else { ++ del_timer(&ts->timer); ++ cancel_work_sync(&ts->work_i2c_poll); ++ } + } + + static int goodix_request_irq(struct goodix_ts_data *ts) + { +- return devm_request_threaded_irq(&ts->client->dev, ts->client->irq, +- NULL, goodix_ts_irq_handler, +- ts->irq_flags, ts->client->name, ts); ++ if (ts->client->irq) { ++ return devm_request_threaded_irq(&ts->client->dev, ts->client->irq, ++ NULL, goodix_ts_irq_handler, ++ ts->irq_flags, ts->client->name, ts); ++ } else { ++ INIT_WORK(&ts->work_i2c_poll, ++ goodix_ts_work_i2c_poll); ++ timer_setup(&ts->timer, goodix_ts_irq_poll_timer, 0); ++ if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE) ++ goodix_enable_irq(ts); ++ return 0; ++ } + } + + static int goodix_check_cfg_8(struct goodix_ts_data *ts, const u8 *cfg, int len) +@@ -1406,6 +1459,11 @@ static void goodix_ts_remove(struct i2c_client *client) + { + struct goodix_ts_data *ts = i2c_get_clientdata(client); + ++ if (!client->irq) { ++ del_timer(&ts->timer); ++ cancel_work_sync(&ts->work_i2c_poll); ++ } ++ + if (ts->load_cfg_from_disk) + wait_for_completion(&ts->firmware_loading_complete); + } +@@ -1421,7 +1479,7 @@ static int __maybe_unused goodix_suspend(struct device *dev) + + /* We need gpio pins to suspend/resume */ + if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE) { +- disable_irq(client->irq); ++ goodix_disable_irq(ts); + return 0; + } + +@@ -1465,7 +1523,7 @@ static int __maybe_unused goodix_resume(struct device *dev) + int error; + + if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE) { +- enable_irq(client->irq); ++ goodix_enable_irq(ts); + return 0; + } + +diff --git a/drivers/input/touchscreen/goodix.h b/drivers/input/touchscreen/goodix.h +index 87797cc88b32..8a52621241c1 100644 +--- a/drivers/input/touchscreen/goodix.h ++++ b/drivers/input/touchscreen/goodix.h +@@ -104,6 +104,8 @@ struct goodix_ts_data { + u8 main_clk[GOODIX_MAIN_CLK_LEN]; + int bak_ref_len; + u8 *bak_ref; ++ struct timer_list timer; ++ struct work_struct work_i2c_poll; + }; + + int goodix_i2c_read(struct i2c_client *client, u16 reg, u8 *buf, int len); +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 14 Apr 2023 13:54:49 +0100 +Subject: [PATCH 729/784] defconfigs: Add DRM_PANEL_WAVESHARE_TOUCHSCREEN + +Adds support for the Waveshare DSI touchscreens. + +Signed-off-by: Dave Stevenson +--- + arch/arm/configs/bcm2709_defconfig | 1 + + arch/arm/configs/bcm2711_defconfig | 1 + + arch/arm/configs/bcmrpi_defconfig | 1 + + arch/arm64/configs/bcm2711_defconfig | 1 + + arch/arm64/configs/bcmrpi3_defconfig | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index ef4e2bce0dca..da14a1d8814c 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -953,6 +953,7 @@ CONFIG_DRM_PANEL_JDI_LT070ME05000=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m + CONFIG_DRM_PANEL_SITRONIX_ST7701=m + CONFIG_DRM_PANEL_TPO_Y17P=m ++CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN=m + CONFIG_DRM_DISPLAY_CONNECTOR=m + CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_TOSHIBA_TC358762=m +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index 24303b2cc969..fdf724c70794 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -971,6 +971,7 @@ CONFIG_DRM_PANEL_JDI_LT070ME05000=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m + CONFIG_DRM_PANEL_SITRONIX_ST7701=m + CONFIG_DRM_PANEL_TPO_Y17P=m ++CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN=m + CONFIG_DRM_DISPLAY_CONNECTOR=m + CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_TOSHIBA_TC358762=m +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index afef35a26897..80d640589e5c 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -947,6 +947,7 @@ CONFIG_DRM_PANEL_JDI_LT070ME05000=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m + CONFIG_DRM_PANEL_SITRONIX_ST7701=m + CONFIG_DRM_PANEL_TPO_Y17P=m ++CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN=m + CONFIG_DRM_DISPLAY_CONNECTOR=m + CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_TOSHIBA_TC358762=m +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index c6369bb31288..bf6c180b27af 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -984,6 +984,7 @@ CONFIG_DRM_PANEL_JDI_LT070ME05000=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m + CONFIG_DRM_PANEL_SITRONIX_ST7701=m + CONFIG_DRM_PANEL_TPO_Y17P=m ++CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN=m + CONFIG_DRM_DISPLAY_CONNECTOR=m + CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_TOSHIBA_TC358762=m +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 3c23071d54a7..473df9c4e125 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -922,6 +922,7 @@ CONFIG_DRM_PANEL_JDI_LT070ME05000=m + CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m + CONFIG_DRM_PANEL_SITRONIX_ST7701=m + CONFIG_DRM_PANEL_TPO_Y17P=m ++CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN=m + CONFIG_DRM_DISPLAY_CONNECTOR=m + CONFIG_DRM_SIMPLE_BRIDGE=m + CONFIG_DRM_TOSHIBA_TC358762=m +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 14 Apr 2023 13:57:52 +0100 +Subject: [PATCH 730/784] dtoverlays: Add an overlay for the Waveshare DSI + screens + +They come in varying sizes, but all have the same MCU for +power control and touch controller. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 28 ++++ + .../vc4-kms-dsi-waveshare-panel-overlay.dts | 123 ++++++++++++++++++ + 3 files changed, 152 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index 19cad78dcc6f..b4fbefe77316 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -272,6 +272,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + vc4-kms-dsi-7inch.dtbo \ + vc4-kms-dsi-lt070me05000.dtbo \ + vc4-kms-dsi-lt070me05000-v2.dtbo \ ++ vc4-kms-dsi-waveshare-panel.dtbo \ + vc4-kms-kippah-7inch.dtbo \ + vc4-kms-v3d.dtbo \ + vc4-kms-v3d-pi4.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 7bfe97816339..2e810b9d76c1 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -4493,6 +4493,34 @@ Load: dtoverlay=vc4-kms-dsi-lt070me05000-v2 + Params: + + ++Name: vc4-kms-dsi-waveshare-panel ++Info: Enable a Waveshare DSI touchscreen ++ Includes the Goodix driver for the touchscreen element. ++ The default is for the display to be using the I2C0 option for control. ++ Use the i2c1 override if using the I2C1 wiring with jumper wires from ++ GPIOs 2&3 (pins 3&5). ++ invx/invy/swapxy should be used with caution as the panel specifier will ++ set the default inversions for that panel. Always use them after the ++ panel specifier, and be aware that you may need to set them as =0, not ++ just adding it. ++ Requires vc4-kms-v3d to be loaded. ++Load: dtoverlay=vc4-kms-dsi-waveshare-panel,= ++Params: 2_8_inch 2.8" 480x640 ++ 3_4_inch 3.4" 800x800 round ++ 4_0_inch 4.0" 480x800 ++ 7_0_inchC 7.0" C 1024x600 ++ 7_9_inch 7.9" 400x1280 ++ 8_0_inch 8.0" 1280x800 ++ 10_1_inch 10.1" 1280x800 ++ 11_9_inch 11.9" 320x1480 ++ i2c1 Use i2c-1 with jumper wires from GPIOs 2&3 ++ disable_touch Disable the touch controller ++ rotation Set the panel orientation property ++ invx Touchscreen inverted x axis ++ invy Touchscreen inverted y axis ++ swapxy Touchscreen swapped x y axis ++ ++ + Name: vc4-kms-kippah-7inch + Info: This overlay is now deprecated - see vc4-kms-dpi-panel,kippah-7inch + Load: +diff --git a/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts +new file mode 100644 +index 000000000000..3fd56d213203 +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-panel-overlay.dts +@@ -0,0 +1,123 @@ ++/* ++ * Device Tree overlay for Waveshare DSI Touchscreens ++ * ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&dsi1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ port { ++ dsi_out: endpoint { ++ remote-endpoint = <&panel_in>; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target-path = "/"; ++ __overlay__ { ++ }; ++ }; ++ ++ frag2: fragment@2 { ++ target = <&i2c_csi_dsi>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ panel: panel_disp1@45 { ++ reg = <0x45>; ++ compatible = "waveshare,10.1inch-panel"; ++ ++ port { ++ panel_in: endpoint { ++ remote-endpoint = <&dsi_out>; ++ }; ++ }; ++ }; ++ ++ touch: goodix@14 { ++ reg = <0x14>; ++ compatible = "goodix,gt911"; ++ }; ++ }; ++ }; ++ ++ fragment@3 { ++ target = <&i2c0if>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@4 { ++ target = <&i2c0mux>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@5 { ++ target = <&i2c_arm>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ 2_8_inch = <&panel>, "compatible=waveshare,2.8inch-panel", ++ <&touch>, "touchscreen-size-x:0=640", ++ <&touch>, "touchscreen-size-y:0=480", ++ <&touch>, "touchscreen-inverted-y?", ++ <&touch>, "touchscreen-swapped-x-y?"; ++ 3_4_inch = <&panel>, "compatible=waveshare,3.4inch-panel", ++ <&touch>, "touchscreen-size-x:0=800", ++ <&touch>, "touchscreen-size-y:0=800"; ++ 4_0_inch = <&panel>, "compatible=waveshare,4.0inch-panel", ++ <&touch>, "touchscreen-size-x:0=800", ++ <&touch>, "touchscreen-size-y:0=480", ++ <&touch>, "touchscreen-inverted-x?", ++ <&touch>, "touchscreen-swapped-x-y?"; ++ 7_0_inchC = <&panel>, "compatible=waveshare,7.0inch-c-panel", ++ <&touch>, "touchscreen-size-x:0=800", ++ <&touch>, "touchscreen-size-y:0=480"; ++ 7_9_inch = <&panel>, "compatible=waveshare,7.9inch-panel", ++ <&touch>, "touchscreen-size-x:0=400", ++ <&touch>, "touchscreen-size-y:0=1280", ++ <&touch>, "touchscreen-inverted-x?", ++ <&touch>, "touchscreen-inverted-y?"; ++ 8_0_inch = <&panel>, "compatible=waveshare,8.0inch-panel", ++ <&touch>, "touchscreen-size-x:0=800", ++ <&touch>, "touchscreen-size-y:0=1280", ++ <&touch>, "touchscreen-inverted-x?", ++ <&touch>, "touchscreen-swapped-x-y?"; ++ 10_1_inch = <&panel>, "compatible=waveshare,10.1inch-panel", ++ <&touch>, "touchscreen-size-x:0=800", ++ <&touch>, "touchscreen-size-y:0=1280", ++ <&touch>, "touchscreen-inverted-x?", ++ <&touch>, "touchscreen-swapped-x-y?"; ++ 11_9_inch = <&panel>, "compatible=waveshare,11.9inch-panel", ++ <&touch>, "touchscreen-size-x:0=320", ++ <&touch>, "touchscreen-size-y:0=1480", ++ <&touch>, "touchscreen-inverted-x?", ++ <&touch>, "touchscreen-swapped-x-y?"; ++ i2c1 = <&frag2>, "target:0=",<&i2c1>, ++ <0>, "-3-4+5"; ++ disable_touch = <&touch>, "status=disabled"; ++ rotation = <&panel>, "rotation:0"; ++ invx = <&touch>,"touchscreen-inverted-x?"; ++ invy = <&touch>,"touchscreen-inverted-y?"; ++ swapxy = <&touch>,"touchscreen-swapped-x-y?"; ++ }; ++}; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: David Lechner +Date: Mon, 24 Apr 2023 10:15:59 -0500 +Subject: [PATCH 731/784] arm/boot/dts/overlays/mipi-dbi-spi: fix default + brightness (#5442) + +There is an off-by-one error in the default brightness for the PWM backlight +in the MIPI DBI SPI overlay that produces the following message in the +kernel logs: + + pwm-backlight backlight_pwm: invalid default brightness level: 16, using 15 + +The value is 0-based, so the max brightness is 15, not 16. + +Signed-off-by: David Lechner +--- + arch/arm/boot/dts/overlays/mipi-dbi-spi-overlay.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/overlays/mipi-dbi-spi-overlay.dts b/arch/arm/boot/dts/overlays/mipi-dbi-spi-overlay.dts +index 9b9c654402c6..040f76dffc6c 100644 +--- a/arch/arm/boot/dts/overlays/mipi-dbi-spi-overlay.dts ++++ b/arch/arm/boot/dts/overlays/mipi-dbi-spi-overlay.dts +@@ -80,7 +80,7 @@ __dormant__ { + backlight_pwm: backlight_pwm { + compatible = "pwm-backlight"; + brightness-levels = <0 6 8 12 16 24 32 40 48 64 96 128 160 192 224 255>; +- default-brightness-level = <16>; ++ default-brightness-level = <15>; + pwms = <&pwm 0 200000>; + }; + }; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 24 Apr 2023 16:27:57 +0100 +Subject: [PATCH 732/784] dtoverlays: Add overrides for alternate i2c buses to + i2c-mux + +The i2c-mux overlay was fixed to i2c-1. Add overrides to allow +it to be assigned to alternate buses. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/README | 16 ++++++++ + .../arm/boot/dts/overlays/i2c-mux-overlay.dts | 40 +++++++++++++++++-- + 2 files changed, 53 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 2e810b9d76c1..a786065dab49 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1833,6 +1833,22 @@ Params: pca9542 Select the NXP PCA9542 device + + addr Change I2C address of the device (default 0x70) + ++ i2c0 Choose the I2C0 bus on GPIOs 0&1 ++ ++ i2c_csi_dsi Choose the I2C0 bus on GPIOs 44&45 ++ ++ i2c3 Choose the I2C3 bus (configure with the i2c3 ++ overlay - BCM2711 only) ++ ++ i2c4 Choose the I2C3 bus (configure with the i2c3 ++ overlay - BCM2711 only) ++ ++ i2c5 Choose the I2C5 bus (configure with the i2c4 ++ overlay - BCM2711 only) ++ ++ i2c6 Choose the I2C6 bus (configure with the i2c6 ++ overlay - BCM2711 only) ++ + + [ The i2c-mux-pca9548a overlay has been deleted. See i2c-mux. ] + +diff --git a/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts b/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts +index 112aed91ecb2..993971fca67a 100644 +--- a/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts +@@ -7,7 +7,7 @@ /{ + compatible = "brcm,bcm2835"; + + fragment@0 { +- target = <&i2c_arm>; ++ target = <&i2cbus>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; +@@ -34,7 +34,7 @@ i2c@1 { + }; + + fragment@1 { +- target = <&i2c_arm>; ++ target = <&i2cbus>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; +@@ -71,7 +71,7 @@ i2c@3 { + }; + + fragment@2 { +- target = <&i2c_arm>; ++ target = <&i2cbus>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; +@@ -127,6 +127,27 @@ i2c@7 { + }; + }; + ++ frag100: fragment@100 { ++ target = <&i2c_arm>; ++ i2cbus: __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@101 { ++ target = <&i2c0if>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@102 { ++ target = <&i2c0mux>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ + __overrides__ { + pca9542 = <0>, "+0"; + pca9545 = <0>, "+1"; +@@ -135,5 +156,18 @@ __overrides__ { + addr = <&pca9542>,"reg:0", + <&pca9545>,"reg:0", + <&pca9548>,"reg:0"; ++ ++ i2c0 = <&frag100>, "target:0=",<&i2c0>, ++ <0>,"+101+102"; ++ i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>, ++ <0>,"+101+102"; ++ i2c3 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c3"; ++ i2c4 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c4"; ++ i2c5 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c5"; ++ i2c6 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c6"; + }; + }; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 24 Apr 2023 16:30:07 +0100 +Subject: [PATCH 733/784] dtoverlays: Add overrides for alternate i2c buses to + i2c-pwm-pva9685a + +The i2c-pwm-pca9685a overlay was fixed to i2c-1. Add overrides to allow +it to be assigned to alternate buses. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/README | 10 +++++ + .../dts/overlays/i2c-pwm-pca9685a-overlay.dts | 37 ++++++++++++++++++- + 2 files changed, 46 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index a786065dab49..52d000a1d586 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1857,6 +1857,16 @@ Name: i2c-pwm-pca9685a + Info: Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm + Load: dtoverlay=i2c-pwm-pca9685a,= + Params: addr I2C address of PCA9685A (default 0x40) ++ i2c0 Choose the I2C0 bus on GPIOs 0&1 ++ i2c_csi_dsi Choose the I2C0 bus on GPIOs 44&45 ++ i2c3 Choose the I2C3 bus (configure with the i2c3 ++ overlay - BCM2711 only) ++ i2c4 Choose the I2C3 bus (configure with the i2c3 ++ overlay - BCM2711 only) ++ i2c5 Choose the I2C5 bus (configure with the i2c4 ++ overlay - BCM2711 only) ++ i2c6 Choose the I2C6 bus (configure with the i2c6 ++ overlay - BCM2711 only) + + + Name: i2c-rtc +diff --git a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts +index 9bb16465a50e..b8dfbd56d121 100644 +--- a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts +@@ -6,7 +6,7 @@ /{ + compatible = "brcm,bcm2835"; + + fragment@0 { +- target = <&i2c_arm>; ++ target = <&i2cbus>; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; +@@ -20,7 +20,42 @@ pca: pca@40 { + }; + }; + }; ++ ++ ++ frag100: fragment@100 { ++ target = <&i2c_arm>; ++ i2cbus: __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@101 { ++ target = <&i2c0if>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@102 { ++ target = <&i2c0mux>; ++ __dormant__ { ++ status = "okay"; ++ }; ++ }; ++ + __overrides__ { + addr = <&pca>,"reg:0"; ++ i2c0 = <&frag100>, "target:0=",<&i2c0>, ++ <0>,"+101+102"; ++ i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>, ++ <0>,"+101+102"; ++ i2c3 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c3"; ++ i2c4 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c4"; ++ i2c5 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c5"; ++ i2c6 = <&frag100>, "target?=0", ++ <&frag100>, "target-path=i2c6"; + }; + }; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 11 Apr 2023 08:55:49 +0100 +Subject: [PATCH 734/784] fixup! Export optimised __memcpy + +Sinc [1] uaccess_with_memcpy.c uses __memcpy instead of memcpy. Make +the optimised memcpy available as __memcpy as well to avoid linkage +failures. + +[1] ceac10c83b33 ("ARM: 9290/1: uaccess: Fix KASAN false-positives") + +Signed-off-by: Phil Elwell +--- + arch/arm/lib/memcpy_rpi.S | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/arm/lib/memcpy_rpi.S b/arch/arm/lib/memcpy_rpi.S +index 77a1dbe28a18..d246f9f3903a 100644 +--- a/arch/arm/lib/memcpy_rpi.S ++++ b/arch/arm/lib/memcpy_rpi.S +@@ -58,6 +58,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ENTRY(mmiocpy) + ENTRY(memcpy) ++ENTRY(__memcpy) + memcpy 0 ++ENDPROC(__memcpy) + ENDPROC(memcpy) + ENDPROC(mmiocpy) +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 21 Apr 2023 15:48:39 +0100 +Subject: [PATCH 735/784] hwmon: emc2305: Change OF properties pwm-min & + pwm-max to u8 + +There is no DT binding for emc2305 as mainline are still +discussing how to do a generic fan binding. +The 5.15 driver was reading the "emc2305," properties +"cooling-levels", "pwm-max", "pwm-min", and "pwm-channel" as u8. +The overlay was writing them as u16 (;) so it was working. + +The 6.1 driver was reading as u32, which failed as there is +insufficient data. + +As this is all downstream only, revert to u8 to match 5.15. + +Signed-off-by: Dave Stevenson +--- + drivers/hwmon/emc2305.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/drivers/hwmon/emc2305.c b/drivers/hwmon/emc2305.c +index cc4856d2a6dd..466a0978f20c 100644 +--- a/drivers/hwmon/emc2305.c ++++ b/drivers/hwmon/emc2305.c +@@ -301,36 +301,36 @@ static int emc2305_get_tz_of(struct device *dev) + struct device_node *np = dev->of_node; + struct emc2305_data *data = dev_get_drvdata(dev); + int ret = 0; +- u32 val; ++ u8 val; + int i; + + /* OF parameters are optional - overwrite default setting + * if some of them are provided. + */ + +- ret = of_property_read_u32(np, "emc2305,cooling-levels", &val); ++ ret = of_property_read_u8(np, "emc2305,cooling-levels", &val); + if (!ret) +- data->max_state = (u8)val; ++ data->max_state = val; + else if (ret != -EINVAL) + return ret; + +- ret = of_property_read_u32(np, "emc2305,pwm-max", &val); ++ ret = of_property_read_u8(np, "emc2305,pwm-max", &val); + if (!ret) +- data->pwm_max = (u8)val; ++ data->pwm_max = val; + else if (ret != -EINVAL) + return ret; + +- ret = of_property_read_u32(np, "emc2305,pwm-min", &val); ++ ret = of_property_read_u8(np, "emc2305,pwm-min", &val); + if (!ret) + for (i = 0; i < EMC2305_PWM_MAX; i++) +- data->pwm_min[i] = (u8)val; ++ data->pwm_min[i] = val; + else if (ret != -EINVAL) + return ret; + + /* Not defined or 0 means one thermal zone over all cooling devices. + * Otherwise - separated thermal zones for each PWM channel. + */ +- ret = of_property_read_u32(np, "emc2305,pwm-channel", &val); ++ ret = of_property_read_u8(np, "emc2305,pwm-channel", &val); + if (!ret) + data->pwm_separate = (val != 0); + else if (ret != -EINVAL) +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 21 Apr 2023 15:51:56 +0100 +Subject: [PATCH 736/784] dtoverlays: Change i2c-fan pwm-max/min overrides to + u8 + +The driver is only reading a u8, so change the overlay to match. + +Signed-off-by: Dave Stevenson +--- + arch/arm/boot/dts/overlays/i2c-fan-overlay.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts b/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts +index ee25780a2810..f2f4a2aa797a 100644 +--- a/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts +@@ -94,8 +94,8 @@ __overrides__ { + i2c6 = <&frag100>, "target?=0", + <&frag100>, "target-path=i2c6"; + addr = <&emc2301>,"reg:0"; +- minpwm = <&emc2301>,"emc2305,pwm-min;0"; +- maxpwm = <&emc2301>,"emc2305,pwm-max;0"; ++ minpwm = <&emc2301>,"emc2305,pwm-min.0"; ++ maxpwm = <&emc2301>,"emc2305,pwm-max.0"; + midtemp = <&fanmid0>,"temperature:0"; + midtemp_hyst = <&fanmid0>,"hysteresis:0"; + maxtemp = <&fanmax0>,"temperature:0"; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 24 Apr 2023 18:32:45 +0100 +Subject: [PATCH 737/784] drm/vc4: Limit max_bpc to 8 on Pi0-3 + +Pi 0-3 have no deep colour support and only 24bpp output, +so max_bpc should remain as 8. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 3c60c93c0f88..168ff60b7be6 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -783,7 +783,6 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, + + drm_connector_attach_colorspace_property(connector); + drm_connector_attach_tv_margin_properties(connector); +- drm_connector_attach_max_bpc_property(connector, 8, 12); + + connector->polled = (DRM_CONNECTOR_POLL_CONNECT | + DRM_CONNECTOR_POLL_DISCONNECT); +@@ -792,8 +791,12 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, + connector->doublescan_allowed = 0; + connector->stereo_allowed = 1; + +- if (vc4_hdmi->variant->supports_hdr) ++ if (vc4_hdmi->variant->supports_hdr) { ++ drm_connector_attach_max_bpc_property(connector, 8, 12); + drm_connector_attach_hdr_output_metadata_property(connector); ++ } else { ++ drm_connector_attach_max_bpc_property(connector, 8, 8); ++ } + + vc4_hdmi_attach_broadcast_rgb_property(dev, vc4_hdmi); + vc4_hdmi_attach_output_format_property(dev, vc4_hdmi); +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 24 Apr 2023 11:48:31 +0100 +Subject: [PATCH 738/784] serial: 8250: Add NOMSI bug for bcm2835aux + +The BCM2835 mini-UART has no modem status interrupt, causing all +transmission to stop, never to use, if a speed change ever happens +while the CTS signal is high. + +Add a simple polling mechanism in order to allow recovery in that +situation. + +Signed-off-by: Phil Elwell +--- + drivers/tty/serial/8250/8250.h | 1 + + drivers/tty/serial/8250/8250_bcm2835aux.c | 1 + + drivers/tty/serial/8250/8250_core.c | 15 +++++++++++++++ + drivers/tty/serial/8250/8250_port.c | 9 +++++++++ + 4 files changed, 26 insertions(+) + +diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h +index 1e8fe44a7099..6bc62a55449e 100644 +--- a/drivers/tty/serial/8250/8250.h ++++ b/drivers/tty/serial/8250/8250.h +@@ -93,6 +93,7 @@ struct serial8250_config { + #define UART_BUG_THRE BIT(3) /* UART has buggy THRE reassertion */ + #define UART_BUG_PARITY BIT(4) /* UART mishandles parity if FIFO enabled */ + #define UART_BUG_TXRACE BIT(5) /* UART Tx fails to set remote DR */ ++#define UART_BUG_NOMSI BIT(6) /* UART has no modem status interrupt */ + + + #ifdef CONFIG_SERIAL_8250_SHARE_IRQ +diff --git a/drivers/tty/serial/8250/8250_bcm2835aux.c b/drivers/tty/serial/8250/8250_bcm2835aux.c +index 43db1816fad6..82e56349dc7a 100644 +--- a/drivers/tty/serial/8250/8250_bcm2835aux.c ++++ b/drivers/tty/serial/8250/8250_bcm2835aux.c +@@ -109,6 +109,7 @@ static int bcm2835aux_serial_probe(struct platform_device *pdev) + UPF_SKIP_TEST | UPF_IOREMAP; + up.port.rs485_config = serial8250_em485_config; + up.port.rs485_supported = serial8250_em485_supported; ++ up.bugs |= UART_BUG_NOMSI; + up.rs485_start_tx = bcm2835aux_rs485_start_tx; + up.rs485_stop_tx = bcm2835aux_rs485_stop_tx; + +diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c +index 81a5dab1a828..1da174080bfc 100644 +--- a/drivers/tty/serial/8250/8250_core.c ++++ b/drivers/tty/serial/8250/8250_core.c +@@ -252,6 +252,18 @@ static void serial8250_timeout(struct timer_list *t) + mod_timer(&up->timer, jiffies + uart_poll_timeout(&up->port)); + } + ++static void serial8250_cts_poll_timeout(struct timer_list *t) ++{ ++ struct uart_8250_port *up = from_timer(up, t, timer); ++ unsigned long flags; ++ ++ spin_lock_irqsave(&up->port.lock, flags); ++ serial8250_modem_status(up); ++ spin_unlock_irqrestore(&up->port.lock, flags); ++ if (up->port.hw_stopped) ++ mod_timer(&up->timer, jiffies + 1); ++} ++ + static void serial8250_backup_timeout(struct timer_list *t) + { + struct uart_8250_port *up = from_timer(up, t, timer); +@@ -314,6 +326,9 @@ static void univ8250_setup_timer(struct uart_8250_port *up) + uart_poll_timeout(port) + HZ / 5); + } + ++ if (up->bugs & UART_BUG_NOMSI) ++ up->timer.function = serial8250_cts_poll_timeout; ++ + /* + * If the "interrupt" for this port doesn't correspond with any + * hardware interrupt, we use a timer-based system. The original +diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c +index b8e8a96c3eb6..8821703f9a14 100644 +--- a/drivers/tty/serial/8250/8250_port.c ++++ b/drivers/tty/serial/8250/8250_port.c +@@ -1559,6 +1559,9 @@ static void serial8250_stop_tx(struct uart_port *port) + serial_icr_write(up, UART_ACR, up->acr); + } + serial8250_rpm_put(up); ++ ++ if (port->hw_stopped && (up->bugs & UART_BUG_NOMSI)) ++ mod_timer(&up->timer, jiffies + 1); + } + + static inline void __start_tx(struct uart_port *port) +@@ -1669,6 +1672,9 @@ static void serial8250_start_tx(struct uart_port *port) + struct uart_8250_port *up = up_to_u8250p(port); + struct uart_8250_em485 *em485 = up->em485; + ++ if (up->bugs & UART_BUG_NOMSI) ++ del_timer(&up->timer); ++ + if (!port->x_char && uart_circ_empty(&port->state->xmit)) + return; + +@@ -1889,6 +1895,9 @@ unsigned int serial8250_modem_status(struct uart_8250_port *up) + uart_handle_cts_change(port, status & UART_MSR_CTS); + + wake_up_interruptible(&port->state->port.delta_msr_wait); ++ } else if (up->bugs & UART_BUG_NOMSI && port->hw_stopped && ++ status & UART_MSR_CTS) { ++ uart_handle_cts_change(port, status & UART_MSR_CTS); + } + + return status; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 25 Apr 2023 11:49:41 +0100 +Subject: [PATCH 739/784] Bluetooth: hci_sync: Add fallback-bd-address prop + +The kernel Bluetooth framework understands that devices may not +be programmed with valid Bluetooth addresses. It also has the ability +to override a Bluetooth address with the value of the local-bd-address +DT property, but it ignores the validity of the existing address when +doing so. + +Add a new boolean property, fallback-bd-address, which indicates that +the given local-bd-address property should only be used if the device +does not already have a valid BDADDR. + +Signed-off-by: Phil Elwell +--- + net/bluetooth/hci_sync.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c +index e8b78104a407..364853adef66 100644 +--- a/net/bluetooth/hci_sync.c ++++ b/net/bluetooth/hci_sync.c +@@ -4529,6 +4529,7 @@ static const struct { + */ + static int hci_dev_setup_sync(struct hci_dev *hdev) + { ++ struct fwnode_handle *fwnode = dev_fwnode(hdev->dev.parent); + int ret = 0; + bool invalid_bdaddr; + size_t i; +@@ -4557,7 +4558,9 @@ static int hci_dev_setup_sync(struct hci_dev *hdev) + + if (!ret) { + if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks)) { +- if (!bacmp(&hdev->public_addr, BDADDR_ANY)) ++ if (!bacmp(&hdev->public_addr, BDADDR_ANY) && ++ (invalid_bdaddr || ++ !fwnode_property_present(fwnode, "fallback-bd-address"))) + hci_dev_get_bd_addr_from_property(hdev); + + if (bacmp(&hdev->public_addr, BDADDR_ANY) && +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 6 Apr 2023 10:38:40 +0100 +Subject: [PATCH 740/784] Bluetooth: hci_bcm: Add more invalid BDADDRs + +The kernel needs to recognise the default BDADDRs used by the Bluetooth +modems, so add a few more that we care about. + +Signed-off-by: Phil Elwell +--- + drivers/bluetooth/btbcm.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c +index de2ea589aa49..1327a0d7e51d 100644 +--- a/drivers/bluetooth/btbcm.c ++++ b/drivers/bluetooth/btbcm.c +@@ -24,11 +24,15 @@ + #define BDADDR_BCM20702A1 (&(bdaddr_t) {{0x00, 0x00, 0xa0, 0x02, 0x70, 0x20}}) + #define BDADDR_BCM2076B1 (&(bdaddr_t) {{0x79, 0x56, 0x00, 0xa0, 0x76, 0x20}}) + #define BDADDR_BCM43430A0 (&(bdaddr_t) {{0xac, 0x1f, 0x12, 0xa0, 0x43, 0x43}}) ++#define BDADDR_BCM43430A1 (&(bdaddr_t) {{0xac, 0x1f, 0x12, 0xa1, 0x43, 0x43}}) ++#define BDADDR_BCM43430B0 (&(bdaddr_t) {{0xac, 0x1f, 0x37, 0xb0, 0x43, 0x43}}) + #define BDADDR_BCM4324B3 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb3, 0x24, 0x43}}) + #define BDADDR_BCM4330B1 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb1, 0x30, 0x43}}) + #define BDADDR_BCM4334B0 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb0, 0x34, 0x43}}) ++#define BDADDR_BCM4345C0 (&(bdaddr_t) {{0xac, 0x1f, 0x00, 0xc0, 0x45, 0x43}}) + #define BDADDR_BCM4345C5 (&(bdaddr_t) {{0xac, 0x1f, 0x00, 0xc5, 0x45, 0x43}}) + #define BDADDR_BCM43341B (&(bdaddr_t) {{0xac, 0x1f, 0x00, 0x1b, 0x34, 0x43}}) ++#define BDADDR_BCM43438 (&(bdaddr_t) {{0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}}) + + #define BCM_FW_NAME_LEN 64 + #define BCM_FW_NAME_COUNT_MAX 4 +@@ -122,8 +126,12 @@ int btbcm_check_bdaddr(struct hci_dev *hdev) + !bacmp(&bda->bdaddr, BDADDR_BCM4324B3) || + !bacmp(&bda->bdaddr, BDADDR_BCM4330B1) || + !bacmp(&bda->bdaddr, BDADDR_BCM4334B0) || ++ !bacmp(&bda->bdaddr, BDADDR_BCM4345C0) || + !bacmp(&bda->bdaddr, BDADDR_BCM4345C5) || + !bacmp(&bda->bdaddr, BDADDR_BCM43430A0) || ++ !bacmp(&bda->bdaddr, BDADDR_BCM43430A1) || ++ !bacmp(&bda->bdaddr, BDADDR_BCM43430B0) || ++ !bacmp(&bda->bdaddr, BDADDR_BCM43438) || + !bacmp(&bda->bdaddr, BDADDR_BCM43341B)) { + /* Try falling back to BDADDR EFI variable */ + if (btbcm_set_bdaddr_from_efi(hdev) != 0) { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 14 Feb 2023 11:20:58 +0000 +Subject: [PATCH 741/784] ARM: dts: bcm27xx: Enable kernel Bluetooth + +Change the base Device Tree files so that by default the kernel is +responsible for initialisation of the onboard Bluetooth modems. +Use dtparam=krnbt=off to revert to the old behaviour. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708-rpi-bt.dtsi | 18 ++++++++++++++--- + arch/arm/boot/dts/bcm271x-rpi-bt.dtsi | 18 ++++++++++++++--- + arch/arm/boot/dts/overlays/README | 11 ++++++++-- + .../boot/dts/overlays/disable-bt-overlay.dts | 7 +------ + .../boot/dts/overlays/miniuart-bt-overlay.dts | 20 ++++++------------- + 5 files changed, 46 insertions(+), 28 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi-bt.dtsi b/arch/arm/boot/dts/bcm2708-rpi-bt.dtsi +index a18f80af97d3..98555528adae 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-bt.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi-bt.dtsi +@@ -5,22 +5,34 @@ bt: bluetooth { + compatible = "brcm,bcm43438-bt"; + max-speed = <3000000>; + shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>; +- status = "disabled"; ++ local-bd-address = [ 00 00 00 00 00 00 ]; ++ fallback-bd-address; // Don't override a valid address ++ status = "okay"; + }; + }; + + &uart1 { + minibt: bluetooth { + compatible = "brcm,bcm43438-bt"; +- max-speed = <460800>; ++ max-speed = <230400>; + shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>; ++ local-bd-address = [ 00 00 00 00 00 00 ]; ++ fallback-bd-address; // Don't override a valid address + status = "disabled"; + }; + }; + + / { ++ aliases { ++ bluetooth = &bt; ++ }; ++ + __overrides__ { ++ bdaddr = <&bt>,"local-bd-address[", ++ <&bt>,"fallback-bd-address?=0", ++ <&minibt>,"local-bd-address[", ++ <&minibt>,"fallback-bd-address?=0"; + krnbt = <&bt>,"status"; +- krnbt_baudrate = <&bt>,"max-speed:0"; ++ krnbt_baudrate = <&bt>,"max-speed:0", <&minibt>,"max-speed:0"; + }; + }; +diff --git a/arch/arm/boot/dts/bcm271x-rpi-bt.dtsi b/arch/arm/boot/dts/bcm271x-rpi-bt.dtsi +index 6b9b79f74cf3..400efdc5f03c 100644 +--- a/arch/arm/boot/dts/bcm271x-rpi-bt.dtsi ++++ b/arch/arm/boot/dts/bcm271x-rpi-bt.dtsi +@@ -5,22 +5,34 @@ bt: bluetooth { + compatible = "brcm,bcm43438-bt"; + max-speed = <3000000>; + shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; +- status = "disabled"; ++ local-bd-address = [ 00 00 00 00 00 00 ]; ++ fallback-bd-address; // Don't override a valid address ++ status = "okay"; + }; + }; + + &uart1 { + minibt: bluetooth { + compatible = "brcm,bcm43438-bt"; +- max-speed = <460800>; ++ max-speed = <230400>; + shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>; ++ local-bd-address = [ 00 00 00 00 00 00 ]; ++ fallback-bd-address; // Don't override a valid address + status = "disabled"; + }; + }; + + / { ++ aliases { ++ bluetooth = &bt; ++ }; ++ + __overrides__ { ++ bdaddr = <&bt>,"local-bd-address[", ++ <&bt>,"fallback-bd-address?=0", ++ <&minibt>,"local-bd-address[", ++ <&minibt>,"fallback-bd-address?=0"; + krnbt = <&bt>,"status"; +- krnbt_baudrate = <&bt>,"max-speed:0"; ++ krnbt_baudrate = <&bt>,"max-speed:0", <&minibt>,"max-speed:0"; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 52d000a1d586..911a9c9ac190 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -144,6 +144,13 @@ Params: + See /sys/kernel/debug/raspberrypi_axi_monitor + for the results. + ++ bdaddr Set an alternative Bluetooth address (BDADDR). ++ The value should be a 6-byte hexadecimal value, ++ with or without colon separators, written least- ++ significant-byte first. For example, ++ bdaddr=06:05:04:03:02:01 ++ will set the BDADDR to 01:02:03:04:05:06. ++ + cam0_reg Enables CAM 0 regulator. + Only required on CM1 & 3. + +@@ -219,9 +226,9 @@ Params: + i2s Set to "on" to enable the i2s interface + (default "off") + +- krnbt Set to "on" to enable autoprobing of Bluetooth ++ krnbt Set to "off" to disable autoprobing of Bluetooth + driver without need of hciattach/btattach +- (default "off") ++ (default "on") + + krnbt_baudrate Set the baudrate of the PL011 UART when used + with krnbt=on +diff --git a/arch/arm/boot/dts/overlays/disable-bt-overlay.dts b/arch/arm/boot/dts/overlays/disable-bt-overlay.dts +index d5a66e5d76a9..f3a8af1375f0 100644 +--- a/arch/arm/boot/dts/overlays/disable-bt-overlay.dts ++++ b/arch/arm/boot/dts/overlays/disable-bt-overlay.dts +@@ -1,12 +1,7 @@ + /dts-v1/; + /plugin/; + +-/* Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15. +- To disable the systemd service that initialises the modem so it doesn't use +- the UART: +- +- sudo systemctl disable hciuart +-*/ ++/* Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15. */ + + #include + +diff --git a/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts b/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts +index da49f14a0940..0a77f095fd86 100644 +--- a/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts ++++ b/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts +@@ -40,7 +40,7 @@ fragment@2 { + target = <&uart1>; + __overlay__ { + pinctrl-names = "default"; +- pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>; ++ pinctrl-0 = <&uart1_pins>; + status = "okay"; + }; + }; +@@ -57,23 +57,13 @@ __overlay__ { + fragment@4 { + target = <&uart1_pins>; + __overlay__ { +- brcm,pins = <32 33>; ++ brcm,pins = <32 33 30 31>; + brcm,function = <2>; /* alt5=UART1 */ +- brcm,pull = <0 2>; ++ brcm,pull = <0 2 2 0>; + }; + }; + + fragment@5 { +- target = <&gpio>; +- __overlay__ { +- fake_bt_cts: fake_bt_cts { +- brcm,pins = <31>; +- brcm,function = <1>; /* output */ +- }; +- }; +- }; +- +- fragment@6 { + target-path = "/aliases"; + __overlay__ { + serial0 = "/soc/serial@7e201000"; +@@ -81,13 +71,15 @@ __overlay__ { + }; + }; + +- fragment@7 { ++ fragment@6 { + target = <&minibt>; + minibt_frag: __overlay__ { ++ status = "okay"; + }; + }; + + __overrides__ { + krnbt = <&minibt_frag>,"status"; ++ krnbt_baudrate = <&minibt_frag>,"max-speed:0"; + }; + }; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 19 Apr 2023 15:13:48 +0100 +Subject: [PATCH 742/784] overlays: Update miniuart-bt now krnbt is default + +Now that the kernel controls the onboard Bluetooth initialisation by +default, the miniuart-bt overlay needs updating to match. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708-rpi-zero-w.dts | 6 ++++++ + arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 6 ++++++ + arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 6 ++++++ + arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts | 6 ++++++ + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 6 ++++++ + arch/arm/boot/dts/bcm2711-rpi-400.dts | 6 ++++++ + arch/arm/boot/dts/bcm2711-rpi-cm4.dts | 6 ++++++ + arch/arm/boot/dts/overlays/README | 13 ++++--------- + arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts | 8 +++----- + 9 files changed, 49 insertions(+), 14 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts +index 0da68c450ac0..d72c6bc7c963 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts +@@ -138,6 +138,12 @@ uart1_pins: uart1_pins { + brcm,pull; + }; + ++ uart1_bt_pins: uart1_bt_pins { ++ brcm,pins = <32 33 30 31>; ++ brcm,function = ; /* alt5=UART1 */ ++ brcm,pull = <0 2 2 0>; ++ }; ++ + audio_pins: audio_pins { + brcm,pins = <>; + brcm,function = <>; +diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts +index 2bbb2afd8eb8..9b7706688e33 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts +@@ -140,6 +140,12 @@ uart1_pins: uart1_pins { + brcm,pull; + }; + ++ uart1_bt_pins: uart1_bt_pins { ++ brcm,pins = <32 33 30 31>; ++ brcm,function = ; /* alt5=UART1 */ ++ brcm,pull = <0 2 2 0>; ++ }; ++ + audio_pins: audio_pins { + brcm,pins = <40 41>; + brcm,function = <4>; +diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +index 423f1f652d29..5ad1a6863d57 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +@@ -140,6 +140,12 @@ uart1_pins: uart1_pins { + brcm,pull; + }; + ++ uart1_bt_pins: uart1_bt_pins { ++ brcm,pins = <32 33>; ++ brcm,function = ; /* alt5=UART1 */ ++ brcm,pull = <0 2>; ++ }; ++ + audio_pins: audio_pins { + brcm,pins = <40 41>; + brcm,function = <4>; +diff --git a/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts b/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts +index fef3a60b97d5..56c7fbde0ac9 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-zero-2-w.dts +@@ -138,6 +138,12 @@ uart1_pins: uart1_pins { + brcm,pull; + }; + ++ uart1_bt_pins: uart1_bt_pins { ++ brcm,pins = <32 33 30 31>; ++ brcm,function = ; /* alt5=UART1 */ ++ brcm,pull = <0 2 2 0>; ++ }; ++ + audio_pins: audio_pins { + brcm,pins = <>; + brcm,function = <>; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index 3afc315077b1..f45a7a411593 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -445,6 +445,12 @@ uart1_pins: uart1_pins { + brcm,pull; + }; + ++ uart1_bt_pins: uart1_bt_pins { ++ brcm,pins = <32 33 30 31>; ++ brcm,function = ; /* alt5=UART1 */ ++ brcm,pull = <0 2 2 0>; ++ }; ++ + uart2_pins: uart2_pins { + brcm,pins = <0 1>; + brcm,function = ; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-400.dts b/arch/arm/boot/dts/bcm2711-rpi-400.dts +index b276f2d12af6..04584f067084 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-400.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-400.dts +@@ -445,6 +445,12 @@ uart1_pins: uart1_pins { + brcm,pull; + }; + ++ uart1_bt_pins: uart1_bt_pins { ++ brcm,pins = <32 33 30 31>; ++ brcm,function = ; /* alt5=UART1 */ ++ brcm,pull = <0 2 2 0>; ++ }; ++ + uart2_pins: uart2_pins { + brcm,pins = <0 1>; + brcm,function = ; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +index ece298cf2e30..64d755a98643 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +@@ -454,6 +454,12 @@ uart1_pins: uart1_pins { + brcm,pull; + }; + ++ uart1_bt_pins: uart1_bt_pins { ++ brcm,pins = <32 33 30 31>; ++ brcm,function = ; /* alt5=UART1 */ ++ brcm,pull = <0 2 2 0>; ++ }; ++ + uart2_pins: uart2_pins { + brcm,pins = <0 1>; + brcm,function = ; +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 911a9c9ac190..a46cf8c6ed24 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2887,17 +2887,12 @@ Params: speed SPI bus speed (default 32000000) + + + Name: miniuart-bt +-Info: Switch the onboard Bluetooth function on Pi 3B, 3B+, 3A+, 4B and Zero W ++Info: Switch the onboard Bluetooth function of a BT-equipped Raspberry Pi + to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & +- 15. Note that this may reduce the maximum usable baudrate. +- N.B. It is also necessary to edit /lib/systemd/system/hciuart.service +- and replace ttyAMA0 with ttyS0, unless using Raspbian or another +- distribution with udev rules that create /dev/serial0 and /dev/serial1, +- in which case use /dev/serial1 instead because it will always be +- correct. Furthermore, you must also set core_freq and core_freq_min to +- the same value in config.txt or the miniuart will not work. ++ 15. Note that this option uses a lower baudrate, and should only be used ++ with low-bandwidth peripherals. + Load: dtoverlay=miniuart-bt,= +-Params: krnbt Set to "on" to enable autoprobing of Bluetooth ++Params: krnbt Set to "off" to disable autoprobing of Bluetooth + driver without need of hciattach/btattach + + +diff --git a/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts b/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts +index 0a77f095fd86..757e5cd3c4e8 100644 +--- a/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts ++++ b/arch/arm/boot/dts/overlays/miniuart-bt-overlay.dts +@@ -55,11 +55,9 @@ __overlay__ { + }; + + fragment@4 { +- target = <&uart1_pins>; ++ target = <&uart1>; + __overlay__ { +- brcm,pins = <32 33 30 31>; +- brcm,function = <2>; /* alt5=UART1 */ +- brcm,pull = <0 2 2 0>; ++ pinctrl-0 = <&uart1_bt_pins>; + }; + }; + +@@ -68,6 +66,7 @@ fragment@5 { + __overlay__ { + serial0 = "/soc/serial@7e201000"; + serial1 = "/soc/serial@7e215040"; ++ bluetooth = "/soc/serial@7e215040/bluetooth"; + }; + }; + +@@ -80,6 +79,5 @@ minibt_frag: __overlay__ { + + __overrides__ { + krnbt = <&minibt_frag>,"status"; +- krnbt_baudrate = <&minibt_frag>,"max-speed:0"; + }; + }; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 23 Feb 2023 09:34:12 +0000 +Subject: [PATCH 743/784] Revert "amba_pl011: Don't use DT aliases for + numbering" + +This reverts commit c2fa32a8dae4c4b2638c9f4de5e398e98460e693. + +Consistent, logical UART numbering is desirable, so remove the +effective revert. + +See: https://forums.raspberrypi.com/viewtopic.php?t=347868 + +Signed-off-by: Phil Elwell +--- + drivers/tty/serial/amba-pl011.c | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c +index 2940e22d386c..e16f5d5baee1 100644 +--- a/drivers/tty/serial/amba-pl011.c ++++ b/drivers/tty/serial/amba-pl011.c +@@ -2654,7 +2654,6 @@ static struct uart_driver amba_reg = { + .cons = AMBA_CONSOLE, + }; + +-#if 0 + static int pl011_probe_dt_alias(int index, struct device *dev) + { + struct device_node *np; +@@ -2686,7 +2685,6 @@ static int pl011_probe_dt_alias(int index, struct device *dev) + + return ret; + } +-#endif + + /* unregisters the driver also if no more ports are left */ + static void pl011_unregister_port(struct uart_amba_port *uap) +@@ -2738,12 +2736,7 @@ static int pl011_setup_port(struct device *dev, struct uart_amba_port *uap, + if (IS_ERR(base)) + return PTR_ERR(base); + +- /* Don't use DT serial aliases - it causes the device to +- be renumbered to ttyAMA1 if it is the second serial port in the +- system, even though the other one is ttyS0. The 8250 driver +- doesn't use this logic, so always remains ttyS0. + index = pl011_probe_dt_alias(index, dev); +- */ + + uap->port.dev = dev; + uap->port.mapbase = mmiobase->start; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 24 Feb 2023 14:53:48 +0000 +Subject: [PATCH 744/784] ARM: dts: bcm2711: Add extra serial aliases + +With UART numbering from DT aliases re-enabled, add aliases for the +additional BCM2711 UARTs. Also use the opportunity to remove some +DTS duplication. + +See: https://forums.raspberrypi.com/viewtopic.php?t=347868 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 19 ------------------ + arch/arm/boot/dts/bcm2711-rpi-400.dts | 19 ------------------ + arch/arm/boot/dts/bcm2711-rpi-cm4.dts | 19 ------------------ + arch/arm/boot/dts/bcm2711-rpi-cm4s.dts | 15 +++----------- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 27 ++++++++++++++++++++++++++ + 5 files changed, 30 insertions(+), 69 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index f45a7a411593..007062645a3e 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -268,25 +268,6 @@ chosen { + bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0"; + }; + +- aliases { +- serial0 = &uart1; +- serial1 = &uart0; +- mmc0 = &emmc2; +- mmc1 = &mmcnr; +- mmc2 = &sdhost; +- i2c3 = &i2c3; +- i2c4 = &i2c4; +- i2c5 = &i2c5; +- i2c6 = &i2c6; +- i2c20 = &ddc0; +- i2c21 = &ddc1; +- spi3 = &spi3; +- spi4 = &spi4; +- spi5 = &spi5; +- spi6 = &spi6; +- /delete-property/ intc; +- }; +- + /delete-node/ wifi-pwrseq; + }; + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-400.dts b/arch/arm/boot/dts/bcm2711-rpi-400.dts +index 04584f067084..55188ede182a 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-400.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-400.dts +@@ -268,25 +268,6 @@ chosen { + bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0"; + }; + +- aliases { +- serial0 = &uart1; +- serial1 = &uart0; +- mmc0 = &emmc2; +- mmc1 = &mmcnr; +- mmc2 = &sdhost; +- i2c3 = &i2c3; +- i2c4 = &i2c4; +- i2c5 = &i2c5; +- i2c6 = &i2c6; +- i2c20 = &ddc0; +- i2c21 = &ddc1; +- spi3 = &spi3; +- spi4 = &spi4; +- spi5 = &spi5; +- spi6 = &spi6; +- /delete-property/ intc; +- }; +- + /delete-node/ wifi-pwrseq; + }; + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +index 64d755a98643..a987a070e706 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +@@ -277,25 +277,6 @@ chosen { + bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0"; + }; + +- aliases { +- serial0 = &uart1; +- serial1 = &uart0; +- mmc0 = &emmc2; +- mmc1 = &mmcnr; +- mmc2 = &sdhost; +- i2c3 = &i2c3; +- i2c4 = &i2c4; +- i2c5 = &i2c5; +- i2c6 = &i2c6; +- i2c20 = &ddc0; +- i2c21 = &ddc1; +- spi3 = &spi3; +- spi4 = &spi4; +- spi5 = &spi5; +- spi6 = &spi6; +- /delete-property/ intc; +- }; +- + /delete-node/ wifi-pwrseq; + }; + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts +index fc9e1e423a0d..154ae2ac1440 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts +@@ -163,18 +163,9 @@ chosen { + + aliases { + serial0 = &uart0; +- mmc0 = &emmc2; +- mmc1 = &mmcnr; +- mmc2 = &sdhost; +- i2c3 = &i2c3; +- i2c4 = &i2c4; +- i2c5 = &i2c5; +- i2c6 = &i2c6; +- spi3 = &spi3; +- spi4 = &spi4; +- spi5 = &spi5; +- spi6 = &spi6; +- /delete-property/ intc; ++ serial1 = &uart1; ++ /delete-property/ i2c20; ++ /delete-property/ i2c21; + }; + + /delete-node/ wifi-pwrseq; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index c1ad4791f6e2..bd5c29748fa1 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -26,6 +26,33 @@ arm-pmu { + chosen { + /delete-property/ stdout-path; + }; ++ ++ aliases { ++ uart2 = &uart2; ++ uart3 = &uart3; ++ uart4 = &uart4; ++ uart5 = &uart5; ++ serial0 = &uart1; ++ serial1 = &uart0; ++ serial2 = &uart2; ++ serial3 = &uart3; ++ serial4 = &uart4; ++ serial5 = &uart5; ++ mmc0 = &emmc2; ++ mmc1 = &mmcnr; ++ mmc2 = &sdhost; ++ i2c3 = &i2c3; ++ i2c4 = &i2c4; ++ i2c5 = &i2c5; ++ i2c6 = &i2c6; ++ i2c20 = &ddc0; ++ i2c21 = &ddc1; ++ spi3 = &spi3; ++ spi4 = &spi4; ++ spi5 = &spi5; ++ spi6 = &spi6; ++ /delete-property/ intc; ++ }; + }; + + &vc4 { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 27 Apr 2023 09:24:00 +0100 +Subject: [PATCH 745/784] configs: Enable XFRM interface support + +The XFRM_INTERFACE option enables "a virtual interface to route IPsec +traffic". Add that as a module, enabling statistics and "sub policy" +at the same time. + +See: https://github.com/raspberrypi/linux/issues/5446 + +Signed-off-by: Phil Elwell +--- + arch/arm/configs/bcm2709_defconfig | 3 +++ + arch/arm/configs/bcm2711_defconfig | 3 +++ + arch/arm/configs/bcmrpi_defconfig | 3 +++ + arch/arm64/configs/bcm2711_defconfig | 2 ++ + arch/arm64/configs/bcmrpi3_defconfig | 3 +++ + 5 files changed, 14 insertions(+) + +diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig +index da14a1d8814c..80e26b6df32c 100644 +--- a/arch/arm/configs/bcm2709_defconfig ++++ b/arch/arm/configs/bcm2709_defconfig +@@ -74,6 +74,9 @@ CONFIG_NET=y + CONFIG_PACKET=y + CONFIG_UNIX=y + CONFIG_XFRM_USER=y ++CONFIG_XFRM_INTERFACE=m ++CONFIG_XFRM_SUB_POLICY=y ++CONFIG_XFRM_STATISTICS=y + CONFIG_NET_KEY=m + CONFIG_INET=y + CONFIG_IP_MULTICAST=y +diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig +index fdf724c70794..b71c5409090d 100644 +--- a/arch/arm/configs/bcm2711_defconfig ++++ b/arch/arm/configs/bcm2711_defconfig +@@ -74,6 +74,9 @@ CONFIG_NET=y + CONFIG_PACKET=y + CONFIG_UNIX=y + CONFIG_XFRM_USER=y ++CONFIG_XFRM_INTERFACE=m ++CONFIG_XFRM_SUB_POLICY=y ++CONFIG_XFRM_STATISTICS=y + CONFIG_NET_KEY=m + CONFIG_INET=y + CONFIG_IP_MULTICAST=y +diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig +index 80d640589e5c..ca3d562f71f9 100644 +--- a/arch/arm/configs/bcmrpi_defconfig ++++ b/arch/arm/configs/bcmrpi_defconfig +@@ -69,6 +69,9 @@ CONFIG_NET=y + CONFIG_PACKET=y + CONFIG_UNIX=y + CONFIG_XFRM_USER=y ++CONFIG_XFRM_INTERFACE=m ++CONFIG_XFRM_SUB_POLICY=y ++CONFIG_XFRM_STATISTICS=y + CONFIG_NET_KEY=m + CONFIG_INET=y + CONFIG_IP_MULTICAST=y +diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig +index bf6c180b27af..7f69a5f79dcd 100644 +--- a/arch/arm64/configs/bcm2711_defconfig ++++ b/arch/arm64/configs/bcm2711_defconfig +@@ -78,6 +78,8 @@ CONFIG_NET=y + CONFIG_PACKET=y + CONFIG_UNIX=y + CONFIG_XFRM_USER=m ++CONFIG_XFRM_INTERFACE=m ++CONFIG_XFRM_SUB_POLICY=y + CONFIG_XFRM_STATISTICS=y + CONFIG_NET_KEY=m + CONFIG_INET=y +diff --git a/arch/arm64/configs/bcmrpi3_defconfig b/arch/arm64/configs/bcmrpi3_defconfig +index 473df9c4e125..31de7c40287c 100644 +--- a/arch/arm64/configs/bcmrpi3_defconfig ++++ b/arch/arm64/configs/bcmrpi3_defconfig +@@ -77,6 +77,9 @@ CONFIG_NET=y + CONFIG_PACKET=y + CONFIG_UNIX=y + CONFIG_XFRM_USER=y ++CONFIG_XFRM_INTERFACE=m ++CONFIG_XFRM_SUB_POLICY=y ++CONFIG_XFRM_STATISTICS=y + CONFIG_NET_KEY=m + CONFIG_INET=y + CONFIG_IP_MULTICAST=y +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 5 May 2023 11:25:48 +0100 +Subject: [PATCH 746/784] pinctrl: bcm2835: Workaround for edge IRQ loss + +It has been observed that edge events can be lost when GPIO edges occur +close to each other. Investigation suggests this is due to a hardware +bug, although no mechanism has been identified. + +Work around the event loss by moving the IRQ acknowledgement into the +main ISR, adding missing events by explicit level-change detection. + +See: https://forums.raspberrypi.com/viewtopic.php?t=350295 + +Signed-off-by: Phil Elwell +--- + drivers/pinctrl/bcm/pinctrl-bcm2835.c | 23 ++++++++++++++++++----- + 1 file changed, 18 insertions(+), 5 deletions(-) + +diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +index d9758d1d3b84..3c5d72acb346 100644 +--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +@@ -422,15 +422,32 @@ static void bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc, + unsigned long events; + unsigned offset; + unsigned gpio; ++ u32 levs, levs2; + + events = bcm2835_gpio_rd(pc, GPEDS0 + bank * 4); ++ levs = bcm2835_gpio_rd(pc, GPLEV0 + bank * 4); + events &= mask; + events &= pc->enabled_irq_map[bank]; ++ bcm2835_gpio_wr(pc, GPEDS0 + bank * 4, events); ++ ++retry: + for_each_set_bit(offset, &events, 32) { + gpio = (32 * bank) + offset; + generic_handle_domain_irq(pc->gpio_chip.irq.domain, + gpio); + } ++ events = bcm2835_gpio_rd(pc, GPEDS0 + bank * 4); ++ levs2 = bcm2835_gpio_rd(pc, GPLEV0 + bank * 4); ++ ++ events |= levs2 & ~levs & bcm2835_gpio_rd(pc, GPREN0 + bank * 4); ++ events |= ~levs2 & levs & bcm2835_gpio_rd(pc, GPFEN0 + bank * 4); ++ events &= mask; ++ events &= pc->enabled_irq_map[bank]; ++ if (events) { ++ bcm2835_gpio_wr(pc, GPEDS0 + bank * 4, events); ++ levs = levs2; ++ goto retry; ++ } + } + + static void bcm2835_gpio_irq_handler(struct irq_desc *desc) +@@ -670,11 +687,7 @@ static int bcm2835_gpio_irq_set_type(struct irq_data *data, unsigned int type) + + static void bcm2835_gpio_irq_ack(struct irq_data *data) + { +- struct gpio_chip *chip = irq_data_get_irq_chip_data(data); +- struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); +- unsigned gpio = irqd_to_hwirq(data); +- +- bcm2835_gpio_set_bit(pc, GPEDS0, gpio); ++ /* Nothing to do - the main interrupt handler includes the ACK */ + } + + static int bcm2835_gpio_irq_set_wake(struct irq_data *data, unsigned int on) +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jose Maria Casanova Crespo +Date: Tue, 7 Feb 2023 13:54:02 +0100 +Subject: [PATCH 747/784] drm/v3d: New debugfs end-points to query GPU usage + stats. + +Two new debugfs interfaces are implemented: + +- gpu_usage: exposes the total runtime since boot of each +of the 5 scheduling queues available at V3D (BIN, RENDER, +CSD, TFU, CACHE_CLEAN). So if the interface is queried at +two different points of time the usage percentage of each +of the queues can be calculated. + +- gpu_pid_usage: exposes the same information but to the +level of detail of each process using the V3D driver. The +runtime for process using the driver is stored. So the +percentages of usage by PID can be calculated with +measures at different timestamps. + +The storage of gpu_pid_usage stats is only done if +the debugfs interface is polled during the last 70 seconds. +If a process does not submit a GPU job during last 70 +seconds its stats will also be purged. + +Signed-off-by: Jose Maria Casanova Crespo +--- + drivers/gpu/drm/v3d/v3d_debugfs.c | 79 +++++++++++++++++ + drivers/gpu/drm/v3d/v3d_drv.h | 59 +++++++++++++ + drivers/gpu/drm/v3d/v3d_gem.c | 1 + + drivers/gpu/drm/v3d/v3d_irq.c | 5 ++ + drivers/gpu/drm/v3d/v3d_sched.c | 139 +++++++++++++++++++++++++++++- + 5 files changed, 282 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/v3d/v3d_debugfs.c b/drivers/gpu/drm/v3d/v3d_debugfs.c +index efbde124c296..c7d663a43d45 100644 +--- a/drivers/gpu/drm/v3d/v3d_debugfs.c ++++ b/drivers/gpu/drm/v3d/v3d_debugfs.c +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + #include + +@@ -202,6 +203,82 @@ static int v3d_debugfs_bo_stats(struct seq_file *m, void *unused) + return 0; + } + ++static int v3d_debugfs_gpu_usage(struct seq_file *m, void *unused) ++{ ++ struct drm_info_node *node = (struct drm_info_node *)m->private; ++ struct drm_device *dev = node->minor->dev; ++ struct v3d_dev *v3d = to_v3d_dev(dev); ++ struct v3d_queue_stats *queue_stats; ++ enum v3d_queue queue; ++ u64 timestamp = local_clock(); ++ u64 active_runtime; ++ ++ seq_printf(m, "timestamp;%llu;\n", local_clock()); ++ seq_printf(m, "\"QUEUE\";\"JOBS\";\"RUNTIME\";\"ACTIVE\";\n"); ++ for (queue = 0; queue < V3D_MAX_QUEUES; queue++) { ++ if (!v3d->queue[queue].sched.ready) ++ continue; ++ ++ queue_stats = &v3d->gpu_queue_stats[queue]; ++ mutex_lock(&queue_stats->lock); ++ v3d_sched_stats_update(queue_stats); ++ if (queue_stats->last_pid) ++ active_runtime = timestamp - queue_stats->last_exec_start; ++ else ++ active_runtime = 0; ++ ++ seq_printf(m, "%s;%d;%llu;%c;\n", ++ v3d_queue_to_string(queue), ++ queue_stats->jobs_sent, ++ queue_stats->runtime + active_runtime, ++ queue_stats->last_pid?'1':'0'); ++ mutex_unlock(&queue_stats->lock); ++ } ++ ++ return 0; ++} ++ ++static int v3d_debugfs_gpu_pid_usage(struct seq_file *m, void *unused) ++{ ++ struct drm_info_node *node = (struct drm_info_node *)m->private; ++ struct drm_device *dev = node->minor->dev; ++ struct v3d_dev *v3d = to_v3d_dev(dev); ++ struct v3d_queue_stats *queue_stats; ++ struct v3d_queue_pid_stats *cur; ++ enum v3d_queue queue; ++ u64 active_runtime; ++ u64 timestamp = local_clock(); ++ ++ seq_printf(m, "timestamp;%llu;\n", timestamp); ++ seq_printf(m, "\"QUEUE\";\"PID\",\"JOBS\";\"RUNTIME\";\"ACTIVE\";\n"); ++ for (queue = 0; queue < V3D_MAX_QUEUES; queue++) { ++ ++ if (!v3d->queue[queue].sched.ready) ++ continue; ++ ++ queue_stats = &v3d->gpu_queue_stats[queue]; ++ mutex_lock(&queue_stats->lock); ++ queue_stats->gpu_pid_stats_timeout = jiffies + V3D_QUEUE_STATS_TIMEOUT; ++ v3d_sched_stats_update(queue_stats); ++ list_for_each_entry(cur, &queue_stats->pid_stats_list, list) { ++ ++ if (cur->pid == queue_stats->last_pid) ++ active_runtime = timestamp - queue_stats->last_exec_start; ++ else ++ active_runtime = 0; ++ ++ seq_printf(m, "%s;%d;%d;%llu;%c;\n", ++ v3d_queue_to_string(queue), ++ cur->pid, cur->jobs_sent, ++ cur->runtime + active_runtime, ++ cur->pid == queue_stats->last_pid ? '1' : '0'); ++ } ++ mutex_unlock(&queue_stats->lock); ++ } ++ ++ return 0; ++} ++ + static int v3d_measure_clock(struct seq_file *m, void *unused) + { + struct drm_info_node *node = (struct drm_info_node *)m->private; +@@ -241,6 +318,8 @@ static const struct drm_info_list v3d_debugfs_list[] = { + {"v3d_regs", v3d_v3d_debugfs_regs, 0}, + {"measure_clock", v3d_measure_clock, 0}, + {"bo_stats", v3d_debugfs_bo_stats, 0}, ++ {"gpu_usage", v3d_debugfs_gpu_usage, 0}, ++ {"gpu_pid_usage", v3d_debugfs_gpu_pid_usage, 0}, + }; + + void +diff --git a/drivers/gpu/drm/v3d/v3d_drv.h b/drivers/gpu/drm/v3d/v3d_drv.h +index 58b8ccdcce8a..12042f75af9a 100644 +--- a/drivers/gpu/drm/v3d/v3d_drv.h ++++ b/drivers/gpu/drm/v3d/v3d_drv.h +@@ -21,6 +21,19 @@ struct reset_control; + + #define V3D_MAX_QUEUES (V3D_CACHE_CLEAN + 1) + ++static inline char * ++v3d_queue_to_string(enum v3d_queue queue) ++{ ++ switch (queue) { ++ case V3D_BIN: return "v3d_bin"; ++ case V3D_RENDER: return "v3d_render"; ++ case V3D_TFU: return "v3d_tfu"; ++ case V3D_CSD: return "v3d_csd"; ++ case V3D_CACHE_CLEAN: return "v3d_cache_clean"; ++ } ++ return "UNKNOWN"; ++} ++ + struct v3d_queue_state { + struct drm_gpu_scheduler sched; + +@@ -28,6 +41,44 @@ struct v3d_queue_state { + u64 emit_seqno; + }; + ++struct v3d_queue_pid_stats { ++ struct list_head list; ++ u64 runtime; ++ /* Time in jiffes.to purge the stats of this process. Every time a ++ * process sends a new job to the queue, this timeout is delayed by ++ * V3D_QUEUE_STATS_TIMEOUT while the gpu_pid_stats_timeout of the ++ * queue is not reached. ++ */ ++ unsigned long timeout_purge; ++ u32 jobs_sent; ++ pid_t pid; ++}; ++ ++struct v3d_queue_stats { ++ struct mutex lock; ++ u64 last_exec_start; ++ u64 last_exec_end; ++ u64 runtime; ++ u32 jobs_sent; ++ /* Time in jiffes to stop collecting gpu stats by process. This is ++ * increased by every access to*the debugfs interface gpu_pid_usage. ++ * If the debugfs is not used stats are not collected. ++ */ ++ unsigned long gpu_pid_stats_timeout; ++ pid_t last_pid; ++ struct list_head pid_stats_list; ++}; ++ ++/* pid_stats by process (v3d_queue_pid_stats) are recorded if there is an ++ * access to the gpu_pid_usageare debugfs interface for the last ++ * V3D_QUEUE_STATS_TIMEOUT (70s). ++ * ++ * The same timeout is used to purge the stats by process for those process ++ * that have not sent jobs this period. ++ */ ++#define V3D_QUEUE_STATS_TIMEOUT (70 * HZ) ++ ++ + /* Performance monitor object. The perform lifetime is controlled by userspace + * using perfmon related ioctls. A perfmon can be attached to a submit_cl + * request, and when this is the case, HW perf counters will be activated just +@@ -147,6 +198,8 @@ struct v3d_dev { + u32 num_allocated; + u32 pages_allocated; + } bo_stats; ++ ++ struct v3d_queue_stats gpu_queue_stats[V3D_MAX_QUEUES]; + }; + + static inline struct v3d_dev * +@@ -244,6 +297,11 @@ struct v3d_job { + */ + struct v3d_perfmon *perfmon; + ++ /* PID of the process that submitted the job that could be used to ++ * for collecting stats by process of gpu usage. ++ */ ++ pid_t client_pid; ++ + /* Callback for the freeing of the job on refcount going to 0. */ + void (*free)(struct kref *ref); + }; +@@ -408,6 +466,7 @@ void v3d_mmu_remove_ptes(struct v3d_bo *bo); + /* v3d_sched.c */ + int v3d_sched_init(struct v3d_dev *v3d); + void v3d_sched_fini(struct v3d_dev *v3d); ++void v3d_sched_stats_update(struct v3d_queue_stats *queue_stats); + + /* v3d_perfmon.c */ + void v3d_perfmon_get(struct v3d_perfmon *perfmon); +diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c +index cc1404b4f4b9..80c0e92ca87d 100644 +--- a/drivers/gpu/drm/v3d/v3d_gem.c ++++ b/drivers/gpu/drm/v3d/v3d_gem.c +@@ -516,6 +516,7 @@ v3d_job_init(struct v3d_dev *v3d, struct drm_file *file_priv, + job = *container; + job->v3d = v3d; + job->free = free; ++ job->client_pid = current->pid; + + ret = drm_sched_job_init(&job->base, &v3d_priv->sched_entity[queue], + v3d_priv); +diff --git a/drivers/gpu/drm/v3d/v3d_irq.c b/drivers/gpu/drm/v3d/v3d_irq.c +index 0f7a23f051df..5a966b6af360 100644 +--- a/drivers/gpu/drm/v3d/v3d_irq.c ++++ b/drivers/gpu/drm/v3d/v3d_irq.c +@@ -14,6 +14,7 @@ + */ + + #include ++#include + + #include "v3d_drv.h" + #include "v3d_regs.h" +@@ -100,6 +101,7 @@ v3d_irq(int irq, void *arg) + if (intsts & V3D_INT_FLDONE) { + struct v3d_fence *fence = + to_v3d_fence(v3d->bin_job->base.irq_fence); ++ v3d->gpu_queue_stats[V3D_BIN].last_exec_end = local_clock(); + + trace_v3d_bcl_irq(&v3d->drm, fence->seqno); + dma_fence_signal(&fence->base); +@@ -109,6 +111,7 @@ v3d_irq(int irq, void *arg) + if (intsts & V3D_INT_FRDONE) { + struct v3d_fence *fence = + to_v3d_fence(v3d->render_job->base.irq_fence); ++ v3d->gpu_queue_stats[V3D_RENDER].last_exec_end = local_clock(); + + trace_v3d_rcl_irq(&v3d->drm, fence->seqno); + dma_fence_signal(&fence->base); +@@ -118,6 +121,7 @@ v3d_irq(int irq, void *arg) + if (intsts & V3D_INT_CSDDONE) { + struct v3d_fence *fence = + to_v3d_fence(v3d->csd_job->base.irq_fence); ++ v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock(); + + trace_v3d_csd_irq(&v3d->drm, fence->seqno); + dma_fence_signal(&fence->base); +@@ -154,6 +158,7 @@ v3d_hub_irq(int irq, void *arg) + if (intsts & V3D_HUB_INT_TFUC) { + struct v3d_fence *fence = + to_v3d_fence(v3d->tfu_job->base.irq_fence); ++ v3d->gpu_queue_stats[V3D_TFU].last_exec_end = local_clock(); + + trace_v3d_tfu_irq(&v3d->drm, fence->seqno); + dma_fence_signal(&fence->base); +diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c +index 06238e6d7f5c..42a563aa7432 100644 +--- a/drivers/gpu/drm/v3d/v3d_sched.c ++++ b/drivers/gpu/drm/v3d/v3d_sched.c +@@ -19,6 +19,7 @@ + */ + + #include ++#include + + #include "v3d_drv.h" + #include "v3d_regs.h" +@@ -72,6 +73,114 @@ v3d_switch_perfmon(struct v3d_dev *v3d, struct v3d_job *job) + v3d_perfmon_start(v3d, job->perfmon); + } + ++/* ++ * Updates the scheduling stats of the gpu queues runtime for completed jobs. ++ * ++ * It should be called before any new job submission to the queue or before ++ * accessing the stats from the debugfs interface. ++ * ++ * It is expected that calls to this function are done with queue_stats->lock ++ * locked. ++ */ ++void ++v3d_sched_stats_update(struct v3d_queue_stats *queue_stats) ++{ ++ struct list_head *pid_stats_list = &queue_stats->pid_stats_list; ++ struct v3d_queue_pid_stats *cur, *tmp; ++ u64 runtime = 0; ++ bool store_pid_stats = ++ time_is_after_jiffies(queue_stats->gpu_pid_stats_timeout); ++ ++ /* If debugfs stats gpu_pid_usage has not been polled for a period, ++ * the pid stats collection is stopped and we purge any existing ++ * pid_stats. ++ * ++ * pid_stats are also purged for clients that have reached the ++ * timeout_purge because the process probably does not exist anymore. ++ */ ++ list_for_each_entry_safe_reverse(cur, tmp, pid_stats_list, list) { ++ if (!store_pid_stats || time_is_before_jiffies(cur->timeout_purge)) { ++ list_del(&cur->list); ++ kfree(cur); ++ } else { ++ break; ++ } ++ } ++ /* If a job has finished its stats are updated. */ ++ if (queue_stats->last_pid && queue_stats->last_exec_end) { ++ runtime = queue_stats->last_exec_end - ++ queue_stats->last_exec_start; ++ queue_stats->runtime += runtime; ++ ++ if (store_pid_stats) { ++ struct v3d_queue_pid_stats *pid_stats; ++ /* Last job info is always at the head of the list */ ++ pid_stats = list_first_entry_or_null(pid_stats_list, ++ struct v3d_queue_pid_stats, list); ++ if (pid_stats && ++ pid_stats->pid == queue_stats->last_pid) { ++ pid_stats->runtime += runtime; ++ } ++ } ++ queue_stats->last_pid = 0; ++ } ++} ++ ++/* ++ * Updates the queue usage adding the information of a new job that is ++ * about to be sent to the GPU to be executed. ++ */ ++int ++v3d_sched_stats_add_job(struct v3d_queue_stats *queue_stats, ++ struct drm_sched_job *sched_job) ++{ ++ ++ struct v3d_queue_pid_stats *pid_stats = NULL; ++ struct v3d_job *job = sched_job?to_v3d_job(sched_job):NULL; ++ struct v3d_queue_pid_stats *cur; ++ struct list_head *pid_stats_list = &queue_stats->pid_stats_list; ++ int ret = 0; ++ ++ mutex_lock(&queue_stats->lock); ++ ++ /* Completion of previous job requires an update of its runtime stats */ ++ v3d_sched_stats_update(queue_stats); ++ ++ queue_stats->last_exec_start = local_clock(); ++ queue_stats->last_exec_end = 0; ++ queue_stats->jobs_sent++; ++ queue_stats->last_pid = job->client_pid; ++ ++ /* gpu usage stats by process are being collected */ ++ if (time_is_after_jiffies(queue_stats->gpu_pid_stats_timeout)) { ++ list_for_each_entry(cur, pid_stats_list, list) { ++ if (cur->pid == job->client_pid) { ++ pid_stats = cur; ++ break; ++ } ++ } ++ /* pid_stats of this client is moved to the head of the list. */ ++ if (pid_stats) { ++ list_move(&pid_stats->list, pid_stats_list); ++ } else { ++ pid_stats = kzalloc(sizeof(struct v3d_queue_pid_stats), ++ GFP_KERNEL); ++ if (!pid_stats) { ++ ret = -ENOMEM; ++ goto err_mem; ++ } ++ pid_stats->pid = job->client_pid; ++ list_add(&pid_stats->list, pid_stats_list); ++ } ++ pid_stats->jobs_sent++; ++ pid_stats->timeout_purge = jiffies + V3D_QUEUE_STATS_TIMEOUT; ++ } ++ ++err_mem: ++ mutex_unlock(&queue_stats->lock); ++ return ret; ++} ++ + static struct dma_fence *v3d_bin_job_run(struct drm_sched_job *sched_job) + { + struct v3d_bin_job *job = to_bin_job(sched_job); +@@ -107,6 +216,7 @@ static struct dma_fence *v3d_bin_job_run(struct drm_sched_job *sched_job) + trace_v3d_submit_cl(dev, false, to_v3d_fence(fence)->seqno, + job->start, job->end); + ++ v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_BIN], sched_job); + v3d_switch_perfmon(v3d, &job->base); + + /* Set the current and end address of the control list. +@@ -158,6 +268,7 @@ static struct dma_fence *v3d_render_job_run(struct drm_sched_job *sched_job) + trace_v3d_submit_cl(dev, true, to_v3d_fence(fence)->seqno, + job->start, job->end); + ++ v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_RENDER], sched_job); + v3d_switch_perfmon(v3d, &job->base); + + /* XXX: Set the QCFG */ +@@ -190,6 +301,7 @@ v3d_tfu_job_run(struct drm_sched_job *sched_job) + + trace_v3d_submit_tfu(dev, to_v3d_fence(fence)->seqno); + ++ v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_TFU], sched_job); + V3D_WRITE(V3D_TFU_IIA, job->args.iia); + V3D_WRITE(V3D_TFU_IIS, job->args.iis); + V3D_WRITE(V3D_TFU_ICA, job->args.ica); +@@ -231,6 +343,7 @@ v3d_csd_job_run(struct drm_sched_job *sched_job) + + trace_v3d_submit_csd(dev, to_v3d_fence(fence)->seqno); + ++ v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_CSD], sched_job); + v3d_switch_perfmon(v3d, &job->base); + + for (i = 1; i <= 6; i++) +@@ -247,7 +360,10 @@ v3d_cache_clean_job_run(struct drm_sched_job *sched_job) + struct v3d_job *job = to_v3d_job(sched_job); + struct v3d_dev *v3d = job->v3d; + ++ v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_CACHE_CLEAN], ++ sched_job); + v3d_clean_caches(v3d); ++ v3d->gpu_queue_stats[V3D_CACHE_CLEAN].last_exec_end = local_clock(); + + return NULL; + } +@@ -385,8 +501,18 @@ v3d_sched_init(struct v3d_dev *v3d) + int hw_jobs_limit = 1; + int job_hang_limit = 0; + int hang_limit_ms = 500; ++ enum v3d_queue q; + int ret; + ++ for (q = 0; q < V3D_MAX_QUEUES; q++) { ++ INIT_LIST_HEAD(&v3d->gpu_queue_stats[q].pid_stats_list); ++ /* Setting timeout before current jiffies disables collecting ++ * pid_stats on scheduling init. ++ */ ++ v3d->gpu_queue_stats[q].gpu_pid_stats_timeout = jiffies - 1; ++ mutex_init(&v3d->gpu_queue_stats[q].lock); ++ } ++ + ret = drm_sched_init(&v3d->queue[V3D_BIN].sched, + &v3d_bin_sched_ops, + hw_jobs_limit, job_hang_limit, +@@ -440,9 +566,20 @@ void + v3d_sched_fini(struct v3d_dev *v3d) + { + enum v3d_queue q; ++ struct v3d_queue_stats *queue_stats; + + for (q = 0; q < V3D_MAX_QUEUES; q++) { +- if (v3d->queue[q].sched.ready) ++ if (v3d->queue[q].sched.ready) { ++ queue_stats = &v3d->gpu_queue_stats[q]; ++ mutex_lock(&queue_stats->lock); ++ /* Setting gpu_pid_stats_timeout to jiffies-1 will ++ * make v3d_sched_stats_update to purge all ++ * allocated pid_stats. ++ */ ++ queue_stats->gpu_pid_stats_timeout = jiffies - 1; ++ v3d_sched_stats_update(queue_stats); ++ mutex_unlock(&queue_stats->lock); + drm_sched_fini(&v3d->queue[q].sched); ++ } + } + } +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 9 May 2023 13:52:39 +0100 +Subject: [PATCH 748/784] ARM: dts: bcm2711-rpi-ds: Group the common pins + +Move common pin group declarations into the shared bcm2711-rpi-ds.dtsi. +No functional change. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 121 ------------------------- + arch/arm/boot/dts/bcm2711-rpi-400.dts | 121 ------------------------- + arch/arm/boot/dts/bcm2711-rpi-cm4.dts | 121 ------------------------- + arch/arm/boot/dts/bcm2711-rpi-cm4s.dts | 121 ------------------------- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 121 +++++++++++++++++++++++++ + 5 files changed, 121 insertions(+), 484 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index 007062645a3e..394a4fb09cbd 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -310,103 +310,6 @@ spidev1: spidev@1{ + }; + + &gpio { +- spi0_pins: spi0_pins { +- brcm,pins = <9 10 11>; +- brcm,function = ; +- }; +- +- spi0_cs_pins: spi0_cs_pins { +- brcm,pins = <8 7>; +- brcm,function = ; +- }; +- +- spi3_pins: spi3_pins { +- brcm,pins = <1 2 3>; +- brcm,function = ; +- }; +- +- spi3_cs_pins: spi3_cs_pins { +- brcm,pins = <0 24>; +- brcm,function = ; +- }; +- +- spi4_pins: spi4_pins { +- brcm,pins = <5 6 7>; +- brcm,function = ; +- }; +- +- spi4_cs_pins: spi4_cs_pins { +- brcm,pins = <4 25>; +- brcm,function = ; +- }; +- +- spi5_pins: spi5_pins { +- brcm,pins = <13 14 15>; +- brcm,function = ; +- }; +- +- spi5_cs_pins: spi5_cs_pins { +- brcm,pins = <12 26>; +- brcm,function = ; +- }; +- +- spi6_pins: spi6_pins { +- brcm,pins = <19 20 21>; +- brcm,function = ; +- }; +- +- spi6_cs_pins: spi6_cs_pins { +- brcm,pins = <18 27>; +- brcm,function = ; +- }; +- +- i2c0_pins: i2c0 { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c1_pins: i2c1 { +- brcm,pins = <2 3>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c3_pins: i2c3 { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c4_pins: i2c4 { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c5_pins: i2c5 { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c6_pins: i2c6 { +- brcm,pins = <22 23>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2s_pins: i2s { +- brcm,pins = <18 19 20 21>; +- brcm,function = ; +- }; +- +- sdio_pins: sdio_pins { +- brcm,pins = <34 35 36 37 38 39>; +- brcm,function = ; // alt3 = SD1 +- brcm,pull = <0 2 2 2 2 2>; +- }; +- + bt_pins: bt_pins { + brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0 + // to fool pinctrl +@@ -431,30 +334,6 @@ uart1_bt_pins: uart1_bt_pins { + brcm,function = ; /* alt5=UART1 */ + brcm,pull = <0 2 2 0>; + }; +- +- uart2_pins: uart2_pins { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart3_pins: uart3_pins { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart4_pins: uart4_pins { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart5_pins: uart5_pins { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; + }; + + &i2c0if { +diff --git a/arch/arm/boot/dts/bcm2711-rpi-400.dts b/arch/arm/boot/dts/bcm2711-rpi-400.dts +index 55188ede182a..b00cf745b2f4 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-400.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-400.dts +@@ -310,103 +310,6 @@ spidev1: spidev@1{ + }; + + &gpio { +- spi0_pins: spi0_pins { +- brcm,pins = <9 10 11>; +- brcm,function = ; +- }; +- +- spi0_cs_pins: spi0_cs_pins { +- brcm,pins = <8 7>; +- brcm,function = ; +- }; +- +- spi3_pins: spi3_pins { +- brcm,pins = <1 2 3>; +- brcm,function = ; +- }; +- +- spi3_cs_pins: spi3_cs_pins { +- brcm,pins = <0 24>; +- brcm,function = ; +- }; +- +- spi4_pins: spi4_pins { +- brcm,pins = <5 6 7>; +- brcm,function = ; +- }; +- +- spi4_cs_pins: spi4_cs_pins { +- brcm,pins = <4 25>; +- brcm,function = ; +- }; +- +- spi5_pins: spi5_pins { +- brcm,pins = <13 14 15>; +- brcm,function = ; +- }; +- +- spi5_cs_pins: spi5_cs_pins { +- brcm,pins = <12 26>; +- brcm,function = ; +- }; +- +- spi6_pins: spi6_pins { +- brcm,pins = <19 20 21>; +- brcm,function = ; +- }; +- +- spi6_cs_pins: spi6_cs_pins { +- brcm,pins = <18 27>; +- brcm,function = ; +- }; +- +- i2c0_pins: i2c0 { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c1_pins: i2c1 { +- brcm,pins = <2 3>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c3_pins: i2c3 { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c4_pins: i2c4 { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c5_pins: i2c5 { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c6_pins: i2c6 { +- brcm,pins = <22 23>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2s_pins: i2s { +- brcm,pins = <18 19 20 21>; +- brcm,function = ; +- }; +- +- sdio_pins: sdio_pins { +- brcm,pins = <34 35 36 37 38 39>; +- brcm,function = ; // alt3 = SD1 +- brcm,pull = <0 2 2 2 2 2>; +- }; +- + bt_pins: bt_pins { + brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0 + // to fool pinctrl +@@ -431,30 +334,6 @@ uart1_bt_pins: uart1_bt_pins { + brcm,function = ; /* alt5=UART1 */ + brcm,pull = <0 2 2 0>; + }; +- +- uart2_pins: uart2_pins { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart3_pins: uart3_pins { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart4_pins: uart4_pins { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart5_pins: uart5_pins { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; + }; + + &i2c0if { +diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +index a987a070e706..9826023f3fa6 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +@@ -319,103 +319,6 @@ spidev1: spidev@1{ + }; + + &gpio { +- spi0_pins: spi0_pins { +- brcm,pins = <9 10 11>; +- brcm,function = ; +- }; +- +- spi0_cs_pins: spi0_cs_pins { +- brcm,pins = <8 7>; +- brcm,function = ; +- }; +- +- spi3_pins: spi3_pins { +- brcm,pins = <1 2 3>; +- brcm,function = ; +- }; +- +- spi3_cs_pins: spi3_cs_pins { +- brcm,pins = <0 24>; +- brcm,function = ; +- }; +- +- spi4_pins: spi4_pins { +- brcm,pins = <5 6 7>; +- brcm,function = ; +- }; +- +- spi4_cs_pins: spi4_cs_pins { +- brcm,pins = <4 25>; +- brcm,function = ; +- }; +- +- spi5_pins: spi5_pins { +- brcm,pins = <13 14 15>; +- brcm,function = ; +- }; +- +- spi5_cs_pins: spi5_cs_pins { +- brcm,pins = <12 26>; +- brcm,function = ; +- }; +- +- spi6_pins: spi6_pins { +- brcm,pins = <19 20 21>; +- brcm,function = ; +- }; +- +- spi6_cs_pins: spi6_cs_pins { +- brcm,pins = <18 27>; +- brcm,function = ; +- }; +- +- i2c0_pins: i2c0 { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c1_pins: i2c1 { +- brcm,pins = <2 3>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c3_pins: i2c3 { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c4_pins: i2c4 { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c5_pins: i2c5 { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c6_pins: i2c6 { +- brcm,pins = <22 23>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2s_pins: i2s { +- brcm,pins = <18 19 20 21>; +- brcm,function = ; +- }; +- +- sdio_pins: sdio_pins { +- brcm,pins = <34 35 36 37 38 39>; +- brcm,function = ; // alt3 = SD1 +- brcm,pull = <0 2 2 2 2 2>; +- }; +- + bt_pins: bt_pins { + brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0 + // to fool pinctrl +@@ -440,30 +343,6 @@ uart1_bt_pins: uart1_bt_pins { + brcm,function = ; /* alt5=UART1 */ + brcm,pull = <0 2 2 0>; + }; +- +- uart2_pins: uart2_pins { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart3_pins: uart3_pins { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart4_pins: uart4_pins { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart5_pins: uart5_pins { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; + }; + + &i2c0if { +diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts +index 154ae2ac1440..928d7ab9aff9 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts +@@ -200,132 +200,11 @@ spidev1: spidev@1{ + }; + + &gpio { +- spi0_pins: spi0_pins { +- brcm,pins = <9 10 11>; +- brcm,function = ; +- }; +- +- spi0_cs_pins: spi0_cs_pins { +- brcm,pins = <8 7>; +- brcm,function = ; +- }; +- +- spi3_pins: spi3_pins { +- brcm,pins = <1 2 3>; +- brcm,function = ; +- }; +- +- spi3_cs_pins: spi3_cs_pins { +- brcm,pins = <0 24>; +- brcm,function = ; +- }; +- +- spi4_pins: spi4_pins { +- brcm,pins = <5 6 7>; +- brcm,function = ; +- }; +- +- spi4_cs_pins: spi4_cs_pins { +- brcm,pins = <4 25>; +- brcm,function = ; +- }; +- +- spi5_pins: spi5_pins { +- brcm,pins = <13 14 15>; +- brcm,function = ; +- }; +- +- spi5_cs_pins: spi5_cs_pins { +- brcm,pins = <12 26>; +- brcm,function = ; +- }; +- +- spi6_pins: spi6_pins { +- brcm,pins = <19 20 21>; +- brcm,function = ; +- }; +- +- spi6_cs_pins: spi6_cs_pins { +- brcm,pins = <18 27>; +- brcm,function = ; +- }; +- +- i2c0_pins: i2c0 { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c1_pins: i2c1 { +- brcm,pins = <2 3>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c3_pins: i2c3 { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c4_pins: i2c4 { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c5_pins: i2c5 { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2c6_pins: i2c6 { +- brcm,pins = <22 23>; +- brcm,function = ; +- brcm,pull = ; +- }; +- +- i2s_pins: i2s { +- brcm,pins = <18 19 20 21>; +- brcm,function = ; +- }; +- +- sdio_pins: sdio_pins { +- brcm,pins = <34 35 36 37 38 39>; +- brcm,function = ; // alt3 = SD1 +- brcm,pull = <0 2 2 2 2 2>; +- }; +- + uart0_pins: uart0_pins { + brcm,pins; + brcm,function; + brcm,pull; + }; +- +- uart2_pins: uart2_pins { +- brcm,pins = <0 1>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart3_pins: uart3_pins { +- brcm,pins = <4 5>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart4_pins: uart4_pins { +- brcm,pins = <8 9>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; +- +- uart5_pins: uart5_pins { +- brcm,pins = <12 13>; +- brcm,function = ; +- brcm,pull = <0 2>; +- }; + }; + + &i2c0if { +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index bd5c29748fa1..905dfeda2df6 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -171,6 +171,127 @@ &usb { + &gpio { + interrupts = , + ; ++ ++ spi0_pins: spi0_pins { ++ brcm,pins = <9 10 11>; ++ brcm,function = ; ++ }; ++ ++ spi0_cs_pins: spi0_cs_pins { ++ brcm,pins = <8 7>; ++ brcm,function = ; ++ }; ++ ++ spi3_pins: spi3_pins { ++ brcm,pins = <1 2 3>; ++ brcm,function = ; ++ }; ++ ++ spi3_cs_pins: spi3_cs_pins { ++ brcm,pins = <0 24>; ++ brcm,function = ; ++ }; ++ ++ spi4_pins: spi4_pins { ++ brcm,pins = <5 6 7>; ++ brcm,function = ; ++ }; ++ ++ spi4_cs_pins: spi4_cs_pins { ++ brcm,pins = <4 25>; ++ brcm,function = ; ++ }; ++ ++ spi5_pins: spi5_pins { ++ brcm,pins = <13 14 15>; ++ brcm,function = ; ++ }; ++ ++ spi5_cs_pins: spi5_cs_pins { ++ brcm,pins = <12 26>; ++ brcm,function = ; ++ }; ++ ++ spi6_pins: spi6_pins { ++ brcm,pins = <19 20 21>; ++ brcm,function = ; ++ }; ++ ++ spi6_cs_pins: spi6_cs_pins { ++ brcm,pins = <18 27>; ++ brcm,function = ; ++ }; ++ ++ i2c0_pins: i2c0 { ++ brcm,pins = <0 1>; ++ brcm,function = ; ++ brcm,pull = ; ++ }; ++ ++ i2c1_pins: i2c1 { ++ brcm,pins = <2 3>; ++ brcm,function = ; ++ brcm,pull = ; ++ }; ++ ++ i2c3_pins: i2c3 { ++ brcm,pins = <4 5>; ++ brcm,function = ; ++ brcm,pull = ; ++ }; ++ ++ i2c4_pins: i2c4 { ++ brcm,pins = <8 9>; ++ brcm,function = ; ++ brcm,pull = ; ++ }; ++ ++ i2c5_pins: i2c5 { ++ brcm,pins = <12 13>; ++ brcm,function = ; ++ brcm,pull = ; ++ }; ++ ++ i2c6_pins: i2c6 { ++ brcm,pins = <22 23>; ++ brcm,function = ; ++ brcm,pull = ; ++ }; ++ ++ i2s_pins: i2s { ++ brcm,pins = <18 19 20 21>; ++ brcm,function = ; ++ }; ++ ++ sdio_pins: sdio_pins { ++ brcm,pins = <34 35 36 37 38 39>; ++ brcm,function = ; // alt3 = SD1 ++ brcm,pull = <0 2 2 2 2 2>; ++ }; ++ ++ uart2_pins: uart2_pins { ++ brcm,pins = <0 1>; ++ brcm,function = ; ++ brcm,pull = <0 2>; ++ }; ++ ++ uart3_pins: uart3_pins { ++ brcm,pins = <4 5>; ++ brcm,function = ; ++ brcm,pull = <0 2>; ++ }; ++ ++ uart4_pins: uart4_pins { ++ brcm,pins = <8 9>; ++ brcm,function = ; ++ brcm,pull = <0 2>; ++ }; ++ ++ uart5_pins: uart5_pins { ++ brcm,pins = <12 13>; ++ brcm,function = ; ++ brcm,pull = <0 2>; ++ }; + }; + + &emmc2 { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 9 May 2023 14:20:58 +0100 +Subject: [PATCH 749/784] ARM: dts: bcm2711-rpi-ds: Set default I/O pins + +Give all the extended I/O interfaces - I2C3-6, SPI3-6 and UART2-5 - +sensible default pinctrl references. + +See: https://github.com/raspberrypi/linux/pull/5443 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 60 +++++++++++++++++++++++++++ + 1 file changed, 60 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index 905dfeda2df6..dadf9b83d344 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -418,6 +418,66 @@ &i2c0if { + i2c_arm: &i2c1 {}; + i2c_vc: &i2c0 {}; + ++&i2c3 { ++ pinctrl-0 = <&i2c3_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&i2c4 { ++ pinctrl-0 = <&i2c4_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&i2c5 { ++ pinctrl-0 = <&i2c5_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&i2c6 { ++ pinctrl-0 = <&i2c6_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&spi3 { ++ pinctrl-0 = <&spi3_pins &spi3_cs_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&spi4 { ++ pinctrl-0 = <&spi4_pins &spi4_cs_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&spi5 { ++ pinctrl-0 = <&spi5_pins &spi5_cs_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&spi6 { ++ pinctrl-0 = <&spi6_pins &spi6_cs_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&uart2 { ++ pinctrl-0 = <&uart2_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&uart3 { ++ pinctrl-0 = <&uart3_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&uart4 { ++ pinctrl-0 = <&uart4_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&uart5 { ++ pinctrl-0 = <&uart5_pins>; ++ pinctrl-names = "default"; ++}; ++ + /delete-node/ &v3d; + + / { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 9 May 2023 14:25:10 +0100 +Subject: [PATCH 750/784] overlays: bcm2711: Remove I/O pinctrl references + +Now that the base bcm2711 base dts files give the added I/O interfaces +references to the default pinctrl nodes, remove the same from their +respective overlays. + +See: https://github.com/raspberrypi/linux/pull/5443 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/i2c3-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/i2c4-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/i2c5-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/i2c6-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/uart2-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/uart3-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/uart4-overlay.dts | 2 -- + arch/arm/boot/dts/overlays/uart5-overlay.dts | 2 -- + 16 files changed, 32 deletions(-) + +diff --git a/arch/arm/boot/dts/overlays/i2c3-overlay.dts b/arch/arm/boot/dts/overlays/i2c3-overlay.dts +index e24a1df21f99..663d4f060ee8 100644 +--- a/arch/arm/boot/dts/overlays/i2c3-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c3-overlay.dts +@@ -8,8 +8,6 @@ fragment@0 { + target = <&i2c3>; + frag0: __overlay__ { + status = "okay"; +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c3_pins>; + clock-frequency = <100000>; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/i2c4-overlay.dts b/arch/arm/boot/dts/overlays/i2c4-overlay.dts +index 14c7f4d1da4c..495de00f7aa1 100644 +--- a/arch/arm/boot/dts/overlays/i2c4-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c4-overlay.dts +@@ -8,8 +8,6 @@ fragment@0 { + target = <&i2c4>; + frag0: __overlay__ { + status = "okay"; +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c4_pins>; + clock-frequency = <100000>; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/i2c5-overlay.dts b/arch/arm/boot/dts/overlays/i2c5-overlay.dts +index 7953621112de..d498ebc72de6 100644 +--- a/arch/arm/boot/dts/overlays/i2c5-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c5-overlay.dts +@@ -8,8 +8,6 @@ fragment@0 { + target = <&i2c5>; + frag0: __overlay__ { + status = "okay"; +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c5_pins>; + clock-frequency = <100000>; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/i2c6-overlay.dts b/arch/arm/boot/dts/overlays/i2c6-overlay.dts +index 555305a7ee1f..4d26178a73ca 100644 +--- a/arch/arm/boot/dts/overlays/i2c6-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c6-overlay.dts +@@ -8,8 +8,6 @@ fragment@0 { + target = <&i2c6>; + frag0: __overlay__ { + status = "okay"; +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c6_pins>; + clock-frequency = <100000>; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts b/arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts +index 335af8637051..7abea6d86fd0 100644 +--- a/arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi3_pins &spi3_cs_pins>; + cs-gpios = <&gpio 0 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts b/arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts +index ce65da27f767..2f474ac769f5 100644 +--- a/arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi3_pins &spi3_cs_pins>; + cs-gpios = <&gpio 0 1>, <&gpio 24 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts b/arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts +index 85d70b40352b..66d89521124a 100644 +--- a/arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi4_pins &spi4_cs_pins>; + cs-gpios = <&gpio 4 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts b/arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts +index 8bc2215a6a7e..83d8cb8b918c 100644 +--- a/arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi4_pins &spi4_cs_pins>; + cs-gpios = <&gpio 4 1>, <&gpio 25 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts b/arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts +index c0f8cb8510ee..168b4825de34 100644 +--- a/arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi5_pins &spi5_cs_pins>; + cs-gpios = <&gpio 12 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts b/arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts +index 7758b9c00b4e..c2a239a34b35 100644 +--- a/arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi5_pins &spi5_cs_pins>; + cs-gpios = <&gpio 12 1>, <&gpio 26 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts b/arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts +index 8c8a953eca01..a784f8a17d23 100644 +--- a/arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi6_pins &spi6_cs_pins>; + cs-gpios = <&gpio 18 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts b/arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts +index 2ff897f21aed..8ef513814d2b 100644 +--- a/arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts +@@ -20,8 +20,6 @@ frag1: __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + +- pinctrl-names = "default"; +- pinctrl-0 = <&spi6_pins &spi6_cs_pins>; + cs-gpios = <&gpio 18 1>, <&gpio 27 1>; + status = "okay"; + +diff --git a/arch/arm/boot/dts/overlays/uart2-overlay.dts b/arch/arm/boot/dts/overlays/uart2-overlay.dts +index 9face240aca1..d98cb5795f6a 100644 +--- a/arch/arm/boot/dts/overlays/uart2-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart2-overlay.dts +@@ -7,8 +7,6 @@ /{ + fragment@0 { + target = <&uart2>; + __overlay__ { +- pinctrl-names = "default"; +- pinctrl-0 = <&uart2_pins>; + status = "okay"; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/uart3-overlay.dts b/arch/arm/boot/dts/overlays/uart3-overlay.dts +index ae9f9fe5ea1d..5751d5b1a29e 100644 +--- a/arch/arm/boot/dts/overlays/uart3-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart3-overlay.dts +@@ -7,8 +7,6 @@ /{ + fragment@0 { + target = <&uart3>; + __overlay__ { +- pinctrl-names = "default"; +- pinctrl-0 = <&uart3_pins>; + status = "okay"; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/uart4-overlay.dts b/arch/arm/boot/dts/overlays/uart4-overlay.dts +index ac004ffbadbf..99def557b779 100644 +--- a/arch/arm/boot/dts/overlays/uart4-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart4-overlay.dts +@@ -7,8 +7,6 @@ /{ + fragment@0 { + target = <&uart4>; + __overlay__ { +- pinctrl-names = "default"; +- pinctrl-0 = <&uart4_pins>; + status = "okay"; + }; + }; +diff --git a/arch/arm/boot/dts/overlays/uart5-overlay.dts b/arch/arm/boot/dts/overlays/uart5-overlay.dts +index 04eaf376effe..649daea52e6b 100644 +--- a/arch/arm/boot/dts/overlays/uart5-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart5-overlay.dts +@@ -7,8 +7,6 @@ /{ + fragment@0 { + target = <&uart5>; + __overlay__ { +- pinctrl-names = "default"; +- pinctrl-0 = <&uart5_pins>; + status = "okay"; + }; + }; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 09:59:04 +0100 +Subject: [PATCH 751/784] ARM: dts: bcm27xx: Correct the dma-ranges + +Step one of using DMA addresses the intended way is to make sure that +the mapping between CPU physical addresses and DMA addresses in Device +Tree is complete and correct. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708.dtsi | 3 ++- + arch/arm/boot/dts/bcm2709.dtsi | 3 +++ + arch/arm/boot/dts/bcm2710.dtsi | 3 +++ + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 13 ++++++++++++- + 4 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi +index b3cf34cdcc0e..fdc7f2423bbe 100644 +--- a/arch/arm/boot/dts/bcm2708.dtsi ++++ b/arch/arm/boot/dts/bcm2708.dtsi +@@ -10,7 +10,8 @@ __overrides__ { + }; + + &soc { +- dma-ranges = <0x80000000 0x00000000 0x20000000>; ++ dma-ranges = <0x80000000 0x00000000 0x20000000>, ++ <0x7e000000 0x20000000 0x02000000>; + }; + + &vc4 { +diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi +index e195f7247813..7f8fcc2b404e 100644 +--- a/arch/arm/boot/dts/bcm2709.dtsi ++++ b/arch/arm/boot/dts/bcm2709.dtsi +@@ -8,6 +8,9 @@ soc { + ranges = <0x7e000000 0x3f000000 0x01000000>, + <0x40000000 0x40000000 0x00040000>; + ++ dma-ranges = <0xc0000000 0x00000000 0x3f000000>, ++ <0x7e000000 0x3f000000 0x01000000>; ++ + /delete-node/ timer@7e003000; + }; + +diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi +index 31b13b24affb..428a6f3a5a7e 100644 +--- a/arch/arm/boot/dts/bcm2710.dtsi ++++ b/arch/arm/boot/dts/bcm2710.dtsi +@@ -11,6 +11,9 @@ arm-pmu { + }; + + soc { ++ dma-ranges = <0xc0000000 0x00000000 0x3f000000>, ++ <0x7e000000 0x3f000000 0x01000000>; ++ + /delete-node/ timer@7e003000; + }; + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index dadf9b83d344..4ce3694aaa0d 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -18,6 +18,10 @@ scb: scb { + /* Add a label */ + }; + ++ soc: soc { ++ /* Add a label */ ++ }; ++ + arm-pmu { + compatible = "arm,cortex-a72-pmu", "arm,armv8-pmuv3", "arm,cortex-a7-pmu"; + +@@ -64,6 +68,12 @@ &cma { + alloc-ranges = <0x0 0x00000000 0x30000000>; + }; + ++&soc { ++ /* Add the physical <-> DMA mapping for the I/O space */ ++ dma-ranges = <0xc0000000 0x0 0x00000000 0x40000000>, ++ <0x7c000000 0x0 0xfc000000 0x03800000>; ++}; ++ + &scb { + #size-cells = <2>; + +@@ -71,7 +81,8 @@ &scb { + <0x0 0x40000000 0x0 0xff800000 0x0 0x00800000>, + <0x6 0x00000000 0x6 0x00000000 0x0 0x40000000>, + <0x0 0x00000000 0x0 0x00000000 0x0 0xfc000000>; +- dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x4 0x00000000>; ++ dma-ranges = <0x4 0x7c000000 0x0 0xfc000000 0x0 0x03800000>, ++ <0x0 0x00000000 0x0 0x00000000 0x4 0x00000000>; + + dma40: dma@7e007b00 { + compatible = "brcm,bcm2711-dma"; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 10:00:01 +0100 +Subject: [PATCH 752/784] bcm2835-dma: Derive slave DMA addresses correctly + +Slave addresses for DMA are meant to be supplied as physical addresses +(contrary to what struct snd_dmaengine_dai_dma_data does). It is up to +the DMA controller driver to perform the translation based on its own +view of the world, as described in Device Tree. + +Now that the Pi Device Trees have the correct peripheral mappings, +replace the hacky address munging with phys_to_dma(). + +Signed-off-by: Phil Elwell +--- + drivers/dma/bcm2835-dma.c | 23 +++++------------------ + 1 file changed, 5 insertions(+), 18 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index 6aee9e97d207..176f11c66f45 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -18,6 +18,7 @@ + * Copyright 2012 Marvell International Ltd. + */ + #include ++#include + #include + #include + #include +@@ -910,22 +911,12 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg( + if (direction == DMA_DEV_TO_MEM) { + if (c->cfg.src_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) + return NULL; +- src = c->cfg.src_addr; +- /* +- * One would think it ought to be possible to get the physical +- * to dma address mapping information from the dma-ranges DT +- * property, but I've not found a way yet that doesn't involve +- * open-coding the whole thing. +- */ +- if (c->is_40bit_channel) +- src |= 0x400000000ull; ++ src = phys_to_dma(chan->device->dev, c->cfg.src_addr); + info |= BCM2835_DMA_S_DREQ | BCM2835_DMA_D_INC; + } else { + if (c->cfg.dst_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) + return NULL; +- dst = c->cfg.dst_addr; +- if (c->is_40bit_channel) +- dst |= 0x400000000ull; ++ dst = phys_to_dma(chan->device->dev, c->cfg.dst_addr); + info |= BCM2835_DMA_D_DREQ | BCM2835_DMA_S_INC; + } + +@@ -994,17 +985,13 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic( + if (direction == DMA_DEV_TO_MEM) { + if (c->cfg.src_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) + return NULL; +- src = c->cfg.src_addr; +- if (c->is_40bit_channel) +- src |= 0x400000000ull; ++ src = phys_to_dma(chan->device->dev, c->cfg.src_addr); + dst = buf_addr; + info |= BCM2835_DMA_S_DREQ | BCM2835_DMA_D_INC; + } else { + if (c->cfg.dst_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) + return NULL; +- dst = c->cfg.dst_addr; +- if (c->is_40bit_channel) +- dst |= 0x400000000ull; ++ dst = phys_to_dma(chan->device->dev, c->cfg.dst_addr); + src = buf_addr; + info |= BCM2835_DMA_D_DREQ | BCM2835_DMA_S_INC; + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 10:07:45 +0100 +Subject: [PATCH 753/784] ASoC: bcm2835-i2s: Use phys addresses for DAI DMA + +Contrary to what struct snd_dmaengine_dai_dma_data suggests, the +configuration of addresses of DMA slave interfaces should be done in +CPU physical addresses. + +Signed-off-by: Phil Elwell +--- + sound/soc/bcm/bcm2835-i2s.c | 18 ++++-------------- + 1 file changed, 4 insertions(+), 14 deletions(-) + +diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c +index 85f705afcdbb..3a75bdb442f1 100644 +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + + #include +@@ -830,8 +829,7 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + struct bcm2835_i2s_dev *dev; + int ret; + void __iomem *base; +- const __be32 *addr; +- dma_addr_t dma_base; ++ struct resource *res; + + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), + GFP_KERNEL); +@@ -846,7 +844,7 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + "could not get clk\n"); + + /* Request ioarea */ +- base = devm_platform_ioremap_resource(pdev, 0); ++ base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); + if (IS_ERR(base)) + return PTR_ERR(base); + +@@ -855,19 +853,11 @@ static int bcm2835_i2s_probe(struct platform_device *pdev) + if (IS_ERR(dev->i2s_regmap)) + return PTR_ERR(dev->i2s_regmap); + +- /* Set the DMA address - we have to parse DT ourselves */ +- addr = of_get_address(pdev->dev.of_node, 0, NULL, NULL); +- if (!addr) { +- dev_err(&pdev->dev, "could not get DMA-register address\n"); +- return -EINVAL; +- } +- dma_base = be32_to_cpup(addr); +- + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr = +- dma_base + BCM2835_I2S_FIFO_A_REG; ++ res->start + BCM2835_I2S_FIFO_A_REG; + + dev->dma_data[SNDRV_PCM_STREAM_CAPTURE].addr = +- dma_base + BCM2835_I2S_FIFO_A_REG; ++ res->start + BCM2835_I2S_FIFO_A_REG; + + /* Set the bus width */ + dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 16:08:15 +0100 +Subject: [PATCH 754/784] drm/vc4: Use phys addresses for slave DMA config + +Slave addresses for DMA are meant to be supplied as physical addresses +(contrary to what struct snd_dmaengine_dai_dma_data does). + +Signed-off-by: Phil Elwell +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 13 ++++--------- + 1 file changed, 4 insertions(+), 9 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index 168ff60b7be6..a0e536c4b66d 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -2719,7 +2719,7 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + struct snd_soc_card *card = &vc4_hdmi->audio.card; + struct device *dev = &vc4_hdmi->pdev->dev; + struct platform_device *codec_pdev; +- const __be32 *addr; ++ struct resource *iomem; + int index, len; + int ret; + +@@ -2755,20 +2755,15 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi) + } + + /* +- * Get the physical address of VC4_HD_MAI_DATA. We need to retrieve +- * the bus address specified in the DT, because the physical address +- * (the one returned by platform_get_resource()) is not appropriate +- * for DMA transfers. +- * This VC/MMU should probably be exposed to avoid this kind of hacks. ++ * Get the physical address of VC4_HD_MAI_DATA. + */ + index = of_property_match_string(dev->of_node, "reg-names", "hd"); + /* Before BCM2711, we don't have a named register range */ + if (index < 0) + index = 1; ++ iomem = platform_get_resource(vc4_hdmi->pdev, IORESOURCE_MEM, index); + +- addr = of_get_address(dev->of_node, index, NULL, NULL); +- +- vc4_hdmi->audio.dma_data.addr = be32_to_cpup(addr) + mai_data->offset; ++ vc4_hdmi->audio.dma_data.addr = iomem->start + mai_data->offset; + vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; + vc4_hdmi->audio.dma_data.maxburst = 2; + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 16:10:52 +0100 +Subject: [PATCH 755/784] bcm2835-smi: Use phys addresses for slave DMA config + +Contrary to what struct snd_dmaengine_dai_dma_data suggests, the +configuration of addresses of DMA slave interfaces should be done in +CPU physical addresses. + +Signed-off-by: Phil Elwell +--- + drivers/misc/bcm2835_smi.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/drivers/misc/bcm2835_smi.c b/drivers/misc/bcm2835_smi.c +index 831b7038c78d..acb54c2224cd 100644 +--- a/drivers/misc/bcm2835_smi.c ++++ b/drivers/misc/bcm2835_smi.c +@@ -64,7 +64,7 @@ struct bcm2835_smi_instance { + struct device *dev; + struct smi_settings settings; + __iomem void *smi_regs_ptr; +- dma_addr_t smi_regs_busaddr; ++ phys_addr_t smi_regs_busaddr; + + struct dma_chan *dma_chan; + struct dma_slave_config dma_config; +@@ -858,7 +858,6 @@ static int bcm2835_smi_probe(struct platform_device *pdev) + struct device_node *node = dev->of_node; + struct resource *ioresource; + struct bcm2835_smi_instance *inst; +- const __be32 *addr; + + /* We require device tree support */ + if (!node) +@@ -872,14 +871,13 @@ static int bcm2835_smi_probe(struct platform_device *pdev) + inst->dev = dev; + spin_lock_init(&inst->transaction_lock); + +- ioresource = platform_get_resource(pdev, IORESOURCE_MEM, 0); +- inst->smi_regs_ptr = devm_ioremap_resource(dev, ioresource); ++ inst->smi_regs_ptr = devm_platform_get_and_ioremap_resource(pdev, 0, ++ &ioresource); + if (IS_ERR(inst->smi_regs_ptr)) { + err = PTR_ERR(inst->smi_regs_ptr); + goto err; + } +- addr = of_get_address(node, 0, NULL, NULL); +- inst->smi_regs_busaddr = be32_to_cpu(*addr); ++ inst->smi_regs_busaddr = ioresource->start; + + err = bcm2835_smi_dma_setup(inst); + if (err) +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 16:19:57 +0100 +Subject: [PATCH 756/784] bcm2835-mmc: Use phys addresses for slave DMA config + +Contrary to what struct snd_dmaengine_dai_dma_data suggests, the +configuration of addresses of DMA slave interfaces should be done in +CPU physical addresses. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-mmc.c | 16 +--------------- + 1 file changed, 1 insertion(+), 15 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-mmc.c b/drivers/mmc/host/bcm2835-mmc.c +index 7fdadf554991..840bce50ca22 100644 +--- a/drivers/mmc/host/bcm2835-mmc.c ++++ b/drivers/mmc/host/bcm2835-mmc.c +@@ -1404,7 +1404,6 @@ static int bcm2835_mmc_probe(struct platform_device *pdev) + struct resource *iomem; + struct bcm2835_host *host; + struct mmc_host *mmc; +- const __be32 *addr; + int ret; + + mmc = mmc_alloc_host(sizeof(*host), dev); +@@ -1417,25 +1416,12 @@ static int bcm2835_mmc_probe(struct platform_device *pdev) + host->timeout = msecs_to_jiffies(1000); + spin_lock_init(&host->lock); + +- iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); +- host->ioaddr = devm_ioremap_resource(dev, iomem); ++ host->ioaddr = devm_platform_get_and_ioremap_resource(pdev, 0, &iomem); + if (IS_ERR(host->ioaddr)) { + ret = PTR_ERR(host->ioaddr); + goto err; + } + +- addr = of_get_address(node, 0, NULL, NULL); +- if (!addr) { +- dev_err(dev, "could not get DMA-register address\n"); +- ret = -ENODEV; +- goto err; +- } +- host->bus_addr = be32_to_cpup(addr); +- pr_debug(" - ioaddr %lx, iomem->start %lx, bus_addr %lx\n", +- (unsigned long)host->ioaddr, +- (unsigned long)iomem->start, +- (unsigned long)host->bus_addr); +- + #ifndef FORCE_PIO + if (node) { + host->dma_chan_rxtx = dma_request_slave_channel(dev, "rx-tx"); +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 15:44:18 +0100 +Subject: [PATCH 757/784] ARM: dts: bcm2709/10: Retain the system-timer node + +Although the system timer is largely ignored in favour of the ARM local +timers, retain the DT node so that the bcm2835-sdhost logging can find +the timer in a cleaner fashion. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2709.dtsi | 6 ++++-- + arch/arm/boot/dts/bcm2710.dtsi | 6 ++++-- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi +index 7f8fcc2b404e..868f65f922ff 100644 +--- a/arch/arm/boot/dts/bcm2709.dtsi ++++ b/arch/arm/boot/dts/bcm2709.dtsi +@@ -10,8 +10,6 @@ soc { + + dma-ranges = <0xc0000000 0x00000000 0x3f000000>, + <0x7e000000 0x3f000000 0x01000000>; +- +- /delete-node/ timer@7e003000; + }; + + __overrides__ { +@@ -22,6 +20,10 @@ __overrides__ { + }; + }; + ++&system_timer { ++ status = "disabled"; ++}; ++ + &vc4 { + status = "disabled"; + }; +diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi +index 428a6f3a5a7e..bdcdbb51fab8 100644 +--- a/arch/arm/boot/dts/bcm2710.dtsi ++++ b/arch/arm/boot/dts/bcm2710.dtsi +@@ -13,8 +13,6 @@ arm-pmu { + soc { + dma-ranges = <0xc0000000 0x00000000 0x3f000000>, + <0x7e000000 0x3f000000 0x01000000>; +- +- /delete-node/ timer@7e003000; + }; + + __overrides__ { +@@ -25,6 +23,10 @@ __overrides__ { + }; + }; + ++&system_timer { ++ status = "disabled"; ++}; ++ + &vc4 { + status = "disabled"; + }; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 16:23:13 +0100 +Subject: [PATCH 758/784] bcm2835-sdhost: Use DT to configure logging + +Retrieve the system timer base address directly from DT. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-sdhost.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index c29ef052425d..54cf9a549748 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -242,15 +242,19 @@ static void __iomem *timer_base; + #define LOG_ENTRIES (256*1) + #define LOG_SIZE (sizeof(LOG_ENTRY_T)*LOG_ENTRIES) + +-static void log_init(struct device *dev, u32 bus_to_phys) ++static void log_init(struct device *dev) + { ++ struct device_node *np; ++ + spin_lock_init(&log_lock); + sdhost_log_buf = dma_alloc_coherent(dev, LOG_SIZE, &sdhost_log_addr, + GFP_KERNEL); + if (sdhost_log_buf) { ++ np = of_find_compatible_node(NULL, NULL, ++ "brcm,bcm2835-system-timer"); + pr_info("sdhost: log_buf @ %p (%llx)\n", + sdhost_log_buf, (u64)sdhost_log_addr); +- timer_base = ioremap(bus_to_phys + 0x7e003000, SZ_4K); ++ timer_base = of_iomap(np, 0); + if (!timer_base) + pr_err("sdhost: failed to remap timer\n"); + } +@@ -2123,7 +2127,7 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + (unsigned long)host->max_clk, + (int)host->irq); + +- log_init(dev, iomem->start - host->bus_addr); ++ log_init(dev); + + if (node) + mmc_of_parse(mmc); +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 16:24:26 +0100 +Subject: [PATCH 759/784] bcm2835-sdhost: Use phys addresses for slave DMA + config + +Contrary to what struct snd_dmaengine_dai_dma_data suggests, the +configuration of addresses of DMA slave interfaces should be done in +CPU physical addresses. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-sdhost.c | 17 ++--------------- + 1 file changed, 2 insertions(+), 15 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c +index 54cf9a549748..4df705bd7266 100644 +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -2015,9 +2015,7 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + struct resource *iomem; + struct bcm2835_host *host; + struct mmc_host *mmc; +- const __be32 *addr; + u32 msg[3]; +- int na; + int ret; + + pr_debug("bcm2835_sdhost_probe\n"); +@@ -2034,24 +2032,13 @@ static int bcm2835_sdhost_probe(struct platform_device *pdev) + host->allow_dma = 1; + spin_lock_init(&host->lock); + +- iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); +- host->ioaddr = devm_ioremap_resource(dev, iomem); ++ host->ioaddr = devm_platform_get_and_ioremap_resource(pdev, 0, &iomem); + if (IS_ERR(host->ioaddr)) { + ret = PTR_ERR(host->ioaddr); + goto err; + } + +- na = of_n_addr_cells(node); +- addr = of_get_address(node, 0, NULL, NULL); +- if (!addr) { +- dev_err(dev, "could not get DMA-register address\n"); +- return -ENODEV; +- } +- host->bus_addr = (phys_addr_t)of_read_number(addr, na); +- pr_debug(" - ioaddr %lx, iomem->start %lx, bus_addr %lx\n", +- (unsigned long)host->ioaddr, +- (unsigned long)iomem->start, +- (unsigned long)host->bus_addr); ++ host->bus_addr = iomem->start; + + if (node) { + /* Read any custom properties */ +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 16:25:46 +0100 +Subject: [PATCH 760/784] mmc: bcm2835: Use phys addresses for slave DMA config + +Contrary to what struct snd_dmaengine_dai_dma_data suggests, the +configuration of addresses of DMA slave interfaces should be done in +CPU physical addresses. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835.c | 17 +++-------------- + 1 file changed, 3 insertions(+), 14 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c +index 641ab4f42125..691e98fc6d0c 100644 +--- a/drivers/mmc/host/bcm2835.c ++++ b/drivers/mmc/host/bcm2835.c +@@ -38,7 +38,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -1355,8 +1354,8 @@ static int bcm2835_probe(struct platform_device *pdev) + struct device *dev = &pdev->dev; + struct clk *clk; + struct bcm2835_host *host; ++ struct resource *iomem; + struct mmc_host *mmc; +- const __be32 *regaddr_p; + int ret; + + dev_dbg(dev, "%s\n", __func__); +@@ -1369,23 +1368,13 @@ static int bcm2835_probe(struct platform_device *pdev) + host->pdev = pdev; + spin_lock_init(&host->lock); + +- host->ioaddr = devm_platform_ioremap_resource(pdev, 0); ++ host->ioaddr = devm_platform_get_and_ioremap_resource(pdev, 0, &iomem); + if (IS_ERR(host->ioaddr)) { + ret = PTR_ERR(host->ioaddr); + goto err; + } + +- /* Parse OF address directly to get the physical address for +- * DMA to our registers. +- */ +- regaddr_p = of_get_address(pdev->dev.of_node, 0, NULL, NULL); +- if (!regaddr_p) { +- dev_err(dev, "Can't get phys address\n"); +- ret = -EINVAL; +- goto err; +- } +- +- host->phys_addr = be32_to_cpup(regaddr_p); ++ host->phys_addr = iomem->start; + + host->dma_chan = NULL; + host->dma_desc = NULL; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 16:27:06 +0100 +Subject: [PATCH 761/784] spi: bcm2835: Use phys addresses for slave DMA config + +Contrary to what struct snd_dmaengine_dai_dma_data suggests, the +configuration of addresses of DMA slave interfaces should be done in +CPU physical addresses. + +Signed-off-by: Phil Elwell +--- + drivers/spi/spi-bcm2835.c | 22 +++++++--------------- + 1 file changed, 7 insertions(+), 15 deletions(-) + +diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c +index 7bc7eab92759..2d7f25a7c9c9 100644 +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -116,6 +116,7 @@ MODULE_PARM_DESC(polling_limit_us, + */ + struct bcm2835_spi { + void __iomem *regs; ++ phys_addr_t phys_addr; + struct clk *clk; + unsigned long clk_hz; + int irq; +@@ -887,19 +888,8 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev, + struct bcm2835_spi *bs) + { + struct dma_slave_config slave_config; +- const __be32 *addr; +- dma_addr_t dma_reg_base; + int ret; + +- /* base address in dma-space */ +- addr = of_get_address(ctlr->dev.of_node, 0, NULL, NULL); +- if (!addr) { +- dev_err(dev, "could not get DMA-register address - not using dma mode\n"); +- /* Fall back to interrupt mode */ +- return 0; +- } +- dma_reg_base = be32_to_cpup(addr); +- + /* get tx/rx dma */ + ctlr->dma_tx = dma_request_chan(dev, "tx"); + if (IS_ERR(ctlr->dma_tx)) { +@@ -921,7 +911,7 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev, + * or, in case of an RX-only transfer, cyclically copies from the zero + * page to the FIFO using a preallocated, reusable descriptor. + */ +- slave_config.dst_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO); ++ slave_config.dst_addr = bs->phys_addr + BCM2835_SPI_FIFO; + slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; + + ret = dmaengine_slave_config(ctlr->dma_tx, &slave_config); +@@ -960,9 +950,9 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev, + * RX FIFO or, in case of a TX-only transfer, cyclically writes a + * precalculated value to the CS register to clear the RX FIFO. + */ +- slave_config.src_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO); ++ slave_config.src_addr = bs->phys_addr + BCM2835_SPI_FIFO; + slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; +- slave_config.dst_addr = (u32)(dma_reg_base + BCM2835_SPI_CS); ++ slave_config.dst_addr = bs->phys_addr + BCM2835_SPI_CS; + slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; + + ret = dmaengine_slave_config(ctlr->dma_rx, &slave_config); +@@ -1335,6 +1325,7 @@ static int bcm2835_spi_probe(struct platform_device *pdev) + { + struct spi_controller *ctlr; + struct bcm2835_spi *bs; ++ struct resource *iomem; + int err; + + ctlr = devm_spi_alloc_master(&pdev->dev, sizeof(*bs)); +@@ -1357,10 +1348,11 @@ static int bcm2835_spi_probe(struct platform_device *pdev) + bs = spi_controller_get_devdata(ctlr); + bs->ctlr = ctlr; + +- bs->regs = devm_platform_ioremap_resource(pdev, 0); ++ bs->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &iomem); + if (IS_ERR(bs->regs)) + return PTR_ERR(bs->regs); + ++ bs->phys_addr = iomem->start; + bs->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(bs->clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(bs->clk), +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 11 May 2023 11:50:57 +0100 +Subject: [PATCH 762/784] ARM: dts: bcm2711-rpi: Add i2s_dma4 + +Add an i2s_dma4 parameter to make the I2S interface use 40-bit DMA +channels, taking the opportunity to remove some duplication. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 4 ---- + arch/arm/boot/dts/bcm2711-rpi-400.dts | 4 ---- + arch/arm/boot/dts/bcm2711-rpi-cm4.dts | 4 ---- + arch/arm/boot/dts/bcm2711-rpi-cm4s.dts | 4 ---- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 6 ++++++ + arch/arm/boot/dts/overlays/README | 4 ++++ + 6 files changed, 10 insertions(+), 16 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index 394a4fb09cbd..c9ec59538c99 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -414,9 +414,5 @@ __overrides__ { + + eth_led0 = <&phy1>,"led-modes:0"; + eth_led1 = <&phy1>,"led-modes:4"; +- +- sd_poll_once = <&emmc2>, "non-removable?"; +- spi_dma4 = <&spi0>, "dmas:0=", <&dma40>, +- <&spi0>, "dmas:8=", <&dma40>; + }; + }; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-400.dts b/arch/arm/boot/dts/bcm2711-rpi-400.dts +index b00cf745b2f4..1d4c2fc79b28 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-400.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-400.dts +@@ -425,9 +425,5 @@ __overrides__ { + + eth_led0 = <&phy1>,"led-modes:0"; + eth_led1 = <&phy1>,"led-modes:4"; +- +- sd_poll_once = <&emmc2>, "non-removable?"; +- spi_dma4 = <&spi0>, "dmas:0=", <&dma40>, +- <&spi0>, "dmas:8=", <&dma40>; + }; + }; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +index 9826023f3fa6..5bd83729bf04 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts +@@ -437,10 +437,6 @@ __overrides__ { + <&ant2>, "output-high?=off", + <&ant2>, "output-low?=on"; + +- sd_poll_once = <&emmc2>, "non-removable?"; +- spi_dma4 = <&spi0>, "dmas:0=", <&dma40>, +- <&spi0>, "dmas:8=", <&dma40>; +- + cam0_reg = <&cam0_reg>,"status"; + cam0_reg_gpio = <&cam0_reg>,"gpio:4", + <&cam0_reg>,"gpio:0=", <&gpio>; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts +index 928d7ab9aff9..9e5f823e48d0 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts +@@ -290,10 +290,6 @@ __overrides__ { + act_led_activelow = <&act_led>,"gpios:8"; + act_led_trigger = <&act_led>,"linux,default-trigger"; + +- sd_poll_once = <&emmc2>, "non-removable?"; +- spi_dma4 = <&spi0>, "dmas:0=", <&dma40>, +- <&spi0>, "dmas:8=", <&dma40>; +- + cam0_reg = <&cam0_reg>,"status"; + cam0_reg_gpio = <&cam0_reg>,"gpio:4"; + cam1_reg = <&cam1_reg>,"status"; +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index 4ce3694aaa0d..d62ec14a9db6 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -12,6 +12,12 @@ __overrides__ { + <&hdmi1>,"status"; + pcie = <&pcie0>,"status"; + sd = <&emmc2>,"status"; ++ ++ sd_poll_once = <&emmc2>, "non-removable?"; ++ spi_dma4 = <&spi0>, "dmas:0=", <&dma40>, ++ <&spi0>, "dmas:8=", <&dma40>; ++ i2s_dma4 = <&i2s>, "dmas:0=", <&dma40>, ++ <&i2s>, "dmas:8=", <&dma40>; + }; + + scb: scb { +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index a46cf8c6ed24..7c34d51a11dc 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -226,6 +226,10 @@ Params: + i2s Set to "on" to enable the i2s interface + (default "off") + ++ i2s_dma4 Use to enable 40-bit DMA on the i2s interface ++ (the assigned value doesn't matter) ++ (2711 only) ++ + krnbt Set to "off" to disable autoprobing of Bluetooth + driver without need of hciattach/btattach + (default "on") +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 15 May 2023 09:15:56 +0100 +Subject: [PATCH 763/784] fixup! bcm2835-mmc: Really use phys addresses + +Commit [1] is missing a vital line - add it. + +Signed-off-by: Phil Elwell +--- + drivers/mmc/host/bcm2835-mmc.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/mmc/host/bcm2835-mmc.c b/drivers/mmc/host/bcm2835-mmc.c +index 840bce50ca22..60394f8fde0c 100644 +--- a/drivers/mmc/host/bcm2835-mmc.c ++++ b/drivers/mmc/host/bcm2835-mmc.c +@@ -1422,6 +1422,8 @@ static int bcm2835_mmc_probe(struct platform_device *pdev) + goto err; + } + ++ host->bus_addr = iomem->start; ++ + #ifndef FORCE_PIO + if (node) { + host->dma_chan_rxtx = dma_request_slave_channel(dev, "rx-tx"); +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 27 Mar 2023 17:10:07 +0200 +Subject: [PATCH 764/784] dmaengine: bcm2835: Fix position reporting for 40 + bits channels + +For 40 bits channels, the position is reported by reading the upper byte +in the SRCI/DESTI registers. However the driver adds that upper byte +with an 8-bits left shift, while it should be 32. + +Fixes: 9a52a9918306 ("bcm2835-dma: Add proper 40-bit DMA support") +Signed-off-by: Maxime Ripard +--- + drivers/dma/bcm2835-dma.c | 27 ++++++++++++++++----------- + 1 file changed, 16 insertions(+), 11 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index 176f11c66f45..56169cbb96c0 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -819,20 +819,25 @@ static enum dma_status bcm2835_dma_tx_status(struct dma_chan *chan, + struct bcm2835_desc *d = c->desc; + dma_addr_t pos; + +- if (d->dir == DMA_MEM_TO_DEV && c->is_40bit_channel) +- pos = readl(c->chan_base + BCM2711_DMA40_SRC) + +- ((readl(c->chan_base + BCM2711_DMA40_SRCI) & +- 0xff) << 8); +- else if (d->dir == DMA_MEM_TO_DEV && !c->is_40bit_channel) ++ if (d->dir == DMA_MEM_TO_DEV && c->is_40bit_channel) { ++ u64 lo_bits, hi_bits; ++ ++ lo_bits = readl(c->chan_base + BCM2711_DMA40_SRC); ++ hi_bits = readl(c->chan_base + BCM2711_DMA40_SRCI) & 0xff; ++ pos = (hi_bits << 32) | lo_bits; ++ } else if (d->dir == DMA_MEM_TO_DEV && !c->is_40bit_channel) { + pos = readl(c->chan_base + BCM2835_DMA_SOURCE_AD); +- else if (d->dir == DMA_DEV_TO_MEM && c->is_40bit_channel) +- pos = readl(c->chan_base + BCM2711_DMA40_DEST) + +- ((readl(c->chan_base + BCM2711_DMA40_DESTI) & +- 0xff) << 8); +- else if (d->dir == DMA_DEV_TO_MEM && !c->is_40bit_channel) ++ } else if (d->dir == DMA_DEV_TO_MEM && c->is_40bit_channel) { ++ u64 lo_bits, hi_bits; ++ ++ lo_bits = readl(c->chan_base + BCM2711_DMA40_DEST); ++ hi_bits = readl(c->chan_base + BCM2711_DMA40_DESTI) & 0xff; ++ pos = (hi_bits << 32) | lo_bits; ++ } else if (d->dir == DMA_DEV_TO_MEM && !c->is_40bit_channel) { + pos = readl(c->chan_base + BCM2835_DMA_DEST_AD); +- else ++ } else { + pos = 0; ++ } + + txstate->residue = bcm2835_dma_desc_size_pos(d, pos); + } else { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 13 Apr 2023 16:44:21 +0200 +Subject: [PATCH 765/784] dmaengine: bcm2835: Use to_bcm2711_cbaddr where + relevant + +bcm2711_dma40_memcpy has some code strictly equivalent to the +to_bcm2711_cbaddr() function. Let's use it instead. + +Signed-off-by: Maxime Ripard +--- + drivers/dma/bcm2835-dma.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index 56169cbb96c0..a36d1445926d 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -1149,7 +1149,7 @@ void bcm2711_dma40_memcpy(dma_addr_t dst, dma_addr_t src, size_t size) + scb->len = size; + scb->next_cb = 0; + +- writel((u32)(memcpy_scb_dma >> 5), memcpy_chan + BCM2711_DMA40_CB); ++ writel(to_bcm2711_cbaddr(memcpy_scb_dma), memcpy_chan + BCM2711_DMA40_CB); + writel(BCM2711_DMA40_MEMCPY_FLAGS + BCM2711_DMA40_ACTIVE, + memcpy_chan + BCM2711_DMA40_CS); + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Thu, 13 Apr 2023 16:47:10 +0200 +Subject: [PATCH 766/784] dmaengine: bcm2835: Fix descriptors usage for 40-bits + channels + +The bcm2835_dma_create_cb_chain() function is in charge of building up +the descriptors chain for a given transfer. + +It was initially supporting only the BCM2835-style DMA controller, and +was later expanded to support controllers with 40-bits channels that use +a different descriptor layout. + +However, some part of the function only use the old style descriptor, +even when building a chain of new-style descriptors, resulting in weird +bugs. + +Fixes: 9a52a9918306 ("bcm2835-dma: Add proper 40-bit DMA support") +Signed-off-by: Maxime Ripard +--- + drivers/dma/bcm2835-dma.c | 69 ++++++++++++++++++++++++++++----------- + 1 file changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index a36d1445926d..bb22b3e08af1 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -543,7 +543,10 @@ static struct bcm2835_desc *bcm2835_dma_create_cb_chain( + cyclic ? finalextrainfo : 0); + + /* calculate new remaining length */ +- len -= control_block->length; ++ if (c->is_40bit_channel) ++ len -= ((struct bcm2711_dma40_scb *)control_block)->len; ++ else ++ len -= control_block->length; + } + + /* link this the last controlblock */ +@@ -555,10 +558,19 @@ static struct bcm2835_desc *bcm2835_dma_create_cb_chain( + d->cb_list[frame - 1].cb->next = cb_entry->paddr; + + /* update src and dst and length */ +- if (src && (info & BCM2835_DMA_S_INC)) +- src += control_block->length; +- if (dst && (info & BCM2835_DMA_D_INC)) +- dst += control_block->length; ++ if (src && (info & BCM2835_DMA_S_INC)) { ++ if (c->is_40bit_channel) ++ src += ((struct bcm2711_dma40_scb *)control_block)->len; ++ else ++ src += control_block->length; ++ } ++ ++ if (dst && (info & BCM2835_DMA_D_INC)) { ++ if (c->is_40bit_channel) ++ dst += ((struct bcm2711_dma40_scb *)control_block)->len; ++ else ++ dst += control_block->length; ++ } + + /* Length of total transfer */ + if (c->is_40bit_channel) +@@ -779,20 +791,39 @@ static size_t bcm2835_dma_desc_size_pos(struct bcm2835_desc *d, dma_addr_t addr) + unsigned int i; + size_t size; + +- for (size = i = 0; i < d->frames; i++) { +- struct bcm2835_dma_cb *control_block = d->cb_list[i].cb; +- size_t this_size = control_block->length; +- dma_addr_t dma; +- +- if (d->dir == DMA_DEV_TO_MEM) +- dma = control_block->dst; +- else +- dma = control_block->src; +- +- if (size) +- size += this_size; +- else if (addr >= dma && addr < dma + this_size) +- size += dma + this_size - addr; ++ if (d->c->is_40bit_channel) { ++ for (size = i = 0; i < d->frames; i++) { ++ struct bcm2711_dma40_scb *control_block = ++ (struct bcm2711_dma40_scb *)d->cb_list[i].cb; ++ size_t this_size = control_block->len; ++ dma_addr_t dma; ++ ++ if (d->dir == DMA_DEV_TO_MEM) ++ dma = control_block->dst; ++ else ++ dma = control_block->src; ++ ++ if (size) ++ size += this_size; ++ else if (addr >= dma && addr < dma + this_size) ++ size += dma + this_size - addr; ++ } ++ } else { ++ for (size = i = 0; i < d->frames; i++) { ++ struct bcm2835_dma_cb *control_block = d->cb_list[i].cb; ++ size_t this_size = control_block->length; ++ dma_addr_t dma; ++ ++ if (d->dir == DMA_DEV_TO_MEM) ++ dma = control_block->dst; ++ else ++ dma = control_block->src; ++ ++ if (size) ++ size += this_size; ++ else if (addr >= dma && addr < dma + this_size) ++ size += dma + this_size - addr; ++ } + } + + return size; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 21 Apr 2023 16:00:51 +0100 +Subject: [PATCH 767/784] bcm2835-dma: Fix WAIT_RESP on memcpy + +It goes in info not extra + +Signed-off-by: Dom Cobley +--- + drivers/dma/bcm2835-dma.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index bb22b3e08af1..4ec717bd3b4d 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -899,8 +899,8 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_memcpy( + struct bcm2835_chan *c = to_bcm2835_dma_chan(chan); + struct bcm2835_desc *d; + u32 info = BCM2835_DMA_D_INC | BCM2835_DMA_S_INC | +- WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq); +- u32 extra = BCM2835_DMA_INT_EN | WAIT_RESP(c->dreq); ++ WAIT_RESP(c->dreq) | WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq); ++ u32 extra = BCM2835_DMA_INT_EN; + size_t max_len = bcm2835_dma_max_frame_length(c); + size_t frames; + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 21 Apr 2023 20:23:42 +0100 +Subject: [PATCH 768/784] bcm2835-dma: Fix dma_abort for 40-bit channels + +It wasn't aborting the transfer and caused stop/start +of hdmi audio dma to be unreliable. + +New sequence approved by Broadcom. + +Signed-off-by: Dom Cobley +--- + drivers/dma/bcm2835-dma.c | 42 ++++++++++++++++++++++++++------------- + 1 file changed, 28 insertions(+), 14 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index 4ec717bd3b4d..dc4660639e2c 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -651,10 +651,6 @@ static void bcm2835_dma_abort(struct bcm2835_chan *c) + { + void __iomem *chan_base = c->chan_base; + long int timeout = 10000; +- u32 wait_mask = BCM2835_DMA_WAITING_FOR_WRITES; +- +- if (c->is_40bit_channel) +- wait_mask = BCM2711_DMA40_WAITING_FOR_WRITES; + + /* + * A zero control block address means the channel is idle. +@@ -663,19 +659,37 @@ static void bcm2835_dma_abort(struct bcm2835_chan *c) + if (!readl(chan_base + BCM2835_DMA_ADDR)) + return; + +- /* Write 0 to the active bit - Pause the DMA */ +- writel(0, chan_base + BCM2835_DMA_CS); ++ if (c->is_40bit_channel) { ++ /* Halt the current DMA */ ++ writel(readl(chan_base + BCM2711_DMA40_CS) | BCM2711_DMA40_HALT, ++ chan_base + BCM2711_DMA40_CS); + +- /* Wait for any current AXI transfer to complete */ +- while ((readl(chan_base + BCM2835_DMA_CS) & wait_mask) && --timeout) +- cpu_relax(); ++ while ((readl(chan_base + BCM2711_DMA40_CS) & BCM2711_DMA40_HALT) && --timeout) ++ cpu_relax(); + +- /* Peripheral might be stuck and fail to signal AXI write responses */ +- if (!timeout) +- dev_err(c->vc.chan.device->dev, +- "failed to complete outstanding writes\n"); ++ /* Peripheral might be stuck and fail to halt */ ++ if (!timeout) ++ dev_err(c->vc.chan.device->dev, ++ "failed to halt dma\n"); + +- writel(BCM2835_DMA_RESET, chan_base + BCM2835_DMA_CS); ++ writel(0, chan_base + BCM2711_DMA40_CS); ++ writel(0, chan_base + BCM2711_DMA40_CB); ++ } else { ++ /* Write 0 to the active bit - Pause the DMA */ ++ writel(0, chan_base + BCM2835_DMA_CS); ++ ++ /* Wait for any current AXI transfer to complete */ ++ while ((readl(chan_base + BCM2835_DMA_CS) & BCM2835_DMA_WAITING_FOR_WRITES) ++ && --timeout) ++ cpu_relax(); ++ ++ /* Peripheral might be stuck and fail to signal AXI write responses */ ++ if (!timeout) ++ dev_err(c->vc.chan.device->dev, ++ "failed to complete outstanding writes\n"); ++ ++ writel(BCM2835_DMA_RESET, chan_base + BCM2835_DMA_CS); ++ } + } + + static void bcm2835_dma_start_desc(struct bcm2835_chan *c) +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Wed, 26 Apr 2023 13:40:34 +0100 +Subject: [PATCH 769/784] bcm2835-dma: Fix dma_abort for non-40bit channels + +The sequence we were doing was not safe. + +Clearing CS meant BCM2835_DMA_WAIT_FOR_WRITES was cleared +and so polling BCM2835_DMA_WAITING_FOR_WRITES has no benefit + +Broadcom have provided a recommended sequence to abort +a dma lite channel, so switch to that. + +Signed-off-by: Dom Cobley +--- + drivers/dma/bcm2835-dma.c | 31 +++++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index dc4660639e2c..a710e084df47 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -675,10 +675,18 @@ static void bcm2835_dma_abort(struct bcm2835_chan *c) + writel(0, chan_base + BCM2711_DMA40_CS); + writel(0, chan_base + BCM2711_DMA40_CB); + } else { ++ /* ++ * A zero control block address means the channel is idle. ++ * (The ACTIVE flag in the CS register is not a reliable indicator.) ++ */ ++ if (!readl(chan_base + BCM2835_DMA_ADDR)) ++ return; ++ + /* Write 0 to the active bit - Pause the DMA */ +- writel(0, chan_base + BCM2835_DMA_CS); ++ writel(readl(chan_base + BCM2835_DMA_CS) & ~BCM2835_DMA_ACTIVE, ++ chan_base + BCM2835_DMA_CS); + +- /* Wait for any current AXI transfer to complete */ ++ /* wait for DMA to be paused */ + while ((readl(chan_base + BCM2835_DMA_CS) & BCM2835_DMA_WAITING_FOR_WRITES) + && --timeout) + cpu_relax(); +@@ -686,9 +694,24 @@ static void bcm2835_dma_abort(struct bcm2835_chan *c) + /* Peripheral might be stuck and fail to signal AXI write responses */ + if (!timeout) + dev_err(c->vc.chan.device->dev, +- "failed to complete outstanding writes\n"); ++ "failed to pause dma\n"); ++ ++ /* We need to clear the next DMA block pending */ ++ writel(0, chan_base + BCM2835_DMA_NEXTCB); ++ ++ /* Abort the DMA, which needs to be enabled to complete */ ++ writel(readl(chan_base + BCM2835_DMA_CS) | BCM2835_DMA_ABORT | BCM2835_DMA_ACTIVE, ++ chan_base + BCM2835_DMA_CS); + +- writel(BCM2835_DMA_RESET, chan_base + BCM2835_DMA_CS); ++ /* wait for DMA to have been aborted */ ++ timeout = 10000; ++ while ((readl(chan_base + BCM2835_DMA_CS) & BCM2835_DMA_ABORT) && --timeout) ++ cpu_relax(); ++ ++ /* Peripheral might be stuck and fail to signal AXI write responses */ ++ if (!timeout) ++ dev_err(c->vc.chan.device->dev, ++ "failed to abort dma\n"); + } + } + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 21 Apr 2023 20:24:54 +0100 +Subject: [PATCH 770/784] bcm2835-dma: Support dma flags for multi-beat burst + +Add a control bit to enable a multi-beat burst on a DMA. +This improves DMA performance and is required for HDMI audio. + +Signed-off-by: Dom Cobley +--- + drivers/dma/bcm2835-dma.c | 28 ++++++++++++++++++++-------- + 1 file changed, 20 insertions(+), 8 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index a710e084df47..0c855e19e912 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -158,7 +158,8 @@ struct bcm2835_desc { + #define BCM2835_DMA_S_WIDTH BIT(9) /* 128bit writes if set */ + #define BCM2835_DMA_S_DREQ BIT(10) /* enable SREQ for source */ + #define BCM2835_DMA_S_IGNORE BIT(11) /* ignore source reads - read 0 */ +-#define BCM2835_DMA_BURST_LENGTH(x) ((x & 15) << 12) ++#define BCM2835_DMA_BURST_LENGTH(x) (((x) & 15) << 12) ++#define BCM2835_DMA_GET_BURST_LENGTH(x) (((x) >> 12) & 15) + #define BCM2835_DMA_CS_FLAGS(x) (x & (BCM2835_DMA_PRIORITY(15) | \ + BCM2835_DMA_PANIC_PRIORITY(15) | \ + BCM2835_DMA_WAIT_FOR_WRITES | \ +@@ -182,6 +183,11 @@ struct bcm2835_desc { + #define WIDE_DEST(x) ((x & BCM2835_DMA_WIDE_DEST) ? \ + BCM2835_DMA_D_WIDTH : 0) + ++/* A fake bit to request that the driver requires multi-beat burst */ ++#define BCM2835_DMA_BURST BIT(30) ++#define BURST_LENGTH(x) ((x & BCM2835_DMA_BURST) ? \ ++ BCM2835_DMA_BURST_LENGTH(3) : 0) ++ + + /* debug register bits */ + #define BCM2835_DMA_DEBUG_LAST_NOT_SET_ERR BIT(0) +@@ -285,7 +291,7 @@ struct bcm2835_desc { + /* the max dma length for different channels */ + #define MAX_DMA40_LEN SZ_1G + +-#define BCM2711_DMA40_BURST_LEN(x) ((min(x,16) - 1) << 8) ++#define BCM2711_DMA40_BURST_LEN(x) (((x) & 15) << 8) + #define BCM2711_DMA40_INC BIT(12) + #define BCM2711_DMA40_SIZE_32 (0 << 13) + #define BCM2711_DMA40_SIZE_64 (1 << 13) +@@ -362,12 +368,16 @@ static inline uint32_t to_bcm2711_ti(uint32_t info) + + static inline uint32_t to_bcm2711_srci(uint32_t info) + { +- return ((info & BCM2835_DMA_S_INC) ? BCM2711_DMA40_INC : 0); ++ return ((info & BCM2835_DMA_S_INC) ? BCM2711_DMA40_INC : 0) | ++ ((info & BCM2835_DMA_S_WIDTH) ? BCM2711_DMA40_SIZE_128 : 0) | ++ BCM2711_DMA40_BURST_LEN(BCM2835_DMA_GET_BURST_LENGTH(info)); + } + + static inline uint32_t to_bcm2711_dsti(uint32_t info) + { +- return ((info & BCM2835_DMA_D_INC) ? BCM2711_DMA40_INC : 0); ++ return ((info & BCM2835_DMA_D_INC) ? BCM2711_DMA40_INC : 0) | ++ ((info & BCM2835_DMA_D_WIDTH) ? BCM2711_DMA40_SIZE_128 : 0) | ++ BCM2711_DMA40_BURST_LEN(BCM2835_DMA_GET_BURST_LENGTH(info)); + } + + static inline uint32_t to_bcm2711_cbaddr(dma_addr_t addr) +@@ -936,7 +946,8 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_memcpy( + struct bcm2835_chan *c = to_bcm2835_dma_chan(chan); + struct bcm2835_desc *d; + u32 info = BCM2835_DMA_D_INC | BCM2835_DMA_S_INC | +- WAIT_RESP(c->dreq) | WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq); ++ WAIT_RESP(c->dreq) | WIDE_SOURCE(c->dreq) | ++ WIDE_DEST(c->dreq) | BURST_LENGTH(c->dreq); + u32 extra = BCM2835_DMA_INT_EN; + size_t max_len = bcm2835_dma_max_frame_length(c); + size_t frames; +@@ -967,8 +978,8 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg( + struct bcm2835_chan *c = to_bcm2835_dma_chan(chan); + struct bcm2835_desc *d; + dma_addr_t src = 0, dst = 0; +- u32 info = WAIT_RESP(c->dreq) | +- WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq); ++ u32 info = WAIT_RESP(c->dreq) | WIDE_SOURCE(c->dreq) | ++ WIDE_DEST(c->dreq) | BURST_LENGTH(c->dreq); + u32 extra = BCM2835_DMA_INT_EN; + size_t frames; + +@@ -1020,7 +1031,8 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic( + struct bcm2835_chan *c = to_bcm2835_dma_chan(chan); + struct bcm2835_desc *d; + dma_addr_t src, dst; +- u32 info = WAIT_RESP(c->dreq) | WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq); ++ u32 info = WAIT_RESP(c->dreq) | WIDE_SOURCE(c->dreq) | ++ WIDE_DEST(c->dreq) | BURST_LENGTH(c->dreq); + u32 extra = 0; + size_t max_len = bcm2835_dma_max_frame_length(c); + size_t frames; +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 5 May 2023 11:23:50 +0100 +Subject: [PATCH 771/784] bcm2835-dma: Need to keep PROT bits set in CS on + 40bit controller + +Resetting them to zero puts DMA channel into secure mode +which makes further accesses impossible + +Signed-off-by: Dom Cobley +--- + drivers/dma/bcm2835-dma.c | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index 0c855e19e912..baf44e1c68d8 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -249,6 +249,9 @@ struct bcm2835_desc { + #define BCM2711_DMA40_DISDEBUG BIT(29) + #define BCM2711_DMA40_ABORT BIT(30) + #define BCM2711_DMA40_HALT BIT(31) ++// we always want to run in supervisor mode ++#define BCM2711_DMA40_PROT (BIT(8)|BIT(9)) ++ + #define BCM2711_DMA40_CS_FLAGS(x) (x & (BCM2711_DMA40_QOS(15) | \ + BCM2711_DMA40_PANIC_QOS(15) | \ + BCM2711_DMA40_WAIT_FOR_WRITES | \ +@@ -682,7 +685,7 @@ static void bcm2835_dma_abort(struct bcm2835_chan *c) + dev_err(c->vc.chan.device->dev, + "failed to halt dma\n"); + +- writel(0, chan_base + BCM2711_DMA40_CS); ++ writel(BCM2711_DMA40_PROT, chan_base + BCM2711_DMA40_CS); + writel(0, chan_base + BCM2711_DMA40_CB); + } else { + /* +@@ -742,7 +745,7 @@ static void bcm2835_dma_start_desc(struct bcm2835_chan *c) + if (c->is_40bit_channel) { + writel(to_bcm2711_cbaddr(d->cb_list[0].paddr), + c->chan_base + BCM2711_DMA40_CB); +- writel(BCM2711_DMA40_ACTIVE | BCM2711_DMA40_CS_FLAGS(c->dreq), ++ writel(BCM2711_DMA40_ACTIVE | BCM2711_DMA40_PROT | BCM2711_DMA40_CS_FLAGS(c->dreq), + c->chan_base + BCM2711_DMA40_CS); + } else { + writel(d->cb_list[0].paddr, c->chan_base + BCM2835_DMA_ADDR); +@@ -775,8 +778,13 @@ static irqreturn_t bcm2835_dma_callback(int irq, void *data) + * if this IRQ handler is threaded.) If the channel is finished, it + * will remain idle despite the ACTIVE flag being set. + */ +- writel(BCM2835_DMA_INT | BCM2835_DMA_ACTIVE | BCM2835_DMA_CS_FLAGS(c->dreq), +- c->chan_base + BCM2835_DMA_CS); ++ if (c->is_40bit_channel) ++ writel(BCM2835_DMA_INT | BCM2711_DMA40_ACTIVE | BCM2711_DMA40_PROT | ++ BCM2711_DMA40_CS_FLAGS(c->dreq), ++ c->chan_base + BCM2711_DMA40_CS); ++ else ++ writel(BCM2835_DMA_INT | BCM2835_DMA_ACTIVE | BCM2835_DMA_CS_FLAGS(c->dreq), ++ c->chan_base + BCM2835_DMA_CS); + + d = c->desc; + +@@ -1230,14 +1238,14 @@ void bcm2711_dma40_memcpy(dma_addr_t dst, dma_addr_t src, size_t size) + scb->next_cb = 0; + + writel(to_bcm2711_cbaddr(memcpy_scb_dma), memcpy_chan + BCM2711_DMA40_CB); +- writel(BCM2711_DMA40_MEMCPY_FLAGS + BCM2711_DMA40_ACTIVE, ++ writel(BCM2711_DMA40_MEMCPY_FLAGS | BCM2711_DMA40_ACTIVE | BCM2711_DMA40_PROT, + memcpy_chan + BCM2711_DMA40_CS); + + /* Poll for completion */ + while (!(readl(memcpy_chan + BCM2711_DMA40_CS) & BCM2711_DMA40_END)) + cpu_relax(); + +- writel(BCM2711_DMA40_END, memcpy_chan + BCM2711_DMA40_CS); ++ writel(BCM2711_DMA40_END | BCM2711_DMA40_PROT, memcpy_chan + BCM2711_DMA40_CS); + + spin_unlock_irqrestore(&memcpy_lock, flags); + } +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Thu, 4 May 2023 16:09:49 +0100 +Subject: [PATCH 772/784] bcm2711-rpi-ds: Switch to dma40 channel for hdmi + audio + +Also tweak the flags: +Remove NO_WAIT_RESP (27) +Add BURST_LENGTH (30) + +The AXI path from DMA controller to HDMI audio fifo +is long, and may have considerable delay. + +When using DMA without waiting for responses it is +very easy to overfill the fifo as when the fifo +removes DREQ there may be large numbers of writes +in flight. + +This means the DREQ fifo threshold must be set low +enough to accommodate the maximum number of in flight +writes (unknown by something like 24), +which means the 32 element fifo only requests data +when it contains fewer than 8 entries, making it +susceptable to underflow. + +If we wait for write responses we can set the DREQ +fifo threshold much higher as there are a controlled +number of writes in flight. + +However the overall bandwidth is reduced by setting +this, so also enable a burstsize of 4 to improve +bandwidth. + +Signed-off-by: Dom Cobley +--- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index d62ec14a9db6..5c528c244d8b 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -364,7 +364,7 @@ &hdmi0 { + <&firmware_clocks 14>, + <&dvp 0>, + <&clk_27MHz>; +- dmas = <&dma (10|(1<<27)|(1<<24)|(10<<16)|(15<<20))>; ++ dmas = <&dma40 (10|(1<<30)|(1<<24)|(10<<16)|(15<<20))>; + status = "disabled"; + }; + +@@ -397,7 +397,7 @@ &hdmi1 { + <&firmware_clocks 14>, + <&dvp 1>, + <&clk_27MHz>; +- dmas = <&dma (17|(1<<27)|(1<<24)|(10<<16)|(15<<20))>; ++ dmas = <&dma40 (17|(1<<30)|(1<<24)|(10<<16)|(15<<20))>; + status = "disabled"; + }; + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Fri, 21 Apr 2023 22:00:16 +0100 +Subject: [PATCH 773/784] drm/vc4: hdmi: Increase MAI fifo dreq threshold + +Now we wait for write responses and have a burst +size of 4, we can set the fifo threshold much higher. + +Set it to 28 (of the 32 entry size) to keep fifo +fuller and reduce chance of underflow. + +Signed-off-by: Dom Cobley +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index a0e536c4b66d..446a278fda77 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -2555,6 +2555,7 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, + { + struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + struct drm_device *drm = vc4_hdmi->connector.dev; ++ struct vc4_dev *vc4 = to_vc4_dev(drm); + struct drm_encoder *encoder = &vc4_hdmi->encoder.base; + unsigned int sample_rate = params->sample_rate; + unsigned int channels = params->channels; +@@ -2613,11 +2614,18 @@ static int vc4_hdmi_audio_prepare(struct device *dev, void *data, + VC4_HDMI_AUDIO_PACKET_CEA_MASK); + + /* Set the MAI threshold */ +- HDMI_WRITE(HDMI_MAI_THR, +- 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)); ++ if (vc4->is_vc5) ++ 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(0x1c, VC4_HD_MAI_THR_DREQHIGH) | ++ VC4_SET_FIELD(0x1c, VC4_HD_MAI_THR_DREQLOW)); ++ else ++ HDMI_WRITE(HDMI_MAI_THR, ++ VC4_SET_FIELD(0x8, VC4_HD_MAI_THR_PANICHIGH) | ++ VC4_SET_FIELD(0x8, VC4_HD_MAI_THR_PANICLOW) | ++ VC4_SET_FIELD(0x6, VC4_HD_MAI_THR_DREQHIGH) | ++ VC4_SET_FIELD(0x8, VC4_HD_MAI_THR_DREQLOW)); + + HDMI_WRITE(HDMI_MAI_CONFIG, + VC4_HDMI_MAI_CONFIG_BIT_REVERSE | +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 17 May 2023 13:39:18 +0100 +Subject: [PATCH 774/784] ARM: dts: bcm2711-rpi: Set a 1GB ZONE_DMA limit + +The arm64 initialisation uses the physical address reachable by all +DMA controllers to set the size of ZONE_DMA. This fails on BCM2711 +with the current dts files because the declaration of the I/O space +fools it into thinking the legacy 30-bit DMA channels can see most +of the 32-bit space. + +Take advantage of the simple nature of the implementation by adding +a node with a restricted dma-ranges property solely so to act as the +limiting factor in the calculation. + +See: https://github.com/raspberrypi/linux/issues/5470 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index 5c528c244d8b..93bd3bd2d6ff 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -63,6 +63,16 @@ aliases { + spi6 = &spi6; + /delete-property/ intc; + }; ++ ++ /* ++ * Add a node with a dma-ranges value that exists only to be found ++ * by of_dma_get_max_cpu_address, and hence limit the DMA zone. ++ */ ++ zone_dma { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ dma-ranges = <0x0 0x0 0x0 0x40000000>; ++ }; + }; + + &vc4 { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 17 May 2023 16:53:24 +0100 +Subject: [PATCH 775/784] ARM: dts: bcm27xx: Add stdout-path to serial0 + +Rather than deleting the upstream stdout-path declaration, overwrite +it with one selecting serial0, which will always be the UART mapped +to the 40-pin header (provided enable_uart=1 is specified). Doing +so has the advantage that earlycon can be configured just by adding +"earlycon" to the command line. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm270x.dtsi | 2 +- + arch/arm/boot/dts/bcm2711-rpi-ds.dtsi | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi +index bb8e7a9d1b22..c318080eb883 100644 +--- a/arch/arm/boot/dts/bcm270x.dtsi ++++ b/arch/arm/boot/dts/bcm270x.dtsi +@@ -5,7 +5,7 @@ / { + chosen: chosen { + // Disable audio by default + bootargs = "coherent_pool=1M snd_bcm2835.enable_headphones=0"; +- /delete-property/ stdout-path; ++ stdout-path = "serial0:115200n8"; + }; + + soc: soc { +diff --git a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +index 93bd3bd2d6ff..968db6362989 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi ++++ b/arch/arm/boot/dts/bcm2711-rpi-ds.dtsi +@@ -34,7 +34,7 @@ arm-pmu { + }; + + chosen { +- /delete-property/ stdout-path; ++ stdout-path = "serial0:115200n8"; + }; + + aliases { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 19 May 2023 18:16:58 +0100 +Subject: [PATCH 776/784] input: edt-ft5x06: Only read data for number of + points reported + +Rather than always reading the maximum number of points supported +by the chip (which may be as high as 10), read the number of +active points first, and read data for just those. +In most cases this will result in less data on the I2C bus, +with only the maximum touch points taking more due to a second +read that has to configure the start address. + +Signed-off-by: Dave Stevenson +--- + drivers/input/touchscreen/edt-ft5x06.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c +index 8b7f3087aceb..5ddad19f092a 100644 +--- a/drivers/input/touchscreen/edt-ft5x06.c ++++ b/drivers/input/touchscreen/edt-ft5x06.c +@@ -220,6 +220,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id) + offset = 5; /* where the actual touch data starts */ + tplen = 4; /* data comes in so called frames */ + crclen = 1; /* length of the crc data */ ++ datalen = tplen * tsdata->max_support_points + offset + crclen; + break; + + case EDT_M09: +@@ -230,6 +231,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id) + offset = 3; + tplen = 6; + crclen = 0; ++ datalen = 3; + break; + + default: +@@ -237,7 +239,6 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id) + } + + memset(rdbuf, 0, sizeof(rdbuf)); +- datalen = tplen * tsdata->max_support_points + offset + crclen; + + error = edt_ft5x06_ts_readwrite(tsdata->client, + sizeof(cmd), &cmd, +@@ -267,6 +268,13 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id) + * points. + */ + num_points = min(rdbuf[2] & 0xf, tsdata->max_support_points); ++ if (num_points) { ++ datalen = tplen * num_points + crclen; ++ cmd = offset; ++ error = edt_ft5x06_ts_readwrite(tsdata->client, ++ sizeof(cmd), &cmd, ++ datalen, &rdbuf[offset]); ++ } + } + + for (i = 0; i < num_points; i++) { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 23 May 2023 14:11:52 +0100 +Subject: [PATCH 777/784] i2c-bcm2835: Flush FIFOs cleanly on error + +On error condition, note the error return code, but still +handle the FIFOs in the normal way rather than relying on +C_CLEAR flushing everything cleanly. + +Signed-off-by: Dave Stevenson +--- + drivers/i2c/busses/i2c-bcm2835.c | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c +index 7408e2c136b0..329eac57507b 100644 +--- a/drivers/i2c/busses/i2c-bcm2835.c ++++ b/drivers/i2c/busses/i2c-bcm2835.c +@@ -385,10 +385,8 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data) + bcm2835_debug_add(i2c_dev, val); + + err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR); +- if (err) { ++ if (err) + i2c_dev->msg_err = err; +- goto complete; +- } + + if (val & BCM2835_I2C_S_DONE) { + if (!i2c_dev->curr_msg) { +@@ -400,8 +398,6 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data) + + if ((val & BCM2835_I2C_S_RXD) || i2c_dev->msg_buf_remaining) + i2c_dev->msg_err = BCM2835_I2C_S_LEN; +- else +- i2c_dev->msg_err = 0; + goto complete; + } + +@@ -465,6 +461,7 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], + + i2c_dev->curr_msg = msgs; + i2c_dev->num_msgs = num; ++ i2c_dev->msg_err = 0; + reinit_completion(&i2c_dev->completion); + + bcm2835_i2c_start_transfer(i2c_dev); +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 23 May 2023 14:14:05 +0100 +Subject: [PATCH 778/784] i2c-bcm2835: Do not abort transfers on ERR if still + active + +If a transaction is aborted immediately on ERR being reported, +then the bus is not returned to the STOP condition, and devices +generally get very upset. + +Handle the ERR and CLKT conditions only when TA is not set. + +Signed-off-by: Dave Stevenson +--- + drivers/i2c/busses/i2c-bcm2835.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c +index 329eac57507b..78416ed6e2fe 100644 +--- a/drivers/i2c/busses/i2c-bcm2835.c ++++ b/drivers/i2c/busses/i2c-bcm2835.c +@@ -385,7 +385,7 @@ static irqreturn_t bcm2835_i2c_isr(int this_irq, void *data) + bcm2835_debug_add(i2c_dev, val); + + err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR); +- if (err) ++ if (err && !(val & BCM2835_I2C_S_TA)) + i2c_dev->msg_err = err; + + if (val & BCM2835_I2C_S_DONE) { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 23 May 2023 14:31:03 +0100 +Subject: [PATCH 779/784] i2c-bcm2835: Implement I2C_M_IGNORE_NAK + +Now that transfers aren't aborted immediately (and uncleanly) on +errors, and the FIFOs are always drained after all transfers, we +can implement I2C_M_IGNORE_NAK by ignoring the returned error +value. + +Signed-off-by: Dave Stevenson +--- + drivers/i2c/busses/i2c-bcm2835.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c +index 78416ed6e2fe..f89de1e51364 100644 +--- a/drivers/i2c/busses/i2c-bcm2835.c ++++ b/drivers/i2c/busses/i2c-bcm2835.c +@@ -443,6 +443,7 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], + { + struct bcm2835_i2c_dev *i2c_dev = i2c_get_adapdata(adap); + unsigned long time_left; ++ bool ignore_nak = false; + int i; + + if (debug) +@@ -452,12 +453,15 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], + for (i = 0; i < num; i++) + bcm2835_debug_print_msg(i2c_dev, &msgs[i], i + 1, num, __func__); + +- for (i = 0; i < (num - 1); i++) ++ for (i = 0; i < (num - 1); i++) { + if (msgs[i].flags & I2C_M_RD) { + dev_warn_once(i2c_dev->dev, + "only one read message supported, has to be last\n"); + return -EOPNOTSUPP; + } ++ if (msgs[i].flags & I2C_M_IGNORE_NAK) ++ ignore_nak = true; ++ } + + i2c_dev->curr_msg = msgs; + i2c_dev->num_msgs = num; +@@ -471,6 +475,9 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], + + bcm2835_i2c_finish_transfer(i2c_dev); + ++ if (ignore_nak) ++ i2c_dev->msg_err &= ~BCM2835_I2C_S_ERR; ++ + if (debug > 1 || (debug && (!time_left || i2c_dev->msg_err))) + bcm2835_debug_print(i2c_dev); + i2c_dev->debug_num_msgs = 0; +@@ -497,7 +504,7 @@ static int bcm2835_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], + + static u32 bcm2835_i2c_func(struct i2c_adapter *adap) + { +- return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; ++ return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_PROTOCOL_MANGLING; + } + + static const struct i2c_algorithm bcm2835_i2c_algo = { +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 22 May 2023 14:22:55 +0100 +Subject: [PATCH 780/784] pps: Compatibility hack should be X86-specific + +As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland +is broken, returning a timeout. This is because the requested 4-byte +alignment for struct pps_ktime_compat (illegal on arm64) results in the +timeout flags field being uninitialised. + +Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. + +[1] commit c2a49fe8eeef ("pps: fix padding issue with PPS_FETCH for + ioctl_compat") + +See: https://github.com/raspberrypi/linux/issues/5430 +Fixes: c2a49fe8eeef ("pps: fix padding issue with PPS_FETCH for ioctl_compat") +Signed-off-by: Phil Elwell +--- + drivers/pps/pps.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/pps/pps.c b/drivers/pps/pps.c +index 22a65ad4e46e..ce5719b564f5 100644 +--- a/drivers/pps/pps.c ++++ b/drivers/pps/pps.c +@@ -249,12 +249,13 @@ static long pps_cdev_ioctl(struct file *file, + static long pps_cdev_compat_ioctl(struct file *file, + unsigned int cmd, unsigned long arg) + { +- struct pps_device *pps = file->private_data; +- void __user *uarg = (void __user *) arg; + + cmd = _IOC(_IOC_DIR(cmd), _IOC_TYPE(cmd), _IOC_NR(cmd), sizeof(void *)); + ++#ifdef CONFIG_X86_64 + if (cmd == PPS_FETCH) { ++ struct pps_device *pps = file->private_data; ++ void __user *uarg = (void __user *) arg; + struct pps_fdata_compat compat; + struct pps_fdata fdata; + int err; +@@ -289,6 +290,7 @@ static long pps_cdev_compat_ioctl(struct file *file, + return copy_to_user(uarg, &compat, + sizeof(struct pps_fdata_compat)) ? -EFAULT : 0; + } ++#endif + + return pps_cdev_ioctl(file, cmd, arg); + } +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Thu, 25 May 2023 17:04:20 +0100 +Subject: [PATCH 781/784] bcm2835-dma: Fixes for dma_abort + +There is a problem with the current abort scheme +when dma is blocked on a DREQ which prevents halting. + +This is triggered by SPI driver which aborts dma +in this state and so leads to a halt timeout. + +Discussion with Broadcom suggests the sequence: + +CS.ACTIVE=0 +while (CS.OUTSTANDING_TRANSACTIONS == 0) + wait() +DEBUG.RESET=1 + +should be safe on a dma40 channel. + +Unfortunately the non-dma40 channels don't have +OUTSTANDING_TRANSACTIONS, so we need a more +complicated scheme. + +We attempt to abort the channel, which will work +if there is no blocked DREQ. + +It it times out, we can assume there is no AXI +transfer in progress and reset anyway. + +The length of the timeout is observed at ~20us. + +Signed-off-by: Dom Cobley +--- + drivers/dma/bcm2835-dma.c | 74 +++++++++++++++++++++------------------ + 1 file changed, 40 insertions(+), 34 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index baf44e1c68d8..ee241d34c960 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -245,6 +245,7 @@ struct bcm2835_desc { + #define BCM2711_DMA40_ERR BIT(10) + #define BCM2711_DMA40_QOS(x) (((x) & 0x1f) << 16) + #define BCM2711_DMA40_PANIC_QOS(x) (((x) & 0x1f) << 20) ++#define BCM2711_DMA40_TRANSACTIONS BIT(25) + #define BCM2711_DMA40_WAIT_FOR_WRITES BIT(28) + #define BCM2711_DMA40_DISDEBUG BIT(29) + #define BCM2711_DMA40_ABORT BIT(30) +@@ -663,30 +664,37 @@ static void bcm2835_dma_fill_cb_chain_with_sg( + static void bcm2835_dma_abort(struct bcm2835_chan *c) + { + void __iomem *chan_base = c->chan_base; +- long int timeout = 10000; +- +- /* +- * A zero control block address means the channel is idle. +- * (The ACTIVE flag in the CS register is not a reliable indicator.) +- */ +- if (!readl(chan_base + BCM2835_DMA_ADDR)) +- return; ++ long timeout = 100; + + if (c->is_40bit_channel) { +- /* Halt the current DMA */ +- writel(readl(chan_base + BCM2711_DMA40_CS) | BCM2711_DMA40_HALT, ++ /* ++ * A zero control block address means the channel is idle. ++ * (The ACTIVE flag in the CS register is not a reliable indicator.) ++ */ ++ if (!readl(chan_base + BCM2711_DMA40_CB)) ++ return; ++ ++ /* Pause the current DMA */ ++ writel(readl(chan_base + BCM2711_DMA40_CS) & ~BCM2711_DMA40_ACTIVE, + chan_base + BCM2711_DMA40_CS); + +- while ((readl(chan_base + BCM2711_DMA40_CS) & BCM2711_DMA40_HALT) && --timeout) ++ /* wait for outstanding transactions to complete */ ++ while ((readl(chan_base + BCM2711_DMA40_CS) & BCM2711_DMA40_TRANSACTIONS) && ++ --timeout) + cpu_relax(); + +- /* Peripheral might be stuck and fail to halt */ ++ /* Peripheral might be stuck and fail to complete */ + if (!timeout) + dev_err(c->vc.chan.device->dev, +- "failed to halt dma\n"); ++ "failed to complete pause on dma %d (CS:%08x)\n", c->ch, ++ readl(chan_base + BCM2711_DMA40_CS)); + ++ /* Set CS back to default state */ + writel(BCM2711_DMA40_PROT, chan_base + BCM2711_DMA40_CS); +- writel(0, chan_base + BCM2711_DMA40_CB); ++ ++ /* Reset the DMA */ ++ writel(readl(chan_base + BCM2711_DMA40_DEBUG) | BCM2711_DMA40_DEBUG_RESET, ++ chan_base + BCM2711_DMA40_DEBUG); + } else { + /* + * A zero control block address means the channel is idle. +@@ -695,36 +703,34 @@ static void bcm2835_dma_abort(struct bcm2835_chan *c) + if (!readl(chan_base + BCM2835_DMA_ADDR)) + return; + +- /* Write 0 to the active bit - Pause the DMA */ +- writel(readl(chan_base + BCM2835_DMA_CS) & ~BCM2835_DMA_ACTIVE, +- chan_base + BCM2835_DMA_CS); +- +- /* wait for DMA to be paused */ +- while ((readl(chan_base + BCM2835_DMA_CS) & BCM2835_DMA_WAITING_FOR_WRITES) +- && --timeout) +- cpu_relax(); +- +- /* Peripheral might be stuck and fail to signal AXI write responses */ +- if (!timeout) +- dev_err(c->vc.chan.device->dev, +- "failed to pause dma\n"); +- + /* We need to clear the next DMA block pending */ + writel(0, chan_base + BCM2835_DMA_NEXTCB); + + /* Abort the DMA, which needs to be enabled to complete */ + writel(readl(chan_base + BCM2835_DMA_CS) | BCM2835_DMA_ABORT | BCM2835_DMA_ACTIVE, +- chan_base + BCM2835_DMA_CS); ++ chan_base + BCM2835_DMA_CS); + +- /* wait for DMA to have been aborted */ +- timeout = 10000; ++ /* wait for DMA to be aborted */ + while ((readl(chan_base + BCM2835_DMA_CS) & BCM2835_DMA_ABORT) && --timeout) + cpu_relax(); + +- /* Peripheral might be stuck and fail to signal AXI write responses */ +- if (!timeout) ++ /* Write 0 to the active bit - Pause the DMA */ ++ writel(readl(chan_base + BCM2835_DMA_CS) & ~BCM2835_DMA_ACTIVE, ++ chan_base + BCM2835_DMA_CS); ++ ++ /* ++ * Peripheral might be stuck and fail to complete ++ * This is expected when dreqs are enabled but not asserted ++ * so only report error in non dreq case ++ */ ++ if (!timeout && !(readl(chan_base + BCM2835_DMA_TI) & ++ (BCM2835_DMA_S_DREQ | BCM2835_DMA_D_DREQ))) + dev_err(c->vc.chan.device->dev, +- "failed to abort dma\n"); ++ "failed to complete pause on dma %d (CS:%08x)\n", c->ch, ++ readl(chan_base + BCM2835_DMA_CS)); ++ ++ /* Set CS back to default state and reset the DMA */ ++ writel(BCM2835_DMA_RESET, chan_base + BCM2835_DMA_CS); + } + } + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dom Cobley +Date: Tue, 30 May 2023 15:51:48 +0100 +Subject: [PATCH 782/784] bcm2835-dma: Move definition of PROT bits to expected + place + +Fixes: 654368fe848c ("bcm2835-dma: Need to keep PROT bits set in CS on 40bit controller") + +Signed-off-by: Dom Cobley +--- + drivers/dma/bcm2835-dma.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c +index ee241d34c960..7aaedb58ea14 100644 +--- a/drivers/dma/bcm2835-dma.c ++++ b/drivers/dma/bcm2835-dma.c +@@ -242,6 +242,8 @@ struct bcm2835_desc { + #define BCM2711_DMA40_WR_PAUSED BIT(5) /* Writing is paused */ + #define BCM2711_DMA40_DREQ_PAUSED BIT(6) /* Is paused by DREQ flow control */ + #define BCM2711_DMA40_WAITING_FOR_WRITES BIT(7) /* Waiting for last write */ ++// we always want to run in supervisor mode ++#define BCM2711_DMA40_PROT (BIT(8)|BIT(9)) + #define BCM2711_DMA40_ERR BIT(10) + #define BCM2711_DMA40_QOS(x) (((x) & 0x1f) << 16) + #define BCM2711_DMA40_PANIC_QOS(x) (((x) & 0x1f) << 20) +@@ -250,8 +252,6 @@ struct bcm2835_desc { + #define BCM2711_DMA40_DISDEBUG BIT(29) + #define BCM2711_DMA40_ABORT BIT(30) + #define BCM2711_DMA40_HALT BIT(31) +-// we always want to run in supervisor mode +-#define BCM2711_DMA40_PROT (BIT(8)|BIT(9)) + + #define BCM2711_DMA40_CS_FLAGS(x) (x & (BCM2711_DMA40_QOS(15) | \ + BCM2711_DMA40_PANIC_QOS(15) | \ +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck +Date: Wed, 31 May 2023 15:51:58 +0100 +Subject: [PATCH 783/784] drivers: media: imx296: Disable 2x2 binned mode + +Disable enumerating and setting of the 2x2 binned mode entirely as it +does not seem to work for either mono or colour sensor variants. + +Signed-off-by: Naushir Patuck +--- + drivers/media/i2c/imx296.c | 36 +++++++----------------------------- + 1 file changed, 7 insertions(+), 29 deletions(-) + +diff --git a/drivers/media/i2c/imx296.c b/drivers/media/i2c/imx296.c +index fbd113aa4ca6..4a7864c3a014 100644 +--- a/drivers/media/i2c/imx296.c ++++ b/drivers/media/i2c/imx296.c +@@ -745,12 +745,14 @@ static int imx296_enum_frame_size(struct v4l2_subdev *sd, + { + const struct imx296 *sensor = to_imx296(sd); + const struct v4l2_mbus_framefmt *format; +- /* Binning only works on the mono sensor variant */ +- unsigned int max_index = sensor->mono ? 2 : 1; + + format = v4l2_subdev_get_pad_format(sd, state, fse->pad); + +- if (fse->index >= max_index || fse->code != imx296_mbus_code(sensor)) ++ /* ++ * Binning does not seem to work on either mono or colour sensor ++ * variants. Disable enumerating the binned frame size for now. ++ */ ++ if (fse->index >= 1 || fse->code != imx296_mbus_code(sensor)) + return -EINVAL; + + fse->min_width = IMX296_PIXEL_ARRAY_WIDTH / (fse->index + 1); +@@ -781,32 +783,8 @@ static int imx296_set_format(struct v4l2_subdev *sd, + crop = v4l2_subdev_get_pad_crop(sd, state, fmt->pad); + format = v4l2_subdev_get_pad_format(sd, state, fmt->pad); + +- /* +- * Binning is only allowed when cropping is disabled according to the +- * documentation. This should be double-checked. +- */ +- if (crop->width == IMX296_PIXEL_ARRAY_WIDTH && +- crop->height == IMX296_PIXEL_ARRAY_HEIGHT) { +- unsigned int width; +- unsigned int height; +- unsigned int hratio; +- unsigned int vratio; +- +- /* Clamp the width and height to avoid dividing by zero. */ +- width = clamp_t(unsigned int, fmt->format.width, +- crop->width / 2, crop->width); +- height = clamp_t(unsigned int, fmt->format.height, +- crop->height / 2, crop->height); +- +- hratio = DIV_ROUND_CLOSEST(crop->width, width); +- vratio = DIV_ROUND_CLOSEST(crop->height, height); +- +- format->width = crop->width / hratio; +- format->height = crop->height / vratio; +- } else { +- format->width = crop->width; +- format->height = crop->height; +- } ++ format->width = crop->width; ++ format->height = crop->height; + + imx296_setup_hblank(sensor, format->width); + +-- +2.39.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jack Andersen +Date: Fri, 26 May 2023 12:19:19 -0700 +Subject: [PATCH 784/784] panel-sitronix-st7701: Fix panel prepare over SPI + +A DSI write is issued in st7701_prepare even when the probed panel +runs on SPI. In practice, this results in a panic with the +vc4-kms-dpi-hyperpixel2r overlay active. + +Perform the equivalent write over SPI in this case. + +Signed-off-by: Jack Andersen +--- + drivers/gpu/drm/panel/panel-sitronix-st7701.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c +index 3aed984d596f..53f23f23505c 100644 +--- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c ++++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c +@@ -571,8 +571,16 @@ static int st7701_prepare(struct drm_panel *panel) + st7701->desc->gip_sequence(st7701); + + /* Disable Command2 */ +- ST7701_DSI(st7701, DSI_CMD2BKX_SEL, +- 0x77, 0x01, 0x00, 0x00, DSI_CMD2BKX_SEL_NONE); ++ switch (st7701->desc->interface) { ++ case ST7701_CTRL_DSI: ++ ST7701_DSI(st7701, DSI_CMD2BKX_SEL, ++ 0x77, 0x01, 0x00, 0x00, DSI_CMD2BKX_SEL_NONE); ++ break; ++ case ST7701_CTRL_SPI: ++ ST7701_SPI(st7701, DSI_CMD2BKX_SEL, ++ 0x177, 0x101, 0x100, 0x100, SPI_CMD2BKX_SEL_NONE); ++ break; ++ } + + return 0; + } +-- +2.39.1 + diff --git a/SPECS/raspberrypi2.spec b/SPECS/raspberrypi2.spec index a3343fb..ead790a 100644 --- a/SPECS/raspberrypi2.spec +++ b/SPECS/raspberrypi2.spec @@ -1,5 +1,5 @@ -%global commit_firmware_long add727346b1459c04995e2b66e2b01686eca20c9 -%global commit_linux_long 0afb5e98488aed7017b9bf321b575d0177feb7ed +%global commit_firmware_long cb9500d6021e083a182ba168fe4424e3db2494cf +%global commit_linux_long 4fc5a03ad1d2fb811d8652be67260312fa3125fc ExclusiveArch: aarch64 armv7hl @@ -32,7 +32,7 @@ ExclusiveArch: aarch64 armv7hl %define extra_version 1 %define kversion 6.1 -%define patchlevel 23 +%define patchlevel 31 Name: raspberrypi2 Version: %{kversion}.%{patchlevel} @@ -291,6 +291,9 @@ cp $(ls -1 /boot/config-kernel-*-*|sort -V|tail -1) /boot/config-kernel.inc %doc /boot/LICENCE.broadcom %changelog +* Sun Jun 04 2023 Pablo Greco - 6.1.31 +- Update to version v6.1.31 + * Sun Apr 09 2023 Pablo Greco - 6.1.23 - Update to version v6.1.23