|
@@ -63,35 +63,35 @@ static int __intel_uc_reset_hw(struct drm_i915_private *dev_priv)
|
|
void intel_uc_sanitize_options(struct drm_i915_private *dev_priv)
|
|
void intel_uc_sanitize_options(struct drm_i915_private *dev_priv)
|
|
{
|
|
{
|
|
if (!HAS_GUC(dev_priv)) {
|
|
if (!HAS_GUC(dev_priv)) {
|
|
- if (i915.enable_guc_loading > 0 ||
|
|
|
|
- i915.enable_guc_submission > 0)
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_loading > 0 ||
|
|
|
|
+ i915_modparams.enable_guc_submission > 0)
|
|
DRM_INFO("Ignoring GuC options, no hardware\n");
|
|
DRM_INFO("Ignoring GuC options, no hardware\n");
|
|
|
|
|
|
- i915.enable_guc_loading = 0;
|
|
|
|
- i915.enable_guc_submission = 0;
|
|
|
|
|
|
+ i915_modparams.enable_guc_loading = 0;
|
|
|
|
+ i915_modparams.enable_guc_submission = 0;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
/* A negative value means "use platform default" */
|
|
/* A negative value means "use platform default" */
|
|
- if (i915.enable_guc_loading < 0)
|
|
|
|
- i915.enable_guc_loading = HAS_GUC_UCODE(dev_priv);
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_loading < 0)
|
|
|
|
+ i915_modparams.enable_guc_loading = HAS_GUC_UCODE(dev_priv);
|
|
|
|
|
|
/* Verify firmware version */
|
|
/* Verify firmware version */
|
|
- if (i915.enable_guc_loading) {
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_loading) {
|
|
if (HAS_HUC_UCODE(dev_priv))
|
|
if (HAS_HUC_UCODE(dev_priv))
|
|
intel_huc_select_fw(&dev_priv->huc);
|
|
intel_huc_select_fw(&dev_priv->huc);
|
|
|
|
|
|
if (intel_guc_select_fw(&dev_priv->guc))
|
|
if (intel_guc_select_fw(&dev_priv->guc))
|
|
- i915.enable_guc_loading = 0;
|
|
|
|
|
|
+ i915_modparams.enable_guc_loading = 0;
|
|
}
|
|
}
|
|
|
|
|
|
/* Can't enable guc submission without guc loaded */
|
|
/* Can't enable guc submission without guc loaded */
|
|
- if (!i915.enable_guc_loading)
|
|
|
|
- i915.enable_guc_submission = 0;
|
|
|
|
|
|
+ if (!i915_modparams.enable_guc_loading)
|
|
|
|
+ i915_modparams.enable_guc_submission = 0;
|
|
|
|
|
|
/* A negative value means "use platform default" */
|
|
/* A negative value means "use platform default" */
|
|
- if (i915.enable_guc_submission < 0)
|
|
|
|
- i915.enable_guc_submission = HAS_GUC_SCHED(dev_priv);
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_submission < 0)
|
|
|
|
+ i915_modparams.enable_guc_submission = HAS_GUC_SCHED(dev_priv);
|
|
}
|
|
}
|
|
|
|
|
|
static void gen8_guc_raise_irq(struct intel_guc *guc)
|
|
static void gen8_guc_raise_irq(struct intel_guc *guc)
|
|
@@ -290,7 +290,7 @@ static void guc_init_send_regs(struct intel_guc *guc)
|
|
|
|
|
|
static void guc_capture_load_err_log(struct intel_guc *guc)
|
|
static void guc_capture_load_err_log(struct intel_guc *guc)
|
|
{
|
|
{
|
|
- if (!guc->log.vma || i915.guc_log_level < 0)
|
|
|
|
|
|
+ if (!guc->log.vma || i915_modparams.guc_log_level < 0)
|
|
return;
|
|
return;
|
|
|
|
|
|
if (!guc->load_err_log)
|
|
if (!guc->load_err_log)
|
|
@@ -333,7 +333,7 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
|
|
struct intel_guc *guc = &dev_priv->guc;
|
|
struct intel_guc *guc = &dev_priv->guc;
|
|
int ret, attempts;
|
|
int ret, attempts;
|
|
|
|
|
|
- if (!i915.enable_guc_loading)
|
|
|
|
|
|
+ if (!i915_modparams.enable_guc_loading)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
guc_disable_communication(guc);
|
|
guc_disable_communication(guc);
|
|
@@ -342,7 +342,7 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
|
|
/* We need to notify the guc whenever we change the GGTT */
|
|
/* We need to notify the guc whenever we change the GGTT */
|
|
i915_ggtt_enable_guc(dev_priv);
|
|
i915_ggtt_enable_guc(dev_priv);
|
|
|
|
|
|
- if (i915.enable_guc_submission) {
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_submission) {
|
|
/*
|
|
/*
|
|
* This is stuff we need to have available at fw load time
|
|
* This is stuff we need to have available at fw load time
|
|
* if we are planning to enable submission later
|
|
* if we are planning to enable submission later
|
|
@@ -391,8 +391,8 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
|
|
goto err_log_capture;
|
|
goto err_log_capture;
|
|
|
|
|
|
intel_guc_auth_huc(dev_priv);
|
|
intel_guc_auth_huc(dev_priv);
|
|
- if (i915.enable_guc_submission) {
|
|
|
|
- if (i915.guc_log_level >= 0)
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_submission) {
|
|
|
|
+ if (i915_modparams.guc_log_level >= 0)
|
|
gen9_enable_guc_interrupts(dev_priv);
|
|
gen9_enable_guc_interrupts(dev_priv);
|
|
|
|
|
|
ret = i915_guc_submission_enable(dev_priv);
|
|
ret = i915_guc_submission_enable(dev_priv);
|
|
@@ -417,23 +417,24 @@ err_interrupts:
|
|
err_log_capture:
|
|
err_log_capture:
|
|
guc_capture_load_err_log(guc);
|
|
guc_capture_load_err_log(guc);
|
|
err_submission:
|
|
err_submission:
|
|
- if (i915.enable_guc_submission)
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_submission)
|
|
i915_guc_submission_fini(dev_priv);
|
|
i915_guc_submission_fini(dev_priv);
|
|
err_guc:
|
|
err_guc:
|
|
i915_ggtt_disable_guc(dev_priv);
|
|
i915_ggtt_disable_guc(dev_priv);
|
|
|
|
|
|
DRM_ERROR("GuC init failed\n");
|
|
DRM_ERROR("GuC init failed\n");
|
|
- if (i915.enable_guc_loading > 1 || i915.enable_guc_submission > 1)
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_loading > 1 ||
|
|
|
|
+ i915_modparams.enable_guc_submission > 1)
|
|
ret = -EIO;
|
|
ret = -EIO;
|
|
else
|
|
else
|
|
ret = 0;
|
|
ret = 0;
|
|
|
|
|
|
- if (i915.enable_guc_submission) {
|
|
|
|
- i915.enable_guc_submission = 0;
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_submission) {
|
|
|
|
+ i915_modparams.enable_guc_submission = 0;
|
|
DRM_NOTE("Falling back from GuC submission to execlist mode\n");
|
|
DRM_NOTE("Falling back from GuC submission to execlist mode\n");
|
|
}
|
|
}
|
|
|
|
|
|
- i915.enable_guc_loading = 0;
|
|
|
|
|
|
+ i915_modparams.enable_guc_loading = 0;
|
|
DRM_NOTE("GuC firmware loading disabled\n");
|
|
DRM_NOTE("GuC firmware loading disabled\n");
|
|
|
|
|
|
return ret;
|
|
return ret;
|
|
@@ -443,15 +444,15 @@ void intel_uc_fini_hw(struct drm_i915_private *dev_priv)
|
|
{
|
|
{
|
|
guc_free_load_err_log(&dev_priv->guc);
|
|
guc_free_load_err_log(&dev_priv->guc);
|
|
|
|
|
|
- if (!i915.enable_guc_loading)
|
|
|
|
|
|
+ if (!i915_modparams.enable_guc_loading)
|
|
return;
|
|
return;
|
|
|
|
|
|
- if (i915.enable_guc_submission)
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_submission)
|
|
i915_guc_submission_disable(dev_priv);
|
|
i915_guc_submission_disable(dev_priv);
|
|
|
|
|
|
guc_disable_communication(&dev_priv->guc);
|
|
guc_disable_communication(&dev_priv->guc);
|
|
|
|
|
|
- if (i915.enable_guc_submission) {
|
|
|
|
|
|
+ if (i915_modparams.enable_guc_submission) {
|
|
gen9_disable_guc_interrupts(dev_priv);
|
|
gen9_disable_guc_interrupts(dev_priv);
|
|
i915_guc_submission_fini(dev_priv);
|
|
i915_guc_submission_fini(dev_priv);
|
|
}
|
|
}
|