[Intel-gfx] [PATCH 08/10] drm/i915/bxt: Use revid->stepping tables
Matt Roper
matthew.d.roper at intel.com
Fri Jul 9 03:53:21 UTC 2021
On Thu, Jul 08, 2021 at 04:18:19PM -0700, Anusha Srivatsa wrote:
> Switch BXT to use a revid->stepping table as we're trying to do on all
> platforms going forward.
>
> Signed-off-by: Anusha Srivatsa <anusha.srivatsa at intel.com>
> ---
> drivers/gpu/drm/i915/intel_step.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_step.c b/drivers/gpu/drm/i915/intel_step.c
> index c4ce02d22828..99c0d3df001b 100644
> --- a/drivers/gpu/drm/i915/intel_step.c
> +++ b/drivers/gpu/drm/i915/intel_step.c
> @@ -31,6 +31,15 @@ static const struct intel_step_info skl_revid_step_tbl[] = {
> [0xA] = { .gt_step = STEP_I1, .display_step = STEP_I1 },
> };
>
> +static const struct intel_step_info bxt_revids[] = {
> + [0] = { .gt_step = STEP_A0 },
> + [1] = { .gt_step = STEP_A1 },
> + [2] = { .gt_step = STEP_A2 },
> + [6] = { .gt_step = STEP_B0 },
> + [7] = { .gt_step = STEP_B1 },
> + [8] = { .gt_step = STEP_B2 },
I realize the mistake originates from the #define's that you're
replacing with these tables, but the values in this table aren't the
correct GT/display steppings, but rather the SoC stepping; that's the
wrong thing for us to be matching on for workarounds, DMC versions, etc.
You want to use column #4 of the bspec table, not column #2.
Also we need to update this to use the proper revisions from the bspec;
most of the ones you have here were temporary placeholders before the
platform was released and the actual revisions that showed up in real
hardware are higher than any of your table entries. If we take into
account the right-most column of the bspec we'd actually want:
static const struct intel_step_info bxt_revids[] = {
[0xA] = { .gt_step = STEP_C0 },
[0xB] = { .gt_step = STEP_C0 },
[0xC] = { .gt_step = STEP_D0 },
[0xD] = { .gt_step = STEP_E0 },
};
Matt
> +};
> +
> static const struct intel_step_info kbl_revid_step_tbl[] = {
> [0] = { .gt_step = STEP_A0, .display_step = STEP_A0 },
> [1] = { .gt_step = STEP_B0, .display_step = STEP_B0 },
> @@ -129,6 +138,9 @@ void intel_step_init(struct drm_i915_private *i915)
> } else if (IS_KABYLAKE(i915)) {
> revids = kbl_revid_step_tbl;
> size = ARRAY_SIZE(kbl_revid_step_tbl);
> + } else if (IS_BROXTON(i915)) {
> + revids = bxt_revids;
> + size = ARRAY_SIZE(bxt_revids);
> } else if (IS_SKYLAKE(i915)) {
> revids = skl_revid_step_tbl;
> size = ARRAY_SIZE(skl_revid_step_tbl);
> --
> 2.32.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795
More information about the Intel-gfx
mailing list