On Thu, Mar 4, 2021 at 1:22 AM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > > [+to linux-pci] > > On Wed, Mar 03, 2021 at 05:08:37PM +0000, bugzilla-daemon@xxxxxxxxxxxxxxxxxxx wrote: > > https://bugzilla.kernel.org/show_bug.cgi?id=212039 > > > > Bug ID: 212039 > > Summary: PCI_COMMAND randomly flips to 0 after system resume, > > breaks the xHCI device > > Product: Drivers > > Version: 2.5 > > Kernel Version: mainline, linux-next > > Hardware: All > > OS: Linux > > Tree: Mainline > > Status: NEW > > Severity: normal > > Priority: P1 > > Component: PCI > > Assignee: drivers_pci@xxxxxxxxxxxxxxxxxxxx > > Reporter: kai.heng.feng@xxxxxxxxxxxxx > > Regression: No > > > > After system resume, the read on PCI_COMMAND may randomly be 0 in > > pci_read_config_word(), which is called by __pci_set_master(). > > Comment #3 says this is not reproducible on Intel RVP. This bug report is mainly for Intel internal use. A public bug is mandatory. > > What platform *does* it occur on? Does it always happen on that > platform? Tigerlake-H. Only a specific model (but all different configs) is affected. > > (You said "randomly" above, but I don't know it that means it happens > on some platforms but not others, or it happens sometimes on a give > platform but not always.) As of now, it only happens to this specific model. > > > So it only enables Bus Master in next pci_read_config_word(), > > disabling "Memory Space", "I/O Space" at the same time. > > > > This makes xHCI driver fail to access MMIO register, render USB > > unusable. > > Apparently this only affect the xHCI device? That's weird; the code > that restores config registers after resume should be pretty generic, > so a bug there should affect lots of devices. But maybe there's some > firmware component since it seems to happen on some platforms but not > others. Actually, more devices are affected. But this bug is most detrimental to USB controller, because this model requires USB keyboard and mouse to be useful. So I single it out as the main point for the bug report. Kai-Heng