Lines Matching +full:0 +full:xe
36 #define XE_SYSCTRL_APP_RESP_VALID BIT(0)
45 XE_SYSCTRL_APP_OCODE = 0x0C,
46 XE_SYSCTRL_APP_DIAG = 0x0D,
51 struct xe_device *xe = arg;
52 struct xe_sysctrl *sc = &xe->sc;
55 xe->soc_remapper.set_sysctrl_region(xe, 0);
61 struct xe_device *xe = sc_to_xe(sc);
63 guard(xe_pm_runtime)(xe);
69 * @xe: xe device instance
74 * Return: 0 on success, error code on failure
76 int xe_sysctrl_init(struct xe_device *xe)
78 struct xe_tile *tile = xe_device_get_root_tile(xe);
79 struct xe_sysctrl *sc = &xe->sc;
82 if (!xe->info.has_soc_remapper_sysctrl)
83 return 0;
85 if (!xe->info.has_sysctrl)
86 return 0;
88 sc->mmio = devm_kzalloc_obj(xe->drm.dev, *sc->mmio);
96 ret = devm_mutex_init(xe->drm.dev, &sc->cmd_lock);
100 ret = devm_mutex_init(xe->drm.dev, &sc->event_lock);
104 xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
107 return devm_add_action_or_reset(xe->drm.dev, sysctrl_fini, xe);
112 * @xe: xe device instance
117 void xe_sysctrl_irq_handler(struct xe_device *xe, u32 master_ctl)
119 struct xe_sysctrl *sc = &xe->sc;
121 if (!xe->info.has_sysctrl || !sc->work.func)
130 * @xe: xe device instance
135 void xe_sysctrl_pm_resume(struct xe_device *xe)
137 if (!xe->info.has_soc_remapper_sysctrl)
140 if (!xe->info.has_sysctrl)
143 xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
147 xe_sysctrl_check_app_status(struct xe_device *xe, enum xe_sysctrl_app_id app_id)
152 size_t out_len = 0;
161 ret = xe_sysctrl_send_command(&xe->sc, &cmd, &out_len);
166 xe_err(xe, "sysctrl: unexpected get app status response length %zu (expected %zu)\n",
187 * @xe: xe device instance
193 * present (xe->info.has_sysctrl).
197 bool xe_sysctrl_is_oobmsm_fw_ready(struct xe_device *xe)
199 return xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_OCODE) ==
205 * @xe: xe device instance
211 * present (xe->info.has_sysctrl).
215 bool xe_sysctrl_is_diag_fw_ready(struct xe_device *xe)
217 return xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_DIAG) ==