• A
    CS5536: apply pci quirk for BIOS SMBUS bug · 73d2eaac
    Andres Salomon 提交于
    The new cs5535-* drivers use PCI header config info rather than MSRs to
    determine the memory region to use for things like GPIOs and MFGPTs.  As
    anticipated, we've run into a buggy BIOS:
    
    [    0.081818] pci 0000:00:14.0: reg 10: [io  0x6000-0x7fff]
    [    0.081906] pci 0000:00:14.0: reg 14: [io  0x6100-0x61ff]
    [    0.082015] pci 0000:00:14.0: reg 18: [io  0x6200-0x63ff]
    [    0.082917] pci 0000:00:14.2: reg 20: [io  0xe000-0xe00f]
    [    0.083551] pci 0000:00:15.0: reg 10: [mem 0xa0010000-0xa0010fff]
    [    0.084436] pci 0000:00:15.1: reg 10: [mem 0xa0011000-0xa0011fff]
    [    0.088816] PCI: pci_cache_line_size set to 32 bytes
    [    0.088938] pci 0000:00:14.0: address space collision: [io 0x6100-0x61ff] already in use
    [    0.089052] pci 0000:00:14.0: can't reserve [io  0x6100-0x61ff]
    
    This is a Soekris board, and its BIOS sets the size of the PCI ISA bridge
    device's BAR0 to 8k.  In reality, it should be 8 bytes (BAR0 is used for
    SMBus stuff).  This quirk checks for an incorrect size, and resets it
    accordingly.
    Signed-off-by: NAndres Salomon <dilinger@collabora.co.uk>
    Tested-by: NLeigh Porter <leigh@leighporter.org>
    Tested-by: NJens Rottmann <JRottmann@LiPPERTEmbedded.de>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    73d2eaac
quirks.c 93.0 KB