Skip to content

Commit a5f7bf5

Browse files
AngeloGioacchino Del Regnowens
authored andcommitted
clk: mediatek: clk-mt8195-mfg: Reparent mfg_bg3d and propagate rate changes
The MFG_BG3D is a gate to enable/disable clock output to the GPU, but the actual output is decided by multiple muxes; in particular: mfg_ck_fast_ref muxes between "slow" (top_mfg_core_tmp) and "fast" (MFGPLL) clock, while top_mfg_core_tmp muxes between the 26MHz clock and various system PLLs. The clock gate comes after all the muxes, so its parent is mfg_ck_fast_reg, not top_mfg_core_tmp. Reparent MFG_BG3D to the latter to match the hardware and add the CLK_SET_RATE_PARENT flag to it: this way we ensure propagating rate changes that are requested on MFG_BG3D along its entire clock tree. Fixes: 35016f1 ("clk: mediatek: Add MT8195 mfgcfg clock support") Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org> Link: https://lore.kernel.org/r/20220927101128.44758-6-angelogioacchino.delregno@collabora.com Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
1 parent ae333e6 commit a5f7bf5

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/clk/mediatek/clk-mt8195-mfg.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ static const struct mtk_gate_regs mfg_cg_regs = {
1717
};
1818

1919
#define GATE_MFG(_id, _name, _parent, _shift) \
20-
GATE_MTK(_id, _name, _parent, &mfg_cg_regs, _shift, &mtk_clk_gate_ops_setclr)
20+
GATE_MTK_FLAGS(_id, _name, _parent, &mfg_cg_regs, \
21+
_shift, &mtk_clk_gate_ops_setclr, \
22+
CLK_SET_RATE_PARENT)
2123

2224
static const struct mtk_gate mfg_clks[] = {
23-
GATE_MFG(CLK_MFG_BG3D, "mfg_bg3d", "top_mfg_core_tmp", 0),
25+
GATE_MFG(CLK_MFG_BG3D, "mfg_bg3d", "mfg_ck_fast_ref", 0),
2426
};
2527

2628
static const struct mtk_clk_desc mfg_desc = {

0 commit comments

Comments
 (0)