Yeah,
what about this, paraphrasing Junxia Chang's commit for the similar issue on Xe?
"
The LPE audio interrupt comes from the i915 interrupt handler. It
should be in irq disabled context.
With PREEMPT_RT enabled, the IRQ handler is threaded.
Because intel_lpe_audio_irq_handler() may be called in threaded IRQ context,
generic_handle_irq_safe API disables the interrupts before calling LPE's
interrupt top half handler.
This fixes braswell audio issues with RT enabled.
"
Kind regards,
~Maarten Lankhorst
Den 2025-12-11 kl. 09:47, skrev Jani Nikula:
> On Wed, 10 Dec 2025, Maarten Lankhorst <[email protected]> wrote:
>> Hey,
>>
>> Just needs a typo fixed, Matthew Brost also commented that the second I915
>> here should be PREEMPT-RT instead.
>
> The commit message does not say what is being done here, and why.
>
> "no need for backporting"?
>
> "this is only useful for i915"?
>
> *what* "doesn't compile with PREEMPT-RT enabled"?
>
> Nobody's going to understand what any of this means if a bisect/blame
> lands here a couple of years from now, even if it's an apparently simple
> change.
>
> BR,
> Jani.
>
>>
>> Den 2025-12-10 kl. 09:56, skrev Jani Nikula:
>>> On Tue, 09 Dec 2025, Maarten Lankhorst <[email protected]> wrote:
>>>> No need for backporting, this is only useful for i915,
>>>> and it doesn't compile with I915 enabled.
>>>
>>> Please elaborate. There's just riddles here.
>>>
>>> BR,
>>> Jani.
>>>
>>>>
>>>> Signed-off-by: Maarten Lankhorst <[email protected]>
>>>> ---
>>>> drivers/gpu/drm/i915/display/intel_lpe_audio.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>>>> b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>>>> index 5b41abe1c64d5..172c0062237eb 100644
>>>> --- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>>>> +++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
>>>> @@ -262,7 +262,7 @@ void intel_lpe_audio_irq_handler(struct intel_display
>>>> *display)
>>>> if (!HAS_LPE_AUDIO(display))
>>>> return;
>>>>
>>>> - ret = generic_handle_irq(display->audio.lpe.irq);
>>>> + ret = generic_handle_irq_safe(display->audio.lpe.irq);
>>>> if (ret)
>>>> drm_err_ratelimited(display->drm,
>>>> "error handling LPE audio irq: %d\n", ret);
>>>
>>
>