/* * Reset DP and prepare DP for init training * param dp pointer to main s5p-dp structure */ static int s5p_dp_init_dp(struct s5p_dp_device *dp) { int ret, i; struct exynos5_dp *base = dp->base; for (i = 0; i < DP_INIT_TRIES; i++) { s5p_dp_reset(dp); /* SW defined function Normal operation */ clrbits_le32(&base->func_en_1, SW_FUNC_EN_N); ret = s5p_dp_init_analog_func(dp); if (!ret) break; udelay(5000); printk(BIOS_DEBUG, "LCD retry init, attempt=%d ret=%d\n", i, ret); } if (i == DP_INIT_TRIES) { printk(BIOS_DEBUG, "LCD initialization failed, ret=%d\n", ret); return ret; } s5p_dp_init_aux(dp); return ret; }
static int s5p_dp_init_dp(struct s5p_dp_device *dp) { s5p_dp_reset(dp); /* SW defined function Normal operation */ s5p_dp_enable_sw_function(dp); if (!soc_is_exynos5250()) s5p_dp_config_interrupt(dp); s5p_dp_init_analog_func(dp); s5p_dp_init_hpd(dp); s5p_dp_init_aux(dp); return 0; }