Commit af67009c authored by Jani Nikula's avatar Jani Nikula

drm/i915/dp: use struct drm_device based logging

Convert all the DRM_* logging macros to the struct drm_device based
macros to provide device specific logging.

No functional changes.

Generated using the following semantic patch, originally written by
Wambui Karuga <wambui.karugax@gmail.com>, with manual fixups on top:

@@
identifier fn, T;
@@

fn(...,struct drm_i915_private *T,...) {
<+...
(
-DRM_INFO(
+drm_info(&T->drm,
...)
|
-DRM_NOTE(
+drm_notice(&T->drm,
...)
|
-DRM_ERROR(
+drm_err(&T->drm,
...)
|
-DRM_WARN(
+drm_warn(&T->drm,
...)
|
-DRM_DEBUG_DRIVER(
+drm_dbg(&T->drm,
...)
|
-DRM_DEBUG_KMS(
+drm_dbg_kms(&T->drm,
...)
|
-DRM_DEBUG_ATOMIC(
+drm_dbg_atomic(&T->drm,
...)
)
...+>
}

@@
identifier fn, T;
@@

fn(...) {
...
struct drm_i915_private *T = ...;
<+...
(
-DRM_INFO(
+drm_info(&T->drm,
...)
|
-DRM_NOTE(
+drm_notice(&T->drm,
...)
|
-DRM_ERROR(
+drm_err(&T->drm,
...)
|
-DRM_WARN(
+drm_warn(&T->drm,
...)
|
-DRM_DEBUG_DRIVER(
+drm_dbg(&T->drm,
...)
|
-DRM_DEBUG_KMS(
+drm_dbg_kms(&T->drm,
...)
|
-DRM_DEBUG_ATOMIC(
+drm_dbg_atomic(&T->drm,
...)
)
...+>
}

Cc: Wambui Karuga <wambui.karugax@gmail.com>
Reviewed-by: default avatarWambui Karuga <wambui.karugax@gmail.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200402114819.17232-4-jani.nikula@intel.com
parent 0383443d
...@@ -463,6 +463,7 @@ static bool intel_dp_can_link_train_fallback_for_edp(struct intel_dp *intel_dp, ...@@ -463,6 +463,7 @@ static bool intel_dp_can_link_train_fallback_for_edp(struct intel_dp *intel_dp,
int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp, int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
int link_rate, u8 lane_count) int link_rate, u8 lane_count)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
int index; int index;
index = intel_dp_rate_index(intel_dp->common_rates, index = intel_dp_rate_index(intel_dp->common_rates,
...@@ -473,7 +474,8 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp, ...@@ -473,7 +474,8 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
!intel_dp_can_link_train_fallback_for_edp(intel_dp, !intel_dp_can_link_train_fallback_for_edp(intel_dp,
intel_dp->common_rates[index - 1], intel_dp->common_rates[index - 1],
lane_count)) { lane_count)) {
DRM_DEBUG_KMS("Retrying Link training for eDP with same parameters\n"); drm_dbg_kms(&i915->drm,
"Retrying Link training for eDP with same parameters\n");
return 0; return 0;
} }
intel_dp->max_link_rate = intel_dp->common_rates[index - 1]; intel_dp->max_link_rate = intel_dp->common_rates[index - 1];
...@@ -483,13 +485,14 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp, ...@@ -483,13 +485,14 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
!intel_dp_can_link_train_fallback_for_edp(intel_dp, !intel_dp_can_link_train_fallback_for_edp(intel_dp,
intel_dp_max_common_rate(intel_dp), intel_dp_max_common_rate(intel_dp),
lane_count >> 1)) { lane_count >> 1)) {
DRM_DEBUG_KMS("Retrying Link training for eDP with same parameters\n"); drm_dbg_kms(&i915->drm,
"Retrying Link training for eDP with same parameters\n");
return 0; return 0;
} }
intel_dp->max_link_rate = intel_dp_max_common_rate(intel_dp); intel_dp->max_link_rate = intel_dp_max_common_rate(intel_dp);
intel_dp->max_link_lane_count = lane_count >> 1; intel_dp->max_link_lane_count = lane_count >> 1;
} else { } else {
DRM_ERROR("Link Training Unsuccessful\n"); drm_err(&i915->drm, "Link Training Unsuccessful\n");
return -1; return -1;
} }
...@@ -564,6 +567,7 @@ static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915, ...@@ -564,6 +567,7 @@ static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915,
static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp, static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp,
int mode_clock, int mode_hdisplay) int mode_clock, int mode_hdisplay)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 min_slice_count, i; u8 min_slice_count, i;
int max_slice_width; int max_slice_width;
...@@ -576,8 +580,9 @@ static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp, ...@@ -576,8 +580,9 @@ static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp,
max_slice_width = drm_dp_dsc_sink_max_slice_width(intel_dp->dsc_dpcd); max_slice_width = drm_dp_dsc_sink_max_slice_width(intel_dp->dsc_dpcd);
if (max_slice_width < DP_DSC_MIN_SLICE_WIDTH_VALUE) { if (max_slice_width < DP_DSC_MIN_SLICE_WIDTH_VALUE) {
DRM_DEBUG_KMS("Unsupported slice width %d by DP DSC Sink device\n", drm_dbg_kms(&i915->drm,
max_slice_width); "Unsupported slice width %d by DP DSC Sink device\n",
max_slice_width);
return 0; return 0;
} }
/* Also take into account max slice width */ /* Also take into account max slice width */
...@@ -595,7 +600,8 @@ static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp, ...@@ -595,7 +600,8 @@ static u8 intel_dp_dsc_get_slice_count(struct intel_dp *intel_dp,
return valid_dsc_slicecount[i]; return valid_dsc_slicecount[i];
} }
DRM_DEBUG_KMS("Unsupported Slice Count %d\n", min_slice_count); drm_dbg_kms(&i915->drm, "Unsupported Slice Count %d\n",
min_slice_count);
return 0; return 0;
} }
...@@ -1843,6 +1849,7 @@ static void snprintf_int_array(char *str, size_t len, ...@@ -1843,6 +1849,7 @@ static void snprintf_int_array(char *str, size_t len,
static void intel_dp_print_rates(struct intel_dp *intel_dp) static void intel_dp_print_rates(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
char str[128]; /* FIXME: too big for stack? */ char str[128]; /* FIXME: too big for stack? */
if (!drm_debug_enabled(DRM_UT_KMS)) if (!drm_debug_enabled(DRM_UT_KMS))
...@@ -1850,15 +1857,15 @@ static void intel_dp_print_rates(struct intel_dp *intel_dp) ...@@ -1850,15 +1857,15 @@ static void intel_dp_print_rates(struct intel_dp *intel_dp)
snprintf_int_array(str, sizeof(str), snprintf_int_array(str, sizeof(str),
intel_dp->source_rates, intel_dp->num_source_rates); intel_dp->source_rates, intel_dp->num_source_rates);
DRM_DEBUG_KMS("source rates: %s\n", str); drm_dbg_kms(&i915->drm, "source rates: %s\n", str);
snprintf_int_array(str, sizeof(str), snprintf_int_array(str, sizeof(str),
intel_dp->sink_rates, intel_dp->num_sink_rates); intel_dp->sink_rates, intel_dp->num_sink_rates);
DRM_DEBUG_KMS("sink rates: %s\n", str); drm_dbg_kms(&i915->drm, "sink rates: %s\n", str);
snprintf_int_array(str, sizeof(str), snprintf_int_array(str, sizeof(str),
intel_dp->common_rates, intel_dp->num_common_rates); intel_dp->common_rates, intel_dp->num_common_rates);
DRM_DEBUG_KMS("common rates: %s\n", str); drm_dbg_kms(&i915->drm, "common rates: %s\n", str);
} }
int int
...@@ -1965,6 +1972,8 @@ intel_dp_adjust_compliance_config(struct intel_dp *intel_dp, ...@@ -1965,6 +1972,8 @@ intel_dp_adjust_compliance_config(struct intel_dp *intel_dp,
struct intel_crtc_state *pipe_config, struct intel_crtc_state *pipe_config,
struct link_config_limits *limits) struct link_config_limits *limits)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
/* For DP Compliance we override the computed bpp for the pipe */ /* For DP Compliance we override the computed bpp for the pipe */
if (intel_dp->compliance.test_data.bpc != 0) { if (intel_dp->compliance.test_data.bpc != 0) {
int bpp = 3 * intel_dp->compliance.test_data.bpc; int bpp = 3 * intel_dp->compliance.test_data.bpc;
...@@ -1972,7 +1981,7 @@ intel_dp_adjust_compliance_config(struct intel_dp *intel_dp, ...@@ -1972,7 +1981,7 @@ intel_dp_adjust_compliance_config(struct intel_dp *intel_dp,
limits->min_bpp = limits->max_bpp = bpp; limits->min_bpp = limits->max_bpp = bpp;
pipe_config->dither_force_disable = bpp == 6 * 3; pipe_config->dither_force_disable = bpp == 6 * 3;
DRM_DEBUG_KMS("Setting pipe_bpp to %d\n", bpp); drm_dbg_kms(&i915->drm, "Setting pipe_bpp to %d\n", bpp);
} }
/* Use values requested by Compliance Test Request */ /* Use values requested by Compliance Test Request */
...@@ -2066,6 +2075,7 @@ static int intel_dp_dsc_compute_bpp(struct intel_dp *intel_dp, u8 dsc_max_bpc) ...@@ -2066,6 +2075,7 @@ static int intel_dp_dsc_compute_bpp(struct intel_dp *intel_dp, u8 dsc_max_bpc)
static int intel_dp_dsc_compute_params(struct intel_encoder *encoder, static int intel_dp_dsc_compute_params(struct intel_encoder *encoder,
struct intel_crtc_state *crtc_state) struct intel_crtc_state *crtc_state)
{ {
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
struct intel_dp *intel_dp = enc_to_intel_dp(encoder); struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config; struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
u8 line_buf_depth; u8 line_buf_depth;
...@@ -2100,7 +2110,8 @@ static int intel_dp_dsc_compute_params(struct intel_encoder *encoder, ...@@ -2100,7 +2110,8 @@ static int intel_dp_dsc_compute_params(struct intel_encoder *encoder,
line_buf_depth = drm_dp_dsc_sink_line_buf_depth(intel_dp->dsc_dpcd); line_buf_depth = drm_dp_dsc_sink_line_buf_depth(intel_dp->dsc_dpcd);
if (!line_buf_depth) { if (!line_buf_depth) {
DRM_DEBUG_KMS("DSC Sink Line Buffer Depth invalid\n"); drm_dbg_kms(&i915->drm,
"DSC Sink Line Buffer Depth invalid\n");
return -EINVAL; return -EINVAL;
} }
...@@ -2241,6 +2252,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder, ...@@ -2241,6 +2252,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
struct intel_crtc_state *pipe_config, struct intel_crtc_state *pipe_config,
struct drm_connector_state *conn_state) struct drm_connector_state *conn_state)
{ {
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
const struct drm_display_mode *adjusted_mode = const struct drm_display_mode *adjusted_mode =
&pipe_config->hw.adjusted_mode; &pipe_config->hw.adjusted_mode;
struct intel_dp *intel_dp = enc_to_intel_dp(encoder); struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
...@@ -2277,11 +2289,11 @@ intel_dp_compute_link_config(struct intel_encoder *encoder, ...@@ -2277,11 +2289,11 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
intel_dp_adjust_compliance_config(intel_dp, pipe_config, &limits); intel_dp_adjust_compliance_config(intel_dp, pipe_config, &limits);
DRM_DEBUG_KMS("DP link computation with max lane count %i " drm_dbg_kms(&i915->drm, "DP link computation with max lane count %i "
"max rate %d max bpp %d pixel clock %iKHz\n", "max rate %d max bpp %d pixel clock %iKHz\n",
limits.max_lane_count, limits.max_lane_count,
intel_dp->common_rates[limits.max_clock], intel_dp->common_rates[limits.max_clock],
limits.max_bpp, adjusted_mode->crtc_clock); limits.max_bpp, adjusted_mode->crtc_clock);
/* /*
* Optimize for slow and wide. This is the place to add alternative * Optimize for slow and wide. This is the place to add alternative
...@@ -2290,7 +2302,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder, ...@@ -2290,7 +2302,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
ret = intel_dp_compute_link_config_wide(intel_dp, pipe_config, &limits); ret = intel_dp_compute_link_config_wide(intel_dp, pipe_config, &limits);
/* enable compression if the mode doesn't fit available BW */ /* enable compression if the mode doesn't fit available BW */
DRM_DEBUG_KMS("Force DSC en = %d\n", intel_dp->force_dsc_en); drm_dbg_kms(&i915->drm, "Force DSC en = %d\n", intel_dp->force_dsc_en);
if (ret || intel_dp->force_dsc_en) { if (ret || intel_dp->force_dsc_en) {
ret = intel_dp_dsc_compute_config(intel_dp, pipe_config, ret = intel_dp_dsc_compute_config(intel_dp, pipe_config,
conn_state, &limits); conn_state, &limits);
...@@ -2299,26 +2311,29 @@ intel_dp_compute_link_config(struct intel_encoder *encoder, ...@@ -2299,26 +2311,29 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
} }
if (pipe_config->dsc.compression_enable) { if (pipe_config->dsc.compression_enable) {
DRM_DEBUG_KMS("DP lane count %d clock %d Input bpp %d Compressed bpp %d\n", drm_dbg_kms(&i915->drm,
pipe_config->lane_count, pipe_config->port_clock, "DP lane count %d clock %d Input bpp %d Compressed bpp %d\n",
pipe_config->pipe_bpp, pipe_config->lane_count, pipe_config->port_clock,
pipe_config->dsc.compressed_bpp); pipe_config->pipe_bpp,
pipe_config->dsc.compressed_bpp);
DRM_DEBUG_KMS("DP link rate required %i available %i\n",
intel_dp_link_required(adjusted_mode->crtc_clock, drm_dbg_kms(&i915->drm,
pipe_config->dsc.compressed_bpp), "DP link rate required %i available %i\n",
intel_dp_max_data_rate(pipe_config->port_clock, intel_dp_link_required(adjusted_mode->crtc_clock,
pipe_config->lane_count)); pipe_config->dsc.compressed_bpp),
intel_dp_max_data_rate(pipe_config->port_clock,
pipe_config->lane_count));
} else { } else {
DRM_DEBUG_KMS("DP lane count %d clock %d bpp %d\n", drm_dbg_kms(&i915->drm, "DP lane count %d clock %d bpp %d\n",
pipe_config->lane_count, pipe_config->port_clock, pipe_config->lane_count, pipe_config->port_clock,
pipe_config->pipe_bpp); pipe_config->pipe_bpp);
DRM_DEBUG_KMS("DP link rate required %i available %i\n", drm_dbg_kms(&i915->drm,
intel_dp_link_required(adjusted_mode->crtc_clock, "DP link rate required %i available %i\n",
pipe_config->pipe_bpp), intel_dp_link_required(adjusted_mode->crtc_clock,
intel_dp_max_data_rate(pipe_config->port_clock, pipe_config->pipe_bpp),
pipe_config->lane_count)); intel_dp_max_data_rate(pipe_config->port_clock,
pipe_config->lane_count));
} }
return 0; return 0;
} }
...@@ -2328,6 +2343,7 @@ intel_dp_ycbcr420_config(struct intel_dp *intel_dp, ...@@ -2328,6 +2343,7 @@ intel_dp_ycbcr420_config(struct intel_dp *intel_dp,
struct drm_connector *connector, struct drm_connector *connector,
struct intel_crtc_state *crtc_state) struct intel_crtc_state *crtc_state)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
const struct drm_display_info *info = &connector->display_info; const struct drm_display_info *info = &connector->display_info;
const struct drm_display_mode *adjusted_mode = const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode; &crtc_state->hw.adjusted_mode;
...@@ -2344,7 +2360,8 @@ intel_dp_ycbcr420_config(struct intel_dp *intel_dp, ...@@ -2344,7 +2360,8 @@ intel_dp_ycbcr420_config(struct intel_dp *intel_dp,
/* YCBCR 420 output conversion needs a scaler */ /* YCBCR 420 output conversion needs a scaler */
ret = skl_update_scaler_crtc(crtc_state); ret = skl_update_scaler_crtc(crtc_state);
if (ret) { if (ret) {
DRM_DEBUG_KMS("Scaler allocation for output failed\n"); drm_dbg_kms(&i915->drm,
"Scaler allocation for output failed\n");
return ret; return ret;
} }
...@@ -2770,22 +2787,27 @@ static void wait_panel_status(struct intel_dp *intel_dp, ...@@ -2770,22 +2787,27 @@ static void wait_panel_status(struct intel_dp *intel_dp,
static void wait_panel_on(struct intel_dp *intel_dp) static void wait_panel_on(struct intel_dp *intel_dp)
{ {
DRM_DEBUG_KMS("Wait for panel power on\n"); struct drm_i915_private *i915 = dp_to_i915(intel_dp);
drm_dbg_kms(&i915->drm, "Wait for panel power on\n");
wait_panel_status(intel_dp, IDLE_ON_MASK, IDLE_ON_VALUE); wait_panel_status(intel_dp, IDLE_ON_MASK, IDLE_ON_VALUE);
} }
static void wait_panel_off(struct intel_dp *intel_dp) static void wait_panel_off(struct intel_dp *intel_dp)
{ {
DRM_DEBUG_KMS("Wait for panel power off time\n"); struct drm_i915_private *i915 = dp_to_i915(intel_dp);
drm_dbg_kms(&i915->drm, "Wait for panel power off time\n");
wait_panel_status(intel_dp, IDLE_OFF_MASK, IDLE_OFF_VALUE); wait_panel_status(intel_dp, IDLE_OFF_MASK, IDLE_OFF_VALUE);
} }
static void wait_panel_power_cycle(struct intel_dp *intel_dp) static void wait_panel_power_cycle(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
ktime_t panel_power_on_time; ktime_t panel_power_on_time;
s64 panel_power_off_duration; s64 panel_power_off_duration;
DRM_DEBUG_KMS("Wait for panel power cycle\n"); drm_dbg_kms(&i915->drm, "Wait for panel power cycle\n");
/* take the difference of currrent time and panel power off time /* take the difference of currrent time and panel power off time
* and then make panel wait for t11_t12 if needed. */ * and then make panel wait for t11_t12 if needed. */
...@@ -3149,11 +3171,12 @@ void intel_edp_backlight_on(const struct intel_crtc_state *crtc_state, ...@@ -3149,11 +3171,12 @@ void intel_edp_backlight_on(const struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state) const struct drm_connector_state *conn_state)
{ {
struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(conn_state->best_encoder)); struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(conn_state->best_encoder));
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
if (!intel_dp_is_edp(intel_dp)) if (!intel_dp_is_edp(intel_dp))
return; return;
DRM_DEBUG_KMS("\n"); drm_dbg_kms(&i915->drm, "\n");
intel_panel_enable_backlight(crtc_state, conn_state); intel_panel_enable_backlight(crtc_state, conn_state);
_intel_edp_backlight_on(intel_dp); _intel_edp_backlight_on(intel_dp);
...@@ -3187,11 +3210,12 @@ static void _intel_edp_backlight_off(struct intel_dp *intel_dp) ...@@ -3187,11 +3210,12 @@ static void _intel_edp_backlight_off(struct intel_dp *intel_dp)
void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state) void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state)
{ {
struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(old_conn_state->best_encoder)); struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(old_conn_state->best_encoder));
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
if (!intel_dp_is_edp(intel_dp)) if (!intel_dp_is_edp(intel_dp))
return; return;
DRM_DEBUG_KMS("\n"); drm_dbg_kms(&i915->drm, "\n");
_intel_edp_backlight_off(intel_dp); _intel_edp_backlight_off(intel_dp);
intel_panel_disable_backlight(old_conn_state); intel_panel_disable_backlight(old_conn_state);
...@@ -3204,6 +3228,7 @@ void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state) ...@@ -3204,6 +3228,7 @@ void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state)
static void intel_edp_backlight_power(struct intel_connector *connector, static void intel_edp_backlight_power(struct intel_connector *connector,
bool enable) bool enable)
{ {
struct drm_i915_private *i915 = to_i915(connector->base.dev);
struct intel_dp *intel_dp = intel_attached_dp(connector); struct intel_dp *intel_dp = intel_attached_dp(connector);
intel_wakeref_t wakeref; intel_wakeref_t wakeref;
bool is_enabled; bool is_enabled;
...@@ -3214,8 +3239,8 @@ static void intel_edp_backlight_power(struct intel_connector *connector, ...@@ -3214,8 +3239,8 @@ static void intel_edp_backlight_power(struct intel_connector *connector,
if (is_enabled == enable) if (is_enabled == enable)
return; return;
DRM_DEBUG_KMS("panel power control backlight %s\n", drm_dbg_kms(&i915->drm, "panel power control backlight %s\n",
enable ? "enable" : "disable"); enable ? "enable" : "disable");
if (enable) if (enable)
_intel_edp_backlight_on(intel_dp); _intel_edp_backlight_on(intel_dp);
...@@ -3325,6 +3350,7 @@ void intel_dp_sink_set_decompression_state(struct intel_dp *intel_dp, ...@@ -3325,6 +3350,7 @@ void intel_dp_sink_set_decompression_state(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state, const struct intel_crtc_state *crtc_state,
bool enable) bool enable)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
int ret; int ret;
if (!crtc_state->dsc.compression_enable) if (!crtc_state->dsc.compression_enable)
...@@ -3333,13 +3359,15 @@ void intel_dp_sink_set_decompression_state(struct intel_dp *intel_dp, ...@@ -3333,13 +3359,15 @@ void intel_dp_sink_set_decompression_state(struct intel_dp *intel_dp,
ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_DSC_ENABLE, ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_DSC_ENABLE,
enable ? DP_DECOMPRESSION_EN : 0); enable ? DP_DECOMPRESSION_EN : 0);
if (ret < 0) if (ret < 0)
DRM_DEBUG_KMS("Failed to %s sink decompression state\n", drm_dbg_kms(&i915->drm,
enable ? "enable" : "disable"); "Failed to %s sink decompression state\n",
enable ? "enable" : "disable");
} }
/* If the sink supports it, try to set the power state appropriately */ /* If the sink supports it, try to set the power state appropriately */
void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode) void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
int ret, i; int ret, i;
/* Should have a valid DPCD by this point */ /* Should have a valid DPCD by this point */
...@@ -3372,8 +3400,8 @@ void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode) ...@@ -3372,8 +3400,8 @@ void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
} }
if (ret != 1) if (ret != 1)
DRM_DEBUG_KMS("failed to %s sink power state\n", drm_dbg_kms(&i915->drm, "failed to %s sink power state\n",
mode == DRM_MODE_DPMS_ON ? "enable" : "disable"); mode == DRM_MODE_DPMS_ON ? "enable" : "disable");
} }
static bool cpt_dp_port_selected(struct drm_i915_private *dev_priv, static bool cpt_dp_port_selected(struct drm_i915_private *dev_priv,
...@@ -4471,6 +4499,7 @@ intel_dp_link_down(struct intel_encoder *encoder, ...@@ -4471,6 +4499,7 @@ intel_dp_link_down(struct intel_encoder *encoder,
static void static void
intel_dp_extended_receiver_capabilities(struct intel_dp *intel_dp) intel_dp_extended_receiver_capabilities(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 dpcd_ext[6]; u8 dpcd_ext[6];
/* /*
...@@ -4486,20 +4515,22 @@ intel_dp_extended_receiver_capabilities(struct intel_dp *intel_dp) ...@@ -4486,20 +4515,22 @@ intel_dp_extended_receiver_capabilities(struct intel_dp *intel_dp)
if (drm_dp_dpcd_read(&intel_dp->aux, DP_DP13_DPCD_REV, if (drm_dp_dpcd_read(&intel_dp->aux, DP_DP13_DPCD_REV,
&dpcd_ext, sizeof(dpcd_ext)) != sizeof(dpcd_ext)) { &dpcd_ext, sizeof(dpcd_ext)) != sizeof(dpcd_ext)) {
DRM_ERROR("DPCD failed read at extended capabilities\n"); drm_err(&i915->drm,
"DPCD failed read at extended capabilities\n");
return; return;
} }
if (intel_dp->dpcd[DP_DPCD_REV] > dpcd_ext[DP_DPCD_REV]) { if (intel_dp->dpcd[DP_DPCD_REV] > dpcd_ext[DP_DPCD_REV]) {
DRM_DEBUG_KMS("DPCD extended DPCD rev less than base DPCD rev\n"); drm_dbg_kms(&i915->drm,
"DPCD extended DPCD rev less than base DPCD rev\n");
return; return;
} }
if (!memcmp(intel_dp->dpcd, dpcd_ext, sizeof(dpcd_ext))) if (!memcmp(intel_dp->dpcd, dpcd_ext, sizeof(dpcd_ext)))
return; return;
DRM_DEBUG_KMS("Base DPCD: %*ph\n", drm_dbg_kms(&i915->drm, "Base DPCD: %*ph\n",
(int)sizeof(intel_dp->dpcd), intel_dp->dpcd); (int)sizeof(intel_dp->dpcd), intel_dp->dpcd);
memcpy(intel_dp->dpcd, dpcd_ext, sizeof(dpcd_ext)); memcpy(intel_dp->dpcd, dpcd_ext, sizeof(dpcd_ext));
} }
...@@ -4507,13 +4538,16 @@ intel_dp_extended_receiver_capabilities(struct intel_dp *intel_dp) ...@@ -4507,13 +4538,16 @@ intel_dp_extended_receiver_capabilities(struct intel_dp *intel_dp)
bool bool
intel_dp_read_dpcd(struct intel_dp *intel_dp) intel_dp_read_dpcd(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
if (drm_dp_dpcd_read(&intel_dp->aux, 0x000, intel_dp->dpcd, if (drm_dp_dpcd_read(&intel_dp->aux, 0x000, intel_dp->dpcd,
sizeof(intel_dp->dpcd)) < 0) sizeof(intel_dp->dpcd)) < 0)
return false; /* aux transfer failed */ return false; /* aux transfer failed */
intel_dp_extended_receiver_capabilities(intel_dp); intel_dp_extended_receiver_capabilities(intel_dp);
DRM_DEBUG_KMS("DPCD: %*ph\n", (int) sizeof(intel_dp->dpcd), intel_dp->dpcd); drm_dbg_kms(&i915->drm, "DPCD: %*ph\n", (int)sizeof(intel_dp->dpcd),
intel_dp->dpcd);
return intel_dp->dpcd[DP_DPCD_REV] != 0; return intel_dp->dpcd[DP_DPCD_REV] != 0;
} }
...@@ -4530,6 +4564,8 @@ bool intel_dp_get_colorimetry_status(struct intel_dp *intel_dp) ...@@ -4530,6 +4564,8 @@ bool intel_dp_get_colorimetry_status(struct intel_dp *intel_dp)
static void intel_dp_get_dsc_sink_cap(struct intel_dp *intel_dp) static void intel_dp_get_dsc_sink_cap(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
/* /*
* Clear the cached register set to avoid using stale values * Clear the cached register set to avoid using stale values
* for the sinks that do not support DSC. * for the sinks that do not support DSC.
...@@ -4545,20 +4581,23 @@ static void intel_dp_get_dsc_sink_cap(struct intel_dp *intel_dp) ...@@ -4545,20 +4581,23 @@ static void intel_dp_get_dsc_sink_cap(struct intel_dp *intel_dp)
if (drm_dp_dpcd_read(&intel_dp->aux, DP_DSC_SUPPORT, if (drm_dp_dpcd_read(&intel_dp->aux, DP_DSC_SUPPORT,
intel_dp->dsc_dpcd, intel_dp->dsc_dpcd,
sizeof(intel_dp->dsc_dpcd)) < 0) sizeof(intel_dp->dsc_dpcd)) < 0)
DRM_ERROR("Failed to read DPCD register 0x%x\n", drm_err(&i915->drm,
DP_DSC_SUPPORT); "Failed to read DPCD register 0x%x\n",
DP_DSC_SUPPORT);
DRM_DEBUG_KMS("DSC DPCD: %*ph\n", drm_dbg_kms(&i915->drm, "DSC DPCD: %*ph\n",
(int)sizeof(intel_dp->dsc_dpcd), (int)sizeof(intel_dp->dsc_dpcd),
intel_dp->dsc_dpcd); intel_dp->dsc_dpcd);
/* FEC is supported only on DP 1.4 */ /* FEC is supported only on DP 1.4 */
if (!intel_dp_is_edp(intel_dp) && if (!intel_dp_is_edp(intel_dp) &&
drm_dp_dpcd_readb(&intel_dp->aux, DP_FEC_CAPABILITY, drm_dp_dpcd_readb(&intel_dp->aux, DP_FEC_CAPABILITY,
&intel_dp->fec_capable) < 0) &intel_dp->fec_capable) < 0)
DRM_ERROR("Failed to read FEC DPCD register\n"); drm_err(&i915->drm,
"Failed to read FEC DPCD register\n");
DRM_DEBUG_KMS("FEC CAPABILITY: %x\n", intel_dp->fec_capable); drm_dbg_kms(&i915->drm, "FEC CAPABILITY: %x\n",
intel_dp->fec_capable);
} }
} }
...@@ -4732,14 +4771,16 @@ intel_dp_can_mst(struct intel_dp *intel_dp) ...@@ -4732,14 +4771,16 @@ intel_dp_can_mst(struct intel_dp *intel_dp)
static void static void
intel_dp_configure_mst(struct intel_dp *intel_dp) intel_dp_configure_mst(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
struct intel_encoder *encoder = struct intel_encoder *encoder =
&dp_to_dig_port(intel_dp)->base; &dp_to_dig_port(intel_dp)->base;
bool sink_can_mst = intel_dp_sink_can_mst(intel_dp); bool sink_can_mst = intel_dp_sink_can_mst(intel_dp);
DRM_DEBUG_KMS("[ENCODER:%d:%s] MST support: port: %s, sink: %s, modparam: %s\n", drm_dbg_kms(&i915->drm,
encoder->base.base.id, encoder->base.name, "[ENCODER:%d:%s] MST support: port: %s, sink: %s, modparam: %s\n",
yesno(intel_dp->can_mst), yesno(sink_can_mst), encoder->base.base.id, encoder->base.name,
yesno(i915_modparams.enable_dp_mst)); yesno(intel_dp->can_mst), yesno(sink_can_mst),
yesno(i915_modparams.enable_dp_mst));
if (!intel_dp->can_mst) if (!intel_dp->can_mst)
return; return;
...@@ -5113,6 +5154,7 @@ intel_dp_setup_hdr_metadata_infoframe_sdp(struct intel_dp *intel_dp, ...@@ -5113,6 +5154,7 @@ intel_dp_setup_hdr_metadata_infoframe_sdp(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state, const struct intel_crtc_state *crtc_state,
const struct drm_connector_state *conn_state) const struct drm_connector_state *conn_state)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
struct dp_sdp infoframe_sdp = {}; struct dp_sdp infoframe_sdp = {};
struct hdmi_drm_infoframe drm_infoframe = {}; struct hdmi_drm_infoframe drm_infoframe = {};
...@@ -5123,18 +5165,20 @@ intel_dp_setup_hdr_metadata_infoframe_sdp(struct intel_dp *intel_dp, ...@@ -5123,18 +5165,20 @@ intel_dp_setup_hdr_metadata_infoframe_sdp(struct intel_dp *intel_dp,
ret = drm_hdmi_infoframe_set_hdr_metadata(&drm_infoframe, conn_state); ret = drm_hdmi_infoframe_set_hdr_metadata(&drm_infoframe, conn_state);
if (ret) { if (ret) {
DRM_DEBUG_KMS("couldn't set HDR metadata in infoframe\n"); drm_dbg_kms(&i915->drm,
"couldn't set HDR metadata in infoframe\n");
return; return;
} }
len = hdmi_drm_infoframe_pack_only(&drm_infoframe, buf, sizeof(buf)); len = hdmi_drm_infoframe_pack_only(&drm_infoframe, buf, sizeof(buf));
if (len < 0) { if (len < 0) {
DRM_DEBUG_KMS("buffer size is smaller than hdr metadata infoframe\n"); drm_dbg_kms(&i915->drm,
"buffer size is smaller than hdr metadata infoframe\n");
return; return;
} }
if (len != infoframe_size) { if (len != infoframe_size) {
DRM_DEBUG_KMS("wrong static hdr metadata size\n"); drm_dbg_kms(&i915->drm, "wrong static hdr metadata size\n");
return; return;
} }
...@@ -5212,6 +5256,7 @@ void intel_dp_hdr_metadata_enable(struct intel_dp *intel_dp, ...@@ -5212,6 +5256,7 @@ void intel_dp_hdr_metadata_enable(struct intel_dp *intel_dp,
static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp) static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
int status = 0; int status = 0;
int test_link_rate; int test_link_rate;
u8 test_lane_count, test_link_bw; u8 test_lane_count, test_link_bw;
...@@ -5223,7 +5268,7 @@ static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp) ...@@ -5223,7 +5268,7 @@ static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp)
&test_lane_count); &test_lane_count);
if (status <= 0) { if (status <= 0) {
DRM_DEBUG_KMS("Lane count read failed\n"); drm_dbg_kms(&i915->drm, "Lane count read failed\n");
return DP_TEST_NAK; return DP_TEST_NAK;
} }
test_lane_count &= DP_MAX_LANE_COUNT_MASK; test_lane_count &= DP_MAX_LANE_COUNT_MASK;
...@@ -5231,7 +5276,7 @@ static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp) ...@@ -5231,7 +5276,7 @@ static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp)
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_LINK_RATE, status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_LINK_RATE,
&test_link_bw); &test_link_bw);
if (status <= 0) { if (status <= 0) {
DRM_DEBUG_KMS("Link Rate read failed\n"); drm_dbg_kms(&i915->drm, "Link Rate read failed\n");
return DP_TEST_NAK; return DP_TEST_NAK;
} }
test_link_rate = drm_dp_bw_code_to_link_rate(test_link_bw); test_link_rate = drm_dp_bw_code_to_link_rate(test_link_bw);
...@@ -5249,6 +5294,7 @@ static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp) ...@@ -5249,6 +5294,7 @@ static u8 intel_dp_autotest_link_training(struct intel_dp *intel_dp)
static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp) static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 test_pattern; u8 test_pattern;
u8 test_misc; u8 test_misc;
__be16 h_width, v_height; __be16 h_width, v_height;
...@@ -5258,7 +5304,7 @@ static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp) ...@@ -5258,7 +5304,7 @@ static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp)
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_PATTERN, status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_PATTERN,
&test_pattern); &test_pattern);
if (status <= 0) { if (status <= 0) {
DRM_DEBUG_KMS("Test pattern read failed\n"); drm_dbg_kms(&i915->drm, "Test pattern read failed\n");
return DP_TEST_NAK; return DP_TEST_NAK;
} }
if (test_pattern != DP_COLOR_RAMP) if (test_pattern != DP_COLOR_RAMP)
...@@ -5267,21 +5313,21 @@ static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp) ...@@ -5267,21 +5313,21 @@ static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp)
status = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_H_WIDTH_HI, status = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_H_WIDTH_HI,
&h_width, 2); &h_width, 2);
if (status <= 0) { if (status <= 0) {
DRM_DEBUG_KMS("H Width read failed\n"); drm_dbg_kms(&i915->drm, "H Width read failed\n");
return DP_TEST_NAK; return DP_TEST_NAK;
} }
status = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_V_HEIGHT_HI, status = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_V_HEIGHT_HI,
&v_height, 2); &v_height, 2);
if (status <= 0) { if (status <= 0) {
DRM_DEBUG_KMS("V Height read failed\n"); drm_dbg_kms(&i915->drm, "V Height read failed\n");
return DP_TEST_NAK; return DP_TEST_NAK;
} }
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_MISC0, status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_MISC0,
&test_misc); &test_misc);
if (status <= 0) { if (status <= 0) {
DRM_DEBUG_KMS("TEST MISC read failed\n"); drm_dbg_kms(&i915->drm, "TEST MISC read failed\n");
return DP_TEST_NAK; return DP_TEST_NAK;
} }
if ((test_misc & DP_TEST_COLOR_FORMAT_MASK) != DP_COLOR_FORMAT_RGB) if ((test_misc & DP_TEST_COLOR_FORMAT_MASK) != DP_COLOR_FORMAT_RGB)
...@@ -5310,6 +5356,7 @@ static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp) ...@@ -5310,6 +5356,7 @@ static u8 intel_dp_autotest_video_pattern(struct intel_dp *intel_dp)
static u8 intel_dp_autotest_edid(struct intel_dp *intel_dp) static u8 intel_dp_autotest_edid(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 test_result = DP_TEST_ACK; u8 test_result = DP_TEST_ACK;
struct intel_connector *intel_connector = intel_dp->attached_connector; struct intel_connector *intel_connector = intel_dp->attached_connector;
struct drm_connector *connector = &intel_connector->base; struct drm_connector *connector = &intel_connector->base;
...@@ -5326,9 +5373,10 @@ static u8 intel_dp_autotest_edid(struct intel_dp *intel_dp) ...@@ -5326,9 +5373,10 @@ static u8 intel_dp_autotest_edid(struct intel_dp *intel_dp)
*/ */
if (intel_dp->aux.i2c_nack_count > 0 || if (intel_dp->aux.i2c_nack_count > 0 ||
intel_dp->aux.i2c_defer_count > 0) intel_dp->aux.i2c_defer_count > 0)
DRM_DEBUG_KMS("EDID read had %d NACKs, %d DEFERs\n", drm_dbg_kms(&i915->drm,
intel_dp->aux.i2c_nack_count, "EDID read had %d NACKs, %d DEFERs\n",
intel_dp->aux.i2c_defer_count); intel_dp->aux.i2c_nack_count,
intel_dp->aux.i2c_defer_count);
intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_FAILSAFE; intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_FAILSAFE;
} else { } else {
struct edid *block = intel_connector->detect_edid; struct edid *block = intel_connector->detect_edid;
...@@ -5340,7 +5388,8 @@ static u8 intel_dp_autotest_edid(struct intel_dp *intel_dp) ...@@ -5340,7 +5388,8 @@ static u8 intel_dp_autotest_edid(struct intel_dp *intel_dp)
if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_EDID_CHECKSUM, if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_EDID_CHECKSUM,
block->checksum) <= 0) block->checksum) <= 0)
DRM_DEBUG_KMS("Failed to write EDID checksum\n"); drm_dbg_kms(&i915->drm,
"Failed to write EDID checksum\n");
test_result = DP_TEST_ACK | DP_TEST_EDID_CHECKSUM_WRITE; test_result = DP_TEST_ACK | DP_TEST_EDID_CHECKSUM_WRITE;
intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_PREFERRED; intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_PREFERRED;
...@@ -5360,35 +5409,38 @@ static u8 intel_dp_autotest_phy_pattern(struct intel_dp *intel_dp) ...@@ -5360,35 +5409,38 @@ static u8 intel_dp_autotest_phy_pattern(struct intel_dp *intel_dp)
static void intel_dp_handle_test_request(struct intel_dp *intel_dp) static void intel_dp_handle_test_request(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 response = DP_TEST_NAK; u8 response = DP_TEST_NAK;
u8 request = 0; u8 request = 0;
int status; int status;
status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_REQUEST, &request); status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_REQUEST, &request);
if (status <= 0) { if (status <= 0) {
DRM_DEBUG_KMS("Could not read test request from sink\n"); drm_dbg_kms(&i915->drm,
"Could not read test request from sink\n");
goto update_status; goto update_status;
} }
switch (request) { switch (request) {
case DP_TEST_LINK_TRAINING: case DP_TEST_LINK_TRAINING:
DRM_DEBUG_KMS("LINK_TRAINING test requested\n"); drm_dbg_kms(&i915->drm, "LINK_TRAINING test requested\n");
response = intel_dp_autotest_link_training(intel_dp); response = intel_dp_autotest_link_training(intel_dp);
break; break;
case DP_TEST_LINK_VIDEO_PATTERN: case DP_TEST_LINK_VIDEO_PATTERN:
DRM_DEBUG_KMS("TEST_PATTERN test requested\n"); drm_dbg_kms(&i915->drm, "TEST_PATTERN test requested\n");
response = intel_dp_autotest_video_pattern(intel_dp); response = intel_dp_autotest_video_pattern(intel_dp);
break; break;
case DP_TEST_LINK_EDID_READ: case DP_TEST_LINK_EDID_READ:
DRM_DEBUG_KMS("EDID test requested\n"); drm_dbg_kms(&i915->drm, "EDID test requested\n");
response = intel_dp_autotest_edid(intel_dp); response = intel_dp_autotest_edid(intel_dp);
break; break;
case DP_TEST_LINK_PHY_TEST_PATTERN: case DP_TEST_LINK_PHY_TEST_PATTERN:
DRM_DEBUG_KMS("PHY_PATTERN test requested\n"); drm_dbg_kms(&i915->drm, "PHY_PATTERN test requested\n");
response = intel_dp_autotest_phy_pattern(intel_dp); response = intel_dp_autotest_phy_pattern(intel_dp);
break; break;
default: default:
DRM_DEBUG_KMS("Invalid test request '%02x'\n", request); drm_dbg_kms(&i915->drm, "Invalid test request '%02x'\n",
request);
break; break;
} }
...@@ -5398,12 +5450,14 @@ static void intel_dp_handle_test_request(struct intel_dp *intel_dp) ...@@ -5398,12 +5450,14 @@ static void intel_dp_handle_test_request(struct intel_dp *intel_dp)
update_status: update_status:
status = drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_RESPONSE, response); status = drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_RESPONSE, response);
if (status <= 0) if (status <= 0)
DRM_DEBUG_KMS("Could not write test response to sink\n"); drm_dbg_kms(&i915->drm,
"Could not write test response to sink\n");
} }
static int static int
intel_dp_check_mst_status(struct intel_dp *intel_dp) intel_dp_check_mst_status(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
bool bret; bool bret;
if (intel_dp->is_mst) { if (intel_dp->is_mst) {
...@@ -5420,12 +5474,13 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp) ...@@ -5420,12 +5474,13 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
/* check link status - esi[10] = 0x200c */ /* check link status - esi[10] = 0x200c */
if (intel_dp->active_mst_links > 0 && if (intel_dp->active_mst_links > 0 &&
!drm_dp_channel_eq_ok(&esi[10], intel_dp->lane_count)) { !drm_dp_channel_eq_ok(&esi[10], intel_dp->lane_count)) {
DRM_DEBUG_KMS("channel EQ not ok, retraining\n"); drm_dbg_kms(&i915->drm,
"channel EQ not ok, retraining\n");
intel_dp_start_link_train(intel_dp); intel_dp_start_link_train(intel_dp);
intel_dp_stop_link_train(intel_dp); intel_dp_stop_link_train(intel_dp);
} }
DRM_DEBUG_KMS("got esi %3ph\n", esi); drm_dbg_kms(&i915->drm, "got esi %3ph\n", esi);
ret = drm_dp_mst_hpd_irq(&intel_dp->mst_mgr, esi, &handled); ret = drm_dp_mst_hpd_irq(&intel_dp->mst_mgr, esi, &handled);
if (handled) { if (handled) {
...@@ -5441,7 +5496,8 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp) ...@@ -5441,7 +5496,8 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
bret = intel_dp_get_sink_irq_esi(intel_dp, esi); bret = intel_dp_get_sink_irq_esi(intel_dp, esi);
if (bret == true) { if (bret == true) {
DRM_DEBUG_KMS("got esi2 %3ph\n", esi); drm_dbg_kms(&i915->drm,
"got esi2 %3ph\n", esi);
goto go_again; goto go_again;
} }
} else } else
...@@ -5449,7 +5505,8 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp) ...@@ -5449,7 +5505,8 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
return ret; return ret;
} else { } else {
DRM_DEBUG_KMS("failed to get ESI - device may have failed\n"); drm_dbg_kms(&i915->drm,
"failed to get ESI - device may have failed\n");
intel_dp->is_mst = false; intel_dp->is_mst = false;
drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
intel_dp->is_mst); intel_dp->is_mst);
...@@ -5609,6 +5666,7 @@ intel_dp_hotplug(struct intel_encoder *encoder, ...@@ -5609,6 +5666,7 @@ intel_dp_hotplug(struct intel_encoder *encoder,
static void intel_dp_check_service_irq(struct intel_dp *intel_dp) static void intel_dp_check_service_irq(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
u8 val; u8 val;
if (intel_dp->dpcd[DP_DPCD_REV] < 0x11) if (intel_dp->dpcd[DP_DPCD_REV] < 0x11)
...@@ -5627,7 +5685,7 @@ static void intel_dp_check_service_irq(struct intel_dp *intel_dp) ...@@ -5627,7 +5685,7 @@ static void intel_dp_check_service_irq(struct intel_dp *intel_dp)
intel_hdcp_handle_cp_irq(intel_dp->attached_connector); intel_hdcp_handle_cp_irq(intel_dp->attached_connector);
if (val & DP_SINK_SPECIFIC_IRQ) if (val & DP_SINK_SPECIFIC_IRQ)
DRM_DEBUG_DRIVER("Sink specific irq unhandled\n"); drm_dbg_kms(&i915->drm, "Sink specific irq unhandled\n");
} }
/* /*
...@@ -5694,6 +5752,7 @@ intel_dp_short_pulse(struct intel_dp *intel_dp) ...@@ -5694,6 +5752,7 @@ intel_dp_short_pulse(struct intel_dp *intel_dp)
static enum drm_connector_status static enum drm_connector_status
intel_dp_detect_dpcd(struct intel_dp *intel_dp) intel_dp_detect_dpcd(struct intel_dp *intel_dp)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp); struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
u8 *dpcd = intel_dp->dpcd; u8 *dpcd = intel_dp->dpcd;
u8 type; u8 type;
...@@ -5741,7 +5800,7 @@ intel_dp_detect_dpcd(struct intel_dp *intel_dp) ...@@ -5741,7 +5800,7 @@ intel_dp_detect_dpcd(struct intel_dp *intel_dp)
} }
/* Anything else is out of spec, warn and ignore */ /* Anything else is out of spec, warn and ignore */
DRM_DEBUG_KMS("Broken DP branch device, ignoring\n"); drm_dbg_kms(&i915->drm, "Broken DP branch device, ignoring\n");
return connector_status_disconnected; return connector_status_disconnected;
} }
...@@ -6213,6 +6272,7 @@ static int intel_dp_get_modes(struct drm_connector *connector) ...@@ -6213,6 +6272,7 @@ static int intel_dp_get_modes(struct drm_connector *connector)
static int static int
intel_dp_connector_register(struct drm_connector *connector) intel_dp_connector_register(struct drm_connector *connector)
{ {
struct drm_i915_private *i915 = to_i915(connector->dev);
struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector)); struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector));
int ret; int ret;
...@@ -6222,8 +6282,8 @@ intel_dp_connector_register(struct drm_connector *connector) ...@@ -6222,8 +6282,8 @@ intel_dp_connector_register(struct drm_connector *connector)
intel_connector_debugfs_add(connector); intel_connector_debugfs_add(connector);
DRM_DEBUG_KMS("registering %s bus for %s\n", drm_dbg_kms(&i915->drm, "registering %s bus for %s\n",
intel_dp->aux.name, connector->kdev->kobj.name); intel_dp->aux.name, connector->kdev->kobj.name);
intel_dp->aux.dev = connector->kdev; intel_dp->aux.dev = connector->kdev;
ret = drm_dp_aux_register(&intel_dp->aux); ret = drm_dp_aux_register(&intel_dp->aux);
...@@ -6309,6 +6369,7 @@ static ...@@ -6309,6 +6369,7 @@ static
int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
u8 *an) u8 *an)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(&intel_dig_port->base.base)); struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(&intel_dig_port->base.base));
static const struct drm_dp_aux_msg msg = { static const struct drm_dp_aux_msg msg = {
.request = DP_AUX_NATIVE_WRITE, .request = DP_AUX_NATIVE_WRITE,
...@@ -6323,8 +6384,9 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port, ...@@ -6323,8 +6384,9 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
dpcd_ret = drm_dp_dpcd_write(&intel_dig_port->dp.aux, DP_AUX_HDCP_AN, dpcd_ret = drm_dp_dpcd_write(&intel_dig_port->dp.aux, DP_AUX_HDCP_AN,
an, DRM_HDCP_AN_LEN); an, DRM_HDCP_AN_LEN);
if (dpcd_ret != DRM_HDCP_AN_LEN) { if (dpcd_ret != DRM_HDCP_AN_LEN) {
DRM_DEBUG_KMS("Failed to write An over DP/AUX (%zd)\n", drm_dbg_kms(&i915->drm,
dpcd_ret); "Failed to write An over DP/AUX (%zd)\n",
dpcd_ret);
return dpcd_ret >= 0 ? -EIO : dpcd_ret; return dpcd_ret >= 0 ? -EIO : dpcd_ret;
} }
...@@ -6340,17 +6402,19 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port, ...@@ -6340,17 +6402,19 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
rxbuf, sizeof(rxbuf), rxbuf, sizeof(rxbuf),
DP_AUX_CH_CTL_AUX_AKSV_SELECT); DP_AUX_CH_CTL_AUX_AKSV_SELECT);
if (ret < 0) { if (ret < 0) {
DRM_DEBUG_KMS("Write Aksv over DP/AUX failed (%d)\n", ret); drm_dbg_kms(&i915->drm,
"Write Aksv over DP/AUX failed (%d)\n", ret);
return ret; return ret;
} else if (ret == 0) { } else if (ret == 0) {
DRM_DEBUG_KMS("Aksv write over DP/AUX was empty\n"); drm_dbg_kms(&i915->drm, "Aksv write over DP/AUX was empty\n");
return -EIO; return -EIO;
} }
reply = (rxbuf[0] >> 4) & DP_AUX_NATIVE_REPLY_MASK; reply = (rxbuf[0] >> 4) & DP_AUX_NATIVE_REPLY_MASK;
if (reply != DP_AUX_NATIVE_REPLY_ACK) { if (reply != DP_AUX_NATIVE_REPLY_ACK) {
DRM_DEBUG_KMS("Aksv write: no DP_AUX_NATIVE_REPLY_ACK %x\n", drm_dbg_kms(&i915->drm,
reply); "Aksv write: no DP_AUX_NATIVE_REPLY_ACK %x\n",
reply);
return -EIO; return -EIO;
} }
return 0; return 0;
...@@ -6359,11 +6423,14 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port, ...@@ -6359,11 +6423,14 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port, static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
u8 *bksv) u8 *bksv)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv,
DRM_HDCP_KSV_LEN); DRM_HDCP_KSV_LEN);
if (ret != DRM_HDCP_KSV_LEN) { if (ret != DRM_HDCP_KSV_LEN) {
DRM_DEBUG_KMS("Read Bksv from DP/AUX failed (%zd)\n", ret); drm_dbg_kms(&i915->drm,
"Read Bksv from DP/AUX failed (%zd)\n", ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
return 0; return 0;
...@@ -6372,7 +6439,9 @@ static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port, ...@@ -6372,7 +6439,9 @@ static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port, static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
u8 *bstatus) u8 *bstatus)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
/* /*
* For some reason the HDMI and DP HDCP specs call this register * For some reason the HDMI and DP HDCP specs call this register
* definition by different names. In the HDMI spec, it's called BSTATUS, * definition by different names. In the HDMI spec, it's called BSTATUS,
...@@ -6381,7 +6450,8 @@ static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port, ...@@ -6381,7 +6450,8 @@ static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BINFO, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BINFO,
bstatus, DRM_HDCP_BSTATUS_LEN); bstatus, DRM_HDCP_BSTATUS_LEN);
if (ret != DRM_HDCP_BSTATUS_LEN) { if (ret != DRM_HDCP_BSTATUS_LEN) {
DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret); drm_dbg_kms(&i915->drm,
"Read bstatus from DP/AUX failed (%zd)\n", ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
return 0; return 0;
...@@ -6391,12 +6461,14 @@ static ...@@ -6391,12 +6461,14 @@ static
int intel_dp_hdcp_read_bcaps(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp_read_bcaps(struct intel_digital_port *intel_dig_port,
u8 *bcaps) u8 *bcaps)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BCAPS, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BCAPS,
bcaps, 1); bcaps, 1);
if (ret != 1) { if (ret != 1) {
DRM_DEBUG_KMS("Read bcaps from DP/AUX failed (%zd)\n", ret); drm_dbg_kms(&i915->drm,
"Read bcaps from DP/AUX failed (%zd)\n", ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
...@@ -6422,11 +6494,14 @@ static ...@@ -6422,11 +6494,14 @@ static
int intel_dp_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
u8 *ri_prime) u8 *ri_prime)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_RI_PRIME, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_RI_PRIME,
ri_prime, DRM_HDCP_RI_LEN); ri_prime, DRM_HDCP_RI_LEN);
if (ret != DRM_HDCP_RI_LEN) { if (ret != DRM_HDCP_RI_LEN) {
DRM_DEBUG_KMS("Read Ri' from DP/AUX failed (%zd)\n", ret); drm_dbg_kms(&i915->drm, "Read Ri' from DP/AUX failed (%zd)\n",
ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
return 0; return 0;
...@@ -6436,12 +6511,15 @@ static ...@@ -6436,12 +6511,15 @@ static
int intel_dp_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
bool *ksv_ready) bool *ksv_ready)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
u8 bstatus; u8 bstatus;
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
&bstatus, 1); &bstatus, 1);
if (ret != 1) { if (ret != 1) {
DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret); drm_dbg_kms(&i915->drm,
"Read bstatus from DP/AUX failed (%zd)\n", ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
*ksv_ready = bstatus & DP_BSTATUS_READY; *ksv_ready = bstatus & DP_BSTATUS_READY;
...@@ -6452,6 +6530,7 @@ static ...@@ -6452,6 +6530,7 @@ static
int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
int num_downstream, u8 *ksv_fifo) int num_downstream, u8 *ksv_fifo)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
int i; int i;
...@@ -6463,8 +6542,9 @@ int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port, ...@@ -6463,8 +6542,9 @@ int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
ksv_fifo + i * DRM_HDCP_KSV_LEN, ksv_fifo + i * DRM_HDCP_KSV_LEN,
len); len);
if (ret != len) { if (ret != len) {
DRM_DEBUG_KMS("Read ksv[%d] from DP/AUX failed (%zd)\n", drm_dbg_kms(&i915->drm,
i, ret); "Read ksv[%d] from DP/AUX failed (%zd)\n",
i, ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
} }
...@@ -6475,6 +6555,7 @@ static ...@@ -6475,6 +6555,7 @@ static
int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
int i, u32 *part) int i, u32 *part)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
if (i >= DRM_HDCP_V_PRIME_NUM_PARTS) if (i >= DRM_HDCP_V_PRIME_NUM_PARTS)
...@@ -6484,7 +6565,8 @@ int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port, ...@@ -6484,7 +6565,8 @@ int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
DP_AUX_HDCP_V_PRIME(i), part, DP_AUX_HDCP_V_PRIME(i), part,
DRM_HDCP_V_PRIME_PART_LEN); DRM_HDCP_V_PRIME_PART_LEN);
if (ret != DRM_HDCP_V_PRIME_PART_LEN) { if (ret != DRM_HDCP_V_PRIME_PART_LEN) {
DRM_DEBUG_KMS("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret); drm_dbg_kms(&i915->drm,
"Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
return 0; return 0;
...@@ -6501,13 +6583,15 @@ int intel_dp_hdcp_toggle_signalling(struct intel_digital_port *intel_dig_port, ...@@ -6501,13 +6583,15 @@ int intel_dp_hdcp_toggle_signalling(struct intel_digital_port *intel_dig_port,
static static
bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port) bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
u8 bstatus; u8 bstatus;
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
&bstatus, 1); &bstatus, 1);
if (ret != 1) { if (ret != 1) {
DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret); drm_dbg_kms(&i915->drm,
"Read bstatus from DP/AUX failed (%zd)\n", ret);
return false; return false;
} }
...@@ -6582,13 +6666,15 @@ static inline ...@@ -6582,13 +6666,15 @@ static inline
int intel_dp_hdcp2_read_rx_status(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp2_read_rx_status(struct intel_digital_port *intel_dig_port,
u8 *rx_status) u8 *rx_status)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
ssize_t ret; ssize_t ret;
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux,
DP_HDCP_2_2_REG_RXSTATUS_OFFSET, rx_status, DP_HDCP_2_2_REG_RXSTATUS_OFFSET, rx_status,
HDCP_2_2_DP_RXSTATUS_LEN); HDCP_2_2_DP_RXSTATUS_LEN);
if (ret != HDCP_2_2_DP_RXSTATUS_LEN) { if (ret != HDCP_2_2_DP_RXSTATUS_LEN) {
DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret); drm_dbg_kms(&i915->drm,
"Read bstatus from DP/AUX failed (%zd)\n", ret);
return ret >= 0 ? -EIO : ret; return ret >= 0 ? -EIO : ret;
} }
...@@ -6632,6 +6718,7 @@ static ssize_t ...@@ -6632,6 +6718,7 @@ static ssize_t
intel_dp_hdcp2_wait_for_msg(struct intel_digital_port *intel_dig_port, intel_dp_hdcp2_wait_for_msg(struct intel_digital_port *intel_dig_port,
const struct hdcp2_dp_msg_data *hdcp2_msg_data) const struct hdcp2_dp_msg_data *hdcp2_msg_data)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
struct intel_dp *dp = &intel_dig_port->dp; struct intel_dp *dp = &intel_dig_port->dp;
struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; struct intel_hdcp *hdcp = &dp->attached_connector->hdcp;
u8 msg_id = hdcp2_msg_data->msg_id; u8 msg_id = hdcp2_msg_data->msg_id;
...@@ -6663,8 +6750,9 @@ intel_dp_hdcp2_wait_for_msg(struct intel_digital_port *intel_dig_port, ...@@ -6663,8 +6750,9 @@ intel_dp_hdcp2_wait_for_msg(struct intel_digital_port *intel_dig_port,
} }
if (ret) if (ret)
DRM_DEBUG_KMS("msg_id %d, ret %d, timeout(mSec): %d\n", drm_dbg_kms(&i915->drm,
hdcp2_msg_data->msg_id, ret, timeout); "msg_id %d, ret %d, timeout(mSec): %d\n",
hdcp2_msg_data->msg_id, ret, timeout);
return ret; return ret;
} }
...@@ -6750,6 +6838,7 @@ static ...@@ -6750,6 +6838,7 @@ static
int intel_dp_hdcp2_read_msg(struct intel_digital_port *intel_dig_port, int intel_dp_hdcp2_read_msg(struct intel_digital_port *intel_dig_port,
u8 msg_id, void *buf, size_t size) u8 msg_id, void *buf, size_t size)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
unsigned int offset; unsigned int offset;
u8 *byte = buf; u8 *byte = buf;
ssize_t ret, bytes_to_recv, len; ssize_t ret, bytes_to_recv, len;
...@@ -6783,7 +6872,8 @@ int intel_dp_hdcp2_read_msg(struct intel_digital_port *intel_dig_port, ...@@ -6783,7 +6872,8 @@ int intel_dp_hdcp2_read_msg(struct intel_digital_port *intel_dig_port,
ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, offset, ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, offset,
(void *)byte, len); (void *)byte, len);
if (ret < 0) { if (ret < 0) {
DRM_DEBUG_KMS("msg_id %d, ret %zd\n", msg_id, ret); drm_dbg_kms(&i915->drm, "msg_id %d, ret %zd\n",
msg_id, ret);
return ret; return ret;
} }
...@@ -7133,6 +7223,7 @@ static bool intel_edp_have_power(struct intel_dp *intel_dp) ...@@ -7133,6 +7223,7 @@ static bool intel_edp_have_power(struct intel_dp *intel_dp)
enum irqreturn enum irqreturn
intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
{ {
struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
struct intel_dp *intel_dp = &intel_dig_port->dp; struct intel_dp *intel_dp = &intel_dig_port->dp;
if (intel_dig_port->base.type == INTEL_OUTPUT_EDP && if (intel_dig_port->base.type == INTEL_OUTPUT_EDP &&
...@@ -7143,17 +7234,18 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) ...@@ -7143,17 +7234,18 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
* would end up in an endless cycle of * would end up in an endless cycle of
* "vdd off -> long/short hpd -> vdd on -> detect -> vdd off -> ..." * "vdd off -> long/short hpd -> vdd on -> detect -> vdd off -> ..."
*/ */
DRM_DEBUG_KMS("ignoring %s hpd on eDP [ENCODER:%d:%s]\n", drm_dbg_kms(&i915->drm,
long_hpd ? "long" : "short", "ignoring %s hpd on eDP [ENCODER:%d:%s]\n",
intel_dig_port->base.base.base.id, long_hpd ? "long" : "short",
intel_dig_port->base.base.name); intel_dig_port->base.base.base.id,
intel_dig_port->base.base.name);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
DRM_DEBUG_KMS("got hpd irq on [ENCODER:%d:%s] - %s\n", drm_dbg_kms(&i915->drm, "got hpd irq on [ENCODER:%d:%s] - %s\n",
intel_dig_port->base.base.base.id, intel_dig_port->base.base.base.id,
intel_dig_port->base.base.name, intel_dig_port->base.base.name,
long_hpd ? "long" : "short"); long_hpd ? "long" : "short");
if (long_hpd) { if (long_hpd) {
intel_dp->reset_link_params = true; intel_dp->reset_link_params = true;
...@@ -7166,8 +7258,10 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) ...@@ -7166,8 +7258,10 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
* If we were in MST mode, and device is not * If we were in MST mode, and device is not
* there, get out of MST mode * there, get out of MST mode
*/ */
DRM_DEBUG_KMS("MST device may have disappeared %d vs %d\n", drm_dbg_kms(&i915->drm,
intel_dp->is_mst, intel_dp->mst_mgr.mst_state); "MST device may have disappeared %d vs %d\n",
intel_dp->is_mst,
intel_dp->mst_mgr.mst_state);
intel_dp->is_mst = false; intel_dp->is_mst = false;
drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr, drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
intel_dp->is_mst); intel_dp->is_mst);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment