X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=drivers%2Fgpu%2Fdrm%2Frockchip%2Fdw-mipi-dsi.c;h=0e948d6110419990b78146c40f112ce90954514d;hb=2ae05321496aa27767bc33a5cc19451b3db67919;hp=0951a88c932515d89960367142d503169d9aa27e;hpb=89b7ad3a8edbb8b863965c73532839401d7b250d;p=firefly-linux-kernel-4.4.55.git diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index 0951a88c9325..0e948d611041 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c @@ -1095,10 +1095,6 @@ static void rockchip_dsi_grf_config(struct dw_mipi_dsi *dsi, int vop_id) regmap_write(dsi->grf_regmap, pdata->grf_switch_reg, val); - if (pdata->grf_dsi0_mode_reg) - regmap_write(dsi->grf_regmap, pdata->grf_dsi0_mode_reg, - pdata->grf_dsi0_mode); - } dev_info(dsi->dev, "vop %s output to dsi0\n", (vop_id) ? "LIT" : "BIG"); @@ -1139,6 +1135,8 @@ static void rockchip_dsi_pre_init(struct dw_mipi_dsi *dsi) static void rockchip_dsi_host_init(struct dw_mipi_dsi *dsi) { + const struct dw_mipi_dsi_plat_data *pdata = dsi->pdata; + dw_mipi_dsi_init(dsi); dw_mipi_dsi_dpi_config(dsi, &dsi->mode); dw_mipi_dsi_packet_handler_config(dsi); @@ -1151,6 +1149,12 @@ static void rockchip_dsi_host_init(struct dw_mipi_dsi *dsi) dw_mipi_dsi_dphy_timing_config(dsi); dw_mipi_dsi_dphy_interface_config(dsi); dw_mipi_dsi_clear_err(dsi); + + if (pdata->grf_dsi0_mode_reg) + regmap_write(dsi->grf_regmap, pdata->grf_dsi0_mode_reg, + pdata->grf_dsi0_mode); + + } static void rockchip_dsi_init(struct dw_mipi_dsi *dsi) @@ -1180,7 +1184,6 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder) vop_id = drm_of_encoder_active_endpoint_id(dsi->dev->of_node, encoder); - rockchip_dsi_grf_config(dsi, vop_id); rockchip_dsi_init(dsi); if (dsi->panel) @@ -1190,6 +1193,8 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder) if (dsi->panel) drm_panel_enable(dsi->panel); + + rockchip_dsi_grf_config(dsi, vop_id); } static int