[PATCH v5 00/80] drm/vc4: Support BCM2711 Display Pipeline

Jian-Hong Pan jian-hong at endlessm.com
Fri Sep 4 10:16:16 UTC 2020


Hi Maxime,

Thanks for version 5 patch series!

I applied it based on linux-next tag next-20200828 and build it with
the config [1] to test on RPi 4
However, It fails to get HDMI state machine clock and pixel bcb clock.
Then, vc4-drm probes failed. Full dmseg [2]:

[    2.552675] [drm:vc5_hdmi_init_resources] *ERROR* Failed to get
HDMI state machine clock
[    2.557974] raspberrypi-firmware soc:firmware: Attached to firmware
from 2020-06-01T13:23:40
[    2.567612] of_clk_hw_onecell_get: invalid index 14
[    2.567636] [drm:vc5_hdmi_init_resources] *ERROR* Failed to get
pixel bvb clock
[    2.567664] vc4-drm gpu: failed to bind fef00700.hdmi (ops vc4_hdmi_ops): -2
[    2.567731] vc4-drm gpu: master bind failed: -2
[    2.567755] vc4-drm: probe of gpu failed with error -2

I decompile bcm2711-rpi-4-b.dtb.  Both hdmi at 7ef00700 and hdmi at 7ef05700
show the clocks member.

hdmi at 7ef00700 {
        compatible = "brcm,bcm2711-hdmi0";
        reg = <0x7ef00700 0x300 0x7ef00300 0x200 0x7ef00f00 0x80
0x7ef00f80 0x80 0x7ef01b00 0x200 0x7ef01f00 0x400 0x7ef00200 0x80
0x7ef04300 0x100 0x7ef20000 0x100>;
        reg-names = "hdmi\0dvp\0phy\0rm\0packet\0metadata\0csc\0cec\0hd";
        clock-names = "hdmi\0bvb\0audio\0cec";
        resets = <0x17 0x00>;
        ddc = <0x18>;
        dmas = <0x19 0x0a>;
        dma-names = "audio-rx";
        status = "okay";
        clocks = <0x10 0x0d 0x10 0x0e 0x17 0x00 0x1a>;
};

hdmi at 7ef05700 {
        compatible = "brcm,bcm2711-hdmi1";
        reg = <0x7ef05700 0x300 0x7ef05300 0x200 0x7ef05f00 0x80
0x7ef05f80 0x80 0x7ef06b00 0x200 0x7ef06f00 0x400 0x7ef00280 0x80
0x7ef09300 0x100 0x7ef20000 0x100>;
        reg-names = "hdmi\0dvp\0phy\0rm\0packet\0metadata\0csc\0cec\0hd";
        ddc = <0x1b>;
        clock-names = "hdmi\0bvb\0audio\0cec";
        resets = <0x17 0x01>;
        dmas = <0x19 0x11>;
        dma-names = "audio-rx";
        status = "okay";
        clocks = <0x10 0x0d 0x10 0x0e 0x17 0x01 0x1a>;
};

Also re-check runtime device tree, they are the same values as mentioned above:

$ xxd /proc/device-tree/soc/hdmi at 7ef00700/clocks
00000000: 0000 0010 0000 000d 0000 0010 0000 000e  ................
00000010: 0000 0017 0000 0000 0000 001a            ............
$ xxd /proc/device-tree/soc/hdmi at 7ef05700/clocks
00000000: 0000 0010 0000 000d 0000 0010 0000 000e  ................
00000010: 0000 0017 0000 0001 0000 001a            ............

Do I miss something?

[1]: https://gist.github.com/starnight/649ea5a8384313f0354aca504f78ad70#file-config
[2]: https://gist.github.com/starnight/649ea5a8384313f0354aca504f78ad70#file-dmesg-log

Jian-Hong Pan


More information about the dri-devel mailing list