Message ID | 1510358798-21566-4-git-send-email-sujaritha.sundaresan@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, 11 Nov 2017 01:06:33 +0100, Sujaritha Sundaresan <sujaritha.sundaresan@intel.com> wrote: > Updating GuC and HuC firmware select function to support removing > i915_modparams.enable_guc_loading module parameter. > > v2: Clarifying the commit message (Anusha) > > v3: Unify seq_puts messages, Re-factoring code as per review (Michal) > > v4: Rebase > > v5: Separating message unification into a separate patch > > v6: Re-factoring code (Sagar, Michal) > Rebase > > v7: Separating from previuos patch (Sagar) > Rebase > > v8: Including change to intel_uc.c > Applying review comments (Michal) > > v9: Including HAS_HUC macro > > Signed-off-by: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com> > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> > Cc: Oscar Mateo <oscar.mateo@intel.com> > Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com> > --- > drivers/gpu/drm/i915/intel_guc_fw.c | 6 ++---- > drivers/gpu/drm/i915/intel_guc_fw.h | 2 +- > drivers/gpu/drm/i915/intel_huc.c | 3 ++- > drivers/gpu/drm/i915/intel_uc.c | 7 +++++++ > 4 files changed, 12 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c > b/drivers/gpu/drm/i915/intel_guc_fw.c > index 69ba015..112c89d 100644 > --- a/drivers/gpu/drm/i915/intel_guc_fw.c > +++ b/drivers/gpu/drm/i915/intel_guc_fw.c > @@ -63,7 +63,7 @@ > * > * Return: zero when we know firmware, non-zero in other case > */ > -int intel_guc_fw_select(struct intel_guc *guc) > +void intel_guc_fw_select(struct intel_guc *guc) > { > struct drm_i915_private *dev_priv = guc_to_i915(guc); > @@ -91,10 +91,8 @@ int intel_guc_fw_select(struct intel_guc *guc) > guc->fw.minor_ver_wanted = GLK_FW_MINOR; > } else { > DRM_ERROR("No GuC firmware known for platform with GuC!\n"); > - return -ENOENT; > + return; > } > - > - return 0; > } > static void guc_prepare_xfer(struct intel_guc *guc) > diff --git a/drivers/gpu/drm/i915/intel_guc_fw.h > b/drivers/gpu/drm/i915/intel_guc_fw.h > index 023f5ba..7f6ccaf 100644 > --- a/drivers/gpu/drm/i915/intel_guc_fw.h > +++ b/drivers/gpu/drm/i915/intel_guc_fw.h > @@ -27,7 +27,7 @@ > struct intel_guc; > -int intel_guc_fw_select(struct intel_guc *guc); > +void intel_guc_fw_select(struct intel_guc *guc); > int intel_guc_fw_upload(struct intel_guc *guc); > #endif > diff --git a/drivers/gpu/drm/i915/intel_huc.c > b/drivers/gpu/drm/i915/intel_huc.c > index 98d1725..7f4bbc1 100644 > --- a/drivers/gpu/drm/i915/intel_huc.c > +++ b/drivers/gpu/drm/i915/intel_huc.c > @@ -108,7 +108,8 @@ void intel_huc_select_fw(struct intel_huc *huc) > huc->fw.major_ver_wanted = GLK_HUC_FW_MAJOR; > huc->fw.minor_ver_wanted = GLK_HUC_FW_MINOR; > } else { > - DRM_ERROR("No HuC firmware known for platform with HuC!\n"); > + if (HAS_HUC(dev_priv)) Can we move this check to the caller ? see intel_uc_init_fw And what about GuC ? > + DRM_ERROR("No HuC firmware known for platform with HuC!\n"); > return; > } > } > diff --git a/drivers/gpu/drm/i915/intel_uc.c > b/drivers/gpu/drm/i915/intel_uc.c > index 648e59c..320165a 100644 > --- a/drivers/gpu/drm/i915/intel_uc.c > +++ b/drivers/gpu/drm/i915/intel_uc.c > @@ -82,11 +82,18 @@ void intel_uc_sanitize_options(struct > drm_i915_private *dev_priv) > void intel_uc_init_early(struct drm_i915_private *dev_priv) > { > + struct intel_guc *guc = &dev_priv->guc; > + struct intel_huc *huc = &dev_priv->huc; > + > intel_guc_init_early(&dev_priv->guc); Btw, now you can pass 'guc' as param > + intel_guc_fw_select(guc); > + intel_huc_select_fw(huc); > } > void intel_uc_init_fw(struct drm_i915_private *dev_priv) > { > + if (!HAS_GUC(dev_priv)) > + return; > intel_uc_fw_fetch(dev_priv, &dev_priv->huc.fw); > intel_uc_fw_fetch(dev_priv, &dev_priv->guc.fw); > }
On 11/12/2017 08:25 AM, Michal Wajdeczko wrote: > On Sat, 11 Nov 2017 01:06:33 +0100, Sujaritha Sundaresan > <sujaritha.sundaresan@intel.com> wrote: > >> Updating GuC and HuC firmware select function to support removing >> i915_modparams.enable_guc_loading module parameter. >> >> v2: Clarifying the commit message (Anusha) >> >> v3: Unify seq_puts messages, Re-factoring code as per review (Michal) >> >> v4: Rebase >> >> v5: Separating message unification into a separate patch >> >> v6: Re-factoring code (Sagar, Michal) >> Rebase >> >> v7: Separating from previuos patch (Sagar) >> Rebase >> >> v8: Including change to intel_uc.c >> Applying review comments (Michal) >> >> v9: Including HAS_HUC macro >> >> Signed-off-by: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com> >> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com> >> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> >> Cc: Oscar Mateo <oscar.mateo@intel.com> >> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com> >> --- >> drivers/gpu/drm/i915/intel_guc_fw.c | 6 ++---- >> drivers/gpu/drm/i915/intel_guc_fw.h | 2 +- >> drivers/gpu/drm/i915/intel_huc.c | 3 ++- >> drivers/gpu/drm/i915/intel_uc.c | 7 +++++++ >> 4 files changed, 12 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c >> b/drivers/gpu/drm/i915/intel_guc_fw.c >> index 69ba015..112c89d 100644 >> --- a/drivers/gpu/drm/i915/intel_guc_fw.c >> +++ b/drivers/gpu/drm/i915/intel_guc_fw.c >> @@ -63,7 +63,7 @@ >> * >> * Return: zero when we know firmware, non-zero in other case >> */ >> -int intel_guc_fw_select(struct intel_guc *guc) >> +void intel_guc_fw_select(struct intel_guc *guc) >> { >> struct drm_i915_private *dev_priv = guc_to_i915(guc); >> @@ -91,10 +91,8 @@ int intel_guc_fw_select(struct intel_guc *guc) >> guc->fw.minor_ver_wanted = GLK_FW_MINOR; >> } else { >> DRM_ERROR("No GuC firmware known for platform with GuC!\n"); >> - return -ENOENT; >> + return; >> } >> - >> - return 0; >> } >> static void guc_prepare_xfer(struct intel_guc *guc) >> diff --git a/drivers/gpu/drm/i915/intel_guc_fw.h >> b/drivers/gpu/drm/i915/intel_guc_fw.h >> index 023f5ba..7f6ccaf 100644 >> --- a/drivers/gpu/drm/i915/intel_guc_fw.h >> +++ b/drivers/gpu/drm/i915/intel_guc_fw.h >> @@ -27,7 +27,7 @@ >> struct intel_guc; >> -int intel_guc_fw_select(struct intel_guc *guc); >> +void intel_guc_fw_select(struct intel_guc *guc); >> int intel_guc_fw_upload(struct intel_guc *guc); >> #endif >> diff --git a/drivers/gpu/drm/i915/intel_huc.c >> b/drivers/gpu/drm/i915/intel_huc.c >> index 98d1725..7f4bbc1 100644 >> --- a/drivers/gpu/drm/i915/intel_huc.c >> +++ b/drivers/gpu/drm/i915/intel_huc.c >> @@ -108,7 +108,8 @@ void intel_huc_select_fw(struct intel_huc *huc) >> huc->fw.major_ver_wanted = GLK_HUC_FW_MAJOR; >> huc->fw.minor_ver_wanted = GLK_HUC_FW_MINOR; >> } else { >> - DRM_ERROR("No HuC firmware known for platform with HuC!\n"); >> + if (HAS_HUC(dev_priv)) > > Can we move this check to the caller ? see intel_uc_init_fw > And what about GuC ? > Will do. Similar changes to guc as well. >> + DRM_ERROR("No HuC firmware known for platform with >> HuC!\n"); >> return; >> } >> } >> diff --git a/drivers/gpu/drm/i915/intel_uc.c >> b/drivers/gpu/drm/i915/intel_uc.c >> index 648e59c..320165a 100644 >> --- a/drivers/gpu/drm/i915/intel_uc.c >> +++ b/drivers/gpu/drm/i915/intel_uc.c >> @@ -82,11 +82,18 @@ void intel_uc_sanitize_options(struct >> drm_i915_private *dev_priv) >> void intel_uc_init_early(struct drm_i915_private *dev_priv) >> { >> + struct intel_guc *guc = &dev_priv->guc; >> + struct intel_huc *huc = &dev_priv->huc; >> + >> intel_guc_init_early(&dev_priv->guc); > > Btw, now you can pass 'guc' as param > Will do. >> + intel_guc_fw_select(guc); >> + intel_huc_select_fw(huc); >> } >> void intel_uc_init_fw(struct drm_i915_private *dev_priv) >> { >> + if (!HAS_GUC(dev_priv)) >> + return; >> intel_uc_fw_fetch(dev_priv, &dev_priv->huc.fw); >> intel_uc_fw_fetch(dev_priv, &dev_priv->guc.fw); >> } Thanks for the review. Regards, Sujaritha
diff --git a/drivers/gpu/drm/i915/intel_guc_fw.c b/drivers/gpu/drm/i915/intel_guc_fw.c index 69ba015..112c89d 100644 --- a/drivers/gpu/drm/i915/intel_guc_fw.c +++ b/drivers/gpu/drm/i915/intel_guc_fw.c @@ -63,7 +63,7 @@ * * Return: zero when we know firmware, non-zero in other case */ -int intel_guc_fw_select(struct intel_guc *guc) +void intel_guc_fw_select(struct intel_guc *guc) { struct drm_i915_private *dev_priv = guc_to_i915(guc); @@ -91,10 +91,8 @@ int intel_guc_fw_select(struct intel_guc *guc) guc->fw.minor_ver_wanted = GLK_FW_MINOR; } else { DRM_ERROR("No GuC firmware known for platform with GuC!\n"); - return -ENOENT; + return; } - - return 0; } static void guc_prepare_xfer(struct intel_guc *guc) diff --git a/drivers/gpu/drm/i915/intel_guc_fw.h b/drivers/gpu/drm/i915/intel_guc_fw.h index 023f5ba..7f6ccaf 100644 --- a/drivers/gpu/drm/i915/intel_guc_fw.h +++ b/drivers/gpu/drm/i915/intel_guc_fw.h @@ -27,7 +27,7 @@ struct intel_guc; -int intel_guc_fw_select(struct intel_guc *guc); +void intel_guc_fw_select(struct intel_guc *guc); int intel_guc_fw_upload(struct intel_guc *guc); #endif diff --git a/drivers/gpu/drm/i915/intel_huc.c b/drivers/gpu/drm/i915/intel_huc.c index 98d1725..7f4bbc1 100644 --- a/drivers/gpu/drm/i915/intel_huc.c +++ b/drivers/gpu/drm/i915/intel_huc.c @@ -108,7 +108,8 @@ void intel_huc_select_fw(struct intel_huc *huc) huc->fw.major_ver_wanted = GLK_HUC_FW_MAJOR; huc->fw.minor_ver_wanted = GLK_HUC_FW_MINOR; } else { - DRM_ERROR("No HuC firmware known for platform with HuC!\n"); + if (HAS_HUC(dev_priv)) + DRM_ERROR("No HuC firmware known for platform with HuC!\n"); return; } } diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c index 648e59c..320165a 100644 --- a/drivers/gpu/drm/i915/intel_uc.c +++ b/drivers/gpu/drm/i915/intel_uc.c @@ -82,11 +82,18 @@ void intel_uc_sanitize_options(struct drm_i915_private *dev_priv) void intel_uc_init_early(struct drm_i915_private *dev_priv) { + struct intel_guc *guc = &dev_priv->guc; + struct intel_huc *huc = &dev_priv->huc; + intel_guc_init_early(&dev_priv->guc); + intel_guc_fw_select(guc); + intel_huc_select_fw(huc); } void intel_uc_init_fw(struct drm_i915_private *dev_priv) { + if (!HAS_GUC(dev_priv)) + return; intel_uc_fw_fetch(dev_priv, &dev_priv->huc.fw); intel_uc_fw_fetch(dev_priv, &dev_priv->guc.fw); }
Updating GuC and HuC firmware select function to support removing i915_modparams.enable_guc_loading module parameter. v2: Clarifying the commit message (Anusha) v3: Unify seq_puts messages, Re-factoring code as per review (Michal) v4: Rebase v5: Separating message unification into a separate patch v6: Re-factoring code (Sagar, Michal) Rebase v7: Separating from previuos patch (Sagar) Rebase v8: Including change to intel_uc.c Applying review comments (Michal) v9: Including HAS_HUC macro Signed-off-by: Sujaritha Sundaresan <sujaritha.sundaresan@intel.com> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Oscar Mateo <oscar.mateo@intel.com> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com> --- drivers/gpu/drm/i915/intel_guc_fw.c | 6 ++---- drivers/gpu/drm/i915/intel_guc_fw.h | 2 +- drivers/gpu/drm/i915/intel_huc.c | 3 ++- drivers/gpu/drm/i915/intel_uc.c | 7 +++++++ 4 files changed, 12 insertions(+), 6 deletions(-)