static void s5p_dp_disable(struct s5p_dp_device *dp) { struct s5p_dp_platdata *pdata = dp->dev->platform_data; mutex_lock(&dp->lock); if (!dp->enabled) goto out; dp->enabled = 0; s5p_dp_reset(dp); s5p_dp_set_pll_power_down(dp, 1); s5p_dp_set_analog_power_down(dp, POWER_ALL, 1); #ifdef CONFIG_S5P_DP_PSR if (dp->psr_enter_state != PSR_ENTER_DONE) clk_disable(dp->clock); #else clk_disable(dp->clock); #endif pm_runtime_put_sync(dp->dev); out: mutex_unlock(&dp->lock); }
static void s5p_dp_disable(struct s5p_dp_device *dp) { struct s5p_dp_platdata *pdata = dp->dev->platform_data; #if defined(CONFIG_SOC_EXYNOS5260) if ((pdata->clock_reinit == true) && (dp->clock_status == true)) dp->clock_status = false; #endif mutex_lock(&dp->lock); if (!dp->enabled) goto out; dp->enabled = 0; s5p_dp_reset(dp); s5p_dp_set_pll_power_down(dp, 1); s5p_dp_set_analog_power_down(dp, POWER_ALL, 1); if (pdata && pdata->phy_exit) pdata->phy_exit(); clk_disable(dp->clock); pm_runtime_put_sync(dp->dev); out: mutex_unlock(&dp->lock); }
static void s5p_dp_disable(struct s5p_dp_device *dp) { struct s5p_dp_platdata *pdata = dp->dev->platform_data; mutex_lock(&dp->lock); if (!dp->enabled) goto out; dp->enabled = 0; s5p_dp_reset(dp); s5p_dp_set_pll_power_down(dp, 1); s5p_dp_set_analog_power_down(dp, POWER_ALL, 1); if (pdata && pdata->phy_exit) pdata->phy_exit(); clk_disable(dp->clock); pm_runtime_put_sync(dp->dev); out: mutex_unlock(&dp->lock); }