diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c index 47c8a9d83586..dc6046402c84 100644 --- a/drivers/video/omap2/dss/dpi.c +++ b/drivers/video/omap2/dss/dpi.c @@ -57,7 +57,7 @@ static int dpi_set_dsi_clk(struct omap_dss_device *dssdev, bool is_tft, if (r) return r; - dss_select_dispc_clk_source(OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC); + dss_select_dispc_clk_source(dssdev->clocks.dispc.dispc_fclk_src); r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); if (r) diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c index abfe7bfb8bc5..accc530f2fbf 100644 --- a/drivers/video/omap2/dss/dsi.c +++ b/drivers/video/omap2/dss/dsi.c @@ -3419,8 +3419,8 @@ static int dsi_configure_dispc_clocks(struct omap_dss_device *dssdev) fck = dsi_get_pll_hsdiv_dispc_rate(); - dispc_cinfo.lck_div = dssdev->clocks.dispc.lck_div; - dispc_cinfo.pck_div = dssdev->clocks.dispc.pck_div; + dispc_cinfo.lck_div = dssdev->clocks.dispc.channel.lck_div; + dispc_cinfo.pck_div = dssdev->clocks.dispc.channel.pck_div; r = dispc_calc_clock_rates(fck, &dispc_cinfo); if (r) { @@ -3455,10 +3455,10 @@ static int dsi_display_init_dsi(struct omap_dss_device *dssdev) if (r) goto err1; - dss_select_dispc_clk_source(OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC); - dss_select_dsi_clk_source(OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DSI); + dss_select_dispc_clk_source(dssdev->clocks.dispc.dispc_fclk_src); + dss_select_dsi_clk_source(dssdev->clocks.dsi.dsi_fclk_src); dss_select_lcd_clk_source(dssdev->manager->id, - OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC); + dssdev->clocks.dispc.channel.lcd_clk_src); DSSDBG("PLL OK\n"); diff --git a/include/video/omapdss.h b/include/video/omapdss.h index c17dd59d9853..c57a046db538 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -420,8 +420,13 @@ struct omap_dss_device { struct { struct { - u16 lck_div; - u16 pck_div; + struct { + u16 lck_div; + u16 pck_div; + enum omap_dss_clk_source lcd_clk_src; + } channel; + + enum omap_dss_clk_source dispc_fclk_src; } dispc; struct { @@ -431,6 +436,7 @@ struct omap_dss_device { u16 regm_dsi; u16 lp_clk_div; + enum omap_dss_clk_source dsi_fclk_src; } dsi; } clocks;