- 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)
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEbSBwaO7dZQkcLOKj+mJfZA7rE8oFAml7sogACgkQ+mJfZA7r
 E8qtogf+LjcI7gZL4rGknDr4hVZgwwV0o2+mHPAJl8TyCQk7h34FgdL9G4kN+Puu
 Jsw/C4qOsGQQBBGTE2kNgqlneceWmL/dO1g9XMmV4eiucmJ9FN03xhEflICTmPuV
 Nb/eBI8YzR5wnI31DCc49sHRbQBisbsZucERQYsdiKLJjzjtAHwf95kw/dDsUWVa
 y2V9VUTgQ7z73cUvnasHhhElA0cYz9TCsMlLj7zbTlTj7Kkg/QnsmkHqTQE81tFn
 SABIyugMmUNd/4vGvOQb8mfYOX3+RFlk2MSVWblCzMXabl5213r6V1htjcJB1/7z
 el915BCMhhROp0M6rvGpLkH4F0G5FQ==
 =bTDt
 -----END PGP SIGNATURE-----

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
This commit is contained in:
Dave Airlie 2026-01-30 13:02:34 +10:00
commit 502d2d8e01
3 changed files with 43 additions and 3 deletions

View File

@ -1017,6 +1017,7 @@ int xe_device_probe(struct xe_device *xe)
err_unregister_display:
xe_display_unregister(xe);
drm_dev_unregister(&xe->drm);
return err;
}

View File

@ -1198,6 +1198,36 @@ int xe_guc_pc_set_power_profile(struct xe_guc_pc *pc, const char *buf)
return ret;
}
static int pc_action_set_dcc(struct xe_guc_pc *pc, bool enable)
{
int ret;
ret = pc_action_set_param(pc,
SLPC_PARAM_TASK_ENABLE_DCC,
enable);
if (!ret)
return pc_action_set_param(pc,
SLPC_PARAM_TASK_DISABLE_DCC,
!enable);
else
return ret;
}
static int pc_modify_defaults(struct xe_guc_pc *pc)
{
struct xe_device *xe = pc_to_xe(pc);
struct xe_gt *gt = pc_to_gt(pc);
int ret = 0;
if (xe->info.platform == XE_PANTHERLAKE) {
ret = pc_action_set_dcc(pc, false);
if (unlikely(ret))
xe_gt_err(gt, "Failed to modify DCC default: %pe\n", ERR_PTR(ret));
}
return ret;
}
/**
* xe_guc_pc_start - Start GuC's Power Conservation component
* @pc: Xe_GuC_PC instance
@ -1249,6 +1279,10 @@ int xe_guc_pc_start(struct xe_guc_pc *pc)
ktime_ms_delta(ktime_get(), earlier));
}
ret = pc_modify_defaults(pc);
if (ret)
return ret;
ret = pc_init_freqs(pc);
if (ret)
return ret;

View File

@ -1317,9 +1317,14 @@ static bool check_timeout(struct xe_exec_queue *q, struct xe_sched_job *job)
ctx_timestamp = lower_32_bits(xe_lrc_timestamp(q->lrc[0]));
if (ctx_timestamp == job->sample_timestamp) {
xe_gt_warn(gt, "Check job timeout: seqno=%u, lrc_seqno=%u, guc_id=%d, timestamp stuck",
xe_sched_job_seqno(job), xe_sched_job_lrc_seqno(job),
q->guc->id);
if (IS_SRIOV_VF(gt_to_xe(gt)))
xe_gt_notice(gt, "Check job timeout: seqno=%u, lrc_seqno=%u, guc_id=%d, timestamp stuck",
xe_sched_job_seqno(job),
xe_sched_job_lrc_seqno(job), q->guc->id);
else
xe_gt_warn(gt, "Check job timeout: seqno=%u, lrc_seqno=%u, guc_id=%d, timestamp stuck",
xe_sched_job_seqno(job),
xe_sched_job_lrc_seqno(job), q->guc->id);
return xe_sched_invalidate_job(job, 0);
}