Imx6dl.dtsi gpu clock definition bug


It appears that a bug is present in the device tree for colibri imx6 in the latest 2.7b3

The bug is present here: imx6dl.dtsi « dts « boot « arm « arch - linux-toradex.git - Linux kernel for Apalis, Colibri and Verdin modules
The bug is well explained here: [meta-freescale] imx6dl.dtsi gpu clock definition bug
For reference, here is the way that this clocks are defined in linux kernel mainline: imx6qdl.dtsi - arch/arm/boot/dts/imx6qdl.dtsi - Linux source code (v6.0.9) - Bootlin




What makes you come to that conclusion?

The i.MX6 Q/D has a 3D GPU, a 2D GPU and a Vector Graphic Unit.
The i.MX 6DL/S has 3D GPU with less performance, the same 2D GPU and no Vector Graphic Unit.

The Vector Graphic Unit is used to provide OpenVG, on the i.MX 6DL/S the OpenVG driver emulates the Vector Graphic Unit by using the 3D GPU.

The fact that the i.MX 6DL/S driver has no clock by the name “openvg_axi_clk” makes the driver not configuring that not existing hardware and it outputs the informational message “galcore: clk_get vg clock failed, disable vg!”.

Since the clock tree is different between dual light and quad in some places but the clock code is common for both i.MX 6 flavours that leads to some strange sounding clock names.

Note that that code is part of the NXP downstream kernel, so comparing it with the different GPU implementation in mainline does not really help. There is also nothing new with this clock definitions in the 4.1 kernel used for 2.7b3, it has been like this starting with the 3.10.17 kernel and it is still present in the 4.9 kernel which NXP has just released (and we did not yet port to our modules).