From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 00/16] drm/i915/de: Register polling cleanup
Date: Tue, 11 Nov 2025 18:11:01 +0200 [thread overview]
Message-ID: <aRNgFWWLlp_qeRGa@intel.com> (raw)
In-Reply-To: <72502cbc1d1587e3a2671a8f84bae8a441b67908@intel.com>
On Tue, Nov 11, 2025 at 10:01:14AM +0200, Jani Nikula wrote:
> On Mon, 10 Nov 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Clean up the register polling stuff:
> > - rename the current wait stuff to
> > intel_de_wait_{,for_set,for_clear}_ms()
> > - introduce intel_de_wait_{,for_set,for_clear}_us()
> > - nuke intel_de_wait_custom()
> > - change the wakelock stuff to use _fw() instead of
> > hand rolling yet another level of register accessors
> > - a few other minor cleanups
> >
> > After this it should be fairly easy to switch over to
> > poll_timeout_us().
>
> Overall the series looks fine.
>
> Acked-by: Jani Nikula <jani.nikula@intel.com>
>
> since Suraj already did the detailed review.
>
> One questions remains unanswered, and I guess I'll have to wait for
> follow-up to see the answer. I really *really* dislike how the i915
> variants are somewhat ambiguously atomic, i.e. atomic when slow timeout
> is 0, and the xe wrappers replicate that behaviour. xe_mmio_wait32() has
> atomic as parameter.
>
> I would like the atomic variants to be explicit, and separate. Similar
> to poll_timeout_us() and poll_timeout_us_atomic(). You immediately know
> from the call whether you're doing the right thing or not. And that
> really should not directly depend on the timeout length. Since you plan
> on using the generic poll helpers, I presume this will propagate to the
> register polling helpers.
>
> Since we do a lot of non-atomic millisecond waits, I guess it's worth
> having the _ms variants, although like I said before, I'd kind of like
> going for _us all over the place. But no big deal, in the end the _ms
> variants can be trivial wrappers on the non-atomic _us ones.
At the end of this series we have intel_de_wait_fw_us_atomic()
which is the only thing that anyone should call from atomic
context. Granted the _us() stuff all still work in atomic
context due to the underlying uncore implementation. But
when we switch to poll_timeout_us() I plan to make all the
other stuff unusable from atomic contexts.
Ideally we probably shouldn't even have intel_de_wait_fw_us_atomic().
I think the wakelock code is the only place that needs it,
due to the spinlock presumably. I haven't checked if we could
just eg. make that a mutex and use the non-atomic thing there
as well.
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2025-11-11 16:11 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-10 17:27 [PATCH 00/16] drm/i915/de: Register polling cleanup Ville Syrjala
2025-11-10 17:27 ` [PATCH 01/16] drm/i915/de: Implement register waits one way Ville Syrjala
2025-11-11 4:52 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 02/16] drm/i915/de: Have intel_de_wait() hand out the final register value Ville Syrjala
2025-11-11 4:14 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 03/16] drm/i915/de: Include units in intel_de_wait*() function names Ville Syrjala
2025-11-11 4:21 ` Kandpal, Suraj
2025-11-11 17:45 ` Ville Syrjälä
2025-11-10 17:27 ` [PATCH 04/16] drm/i915/de: Introduce intel_de_wait_us() Ville Syrjala
2025-11-11 4:24 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 05/16] drm/i915/de: Use intel_de_wait_us() Ville Syrjala
2025-11-11 4:28 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 06/16] drm/i915/de: Use intel_de_wait_ms() for the obvious cases Ville Syrjala
2025-11-11 4:32 ` Kandpal, Suraj
2025-11-11 17:41 ` Ville Syrjälä
2025-11-10 17:27 ` [PATCH 07/16] drm/i915/de: Nuke intel_de_wait_custom() Ville Syrjala
2025-11-11 4:33 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 08/16] drm/i915/de: Introduce intel_de_wait_for_{set, clear}_us() Ville Syrjala
2025-11-11 4:35 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 09/16] drm/i915/de: Use intel_de_wait_for_{set,clear}_us() Ville Syrjala
2025-11-11 4:38 ` [PATCH 09/16] drm/i915/de: Use intel_de_wait_for_{set, clear}_us() Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 10/16] drm/i915/de: Use intel_de_wait_for_{set,clear}_ms() Ville Syrjala
2025-11-11 4:39 ` [PATCH 10/16] drm/i915/de: Use intel_de_wait_for_{set, clear}_ms() Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 11/16] drm/1915/dpio: Stop using intel_de_wait_fw_ms() Ville Syrjala
2025-11-11 4:41 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 12/16] drm/u195/de: Replace __intel_de_rmw_nowl() with intel_de_rmw_fw() Ville Syrjala
2025-11-11 4:44 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 13/16] drm/i915/de: Nuke wakelocks from intel_de_wait_fw_ms() Ville Syrjala
2025-11-11 4:45 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 14/16] drm/i915/de: Replace __intel_de_wait_for_register_nowl() with intel_de_wait_fw_us_atomic() Ville Syrjala
2025-11-11 4:46 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 15/16] drm/i915/power: Use the intel_de_wait_ms() out value Ville Syrjala
2025-11-11 4:48 ` Kandpal, Suraj
2025-11-10 17:27 ` [PATCH 16/16] drm/i915/dpio: " Ville Syrjala
2025-11-11 4:50 ` Kandpal, Suraj
2025-11-10 21:24 ` ✓ i915.CI.BAT: success for drm/i915/de: Register polling cleanup Patchwork
2025-11-11 3:41 ` ✗ i915.CI.Full: failure " Patchwork
2025-11-11 8:01 ` [PATCH 00/16] " Jani Nikula
2025-11-11 16:11 ` Ville Syrjälä [this message]
2025-11-11 19:09 ` Ville Syrjälä
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=aRNgFWWLlp_qeRGa@intel.com \
--to=ville.syrjala@linux.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