Message ID | 20210715050507.31176-2-anusha.srivatsa@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/i915/step: Add macro magic for handling steps | expand |
On Wed, Jul 14, 2021 at 10:05:07PM -0700, Anusha Srivatsa wrote: >Lets use RUNTIME_INFO->step since all platforms now have their >stepping info in intel_step.c. This makes intel_get_stepping_info() >a lot simpler. > >Cc: Lucas De Marchi <lucas.demarchi@intel.com> >Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Given the patches from Matt were applied: Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> thanks Lucas De Marchi >--- > drivers/gpu/drm/i915/display/intel_dmc.c | 50 ++++-------------------- > 1 file changed, 8 insertions(+), 42 deletions(-) > >diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c >index f8789d4543bf..1f6c32932331 100644 >--- a/drivers/gpu/drm/i915/display/intel_dmc.c >+++ b/drivers/gpu/drm/i915/display/intel_dmc.c >@@ -247,50 +247,15 @@ bool intel_dmc_has_payload(struct drm_i915_private *i915) > return i915->dmc.dmc_info[DMC_FW_MAIN].payload; > } > >-static const struct stepping_info skl_stepping_info[] = { >- {'A', '0'}, {'B', '0'}, {'C', '0'}, >- {'D', '0'}, {'E', '0'}, {'F', '0'}, >- {'G', '0'}, {'H', '0'}, {'I', '0'}, >- {'J', '0'}, {'K', '0'} >-}; >- >-static const struct stepping_info bxt_stepping_info[] = { >- {'A', '0'}, {'A', '1'}, {'A', '2'}, >- {'B', '0'}, {'B', '1'}, {'B', '2'} >-}; >- >-static const struct stepping_info icl_stepping_info[] = { >- {'A', '0'}, {'A', '1'}, {'A', '2'}, >- {'B', '0'}, {'B', '2'}, >- {'C', '0'} >-}; >- >-static const struct stepping_info no_stepping_info = { '*', '*' }; >- > static const struct stepping_info * >-intel_get_stepping_info(struct drm_i915_private *dev_priv) >+intel_get_stepping_info(struct drm_i915_private *i915, >+ struct stepping_info *si) > { >- const struct stepping_info *si; >- unsigned int size; >- >- if (IS_ICELAKE(dev_priv)) { >- size = ARRAY_SIZE(icl_stepping_info); >- si = icl_stepping_info; >- } else if (IS_SKYLAKE(dev_priv)) { >- size = ARRAY_SIZE(skl_stepping_info); >- si = skl_stepping_info; >- } else if (IS_BROXTON(dev_priv)) { >- size = ARRAY_SIZE(bxt_stepping_info); >- si = bxt_stepping_info; >- } else { >- size = 0; >- si = NULL; >- } >- >- if (INTEL_REVID(dev_priv) < size) >- return si + INTEL_REVID(dev_priv); >+ const char *step_name = intel_step_name(RUNTIME_INFO(i915)->step.display_step); > >- return &no_stepping_info; >+ si->stepping = step_name[0]; >+ si->substepping = step_name[1]; >+ return si; > } > > static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv) >@@ -616,7 +581,8 @@ static void parse_dmc_fw(struct drm_i915_private *dev_priv, > struct intel_package_header *package_header; > struct intel_dmc_header_base *dmc_header; > struct intel_dmc *dmc = &dev_priv->dmc; >- const struct stepping_info *si = intel_get_stepping_info(dev_priv); >+ struct stepping_info display_info = { '*', '*'}; >+ const struct stepping_info *si = intel_get_stepping_info(dev_priv, &display_info); > u32 readcount = 0; > u32 r, offset; > int id; >-- >2.32.0 >
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c index f8789d4543bf..1f6c32932331 100644 --- a/drivers/gpu/drm/i915/display/intel_dmc.c +++ b/drivers/gpu/drm/i915/display/intel_dmc.c @@ -247,50 +247,15 @@ bool intel_dmc_has_payload(struct drm_i915_private *i915) return i915->dmc.dmc_info[DMC_FW_MAIN].payload; } -static const struct stepping_info skl_stepping_info[] = { - {'A', '0'}, {'B', '0'}, {'C', '0'}, - {'D', '0'}, {'E', '0'}, {'F', '0'}, - {'G', '0'}, {'H', '0'}, {'I', '0'}, - {'J', '0'}, {'K', '0'} -}; - -static const struct stepping_info bxt_stepping_info[] = { - {'A', '0'}, {'A', '1'}, {'A', '2'}, - {'B', '0'}, {'B', '1'}, {'B', '2'} -}; - -static const struct stepping_info icl_stepping_info[] = { - {'A', '0'}, {'A', '1'}, {'A', '2'}, - {'B', '0'}, {'B', '2'}, - {'C', '0'} -}; - -static const struct stepping_info no_stepping_info = { '*', '*' }; - static const struct stepping_info * -intel_get_stepping_info(struct drm_i915_private *dev_priv) +intel_get_stepping_info(struct drm_i915_private *i915, + struct stepping_info *si) { - const struct stepping_info *si; - unsigned int size; - - if (IS_ICELAKE(dev_priv)) { - size = ARRAY_SIZE(icl_stepping_info); - si = icl_stepping_info; - } else if (IS_SKYLAKE(dev_priv)) { - size = ARRAY_SIZE(skl_stepping_info); - si = skl_stepping_info; - } else if (IS_BROXTON(dev_priv)) { - size = ARRAY_SIZE(bxt_stepping_info); - si = bxt_stepping_info; - } else { - size = 0; - si = NULL; - } - - if (INTEL_REVID(dev_priv) < size) - return si + INTEL_REVID(dev_priv); + const char *step_name = intel_step_name(RUNTIME_INFO(i915)->step.display_step); - return &no_stepping_info; + si->stepping = step_name[0]; + si->substepping = step_name[1]; + return si; } static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv) @@ -616,7 +581,8 @@ static void parse_dmc_fw(struct drm_i915_private *dev_priv, struct intel_package_header *package_header; struct intel_dmc_header_base *dmc_header; struct intel_dmc *dmc = &dev_priv->dmc; - const struct stepping_info *si = intel_get_stepping_info(dev_priv); + struct stepping_info display_info = { '*', '*'}; + const struct stepping_info *si = intel_get_stepping_info(dev_priv, &display_info); u32 readcount = 0; u32 r, offset; int id;
Lets use RUNTIME_INFO->step since all platforms now have their stepping info in intel_step.c. This makes intel_get_stepping_info() a lot simpler. Cc: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> --- drivers/gpu/drm/i915/display/intel_dmc.c | 50 ++++-------------------- 1 file changed, 8 insertions(+), 42 deletions(-)