• Pali Rohár's avatar
    PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response · 02bcec3e
    Pali Rohár authored
    Measurements in different conditions showed that aardvark hardware PIO
    response can take up to 1.44s. Increase wait timeout from 1ms to 1.5s to
    ensure that we do not miss responses from hardware. After 1.44s hardware
    returns errors (e.g. Completer abort).
    
    The previous two patches fixed checking for PIO status, so now we can use
    it to also catch errors which are reported by hardware after 1.44s.
    
    After applying this patch, kernel can detect and print PIO errors to dmesg:
    
        [    6.879999] advk-pcie d0070000.pcie: Non-posted PIO Response Status: CA, 0xe00 @ 0x100004
        [    6.896436] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100004
        [    6.913049] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100010
        [    6.929663] advk-pcie d0070000.pcie: Non-posted PIO Response Status: CA, 0xe00 @ 0x100010
        [    6.953558] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100014
        [    6.970170] advk-pcie d0070000.pcie: Non-posted PIO Response Status: CA, 0xe00 @ 0x100014
        [    6.994328] advk-pcie d0070000.pcie: Posted PIO Response Status: COMP_ERR, 0x804 @ 0x100004
    
    Without this patch kernel prints only a generic error to dmesg:
    
        [    5.246847] advk-pcie d0070000.pcie: config read/write timed out
    
    Link: https://lore.kernel.org/r/20210722144041.12661-3-pali@kernel.orgSigned-off-by: default avatarPali Rohár <pali@kernel.org>
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: default avatarMarek Behún <kabel@kernel.org>
    Cc: stable@vger.kernel.org # 7fbcb5da ("PCI: aardvark: Don't rely on jiffies while holding spinlock")
    02bcec3e
pci-aardvark.c 36.4 KB