mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
53 lines
2.2 KiB
Diff
53 lines
2.2 KiB
Diff
From 6e69052f01d9131388cfcfaee929120118a267f4 Mon Sep 17 00:00:00 2001
|
||
From: Sascha Hauer <s.hauer@pengutronix.de>
|
||
Date: Wed, 26 Jan 2022 15:55:47 +0100
|
||
Subject: [PATCH] clk: rockchip: Add CLK_SET_RATE_PARENT to the HDMI reference
|
||
clock on rk3568
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
On the rk3568 we have this (simplified) situation:
|
||
|
||
.--------. .-----. .---------.
|
||
-| hpll |--.--| /n |----|dclk_vop0|-
|
||
`--------´ | `-----´ `---------´
|
||
| .-----. .---------.
|
||
`--| /m |----|dclk_vop1|-
|
||
| `-----´ `---------´
|
||
| .---------.
|
||
`-------------|hdmi_ref |-
|
||
`---------´
|
||
|
||
For the HDMI to work the HDMI reference clock needs to be the same as the
|
||
pixel clock which means the dividers have be set to one. The last patch removed
|
||
the CLK_SET_RATE_PARENT flag from the pixel clocks which means the hpll is not
|
||
changed on pixel clock changes. In order to allow the HDMI controller to
|
||
set a suitable PLL rate we now add the CLK_SET_RATE_PARENT flag to the
|
||
HDMI reference clock. With this the flow becomes:
|
||
|
||
1) HDMI controller driver sets the rate to its pixel clock which means
|
||
hpll is set to the pixel clock
|
||
2) VOP2 driver sets dclk_vop[012] to the pixel clock. As this can't change
|
||
the hpll clock anymore this means only the divider is adjusted to the
|
||
desired value of dividing by one.
|
||
|
||
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
||
Link: https://lore.kernel.org/r/20220126145549.617165-26-s.hauer@pengutronix.de
|
||
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||
---
|
||
drivers/clk/rockchip/clk-rk3568.c | 2 +-
|
||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
||
--- a/drivers/clk/rockchip/clk-rk3568.c
|
||
+++ b/drivers/clk/rockchip/clk-rk3568.c
|
||
@@ -1568,7 +1568,7 @@ static struct rockchip_clk_branch rk3568
|
||
RK3568_PMU_CLKGATE_CON(2), 14, GFLAGS),
|
||
GATE(XIN_OSC0_EDPPHY_G, "xin_osc0_edpphy_g", "xin24m", 0,
|
||
RK3568_PMU_CLKGATE_CON(2), 15, GFLAGS),
|
||
- MUX(CLK_HDMI_REF, "clk_hdmi_ref", clk_hdmi_ref_p, 0,
|
||
+ MUX(CLK_HDMI_REF, "clk_hdmi_ref", clk_hdmi_ref_p, CLK_SET_RATE_PARENT,
|
||
RK3568_PMU_CLKSEL_CON(8), 7, 1, MFLAGS),
|
||
};
|
||
|