Add resume handling for System Controller to support system (S3/S4) and
runtime power management transitions.
On resume, restore SoC remapper configuration and mailbox interface to
re‑establish communication with firmware.
Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://patch.msgid.link/20260327131837.2192929-15-anoop.c.vijay@intel.com
#include "xe_pcode.h"
#include "xe_pxp.h"
#include "xe_sriov_vf_ccs.h"
+#include "xe_sysctrl.h"
#include "xe_trace.h"
#include "xe_vm.h"
#include "xe_wa.h"
xe_i2c_pm_resume(xe, true);
+ xe_sysctrl_pm_resume(xe);
+
xe_irq_resume(xe);
for_each_gt(gt, xe, id) {
xe_i2c_pm_resume(xe, xe->d3cold.allowed);
+ if (xe->d3cold.allowed)
+ xe_sysctrl_pm_resume(xe);
+
xe_irq_resume(xe);
for_each_gt(gt, xe, id) {
return 0;
}
+
+/**
+ * xe_sysctrl_pm_resume() - System Controller resume handler
+ * @xe: xe device instance
+ *
+ * Invoked during system resume (S3/S4 to S0) and runtime resume from D3cold.
+ * Restores SoC remapper configuration and reinitializes mailbox interface.
+ */
+void xe_sysctrl_pm_resume(struct xe_device *xe)
+{
+ struct xe_sysctrl *sc = &xe->sc;
+
+ if (!xe->info.has_soc_remapper_sysctrl)
+ return;
+
+ if (!xe->info.has_sysctrl)
+ return;
+
+ xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
+
+ xe_sysctrl_mailbox_init(sc);
+}
}
int xe_sysctrl_init(struct xe_device *xe);
+void xe_sysctrl_pm_resume(struct xe_device *xe);
#endif