static void __display_block_clock_on(struct display_driver *dispdrv) { /* DSIM -> MIC -> DECON */ call_pm_ops(dispdrv, dsi_driver, clk_on, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, clk_on, dispdrv); #endif call_pm_ops(dispdrv, decon_driver, clk_on, dispdrv); }
static int __display_hibernation_power_on(struct display_driver *dispdrv) { /* already clocks are on */ /* DSIM -> MIC -> DECON */ call_pm_ops(dispdrv, dsi_driver, pwr_on, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, pwr_on, dispdrv); #endif call_pm_ops(dispdrv, decon_driver, pwr_on, dispdrv); return 0; }
static int __display_hibernation_power_on(struct display_driver *dispdrv) { /* already clocks are on */ save_decon_operation_time(OPS_CALL_DISPLAY_POWER_ON); /* DSIM -> MIC -> DECON */ call_pm_ops(dispdrv, dsi_driver, pwr_on, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, pwr_on, dispdrv); #endif call_pm_ops(dispdrv, decon_driver, pwr_on, dispdrv); return 0; }
static int __display_hibernation_power_off(struct display_driver *dispdrv) { call_block_pm_ops(dispdrv, clk_on, dispdrv); /* DECON -> MIC -> DSIM */ call_pm_ops(dispdrv, decon_driver, pwr_off, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, pwr_off, dispdrv); #endif call_pm_ops(dispdrv, dsi_driver, pwr_off, dispdrv); return 0; }
static void __display_block_clock_on(struct display_driver *dispdrv) { /* DSIM -> MIC -> DECON -> SMMU */ call_pm_ops(dispdrv, dsi_driver, clk_on, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, clk_on, dispdrv); #endif call_pm_ops(dispdrv, decon_driver, clk_on, dispdrv); #ifdef CONFIG_ION_EXYNOS if (dispdrv->platform_status > DISP_STATUS_PM0) { if (iovmm_activate(dispdrv->decon_driver.sfb->dev) < 0) pr_err("%s: failed to reactivate vmm\n", __func__); } #endif }
static int __display_block_clock_off(struct display_driver *dispdrv) { if (get_display_line_count(dispdrv)) { pm_debug("wait until last frame is totally transferred %d:", get_display_line_count(dispdrv)); return -EBUSY; } /* DECON -> MIC -> DSIM */ call_pm_ops(dispdrv, decon_driver, clk_off, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, clk_off, dispdrv); #endif call_pm_ops(dispdrv, dsi_driver, clk_off, dispdrv); return 0; }
static int __display_hibernation_power_off(struct display_driver *dispdrv) { save_decon_operation_time(OPS_CALL_DISPLAY_POWER_OFF); call_block_pm_ops(dispdrv, clk_on, dispdrv); /* DECON -> MIC -> DSIM */ call_pm_ops(dispdrv, decon_driver, pwr_off, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, pwr_off, dispdrv); #endif call_pm_ops(dispdrv, dsi_driver, pwr_off, dispdrv); return 0; }
static int __display_block_clock_off(struct display_driver *dispdrv) { if (get_display_line_count(dispdrv)) { pm_debug("wait until last frame is totally transferred %d:", get_display_line_count(dispdrv)); return -EBUSY; } /* SMMU -> DECON -> MIC -> DSIM */ #ifdef CONFIG_ION_EXYNOS if (dispdrv->platform_status > DISP_STATUS_PM0) iovmm_deactivate(dispdrv->decon_driver.sfb->dev); #endif call_pm_ops(dispdrv, decon_driver, clk_off, dispdrv); #ifdef CONFIG_DECON_MIC call_pm_ops(dispdrv, mic_driver, clk_off, dispdrv); #endif call_pm_ops(dispdrv, dsi_driver, clk_off, dispdrv); return 0; }