diff --git a/drivers/clk/rockchip/clk-ddr.c b/drivers/clk/rockchip/clk-ddr.c index 4a008f013019..426ad29f6e7d 100644 --- a/drivers/clk/rockchip/clk-ddr.c +++ b/drivers/clk/rockchip/clk-ddr.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -214,6 +215,7 @@ struct share_params { * 0: never wait flag1 */ u32 wait_flag0; + u32 complt_hwirq; /* if need, add parameter after */ }; @@ -254,6 +256,9 @@ static int rockchip_ddrclk_sip_set_rate_v2(struct clk_hw *hw, res = sip_smc_dram(SHARE_PAGE_TYPE_DDR, 0, ROCKCHIP_SIP_CONFIG_DRAM_SET_RATE); + if ((int)res.a1 == SIP_RET_SET_RATE_TIMEOUT) + rockchip_dmcfreq_wait_complete(); + return res.a0; }