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: 45+ 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 18:01 ` ✗ CI.checkpatch: warning for drm/i915/de: Register polling cleanup Patchwork
2025-11-10 18:02 ` ✓ CI.KUnit: success " Patchwork
2025-11-10 18:17 ` ✗ CI.checksparse: warning " Patchwork
2025-11-10 18:46 ` ✓ Xe.CI.BAT: success " Patchwork
2025-11-10 21:24 ` ✓ i915.CI.BAT: " Patchwork
2025-11-10 23:38 ` ✓ Xe.CI.Full: " 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 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.