[PATCH v2] Revert v6.2-rc1 and later "ARM: dts: bcm2835-rpi: Use firmware clocks for display"

H. Nikolaus Schaller posted 1 patch 1 year ago
arch/arm/boot/dts/bcm2835-rpi-common.dtsi | 17 -----------------
1 file changed, 17 deletions(-)
[PATCH v2] Revert v6.2-rc1 and later "ARM: dts: bcm2835-rpi: Use firmware clocks for display"
Posted by H. Nikolaus Schaller 1 year ago
This reverts commit 27ab05e1b7e5c5ec9b4f658e1b2464c0908298a6.

I tried to upgrade a RasPi 3B+ with Waveshare 7inch HDMI LCD
from 6.1.y to 6.6.y but found that the display is broken with
this log message:

[   17.776315] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_drm_unregister [vc4])
[   17.784034] platform 3f806000.vec: deferred probe pending

Some tests revealed that while 6.1.y works, 6.2-rc1 is already broken but all
newer kernels as well. And a bisect did lead me to this patch.

I could repair several versions up to 6.13-rc7 by doing
this revert. Newer kernels have just to take care of

commit f702475b839c ("ARM: dts: bcm2835-rpi: Move duplicate firmware-clocks to bcm2835-rpi.dtsi")

but that is straightforward.

Fixes: 27ab05e1b7e5 ("ARM: dts: bcm2835-rpi: Use firmware clocks for display")
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 arch/arm/boot/dts/bcm2835-rpi-common.dtsi | 17 -----------------
 1 file changed, 17 deletions(-)

diff --git a/arch/arm/boot/dts/bcm2835-rpi-common.dtsi b/arch/arm/boot/dts/bcm2835-rpi-common.dtsi
index 4e7b4a592da7c..8a55b6cded592 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-common.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi-common.dtsi
@@ -7,23 +7,6 @@
 
 #include <dt-bindings/power/raspberrypi-power.h>
 
-&firmware {
-	firmware_clocks: clocks {
-		compatible = "raspberrypi,firmware-clocks";
-		#clock-cells = <1>;
-	};
-};
-
-&hdmi {
-	clocks = <&firmware_clocks 9>,
-		 <&firmware_clocks 13>;
-	clock-names = "pixel", "hdmi";
-};
-
 &v3d {
 	power-domains = <&power RPI_POWER_DOMAIN_V3D>;
 };
-
-&vec {
-	clocks = <&firmware_clocks 15>;
-};
-- 
2.47.0
Re: [PATCH v2] Revert v6.2-rc1 and later "ARM: dts: bcm2835-rpi: Use firmware clocks for display"
Posted by Greg KH 1 year ago
On Sat, Jan 18, 2025 at 05:27:07PM +0100, H. Nikolaus Schaller wrote:
> This reverts commit 27ab05e1b7e5c5ec9b4f658e1b2464c0908298a6.
> 
> I tried to upgrade a RasPi 3B+ with Waveshare 7inch HDMI LCD
> from 6.1.y to 6.6.y but found that the display is broken with
> this log message:
> 
> [   17.776315] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_drm_unregister [vc4])
> [   17.784034] platform 3f806000.vec: deferred probe pending
> 
> Some tests revealed that while 6.1.y works, 6.2-rc1 is already broken but all
> newer kernels as well. And a bisect did lead me to this patch.
> 
> I could repair several versions up to 6.13-rc7 by doing
> this revert. Newer kernels have just to take care of
> 
> commit f702475b839c ("ARM: dts: bcm2835-rpi: Move duplicate firmware-clocks to bcm2835-rpi.dtsi")
> 
> but that is straightforward.
> 
> Fixes: 27ab05e1b7e5 ("ARM: dts: bcm2835-rpi: Use firmware clocks for display")
> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> ---
>  arch/arm/boot/dts/bcm2835-rpi-common.dtsi | 17 -----------------
>  1 file changed, 17 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/bcm2835-rpi-common.dtsi b/arch/arm/boot/dts/bcm2835-rpi-common.dtsi
> index 4e7b4a592da7c..8a55b6cded592 100644
> --- a/arch/arm/boot/dts/bcm2835-rpi-common.dtsi
> +++ b/arch/arm/boot/dts/bcm2835-rpi-common.dtsi
> @@ -7,23 +7,6 @@
>  
>  #include <dt-bindings/power/raspberrypi-power.h>
>  
> -&firmware {
> -	firmware_clocks: clocks {
> -		compatible = "raspberrypi,firmware-clocks";
> -		#clock-cells = <1>;
> -	};
> -};
> -
> -&hdmi {
> -	clocks = <&firmware_clocks 9>,
> -		 <&firmware_clocks 13>;
> -	clock-names = "pixel", "hdmi";
> -};
> -
>  &v3d {
>  	power-domains = <&power RPI_POWER_DOMAIN_V3D>;
>  };
> -
> -&vec {
> -	clocks = <&firmware_clocks 15>;
> -};
> -- 
> 2.47.0
> 
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- You have marked a patch with a "Fixes:" tag for a commit that is in an
  older released kernel, yet you do not have a cc: stable line in the
  signed-off-by area at all, which means that the patch will not be
  applied to any older kernel releases.  To properly fix this, please
  follow the documented rules in the
  Documentation/process/stable-kernel-rules.rst file for how to resolve
  this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot
