From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: "Neronin, Niklas" <niklas.neronin@linux.intel.com>,
"Michał Pecio" <michal.pecio@gmail.com>,
linux-usb@vger.kernel.org
Cc: regressions@lists.linux.dev, Christian Heusel <christian@heusel.eu>
Subject: Re: [REGRESSION 6.16] xHCI host not responding to stop endpoint command after suspend and resume
Date: Tue, 19 Aug 2025 13:42:09 +0300 [thread overview]
Message-ID: <471aaca5-1e18-462f-b89c-768d7673bf0a@linux.intel.com> (raw)
In-Reply-To: <a036342a-a430-4dc6-94a2-abc12cd3dd0f@linux.intel.com>
On 19.8.2025 12.08, Neronin, Niklas wrote:
>
>
> On 19/08/2025 11.56, Mathias Nyman wrote:
>> On 19.8.2025 9.41, Michał Pecio wrote:
>>> On Mon, 18 Aug 2025 23:11:03 +0200, Michał Pecio wrote:
>>>> A bisect effort is ongoing and c0c9379f235d ("Merge tag 'usb-6.16-rc1'
>>>> of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb") is bad,
>>>> so that's where the bug likely came from.
>>>
>>> Looks like the result is in.
>>>
>>> e1db856bd28891d70008880d7f1d3b8d1ea948fd is the first bad commit
>>> commit e1db856bd28891d70008880d7f1d3b8d1ea948fd
>>> Author: Niklas Neronin <niklas.neronin@linux.intel.com>
>>> Date: Thu May 15 16:56:14 2025 +0300
>>>
>>> usb: xhci: remove '0' write to write-1-to-clear register
>>
>> Thanks for tracking this down, I see the issue now
>>
>> We may lose interrupts due to this patch, example:
>>
>> Hardware sets IMAN_IP BIT(0) when in needs attention
>> Driver later allows xHC interrupt by setting IMAN_IE BIT(1), but
>> Driver clears IMAN_IP (RW1C) when setting IMAN_IE so no interrupt is triggered.
>
> Apologies for my blunder.
>
> So, there can be an interrupt pending even when the interrupt is not enabled?
So it seems, Interrupt pending (IMAN_IP) is set if:
- event handler busy (EHB) is 0, and
- moderation counter (IMODC) reaches 0, and
- Internal IPE bit is set, meaning:
xHC inserted an event to the event ring (ring not empty), and
"block event interrupt" (BEI) is 0
It does not depend on interrupt enable (IMAN_IE) bit, that only gates the interrupt from being
generated for this interrupter
See xhci section 4.17.5
> But there (ideally) should not be an interrupt pending when disabling the interrupt?
Yes, So it would be good to still print the debug message if IP is set.
But we should not clear the IP bit here, it will trigger an interrupt and get handled once
IE is enabled back.
>
> I can submit a fix patch.
Sounds good.
Lets get this fixed as soon as possible.
Thanks
Mathias
prev parent reply other threads:[~2025-08-19 10:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-18 21:11 [REGRESSION 6.16] xHCI host not responding to stop endpoint command after suspend and resume Michał Pecio
2025-08-19 6:41 ` Michał Pecio
2025-08-19 8:56 ` Mathias Nyman
2025-08-19 9:08 ` Neronin, Niklas
2025-08-19 10:42 ` Mathias Nyman [this message]
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=471aaca5-1e18-462f-b89c-768d7673bf0a@linux.intel.com \
--to=mathias.nyman@linux.intel.com \
--cc=christian@heusel.eu \
--cc=linux-usb@vger.kernel.org \
--cc=michal.pecio@gmail.com \
--cc=niklas.neronin@linux.intel.com \
--cc=regressions@lists.linux.dev \
/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.