intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
	lucas.demarchi@intel.com
Subject: Re: [PATCH v2 0/9] drm/i915/display: platform identification with display->is.<PLATFORM>
Date: Tue, 24 Sep 2024 12:49:25 +0300	[thread overview]
Message-ID: <87wmj14c0q.fsf@intel.com> (raw)
In-Reply-To: <ZtCb5yc6KCy1S6bo@intel.com>

On Thu, 29 Aug 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Aug 28, 2024 at 04:41:24PM -0400, Rodrigo Vivi wrote:
>> On Mon, Aug 19, 2024 at 09:44:27PM +0300, Jani Nikula wrote:
>> > v2 of [1]. Please read the cover letter there.
>> > 
>> > This addresses review comments and adds a few more commits on top, in particular
>> > the last one showcasing the approach.
>> > 
>> > The main question remains, is this what we want?
>> 
>> I don't know why, but the 'is' thing is still strange.
>> 
>> I know I know... I'm bad with naming myself.
>> 
>> I think about 'platform' but that get too big
>> 
>> if (display->platform.BROADWELL)
>> 
>> I think about 'gen' but then it is overloaded....
>> 
>> then I think about 'ip' is worse...
>> 
>> 'version'?
>> 
>> 'name'?
>> 
>> if (display->name.HASWELL)...
>> 
>> ....
>> 
>> But well, I like the overall simplification here in general.
>> Without a better name to suggest, I guess let's just move ahead...
>
> One slight concern with the is.foo is whether it complicates finding
> things with eg. cscope. But I suppose for platforms that doesn't matter
> all that much. For the has_foo stuff it'd be much more relevant.

It does make finding things harder with cscope and gnu global, but git
grep for is.FOO is pretty accurate.

> Anyways, can't think of anything particularly elegant myself either,
> so go ahead I guess.

So I haven't yet. I just still have that slightly uneasy feeling about
whether this is a good thing or not. That doesn't usually make me shy
away from things, because you can fix stuff later, but getting this
wrong causes so much churn everywhere.

The fact that it's not a macro makes it less flexible for future
changes. The display->is.FOO is somewhat legible, but could be
better. Would all lowercase make it better? I don't know.

More alternatives? Not elegant for sure, but just alternatives:

- Lowercase names:

	if (display->is.rocketlake)

  Does not help with flexibility or cscope.

- Lowercase macros for display, e.g. is_rocketlake().

	if (is_rocketlake(display))

- Macros based on just the platform name, e.g. ROCKETLAKE().

	if (ROCKETLAKE(display))

  or change IS_ to something else e.g. PLATFORM_ROCKETLAKE().

	if (PLATFORM_ROCKETLAKE(display))

  But that can get a bit long in some if ladders etc.

- Go through the trouble of making the existing IS_FOO() macros _Generic
  and accept either i915 or display pointer. This does postpone making
  any further changes, but fairly soon there will need to be two sets of
  macros, separate for i915 and display, even though named the same.

  Also, the _Generic thing would look up the platform definitions from
  different places, which could be error prone.


Yeah, procrastination...


BR,
Jani.




-- 
Jani Nikula, Intel

  reply	other threads:[~2024-09-24  9:49 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-19 18:44 [PATCH v2 0/9] drm/i915/display: platform identification with display->is.<PLATFORM> Jani Nikula
2024-08-19 18:44 ` [PATCH v2 1/9] drm/i915/display: use a macro to initialize subplatforms Jani Nikula
2024-08-19 18:44 ` [PATCH v2 2/9] drm/i915/display: use a macro to define platform enumerations Jani Nikula
2024-08-19 18:44 ` [PATCH v2 3/9] drm/i915/display: join the platform and subplatform enums Jani Nikula
2024-08-19 18:44 ` [PATCH v2 4/9] drm/i915/display: add display platforms structure with platform members Jani Nikula
2024-08-28 20:46   ` Rodrigo Vivi
2024-08-19 18:44 ` [PATCH v2 5/9] drm/i915/display: add platforms "is" member to struct intel_display Jani Nikula
2024-08-19 18:48   ` [PATCH v3] " Jani Nikula
2024-08-28 20:48     ` Rodrigo Vivi
2024-08-28 20:47   ` [PATCH v2 5/9] " Rodrigo Vivi
2024-08-19 18:44 ` [PATCH v2 6/9] drm/i915/display: remove the display platform enum as unnecessary Jani Nikula
2024-08-28 20:49   ` Rodrigo Vivi
2024-08-19 18:44 ` [PATCH v2 7/9] drm/i915/display: consider HSW/BDW ULX to also be ULT Jani Nikula
2024-08-28 20:50   ` Rodrigo Vivi
2024-08-19 18:44 ` [PATCH v2 8/9] drm/i915/display: keep subplatforms next to their platforms Jani Nikula
2024-08-28 20:52   ` Rodrigo Vivi
2024-08-19 18:44 ` [PATCH v2 9/9] drm/i915/bios: use display->is.PLATFORM instead of IS_PLATFORM() Jani Nikula
2024-08-28 20:52   ` Rodrigo Vivi
2024-08-19 18:51 ` ✓ CI.Patch_applied: success for drm/i915/display: platform identification with display->is.<PLATFORM> (rev2) Patchwork
2024-08-19 18:51 ` ✗ CI.checkpatch: warning " Patchwork
2024-08-19 18:52 ` ✓ CI.KUnit: success " Patchwork
2024-08-19 19:04 ` ✓ CI.Build: " Patchwork
2024-08-19 19:06 ` ✓ CI.Hooks: " Patchwork
2024-08-19 19:08 ` ✗ CI.checksparse: warning " Patchwork
2024-08-19 19:30 ` ✗ CI.BAT: failure " Patchwork
2024-08-19 19:35 ` ✓ CI.Patch_applied: success for drm/i915/display: platform identification with display->is.<PLATFORM> (rev3) Patchwork
2024-08-19 19:35 ` ✗ CI.checkpatch: warning " Patchwork
2024-08-19 19:36 ` ✓ CI.KUnit: success " Patchwork
2024-08-19 19:51 ` ✓ CI.Build: " Patchwork
2024-08-19 19:54 ` ✓ CI.Hooks: " Patchwork
2024-08-19 19:56 ` ✗ CI.checksparse: warning " Patchwork
2024-08-19 20:16 ` ✓ CI.BAT: success " Patchwork
2024-08-19 23:31 ` ✗ CI.FULL: failure for drm/i915/display: platform identification with display->is.<PLATFORM> (rev2) Patchwork
2024-08-20  0:25 ` ✗ CI.FULL: failure for drm/i915/display: platform identification with display->is.<PLATFORM> (rev3) Patchwork
2024-08-28 20:41 ` [PATCH v2 0/9] drm/i915/display: platform identification with display->is.<PLATFORM> Rodrigo Vivi
2024-08-29 16:03   ` Ville Syrjälä
2024-09-24  9:49     ` Jani Nikula [this message]
2024-09-24 13:14       ` Lucas De Marchi
2024-09-24 13:37         ` Jani Nikula
2024-09-24 13:43           ` Ville Syrjälä
2024-09-26 14:58           ` Rodrigo Vivi
2024-09-27 12:16             ` Jani Nikula
2024-09-27 14:49               ` Rodrigo Vivi
2024-09-27 15:01                 ` Jani Nikula
2024-09-27 16:13                   ` Rodrigo Vivi
2024-09-27 18:12                     ` Lucas De Marchi

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=87wmj14c0q.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=lucas.demarchi@intel.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=ville.syrjala@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;
as well as URLs for NNTP newsgroup(s).