Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 364a3fe1 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915: push DDI and DSI underrun reporting on enable to encoder

parent 3daa3cee
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -2213,8 +2213,16 @@ static void intel_ddi_pre_enable(struct intel_encoder *encoder,
				 const struct intel_crtc_state *pipe_config,
				 const struct intel_crtc_state *pipe_config,
				 const struct drm_connector_state *conn_state)
				 const struct drm_connector_state *conn_state)
{
{
	struct drm_crtc *crtc = pipe_config->base.crtc;
	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
	int pipe = intel_crtc->pipe;
	int type = encoder->type;
	int type = encoder->type;


	WARN_ON(intel_crtc->config->has_pch_encoder);

	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);

	if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
	if (type == INTEL_OUTPUT_DP || type == INTEL_OUTPUT_EDP) {
		intel_ddi_pre_enable_dp(encoder,
		intel_ddi_pre_enable_dp(encoder,
					pipe_config->port_clock,
					pipe_config->port_clock,
+0 −3
Original line number Original line Diff line number Diff line
@@ -5521,9 +5521,6 @@ static void haswell_crtc_enable(struct intel_crtc_state *pipe_config,


	intel_crtc->active = true;
	intel_crtc->active = true;


	if (!intel_crtc->config->has_pch_encoder)
		intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);

	intel_encoders_pre_enable(crtc, pipe_config, old_state);
	intel_encoders_pre_enable(crtc, pipe_config, old_state);


	if (intel_crtc->config->has_pch_encoder)
	if (intel_crtc->config->has_pch_encoder)
+6 −1
Original line number Original line Diff line number Diff line
@@ -790,14 +790,19 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder,
				 const struct intel_crtc_state *pipe_config,
				 const struct intel_crtc_state *pipe_config,
				 const struct drm_connector_state *conn_state)
				 const struct drm_connector_state *conn_state)
{
{
	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
	struct drm_crtc *crtc = pipe_config->base.crtc;
	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
	int pipe = intel_crtc->pipe;
	enum port port;
	enum port port;
	u32 val;
	u32 val;
	bool glk_cold_boot = false;
	bool glk_cold_boot = false;


	DRM_DEBUG_KMS("\n");
	DRM_DEBUG_KMS("\n");


	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);

	/*
	/*
	 * The BIOS may leave the PLL in a wonky state where it doesn't
	 * The BIOS may leave the PLL in a wonky state where it doesn't
	 * lock. It needs to be fully powered down to fix it.
	 * lock. It needs to be fully powered down to fix it.