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

Commit 475c2e3b authored by Jani Nikula's avatar Jani Nikula Committed by Daniel Vetter
Browse files

drm/i915/bxt: clear hpd status sticky bits earlier



The hotplug status is cached in hp_control, and will be passed on to
bottom halves through intel_hpd_irq_handler(), so we can clear the
sticky bits earlier.

While at it, drop the redundant logging of the hotplug status, which
will also be logged by pch_get_hpd_pins().

Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 676574df
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -2241,21 +2241,11 @@ static void bxt_hpd_handler(struct drm_device *dev, uint32_t iir_status)
		return;
	}

	DRM_DEBUG_DRIVER("hotplug event received, stat 0x%08x\n",
		hp_control & BXT_HOTPLUG_CTL_MASK);
	/* Clear sticky bits in hpd status */
	I915_WRITE(BXT_HOTPLUG_CTL, hp_control);

	/* Check for HPD storm and schedule bottom half */
	pch_get_hpd_pins(&pin_mask, &long_mask, hp_trigger, hp_control, hpd_bxt);
	intel_hpd_irq_handler(dev, pin_mask, long_mask);

	/*
	 * FIXME: Save the hot plug status for bottom half before
	 * clearing the sticky status bits, else the status will be
	 * lost.
	 */

	/* Clear sticky bits in hpd status */
	I915_WRITE(BXT_HOTPLUG_CTL, hp_control);
}

static irqreturn_t gen8_irq_handler(int irq, void *arg)