Lines Matching defs:i915

36  * session, which i915 manages and whose index is available in the uapi
46 * which is handled by the mei driver; communication between i915 and mei is
104 drm_err(&gt->i915->drm, "failed to create VCS ctx for PXP\n");
150 drm_info(&gt->i915->drm, "Protected Xe Path (PXP) protected content support initialized\n");
158 static struct intel_gt *find_gt_for_required_teelink(struct drm_i915_private *i915)
165 intel_huc_is_loaded_by_gsc(&to_gt(i915)->uc.huc) && intel_uc_uses_huc(&to_gt(i915)->uc))
166 return to_gt(i915);
171 static struct intel_gt *find_gt_for_required_protected_content(struct drm_i915_private *i915)
173 if (!IS_ENABLED(CONFIG_DRM_I915_PXP) || !INTEL_INFO(i915)->has_pxp)
182 if (i915->media_gt && HAS_ENGINE(i915->media_gt, GSC0) &&
183 intel_uc_fw_is_loadable(&i915->media_gt->uc.gsc.fw) &&
184 intel_uc_fw_is_loadable(&i915->media_gt->uc.huc.fw))
185 return i915->media_gt;
191 if (IS_ENABLED(CONFIG_INTEL_MEI_PXP) && !i915->media_gt && VDBOX_MASK(to_gt(i915)))
192 return to_gt(i915);
197 int intel_pxp_init(struct drm_i915_private *i915)
202 if (intel_gt_is_wedged(to_gt(i915)))
209 gt = find_gt_for_required_protected_content(i915);
213 gt = find_gt_for_required_teelink(i915);
223 i915->pxp = kzalloc(sizeof(*i915->pxp), GFP_KERNEL);
224 if (!i915->pxp)
228 i915->pxp->ctrl_gt = gt;
229 mutex_init(&i915->pxp->tee_mutex);
237 pxp_init_full(i915->pxp);
239 intel_pxp_tee_component_init(i915->pxp);
244 void intel_pxp_fini(struct drm_i915_private *i915)
246 if (!i915->pxp)
249 i915->pxp->arb_is_valid = false;
251 if (HAS_ENGINE(i915->pxp->ctrl_gt, GSC0))
252 intel_pxp_gsccs_fini(i915->pxp);
254 intel_pxp_tee_component_fini(i915->pxp);
256 destroy_vcs_context(i915->pxp);
258 kfree(i915->pxp);
259 i915->pxp = NULL;
310 drm_dbg(&pxp->ctrl_gt->i915->drm, "PXP: teardown for suspend/fini");
333 drm_dbg(&pxp->ctrl_gt->i915->drm, "PXP: teardown for restart");
343 drm_dbg(&pxp->ctrl_gt->i915->drm, "PXP: restart backend timed out (%d ms)",
353 struct drm_i915_private *i915 = pxp->ctrl_gt->i915;
359 wakeref = intel_runtime_pm_get(&i915->runtime_pm);
364 drm_dbg(&i915->drm, "PXP end timed out\n");
369 intel_runtime_pm_put(&i915->runtime_pm, wakeref);
428 drm_dbg(&pxp->ctrl_gt->i915->drm, "PXP: tried but not-avail (%d)", ret);
492 struct drm_i915_private *i915 = pxp->ctrl_gt->i915;
496 spin_lock_irq(&i915->gem.contexts.lock);
497 list_for_each_entry_safe(ctx, cn, &i915->gem.contexts.list, link) {
509 spin_unlock_irq(&i915->gem.contexts.lock);
530 intel_runtime_pm_put(&i915->runtime_pm,
535 spin_lock_irq(&i915->gem.contexts.lock);
539 spin_unlock_irq(&i915->gem.contexts.lock);