void gen11_gt_irq_postinstall(struct intel_gt *gt)
 {
-       const u32 irqs =
-               GT_CS_MASTER_ERROR_INTERRUPT |
-               GT_RENDER_USER_INTERRUPT |
-               GT_CONTEXT_SWITCH_INTERRUPT |
-               GT_WAIT_SEMAPHORE_INTERRUPT;
        struct intel_uncore *uncore = gt->uncore;
-       const u32 dmask = irqs << 16 | irqs;
-       const u32 smask = irqs << 16;
+       u32 irqs = GT_RENDER_USER_INTERRUPT;
+       u32 dmask;
+       u32 smask;
+
+       if (!intel_uc_wants_guc_submission(>->uc))
+               irqs |= GT_CS_MASTER_ERROR_INTERRUPT |
+                       GT_CONTEXT_SWITCH_INTERRUPT |
+                       GT_WAIT_SEMAPHORE_INTERRUPT;
+
+       dmask = irqs << 16 | irqs;
+       smask = irqs << 16;
 
        BUILD_BUG_ON(irqs & 0xffff0000);
 
 
        }
 }
 
-static void guc_interrupts_capture(struct intel_gt *gt)
-{
-       struct intel_uncore *uncore = gt->uncore;
-       u32 irqs = GT_CONTEXT_SWITCH_INTERRUPT;
-       u32 dmask = irqs << 16 | irqs;
-
-       GEM_BUG_ON(INTEL_GEN(gt->i915) < 11);
-
-       /* Don't handle the ctx switch interrupt in GuC submission mode */
-       intel_uncore_rmw(uncore, GEN11_RENDER_COPY_INTR_ENABLE, dmask, 0);
-       intel_uncore_rmw(uncore, GEN11_VCS_VECS_INTR_ENABLE, dmask, 0);
-}
-
-static void guc_interrupts_release(struct intel_gt *gt)
-{
-       struct intel_uncore *uncore = gt->uncore;
-       u32 irqs = GT_CONTEXT_SWITCH_INTERRUPT;
-       u32 dmask = irqs << 16 | irqs;
-
-       GEM_BUG_ON(INTEL_GEN(gt->i915) < 11);
-
-       /* Handle ctx switch interrupts again */
-       intel_uncore_rmw(uncore, GEN11_RENDER_COPY_INTR_ENABLE, 0, dmask);
-       intel_uncore_rmw(uncore, GEN11_VCS_VECS_INTR_ENABLE, 0, dmask);
-}
-
 static int guc_context_alloc(struct intel_context *ce)
 {
        return lrc_alloc(ce, ce->engine);
 void intel_guc_submission_enable(struct intel_guc *guc)
 {
        guc_stage_desc_init(guc);
-
-       /* Take over from manual control of ELSP (execlists) */
-       guc_interrupts_capture(guc_to_gt(guc));
 }
 
 void intel_guc_submission_disable(struct intel_guc *guc)
 
        /* Note: By the time we're here, GuC may have already been reset */
 
-       guc_interrupts_release(gt);
-
        guc_stage_desc_fini(guc);
 }