static const struct intel_uc_ops uc_ops_off;
 static const struct intel_uc_ops uc_ops_on;
 
+static void uc_expand_default_options(struct intel_uc *uc)
+{
+       struct drm_i915_private *i915 = uc_to_gt(uc)->i915;
+
+       if (i915->params.enable_guc != -1)
+               return;
+
+       /* Don't enable GuC/HuC on pre-Gen12 */
+       if (INTEL_GEN(i915) < 12) {
+               i915->params.enable_guc = 0;
+               return;
+       }
+
+       /* Don't enable GuC/HuC on older Gen12 platforms */
+       if (IS_TIGERLAKE(i915) || IS_ROCKETLAKE(i915)) {
+               i915->params.enable_guc = 0;
+               return;
+       }
+
+       /* Default: enable HuC authentication only */
+       i915->params.enable_guc = ENABLE_GUC_LOAD_HUC;
+}
+
 /* Reset GuC providing us with fresh state for both GuC and HuC.
  */
 static int __intel_uc_reset_hw(struct intel_uc *uc)
                yesno(intel_uc_wants_guc_submission(uc)),
                yesno(intel_uc_wants_huc(uc)));
 
-       if (i915->params.enable_guc == -1)
-               return;
-
        if (i915->params.enable_guc == 0) {
                GEM_BUG_ON(intel_uc_wants_guc(uc));
                GEM_BUG_ON(intel_uc_wants_guc_submission(uc));
                         "Incompatible option enable_guc=%d - %s\n",
                         i915->params.enable_guc, "GuC submission is N/A");
 
-       if (i915->params.enable_guc & ~(ENABLE_GUC_SUBMISSION |
-                                         ENABLE_GUC_LOAD_HUC))
+       if (i915->params.enable_guc & ~ENABLE_GUC_MASK)
                drm_info(&i915->drm,
                         "Incompatible option enable_guc=%d - %s\n",
                         i915->params.enable_guc, "undocumented flag");
 
 void intel_uc_init_early(struct intel_uc *uc)
 {
+       uc_expand_default_options(uc);
+
        intel_guc_init_early(&uc->guc);
        intel_huc_init_early(&uc->huc);
 
 
                        uc_fw->path = NULL;
                }
        }
-
-       /* We don't want to enable GuC/HuC on pre-Gen11 by default */
-       if (i915->params.enable_guc == -1 && p < INTEL_ICELAKE)
-               uc_fw->path = NULL;
 }
 
 static const char *__override_guc_firmware_path(struct drm_i915_private *i915)
 {
-       if (i915->params.enable_guc & (ENABLE_GUC_SUBMISSION |
-                                      ENABLE_GUC_LOAD_HUC))
+       if (i915->params.enable_guc & ENABLE_GUC_MASK)
                return i915->params.guc_firmware_path;
        return "";
 }