From: Jani Nikula <jani.nikula@linux.intel.com>
To: Lucas De Marchi <lucas.demarchi@intel.com>,
Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH] drm/i915/dmc: Use RUNTIME_INFO->stp for DMC
Date: Fri, 02 Jul 2021 10:49:05 +0300 [thread overview]
Message-ID: <87eechqhou.fsf@intel.com> (raw)
In-Reply-To: <20210701000114.smjdtszhfx24gkkj@ldmartin-desk2>
On Wed, 30 Jun 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> Typo: RUNTIME_INFO->stp
>
> On Wed, Jun 30, 2021 at 04:06:24PM -0700, Anusha Srivatsa wrote:
>>On the dmc side,we maintain a lookup table with different display
>>stepping-substepping combinations.
>>
>>Instead of adding new table for every new platform, lets ues
>>the stepping info from RUNTIME_INFO(dev_priv)->step
>>Adding the helper intel_get_display_step().
>>
>>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 | 49 ++++++++++++++++++++++--
>> 1 file changed, 45 insertions(+), 4 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
>>index f8789d4543bf..c7ff7ff3f412 100644
>>--- a/drivers/gpu/drm/i915/display/intel_dmc.c
>>+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
>>@@ -266,14 +266,55 @@ static const struct stepping_info icl_stepping_info[] = {
>> };
>>
>> static const struct stepping_info no_stepping_info = { '*', '*' };
>>+struct stepping_info *display_step;
>>+
>>+static struct stepping_info *
>>+intel_get_display_stepping(struct intel_step_info step)
>>+{
>>+
>>+ switch (step.display_step) {
>>+ case STEP_A0:
>>+ display_step->stepping = 'A';
>>+ display_step->substepping = '0';
>>+ break;
>>+ case STEP_A2:
>>+ display_step->stepping = 'A';
>>+ display_step->substepping = '2';
>>+ break;
>>+ case STEP_B0:
>>+ display_step->stepping = 'B';
>>+ display_step->substepping = '0';
>>+ break;
>>+ case STEP_B1:
>>+ display_step->stepping = 'B';
>>+ display_step->substepping = '1';
>>+ break;
>>+ case STEP_C0:
>>+ display_step->stepping = 'C';
>>+ display_step->substepping = '0';
>>+ break;
>>+ case STEP_D0:
>>+ display_step->stepping = 'D';
>>+ display_step->substepping = '0';
>>+ break;
>>+ default:
>>+ display_step->stepping = '*';
>>+ display_step->substepping = '*';
>>+ break;
>>+ }
>
>
> "crazy" idea that would avoid this type of conversion:
> changing the step enum to be:
>
>
> #define make_step(letter, num) (int)(((letter) << 8 ) | (num))
>
> STEP_A0 = make_step('A', '0'),
> STEP_A1 = make_step('A', '1'),
>
> and adapt the rest of the code to play with u16 instead of u8, and
> handle the STEP_FUTURE/STEP_NONE/STEP_FOREVER.
> Maybe it is crazy, dunno.
>
> +Jani / +Jose. Thoughts?
Frankly, I think all of this should be incorporated to intel_step.[ch]
instead of having a semi-overlapping handling here. Just look at the
amount of duplication already.
BR,
Jani.
>
>
> For this version the next comment is probably more important.
>
>>+ return display_step;
>>+}
>>
>> static const struct stepping_info *
>> intel_get_stepping_info(struct drm_i915_private *dev_priv)
>> {
>> const struct stepping_info *si;
>>+ struct intel_step_info step = RUNTIME_INFO(dev_priv)->step;
>> unsigned int size;
>>
>>- if (IS_ICELAKE(dev_priv)) {
>>+ if (DISPLAY_VER(dev_priv) >= 12) {
>>+ si = intel_get_display_stepping(step);
>>+ } else if (IS_ICELAKE(dev_priv)) {
>> size = ARRAY_SIZE(icl_stepping_info);
>> si = icl_stepping_info;
>
> can we move the other ones too? Just use display_step for all platforms.
> Notice that before the separation we will have display_step ==
> graphics_step, so it should just work.
>
>
> Lucas De Marchi
>
>> } else if (IS_SKYLAKE(dev_priv)) {
>>@@ -287,10 +328,10 @@ intel_get_stepping_info(struct drm_i915_private *dev_priv)
>> si = NULL;
>> }
>>
>>- if (INTEL_REVID(dev_priv) < size)
>>- return si + INTEL_REVID(dev_priv);
>>+ if (DISPLAY_VER(dev_priv) < 12)
>>+ return INTEL_REVID(dev_priv) < size ? si + INTEL_REVID(dev_priv) : &no_stepping_info;
>>
>>- return &no_stepping_info;
>>+ return si;
>> }
>>
>> static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
>>--
>>2.32.0
>>
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2021-07-02 7:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-30 23:06 [Intel-gfx] [PATCH] drm/i915/dmc: Use RUNTIME_INFO->stp for DMC Anusha Srivatsa
2021-06-30 23:13 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2021-06-30 23:14 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-06-30 23:44 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-07-01 0:01 ` [Intel-gfx] [PATCH] " Lucas De Marchi
2021-07-01 0:15 ` Souza, Jose
2021-07-01 0:17 ` Lucas De Marchi
2021-07-01 17:46 ` Lucas De Marchi
2021-07-02 7:49 ` Jani Nikula [this message]
2021-07-04 5:34 ` Lucas De Marchi
2021-07-05 7:45 ` Jani Nikula
2021-07-01 5:48 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87eechqhou.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=anusha.srivatsa@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=lucas.demarchi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.