Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Jani Nikula <jani.nikula@linux.intel.com>,
	Gustavo Sousa <gustavo.sousa@intel.com>,
	<intel-gfx@lists.freedesktop.org>
Cc: <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH 1/2] drm/i915/display_wa: Add helpers to check wa
Date: Thu, 3 Jul 2025 11:49:03 +0530	[thread overview]
Message-ID: <2e1eb138-88ec-4e8b-b5bb-fd29984823bc@intel.com> (raw)
In-Reply-To: <45e9d0aa40e0f9bf9dac03054e7a46c52623ba84@intel.com>


On 7/2/2025 7:42 PM, Jani Nikula wrote:
> On Wed, 02 Jul 2025, Gustavo Sousa <gustavo.sousa@intel.com> wrote:
>> Quoting Ankit Nautiyal (2025-07-02 05:46:18-03:00)
>>> Introduce a generic helper to check display workarounds using an enum.
>>>
>>> Convert Wa_16023588340 to use the new interface, simplifying WA checks
>>> and making future additions easier.
>>>
>>> v2: Use drm_WARN instead of MISSING_CASE and simplify intel_display_wa
>>> macro. (Jani)
>>>
>>> Suggested-by: Jani Nikula <jani.nikula@intel.com>
>>> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
>>> ---
>>> drivers/gpu/drm/i915/display/intel_display_wa.c | 15 +++++++++++++++
>>> drivers/gpu/drm/i915/display/intel_display_wa.h |  9 +++++++++
>>> drivers/gpu/drm/i915/display/intel_fbc.c        |  2 +-
>>> 3 files changed, 25 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.c b/drivers/gpu/drm/i915/display/intel_display_wa.c
>>> index f57280e9d041..f5e8d58d9a68 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_display_wa.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_display_wa.c
>>> @@ -3,6 +3,8 @@
>>>   * Copyright © 2023 Intel Corporation
>>>   */
>>>
>>> +#include "drm/drm_print.h"
>>> +
>>> #include "i915_reg.h"
>>> #include "intel_de.h"
>>> #include "intel_display_core.h"
>>> @@ -39,3 +41,16 @@ void intel_display_wa_apply(struct intel_display *display)
>>>          else if (DISPLAY_VER(display) == 11)
>>>                  gen11_display_wa_apply(display);
>>> }
>>> +
>>> +bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa)
>>> +{
>>> +        switch (wa) {
>>> +        case INTEL_DISPLAY_WA_16023588340:
>>> +                return intel_display_needs_wa_16023588340(display);
>>> +        default:
>>> +                drm_WARN(display->drm, 1, "Missing Wa number: %d\n", wa);
>> Hm... I wonder how useful the message would be if we just show the enum
>> value. For example, if the next workaround that we added was
>> INTEL_DISPLAY_WA_99999999999 and we had it missing here, I think we
>> would get the following warning message:
>>
>>      "Missing Wa number: 1"
>>
>> Perhaps the enum identifier could be found in the callstack that is
>> presented with the warning, but I'm wondering if we could do better
>> here.
>>
>> Not sure there is a good solution without requiring extra memory to map
>> each enum member to its corresponding the workaround number.
> The solution would be to make the function:
>
> bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char *name);
>
> and the macro:
>
> #define intel_display_wa(__display, __wa) \
> 	__intel_display_wa((__display), INTEL_DISPLAY_WA_##__wa, __stringify(__wa))
>
> and then you could debug log the name.
>
> Worth it? Not sure.

Hmm... there might be some value to have some mechanism to print the WA 
name.

While it might not add much value in this particular case, but it could 
be helpful in other failure scenario,

where identifying the exact WA name might give clue while debugging.

Regards,

Ankit

>
>
> BR,
> Jani.
>
>
>> --
>> Gustavo Sousa
>>
>>> +                break;
>>> +        }
>>> +
>>> +        return false;
>>> +}
>>> diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h b/drivers/gpu/drm/i915/display/intel_display_wa.h
>>> index babd9d16603d..146ee70d66f7 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_display_wa.h
>>> +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
>>> @@ -21,4 +21,13 @@ static inline bool intel_display_needs_wa_16023588340(struct intel_display *disp
>>> bool intel_display_needs_wa_16023588340(struct intel_display *display);
>>> #endif
>>>
>>> +enum intel_display_wa {
>>> +        INTEL_DISPLAY_WA_16023588340,
>>> +};
>>> +
>>> +bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa);
>>> +
>>> +#define intel_display_wa(__display, __wa) \
>>> +        __intel_display_wa((__display), INTEL_DISPLAY_WA_##__wa)
>>> +
>>> #endif
>>> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
>>> index 6e26cb4c5724..e2e03af520b2 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
>>> @@ -1464,7 +1464,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
>>>                  return 0;
>>>          }
>>>
>>> -        if (intel_display_needs_wa_16023588340(display)) {
>>> +        if (intel_display_wa(display, 16023588340)) {
>>>                  plane_state->no_fbc_reason = "Wa_16023588340";
>>>                  return 0;
>>>          }
>>> -- 
>>> 2.45.2
>>>

  reply	other threads:[~2025-07-03  6:19 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-02  8:46 [PATCH 0/2] Introduce helper for display workarounds and add Wa_16025573575 Ankit Nautiyal
2025-07-02  8:46 ` [PATCH 1/2] drm/i915/display_wa: Add helpers to check wa Ankit Nautiyal
2025-07-02  9:29   ` Jani Nikula
2025-07-02 13:30   ` Gustavo Sousa
2025-07-02 14:12     ` Jani Nikula
2025-07-03  6:19       ` Nautiyal, Ankit K [this message]
2025-07-02 19:40   ` Ville Syrjälä
2025-07-02 20:25     ` Lucas De Marchi
2025-07-02 21:29       ` Ville Syrjälä
2025-07-02 21:49         ` Ville Syrjälä
2025-07-03  9:30           ` Nautiyal, Ankit K
2025-07-03 12:14             ` Gustavo Sousa
2025-07-03 13:51             ` Lucas De Marchi
2025-07-03 12:08           ` Gustavo Sousa
2025-07-03 13:55             ` Lucas De Marchi
2025-07-03 14:44               ` Gustavo Sousa
2025-07-02  8:46 ` [PATCH 2/2] drm/i915/gmbus: Add Wa_16025573575 for PTL for bit-bashing Ankit Nautiyal
2025-07-02 13:11   ` Gustavo Sousa
2025-07-03  6:05     ` Nautiyal, Ankit K
2025-07-03 12:16       ` Gustavo Sousa
2025-07-02  9:36 ` ✓ CI.KUnit: success for Introduce helper for display workarounds and add Wa_16025573575 (rev2) Patchwork
2025-07-02 10:18 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-04  1:16 ` ✗ Xe.CI.Full: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2025-07-11  4:18 [PATCH 0/2] Introduce helper for display workarounds and add Wa_16025573575 Ankit Nautiyal
2025-07-11  4:18 ` [PATCH 1/2] drm/i915/display_wa: Add helpers to check wa Ankit Nautiyal
2025-07-16 14:18   ` Gustavo Sousa
2025-06-30  5:49 [PATCH 0/2] Introduce helper for display workarounds and add Wa_16025573575 Ankit Nautiyal
2025-06-30  5:49 ` [PATCH 1/2] drm/i915/display_wa: Add helpers to check wa Ankit Nautiyal
2025-06-30  7:23   ` Jani Nikula
2025-06-30  7:54     ` Nautiyal, Ankit K

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=2e1eb138-88ec-4e8b-b5bb-fd29984823bc@intel.com \
    --to=ankit.k.nautiyal@intel.com \
    --cc=gustavo.sousa@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox