[PATCH 7/7] debug
José Roberto de Souza
jose.souza at intel.com
Thu Apr 28 14:17:01 UTC 2022
---
drivers/gpu/drm/i915/display/intel_display.c | 22 ++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_dp.c | 16 ++++++++++++++
drivers/gpu/drm/i915/display/intel_drrs.c | 21 +++++++++++++++++++
3 files changed, 59 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index c37501b2ab419..1b73104c37b6f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -2622,6 +2622,8 @@ static void intel_crtc_compute_pixel_rate(struct intel_crtc_state *crtc_state)
{
struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
+ drm_info(&dev_priv->drm, "intel_crtc_compute_pixel_rate() crtc_state->seamless_mode_switch=%i | zeh\n", crtc_state->seamless_mode_switch);
+
if (HAS_GMCH(dev_priv))
/* FIXME calculate proper pipe pixel rate for GMCH pfit */
crtc_state->pixel_rate =
@@ -2651,11 +2653,19 @@ static void intel_crtc_compute_pixel_rate(struct intel_crtc_state *crtc_state)
intel_fuzzy_clock_check(crtc_state->pixel_rate,
old_crtc_state->pixel_rate))
crtc_state->pixel_rate = old_crtc_state->pixel_rate;
+ else
+ drm_info(&dev_priv->drm, "\told pixel rate is < than required pixel rate\n");
+
+ drm_info(&dev_priv->drm, "\tpixel_rate=%i | zeh\n", crtc_state->pixel_rate);
}
}
static void intel_crtc_get_pixel_rate(struct intel_crtc_state *crtc_state)
{
+ struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
+
+ drm_info(&dev_priv->drm, "intel_crtc_get_pixel_rate() crtc_state->seamless_mode_switch=%i | zeh\n", crtc_state->seamless_mode_switch);
+
if (crtc_state->seamless_mode_switch) {
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -2663,6 +2673,18 @@ static void intel_crtc_get_pixel_rate(struct intel_crtc_state *crtc_state)
crtc_state->pixel_rate = crtc->drrs.seamless_mode_switch_pixel_rate;
mutex_unlock(&crtc->drrs.mutex);
+ drm_info(&dev_priv->drm, "\tpixel_rate=%i | zeh\n", crtc_state->pixel_rate);
+
+ /*struct intel_atomic_state *state = to_intel_atomic_state(crtc_state->uapi.state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ const struct intel_crtc_state *old_crtc_state;
+
+ old_crtc_state = intel_atomic_get_old_crtc_state(state, crtc);
+ //crtc_state->pixel_rate = ilk_pipe_pixel_rate(old_crtc_state);
+ crtc_state->pixel_rate = old_crtc_state->pixel_rate;
+
+ drm_info(&dev_priv->drm, "\tpixel_rate=%i | zeh\n", crtc_state->pixel_rate);*/
+
return;
}
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 58f56250b1663..a847b066c3f50 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1903,11 +1903,15 @@ intel_dp_drrs_compute_config(struct intel_connector *connector,
intel_panel_downclock_mode(connector, &pipe_config->hw.adjusted_mode);
int pixel_clock;
+ drm_info(&i915->drm, "intel_dp_drrs_compute_config | zeh\n");
+
if (!can_enable_drrs(connector, pipe_config))
goto not_supported;
if (can_seamless_switch_mode(pipe_config)) {
pipe_config->seamless_mode_switch = true;
+ drm_info(&i915->drm, "\tseamless_mode_switch=true | zeh\n");
+
return;
}
@@ -1918,6 +1922,7 @@ intel_dp_drrs_compute_config(struct intel_connector *connector,
pipe_config->msa_timing_delay = i915->vbt.edp.drrs_msa_timing_delay;
pipe_config->has_drrs = true;
+ drm_info(&i915->drm, "\thas_drrs=true | zeh\n");
pixel_clock = downclock_mode->clock;
if (pipe_config->splitter.enable)
@@ -1996,6 +2001,15 @@ intel_dp_compute_output_format(struct intel_encoder *encoder,
return ret;
}
+static void print_link_m_n(struct drm_device *dev, const struct intel_link_m_n *a)
+{
+ drm_info(dev, "\t\tdata_m=%u | zeh\n", a->data_m);
+ drm_info(dev, "\t\tdata_n=%u | zeh\n", a->data_n);
+ drm_info(dev, "\t\tlink_m=%u | zeh\n", a->link_m);
+ drm_info(dev, "\t\tlink_n=%u | zeh\n", a->link_n);
+ drm_info(dev, "\t\ttu=%u | zeh\n", a->tu);
+}
+
int
intel_dp_compute_config(struct intel_encoder *encoder,
struct intel_crtc_state *pipe_config,
@@ -2086,6 +2100,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
pipe_config->port_clock,
&pipe_config->dp_m_n,
constant_n, pipe_config->fec_enable);
+ drm_info(&dev_priv->drm, "intel_dp_compute_config\n");
+ print_link_m_n(&dev_priv->drm, &pipe_config->dp_m_n);
/* FIXME: abstract this better */
if (pipe_config->splitter.enable)
diff --git a/drivers/gpu/drm/i915/display/intel_drrs.c b/drivers/gpu/drm/i915/display/intel_drrs.c
index f920e13450ee1..e2dc31d501003 100644
--- a/drivers/gpu/drm/i915/display/intel_drrs.c
+++ b/drivers/gpu/drm/i915/display/intel_drrs.c
@@ -143,12 +143,18 @@ static unsigned int intel_drrs_frontbuffer_bits(const struct intel_crtc_state *c
void intel_drrs_activate(const struct intel_crtc_state *crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+
+ drm_info(&i915->drm, "intel_drrs_activate pipe%c | zeh\n", pipe_name(crtc->pipe));
mutex_lock(&crtc->drrs.mutex);
crtc->drrs.seamless_mode_switch_pixel_rate = crtc_state->seamless_mode_switch ?
crtc_state->pixel_rate : 0;
+ if (crtc->drrs.seamless_mode_switch_pixel_rate)
+ drm_info(&i915->drm, "\tseamless_mode_switch=1 | zeh\n");
+
if (!crtc_state->has_drrs)
goto unlock;
@@ -165,6 +171,8 @@ void intel_drrs_activate(const struct intel_crtc_state *crtc_state)
crtc->drrs.busy_frontbuffer_bits = 0;
crtc->drrs.psr_enabled = crtc_state->has_psr;
+ drm_info(&i915->drm, "\thas_drrs=1 | zeh\n");
+
intel_drrs_schedule_work(crtc);
unlock:
@@ -180,6 +188,19 @@ void intel_drrs_activate(const struct intel_crtc_state *crtc_state)
void intel_drrs_deactivate(const struct intel_crtc_state *old_crtc_state)
{
struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
+ struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+
+ drm_info(&i915->drm, "intel_drrs_deactivate pipe%c | zeh\n", pipe_name(crtc->pipe));
+
+ if (crtc->drrs.seamless_mode_switch_pixel_rate)
+ drm_info(&i915->drm, "\tcrtc->drrs.seamless_mode_switchh=1 | zeh\n");
+ else if (crtc->drrs.cpu_transcoder != INVALID_TRANSCODER)
+ drm_info(&i915->drm, "\tcrtc->drrs.cpu_transcoder=1 | zeh\n");
+
+ if (old_crtc_state->seamless_mode_switch)
+ drm_info(&i915->drm, "\told_crtc_state->seamless_mode_switch=1 | zeh\n");
+ else if (old_crtc_state->has_drrs)
+ drm_info(&i915->drm, "\told_crtc_state->has_drrs=1 | zeh\n");
if (!old_crtc_state->has_drrs)
return;
--
2.36.0
More information about the Intel-gfx-trybot
mailing list