MLK-12184 drm/imx: imx-ldb: add mux id check
authorFugang Duan <b38611@freescale.com>
Mon, 11 Jan 2016 08:54:30 +0000 (16:54 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:49:43 +0000 (14:49 -0500)
Add mux id check and transfer a valid mux to .imx_ldb_set_clock().

Signed-off-by: Fugang Duan <B38611@freescale.com>
drivers/gpu/drm/imx/imx-ldb.c

index 3ce391c..a1ca3f7 100644 (file)
@@ -247,8 +247,9 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
                else if (imx_ldb_ch == &ldb->channel[1])
                        lvds_mux = &ldb->lvds_mux[1];
 
-               regmap_update_bits(ldb->regmap, lvds_mux->reg, lvds_mux->mask,
-                                  mux << lvds_mux->shift);
+               if (lvds_mux)
+                       regmap_update_bits(ldb->regmap, lvds_mux->reg, lvds_mux->mask,
+                                          mux << lvds_mux->shift);
        }
 
        regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
@@ -270,6 +271,12 @@ imx_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder,
        int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder);
        u32 bus_format = imx_ldb_ch->bus_format;
 
+       if (mux < 0) {
+               dev_warn(ldb->dev,
+                        "%s: cannot get valid mux id\n", __func__);
+               return;
+       }
+
        if (mode->clock > 170000) {
                dev_warn(ldb->dev,
                         "%s: mode exceeds 170 MHz pixel clock\n", __func__);