@@ -416,8 +416,6 @@ static int dw_mipi_dsi_phy_init(struct dw_mipi_dsi *dsi)
416416 return testdin ;
417417 }
418418
419- dsi_write (dsi , DSI_PWR_UP , POWERUP );
420-
421419 if (!IS_ERR (dsi -> phy_cfg_clk )) {
422420 ret = clk_prepare_enable (dsi -> phy_cfg_clk );
423421 if (ret ) {
@@ -465,7 +463,6 @@ static int dw_mipi_dsi_phy_init(struct dw_mipi_dsi *dsi)
465463 dsi_write (dsi , DSI_PHY_RSTZ , PHY_ENFORCEPLL | PHY_ENABLECLK |
466464 PHY_UNRSTZ | PHY_UNSHUTDOWNZ );
467465
468-
469466 ret = readx_poll_timeout (readl , dsi -> base + DSI_PHY_STATUS ,
470467 val , val & LOCK , 1000 , PHY_STATUS_TIMEOUT_US );
471468 if (ret < 0 ) {
@@ -480,6 +477,8 @@ static int dw_mipi_dsi_phy_init(struct dw_mipi_dsi *dsi)
480477 dev_err (dsi -> dev ,
481478 "failed to wait for phy clk lane stop state\n" );
482479
480+ dsi_write (dsi , DSI_LPCLK_CTRL , PHY_TXREQUESTCLKHS );
481+
483482phy_init_end :
484483 if (!IS_ERR (dsi -> phy_cfg_clk ))
485484 clk_disable_unprepare (dsi -> phy_cfg_clk );
@@ -724,9 +723,9 @@ static void dw_mipi_dsi_init(struct dw_mipi_dsi *dsi)
724723 dsi_write (dsi , DSI_PWR_UP , RESET );
725724 dsi_write (dsi , DSI_PHY_RSTZ , PHY_DISFORCEPLL | PHY_DISABLECLK
726725 | PHY_RSTZ | PHY_SHUTDOWNZ );
726+ dsi_write (dsi , DSI_PWR_UP , POWERUP );
727727 dsi_write (dsi , DSI_CLKMGR_CFG , TO_CLK_DIVIDSION (10 ) |
728728 TX_ESC_CLK_DIVIDSION (7 ));
729- dsi_write (dsi , DSI_LPCLK_CTRL , PHY_TXREQUESTCLKHS );
730729}
731730
732731static void dw_mipi_dsi_dpi_config (struct dw_mipi_dsi * dsi ,
@@ -864,7 +863,7 @@ static void dw_mipi_dsi_encoder_mode_set(struct drm_encoder *encoder,
864863 if (dsi -> dpms_mode == DRM_MODE_DPMS_ON )
865864 return ;
866865
867- dsi -> mode = adjusted_mode ;
866+ drm_mode_copy ( dsi -> mode , adjusted_mode ) ;
868867
869868 ret = dw_mipi_dsi_get_lane_bps (dsi );
870869 if (ret < 0 )
@@ -1254,6 +1253,9 @@ static int dw_mipi_dsi_probe(struct platform_device *pdev)
12541253 dsi -> pdata = pdata ;
12551254 dsi -> dsi_host .ops = & dw_mipi_dsi_host_ops ;
12561255 dsi -> dsi_host .dev = & pdev -> dev ;
1256+ dsi -> mode = devm_kzalloc (& pdev -> dev , sizeof (struct drm_display_mode ), GFP_KERNEL );
1257+ if (!dsi )
1258+ return - ENOMEM ;
12571259
12581260 ret = mipi_dsi_host_register (& dsi -> dsi_host );
12591261 if (ret )
0 commit comments