Skip to content

Commit 502d2d8

Browse files
committed
Merge tag 'drm-xe-next-fixes-2026-01-29' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next
- Reduce LRC timestamp stuck message on VFs to notice (Brost) - Disable GuC Power DCC strategy on PTL (Vinay) - Unregister drm device on probe error (Lin) Signed-off-by: Dave Airlie <airlied@redhat.com> From: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patch.msgid.link/aXuyrtsnlAOmj_OB@intel.com
2 parents 8fbe215 + 96c2c72 commit 502d2d8

3 files changed

Lines changed: 43 additions & 3 deletions

File tree

drivers/gpu/drm/xe/xe_device.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,7 @@ int xe_device_probe(struct xe_device *xe)
10171017

10181018
err_unregister_display:
10191019
xe_display_unregister(xe);
1020+
drm_dev_unregister(&xe->drm);
10201021

10211022
return err;
10221023
}

drivers/gpu/drm/xe/xe_guc_pc.c

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,6 +1198,36 @@ int xe_guc_pc_set_power_profile(struct xe_guc_pc *pc, const char *buf)
11981198
return ret;
11991199
}
12001200

1201+
static int pc_action_set_dcc(struct xe_guc_pc *pc, bool enable)
1202+
{
1203+
int ret;
1204+
1205+
ret = pc_action_set_param(pc,
1206+
SLPC_PARAM_TASK_ENABLE_DCC,
1207+
enable);
1208+
if (!ret)
1209+
return pc_action_set_param(pc,
1210+
SLPC_PARAM_TASK_DISABLE_DCC,
1211+
!enable);
1212+
else
1213+
return ret;
1214+
}
1215+
1216+
static int pc_modify_defaults(struct xe_guc_pc *pc)
1217+
{
1218+
struct xe_device *xe = pc_to_xe(pc);
1219+
struct xe_gt *gt = pc_to_gt(pc);
1220+
int ret = 0;
1221+
1222+
if (xe->info.platform == XE_PANTHERLAKE) {
1223+
ret = pc_action_set_dcc(pc, false);
1224+
if (unlikely(ret))
1225+
xe_gt_err(gt, "Failed to modify DCC default: %pe\n", ERR_PTR(ret));
1226+
}
1227+
1228+
return ret;
1229+
}
1230+
12011231
/**
12021232
* xe_guc_pc_start - Start GuC's Power Conservation component
12031233
* @pc: Xe_GuC_PC instance
@@ -1249,6 +1279,10 @@ int xe_guc_pc_start(struct xe_guc_pc *pc)
12491279
ktime_ms_delta(ktime_get(), earlier));
12501280
}
12511281

1282+
ret = pc_modify_defaults(pc);
1283+
if (ret)
1284+
return ret;
1285+
12521286
ret = pc_init_freqs(pc);
12531287
if (ret)
12541288
return ret;

drivers/gpu/drm/xe/xe_guc_submit.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,9 +1317,14 @@ static bool check_timeout(struct xe_exec_queue *q, struct xe_sched_job *job)
13171317

13181318
ctx_timestamp = lower_32_bits(xe_lrc_timestamp(q->lrc[0]));
13191319
if (ctx_timestamp == job->sample_timestamp) {
1320-
xe_gt_warn(gt, "Check job timeout: seqno=%u, lrc_seqno=%u, guc_id=%d, timestamp stuck",
1321-
xe_sched_job_seqno(job), xe_sched_job_lrc_seqno(job),
1322-
q->guc->id);
1320+
if (IS_SRIOV_VF(gt_to_xe(gt)))
1321+
xe_gt_notice(gt, "Check job timeout: seqno=%u, lrc_seqno=%u, guc_id=%d, timestamp stuck",
1322+
xe_sched_job_seqno(job),
1323+
xe_sched_job_lrc_seqno(job), q->guc->id);
1324+
else
1325+
xe_gt_warn(gt, "Check job timeout: seqno=%u, lrc_seqno=%u, guc_id=%d, timestamp stuck",
1326+
xe_sched_job_seqno(job),
1327+
xe_sched_job_lrc_seqno(job), q->guc->id);
13231328

13241329
return xe_sched_invalidate_job(job, 0);
13251330
}

0 commit comments

Comments
 (0)