diff options
Diffstat (limited to 'drivers/gpu/drm/imx/imx-ldb.c')
-rw-r--r-- | drivers/gpu/drm/imx/imx-ldb.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c index f5a74a6bbe2b..ba36c16472a2 100644 --- a/drivers/gpu/drm/imx/imx-ldb.c +++ b/drivers/gpu/drm/imx/imx-ldb.c @@ -153,6 +153,11 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder) struct ldb *ldb = &imx_ldb->base; int mux = drm_of_encoder_active_port_id(ldb_ch->child, encoder); + if (mux < 0 || mux >= ARRAY_SIZE(imx_ldb->clk_sel)) { + dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux); + return; + } + if (ldb->dual) { clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk[0]); clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk[1]); @@ -206,6 +211,11 @@ imx_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder, unsigned long di_clk = mode->clock * 1000; int mux = drm_of_encoder_active_port_id(ldb_ch->child, encoder); + if (mux < 0 || mux >= ARRAY_SIZE(imx_ldb->clk_sel)) { + dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux); + return; + } + if (mode->clock > 170000) { dev_warn(ldb->dev, "%s: mode exceeds 170 MHz pixel clock\n", __func__); |