[PATCH 01/11] dt-bindings: display: meson-dw-hdmi: Add compatible for S4 HDMI controller

Ao Xu ao.xu at amlogic.com
Thu Dec 4 23:09:47 PST 2025


Hi Piotr,

     I applied this 
patch: https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.18/files/0312-drm-meson-add-vpu-clk-setting-for-S4.patch, and 
ran it on the board.

     I encountered the same issue—the system froze.

     I found that the patch has a few minor problems. After fixing them, 
the system runs normally. Could you try the following patch?


在 2025/12/3 13:56, Ao Xu 写道:
> Hi Piotr,
>
>     I will need about two more days to look into it. I will follow up 
> with you ASAP.
>
>
> 在 2025/12/2 16:29, Piotr Oniszczuk 写道:
>> [You don't often get email from piotr.oniszczuk at gmail.com. Learn why 
>> this is important at https://aka.ms/LearnAboutSenderIdentification ]
>>
>> [ EXTERNAL EMAIL ]
>>
>> Ao,
>> Any chance for updated s4 hdmi series for 6.18?
>>
>>
>>> Wiadomość napisana przez Ao Xu <ao.xu at amlogic.com> w dniu 21 lis 
>>> 2025, o godz. 03:55:
>>>
>>> Hi Piotr,
>>>
>>>      I will check this issue
>>>
>>> 在 2025/11/19 18:27, Piotr Oniszczuk 写道:
>>>> [You don't often get email from piotr.oniszczuk at gmail.com. Learn 
>>>> why this is important at 
>>>> https://aka.ms/LearnAboutSenderIdentification ]
>>>>
>>>> [ EXTERNAL EMAIL ]
>>>>
>>>> Pls see inline
>>>>
>>>>> Wiadomość napisana przez Chuan Liu <chuan.liu at amlogic.com> w dniu 
>>>>> 19 lis 2025, o godz. 03:57:
>>>>>
>>>>> Hi Piotr,
>>>>>
>>>>>
>>>>> On 11/18/2025 10:50 PM, Piotr Oniszczuk wrote:
>>>>>> [You don't often get email from piotr.oniszczuk at gmail.com. Learn 
>>>>>> why this is important at 
>>>>>> https://aka.ms/LearnAboutSenderIdentification ]
>>>>>> [ EXTERNAL EMAIL ]
>>>>>> Ao,
>>>>>> Is there any chance to get this s4 drm hdmi series for current 6.18?
>>>>>> (i tried backport this series to 6.18 but have some issues with 
>>>>>> reparent vpu_0_sel to sysclk_b_sel)
>>>>> Why do we need to reparent vpu_0_sel to sysclk_b_sel? is there any
>>>>> background here?
>>>> Well - it looks it is because bug....
>>>> Martin Blumenstingl had perfect eye and catch typo in patch 
>>>> https://lore.kernel.org/all/20250110-drm-s4-v1-11-cbc2d5edaae8@amlogic.com/: 
>>>>
>>>>
>>>> By replacing:
>>>> assigned-clock-parents = <&clkc_periphs CLKID_FCLK_DIV3>,
>>>> <0>, /* Do Nothing */
>>>> <&clkc_periphs CLKID_VPU_0>,
>>>> <&clkc_periphs CLKID_FCLK_DIV4>,
>>>> <0>, /* Do Nothing */
>>>> <&clkc_periphs CLKID_VAPB_0>;
>>>>
>>>> with:
>>>> assigned-clock-parents = <&clkc_pll CLKID_FCLK_DIV3>,
>>>> <0>, /* Do Nothing */
>>>> <&clkc_periphs CLKID_VPU_0>,
>>>> <&clkc_pll CLKID_FCLK_DIV4>,
>>>> <0>, /* Do Nothing */
>>>> <&clkc_periphs CLKID_VAPB_0>;
>>>>
>>>> dmesg is like this https://termbin.com/6020
>>>>
>>>> So i'm getting hdmi working - but only when device boots _without_ 
>>>> connected hdmi at boot (and connected later)
>>>> If hdmi is connected at boot - boot hangs at:
>>>>
>>>>      0.341676] meson-dw-hdmi fe300000.hdmi-tx: Detected HDMI TX 
>>>> controller v2.01a with HDCP (meson_dw_hdmi_phy)
>>>> [    0.342750] meson-dw-hdmi fe300000.hdmi-tx: registered 
>>>> DesignWare HDMI I2C bus driver
>>>> [    0.343660] meson-drm ff000000.vpu: bound fe300000.hdmi-tx (ops 
>>>> meson_dw_hdmi_ops)
>>>> [    0.344832] [drm] Initialized meson 1.0.0 for ff000000.vpu on 
>>>> minor 0
>>>>
>>>> FYI: It is after applying 
>>>> https://patchwork.kernel.org/project/linux-amlogic/cover/20250110-drm-s4-v1-0-cbc2d5edaae8@amlogic.com/ 
>>>> on mainline 6.18 (with some my adjustments on this series required 
>>>> by changes in 6.18).
>>>> For VPU clk changes see 
>>>> https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.18/files/0312-drm-meson-add-vpu-clk-setting-for-S4.patch
>>>> It is 6.18 adaptation of 
>>>> https://patchwork.kernel.org/project/linux-amlogic/patch/20250110-drm-s4-v1-9-cbc2d5edaae8@amlogic.com/
>>>>
>>>> As kernel hangs - i have limited caps to drill where root cause is.
>>>>
>>>> Maybe above hang is reason of my backports or missing any pre-req 
>>>> required to get s4 drm working?
>>>> Anyway - it will be good to test with updated to 6.18 series of Add 
>>>> DRM support for Amlogic S4 (plus info about any pre-req required to 
>>>> get s4 drm working)
>>>>
>>>>
>>>>> The vpu_clk on S4 doesn't support sysclk_b_sel as one of its
>>>>> selectable clock sources, so this reparent operation will definitely
>>>>> fail. This has nothing to do with the kernel version.
>>>>>
>>>>>>> Wiadomość napisana przez Ao Xu via B4 Relay 
>>>>>>> <devnull+ao.xu.amlogic.com at kernel.org> w dniu 10 sty 2025, o 
>>>>>>> godz. 06:39:
>>>>>>>
>>>>>>> From: Ao Xu <ao.xu at amlogic.com>
>>>>>>>
>>>>>>> Add devicetree document for S4 HDMI controller
>>>>>>>
>>>>>>> Signed-off-by: Ao Xu <ao.xu at amlogic.com>
>>>>>>> ---
>>>>>>> Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml 
>>>>>>> | 1 +
>>>>>>> 1 file changed, 1 insertion(+)
>>>>>>>
>>>>>>> diff --git 
>>>>>>> a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml 
>>>>>>> b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml 
>>>>>>>
>>>>>>> index 
>>>>>>> 84d68b8cfccc86fd87a6a0fd2b70af12e51eb8a4..6e0a8369eee915fab55af24d450a6c40e08def38 
>>>>>>> 100644
>>>>>>> --- 
>>>>>>> a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml 
>>>>>>>
>>>>>>> +++ 
>>>>>>> b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml 
>>>>>>>
>>>>>>> @@ -55,6 +55,7 @@ properties:
>>>>>>>            - const: amlogic,meson-gx-dw-hdmi
>>>>>>>        - enum:
>>>>>>>            - amlogic,meson-g12a-dw-hdmi # G12A (S905X2, S905Y2, 
>>>>>>> S905D2)
>>>>>>> +          - amlogic,meson-s4-dw-hdmi # S4 (S905Y4)
>>>>>>>
>>>>>>>    reg:
>>>>>>>      maxItems: 1
>>>>>>>
>>>>>>> -- 
>>>>>>> 2.43.0
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> linux-amlogic mailing list
>>>>>>> linux-amlogic at lists.infradead.org
>>>>>>> http://lists.infradead.org/mailman/listinfo/linux-amlogic
>>>>>> _______________________________________________
>>>>>> linux-amlogic mailing list
>>>>>> linux-amlogic at lists.infradead.org
>>>>>> http://lists.infradead.org/mailman/listinfo/linux-amlogic
-------------- next part --------------
Index: linux-next/meson_vclk.c
===================================================================
--- linux-next.orig/meson_vclk.c	2025-12-05 14:58:29.031454174 +0800
+++ linux-next/meson_vclk.c	2025-12-05 15:00:34.935204219 +0800
@@ -597,11 +597,11 @@
 		.vclk_div = 1,
 	},
 	[MESON_VCLK_HDMI_27000] = {
-		.pll_freq = 4320000,
-		.phy_freq = 270000,
-		.vclk_freq = 54000,
-		.venc_freq = 27000,
-		.pixel_freq = 27000,
+		.pll_freq = 4320000000,
+		.phy_freq = 270000000,
+		.vclk_freq = 54000000,
+		.venc_freq = 27000000,
+		.pixel_freq = 27000000,
 		.pll_od1 = 4,
 		.pll_od2 = 4,
 		.pll_od3 = 1,
@@ -1148,15 +1148,15 @@
 		meson_hdmi_pll_set_params(priv, m, frac, od1, od2, od3);
 	} else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_S4)) {
 		switch (pll_base_freq) {
-		case 2970000:
+		case 2970000000:
 			m = 0x7b;
 			frac = vic_alternate_clock ? 0x140b4 : 0x18000;
 			break;
-		case 4320000:
+		case 4320000000:
 			m = vic_alternate_clock ? 0xb3 : 0xb4;
 			frac = vic_alternate_clock ? 0x1a3ee : 0;
 			break;
-		case 5940000:
+		case 5940000000:
 			m = 0xf7;
 			frac = vic_alternate_clock ? 0x8148 : 0x10000;
 			break;


More information about the linux-arm-kernel mailing list