summaryrefslogtreecommitdiff
path: root/drivers/clk/rockchip/clk-ddr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/clk/rockchip/clk-ddr.c')
-rw-r--r--drivers/clk/rockchip/clk-ddr.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/clk/rockchip/clk-ddr.c b/drivers/clk/rockchip/clk-ddr.c
index 3e3b65732e7a..90d40388bb9b 100644
--- a/drivers/clk/rockchip/clk-ddr.c
+++ b/drivers/clk/rockchip/clk-ddr.c
@@ -23,6 +23,7 @@
#include <linux/of.h>
#include <linux/rockchip/rockchip_sip.h>
#include <linux/slab.h>
+#include <soc/rockchip/rockchip_dmc.h>
#include <soc/rockchip/rockchip_sip.h>
#include <soc/rockchip/scpi.h>
#include <uapi/drm/drm_mode.h>
@@ -219,6 +220,7 @@ struct share_params {
* 0: never wait flag1
*/
u32 wait_flag0;
+ u32 complt_hwirq;
/* if need, add parameter after */
};
@@ -261,6 +263,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;
}