Hi All,

Been working on getting T113-s3 on mainline as I prepare to update a 
project from a v3s. One of the benefits has been the ability to move from a 
18bit RGB LCD to a MIPI-DSI display, with the interface available on the 
T113-s3 , which has given some better display choices.

The DSI driver was on mainline from 6.2, however building from sources on 
init I am getting the following error:

*"sun6i-mipi-dsi 5450000.dsi: Couldn't get the DSI mod clock"*

Its tripping at the following init in sun6i_mipi_dsi.c 
<https://elixir.bootlin.com/linux/v6.6.2/source/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c#L1155>


if (variant <https://elixir.bootlin.com/linux/v6.6.2/C/ident/variant>->
has_mod_clk <https://elixir.bootlin.com/linux/v6.6.2/C/ident/has_mod_clk>) { 
dsi <https://elixir.bootlin.com/linux/v6.6.2/C/ident/dsi>->mod_clk 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/mod_clk> = devm_clk_get 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/devm_clk_get>(dev, "mod"); 
if (IS_ERR <https://elixir.bootlin.com/linux/v6.6.2/C/ident/IS_ERR>(dsi 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/dsi>->mod_clk 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/mod_clk>)) { dev_err 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/dev_err>(dev, "Couldn't 
get the DSI mod clock\n"); ret = PTR_ERR 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/PTR_ERR>(dsi 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/dsi>->mod_clk 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/mod_clk>); goto 
err_attach_clk; }

The display modclock is registered from the following DTS node in 
sunxi-d1s-t113.dtsi 
<https://elixir.bootlin.com/linux/v6.6.2/source/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi#L641>


display_clocks 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/display_clocks>: 
clock-controller@5000000 { compatible = "allwinner,sun20i-d1-de2-clk 
<https://elixir.bootlin.com/linux/v6.6.2/B/ident/allwinner%2Csun20i-d1-de2-clk>
", "allwinner,sun50i-h5-de2-clk"; reg = <0x5000000 0x10000>; clocks 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/clocks> = <&ccu 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/ccu> CLK_BUS_DE 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/CLK_BUS_DE>>, *<&ccu 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/ccu> CLK_DE 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/CLK_DE>>*; clock-names = 
"bus", *"mod"*; resets = <&ccu 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/ccu> RST_BUS_DE 
<https://elixir.bootlin.com/linux/v6.6.2/D/ident/RST_BUS_DE>>; #clock-cells 
= <1>; #reset-cells = <1>;
};

I checked the buildroot config and the CCU for sun8i DE2 is being built and 
included, the registration should occur and give an exception if it's not 
happening: ccu-sun8i-de2.c 
<https://elixir.bootlin.com/linux/v6.6.2/source/drivers/clk/sunxi-ng/ccu-sun8i-de2.c#L263>

mod_clk <https://elixir.bootlin.com/linux/v6.6.2/C/ident/mod_clk> = 
devm_clk_get <https://elixir.bootlin.com/linux/v6.6.2/C/ident/devm_clk_get>(
&pdev->dev, "mod"); if (IS_ERR 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/IS_ERR>(mod_clk 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/mod_clk>)) return 
dev_err_probe 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/dev_err_probe>(&pdev->dev, 
PTR_ERR <https://elixir.bootlin.com/linux/v6.6.2/C/ident/PTR_ERR>(mod_clk 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/mod_clk>), "Couldn't get 
mod clk\n");

ret = clk_prepare_enable 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/clk_prepare_enable>(mod_clk 
<https://elixir.bootlin.com/linux/v6.6.2/C/ident/mod_clk>); if (ret) { 
dev_err <https://elixir.bootlin.com/linux/v6.6.2/C/ident/dev_err>(&pdev->dev
, "Couldn't enable mod clk: %d\n", ret); goto err_disable_bus_clk; }

I don't see dmesg print any clock errors, but at the same time, I 
understand that linux common clock framework also won't print anything by 
default.

I can't see anything in either driver that would cause an error other than 
the clock not existing, if anyone has any ideas - i'm all ears. 

At the moment I am leaning towards the clock-controller; Is there a 
userspace or debug option to check (mod) clock status' under the common 
clock framework?

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/linux-sunxi/e3e38724-5856-4bf2-ae8f-8ffd2c6dad87n%40googlegroups.com.

Reply via email to