• Sinan Kaya's avatar
    PCI: Mark Broadcom HT1100 and HT2000 Root Port Extended Tags as broken · 1b30dfd3
    Sinan Kaya authored
    Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags
    unless its Extended Tag Field Enable is set, but all Receivers/Completers
    must handle 8-bit Tags correctly regardless of their Extended Tag Field
    Enable.
    
    Some devices do not handle 8-bit Tags as Completers, so add a quirk for
    them.  If we find such a device, we disable Extended Tags for the entire
    hierarchy to make peer-to-peer DMA possible.
    
    The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit
    tags.  Mark it as broken.
    
    This fixes Xorg hangs and unresponsive keyboards with errors like this:
    
      radeon 0000:06:00.0: GPU lockup (current fence id 0x000000000000000e last fence id 0x0000000000000
      [drm:r600_ring_test [radeon]] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD)
      [drm:r600_resume [radeon]] *ERROR* r600 startup failed on resume
    
    Fixes: 60db3a4d ("PCI: Enable PCIe Extended Tags if supported")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
    Signed-off-by: default avatarBjorn Helgaas <helgaas@kernel.org>
    CC: stable@vger.kernel.org	# v4.11: 62ce94a7 PCI: Mark Broadcom HT2100 Root Port Extended Tags as broken
    CC: stable@vger.kernel.org	# v4.11
    1b30dfd3
quirks.c 168 KB