drm/i915: Nuke debug messages from the pipe update critical section
printks are slow so we should not be doing them from the vblank evade critical section. These could explain why we sometimes seem to blow past our 100 usec deadline. The problem has been there ever since commitbfd16b2a23
("drm/i915: Make updating pipe without modeset atomic.") but it may not have been readily visible until commite1edbd44e2
("drm/i915: Complain if we take too long under vblank evasion.") increased our chances of noticing it. Cc: stable@vger.kernel.org Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Fixes:bfd16b2a23
("drm/i915: Make updating pipe without modeset atomic.") Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170307205419.19447-1-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> (cherry picked from commitc3f8ad57a0
) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Родитель
4e6fdafa7a
Коммит
edd06b8353
|
@ -3669,10 +3669,6 @@ static void intel_update_pipe_config(struct intel_crtc *crtc,
|
||||||
/* drm_atomic_helper_update_legacy_modeset_state might not be called. */
|
/* drm_atomic_helper_update_legacy_modeset_state might not be called. */
|
||||||
crtc->base.mode = crtc->base.state->mode;
|
crtc->base.mode = crtc->base.state->mode;
|
||||||
|
|
||||||
DRM_DEBUG_KMS("Updating pipe size %ix%i -> %ix%i\n",
|
|
||||||
old_crtc_state->pipe_src_w, old_crtc_state->pipe_src_h,
|
|
||||||
pipe_config->pipe_src_w, pipe_config->pipe_src_h);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update pipe size and adjust fitter if needed: the reason for this is
|
* Update pipe size and adjust fitter if needed: the reason for this is
|
||||||
* that in compute_mode_changes we check the native mode (not the pfit
|
* that in compute_mode_changes we check the native mode (not the pfit
|
||||||
|
@ -4796,23 +4792,17 @@ static void skylake_pfit_enable(struct intel_crtc *crtc)
|
||||||
struct intel_crtc_scaler_state *scaler_state =
|
struct intel_crtc_scaler_state *scaler_state =
|
||||||
&crtc->config->scaler_state;
|
&crtc->config->scaler_state;
|
||||||
|
|
||||||
DRM_DEBUG_KMS("for crtc_state = %p\n", crtc->config);
|
|
||||||
|
|
||||||
if (crtc->config->pch_pfit.enabled) {
|
if (crtc->config->pch_pfit.enabled) {
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
if (WARN_ON(crtc->config->scaler_state.scaler_id < 0)) {
|
if (WARN_ON(crtc->config->scaler_state.scaler_id < 0))
|
||||||
DRM_ERROR("Requesting pfit without getting a scaler first\n");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
id = scaler_state->scaler_id;
|
id = scaler_state->scaler_id;
|
||||||
I915_WRITE(SKL_PS_CTRL(pipe, id), PS_SCALER_EN |
|
I915_WRITE(SKL_PS_CTRL(pipe, id), PS_SCALER_EN |
|
||||||
PS_FILTER_MEDIUM | scaler_state->scalers[id].mode);
|
PS_FILTER_MEDIUM | scaler_state->scalers[id].mode);
|
||||||
I915_WRITE(SKL_PS_WIN_POS(pipe, id), crtc->config->pch_pfit.pos);
|
I915_WRITE(SKL_PS_WIN_POS(pipe, id), crtc->config->pch_pfit.pos);
|
||||||
I915_WRITE(SKL_PS_WIN_SZ(pipe, id), crtc->config->pch_pfit.size);
|
I915_WRITE(SKL_PS_WIN_SZ(pipe, id), crtc->config->pch_pfit.size);
|
||||||
|
|
||||||
DRM_DEBUG_KMS("for crtc_state = %p scaler_id = %d\n", crtc->config, id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче