sys/dev/drm/i915/i915_drv.h
603
struct intel_dp;
sys/dev/drm/i915/i915_drv.h
607
struct intel_dp *dp;
sys/dev/drm/i915/i915_drv.h
626
struct intel_dp *dp;
sys/dev/drm/i915/intel_ddi.c
1241
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_ddi.c
1245
intel_dp->DP = intel_dig_port->saved_port_bits |
sys/dev/drm/i915/intel_ddi.c
1247
intel_dp->DP |= DDI_PORT_WIDTH(intel_dp->lane_count);
sys/dev/drm/i915/intel_ddi.c
2078
intel_ddi_main_link_aux_domain(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_ddi.c
2092
return intel_dp->aux_ch == AUX_CH_A ? POWER_DOMAIN_AUX_IO_A :
sys/dev/drm/i915/intel_ddi.c
2093
intel_dp->aux_power_domain;
sys/dev/drm/i915/intel_ddi.c
2115
struct intel_dp *intel_dp = &dig_port->dp;
sys/dev/drm/i915/intel_ddi.c
2117
domains |= BIT_ULL(intel_ddi_main_link_aux_domain(intel_dp));
sys/dev/drm/i915/intel_ddi.c
2365
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_ddi.c
2367
width = intel_dp->lane_count;
sys/dev/drm/i915/intel_ddi.c
2368
rate = intel_dp->link_rate;
sys/dev/drm/i915/intel_ddi.c
2493
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_ddi.c
2495
width = intel_dp->lane_count;
sys/dev/drm/i915/intel_ddi.c
2496
rate = intel_dp->link_rate;
sys/dev/drm/i915/intel_ddi.c
2696
static uint32_t intel_ddi_dp_level(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_ddi.c
2698
uint8_t train_set = intel_dp->train_set[0];
sys/dev/drm/i915/intel_ddi.c
2705
u32 bxt_signal_levels(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_ddi.c
2707
struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2710
int level = intel_ddi_dp_level(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2713
icl_ddi_vswing_sequence(encoder, intel_dp->link_rate,
sys/dev/drm/i915/intel_ddi.c
2723
uint32_t ddi_signal_levels(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_ddi.c
2725
struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2728
int level = intel_ddi_dp_level(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2888
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_ddi.c
2893
int level = intel_ddi_dp_level(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2898
intel_ddi_main_link_aux_domain(intel_dp));
sys/dev/drm/i915/intel_ddi.c
2900
intel_dp_set_link_params(intel_dp, crtc_state->port_clock,
sys/dev/drm/i915/intel_ddi.c
2903
intel_edp_panel_on(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2909
icl_program_mg_dp_mode(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2924
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
sys/dev/drm/i915/intel_ddi.c
2925
intel_dp_start_link_train(intel_dp);
sys/dev/drm/i915/intel_ddi.c
2927
intel_dp_stop_link_train(intel_dp);
sys/dev/drm/i915/intel_ddi.c
3031
struct intel_dp *intel_dp = &dig_port->dp;
sys/dev/drm/i915/intel_ddi.c
3041
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
sys/dev/drm/i915/intel_ddi.c
3046
intel_edp_panel_vdd_on(intel_dp);
sys/dev/drm/i915/intel_ddi.c
3047
intel_edp_panel_off(intel_dp);
sys/dev/drm/i915/intel_ddi.c
3054
intel_ddi_main_link_aux_domain(intel_dp));
sys/dev/drm/i915/intel_ddi.c
3143
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_ddi.c
3147
intel_dp_stop_link_train(intel_dp);
sys/dev/drm/i915/intel_ddi.c
3150
intel_psr_enable(intel_dp, crtc_state);
sys/dev/drm/i915/intel_ddi.c
3151
intel_edp_drrs_enable(intel_dp, crtc_state);
sys/dev/drm/i915/intel_ddi.c
3244
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_ddi.c
3246
intel_dp->link_trained = false;
sys/dev/drm/i915/intel_ddi.c
3252
intel_edp_drrs_disable(intel_dp, old_crtc_state);
sys/dev/drm/i915/intel_ddi.c
3253
intel_psr_disable(intel_dp, old_crtc_state);
sys/dev/drm/i915/intel_ddi.c
3294
void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_ddi.c
3296
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_ddi.c
3323
if (intel_dp->link_mst)
sys/dev/drm/i915/intel_ddi.c
3327
if (drm_dp_enhanced_frame_cap(intel_dp->dpcd))
sys/dev/drm/i915/intel_ddi.c
3333
intel_dp->DP |= DDI_BUF_CTL_ENABLE;
sys/dev/drm/i915/intel_ddi.c
3334
I915_WRITE(DDI_BUF_CTL(port), intel_dp->DP);
sys/dev/drm/i915/intel_dp.c
1006
static void intel_pps_get_registers(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1009
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1015
pps_idx = bxt_power_sequencer_idx(intel_dp);
sys/dev/drm/i915/intel_dp.c
1017
pps_idx = vlv_power_sequencer_pipe(intel_dp);
sys/dev/drm/i915/intel_dp.c
1029
_pp_ctrl_reg(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1033
intel_pps_get_registers(intel_dp, ®s);
sys/dev/drm/i915/intel_dp.c
1039
_pp_stat_reg(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
104
bool intel_dp_is_edp(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1043
intel_pps_get_registers(intel_dp, ®s);
sys/dev/drm/i915/intel_dp.c
1053
struct intel_dp *intel_dp = container_of(this, typeof(* intel_dp),
sys/dev/drm/i915/intel_dp.c
1055
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1058
if (!intel_dp_is_edp(intel_dp) || code != SYS_RESTART)
sys/dev/drm/i915/intel_dp.c
106
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
1060
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
1063
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
1066
enum i915_pipe pipe = vlv_power_sequencer_pipe(intel_dp);
sys/dev/drm/i915/intel_dp.c
1078
msleep(intel_dp->panel_power_cycle_delay);
sys/dev/drm/i915/intel_dp.c
1081
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
1086
static bool edp_have_panel_power(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1088
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1093
intel_dp->pps_pipe == INVALID_PIPE)
sys/dev/drm/i915/intel_dp.c
1096
return (I915_READ(_pp_stat_reg(intel_dp)) & PP_ON) != 0;
sys/dev/drm/i915/intel_dp.c
1099
static bool edp_have_panel_vdd(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1101
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1106
intel_dp->pps_pipe == INVALID_PIPE)
sys/dev/drm/i915/intel_dp.c
1109
return I915_READ(_pp_ctrl_reg(intel_dp)) & EDP_FORCE_VDD;
sys/dev/drm/i915/intel_dp.c
111
static struct intel_dp *intel_attached_dp(struct drm_connector *connector)
sys/dev/drm/i915/intel_dp.c
1113
intel_dp_check_edp(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1115
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1117
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
1120
if (!edp_have_panel_power(intel_dp) && !edp_have_panel_vdd(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
1123
I915_READ(_pp_stat_reg(intel_dp)),
sys/dev/drm/i915/intel_dp.c
1124
I915_READ(_pp_ctrl_reg(intel_dp)));
sys/dev/drm/i915/intel_dp.c
1129
intel_dp_aux_wait_done(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1131
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1132
i915_reg_t ch_ctl = intel_dp->aux_ch_ctl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
1146
static uint32_t g4x_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
sys/dev/drm/i915/intel_dp.c
1148
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1160
static uint32_t ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
sys/dev/drm/i915/intel_dp.c
1162
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1172
if (intel_dp->aux_ch == AUX_CH_A)
sys/dev/drm/i915/intel_dp.c
1178
static uint32_t hsw_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
sys/dev/drm/i915/intel_dp.c
118
static bool edp_panel_vdd_on(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_dp.c
1180
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1182
if (intel_dp->aux_ch != AUX_CH_A && HAS_PCH_LPT_H(dev_priv)) {
sys/dev/drm/i915/intel_dp.c
119
static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync);
sys/dev/drm/i915/intel_dp.c
1191
return ilk_get_aux_clock_divider(intel_dp, index);
sys/dev/drm/i915/intel_dp.c
1194
static uint32_t skl_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
sys/dev/drm/i915/intel_dp.c
1204
static uint32_t g4x_get_aux_send_ctl(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1208
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
1234
static uint32_t skl_get_aux_send_ctl(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1238
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
124
static void intel_dp_unset_edid(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_dp.c
1258
intel_dp_aux_xfer(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1263
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
127
static void intel_dp_set_sink_rates(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1273
ch_ctl = intel_dp->aux_ch_ctl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
1275
ch_data[i] = intel_dp->aux_ch_data_reg(intel_dp, i);
sys/dev/drm/i915/intel_dp.c
1277
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
1285
vdd = edp_panel_vdd_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
1293
intel_dp_check_edp(intel_dp);
sys/dev/drm/i915/intel_dp.c
1323
while ((aux_clock_divider = intel_dp->get_aux_clock_divider(intel_dp, clock++))) {
sys/dev/drm/i915/intel_dp.c
1324
u32 send_ctl = intel_dp->get_aux_send_ctl(intel_dp,
sys/dev/drm/i915/intel_dp.c
134
max_rate = drm_dp_bw_code_to_link_rate(intel_dp->dpcd[DP_MAX_LINK_RATE]);
sys/dev/drm/i915/intel_dp.c
1341
status = intel_dp_aux_wait_done(intel_dp);
sys/dev/drm/i915/intel_dp.c
139
intel_dp->sink_rates[i] = dp_rates[i];
sys/dev/drm/i915/intel_dp.c
1419
edp_panel_vdd_off(intel_dp, false);
sys/dev/drm/i915/intel_dp.c
142
intel_dp->num_sink_rates = i;
sys/dev/drm/i915/intel_dp.c
1421
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
1442
struct intel_dp *intel_dp = container_of(aux, struct intel_dp, aux);
sys/dev/drm/i915/intel_dp.c
1464
ret = intel_dp_aux_xfer(intel_dp, txbuf, txsize,
sys/dev/drm/i915/intel_dp.c
1487
ret = intel_dp_aux_xfer(intel_dp, txbuf, txsize,
sys/dev/drm/i915/intel_dp.c
1510
static enum aux_ch intel_aux_ch(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1512
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
1559
intel_aux_power_domain(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1561
switch (intel_dp->aux_ch) {
sys/dev/drm/i915/intel_dp.c
1575
MISSING_CASE(intel_dp->aux_ch);
sys/dev/drm/i915/intel_dp.c
1580
static i915_reg_t g4x_aux_ctl_reg(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1582
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1583
enum aux_ch aux_ch = intel_dp->aux_ch;
sys/dev/drm/i915/intel_dp.c
1596
static i915_reg_t g4x_aux_data_reg(struct intel_dp *intel_dp, int index)
sys/dev/drm/i915/intel_dp.c
1598
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1599
enum aux_ch aux_ch = intel_dp->aux_ch;
sys/dev/drm/i915/intel_dp.c
160
static int intel_dp_common_len_rate_limit(const struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1612
static i915_reg_t ilk_aux_ctl_reg(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1614
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1615
enum aux_ch aux_ch = intel_dp->aux_ch;
sys/dev/drm/i915/intel_dp.c
163
return intel_dp_rate_limit_len(intel_dp->common_rates,
sys/dev/drm/i915/intel_dp.c
1630
static i915_reg_t ilk_aux_data_reg(struct intel_dp *intel_dp, int index)
sys/dev/drm/i915/intel_dp.c
1632
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1633
enum aux_ch aux_ch = intel_dp->aux_ch;
sys/dev/drm/i915/intel_dp.c
164
intel_dp->num_common_rates, max_rate);
sys/dev/drm/i915/intel_dp.c
1648
static i915_reg_t skl_aux_ctl_reg(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1650
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1651
enum aux_ch aux_ch = intel_dp->aux_ch;
sys/dev/drm/i915/intel_dp.c
1667
static i915_reg_t skl_aux_data_reg(struct intel_dp *intel_dp, int index)
sys/dev/drm/i915/intel_dp.c
1669
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1670
enum aux_ch aux_ch = intel_dp->aux_ch;
sys/dev/drm/i915/intel_dp.c
168
static int intel_dp_max_common_rate(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1687
intel_dp_aux_fini(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1689
kfree(intel_dp->aux.name);
sys/dev/drm/i915/intel_dp.c
1693
intel_dp_aux_init(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1695
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1696
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
1698
intel_dp->aux_ch = intel_aux_ch(intel_dp);
sys/dev/drm/i915/intel_dp.c
1699
intel_dp->aux_power_domain = intel_aux_power_domain(intel_dp);
sys/dev/drm/i915/intel_dp.c
170
return intel_dp->common_rates[intel_dp->num_common_rates - 1];
sys/dev/drm/i915/intel_dp.c
1702
intel_dp->aux_ch_ctl_reg = skl_aux_ctl_reg;
sys/dev/drm/i915/intel_dp.c
1703
intel_dp->aux_ch_data_reg = skl_aux_data_reg;
sys/dev/drm/i915/intel_dp.c
1705
intel_dp->aux_ch_ctl_reg = ilk_aux_ctl_reg;
sys/dev/drm/i915/intel_dp.c
1706
intel_dp->aux_ch_data_reg = ilk_aux_data_reg;
sys/dev/drm/i915/intel_dp.c
1708
intel_dp->aux_ch_ctl_reg = g4x_aux_ctl_reg;
sys/dev/drm/i915/intel_dp.c
1709
intel_dp->aux_ch_data_reg = g4x_aux_data_reg;
sys/dev/drm/i915/intel_dp.c
1713
intel_dp->get_aux_clock_divider = skl_get_aux_clock_divider;
sys/dev/drm/i915/intel_dp.c
1715
intel_dp->get_aux_clock_divider = hsw_get_aux_clock_divider;
sys/dev/drm/i915/intel_dp.c
1717
intel_dp->get_aux_clock_divider = ilk_get_aux_clock_divider;
sys/dev/drm/i915/intel_dp.c
1719
intel_dp->get_aux_clock_divider = g4x_get_aux_clock_divider;
sys/dev/drm/i915/intel_dp.c
1722
intel_dp->get_aux_send_ctl = skl_get_aux_send_ctl;
sys/dev/drm/i915/intel_dp.c
1724
intel_dp->get_aux_send_ctl = g4x_get_aux_send_ctl;
sys/dev/drm/i915/intel_dp.c
1726
drm_dp_aux_init(&intel_dp->aux);
sys/dev/drm/i915/intel_dp.c
1729
intel_dp->aux.name = kasprintf(GFP_KERNEL, "DPDDC-%c",
sys/dev/drm/i915/intel_dp.c
173
static int intel_dp_get_fia_supported_lane_count(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1731
intel_dp->aux.transfer = intel_dp_aux_transfer;
sys/dev/drm/i915/intel_dp.c
1734
bool intel_dp_source_supports_hbr2(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1736
int max_rate = intel_dp->source_rates[intel_dp->num_source_rates - 1];
sys/dev/drm/i915/intel_dp.c
1741
bool intel_dp_source_supports_hbr3(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1743
int max_rate = intel_dp->source_rates[intel_dp->num_source_rates - 1];
sys/dev/drm/i915/intel_dp.c
175
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
1797
static void intel_dp_print_rates(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1805
intel_dp->source_rates, intel_dp->num_source_rates);
sys/dev/drm/i915/intel_dp.c
1809
intel_dp->sink_rates, intel_dp->num_sink_rates);
sys/dev/drm/i915/intel_dp.c
1813
intel_dp->common_rates, intel_dp->num_common_rates);
sys/dev/drm/i915/intel_dp.c
1818
intel_dp_max_link_rate(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
1822
len = intel_dp_common_len_rate_limit(intel_dp, intel_dp->max_link_rate);
sys/dev/drm/i915/intel_dp.c
1826
return intel_dp->common_rates[len - 1];
sys/dev/drm/i915/intel_dp.c
1829
int intel_dp_rate_select(struct intel_dp *intel_dp, int rate)
sys/dev/drm/i915/intel_dp.c
1831
int i = intel_dp_rate_index(intel_dp->sink_rates,
sys/dev/drm/i915/intel_dp.c
1832
intel_dp->num_sink_rates, rate);
sys/dev/drm/i915/intel_dp.c
1840
void intel_dp_compute_rate(struct intel_dp *intel_dp, int port_clock,
sys/dev/drm/i915/intel_dp.c
1844
if (intel_dp->use_rate_select) {
sys/dev/drm/i915/intel_dp.c
1847
intel_dp_rate_select(intel_dp, port_clock);
sys/dev/drm/i915/intel_dp.c
1860
static int intel_dp_compute_bpp(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1863
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
1864
struct intel_connector *intel_connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp.c
1868
bpc = drm_dp_downstream_max_bpc(intel_dp->dpcd, intel_dp->downstream_ports);
sys/dev/drm/i915/intel_dp.c
1873
if (intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
1888
intel_dp_adjust_compliance_config(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1893
if (intel_dp->compliance.test_data.bpc != 0) {
sys/dev/drm/i915/intel_dp.c
1894
int bpp = 3 * intel_dp->compliance.test_data.bpc;
sys/dev/drm/i915/intel_dp.c
1903
if (intel_dp->compliance.test_type == DP_TEST_LINK_TRAINING) {
sys/dev/drm/i915/intel_dp.c
1909
if (intel_dp_link_params_valid(intel_dp, intel_dp->compliance.test_link_rate,
sys/dev/drm/i915/intel_dp.c
1910
intel_dp->compliance.test_lane_count)) {
sys/dev/drm/i915/intel_dp.c
1911
index = intel_dp_rate_index(intel_dp->common_rates,
sys/dev/drm/i915/intel_dp.c
1912
intel_dp->num_common_rates,
sys/dev/drm/i915/intel_dp.c
1913
intel_dp->compliance.test_link_rate);
sys/dev/drm/i915/intel_dp.c
1917
intel_dp->compliance.test_lane_count;
sys/dev/drm/i915/intel_dp.c
1924
intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
1940
link_clock = intel_dp->common_rates[clock];
sys/dev/drm/i915/intel_dp.c
1963
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
1967
common_len = intel_dp_common_len_rate_limit(intel_dp,
sys/dev/drm/i915/intel_dp.c
1968
intel_dp->max_link_rate);
sys/dev/drm/i915/intel_dp.c
1977
limits.max_lane_count = intel_dp_max_lane_count(intel_dp);
sys/dev/drm/i915/intel_dp.c
1980
limits.max_bpp = intel_dp_compute_bpp(intel_dp, pipe_config);
sys/dev/drm/i915/intel_dp.c
1982
if (intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
1994
intel_dp_adjust_compliance_config(intel_dp, pipe_config, &limits);
sys/dev/drm/i915/intel_dp.c
1999
intel_dp->common_rates[limits.max_clock],
sys/dev/drm/i915/intel_dp.c
2006
if (!intel_dp_compute_link_config_wide(intel_dp, pipe_config, &limits))
sys/dev/drm/i915/intel_dp.c
2029
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
2032
struct intel_connector *intel_connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp.c
2035
bool constant_n = drm_dp_has_quirk(&intel_dp->desc,
sys/dev/drm/i915/intel_dp.c
204
static int intel_dp_max_common_lane_count(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2045
pipe_config->has_audio = intel_dp->has_audio;
sys/dev/drm/i915/intel_dp.c
2049
if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
sys/dev/drm/i915/intel_dp.c
206
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
208
int sink_max = drm_dp_max_lane_count(intel_dp->dpcd);
sys/dev/drm/i915/intel_dp.c
209
int fia_max = intel_dp_get_fia_supported_lane_count(intel_dp);
sys/dev/drm/i915/intel_dp.c
2117
intel_psr_compute_config(intel_dp, pipe_config);
sys/dev/drm/i915/intel_dp.c
2122
void intel_dp_set_link_params(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
2126
intel_dp->link_trained = false;
sys/dev/drm/i915/intel_dp.c
2127
intel_dp->link_rate = link_rate;
sys/dev/drm/i915/intel_dp.c
2128
intel_dp->lane_count = lane_count;
sys/dev/drm/i915/intel_dp.c
2129
intel_dp->link_mst = link_mst;
sys/dev/drm/i915/intel_dp.c
2136
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
214
int intel_dp_max_lane_count(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2141
intel_dp_set_link_params(intel_dp, pipe_config->port_clock,
sys/dev/drm/i915/intel_dp.c
216
return intel_dp->max_link_lane_count;
sys/dev/drm/i915/intel_dp.c
2166
intel_dp->DP = I915_READ(intel_dp->output_reg) & DP_DETECTED;
sys/dev/drm/i915/intel_dp.c
2169
intel_dp->DP |= DP_VOLTAGE_0_4 | DP_PRE_EMPHASIS_0;
sys/dev/drm/i915/intel_dp.c
2170
intel_dp->DP |= DP_PORT_WIDTH(pipe_config->lane_count);
sys/dev/drm/i915/intel_dp.c
2176
intel_dp->DP |= DP_SYNC_HS_HIGH;
sys/dev/drm/i915/intel_dp.c
2178
intel_dp->DP |= DP_SYNC_VS_HIGH;
sys/dev/drm/i915/intel_dp.c
2179
intel_dp->DP |= DP_LINK_TRAIN_OFF_CPT;
sys/dev/drm/i915/intel_dp.c
2181
if (drm_dp_enhanced_frame_cap(intel_dp->dpcd))
sys/dev/drm/i915/intel_dp.c
2182
intel_dp->DP |= DP_ENHANCED_FRAMING;
sys/dev/drm/i915/intel_dp.c
2184
intel_dp->DP |= DP_PIPE_SEL_IVB(crtc->pipe);
sys/dev/drm/i915/intel_dp.c
2188
intel_dp->DP |= DP_LINK_TRAIN_OFF_CPT;
sys/dev/drm/i915/intel_dp.c
2191
if (drm_dp_enhanced_frame_cap(intel_dp->dpcd))
sys/dev/drm/i915/intel_dp.c
2198
intel_dp->DP |= DP_COLOR_RANGE_16_235;
sys/dev/drm/i915/intel_dp.c
2201
intel_dp->DP |= DP_SYNC_HS_HIGH;
sys/dev/drm/i915/intel_dp.c
2203
intel_dp->DP |= DP_SYNC_VS_HIGH;
sys/dev/drm/i915/intel_dp.c
2204
intel_dp->DP |= DP_LINK_TRAIN_OFF;
sys/dev/drm/i915/intel_dp.c
2206
if (drm_dp_enhanced_frame_cap(intel_dp->dpcd))
sys/dev/drm/i915/intel_dp.c
2207
intel_dp->DP |= DP_ENHANCED_FRAMING;
sys/dev/drm/i915/intel_dp.c
2210
intel_dp->DP |= DP_PIPE_SEL_CHV(crtc->pipe);
sys/dev/drm/i915/intel_dp.c
2212
intel_dp->DP |= DP_PIPE_SEL(crtc->pipe);
sys/dev/drm/i915/intel_dp.c
2225
static void intel_pps_verify_state(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_dp.c
2227
static void wait_panel_status(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
2231
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2236
intel_pps_verify_state(intel_dp);
sys/dev/drm/i915/intel_dp.c
2238
pp_stat_reg = _pp_stat_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2239
pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2256
static void wait_panel_on(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2259
wait_panel_status(intel_dp, IDLE_ON_MASK, IDLE_ON_VALUE);
sys/dev/drm/i915/intel_dp.c
226
void icl_program_mg_dp_mode(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2262
static void wait_panel_off(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2265
wait_panel_status(intel_dp, IDLE_OFF_MASK, IDLE_OFF_VALUE);
sys/dev/drm/i915/intel_dp.c
2268
static void wait_panel_power_cycle(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2278
panel_power_off_duration = ktime_ms_delta(panel_power_on_time, intel_dp->panel_power_off_time);
sys/dev/drm/i915/intel_dp.c
228
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
2282
if (panel_power_off_duration < (s64)intel_dp->panel_power_cycle_delay)
sys/dev/drm/i915/intel_dp.c
2284
intel_dp->panel_power_cycle_delay - panel_power_off_duration);
sys/dev/drm/i915/intel_dp.c
2286
wait_panel_status(intel_dp, IDLE_CYCLE_MASK, IDLE_CYCLE_VALUE);
sys/dev/drm/i915/intel_dp.c
2289
static void wait_backlight_on(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
229
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2291
wait_remaining_ms_from_jiffies(intel_dp->last_power_on,
sys/dev/drm/i915/intel_dp.c
2292
intel_dp->backlight_on_delay);
sys/dev/drm/i915/intel_dp.c
2295
static void edp_wait_backlight_off(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2297
wait_remaining_ms_from_jiffies(intel_dp->last_backlight_off,
sys/dev/drm/i915/intel_dp.c
2298
intel_dp->backlight_off_delay);
sys/dev/drm/i915/intel_dp.c
2305
static u32 ironlake_get_pp_control(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2307
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2312
control = I915_READ(_pp_ctrl_reg(intel_dp));
sys/dev/drm/i915/intel_dp.c
2326
static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2328
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2329
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
2332
bool need_to_disable = !intel_dp->want_panel_vdd;
sys/dev/drm/i915/intel_dp.c
2336
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2339
cancel_delayed_work(&intel_dp->panel_vdd_work);
sys/dev/drm/i915/intel_dp.c
2340
intel_dp->want_panel_vdd = true;
sys/dev/drm/i915/intel_dp.c
2342
if (edp_have_panel_vdd(intel_dp))
sys/dev/drm/i915/intel_dp.c
2345
intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
2350
if (!edp_have_panel_power(intel_dp))
sys/dev/drm/i915/intel_dp.c
2351
wait_panel_power_cycle(intel_dp);
sys/dev/drm/i915/intel_dp.c
2353
pp = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
2356
pp_stat_reg = _pp_stat_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2357
pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2366
if (!edp_have_panel_power(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
2369
msleep(intel_dp->panel_power_up_delay);
sys/dev/drm/i915/intel_dp.c
2382
void intel_edp_panel_vdd_on(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2386
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2389
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2390
vdd = edp_panel_vdd_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
2391
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2394
port_name(dp_to_dig_port(intel_dp)->base.port));
sys/dev/drm/i915/intel_dp.c
2397
static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2399
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2401
dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
2407
WARN_ON(intel_dp->want_panel_vdd);
sys/dev/drm/i915/intel_dp.c
2409
if (!edp_have_panel_vdd(intel_dp))
sys/dev/drm/i915/intel_dp.c
2415
pp = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
2418
pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2419
pp_stat_reg = _pp_stat_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2429
intel_dp->panel_power_off_time = ktime_get_boottime();
sys/dev/drm/i915/intel_dp.c
2431
intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
2436
struct intel_dp *intel_dp = container_of(to_delayed_work(__work),
sys/dev/drm/i915/intel_dp.c
2437
struct intel_dp, panel_vdd_work);
sys/dev/drm/i915/intel_dp.c
2439
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2440
if (!intel_dp->want_panel_vdd)
sys/dev/drm/i915/intel_dp.c
2441
edp_panel_vdd_off_sync(intel_dp);
sys/dev/drm/i915/intel_dp.c
2442
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2445
static void edp_panel_vdd_schedule_off(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2454
delay = msecs_to_jiffies(intel_dp->panel_power_cycle_delay * 5);
sys/dev/drm/i915/intel_dp.c
2455
schedule_delayed_work(&intel_dp->panel_vdd_work, delay);
sys/dev/drm/i915/intel_dp.c
2463
static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync)
sys/dev/drm/i915/intel_dp.c
2465
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2469
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2472
I915_STATE_WARN(!intel_dp->want_panel_vdd, "eDP port %c VDD not forced on",
sys/dev/drm/i915/intel_dp.c
2473
port_name(dp_to_dig_port(intel_dp)->base.port));
sys/dev/drm/i915/intel_dp.c
2475
intel_dp->want_panel_vdd = false;
sys/dev/drm/i915/intel_dp.c
2478
edp_panel_vdd_off_sync(intel_dp);
sys/dev/drm/i915/intel_dp.c
2480
edp_panel_vdd_schedule_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
2483
static void edp_panel_on(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2485
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2491
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2495
port_name(dp_to_dig_port(intel_dp)->base.port));
sys/dev/drm/i915/intel_dp.c
2497
if (WARN(edp_have_panel_power(intel_dp),
sys/dev/drm/i915/intel_dp.c
2499
port_name(dp_to_dig_port(intel_dp)->base.port)))
sys/dev/drm/i915/intel_dp.c
2502
wait_panel_power_cycle(intel_dp);
sys/dev/drm/i915/intel_dp.c
2504
pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2505
pp = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
2520
wait_panel_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
2521
intel_dp->last_power_on = jiffies;
sys/dev/drm/i915/intel_dp.c
2530
void intel_edp_panel_on(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2532
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2535
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2536
edp_panel_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
2537
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2541
static void edp_panel_off(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2543
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2549
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2553
port_name(dp_to_dig_port(intel_dp)->base.port));
sys/dev/drm/i915/intel_dp.c
2555
WARN(!intel_dp->want_panel_vdd, "Need eDP port %c VDD to turn off panel\n",
sys/dev/drm/i915/intel_dp.c
2556
port_name(dp_to_dig_port(intel_dp)->base.port));
sys/dev/drm/i915/intel_dp.c
2558
pp = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
2564
pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2566
intel_dp->want_panel_vdd = false;
sys/dev/drm/i915/intel_dp.c
2571
wait_panel_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
2572
intel_dp->panel_power_off_time = ktime_get_boottime();
sys/dev/drm/i915/intel_dp.c
2575
intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
2578
void intel_edp_panel_off(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2580
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2583
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2584
edp_panel_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
2585
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2589
static void _intel_edp_backlight_on(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2591
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2601
wait_backlight_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
2603
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2605
pp = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
2608
pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2613
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2620
struct intel_dp *intel_dp = enc_to_intel_dp(conn_state->best_encoder);
sys/dev/drm/i915/intel_dp.c
2622
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2628
_intel_edp_backlight_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
2632
static void _intel_edp_backlight_off(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2634
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
2638
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2641
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2643
pp = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
2646
pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
sys/dev/drm/i915/intel_dp.c
2651
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2653
intel_dp->last_backlight_off = jiffies;
sys/dev/drm/i915/intel_dp.c
2654
edp_wait_backlight_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
2660
struct intel_dp *intel_dp = enc_to_intel_dp(old_conn_state->best_encoder);
sys/dev/drm/i915/intel_dp.c
2662
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
2667
_intel_edp_backlight_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
2678
struct intel_dp *intel_dp = intel_attached_dp(&connector->base);
sys/dev/drm/i915/intel_dp.c
2681
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2682
is_enabled = ironlake_get_pp_control(intel_dp) & EDP_BLC_ENABLE;
sys/dev/drm/i915/intel_dp.c
2683
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
2692
_intel_edp_backlight_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
2694
_intel_edp_backlight_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
2697
static void assert_dp_port(struct intel_dp *intel_dp, bool state)
sys/dev/drm/i915/intel_dp.c
2699
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
2701
bool cur_state = I915_READ(intel_dp->output_reg) & DP_PORT_EN;
sys/dev/drm/i915/intel_dp.c
2721
static void ironlake_edp_pll_on(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
2728
assert_dp_port_disabled(intel_dp);
sys/dev/drm/i915/intel_dp.c
2734
intel_dp->DP &= ~DP_PLL_FREQ_MASK;
sys/dev/drm/i915/intel_dp.c
2737
intel_dp->DP |= DP_PLL_FREQ_162MHZ;
sys/dev/drm/i915/intel_dp.c
2739
intel_dp->DP |= DP_PLL_FREQ_270MHZ;
sys/dev/drm/i915/intel_dp.c
2741
I915_WRITE(DP_A, intel_dp->DP);
sys/dev/drm/i915/intel_dp.c
2754
intel_dp->DP |= DP_PLL_ENABLE;
sys/dev/drm/i915/intel_dp.c
2756
I915_WRITE(DP_A, intel_dp->DP);
sys/dev/drm/i915/intel_dp.c
2761
static void ironlake_edp_pll_off(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
2768
assert_dp_port_disabled(intel_dp);
sys/dev/drm/i915/intel_dp.c
2773
intel_dp->DP &= ~DP_PLL_ENABLE;
sys/dev/drm/i915/intel_dp.c
2775
I915_WRITE(DP_A, intel_dp->DP);
sys/dev/drm/i915/intel_dp.c
2780
static bool downstream_hpd_needs_d0(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
2790
return intel_dp->dpcd[DP_DPCD_REV] == 0x11 &&
sys/dev/drm/i915/intel_dp.c
2791
intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT &&
sys/dev/drm/i915/intel_dp.c
2792
intel_dp->downstream_ports[0] & DP_DS_PORT_HPD;
sys/dev/drm/i915/intel_dp.c
2796
void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
sys/dev/drm/i915/intel_dp.c
2801
if (intel_dp->dpcd[DP_DPCD_REV] < 0x11)
sys/dev/drm/i915/intel_dp.c
2805
if (downstream_hpd_needs_d0(intel_dp))
sys/dev/drm/i915/intel_dp.c
2808
ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
sys/dev/drm/i915/intel_dp.c
2811
struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
sys/dev/drm/i915/intel_dp.c
2818
ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
sys/dev/drm/i915/intel_dp.c
2884
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
2891
ret = intel_dp_port_enabled(dev_priv, intel_dp->output_reg,
sys/dev/drm/i915/intel_dp.c
2903
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
2913
tmp = I915_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
2962
if (intel_dp_is_edp(intel_dp) && dev_priv->vbt.edp.bpp &&
sys/dev/drm/i915/intel_dp.c
2987
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
2989
intel_dp->link_trained = false;
sys/dev/drm/i915/intel_dp.c
2997
intel_edp_panel_vdd_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
2999
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
sys/dev/drm/i915/intel_dp.c
3000
intel_edp_panel_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
3021
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
3034
ironlake_edp_pll_off(intel_dp, old_crtc_state);
sys/dev/drm/i915/intel_dp.c
3061
_intel_dp_set_link_train(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
3065
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
3066
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
3068
uint8_t train_pat_mask = drm_dp_training_pattern_mask(intel_dp->dpcd);
sys/dev/drm/i915/intel_dp.c
3144
static void intel_dp_enable_port(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
3147
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
3151
intel_dp_program_link_training_pattern(intel_dp, DP_TRAINING_PATTERN_1);
sys/dev/drm/i915/intel_dp.c
3159
intel_dp->DP |= DP_PORT_EN;
sys/dev/drm/i915/intel_dp.c
3161
intel_dp->DP |= DP_AUDIO_OUTPUT_ENABLE;
sys/dev/drm/i915/intel_dp.c
3163
I915_WRITE(intel_dp->output_reg, intel_dp->DP);
sys/dev/drm/i915/intel_dp.c
3164
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
3172
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
3174
uint32_t dp_reg = I915_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
3180
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
3185
intel_dp_enable_port(intel_dp, pipe_config);
sys/dev/drm/i915/intel_dp.c
3187
edp_panel_vdd_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
3188
edp_panel_on(intel_dp);
sys/dev/drm/i915/intel_dp.c
3189
edp_panel_vdd_off(intel_dp, true);
sys/dev/drm/i915/intel_dp.c
3191
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
3199
vlv_wait_port_ready(dev_priv, dp_to_dig_port(intel_dp),
sys/dev/drm/i915/intel_dp.c
3203
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
sys/dev/drm/i915/intel_dp.c
3204
intel_dp_start_link_train(intel_dp);
sys/dev/drm/i915/intel_dp.c
3205
intel_dp_stop_link_train(intel_dp);
sys/dev/drm/i915/intel_dp.c
3233
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
3240
ironlake_edp_pll_on(intel_dp, pipe_config);
sys/dev/drm/i915/intel_dp.c
3243
static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3245
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
3247
enum i915_pipe pipe = intel_dp->pps_pipe;
sys/dev/drm/i915/intel_dp.c
3250
WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
sys/dev/drm/i915/intel_dp.c
3255
edp_panel_vdd_off_sync(intel_dp);
sys/dev/drm/i915/intel_dp.c
3271
intel_dp->pps_pipe = INVALID_PIPE;
sys/dev/drm/i915/intel_dp.c
3282
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
3285
WARN(intel_dp->active_pipe == pipe,
sys/dev/drm/i915/intel_dp.c
3289
if (intel_dp->pps_pipe != pipe)
sys/dev/drm/i915/intel_dp.c
3296
vlv_detach_power_sequencer(intel_dp);
sys/dev/drm/i915/intel_dp.c
3304
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
3309
WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
sys/dev/drm/i915/intel_dp.c
3311
if (intel_dp->pps_pipe != INVALID_PIPE &&
sys/dev/drm/i915/intel_dp.c
3312
intel_dp->pps_pipe != crtc->pipe) {
sys/dev/drm/i915/intel_dp.c
3318
vlv_detach_power_sequencer(intel_dp);
sys/dev/drm/i915/intel_dp.c
3327
intel_dp->active_pipe = crtc->pipe;
sys/dev/drm/i915/intel_dp.c
3329
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
3333
intel_dp->pps_pipe = crtc->pipe;
sys/dev/drm/i915/intel_dp.c
3336
pipe_name(intel_dp->pps_pipe), port_name(encoder->port));
sys/dev/drm/i915/intel_dp.c
3339
intel_dp_init_panel_power_sequencer(intel_dp);
sys/dev/drm/i915/intel_dp.c
3340
intel_dp_init_panel_power_sequencer_registers(intel_dp, true);
sys/dev/drm/i915/intel_dp.c
3394
intel_dp_get_link_status(struct intel_dp *intel_dp, uint8_t link_status[DP_LINK_STATUS_SIZE])
sys/dev/drm/i915/intel_dp.c
3396
return drm_dp_dpcd_read(&intel_dp->aux, DP_LANE0_1_STATUS, link_status,
sys/dev/drm/i915/intel_dp.c
3402
intel_dp_voltage_max(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3404
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
3405
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
3421
intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, uint8_t voltage_swing)
sys/dev/drm/i915/intel_dp.c
3423
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
3424
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
3466
static uint32_t vlv_signal_levels(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3468
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
3471
uint8_t train_set = intel_dp->train_set[0];
sys/dev/drm/i915/intel_dp.c
3552
static uint32_t chv_signal_levels(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3554
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
3557
uint8_t train_set = intel_dp->train_set[0];
sys/dev/drm/i915/intel_dp.c
371
intel_dp_downstream_max_dotclock(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
373
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
3733
intel_dp_set_signal_levels(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3735
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
3736
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
3739
uint8_t train_set = intel_dp->train_set[0];
sys/dev/drm/i915/intel_dp.c
3742
signal_levels = bxt_signal_levels(intel_dp);
sys/dev/drm/i915/intel_dp.c
3744
signal_levels = ddi_signal_levels(intel_dp);
sys/dev/drm/i915/intel_dp.c
3747
signal_levels = chv_signal_levels(intel_dp);
sys/dev/drm/i915/intel_dp.c
3749
signal_levels = vlv_signal_levels(intel_dp);
sys/dev/drm/i915/intel_dp.c
3770
intel_dp->DP = (intel_dp->DP & ~mask) | signal_levels;
sys/dev/drm/i915/intel_dp.c
3772
I915_WRITE(intel_dp->output_reg, intel_dp->DP);
sys/dev/drm/i915/intel_dp.c
3773
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
3777
intel_dp_program_link_training_pattern(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
3780
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
3784
_intel_dp_set_link_train(intel_dp, &intel_dp->DP, dp_train_pat);
sys/dev/drm/i915/intel_dp.c
3786
I915_WRITE(intel_dp->output_reg, intel_dp->DP);
sys/dev/drm/i915/intel_dp.c
3787
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
379
int type = intel_dp->downstream_ports[0] & DP_DS_PORT_TYPE_MASK;
sys/dev/drm/i915/intel_dp.c
3790
void intel_dp_set_idle_link_train(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3792
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
3793
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
3827
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
3830
uint32_t DP = intel_dp->DP;
sys/dev/drm/i915/intel_dp.c
3835
if (WARN_ON((I915_READ(intel_dp->output_reg) & DP_PORT_EN) == 0))
sys/dev/drm/i915/intel_dp.c
384
ds_max_dotclk = drm_dp_downstream_max_clock(intel_dp->dpcd,
sys/dev/drm/i915/intel_dp.c
3848
I915_WRITE(intel_dp->output_reg, DP);
sys/dev/drm/i915/intel_dp.c
3849
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
385
intel_dp->downstream_ports);
sys/dev/drm/i915/intel_dp.c
3852
I915_WRITE(intel_dp->output_reg, DP);
sys/dev/drm/i915/intel_dp.c
3853
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
3872
I915_WRITE(intel_dp->output_reg, DP);
sys/dev/drm/i915/intel_dp.c
3873
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
3876
I915_WRITE(intel_dp->output_reg, DP);
sys/dev/drm/i915/intel_dp.c
3877
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
3884
msleep(intel_dp->panel_power_down_delay);
sys/dev/drm/i915/intel_dp.c
3886
intel_dp->DP = DP;
sys/dev/drm/i915/intel_dp.c
3889
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
3890
intel_dp->active_pipe = INVALID_PIPE;
sys/dev/drm/i915/intel_dp.c
3891
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
3896
intel_dp_read_dpcd(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3898
if (drm_dp_dpcd_read(&intel_dp->aux, 0x000, intel_dp->dpcd,
sys/dev/drm/i915/intel_dp.c
3899
sizeof(intel_dp->dpcd)) < 0)
sys/dev/drm/i915/intel_dp.c
3902
DRM_DEBUG_KMS("DPCD: %*ph\n", (int) sizeof(intel_dp->dpcd), intel_dp->dpcd);
sys/dev/drm/i915/intel_dp.c
3904
return intel_dp->dpcd[DP_DPCD_REV] != 0;
sys/dev/drm/i915/intel_dp.c
3908
intel_edp_init_dpcd(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3911
to_i915(dp_to_dig_port(intel_dp)->base.base.dev);
sys/dev/drm/i915/intel_dp.c
3914
WARN_ON(intel_dp->dpcd[DP_DPCD_REV] != 0);
sys/dev/drm/i915/intel_dp.c
3916
if (!intel_dp_read_dpcd(intel_dp))
sys/dev/drm/i915/intel_dp.c
3919
drm_dp_read_desc(&intel_dp->aux, &intel_dp->desc,
sys/dev/drm/i915/intel_dp.c
3920
drm_dp_is_branch(intel_dp->dpcd));
sys/dev/drm/i915/intel_dp.c
3922
if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11)
sys/dev/drm/i915/intel_dp.c
3923
dev_priv->no_aux_handshake = intel_dp->dpcd[DP_MAX_DOWNSPREAD] &
sys/dev/drm/i915/intel_dp.c
393
static int cnl_max_source_rate(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3935
if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV,
sys/dev/drm/i915/intel_dp.c
3936
intel_dp->edp_dpcd, sizeof(intel_dp->edp_dpcd)) ==
sys/dev/drm/i915/intel_dp.c
3937
sizeof(intel_dp->edp_dpcd))
sys/dev/drm/i915/intel_dp.c
3938
DRM_DEBUG_KMS("eDP DPCD: %*ph\n", (int) sizeof(intel_dp->edp_dpcd),
sys/dev/drm/i915/intel_dp.c
3939
intel_dp->edp_dpcd);
sys/dev/drm/i915/intel_dp.c
3945
intel_psr_init_dpcd(intel_dp);
sys/dev/drm/i915/intel_dp.c
3948
if (intel_dp->edp_dpcd[0] >= DP_EDP_14) {
sys/dev/drm/i915/intel_dp.c
395
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
3952
drm_dp_dpcd_read(&intel_dp->aux, DP_SUPPORTED_LINK_RATES,
sys/dev/drm/i915/intel_dp.c
3967
intel_dp->sink_rates[i] = (val * 200) / 10;
sys/dev/drm/i915/intel_dp.c
3969
intel_dp->num_sink_rates = i;
sys/dev/drm/i915/intel_dp.c
3976
if (intel_dp->num_sink_rates)
sys/dev/drm/i915/intel_dp.c
3977
intel_dp->use_rate_select = true;
sys/dev/drm/i915/intel_dp.c
3979
intel_dp_set_sink_rates(intel_dp);
sys/dev/drm/i915/intel_dp.c
3981
intel_dp_set_common_rates(intel_dp);
sys/dev/drm/i915/intel_dp.c
3988
intel_dp_get_dpcd(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
3992
if (!intel_dp_read_dpcd(intel_dp))
sys/dev/drm/i915/intel_dp.c
3996
if (!intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
3997
intel_dp_set_sink_rates(intel_dp);
sys/dev/drm/i915/intel_dp.c
3998
intel_dp_set_common_rates(intel_dp);
sys/dev/drm/i915/intel_dp.c
4001
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_SINK_COUNT, &sink_count) <= 0)
sys/dev/drm/i915/intel_dp.c
4009
intel_dp->sink_count = DP_GET_SINK_COUNT(sink_count);
sys/dev/drm/i915/intel_dp.c
4018
if (!intel_dp_is_edp(intel_dp) && !intel_dp->sink_count)
sys/dev/drm/i915/intel_dp.c
4021
if (!drm_dp_is_branch(intel_dp->dpcd))
sys/dev/drm/i915/intel_dp.c
4024
if (intel_dp->dpcd[DP_DPCD_REV] == 0x10)
sys/dev/drm/i915/intel_dp.c
4027
if (drm_dp_dpcd_read(&intel_dp->aux, DP_DOWNSTREAM_PORT_0,
sys/dev/drm/i915/intel_dp.c
4028
intel_dp->downstream_ports,
sys/dev/drm/i915/intel_dp.c
4036
intel_dp_can_mst(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4043
if (!intel_dp->can_mst)
sys/dev/drm/i915/intel_dp.c
4046
if (intel_dp->dpcd[DP_DPCD_REV] < 0x12)
sys/dev/drm/i915/intel_dp.c
4049
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_MSTM_CAP, &mstm_cap) != 1)
sys/dev/drm/i915/intel_dp.c
4056
intel_dp_configure_mst(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4061
if (!intel_dp->can_mst)
sys/dev/drm/i915/intel_dp.c
4064
intel_dp->is_mst = intel_dp_can_mst(intel_dp);
sys/dev/drm/i915/intel_dp.c
4066
if (intel_dp->is_mst)
sys/dev/drm/i915/intel_dp.c
4071
drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
sys/dev/drm/i915/intel_dp.c
4072
intel_dp->is_mst);
sys/dev/drm/i915/intel_dp.c
4076
intel_dp_get_sink_irq(struct intel_dp *intel_dp, u8 *sink_irq_vector)
sys/dev/drm/i915/intel_dp.c
4078
return drm_dp_dpcd_readb(&intel_dp->aux, DP_DEVICE_SERVICE_IRQ_VECTOR,
sys/dev/drm/i915/intel_dp.c
4083
intel_dp_get_sink_irq_esi(struct intel_dp *intel_dp, u8 *sink_irq_vector)
sys/dev/drm/i915/intel_dp.c
4085
return drm_dp_dpcd_read(&intel_dp->aux, DP_SINK_COUNT_ESI,
sys/dev/drm/i915/intel_dp.c
4090
static uint8_t intel_dp_autotest_link_training(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4099
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_LANE_COUNT,
sys/dev/drm/i915/intel_dp.c
4108
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_LINK_RATE,
sys/dev/drm/i915/intel_dp.c
4117
if (!intel_dp_link_params_valid(intel_dp, test_link_rate,
sys/dev/drm/i915/intel_dp.c
4121
intel_dp->compliance.test_lane_count = test_lane_count;
sys/dev/drm/i915/intel_dp.c
4122
intel_dp->compliance.test_link_rate = test_link_rate;
sys/dev/drm/i915/intel_dp.c
4127
static uint8_t intel_dp_autotest_video_pattern(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4135
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_PATTERN,
sys/dev/drm/i915/intel_dp.c
4144
status = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_H_WIDTH_HI,
sys/dev/drm/i915/intel_dp.c
4151
status = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_V_HEIGHT_HI,
sys/dev/drm/i915/intel_dp.c
4158
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_MISC0,
sys/dev/drm/i915/intel_dp.c
416
static int icl_max_source_rate(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4170
intel_dp->compliance.test_data.bpc = 6;
sys/dev/drm/i915/intel_dp.c
4173
intel_dp->compliance.test_data.bpc = 8;
sys/dev/drm/i915/intel_dp.c
4179
intel_dp->compliance.test_data.video_pattern = test_pattern;
sys/dev/drm/i915/intel_dp.c
418
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
4180
intel_dp->compliance.test_data.hdisplay = be16_to_cpu(h_width);
sys/dev/drm/i915/intel_dp.c
4181
intel_dp->compliance.test_data.vdisplay = be16_to_cpu(v_height);
sys/dev/drm/i915/intel_dp.c
4183
intel_dp->compliance.test_active = 1;
sys/dev/drm/i915/intel_dp.c
4188
static uint8_t intel_dp_autotest_edid(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4191
struct intel_connector *intel_connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp.c
4196
intel_dp->aux.i2c_defer_count > 6) {
sys/dev/drm/i915/intel_dp.c
4204
if (intel_dp->aux.i2c_nack_count > 0 ||
sys/dev/drm/i915/intel_dp.c
4205
intel_dp->aux.i2c_defer_count > 0)
sys/dev/drm/i915/intel_dp.c
4207
intel_dp->aux.i2c_nack_count,
sys/dev/drm/i915/intel_dp.c
4208
intel_dp->aux.i2c_defer_count);
sys/dev/drm/i915/intel_dp.c
4209
intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_FAILSAFE;
sys/dev/drm/i915/intel_dp.c
4218
if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_EDID_CHECKSUM,
sys/dev/drm/i915/intel_dp.c
4223
intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_PREFERRED;
sys/dev/drm/i915/intel_dp.c
4227
intel_dp->compliance.test_active = 1;
sys/dev/drm/i915/intel_dp.c
4232
static uint8_t intel_dp_autotest_phy_pattern(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4238
static void intel_dp_handle_test_request(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4244
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_REQUEST, &request);
sys/dev/drm/i915/intel_dp.c
4253
response = intel_dp_autotest_link_training(intel_dp);
sys/dev/drm/i915/intel_dp.c
4257
response = intel_dp_autotest_video_pattern(intel_dp);
sys/dev/drm/i915/intel_dp.c
4261
response = intel_dp_autotest_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
4265
response = intel_dp_autotest_phy_pattern(intel_dp);
sys/dev/drm/i915/intel_dp.c
4273
intel_dp->compliance.test_type = request;
sys/dev/drm/i915/intel_dp.c
4276
status = drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_RESPONSE, response);
sys/dev/drm/i915/intel_dp.c
428
intel_dp_set_source_rates(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4282
intel_dp_check_mst_status(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4286
if (intel_dp->is_mst) {
sys/dev/drm/i915/intel_dp.c
4292
WARN_ON_ONCE(intel_dp->active_mst_links < 0);
sys/dev/drm/i915/intel_dp.c
4293
bret = intel_dp_get_sink_irq_esi(intel_dp, esi);
sys/dev/drm/i915/intel_dp.c
4298
if (intel_dp->active_mst_links > 0 &&
sys/dev/drm/i915/intel_dp.c
4299
!drm_dp_channel_eq_ok(&esi[10], intel_dp->lane_count)) {
sys/dev/drm/i915/intel_dp.c
4301
intel_dp_start_link_train(intel_dp);
sys/dev/drm/i915/intel_dp.c
4302
intel_dp_stop_link_train(intel_dp);
sys/dev/drm/i915/intel_dp.c
4306
ret = drm_dp_mst_hpd_irq(&intel_dp->mst_mgr, esi, &handled);
sys/dev/drm/i915/intel_dp.c
4311
wret = drm_dp_dpcd_write(&intel_dp->aux,
sys/dev/drm/i915/intel_dp.c
4319
bret = intel_dp_get_sink_irq_esi(intel_dp, esi);
sys/dev/drm/i915/intel_dp.c
4329
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
4331
intel_dp->is_mst = false;
sys/dev/drm/i915/intel_dp.c
4332
drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, intel_dp->is_mst);
sys/dev/drm/i915/intel_dp.c
4341
intel_dp_needs_link_retrain(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4345
if (!intel_dp->link_trained)
sys/dev/drm/i915/intel_dp.c
4348
if (!intel_dp_get_link_status(intel_dp, link_status))
sys/dev/drm/i915/intel_dp.c
4355
if (!intel_dp_link_params_valid(intel_dp, intel_dp->link_rate,
sys/dev/drm/i915/intel_dp.c
4356
intel_dp->lane_count))
sys/dev/drm/i915/intel_dp.c
4360
return !drm_dp_channel_eq_ok(link_status, intel_dp->lane_count);
sys/dev/drm/i915/intel_dp.c
4367
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
4368
struct intel_connector *connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp.c
4405
if (!intel_dp_needs_link_retrain(intel_dp))
sys/dev/drm/i915/intel_dp.c
4414
intel_dp_start_link_train(intel_dp);
sys/dev/drm/i915/intel_dp.c
4415
intel_dp_stop_link_train(intel_dp);
sys/dev/drm/i915/intel_dp.c
446
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
4483
intel_dp_short_pulse(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4485
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
4487
u8 old_sink_count = intel_dp->sink_count;
sys/dev/drm/i915/intel_dp.c
4494
memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance));
sys/dev/drm/i915/intel_dp.c
4502
ret = intel_dp_get_dpcd(intel_dp);
sys/dev/drm/i915/intel_dp.c
4504
if ((old_sink_count != intel_dp->sink_count) || !ret) {
sys/dev/drm/i915/intel_dp.c
4510
if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 &&
sys/dev/drm/i915/intel_dp.c
4511
intel_dp_get_sink_irq(intel_dp, &sink_irq_vector) &&
sys/dev/drm/i915/intel_dp.c
4514
drm_dp_dpcd_writeb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp.c
4519
intel_dp_handle_test_request(intel_dp);
sys/dev/drm/i915/intel_dp.c
4525
drm_dp_cec_irq(&intel_dp->aux);
sys/dev/drm/i915/intel_dp.c
4528
if (intel_dp_needs_link_retrain(intel_dp))
sys/dev/drm/i915/intel_dp.c
4531
intel_psr_short_pulse(intel_dp);
sys/dev/drm/i915/intel_dp.c
4533
if (intel_dp->compliance.test_type == DP_TEST_LINK_TRAINING) {
sys/dev/drm/i915/intel_dp.c
454
WARN_ON(intel_dp->source_rates || intel_dp->num_source_rates);
sys/dev/drm/i915/intel_dp.c
4544
intel_dp_detect_dpcd(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
4546
struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
sys/dev/drm/i915/intel_dp.c
4547
uint8_t *dpcd = intel_dp->dpcd;
sys/dev/drm/i915/intel_dp.c
4553
if (!intel_dp_get_dpcd(intel_dp))
sys/dev/drm/i915/intel_dp.c
4556
if (intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
4564
if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 &&
sys/dev/drm/i915/intel_dp.c
4565
intel_dp->downstream_ports[0] & DP_DS_PORT_HPD) {
sys/dev/drm/i915/intel_dp.c
4567
return intel_dp->sink_count ?
sys/dev/drm/i915/intel_dp.c
4571
if (intel_dp_can_mst(intel_dp))
sys/dev/drm/i915/intel_dp.c
4575
if (drm_probe_ddc(&intel_dp->aux.ddc))
sys/dev/drm/i915/intel_dp.c
4579
if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11) {
sys/dev/drm/i915/intel_dp.c
4580
type = intel_dp->downstream_ports[0] & DP_DS_PORT_TYPE_MASK;
sys/dev/drm/i915/intel_dp.c
4585
type = intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] &
sys/dev/drm/i915/intel_dp.c
4598
edp_detect(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
460
max_rate = cnl_max_source_rate(intel_dp);
sys/dev/drm/i915/intel_dp.c
462
max_rate = icl_max_source_rate(intel_dp);
sys/dev/drm/i915/intel_dp.c
486
intel_dp->source_rates = source_rates;
sys/dev/drm/i915/intel_dp.c
487
intel_dp->num_source_rates = size;
sys/dev/drm/i915/intel_dp.c
5006
intel_dp_get_edid(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5008
struct intel_connector *intel_connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp.c
5019
&intel_dp->aux.ddc);
sys/dev/drm/i915/intel_dp.c
5023
intel_dp_set_edid(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5025
struct intel_connector *intel_connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp.c
5028
intel_dp_unset_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
5029
edid = intel_dp_get_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
5032
intel_dp->has_audio = drm_detect_monitor_audio(edid);
sys/dev/drm/i915/intel_dp.c
5033
drm_dp_cec_set_edid(&intel_dp->aux, edid);
sys/dev/drm/i915/intel_dp.c
5037
intel_dp_unset_edid(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5039
struct intel_connector *intel_connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp.c
5041
drm_dp_cec_unset_edid(&intel_dp->aux);
sys/dev/drm/i915/intel_dp.c
5045
intel_dp->has_audio = false;
sys/dev/drm/i915/intel_dp.c
5053
struct intel_dp *intel_dp = intel_attached_dp(&connector->base);
sys/dev/drm/i915/intel_dp.c
5059
intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
5062
if (intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
5063
status = edp_detect(intel_dp);
sys/dev/drm/i915/intel_dp.c
5064
else if (intel_digital_port_connected(&dp_to_dig_port(intel_dp)->base))
sys/dev/drm/i915/intel_dp.c
5065
status = intel_dp_detect_dpcd(intel_dp);
sys/dev/drm/i915/intel_dp.c
5070
memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance));
sys/dev/drm/i915/intel_dp.c
5072
if (intel_dp->is_mst) {
sys/dev/drm/i915/intel_dp.c
5074
intel_dp->is_mst,
sys/dev/drm/i915/intel_dp.c
5075
intel_dp->mst_mgr.mst_state);
sys/dev/drm/i915/intel_dp.c
5076
intel_dp->is_mst = false;
sys/dev/drm/i915/intel_dp.c
5077
drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
sys/dev/drm/i915/intel_dp.c
5078
intel_dp->is_mst);
sys/dev/drm/i915/intel_dp.c
5084
if (intel_dp->reset_link_params) {
sys/dev/drm/i915/intel_dp.c
5086
intel_dp->max_link_lane_count = intel_dp_max_common_lane_count(intel_dp);
sys/dev/drm/i915/intel_dp.c
5089
intel_dp->max_link_rate = intel_dp_max_common_rate(intel_dp);
sys/dev/drm/i915/intel_dp.c
5091
intel_dp->reset_link_params = false;
sys/dev/drm/i915/intel_dp.c
5094
intel_dp_print_rates(intel_dp);
sys/dev/drm/i915/intel_dp.c
5096
drm_dp_read_desc(&intel_dp->aux, &intel_dp->desc,
sys/dev/drm/i915/intel_dp.c
5097
drm_dp_is_branch(intel_dp->dpcd));
sys/dev/drm/i915/intel_dp.c
5099
intel_dp_configure_mst(intel_dp);
sys/dev/drm/i915/intel_dp.c
5101
if (intel_dp->is_mst) {
sys/dev/drm/i915/intel_dp.c
5115
if (!intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
5116
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
5126
intel_dp->aux.i2c_nack_count = 0;
sys/dev/drm/i915/intel_dp.c
5127
intel_dp->aux.i2c_defer_count = 0;
sys/dev/drm/i915/intel_dp.c
5129
intel_dp_set_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
5130
if (intel_dp_is_edp(intel_dp) || connector->detect_edid)
sys/dev/drm/i915/intel_dp.c
5132
intel_dp->detect_done = true;
sys/dev/drm/i915/intel_dp.c
5135
if (intel_dp->dpcd[DP_DPCD_REV] >= 0x11 &&
sys/dev/drm/i915/intel_dp.c
5136
intel_dp_get_sink_irq(intel_dp, &sink_irq_vector) &&
sys/dev/drm/i915/intel_dp.c
5139
drm_dp_dpcd_writeb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp.c
5144
intel_dp_handle_test_request(intel_dp);
sys/dev/drm/i915/intel_dp.c
5150
if (status != connector_status_connected && !intel_dp->is_mst)
sys/dev/drm/i915/intel_dp.c
5151
intel_dp_unset_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
5153
intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
5162
struct intel_dp *intel_dp = intel_attached_dp(connector);
sys/dev/drm/i915/intel_dp.c
5169
if (!intel_dp->detect_done) {
sys/dev/drm/i915/intel_dp.c
5180
status = intel_dp_long_pulse(intel_dp->attached_connector, ctx);
sys/dev/drm/i915/intel_dp.c
5183
intel_dp->detect_done = false;
sys/dev/drm/i915/intel_dp.c
5191
struct intel_dp *intel_dp = intel_attached_dp(connector);
sys/dev/drm/i915/intel_dp.c
5192
struct intel_encoder *intel_encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
5197
intel_dp_unset_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
5202
intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
5204
intel_dp_set_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
5206
intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
5240
struct intel_dp *intel_dp = intel_attached_dp(connector);
sys/dev/drm/i915/intel_dp.c
525
static void intel_dp_set_common_rates(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5251
intel_dp->aux.name, connector->kdev->kobj.name);
sys/dev/drm/i915/intel_dp.c
5253
intel_dp->aux.dev = connector->kdev;
sys/dev/drm/i915/intel_dp.c
5254
ret = drm_dp_aux_register(&intel_dp->aux);
sys/dev/drm/i915/intel_dp.c
5256
drm_dp_cec_register_connector(&intel_dp->aux,
sys/dev/drm/i915/intel_dp.c
5264
struct intel_dp *intel_dp = intel_attached_dp(connector);
sys/dev/drm/i915/intel_dp.c
5266
drm_dp_cec_unregister_connector(&intel_dp->aux);
sys/dev/drm/i915/intel_dp.c
5267
drm_dp_aux_unregister(&intel_dp->aux);
sys/dev/drm/i915/intel_dp.c
527
WARN_ON(!intel_dp->num_source_rates || !intel_dp->num_sink_rates);
sys/dev/drm/i915/intel_dp.c
529
intel_dp->num_common_rates = intersect_rates(intel_dp->source_rates,
sys/dev/drm/i915/intel_dp.c
5295
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp.c
5298
if (intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
5299
cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
sys/dev/drm/i915/intel_dp.c
530
intel_dp->num_source_rates,
sys/dev/drm/i915/intel_dp.c
5304
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
5305
edp_panel_vdd_off_sync(intel_dp);
sys/dev/drm/i915/intel_dp.c
5306
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
5308
if (intel_dp->edp_notifier.notifier_call) {
sys/dev/drm/i915/intel_dp.c
5309
unregister_reboot_notifier(&intel_dp->edp_notifier);
sys/dev/drm/i915/intel_dp.c
531
intel_dp->sink_rates,
sys/dev/drm/i915/intel_dp.c
5310
intel_dp->edp_notifier.notifier_call = NULL;
sys/dev/drm/i915/intel_dp.c
5314
intel_dp_aux_fini(intel_dp);
sys/dev/drm/i915/intel_dp.c
532
intel_dp->num_sink_rates,
sys/dev/drm/i915/intel_dp.c
5322
struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);
sys/dev/drm/i915/intel_dp.c
5324
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
533
intel_dp->common_rates);
sys/dev/drm/i915/intel_dp.c
5331
cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
sys/dev/drm/i915/intel_dp.c
5332
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
5333
edp_panel_vdd_off_sync(intel_dp);
sys/dev/drm/i915/intel_dp.c
5334
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
5341
struct intel_dp *intel_dp = enc_to_intel_dp(&intel_dig_port->base.base);
sys/dev/drm/i915/intel_dp.c
536
if (WARN_ON(intel_dp->num_common_rates == 0)) {
sys/dev/drm/i915/intel_dp.c
5367
ret = intel_dp_aux_xfer(intel_dp, txbuf, HEADER_SIZE + msg.size,
sys/dev/drm/i915/intel_dp.c
537
intel_dp->common_rates[0] = 162000;
sys/dev/drm/i915/intel_dp.c
538
intel_dp->num_common_rates = 1;
sys/dev/drm/i915/intel_dp.c
542
static bool intel_dp_link_params_valid(struct intel_dp *intel_dp, int link_rate,
sys/dev/drm/i915/intel_dp.c
551
link_rate > intel_dp->max_link_rate)
sys/dev/drm/i915/intel_dp.c
555
lane_count > intel_dp_max_lane_count(intel_dp))
sys/dev/drm/i915/intel_dp.c
5569
static void intel_edp_panel_vdd_sanitize(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5571
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
5575
if (!edp_have_panel_vdd(intel_dp))
sys/dev/drm/i915/intel_dp.c
5585
intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
5587
edp_panel_vdd_schedule_off(intel_dp);
sys/dev/drm/i915/intel_dp.c
5590
static enum i915_pipe vlv_active_pipe(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5592
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
5593
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
sys/dev/drm/i915/intel_dp.c
5596
if (intel_dp_port_enabled(dev_priv, intel_dp->output_reg,
sys/dev/drm/i915/intel_dp.c
5606
struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
sys/dev/drm/i915/intel_dp.c
5607
struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
sys/dev/drm/i915/intel_dp.c
561
static bool intel_dp_can_link_train_fallback_for_edp(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
5610
intel_dp->DP = I915_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
5615
intel_dp->reset_link_params = true;
sys/dev/drm/i915/intel_dp.c
5617
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
5620
intel_dp->active_pipe = vlv_active_pipe(intel_dp);
sys/dev/drm/i915/intel_dp.c
5622
if (intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
5624
intel_dp_pps_init(intel_dp);
sys/dev/drm/i915/intel_dp.c
5625
intel_edp_panel_vdd_sanitize(intel_dp);
sys/dev/drm/i915/intel_dp.c
5628
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
5658
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp.c
5659
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
566
intel_dp->attached_connector->panel.fixed_mode;
sys/dev/drm/i915/intel_dp.c
5679
intel_dp->reset_link_params = true;
sys/dev/drm/i915/intel_dp.c
5680
intel_dp->detect_done = false;
sys/dev/drm/i915/intel_dp.c
5684
intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
5686
if (intel_dp->is_mst) {
sys/dev/drm/i915/intel_dp.c
5687
if (intel_dp_check_mst_status(intel_dp) == -EINVAL) {
sys/dev/drm/i915/intel_dp.c
5693
intel_dp->is_mst, intel_dp->mst_mgr.mst_state);
sys/dev/drm/i915/intel_dp.c
5694
intel_dp->is_mst = false;
sys/dev/drm/i915/intel_dp.c
5695
drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
sys/dev/drm/i915/intel_dp.c
5696
intel_dp->is_mst);
sys/dev/drm/i915/intel_dp.c
5697
intel_dp->detect_done = false;
sys/dev/drm/i915/intel_dp.c
5702
if (!intel_dp->is_mst) {
sys/dev/drm/i915/intel_dp.c
5705
handled = intel_dp_short_pulse(intel_dp);
sys/dev/drm/i915/intel_dp.c
5708
intel_hdcp_check_link(intel_dp->attached_connector);
sys/dev/drm/i915/intel_dp.c
5711
intel_dp->detect_done = false;
sys/dev/drm/i915/intel_dp.c
5719
intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
5741
intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connector)
sys/dev/drm/i915/intel_dp.c
5744
enum port port = dp_to_dig_port(intel_dp)->base.port;
sys/dev/drm/i915/intel_dp.c
5751
if (intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
5765
static void intel_dp_init_panel_power_timestamps(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5767
intel_dp->panel_power_off_time = ktime_get_boottime();
sys/dev/drm/i915/intel_dp.c
5768
intel_dp->last_power_on = jiffies;
sys/dev/drm/i915/intel_dp.c
5769
intel_dp->last_backlight_off = jiffies;
sys/dev/drm/i915/intel_dp.c
577
int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
5773
intel_pps_readout_hw_state(struct intel_dp *intel_dp, struct edp_power_seq *seq)
sys/dev/drm/i915/intel_dp.c
5775
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
5779
intel_pps_get_registers(intel_dp, ®s);
sys/dev/drm/i915/intel_dp.c
5783
pp_ctl = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
582
index = intel_dp_rate_index(intel_dp->common_rates,
sys/dev/drm/i915/intel_dp.c
5825
intel_pps_verify_state(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5828
struct edp_power_seq *sw = &intel_dp->pps_delays;
sys/dev/drm/i915/intel_dp.c
583
intel_dp->num_common_rates,
sys/dev/drm/i915/intel_dp.c
5830
intel_pps_readout_hw_state(intel_dp, &hw);
sys/dev/drm/i915/intel_dp.c
5841
intel_dp_init_panel_power_sequencer(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
5843
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
5845
*final = &intel_dp->pps_delays;
sys/dev/drm/i915/intel_dp.c
5853
intel_pps_readout_hw_state(intel_dp, &cur);
sys/dev/drm/i915/intel_dp.c
586
if (intel_dp_is_edp(intel_dp) &&
sys/dev/drm/i915/intel_dp.c
587
!intel_dp_can_link_train_fallback_for_edp(intel_dp,
sys/dev/drm/i915/intel_dp.c
588
intel_dp->common_rates[index - 1],
sys/dev/drm/i915/intel_dp.c
5901
intel_dp->panel_power_up_delay = get_delay(t1_t3);
sys/dev/drm/i915/intel_dp.c
5902
intel_dp->backlight_on_delay = get_delay(t8);
sys/dev/drm/i915/intel_dp.c
5903
intel_dp->backlight_off_delay = get_delay(t9);
sys/dev/drm/i915/intel_dp.c
5904
intel_dp->panel_power_down_delay = get_delay(t10);
sys/dev/drm/i915/intel_dp.c
5905
intel_dp->panel_power_cycle_delay = get_delay(t11_t12);
sys/dev/drm/i915/intel_dp.c
5909
intel_dp->panel_power_up_delay, intel_dp->panel_power_down_delay,
sys/dev/drm/i915/intel_dp.c
5910
intel_dp->panel_power_cycle_delay);
sys/dev/drm/i915/intel_dp.c
5913
intel_dp->backlight_on_delay, intel_dp->backlight_off_delay);
sys/dev/drm/i915/intel_dp.c
593
intel_dp->max_link_rate = intel_dp->common_rates[index - 1];
sys/dev/drm/i915/intel_dp.c
5933
intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
5936
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
594
intel_dp->max_link_lane_count = lane_count;
sys/dev/drm/i915/intel_dp.c
5940
enum port port = dp_to_dig_port(intel_dp)->base.port;
sys/dev/drm/i915/intel_dp.c
5941
const struct edp_power_seq *seq = &intel_dp->pps_delays;
sys/dev/drm/i915/intel_dp.c
5945
intel_pps_get_registers(intel_dp, ®s);
sys/dev/drm/i915/intel_dp.c
596
if (intel_dp_is_edp(intel_dp) &&
sys/dev/drm/i915/intel_dp.c
5960
u32 pp = ironlake_get_pp_control(intel_dp);
sys/dev/drm/i915/intel_dp.c
597
!intel_dp_can_link_train_fallback_for_edp(intel_dp,
sys/dev/drm/i915/intel_dp.c
598
intel_dp_max_common_rate(intel_dp),
sys/dev/drm/i915/intel_dp.c
603
intel_dp->max_link_rate = intel_dp_max_common_rate(intel_dp);
sys/dev/drm/i915/intel_dp.c
6030
static void intel_dp_pps_init(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
6032
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
6035
vlv_initial_power_sequencer_setup(intel_dp);
sys/dev/drm/i915/intel_dp.c
6037
intel_dp_init_panel_power_sequencer(intel_dp);
sys/dev/drm/i915/intel_dp.c
6038
intel_dp_init_panel_power_sequencer_registers(intel_dp, false);
sys/dev/drm/i915/intel_dp.c
604
intel_dp->max_link_lane_count = lane_count >> 1;
sys/dev/drm/i915/intel_dp.c
6061
struct intel_dp *intel_dp = dev_priv->drrs.dp;
sys/dev/drm/i915/intel_dp.c
6070
if (intel_dp == NULL) {
sys/dev/drm/i915/intel_dp.c
6075
dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
6088
if (intel_dp->attached_connector->panel.downclock_mode->vrefresh ==
sys/dev/drm/i915/intel_dp.c
6146
void intel_edp_drrs_enable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
6149
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
6169
dev_priv->drrs.dp = intel_dp;
sys/dev/drm/i915/intel_dp.c
617
struct intel_dp *intel_dp = intel_attached_dp(connector);
sys/dev/drm/i915/intel_dp.c
6181
void intel_edp_drrs_disable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
6184
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
6197
intel_dp->attached_connector->panel.fixed_mode->vrefresh);
sys/dev/drm/i915/intel_dp.c
6209
struct intel_dp *intel_dp;
sys/dev/drm/i915/intel_dp.c
6213
intel_dp = dev_priv->drrs.dp;
sys/dev/drm/i915/intel_dp.c
6215
if (!intel_dp)
sys/dev/drm/i915/intel_dp.c
6227
struct drm_crtc *crtc = dp_to_dig_port(intel_dp)->base.base.crtc;
sys/dev/drm/i915/intel_dp.c
6230
intel_dp->attached_connector->panel.downclock_mode->vrefresh);
sys/dev/drm/i915/intel_dp.c
627
max_dotclk = intel_dp_downstream_max_dotclock(intel_dp);
sys/dev/drm/i915/intel_dp.c
629
if (intel_dp_is_edp(intel_dp) && fixed_mode) {
sys/dev/drm/i915/intel_dp.c
639
max_link_clock = intel_dp_max_link_rate(intel_dp);
sys/dev/drm/i915/intel_dp.c
640
max_lanes = intel_dp_max_lane_count(intel_dp);
sys/dev/drm/i915/intel_dp.c
6413
static bool intel_edp_init_connector(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
6416
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
6426
if (!intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_dp.c
6442
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
6444
intel_dp_init_panel_power_timestamps(intel_dp);
sys/dev/drm/i915/intel_dp.c
6445
intel_dp_pps_init(intel_dp);
sys/dev/drm/i915/intel_dp.c
6446
intel_edp_panel_vdd_sanitize(intel_dp);
sys/dev/drm/i915/intel_dp.c
6448
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
6451
has_dpcd = intel_edp_init_dpcd(intel_dp);
sys/dev/drm/i915/intel_dp.c
6460
edid = drm_get_edid(connector, &intel_dp->aux.ddc);
sys/dev/drm/i915/intel_dp.c
6497
intel_dp->edp_notifier.notifier_call = edp_notify_handler;
sys/dev/drm/i915/intel_dp.c
6498
register_reboot_notifier(&intel_dp->edp_notifier);
sys/dev/drm/i915/intel_dp.c
6505
pipe = vlv_active_pipe(intel_dp);
sys/dev/drm/i915/intel_dp.c
6508
pipe = intel_dp->pps_pipe;
sys/dev/drm/i915/intel_dp.c
6524
cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
sys/dev/drm/i915/intel_dp.c
6529
pps_lock(intel_dp);
sys/dev/drm/i915/intel_dp.c
6530
edp_panel_vdd_off_sync(intel_dp);
sys/dev/drm/i915/intel_dp.c
6531
pps_unlock(intel_dp);
sys/dev/drm/i915/intel_dp.c
6564
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp.c
6580
intel_dp_set_source_rates(intel_dp);
sys/dev/drm/i915/intel_dp.c
6582
intel_dp->reset_link_params = true;
sys/dev/drm/i915/intel_dp.c
6583
intel_dp->pps_pipe = INVALID_PIPE;
sys/dev/drm/i915/intel_dp.c
6584
intel_dp->active_pipe = INVALID_PIPE;
sys/dev/drm/i915/intel_dp.c
6588
intel_dp->prepare_link_retrain = intel_ddi_prepare_link_retrain;
sys/dev/drm/i915/intel_dp.c
6591
intel_dp->DP = I915_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
6592
intel_dp->attached_connector = intel_connector;
sys/dev/drm/i915/intel_dp.c
6600
intel_dp->active_pipe = vlv_active_pipe(intel_dp);
sys/dev/drm/i915/intel_dp.c
6612
intel_dp_is_edp(intel_dp) &&
sys/dev/drm/i915/intel_dp.c
6629
intel_dp_aux_init(intel_dp);
sys/dev/drm/i915/intel_dp.c
6631
INIT_DELAYED_WORK(&intel_dp->panel_vdd_work,
sys/dev/drm/i915/intel_dp.c
6642
if (HAS_DP_MST(dev_priv) && !intel_dp_is_edp(intel_dp) &&
sys/dev/drm/i915/intel_dp.c
6648
if (!intel_edp_init_connector(intel_dp, intel_connector)) {
sys/dev/drm/i915/intel_dp.c
6649
intel_dp_aux_fini(intel_dp);
sys/dev/drm/i915/intel_dp.c
6654
intel_dp_add_properties(intel_dp, connector);
sys/dev/drm/i915/intel_dp.c
6656
if (is_hdcp_supported(dev_priv, port) && !intel_dp_is_edp(intel_dp)) {
sys/dev/drm/i915/intel_dp.c
6769
struct intel_dp *intel_dp;
sys/dev/drm/i915/intel_dp.c
6774
intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
6776
if (!intel_dp->can_mst)
sys/dev/drm/i915/intel_dp.c
6779
if (intel_dp->is_mst)
sys/dev/drm/i915/intel_dp.c
6780
drm_dp_mst_topology_mgr_suspend(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp.c
6789
struct intel_dp *intel_dp;
sys/dev/drm/i915/intel_dp.c
679
intel_dp_init_panel_power_sequencer(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_dp.c
6795
intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
6797
if (!intel_dp->can_mst)
sys/dev/drm/i915/intel_dp.c
6800
ret = drm_dp_mst_topology_mgr_resume(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp.c
6802
intel_dp_check_mst_status(intel_dp);
sys/dev/drm/i915/intel_dp.c
681
intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp.c
684
intel_dp_pps_init(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_dp.c
686
static void pps_lock(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
688
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
694
intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
699
static void pps_unlock(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
701
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
705
intel_display_power_put(dev_priv, intel_dp->aux_power_domain);
sys/dev/drm/i915/intel_dp.c
709
vlv_power_sequencer_kick(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
711
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
712
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
713
enum i915_pipe pipe = intel_dp->pps_pipe;
sys/dev/drm/i915/intel_dp.c
719
if (WARN(I915_READ(intel_dp->output_reg) & DP_PORT_EN,
sys/dev/drm/i915/intel_dp.c
730
DP = I915_READ(intel_dp->output_reg) & DP_DETECTED;
sys/dev/drm/i915/intel_dp.c
764
I915_WRITE(intel_dp->output_reg, DP);
sys/dev/drm/i915/intel_dp.c
765
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
767
I915_WRITE(intel_dp->output_reg, DP | DP_PORT_EN);
sys/dev/drm/i915/intel_dp.c
768
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
770
I915_WRITE(intel_dp->output_reg, DP & ~DP_PORT_EN);
sys/dev/drm/i915/intel_dp.c
771
POSTING_READ(intel_dp->output_reg);
sys/dev/drm/i915/intel_dp.c
791
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
794
WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
sys/dev/drm/i915/intel_dp.c
795
intel_dp->active_pipe != intel_dp->pps_pipe);
sys/dev/drm/i915/intel_dp.c
797
if (intel_dp->pps_pipe != INVALID_PIPE)
sys/dev/drm/i915/intel_dp.c
798
pipes &= ~(1 << intel_dp->pps_pipe);
sys/dev/drm/i915/intel_dp.c
800
WARN_ON(intel_dp->pps_pipe != INVALID_PIPE);
sys/dev/drm/i915/intel_dp.c
802
if (intel_dp->active_pipe != INVALID_PIPE)
sys/dev/drm/i915/intel_dp.c
803
pipes &= ~(1 << intel_dp->active_pipe);
sys/dev/drm/i915/intel_dp.c
814
vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
816
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
817
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
823
WARN_ON(!intel_dp_is_edp(intel_dp));
sys/dev/drm/i915/intel_dp.c
825
WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
sys/dev/drm/i915/intel_dp.c
826
intel_dp->active_pipe != intel_dp->pps_pipe);
sys/dev/drm/i915/intel_dp.c
828
if (intel_dp->pps_pipe != INVALID_PIPE)
sys/dev/drm/i915/intel_dp.c
829
return intel_dp->pps_pipe;
sys/dev/drm/i915/intel_dp.c
841
intel_dp->pps_pipe = pipe;
sys/dev/drm/i915/intel_dp.c
844
pipe_name(intel_dp->pps_pipe),
sys/dev/drm/i915/intel_dp.c
848
intel_dp_init_panel_power_sequencer(intel_dp);
sys/dev/drm/i915/intel_dp.c
849
intel_dp_init_panel_power_sequencer_registers(intel_dp, true);
sys/dev/drm/i915/intel_dp.c
855
vlv_power_sequencer_kick(intel_dp);
sys/dev/drm/i915/intel_dp.c
857
return intel_dp->pps_pipe;
sys/dev/drm/i915/intel_dp.c
861
bxt_power_sequencer_idx(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
863
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
869
WARN_ON(!intel_dp_is_edp(intel_dp));
sys/dev/drm/i915/intel_dp.c
871
if (!intel_dp->pps_reset)
sys/dev/drm/i915/intel_dp.c
874
intel_dp->pps_reset = false;
sys/dev/drm/i915/intel_dp.c
880
intel_dp_init_panel_power_sequencer_registers(intel_dp, false);
sys/dev/drm/i915/intel_dp.c
930
vlv_initial_power_sequencer_setup(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp.c
932
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_dp.c
933
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp.c
940
intel_dp->pps_pipe = vlv_initial_pps_pipe(dev_priv, port,
sys/dev/drm/i915/intel_dp.c
943
if (intel_dp->pps_pipe == INVALID_PIPE)
sys/dev/drm/i915/intel_dp.c
944
intel_dp->pps_pipe = vlv_initial_pps_pipe(dev_priv, port,
sys/dev/drm/i915/intel_dp.c
947
if (intel_dp->pps_pipe == INVALID_PIPE)
sys/dev/drm/i915/intel_dp.c
948
intel_dp->pps_pipe = vlv_initial_pps_pipe(dev_priv, port,
sys/dev/drm/i915/intel_dp.c
952
if (intel_dp->pps_pipe == INVALID_PIPE) {
sys/dev/drm/i915/intel_dp.c
959
port_name(port), pipe_name(intel_dp->pps_pipe));
sys/dev/drm/i915/intel_dp.c
961
intel_dp_init_panel_power_sequencer(intel_dp);
sys/dev/drm/i915/intel_dp.c
962
intel_dp_init_panel_power_sequencer_registers(intel_dp, false);
sys/dev/drm/i915/intel_dp.c
984
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dp.c
986
WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
sys/dev/drm/i915/intel_dp.c
992
intel_dp->pps_reset = true;
sys/dev/drm/i915/intel_dp.c
994
intel_dp->pps_pipe = INVALID_PIPE;
sys/dev/drm/i915/intel_dp_aux_backlight.c
112
struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
sys/dev/drm/i915/intel_dp_aux_backlight.c
136
if (drm_dp_dpcd_readb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp_aux_backlight.c
141
if (drm_dp_dpcd_readb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp_aux_backlight.c
163
if (drm_dp_dpcd_writeb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp_aux_backlight.c
168
if (drm_dp_dpcd_writeb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp_aux_backlight.c
180
struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
sys/dev/drm/i915/intel_dp_aux_backlight.c
183
if (drm_dp_dpcd_readb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp_aux_backlight.c
207
if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_FREQ_AUX_SET_CAP)
sys/dev/drm/i915/intel_dp_aux_backlight.c
212
if (drm_dp_dpcd_writeb(&intel_dp->aux,
sys/dev/drm/i915/intel_dp_aux_backlight.c
218
set_aux_backlight_enable(intel_dp, true);
sys/dev/drm/i915/intel_dp_aux_backlight.c
230
struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
sys/dev/drm/i915/intel_dp_aux_backlight.c
233
if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
sys/dev/drm/i915/intel_dp_aux_backlight.c
249
struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
sys/dev/drm/i915/intel_dp_aux_backlight.c
254
if (intel_dp->edp_dpcd[1] & DP_EDP_TCON_BACKLIGHT_ADJUSTMENT_CAP &&
sys/dev/drm/i915/intel_dp_aux_backlight.c
255
(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_AUX_SET_CAP) &&
sys/dev/drm/i915/intel_dp_aux_backlight.c
256
!(intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_PWM_PIN_CAP)) {
sys/dev/drm/i915/intel_dp_aux_backlight.c
27
static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
sys/dev/drm/i915/intel_dp_aux_backlight.c
32
if (!(intel_dp->edp_dpcd[1] & DP_EDP_BACKLIGHT_AUX_ENABLE_CAP))
sys/dev/drm/i915/intel_dp_aux_backlight.c
35
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_DISPLAY_CONTROL_REGISTER,
sys/dev/drm/i915/intel_dp_aux_backlight.c
46
if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_EDP_DISPLAY_CONTROL_REGISTER,
sys/dev/drm/i915/intel_dp_aux_backlight.c
59
struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
sys/dev/drm/i915/intel_dp_aux_backlight.c
63
if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_BACKLIGHT_BRIGHTNESS_MSB,
sys/dev/drm/i915/intel_dp_aux_backlight.c
70
if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
sys/dev/drm/i915/intel_dp_aux_backlight.c
84
struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
sys/dev/drm/i915/intel_dp_aux_backlight.c
90
if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT) {
sys/dev/drm/i915/intel_dp_aux_backlight.c
94
if (drm_dp_dpcd_write(&intel_dp->aux, DP_EDP_BACKLIGHT_BRIGHTNESS_MSB,
sys/dev/drm/i915/intel_dp_link_training.c
103
intel_dp_update_link_train(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp_link_training.c
107
intel_dp_set_signal_levels(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
109
ret = drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_LANE0_SET,
sys/dev/drm/i915/intel_dp_link_training.c
110
intel_dp->train_set, intel_dp->lane_count);
sys/dev/drm/i915/intel_dp_link_training.c
112
return ret == intel_dp->lane_count;
sys/dev/drm/i915/intel_dp_link_training.c
115
static bool intel_dp_link_max_vswing_reached(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp_link_training.c
119
for (lane = 0; lane < intel_dp->lane_count; lane++)
sys/dev/drm/i915/intel_dp_link_training.c
120
if ((intel_dp->train_set[lane] &
sys/dev/drm/i915/intel_dp_link_training.c
129
intel_dp_link_training_clock_recovery(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp_link_training.c
137
if (intel_dp->prepare_link_retrain)
sys/dev/drm/i915/intel_dp_link_training.c
138
intel_dp->prepare_link_retrain(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
140
intel_dp_compute_rate(intel_dp, intel_dp->link_rate,
sys/dev/drm/i915/intel_dp_link_training.c
150
link_config[1] = intel_dp->lane_count;
sys/dev/drm/i915/intel_dp_link_training.c
151
if (drm_dp_enhanced_frame_cap(intel_dp->dpcd))
sys/dev/drm/i915/intel_dp_link_training.c
153
drm_dp_dpcd_write(&intel_dp->aux, DP_LINK_BW_SET, link_config, 2);
sys/dev/drm/i915/intel_dp_link_training.c
157
drm_dp_dpcd_write(&intel_dp->aux, DP_LINK_RATE_SET,
sys/dev/drm/i915/intel_dp_link_training.c
162
drm_dp_dpcd_write(&intel_dp->aux, DP_DOWNSPREAD_CTRL, link_config, 2);
sys/dev/drm/i915/intel_dp_link_training.c
164
intel_dp->DP |= DP_PORT_EN;
sys/dev/drm/i915/intel_dp_link_training.c
167
if (!intel_dp_reset_link_train(intel_dp,
sys/dev/drm/i915/intel_dp_link_training.c
182
if (intel_dp->dpcd[DP_DPCD_REV] >= DP_DPCD_REV_14)
sys/dev/drm/i915/intel_dp_link_training.c
191
drm_dp_link_train_clock_recovery_delay(intel_dp->dpcd);
sys/dev/drm/i915/intel_dp_link_training.c
193
if (!intel_dp_get_link_status(intel_dp, link_status)) {
sys/dev/drm/i915/intel_dp_link_training.c
198
if (drm_dp_clock_recovery_ok(link_status, intel_dp->lane_count)) {
sys/dev/drm/i915/intel_dp_link_training.c
213
voltage = intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK;
sys/dev/drm/i915/intel_dp_link_training.c
216
intel_get_adjust_train(intel_dp, link_status);
sys/dev/drm/i915/intel_dp_link_training.c
217
if (!intel_dp_update_link_train(intel_dp)) {
sys/dev/drm/i915/intel_dp_link_training.c
222
if ((intel_dp->train_set[0] & DP_TRAIN_VOLTAGE_SWING_MASK) ==
sys/dev/drm/i915/intel_dp_link_training.c
228
if (intel_dp_link_max_vswing_reached(intel_dp))
sys/dev/drm/i915/intel_dp_link_training.c
241
static u32 intel_dp_training_pattern(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp_link_training.c
251
source_tps4 = intel_dp_source_supports_hbr3(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
252
sink_tps4 = drm_dp_tps4_supported(intel_dp->dpcd);
sys/dev/drm/i915/intel_dp_link_training.c
255
} else if (intel_dp->link_rate == 810000) {
sys/dev/drm/i915/intel_dp_link_training.c
266
source_tps3 = intel_dp_source_supports_hbr2(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
267
sink_tps3 = drm_dp_tps3_supported(intel_dp->dpcd);
sys/dev/drm/i915/intel_dp_link_training.c
270
} else if (intel_dp->link_rate >= 540000) {
sys/dev/drm/i915/intel_dp_link_training.c
281
intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp_link_training.c
288
training_pattern = intel_dp_training_pattern(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
294
if (!intel_dp_set_link_train(intel_dp,
sys/dev/drm/i915/intel_dp_link_training.c
302
drm_dp_link_train_channel_eq_delay(intel_dp->dpcd);
sys/dev/drm/i915/intel_dp_link_training.c
303
if (!intel_dp_get_link_status(intel_dp, link_status)) {
sys/dev/drm/i915/intel_dp_link_training.c
310
intel_dp->lane_count)) {
sys/dev/drm/i915/intel_dp_link_training.c
318
intel_dp->lane_count)) {
sys/dev/drm/i915/intel_dp_link_training.c
326
intel_get_adjust_train(intel_dp, link_status);
sys/dev/drm/i915/intel_dp_link_training.c
327
if (!intel_dp_update_link_train(intel_dp)) {
sys/dev/drm/i915/intel_dp_link_training.c
339
intel_dp_set_idle_link_train(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
345
void intel_dp_stop_link_train(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp_link_training.c
347
intel_dp->link_trained = true;
sys/dev/drm/i915/intel_dp_link_training.c
349
intel_dp_set_link_train(intel_dp,
sys/dev/drm/i915/intel_dp_link_training.c
354
intel_dp_start_link_train(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_dp_link_training.c
356
struct intel_connector *intel_connector = intel_dp->attached_connector;
sys/dev/drm/i915/intel_dp_link_training.c
358
if (!intel_dp_link_training_clock_recovery(intel_dp))
sys/dev/drm/i915/intel_dp_link_training.c
36
intel_get_adjust_train(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp_link_training.c
360
if (!intel_dp_link_training_channel_equalization(intel_dp))
sys/dev/drm/i915/intel_dp_link_training.c
366
intel_dp->link_rate, intel_dp->lane_count);
sys/dev/drm/i915/intel_dp_link_training.c
373
intel_dp->link_rate, intel_dp->lane_count);
sys/dev/drm/i915/intel_dp_link_training.c
374
if (!intel_dp_get_link_train_fallback_values(intel_dp,
sys/dev/drm/i915/intel_dp_link_training.c
375
intel_dp->link_rate,
sys/dev/drm/i915/intel_dp_link_training.c
376
intel_dp->lane_count))
sys/dev/drm/i915/intel_dp_link_training.c
45
for (lane = 0; lane < intel_dp->lane_count; lane++) {
sys/dev/drm/i915/intel_dp_link_training.c
55
voltage_max = intel_dp_voltage_max(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
59
preemph_max = intel_dp_pre_emphasis_max(intel_dp, v);
sys/dev/drm/i915/intel_dp_link_training.c
64
intel_dp->train_set[lane] = v | p;
sys/dev/drm/i915/intel_dp_link_training.c
68
intel_dp_set_link_train(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp_link_training.c
71
uint8_t buf[sizeof(intel_dp->train_set) + 1];
sys/dev/drm/i915/intel_dp_link_training.c
74
intel_dp_program_link_training_pattern(intel_dp, dp_train_pat);
sys/dev/drm/i915/intel_dp_link_training.c
83
memcpy(buf + 1, intel_dp->train_set, intel_dp->lane_count);
sys/dev/drm/i915/intel_dp_link_training.c
84
len = intel_dp->lane_count + 1;
sys/dev/drm/i915/intel_dp_link_training.c
87
ret = drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_PATTERN_SET,
sys/dev/drm/i915/intel_dp_link_training.c
94
intel_dp_reset_link_train(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_dp_link_training.c
97
memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set));
sys/dev/drm/i915/intel_dp_link_training.c
98
intel_dp_set_signal_levels(intel_dp);
sys/dev/drm/i915/intel_dp_link_training.c
99
return intel_dp_set_link_train(intel_dp, dp_train_pat);
sys/dev/drm/i915/intel_dp_mst.c
147
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
152
DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
sys/dev/drm/i915/intel_dp_mst.c
154
drm_dp_mst_reset_vcpi_slots(&intel_dp->mst_mgr, connector->port);
sys/dev/drm/i915/intel_dp_mst.c
156
ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
171
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
178
drm_dp_check_act_status(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
180
drm_dp_update_payload_part2(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
182
drm_dp_mst_deallocate_vcpi(&intel_dp->mst_mgr, connector->port);
sys/dev/drm/i915/intel_dp_mst.c
188
drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port,
sys/dev/drm/i915/intel_dp_mst.c
191
intel_dp->active_mst_links--;
sys/dev/drm/i915/intel_dp_mst.c
194
if (intel_dp->active_mst_links == 0) {
sys/dev/drm/i915/intel_dp_mst.c
195
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
sys/dev/drm/i915/intel_dp_mst.c
200
DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
sys/dev/drm/i915/intel_dp_mst.c
209
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
211
if (intel_dp->active_mst_links == 0 &&
sys/dev/drm/i915/intel_dp_mst.c
223
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
237
DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
sys/dev/drm/i915/intel_dp_mst.c
239
if (intel_dp->active_mst_links == 0)
sys/dev/drm/i915/intel_dp_mst.c
240
intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
sys/dev/drm/i915/intel_dp_mst.c
242
drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, true);
sys/dev/drm/i915/intel_dp_mst.c
244
if (intel_dp->active_mst_links == 0)
sys/dev/drm/i915/intel_dp_mst.c
248
ret = drm_dp_mst_allocate_vcpi(&intel_dp->mst_mgr,
sys/dev/drm/i915/intel_dp_mst.c
255
intel_dp->active_mst_links++;
sys/dev/drm/i915/intel_dp_mst.c
259
ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
270
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
274
DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
sys/dev/drm/i915/intel_dp_mst.c
283
drm_dp_check_act_status(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
285
drm_dp_update_payload_part2(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
312
struct intel_dp *intel_dp = intel_connector->mst_port;
sys/dev/drm/i915/intel_dp_mst.c
319
edid = drm_dp_mst_get_edid(connector, &intel_dp->mst_mgr, intel_connector->port);
sys/dev/drm/i915/intel_dp_mst.c
330
struct intel_dp *intel_dp = intel_connector->mst_port;
sys/dev/drm/i915/intel_dp_mst.c
334
return drm_dp_mst_detect_port(connector, &intel_dp->mst_mgr,
sys/dev/drm/i915/intel_dp_mst.c
370
struct intel_dp *intel_dp = intel_connector->mst_port;
sys/dev/drm/i915/intel_dp_mst.c
381
max_link_clock = intel_dp_max_link_rate(intel_dp);
sys/dev/drm/i915/intel_dp_mst.c
382
max_lanes = intel_dp_max_lane_count(intel_dp);
sys/dev/drm/i915/intel_dp_mst.c
40
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
404
struct intel_dp *intel_dp = intel_connector->mst_port;
sys/dev/drm/i915/intel_dp_mst.c
407
return &intel_dp->mst_encoders[crtc->pipe]->base.base;
sys/dev/drm/i915/intel_dp_mst.c
442
struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
443
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp_mst.c
456
intel_connector->mst_port = intel_dp;
sys/dev/drm/i915/intel_dp_mst.c
471
&intel_dp->mst_encoders[pipe]->base.base;
sys/dev/drm/i915/intel_dp_mst.c
48
bool constant_n = drm_dp_has_quirk(&intel_dp->desc,
sys/dev/drm/i915/intel_dp_mst.c
520
struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
521
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dp_mst.c
56
if (intel_dp->compliance.test_data.bpc) {
sys/dev/drm/i915/intel_dp_mst.c
57
bpp = intel_dp->compliance.test_data.bpc * 3;
sys/dev/drm/i915/intel_dp_mst.c
575
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
580
intel_dp->mst_encoders[pipe] = intel_dp_create_fake_mst_encoder(intel_dig_port, pipe);
sys/dev/drm/i915/intel_dp_mst.c
587
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
591
intel_dp->can_mst = true;
sys/dev/drm/i915/intel_dp_mst.c
592
intel_dp->mst_mgr.cbs = &mst_cbs;
sys/dev/drm/i915/intel_dp_mst.c
596
ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev,
sys/dev/drm/i915/intel_dp_mst.c
597
&intel_dp->aux, 16, 3, conn_base_id);
sys/dev/drm/i915/intel_dp_mst.c
599
intel_dp->can_mst = false;
sys/dev/drm/i915/intel_dp_mst.c
608
struct intel_dp *intel_dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_dp_mst.c
610
if (!intel_dp->can_mst)
sys/dev/drm/i915/intel_dp_mst.c
613
drm_dp_mst_topology_mgr_destroy(&intel_dp->mst_mgr);
sys/dev/drm/i915/intel_dp_mst.c
65
lane_count = intel_dp_max_lane_count(intel_dp);
sys/dev/drm/i915/intel_dp_mst.c
71
pipe_config->port_clock = intel_dp_max_link_rate(intel_dp);
sys/dev/drm/i915/intel_dp_mst.c
73
if (drm_dp_mst_port_has_audio(&intel_dp->mst_mgr, port))
sys/dev/drm/i915/intel_dp_mst.c
82
&intel_dp->mst_mgr,
sys/dev/drm/i915/intel_dpio_phy.c
1040
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dpio_phy.c
1041
struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_dpio_phy.c
862
struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
sys/dev/drm/i915/intel_dpio_phy.c
863
struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_drv.h
1153
uint32_t (*get_aux_clock_divider)(struct intel_dp *dp, int index);
sys/dev/drm/i915/intel_drv.h
1158
uint32_t (*get_aux_send_ctl)(struct intel_dp *dp,
sys/dev/drm/i915/intel_drv.h
1162
i915_reg_t (*aux_ch_ctl_reg)(struct intel_dp *dp);
sys/dev/drm/i915/intel_drv.h
1163
i915_reg_t (*aux_ch_data_reg)(struct intel_dp *dp, int index);
sys/dev/drm/i915/intel_drv.h
1166
void (*prepare_link_retrain)(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1180
struct intel_dp dp;
sys/dev/drm/i915/intel_drv.h
1303
static inline struct intel_dp *enc_to_intel_dp(struct drm_encoder *encoder)
sys/dev/drm/i915/intel_drv.h
1323
dp_to_dig_port(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_drv.h
1325
return container_of(intel_dp, struct intel_digital_port, dp);
sys/dev/drm/i915/intel_drv.h
1329
dp_to_lspcon(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_drv.h
1331
return &dp_to_dig_port(intel_dp)->lspcon;
sys/dev/drm/i915/intel_drv.h
1335
dp_to_i915(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_drv.h
1337
return to_i915(dp_to_dig_port(intel_dp)->base.base.dev);
sys/dev/drm/i915/intel_drv.h
1438
void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1447
u32 bxt_signal_levels(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1448
uint32_t ddi_signal_levels(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1703
void intel_dp_set_link_params(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1706
int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1708
void intel_dp_start_link_train(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1709
void intel_dp_stop_link_train(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1712
void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode);
sys/dev/drm/i915/intel_drv.h
1719
bool intel_dp_is_edp(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1726
void intel_edp_panel_vdd_on(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1727
void intel_edp_panel_on(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1728
void intel_edp_panel_off(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1731
int intel_dp_max_link_rate(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1732
int intel_dp_max_lane_count(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1733
int intel_dp_rate_select(struct intel_dp *intel_dp, int rate);
sys/dev/drm/i915/intel_drv.h
1738
void intel_edp_drrs_enable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1740
void intel_edp_drrs_disable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1746
void icl_program_mg_dp_mode(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1751
intel_dp_program_link_training_pattern(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1754
intel_dp_set_signal_levels(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1755
void intel_dp_set_idle_link_train(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1757
intel_dp_voltage_max(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1759
intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, uint8_t voltage_swing);
sys/dev/drm/i915/intel_drv.h
1760
void intel_dp_compute_rate(struct intel_dp *intel_dp, int port_clock,
sys/dev/drm/i915/intel_drv.h
1762
bool intel_dp_source_supports_hbr2(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1763
bool intel_dp_source_supports_hbr3(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1765
intel_dp_get_link_status(struct intel_dp *intel_dp, uint8_t link_status[DP_LINK_STATUS_SIZE]);
sys/dev/drm/i915/intel_drv.h
1772
bool intel_dp_read_dpcd(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1957
void intel_psr_init_dpcd(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
1958
void intel_psr_enable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1960
void intel_psr_disable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1972
void intel_psr_compute_config(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_drv.h
1976
void intel_psr_short_pulse(struct intel_dp *intel_dp);
sys/dev/drm/i915/intel_drv.h
423
struct intel_dp *mst_port;
sys/dev/drm/i915/intel_lspcon.c
168
struct intel_dp *intel_dp = lspcon_to_intel_dp(lspcon);
sys/dev/drm/i915/intel_lspcon.c
169
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_lspcon.c
215
struct intel_dp *dp = &intel_dig_port->dp;
sys/dev/drm/i915/intel_lspcon.c
30
static struct intel_dp *lspcon_to_intel_dp(struct intel_lspcon *lspcon)
sys/dev/drm/i915/intel_psr.c
1087
void intel_psr_short_pulse(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
1089
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
1096
if (!CAN_PSR(dev_priv) || !intel_dp_is_edp(intel_dp))
sys/dev/drm/i915/intel_psr.c
1101
if (!psr->enabled || psr->dp != intel_dp)
sys/dev/drm/i915/intel_psr.c
1104
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_PSR_STATUS, &val) != 1) {
sys/dev/drm/i915/intel_psr.c
1111
intel_psr_disable_locked(intel_dp);
sys/dev/drm/i915/intel_psr.c
1114
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_PSR_ERROR_STATUS, &val) != 1) {
sys/dev/drm/i915/intel_psr.c
1130
intel_psr_disable_locked(intel_dp);
sys/dev/drm/i915/intel_psr.c
1132
drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_ERROR_STATUS, val);
sys/dev/drm/i915/intel_psr.c
185
static bool intel_dp_get_colorimetry_status(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
189
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_DPRX_FEATURE_ENUMERATION_LIST,
sys/dev/drm/i915/intel_psr.c
195
static bool intel_dp_get_alpm_status(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
199
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_RECEIVER_ALPM_CAP,
sys/dev/drm/i915/intel_psr.c
205
static u8 intel_dp_get_sink_sync_latency(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
209
if (drm_dp_dpcd_readb(&intel_dp->aux,
sys/dev/drm/i915/intel_psr.c
217
void intel_psr_init_dpcd(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
220
to_i915(dp_to_dig_port(intel_dp)->base.base.dev);
sys/dev/drm/i915/intel_psr.c
222
drm_dp_dpcd_read(&intel_dp->aux, DP_PSR_SUPPORT, intel_dp->psr_dpcd,
sys/dev/drm/i915/intel_psr.c
223
sizeof(intel_dp->psr_dpcd));
sys/dev/drm/i915/intel_psr.c
225
if (!intel_dp->psr_dpcd[0])
sys/dev/drm/i915/intel_psr.c
228
intel_dp->psr_dpcd[0]);
sys/dev/drm/i915/intel_psr.c
230
if (!(intel_dp->edp_dpcd[1] & DP_EDP_SET_POWER_CAP)) {
sys/dev/drm/i915/intel_psr.c
236
intel_dp_get_sink_sync_latency(intel_dp);
sys/dev/drm/i915/intel_psr.c
239
dev_priv->psr.dp = intel_dp;
sys/dev/drm/i915/intel_psr.c
242
(intel_dp->psr_dpcd[0] == DP_PSR2_WITH_Y_COORD_IS_SUPPORTED)) {
sys/dev/drm/i915/intel_psr.c
243
bool y_req = intel_dp->psr_dpcd[1] &
sys/dev/drm/i915/intel_psr.c
245
bool alpm = intel_dp_get_alpm_status(intel_dp);
sys/dev/drm/i915/intel_psr.c
264
intel_dp_get_colorimetry_status(intel_dp);
sys/dev/drm/i915/intel_psr.c
269
static void intel_psr_setup_vsc(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_psr.c
272
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_psr.c
273
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
301
static void hsw_psr_setup_aux(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
303
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
323
aux_clock_divider = intel_dp->get_aux_clock_divider(intel_dp, 0);
sys/dev/drm/i915/intel_psr.c
326
aux_ctl = intel_dp->get_aux_send_ctl(intel_dp, sizeof(aux_msg),
sys/dev/drm/i915/intel_psr.c
334
static void intel_psr_enable_sink(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
336
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
341
drm_dp_dpcd_writeb(&intel_dp->aux, DP_RECEIVER_ALPM_CONFIG,
sys/dev/drm/i915/intel_psr.c
350
drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, dpcd_val);
sys/dev/drm/i915/intel_psr.c
352
drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
sys/dev/drm/i915/intel_psr.c
355
static void hsw_activate_psr1(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
357
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
397
if (intel_dp_source_supports_hbr2(intel_dp) &&
sys/dev/drm/i915/intel_psr.c
398
drm_dp_tps3_supported(intel_dp->dpcd))
sys/dev/drm/i915/intel_psr.c
410
static void hsw_activate_psr2(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
412
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
445
static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_psr.c
448
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
479
void intel_psr_compute_config(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_psr.c
482
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
sys/dev/drm/i915/intel_psr.c
483
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
491
if (intel_dp != dev_priv->psr.dp)
sys/dev/drm/i915/intel_psr.c
519
psr_setup_time = drm_dp_psr_setup_time(intel_dp->psr_dpcd);
sys/dev/drm/i915/intel_psr.c
522
intel_dp->psr_dpcd[1]);
sys/dev/drm/i915/intel_psr.c
534
crtc_state->has_psr2 = intel_psr2_config_valid(intel_dp, crtc_state);
sys/dev/drm/i915/intel_psr.c
537
static void intel_psr_activate(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
539
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
549
hsw_activate_psr2(intel_dp);
sys/dev/drm/i915/intel_psr.c
551
hsw_activate_psr1(intel_dp);
sys/dev/drm/i915/intel_psr.c
556
static void intel_psr_enable_source(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_psr.c
559
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
566
hsw_psr_setup_aux(intel_dp);
sys/dev/drm/i915/intel_psr.c
605
struct intel_dp *intel_dp = dev_priv->psr.dp;
sys/dev/drm/i915/intel_psr.c
612
intel_psr_setup_vsc(intel_dp, crtc_state);
sys/dev/drm/i915/intel_psr.c
613
intel_psr_enable_sink(intel_dp);
sys/dev/drm/i915/intel_psr.c
614
intel_psr_enable_source(intel_dp, crtc_state);
sys/dev/drm/i915/intel_psr.c
617
intel_psr_activate(intel_dp);
sys/dev/drm/i915/intel_psr.c
627
void intel_psr_enable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_psr.c
630
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
660
intel_psr_disable_source(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
662
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
699
static void intel_psr_disable_locked(struct intel_dp *intel_dp)
sys/dev/drm/i915/intel_psr.c
701
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
710
intel_psr_disable_source(intel_dp);
sys/dev/drm/i915/intel_psr.c
713
drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, 0);
sys/dev/drm/i915/intel_psr.c
725
void intel_psr_disable(struct intel_dp *intel_dp,
sys/dev/drm/i915/intel_psr.c
728
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
sys/dev/drm/i915/intel_psr.c
742
intel_psr_disable_locked(intel_dp);
sys/dev/drm/i915/intel_psr.c
839
struct intel_dp *dp;