Lines Matching full:gsc
42 gsc_ext_om_alloc(struct intel_gsc *gsc, struct intel_gsc_intf *intf, size_t size) in gsc_ext_om_alloc() argument
44 struct intel_gt *gt = gsc_to_gt(gsc); in gsc_ext_om_alloc()
52 drm_err(>->i915->drm, "Failed to allocate gsc memory\n"); in gsc_ext_om_alloc()
58 drm_err(>->i915->drm, "Failed to pin pages for gsc memory\n"); in gsc_ext_om_alloc()
93 /* gsc resources and definitions (HECI1 and HECI2) */
120 .name = "mei-gsc",
141 struct intel_gsc *gsc, unsigned int intf_id) in gsc_destroy_one() argument
143 struct intel_gsc_intf *intf = &gsc->intf[intf_id]; in gsc_destroy_one()
149 intel_huc_unregister_gsc_notifier(&gsc_to_gt(gsc)->uc.huc, in gsc_destroy_one()
164 static void gsc_init_one(struct drm_i915_private *i915, struct intel_gsc *gsc, in gsc_init_one() argument
171 struct intel_gsc_intf *intf = &gsc->intf[intf_id]; in gsc_init_one()
178 * On the multi-tile setups the GSC is functional on the first tile only in gsc_init_one()
180 if (gsc_to_gt(gsc)->info.id != 0) { in gsc_init_one()
181 drm_dbg(&i915->drm, "Not initializing gsc for remote tiles\n"); in gsc_init_one()
210 drm_err(&i915->drm, "gsc irq error %d\n", intf->irq); in gsc_init_one()
216 drm_err(&i915->drm, "gsc irq init failed %d\n", ret); in gsc_init_one()
226 drm_dbg(&i915->drm, "setting up GSC lmem\n"); in gsc_init_one()
228 if (gsc_ext_om_alloc(gsc, intf, def->lmem_size)) { in gsc_init_one()
229 drm_err(&i915->drm, "setting up gsc extended operational memory failed\n"); in gsc_init_one()
255 drm_err(&i915->drm, "gsc aux init failed %d\n", ret); in gsc_init_one()
263 intel_huc_register_gsc_notifier(&gsc_to_gt(gsc)->uc.huc, in gsc_init_one()
268 drm_err(&i915->drm, "gsc aux add failed %d\n", ret); in gsc_init_one()
270 intel_huc_unregister_gsc_notifier(&gsc_to_gt(gsc)->uc.huc, in gsc_init_one()
281 gsc_destroy_one(i915, gsc, intf->id); in gsc_init_one()
289 drm_warn_once(>->i915->drm, "GSC irq: intf_id %d is out of range", intf_id); in gsc_irq_handler()
294 drm_warn_once(>->i915->drm, "GSC irq: not supported"); in gsc_irq_handler()
298 if (gt->gsc.intf[intf_id].irq < 0) in gsc_irq_handler()
301 ret = generic_handle_irq(gt->gsc.intf[intf_id].irq); in gsc_irq_handler()
303 drm_err_ratelimited(>->i915->drm, "error handling GSC irq: %d\n", ret); in gsc_irq_handler()
314 void intel_gsc_init(struct intel_gsc *gsc, struct drm_i915_private *i915) in intel_gsc_init() argument
322 gsc_init_one(i915, gsc, i); in intel_gsc_init()
325 void intel_gsc_fini(struct intel_gsc *gsc) in intel_gsc_fini() argument
327 struct intel_gt *gt = gsc_to_gt(gsc); in intel_gsc_fini()
334 gsc_destroy_one(gt->i915, gsc, i); in intel_gsc_fini()