Lines Matching refs:intel_dp
327 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_max_lane_count() local
330 if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11) { in cdv_intel_dp_max_lane_count()
331 max_lane_count = intel_dp->dpcd[DP_MAX_LANE_COUNT] & 0x1f; in cdv_intel_dp_max_lane_count()
345 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_max_link_bw() local
346 int max_link_bw = intel_dp->dpcd[DP_MAX_LINK_RATE]; in cdv_intel_dp_max_link_bw()
383 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_edp_panel_vdd_on() local
386 if (intel_dp->panel_on) { in cdv_intel_edp_panel_vdd_on()
397 msleep(intel_dp->panel_power_up_delay); in cdv_intel_edp_panel_vdd_on()
418 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_edp_panel_on() local
421 if (intel_dp->panel_on) in cdv_intel_edp_panel_on()
434 intel_dp->panel_on = false; in cdv_intel_edp_panel_on()
436 intel_dp->panel_on = true; in cdv_intel_edp_panel_on()
437 msleep(intel_dp->panel_power_up_delay); in cdv_intel_edp_panel_on()
446 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_edp_panel_off() local
455 intel_dp->panel_on = false; in cdv_intel_edp_panel_off()
470 msleep(intel_dp->panel_power_cycle_delay); in cdv_intel_edp_panel_off()
497 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_edp_backlight_off() local
507 msleep(intel_dp->backlight_off_delay); in cdv_intel_edp_backlight_off()
515 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_mode_valid() local
520 if (is_edp(encoder) && intel_dp->panel_fixed_mode) { in cdv_intel_dp_mode_valid()
521 if (mode->hdisplay > intel_dp->panel_fixed_mode->hdisplay) in cdv_intel_dp_mode_valid()
523 if (mode->vdisplay > intel_dp->panel_fixed_mode->vdisplay) in cdv_intel_dp_mode_valid()
574 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_aux_ch() local
575 uint32_t output_reg = intel_dp->output_reg; in cdv_intel_dp_aux_ch()
755 struct cdv_intel_dp *intel_dp = container_of(adapter, in cdv_intel_dp_i2c_aux_ch() local
758 struct gma_encoder *encoder = intel_dp->encoder; in cdv_intel_dp_i2c_aux_ch()
851 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_i2c_init() local
856 intel_dp->algo.running = false; in cdv_intel_dp_i2c_init()
857 intel_dp->algo.address = 0; in cdv_intel_dp_i2c_init()
858 intel_dp->algo.aux_ch = cdv_intel_dp_i2c_aux_ch; in cdv_intel_dp_i2c_init()
860 memset(&intel_dp->adapter, '\0', sizeof (intel_dp->adapter)); in cdv_intel_dp_i2c_init()
861 intel_dp->adapter.owner = THIS_MODULE; in cdv_intel_dp_i2c_init()
862 intel_dp->adapter.class = I2C_CLASS_DDC; in cdv_intel_dp_i2c_init()
863 strncpy (intel_dp->adapter.name, name, sizeof(intel_dp->adapter.name) - 1); in cdv_intel_dp_i2c_init()
864 intel_dp->adapter.name[sizeof(intel_dp->adapter.name) - 1] = '\0'; in cdv_intel_dp_i2c_init()
865 intel_dp->adapter.algo_data = &intel_dp->algo; in cdv_intel_dp_i2c_init()
866 intel_dp->adapter.dev.parent = connector->base.kdev; in cdv_intel_dp_i2c_init()
870 ret = i2c_dp_aux_add_bus(&intel_dp->adapter); in cdv_intel_dp_i2c_init()
901 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_dp_mode_fixup() local
909 if (is_edp(intel_encoder) && intel_dp->panel_fixed_mode) { in cdv_intel_dp_mode_fixup()
910 cdv_intel_fixed_panel_mode(intel_dp->panel_fixed_mode, adjusted_mode); in cdv_intel_dp_mode_fixup()
911 refclock = intel_dp->panel_fixed_mode->clock; in cdv_intel_dp_mode_fixup()
920 intel_dp->link_bw = bws[clock]; in cdv_intel_dp_mode_fixup()
921 intel_dp->lane_count = lane_count; in cdv_intel_dp_mode_fixup()
922 adjusted_mode->clock = cdv_intel_dp_link_clock(intel_dp->link_bw); in cdv_intel_dp_mode_fixup()
925 intel_dp->link_bw, intel_dp->lane_count, in cdv_intel_dp_mode_fixup()
933 intel_dp->lane_count = max_lane_count; in cdv_intel_dp_mode_fixup()
934 intel_dp->link_bw = bws[max_clock]; in cdv_intel_dp_mode_fixup()
935 adjusted_mode->clock = cdv_intel_dp_link_clock(intel_dp->link_bw); in cdv_intel_dp_mode_fixup()
938 intel_dp->link_bw, intel_dp->lane_count, in cdv_intel_dp_mode_fixup()
1004 struct cdv_intel_dp *intel_dp; in cdv_intel_dp_set_m_n() local
1010 intel_dp = intel_encoder->dev_priv; in cdv_intel_dp_set_m_n()
1012 lane_count = intel_dp->lane_count; in cdv_intel_dp_set_m_n()
1015 lane_count = intel_dp->lane_count; in cdv_intel_dp_set_m_n()
1046 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_dp_mode_set() local
1049 intel_dp->DP = DP_VOLTAGE_0_4 | DP_PRE_EMPHASIS_0; in cdv_intel_dp_mode_set()
1050 intel_dp->DP |= intel_dp->color_range; in cdv_intel_dp_mode_set()
1053 intel_dp->DP |= DP_SYNC_HS_HIGH; in cdv_intel_dp_mode_set()
1055 intel_dp->DP |= DP_SYNC_VS_HIGH; in cdv_intel_dp_mode_set()
1057 intel_dp->DP |= DP_LINK_TRAIN_OFF; in cdv_intel_dp_mode_set()
1059 switch (intel_dp->lane_count) { in cdv_intel_dp_mode_set()
1061 intel_dp->DP |= DP_PORT_WIDTH_1; in cdv_intel_dp_mode_set()
1064 intel_dp->DP |= DP_PORT_WIDTH_2; in cdv_intel_dp_mode_set()
1067 intel_dp->DP |= DP_PORT_WIDTH_4; in cdv_intel_dp_mode_set()
1070 if (intel_dp->has_audio) in cdv_intel_dp_mode_set()
1071 intel_dp->DP |= DP_AUDIO_OUTPUT_ENABLE; in cdv_intel_dp_mode_set()
1073 memset(intel_dp->link_configuration, 0, DP_LINK_CONFIGURATION_SIZE); in cdv_intel_dp_mode_set()
1074 intel_dp->link_configuration[0] = intel_dp->link_bw; in cdv_intel_dp_mode_set()
1075 intel_dp->link_configuration[1] = intel_dp->lane_count; in cdv_intel_dp_mode_set()
1080 if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 && in cdv_intel_dp_mode_set()
1081 (intel_dp->dpcd[DP_MAX_LANE_COUNT] & DP_ENHANCED_FRAME_CAP)) { in cdv_intel_dp_mode_set()
1082 intel_dp->link_configuration[1] |= DP_LANE_COUNT_ENHANCED_FRAME_EN; in cdv_intel_dp_mode_set()
1083 intel_dp->DP |= DP_ENHANCED_FRAMING; in cdv_intel_dp_mode_set()
1088 intel_dp->DP |= DP_PIPEB_SELECT; in cdv_intel_dp_mode_set()
1090 REG_WRITE(intel_dp->output_reg, (intel_dp->DP | DP_PORT_EN)); in cdv_intel_dp_mode_set()
1091 DRM_DEBUG_KMS("DP expected reg is %x\n", intel_dp->DP); in cdv_intel_dp_mode_set()
1112 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_sink_dpms() local
1116 if (intel_dp->dpcd[DP_DPCD_REV] < 0x11) in cdv_intel_dp_sink_dpms()
1174 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_dp_dpms() local
1176 uint32_t dp_reg = REG_READ(intel_dp->output_reg); in cdv_intel_dp_dpms()
1235 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_get_link_status() local
1238 intel_dp->link_status, in cdv_intel_dp_get_link_status()
1280 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_get_adjust_train() local
1285 for (lane = 0; lane < intel_dp->lane_count; lane++) { in cdv_intel_get_adjust_train()
1286 uint8_t this_v = cdv_intel_get_adjust_request_voltage(intel_dp->link_status, lane); in cdv_intel_get_adjust_train()
1287 uint8_t this_p = cdv_intel_get_adjust_request_pre_emphasis(intel_dp->link_status, lane); in cdv_intel_get_adjust_train()
1302 intel_dp->train_set[lane] = v | p; in cdv_intel_get_adjust_train()
1339 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_channel_eq_ok() local
1344 lane_align = cdv_intel_dp_link_status(intel_dp->link_status, in cdv_intel_channel_eq_ok()
1348 for (lane = 0; lane < intel_dp->lane_count; lane++) { in cdv_intel_channel_eq_ok()
1349 lane_status = cdv_intel_get_lane_status(intel_dp->link_status, lane); in cdv_intel_channel_eq_ok()
1363 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_set_link_train() local
1365 REG_WRITE(intel_dp->output_reg, dp_reg_value); in cdv_intel_dp_set_link_train()
1366 REG_READ(intel_dp->output_reg); in cdv_intel_dp_set_link_train()
1387 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dplink_set_level() local
1391 intel_dp->train_set, in cdv_intel_dplink_set_level()
1392 intel_dp->lane_count); in cdv_intel_dplink_set_level()
1394 if (ret != intel_dp->lane_count) { in cdv_intel_dplink_set_level()
1396 intel_dp->train_set[0], intel_dp->lane_count); in cdv_intel_dplink_set_level()
1406 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_set_vswing_premph() local
1410 if (intel_dp->output_reg == DP_B) in cdv_intel_dp_set_vswing_premph()
1472 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_start_link_train() local
1478 uint32_t DP = intel_dp->DP; in cdv_intel_dp_start_link_train()
1486 REG_WRITE(intel_dp->output_reg, reg); in cdv_intel_dp_start_link_train()
1487 REG_READ(intel_dp->output_reg); in cdv_intel_dp_start_link_train()
1493 intel_dp->link_configuration, in cdv_intel_dp_start_link_train()
1496 memset(intel_dp->train_set, 0, 4); in cdv_intel_dp_start_link_train()
1507 intel_dp->train_set[0], in cdv_intel_dp_start_link_train()
1508 intel_dp->link_configuration[0], in cdv_intel_dp_start_link_train()
1509 intel_dp->link_configuration[1]); in cdv_intel_dp_start_link_train()
1514 cdv_intel_dp_set_vswing_premph(encoder, intel_dp->train_set[0]); in cdv_intel_dp_start_link_train()
1524 intel_dp->link_status[0], intel_dp->link_status[1], intel_dp->link_status[2], in cdv_intel_dp_start_link_train()
1525 intel_dp->link_status[3], intel_dp->link_status[4], intel_dp->link_status[5]); in cdv_intel_dp_start_link_train()
1527 if (cdv_intel_clock_recovery_ok(intel_dp->link_status, intel_dp->lane_count)) { in cdv_intel_dp_start_link_train()
1534 for (i = 0; i < intel_dp->lane_count; i++) in cdv_intel_dp_start_link_train()
1535 if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0) in cdv_intel_dp_start_link_train()
1537 if (i == intel_dp->lane_count) in cdv_intel_dp_start_link_train()
1541 if ((intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK) == voltage) { in cdv_intel_dp_start_link_train()
1547 voltage = intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK; in cdv_intel_dp_start_link_train()
1555 DRM_DEBUG_KMS("failure in DP patter 1 training, train set %x\n", intel_dp->train_set[0]); in cdv_intel_dp_start_link_train()
1558 intel_dp->DP = DP; in cdv_intel_dp_start_link_train()
1565 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_complete_link_train() local
1568 uint32_t DP = intel_dp->DP; in cdv_intel_dp_complete_link_train()
1580 intel_dp->train_set[0], in cdv_intel_dp_complete_link_train()
1581 intel_dp->link_configuration[0], in cdv_intel_dp_complete_link_train()
1582 intel_dp->link_configuration[1]); in cdv_intel_dp_complete_link_train()
1597 cdv_intel_dp_set_vswing_premph(encoder, intel_dp->train_set[0]); in cdv_intel_dp_complete_link_train()
1606 intel_dp->link_status[0], intel_dp->link_status[1], intel_dp->link_status[2], in cdv_intel_dp_complete_link_train()
1607 intel_dp->link_status[3], intel_dp->link_status[4], intel_dp->link_status[5]); in cdv_intel_dp_complete_link_train()
1610 if (!cdv_intel_clock_recovery_ok(intel_dp->link_status, intel_dp->lane_count)) { in cdv_intel_dp_complete_link_train()
1638 REG_WRITE(intel_dp->output_reg, reg); in cdv_intel_dp_complete_link_train()
1639 REG_READ(intel_dp->output_reg); in cdv_intel_dp_complete_link_train()
1648 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_link_down() local
1649 uint32_t DP = intel_dp->DP; in cdv_intel_dp_link_down()
1651 if ((REG_READ(intel_dp->output_reg) & DP_PORT_EN) == 0) in cdv_intel_dp_link_down()
1659 REG_WRITE(intel_dp->output_reg, DP | DP_LINK_TRAIN_PAT_IDLE); in cdv_intel_dp_link_down()
1661 REG_READ(intel_dp->output_reg); in cdv_intel_dp_link_down()
1665 REG_WRITE(intel_dp->output_reg, DP & ~DP_PORT_EN); in cdv_intel_dp_link_down()
1666 REG_READ(intel_dp->output_reg); in cdv_intel_dp_link_down()
1671 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_dp_detect() local
1675 if (cdv_intel_dp_aux_native_read(encoder, 0x000, intel_dp->dpcd, in cdv_dp_detect()
1676 sizeof (intel_dp->dpcd)) == sizeof (intel_dp->dpcd)) in cdv_dp_detect()
1678 if (intel_dp->dpcd[DP_DPCD_REV] != 0) in cdv_dp_detect()
1683 intel_dp->dpcd[0], intel_dp->dpcd[1], in cdv_dp_detect()
1684 intel_dp->dpcd[2], intel_dp->dpcd[3]); in cdv_dp_detect()
1698 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_detect() local
1703 intel_dp->has_audio = false; in cdv_intel_dp_detect()
1714 if (intel_dp->force_audio) { in cdv_intel_dp_detect()
1715 intel_dp->has_audio = intel_dp->force_audio > 0; in cdv_intel_dp_detect()
1717 edid = drm_get_edid(connector, &intel_dp->adapter); in cdv_intel_dp_detect()
1719 intel_dp->has_audio = drm_detect_monitor_audio(edid); in cdv_intel_dp_detect()
1732 struct cdv_intel_dp *intel_dp = intel_encoder->dev_priv; in cdv_intel_dp_get_modes() local
1738 edid = drm_get_edid(connector, &intel_dp->adapter); in cdv_intel_dp_get_modes()
1751 if (edp && !intel_dp->panel_fixed_mode) { in cdv_intel_dp_get_modes()
1756 intel_dp->panel_fixed_mode = in cdv_intel_dp_get_modes()
1765 if (!intel_dp->panel_fixed_mode && dev_priv->lfp_lvds_vbt_mode) { in cdv_intel_dp_get_modes()
1766 intel_dp->panel_fixed_mode = in cdv_intel_dp_get_modes()
1768 if (intel_dp->panel_fixed_mode) { in cdv_intel_dp_get_modes()
1769 intel_dp->panel_fixed_mode->type |= in cdv_intel_dp_get_modes()
1773 if (intel_dp->panel_fixed_mode != NULL) { in cdv_intel_dp_get_modes()
1775 mode = drm_mode_duplicate(dev, intel_dp->panel_fixed_mode); in cdv_intel_dp_get_modes()
1788 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_detect_audio() local
1796 edid = drm_get_edid(connector, &intel_dp->adapter); in cdv_intel_dp_detect_audio()
1814 struct cdv_intel_dp *intel_dp = encoder->dev_priv; in cdv_intel_dp_set_property() local
1825 if (i == intel_dp->force_audio) in cdv_intel_dp_set_property()
1828 intel_dp->force_audio = i; in cdv_intel_dp_set_property()
1835 if (has_audio == intel_dp->has_audio) in cdv_intel_dp_set_property()
1838 intel_dp->has_audio = has_audio; in cdv_intel_dp_set_property()
1843 if (val == !!intel_dp->color_range) in cdv_intel_dp_set_property()
1846 intel_dp->color_range = val ? DP_COLOR_RANGE_16_235 : 0; in cdv_intel_dp_set_property()
1867 struct cdv_intel_dp *intel_dp = gma_encoder->dev_priv; in cdv_intel_dp_destroy() local
1871 kfree(intel_dp->panel_fixed_mode); in cdv_intel_dp_destroy()
1872 intel_dp->panel_fixed_mode = NULL; in cdv_intel_dp_destroy()
1874 i2c_del_adapter(&intel_dp->adapter); in cdv_intel_dp_destroy()
1957 struct cdv_intel_dp *intel_dp; in cdv_intel_dp_init() local
1967 intel_dp = kzalloc(sizeof(struct cdv_intel_dp), GFP_KERNEL); in cdv_intel_dp_init()
1968 if (!intel_dp) in cdv_intel_dp_init()
1988 gma_encoder->dev_priv=intel_dp; in cdv_intel_dp_init()
1989 intel_dp->encoder = gma_encoder; in cdv_intel_dp_init()
1990 intel_dp->output_reg = output_reg; in cdv_intel_dp_init()
2059 intel_dp->panel_power_up_delay = cur.t1_t3 / 10; in cdv_intel_dp_init()
2060 intel_dp->backlight_on_delay = cur.t8 / 10; in cdv_intel_dp_init()
2061 intel_dp->backlight_off_delay = cur.t9 / 10; in cdv_intel_dp_init()
2062 intel_dp->panel_power_down_delay = cur.t10 / 10; in cdv_intel_dp_init()
2063 intel_dp->panel_power_cycle_delay = (cur.t11_t12 - 1) * 100; in cdv_intel_dp_init()
2066 intel_dp->panel_power_up_delay, intel_dp->panel_power_down_delay, in cdv_intel_dp_init()
2067 intel_dp->panel_power_cycle_delay); in cdv_intel_dp_init()
2070 intel_dp->backlight_on_delay, intel_dp->backlight_off_delay); in cdv_intel_dp_init()
2075 intel_dp->dpcd, in cdv_intel_dp_init()
2076 sizeof(intel_dp->dpcd)); in cdv_intel_dp_init()
2086 intel_dp->dpcd[0], intel_dp->dpcd[1], in cdv_intel_dp_init()
2087 intel_dp->dpcd[2], intel_dp->dpcd[3]); in cdv_intel_dp_init()