Skip to content

Commit 76191dc

Browse files
superna9999robclark
authored andcommitted
drm/msm/dpu: create a dpu_hw_clk_force_ctrl() helper
Add an helper to setup the force clock control as it will be used in multiple HW files. Reviewed-by: Dmitry Baryshkov <[email protected]> Signed-off-by: Neil Armstrong <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/562323/ Signed-off-by: Rob Clark <[email protected]>
1 parent b998684 commit 76191dc

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -66,34 +66,13 @@ static void dpu_hw_setup_split_pipe(struct dpu_hw_mdp *mdp,
6666
static bool dpu_hw_setup_clk_force_ctrl(struct dpu_hw_mdp *mdp,
6767
enum dpu_clk_ctrl_type clk_ctrl, bool enable)
6868
{
69-
struct dpu_hw_blk_reg_map *c;
70-
u32 reg_off, bit_off;
71-
u32 reg_val, new_val;
72-
bool clk_forced_on;
73-
7469
if (!mdp)
7570
return false;
7671

77-
c = &mdp->hw;
78-
7972
if (clk_ctrl <= DPU_CLK_CTRL_NONE || clk_ctrl >= DPU_CLK_CTRL_MAX)
8073
return false;
8174

82-
reg_off = mdp->caps->clk_ctrls[clk_ctrl].reg_off;
83-
bit_off = mdp->caps->clk_ctrls[clk_ctrl].bit_off;
84-
85-
reg_val = DPU_REG_READ(c, reg_off);
86-
87-
if (enable)
88-
new_val = reg_val | BIT(bit_off);
89-
else
90-
new_val = reg_val & ~BIT(bit_off);
91-
92-
DPU_REG_WRITE(c, reg_off, new_val);
93-
94-
clk_forced_on = !(reg_val & BIT(bit_off));
95-
96-
return clk_forced_on;
75+
return dpu_hw_clk_force_ctrl(&mdp->hw, &mdp->caps->clk_ctrls[clk_ctrl], enable);
9776
}
9877

9978

drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,3 +546,24 @@ void dpu_setup_cdp(struct dpu_hw_blk_reg_map *c, u32 offset,
546546

547547
DPU_REG_WRITE(c, offset, cdp_cntl);
548548
}
549+
550+
bool dpu_hw_clk_force_ctrl(struct dpu_hw_blk_reg_map *c,
551+
const struct dpu_clk_ctrl_reg *clk_ctrl_reg,
552+
bool enable)
553+
{
554+
u32 reg_val, new_val;
555+
bool clk_forced_on;
556+
557+
reg_val = DPU_REG_READ(c, clk_ctrl_reg->reg_off);
558+
559+
if (enable)
560+
new_val = reg_val | BIT(clk_ctrl_reg->bit_off);
561+
else
562+
new_val = reg_val & ~BIT(clk_ctrl_reg->bit_off);
563+
564+
DPU_REG_WRITE(c, clk_ctrl_reg->reg_off, new_val);
565+
566+
clk_forced_on = !(reg_val & BIT(clk_ctrl_reg->bit_off));
567+
568+
return clk_forced_on;
569+
}

drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,4 +367,8 @@ int dpu_hw_collect_misr(struct dpu_hw_blk_reg_map *c,
367367
u32 misr_signature_offset,
368368
u32 *misr_value);
369369

370+
bool dpu_hw_clk_force_ctrl(struct dpu_hw_blk_reg_map *c,
371+
const struct dpu_clk_ctrl_reg *clk_ctrl_reg,
372+
bool enable);
373+
370374
#endif /* _DPU_HW_UTIL_H */

0 commit comments

Comments
 (0)