static void dss_clk_disable_all_no_ctx(void) { enum dss_clock clks; clks = DSS_CLK_ICK | DSS_CLK_FCK1 | DSS_CLK_FCK2 | DSS_CLK_54M; if (cpu_is_omap34xx() || cpu_is_omap44xx()) clks |= DSS_CLK_96M; dss_clk_disable_no_ctx(clks); }
void dss_clk_disable(enum dss_clock clks) { if (cpu_is_omap34xx()) { unsigned num_clks = count_clk_bits(clks); BUG_ON(core.num_clks_enabled < num_clks); } dss_clk_disable_no_ctx(clks); }
void dss_clk_disable(enum dss_clock clks) { if (cpu_is_omap34xx()) { unsigned num_clks = count_clk_bits(clks); //BUG_ON(core.num_clks_enabled < num_clks); if (core.pdata && (core.num_clks_enabled == num_clks)) save_all_ctx(); } dss_clk_disable_no_ctx(clks); }
static void save_all_ctx(void) { DSSDBG("save context\n"); dss_clk_enable_no_ctx(DSS_CLK_ICK | DSS_CLK_FCK1); dss_save_context(); dispc_save_context(); #ifdef CONFIG_OMAP2_DSS_DSI dsi_save_context(); #endif dss_clk_disable_no_ctx(DSS_CLK_ICK | DSS_CLK_FCK1); }
static int omap_dss_suspend(struct platform_device *pdev, pm_message_t state) { int r; DSSDBG("suspend %d\n", state.event); r = dss_suspend_all_devices(); if (!r) { /* * FCLKs in CM_FCLKEN_DSS set to off */ dss_clk_disable_no_ctx(DSS_CLK_ICK | DSS_CLK_FCK1 | DSS_CLK_54M); #if defined(CONFIG_MACH_SAMSUNG_NOWPLUS) dss_set_mainclk_state(false); #endif } omap_pm_set_min_bus_tput(&core.pdev->dev, OCP_INITIATOR_AGENT, -1); return r; }