From: Michal Wajdeczko <michal.wajdeczko@intel.com>
To: John Harrison <john.c.harrison@intel.com>,
intel-xe@lists.freedesktop.org
Cc: Badal Nilawar <badal.nilawar@intel.com>
Subject: Re: [PATCH 4/4] drm/xe/guc: Avoid named enum types in GuC KLV ABI
Date: Tue, 11 Jun 2024 23:14:16 +0200 [thread overview]
Message-ID: <67ea0d7a-1383-46eb-84fe-eb6140063842@intel.com> (raw)
In-Reply-To: <ff5024c2-a973-4a04-a41f-d0197ea74561@intel.com>
On 11.06.2024 22:16, John Harrison wrote:
> On 6/11/2024 11:07, Michal Wajdeczko wrote:
>> The xe_guc_klv_ids name just for workaround keys is too generic,
> So rename it to xe_guc_wa_klv_ids?
but the idea is to make GuC ABI headers shareable between i915 and xe,
see [1], thus having driver specific prefix in the enum is not desired
what about guc_wa_klv_keys (as we have KEY not ID in the KLV)
[1] https://patchwork.freedesktop.org/series/134722/
>
>> as workaround keys are not the only keys used by the GuC firmware.
>> Other KLVs keys are defined as plain defines or anonymous enums.
> Just because other instances are done badly doesn't mean we should break
> the good one to match.
all these are ABI definitions so IMO there is nothing wrong with using
plain defines for values expected at the binary interface
also using defines allows to have similarly named related definitions
that we could all place together (like KEY and LEN for each KLV), which
would be hard to achieve if we will have separate enums for those
> Having a named type gives you an extra level of compiler type checks
> that you don't get with a u16.
fine, but at the end you need to convert to u16 anyway
and hopefully there will be no clash when those WA keys will be used
where we use another named enum for KLV keys
>
> John.
>
>
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: John Harrison <John.C.Harrison@Intel.com>
>> Cc: Badal Nilawar <badal.nilawar@intel.com>
>> ---
>> drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 2 +-
>> drivers/gpu/drm/xe/xe_guc_ads.c | 4 ++--
>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
>> b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
>> index a0b80c9fc5ef..831a2b57f308 100644
>> --- a/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
>> +++ b/drivers/gpu/drm/xe/abi/guc_klvs_abi.h
>> @@ -346,7 +346,7 @@ enum {
>> /*
>> * Workaround keys:
>> */
>> -enum xe_guc_klv_ids {
>> +enum {
>>
>> GUC_WORKAROUND_KLV_BLOCK_INTERRUPTS_WHEN_MGSR_BLOCKED =
>> 0x9002,
>> GUC_WORKAROUND_KLV_ID_GAM_PFQ_SHADOW_TAIL_POLLING
>> = 0x9005,
>>
>> GUC_WORKAROUND_KLV_ID_DISABLE_MTP_DURING_ASYNC_COMPUTE
>> = 0x9007,
>> diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c
>> b/drivers/gpu/drm/xe/xe_guc_ads.c
>> index 1c60b685dbc6..a3de00e92b4e 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_ads.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
>> @@ -285,7 +285,7 @@ static size_t calculate_golden_lrc_size(struct
>> xe_guc_ads *ads)
>> }
>> static void guc_waklv_enable_one_word(struct xe_guc_ads *ads,
>> - enum xe_guc_klv_ids klv_id,
>> + u16 klv_id,
>> u32 value,
>> u32 *offset, u32 *remain)
>> {
>> @@ -312,7 +312,7 @@ static void guc_waklv_enable_one_word(struct
>> xe_guc_ads *ads,
>> }
>> static void guc_waklv_enable_simple(struct xe_guc_ads *ads,
>> - enum xe_guc_klv_ids klv_id, u32 *offset, u32
>> *remain)
>> + u16 klv_id, u32 *offset, u32 *remain)
>> {
>> u32 klv_entry[] = {
>> /* 16:16 key/length */
>
next prev parent reply other threads:[~2024-06-11 21:14 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-11 18:07 [PATCH 0/4] More GuC ABI fixes Michal Wajdeczko
2024-06-11 18:07 ` [PATCH 1/4] drm/xe/guc: Fixup GuC KLV ABI kernel-doc annotations Michal Wajdeczko
2024-06-11 18:07 ` [PATCH 2/4] drm/xe/guc: Update GuC CTB Descriptor ABI Michal Wajdeczko
2024-06-11 18:07 ` [PATCH 3/4] drm/xe/guc: Fixup HXG Fast Request description Michal Wajdeczko
2024-06-11 18:07 ` [PATCH 4/4] drm/xe/guc: Avoid named enum types in GuC KLV ABI Michal Wajdeczko
2024-06-11 20:16 ` John Harrison
2024-06-11 21:14 ` Michal Wajdeczko [this message]
2024-06-12 20:50 ` John Harrison
2024-06-11 20:25 ` ✓ CI.Patch_applied: success for More GuC ABI fixes Patchwork
2024-06-11 20:26 ` ✗ CI.checkpatch: warning " Patchwork
2024-06-11 20:27 ` ✓ CI.KUnit: success " Patchwork
2024-06-11 20:38 ` ✓ CI.Build: " Patchwork
2024-06-11 20:41 ` ✗ CI.Hooks: failure " Patchwork
2024-06-11 20:42 ` ✓ CI.checksparse: success " Patchwork
2024-06-11 21:24 ` ✓ CI.BAT: " Patchwork
2024-06-12 2:27 ` ✗ CI.FULL: failure " 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=67ea0d7a-1383-46eb-84fe-eb6140063842@intel.com \
--to=michal.wajdeczko@intel.com \
--cc=badal.nilawar@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=john.c.harrison@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