diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c index 3f7b4741a1e20d42edc0344592912e8322870088..389d87f6f130ae5da4707d64399398d34249abc9 100644 --- a/drivers/gpu/drm/imx/imx-ldb.c +++ b/drivers/gpu/drm/imx/imx-ldb.c @@ -251,6 +251,15 @@ static void imx_ldb_set_clock(struct imx_ldb *ldb, int mux, int chno, int ret; if (ldb->is_imx8) { + /* + * To workaround setting clock rate failure issue + * when the system resumes back from PM sleep mode, + * we need to get the clock rates before setting + * their rates, otherwise, setting the clock rates + * will fail. + */ + clk_get_rate(ldb->clk_bypass); + clk_get_rate(ldb->clk_pixel); clk_set_rate(ldb->clk_bypass, di_clk); clk_set_rate(ldb->clk_pixel, di_clk); return;