diff --git a/Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch b/Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch new file mode 100644 index 000000000..8627b6087 --- /dev/null +++ b/Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch @@ -0,0 +1,78 @@ +From 9d1a8ad3c56f4e84a0ec46246b4c08a6d139f638 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sun, 13 Oct 2019 14:33:23 +0100 +Subject: [PATCH] Revert "ARM: bcm283x: Switch V3D over to using the PM driver + instead of firmware." + +Since release of the new BCM2835 PM driver there has been several reports +of V3D probing issues. This is caused by timeouts during powering-up the +GRAFX PM domain: + + bcm2835-power: Timeout waiting for grafx power OK + +I was able to reproduce this reliable on my Raspberry Pi 3B+ after setting +force_turbo=1 in the firmware configuration. Since there are no issues +using the firmware PM driver with the same setup, there must be an issue +in the BCM2835 PM driver. + +Unfortunately there hasn't been much progress in identifying the root cause +since June (mostly in the lack of documentation), so i decided to switch +back until the issue in the BCM2835 PM driver is fixed. + +Link: https://github.com/raspberrypi/linux/issues/3046 +Fixes: e1dc2b2e1bef (" ARM: bcm283x: Switch V3D over to using the PM driver instead of firmware.") +Cc: stable@vger.kernel.org +Signed-off-by: Stefan Wahren +Acked-by: Eric Anholt +--- + a/arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 ++++ + b/arch/arm/boot/dts/bcm283x.dtsi | 4 +--- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi +index 715d50c64529..d136867c317f 100644 +--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi +@@ -90,6 +90,10 @@ + status = "okay"; + }; + ++&v3d { ++ power-domains = <&power RPI_POWER_DOMAIN_V3D>; ++}; ++ + &vec { + power-domains = <&power RPI_POWER_DOMAIN_VEC>; + status = "okay"; +diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi +index 4b21ddb26aa5..0c6a6611f285 100644 +--- a/arch/arm/boot/dts/bcm283x.dtsi ++++ b/arch/arm/boot/dts/bcm283x.dtsi +@@ -3,7 +3,6 @@ + #include + #include + #include +-#include + + /* firmware-provided startup stubs live here, where the secondary CPUs are + * spinning. +@@ -121,7 +120,7 @@ + #interrupt-cells = <2>; + }; + +- pm: watchdog@7e100000 { ++ watchdog@7e100000 { + compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt"; + #power-domain-cells = <1>; + #reset-cells = <1>; +@@ -641,7 +640,6 @@ + compatible = "brcm,bcm2835-v3d"; + reg = <0x7ec00000 0x1000>; + interrupts = <1 10>; +- power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; + }; + + vc4: gpu { +-- +2.21.0 + diff --git a/kernel.spec b/kernel.spec index f94ed88f0..9af899b8e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -559,8 +559,6 @@ Patch307: arm64-dts-rockchip-fix-RockPro64-vdd-log-regulator-settings.patch # https://patchwork.kernel.org/patch/11155461/ Patch308: arm64-dts-rockchip-fix-Rockpro64-RK808-interrupt-line.patch -Patch309: bcm2835-audio-Fix-draining-behavior-regression.patch - # Tegra bits Patch320: arm64-tegra-jetson-tx1-fixes.patch # https://www.spinics.net/lists/linux-tegra/msg43110.html @@ -578,6 +576,13 @@ Patch330: arm64-qcom-i2c-geni-Disable-DMA-processing-on-the-Lenovo-Yoga-C630.pat # https://patchwork.kernel.org/patch/11133293/ Patch332: arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch +# Raspberry Pi bits +Patch340: bcm2835-audio-Fix-draining-behavior-regression.patch + +# This is typical rpi, we have a driver but it has problems because ¯\_(ツ)_/¯ but this revert makes pictures work again. +# https://patchwork.kernel.org/patch/11136979/ +Patch341: Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch + # 400 - IBM (ppc/s390x) patches # 500 - Temp fixes/CVEs etc