mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-20 08:38:24 +08:00
OMAP: DSS2: fix clock sources on error and uninit
DPI and DSI were not cleaning up the clock source in error or uninit cases. Set the clock source back to PRCM. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
bab59b4417
commit
5e7850917f
@ -83,8 +83,10 @@ static int dpi_set_dsi_clk(struct omap_dss_device *dssdev, bool is_tft,
|
|||||||
dss_select_dispc_clk_source(dssdev->clocks.dispc.dispc_fclk_src);
|
dss_select_dispc_clk_source(dssdev->clocks.dispc.dispc_fclk_src);
|
||||||
|
|
||||||
r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo);
|
r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo);
|
||||||
if (r)
|
if (r) {
|
||||||
|
dss_select_dispc_clk_source(OMAP_DSS_CLK_SRC_FCK);
|
||||||
return r;
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
*fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk;
|
*fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk;
|
||||||
*lck_div = dispc_cinfo.lck_div;
|
*lck_div = dispc_cinfo.lck_div;
|
||||||
|
@ -4184,6 +4184,8 @@ err3:
|
|||||||
err2:
|
err2:
|
||||||
dss_select_dispc_clk_source(OMAP_DSS_CLK_SRC_FCK);
|
dss_select_dispc_clk_source(OMAP_DSS_CLK_SRC_FCK);
|
||||||
dss_select_dsi_clk_source(dsi_module, OMAP_DSS_CLK_SRC_FCK);
|
dss_select_dsi_clk_source(dsi_module, OMAP_DSS_CLK_SRC_FCK);
|
||||||
|
dss_select_lcd_clk_source(dssdev->manager->id, OMAP_DSS_CLK_SRC_FCK);
|
||||||
|
|
||||||
err1:
|
err1:
|
||||||
dsi_pll_uninit(dsidev, true);
|
dsi_pll_uninit(dsidev, true);
|
||||||
err0:
|
err0:
|
||||||
@ -4209,6 +4211,7 @@ static void dsi_display_uninit_dsi(struct omap_dss_device *dssdev,
|
|||||||
|
|
||||||
dss_select_dispc_clk_source(OMAP_DSS_CLK_SRC_FCK);
|
dss_select_dispc_clk_source(OMAP_DSS_CLK_SRC_FCK);
|
||||||
dss_select_dsi_clk_source(dsi_module, OMAP_DSS_CLK_SRC_FCK);
|
dss_select_dsi_clk_source(dsi_module, OMAP_DSS_CLK_SRC_FCK);
|
||||||
|
dss_select_lcd_clk_source(dssdev->manager->id, OMAP_DSS_CLK_SRC_FCK);
|
||||||
dsi_cio_uninit(dssdev);
|
dsi_cio_uninit(dssdev);
|
||||||
dsi_pll_uninit(dsidev, disconnect_lanes);
|
dsi_pll_uninit(dsidev, disconnect_lanes);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user