Skip to content

Commit f46d34d

Browse files
imrashaiKomal-Bajaj
authored andcommitted
clk: qcom: gpucc-qcm2290: Update GDSC *wait_val values and flags
Update the QCM2290 GPUCC GDSC wait_val fields to match the hardware default values. Incorrect settings can cause the GDSC FSM to stuck, leading to power on/off failures. And update the GPUCC GDSC flags to retain the registers, and poll for the CFG GDSCR as applicable. Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
1 parent 3672464 commit f46d34d

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

drivers/clk/qcom/gpucc-qcm2290.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,24 +270,30 @@ static struct clk_branch gpu_cc_hlos1_vote_gpu_smmu_clk = {
270270
static struct gdsc gpu_cx_gdsc = {
271271
.gdscr = 0x106c,
272272
.gds_hw_ctrl = 0x1540,
273+
.en_rest_wait_val = 0x2,
274+
.en_few_wait_val = 0x2,
275+
.clk_dis_wait_val = 0x2,
273276
.pd = {
274277
.name = "gpu_cx_gdsc",
275278
},
276279
.pwrsts = PWRSTS_OFF_ON,
277-
.flags = VOTABLE,
280+
.flags = RETAIN_FF_ENABLE | VOTABLE,
278281
};
279282

280283
static struct gdsc gpu_gx_gdsc = {
281284
.gdscr = 0x100c,
282285
.clamp_io_ctrl = 0x1508,
283286
.resets = (unsigned int []){ GPU_GX_BCR },
284287
.reset_count = 1,
288+
.en_rest_wait_val = 0x2,
289+
.en_few_wait_val = 0x2,
290+
.clk_dis_wait_val = 0x2,
285291
.pd = {
286292
.name = "gpu_gx_gdsc",
287293
},
288294
.parent = &gpu_cx_gdsc.pd,
289295
.pwrsts = PWRSTS_OFF_ON,
290-
.flags = CLAMP_IO | AON_RESET | SW_RESET,
296+
.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | SW_RESET | CLAMP_IO | AON_RESET,
291297
};
292298

293299
static struct clk_regmap *gpu_cc_qcm2290_clocks[] = {

0 commit comments

Comments
 (0)