Commit c2c64ed0 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-fixes-2025-05-09' of...

Merge tag 'drm-intel-fixes-2025-05-09' of https://gitlab.freedesktop.org/drm/i915/kernel

 into drm-fixes

drm/i915 fixes for v6.15-rc6:
- Fix oops on resume after disconnecting DP MST sinks during suspend
- Fix SPLC num_waiters refcounting

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Jani Nikula <jani.nikula@intel.com>
Link: https://lore.kernel.org/r/87tt5umeaw.fsf@intel.com
parents f7be784c 732b87a4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -242,7 +242,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
		to_intel_connector(conn_state->connector);
	const struct drm_display_mode *adjusted_mode =
		&crtc_state->hw.adjusted_mode;
	bool is_mst = intel_dp->is_mst;
	bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
	int bpp_x16, slots = -EINVAL;
	int dsc_slice_count = 0;
	int max_dpt_bpp_x16;
+11 −3
Original line number Diff line number Diff line
@@ -1001,6 +1001,10 @@ void intel_rps_dec_waiters(struct intel_rps *rps)
	if (rps_uses_slpc(rps)) {
		slpc = rps_to_slpc(rps);

		/* Don't decrement num_waiters for req where increment was skipped */
		if (slpc->power_profile == SLPC_POWER_PROFILES_POWER_SAVING)
			return;

		intel_guc_slpc_dec_waiters(slpc);
	} else {
		atomic_dec(&rps->num_waiters);
@@ -1029,11 +1033,15 @@ void intel_rps_boost(struct i915_request *rq)
			if (slpc->power_profile == SLPC_POWER_PROFILES_POWER_SAVING)
				return;

			/* Return if old value is non zero */
			if (!atomic_fetch_inc(&slpc->num_waiters)) {
				/*
				 * Skip queuing boost work if frequency is already boosted,
				 * but still increment num_waiters.
				 */
				if (slpc->min_freq_softlimit >= slpc->boost_freq)
					return;

			/* Return if old value is non zero */
			if (!atomic_fetch_inc(&slpc->num_waiters)) {
				GT_TRACE(rps_to_gt(rps), "boost fence:%llx:%llx\n",
					 rq->fence.context, rq->fence.seqno);
				queue_work(rps_to_gt(rps)->i915->unordered_wq,