clk: rockchip: drop CLK_SET_RATE_PARENT from dclk_vop* on rk3568
authorSascha Hauer <s.hauer@pengutronix.de>
Wed, 26 Jan 2022 14:55:46 +0000 (15:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Apr 2022 18:59:11 +0000 (20:59 +0200)
[ Upstream commit ff3187eabb5ce478d15b6ed62eb286756adefac3 ]

The pixel clocks dclk_vop[012] can be clocked from hpll, vpll, gpll or
cpll. gpll and cpll also drive many other clocks, so changing the
dclk_vop[012] clocks could change these other clocks as well. Drop
CLK_SET_RATE_PARENT to fix that. With this change the VOP2 driver can
only adjust the pixel clocks with the divider between the PLL and the
dclk_vop[012] which means the user may have to adjust the PLL clock to a
suitable rate using the assigned-clock-rate device tree property.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://lore.kernel.org/r/20220126145549.617165-25-s.hauer@pengutronix.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clk/rockchip/clk-rk3568.c

index 75ca855..6e54408 100644 (file)
@@ -1038,13 +1038,13 @@ static struct rockchip_clk_branch rk3568_clk_branches[] __initdata = {
                        RK3568_CLKGATE_CON(20), 8, GFLAGS),
        GATE(HCLK_VOP, "hclk_vop", "hclk_vo", 0,
                        RK3568_CLKGATE_CON(20), 9, GFLAGS),
-       COMPOSITE(DCLK_VOP0, "dclk_vop0", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
+       COMPOSITE(DCLK_VOP0, "dclk_vop0", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_NO_REPARENT,
                        RK3568_CLKSEL_CON(39), 10, 2, MFLAGS, 0, 8, DFLAGS,
                        RK3568_CLKGATE_CON(20), 10, GFLAGS),
-       COMPOSITE(DCLK_VOP1, "dclk_vop1", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
+       COMPOSITE(DCLK_VOP1, "dclk_vop1", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_NO_REPARENT,
                        RK3568_CLKSEL_CON(40), 10, 2, MFLAGS, 0, 8, DFLAGS,
                        RK3568_CLKGATE_CON(20), 11, GFLAGS),
-       COMPOSITE(DCLK_VOP2, "dclk_vop2", hpll_vpll_gpll_cpll_p, 0,
+       COMPOSITE(DCLK_VOP2, "dclk_vop2", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_NO_REPARENT,
                        RK3568_CLKSEL_CON(41), 10, 2, MFLAGS, 0, 8, DFLAGS,
                        RK3568_CLKGATE_CON(20), 12, GFLAGS),
        GATE(CLK_VOP_PWM, "clk_vop_pwm", "xin24m", 0,