Re: [PATCH v2] Revert v6.2-rc1 and later "ARM: dts: bcm2835-rpi: Use firmware clocks for display"
Posted by Stefan Wahren 1 year ago
Hi,

Am 18.01.25 um 17:27 schrieb H. Nikolaus Schaller:
> This reverts commit 27ab05e1b7e5c5ec9b4f658e1b2464c0908298a6.
>
> I tried to upgrade a RasPi 3B+ with Waveshare 7inch HDMI LCD
> from 6.1.y to 6.6.y but found that the display is broken with
> this log message:
>
> [   17.776315] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_drm_unregister [vc4])
> [   17.784034] platform 3f806000.vec: deferred probe pending
>
> Some tests revealed that while 6.1.y works, 6.2-rc1 is already broken but all
> newer kernels as well. And a bisect did lead me to this patch.
I successfully tested every Kernel release until Linux 6.13-rc with the
Raspberry Pi 3B+, so i prefer to step back and analyze this issue further.

What kernel config do you use ?
What is the value of CONFIG_CLK_RASPBERRYPI ?

Best regards
Re: [PATCH v2] Revert v6.2-rc1 and later "ARM: dts: bcm2835-rpi: Use firmware clocks for display"
Posted by H. Nikolaus Schaller 1 year ago
Hi Stefan,

> Am 19.01.2025 um 01:36 schrieb Stefan Wahren <wahrenst@gmx.net>:
> 
> Hi,
> 
> Am 18.01.25 um 17:27 schrieb H. Nikolaus Schaller:
>> This reverts commit 27ab05e1b7e5c5ec9b4f658e1b2464c0908298a6.
>> 
>> I tried to upgrade a RasPi 3B+ with Waveshare 7inch HDMI LCD
>> from 6.1.y to 6.6.y but found that the display is broken with
>> this log message:
>> 
>> [   17.776315] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_drm_unregister [vc4])
>> [   17.784034] platform 3f806000.vec: deferred probe pending
>> 
>> Some tests revealed that while 6.1.y works, 6.2-rc1 is already broken but all
>> newer kernels as well. And a bisect did lead me to this patch.
> I successfully tested every Kernel release until Linux 6.13-rc with the
> Raspberry Pi 3B+, so i prefer to step back and analyze this issue further.

Yes, I would be happy with any solution.

> What kernel config do you use ?

a private one which enables application specific drivers.

> What is the value of CONFIG_CLK_RASPBERRYPI ?

CONFIG_CLK_RASPBERRYPI is not set

I checked where this is defined and it is in bcm2835_defconfig and
multi_v7_defconfig by

4c6f5d4038af2c ("ARM: defconfig: enable cpufreq driver for RPi")

which hides this requirement quite well and got therefore unnoticed...

Setting CONFIG_CLK_RASPBERRYPI=y makes HDMI work without my proposed revert.
Tested with v6.2.16, v6.6.72, v6.12.10 and v6.13-rc7.

BR and thanks,
Nikolaus
Re: [PATCH v2] Revert v6.2-rc1 and later "ARM: dts: bcm2835-rpi: Use firmware clocks for display"
Posted by Florian Fainelli 1 year ago

