Skip to content

Commit c2c64ed

Browse files
committed
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: Dave Airlie <[email protected]> From: Jani Nikula <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2 parents f7be784 + 732b87a commit c2c64ed

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

drivers/gpu/drm/i915/display/intel_dp_mst.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
242242
to_intel_connector(conn_state->connector);
243243
const struct drm_display_mode *adjusted_mode =
244244
&crtc_state->hw.adjusted_mode;
245-
bool is_mst = intel_dp->is_mst;
245+
bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
246246
int bpp_x16, slots = -EINVAL;
247247
int dsc_slice_count = 0;
248248
int max_dpt_bpp_x16;

drivers/gpu/drm/i915/gt/intel_rps.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1001,6 +1001,10 @@ void intel_rps_dec_waiters(struct intel_rps *rps)
10011001
if (rps_uses_slpc(rps)) {
10021002
slpc = rps_to_slpc(rps);
10031003

1004+
/* Don't decrement num_waiters for req where increment was skipped */
1005+
if (slpc->power_profile == SLPC_POWER_PROFILES_POWER_SAVING)
1006+
return;
1007+
10041008
intel_guc_slpc_dec_waiters(slpc);
10051009
} else {
10061010
atomic_dec(&rps->num_waiters);
@@ -1029,11 +1033,15 @@ void intel_rps_boost(struct i915_request *rq)
10291033
if (slpc->power_profile == SLPC_POWER_PROFILES_POWER_SAVING)
10301034
return;
10311035

1032-
if (slpc->min_freq_softlimit >= slpc->boost_freq)
1033-
return;
1034-
10351036
/* Return if old value is non zero */
10361037
if (!atomic_fetch_inc(&slpc->num_waiters)) {
1038+
/*
1039+
* Skip queuing boost work if frequency is already boosted,
1040+
* but still increment num_waiters.
1041+
*/
1042+
if (slpc->min_freq_softlimit >= slpc->boost_freq)
1043+
return;
1044+
10371045
GT_TRACE(rps_to_gt(rps), "boost fence:%llx:%llx\n",
10381046
rq->fence.context, rq->fence.seqno);
10391047
queue_work(rps_to_gt(rps)->i915->unordered_wq,

0 commit comments

Comments
 (0)