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);
}