On 1/19/2025 7:04 AM, 'H. Nikolaus Schaller' via 
BCM-KERNEL-FEEDBACK-LIST,PDL wrote:
> Hi Stefan,
> 
>> Am 19.01.2025 um 01:36 schrieb Stefan Wahren <wahrenst@gmx.net>:
>>
>> Hi,
>>
>> Am 18.01.25 um 17:27 schrieb H. Nikolaus Schaller:
>>> This reverts commit 27ab05e1b7e5c5ec9b4f658e1b2464c0908298a6.
>>>
>>> I tried to upgrade a RasPi 3B+ with Waveshare 7inch HDMI LCD
>>> from 6.1.y to 6.6.y but found that the display is broken with
>>> this log message:
>>>
>>> [   17.776315] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_drm_unregister [vc4])
>>> [   17.784034] platform 3f806000.vec: deferred probe pending
>>>
>>> Some tests revealed that while 6.1.y works, 6.2-rc1 is already broken but all
>>> newer kernels as well. And a bisect did lead me to this patch.
>> I successfully tested every Kernel release until Linux 6.13-rc with the
>> Raspberry Pi 3B+, so i prefer to step back and analyze this issue further.
> 
> Yes, I would be happy with any solution.
> 
>> What kernel config do you use ?
> 
> a private one which enables application specific drivers.
> 
>> What is the value of CONFIG_CLK_RASPBERRYPI ?
> 
> CONFIG_CLK_RASPBERRYPI is not set
> 
> I checked where this is defined and it is in bcm2835_defconfig and
> multi_v7_defconfig by
> 
> 4c6f5d4038af2c ("ARM: defconfig: enable cpufreq driver for RPi")
> 
> which hides this requirement quite well and got therefore unnoticed...
> 
> Setting CONFIG_CLK_RASPBERRYPI=y makes HDMI work without my proposed revert.
> Tested with v6.2.16, v6.6.72, v6.12.10 and v6.13-rc7.

I have been burned before by something similar and came up with this 
patch series that I should resubmit after addressing Conor's comment:

https://lore.kernel.org/all/20240513235234.1474619-1-florian.fainelli@broadcom.com/

Essentially, it removes the guess work, all you have to do is enable 
CONFIG_ARCH_BCM2835 and it just works, which is how it should be IMHO.
-- 
Florian
Re: [PATCH v2] Revert v6.2-rc1 and later "ARM: dts: bcm2835-rpi: Use firmware clocks for display"
Posted by H. Nikolaus Schaller 1 year ago
Hi,

> Am 20.01.2025 um 17:34 schrieb Florian Fainelli <florian.fainelli@broadcom.com>:
> 
> 
> 
> On 1/19/2025 7:04 AM, 'H. Nikolaus Schaller' via BCM-KERNEL-FEEDBACK-LIST,PDL wrote:
>> Hi Stefan,
>>> Am 19.01.2025 um 01:36 schrieb Stefan Wahren <wahrenst@gmx.net>:
>>> 
>>> Hi,
>>> 
>>> Am 18.01.25 um 17:27 schrieb H. Nikolaus Schaller:
>>>> This reverts commit 27ab05e1b7e5c5ec9b4f658e1b2464c0908298a6.
>>>> 
>>>> I tried to upgrade a RasPi 3B+ with Waveshare 7inch HDMI LCD
>>>> from 6.1.y to 6.6.y but found that the display is broken with
>>>> this log message:
>>>> 
>>>> [   17.776315] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_drm_unregister [vc4])
>>>> [   17.784034] platform 3f806000.vec: deferred probe pending
>>>> 
>>>> Some tests revealed that while 6.1.y works, 6.2-rc1 is already broken but all
>>>> newer kernels as well. And a bisect did lead me to this patch.
>>> I successfully tested every Kernel release until Linux 6.13-rc with the
>>> Raspberry Pi 3B+, so i prefer to step back and analyze this issue further.
>> Yes, I would be happy with any solution.
>>> What kernel config do you use ?
>> a private one which enables application specific drivers.
>>> What is the value of CONFIG_CLK_RASPBERRYPI ?
>> CONFIG_CLK_RASPBERRYPI is not set
>> I checked where this is defined and it is in bcm2835_defconfig and
>> multi_v7_defconfig by
>> 4c6f5d4038af2c ("ARM: defconfig: enable cpufreq driver for RPi")
>> which hides this requirement quite well and got therefore unnoticed...
>> Setting CONFIG_CLK_RASPBERRYPI=y makes HDMI work without my proposed revert.
>> Tested with v6.2.16, v6.6.72, v6.12.10 and v6.13-rc7.
> 
> I have been burned before by something similar and came up with this patch series that I should resubmit after addressing Conor's comment:
> 
> https://lore.kernel.org/all/20240513235234.1474619-1-florian.fainelli@broadcom.com/
> 
> Essentially, it removes the guess work, all you have to do is enable CONFIG_ARCH_BCM2835 and it just works, which is how it should be IMHO.

Sounds like a good idea!

Supported-by: H. Nikolaus Schaller <hns@goldelico.com>

BR,
Nikoalus