• Mark Lord's avatar
    sata_mv: Fix broken Marvell 7042 support. · 02a121da
    Mark Lord authored
    sata_mv:  Fix broken Marvell 7042 support.
    
    The Marvell 7042 chip is more or less the same as the 6042 internally,
    but sports a PCIe bus.  Despite having identical SATA cores, the 7042
    does differ from its PCI bus counterparts in placment and layout of
    certain bus related registers.
    
    This patch fixes sata_mv to distinguish between the PCI bus registers
    of earlier chips, and the PCIe bus registers of the 7042.
    
    Specifically, move the offsets and bit patterns for the
    PCI/PCIe interrupt cause/mask registers into the struct mv_host_priv,
    as these values differ between the 6xxx and 7xxx series chips.
    
    This fixes the driver to not access reserved PCI addresses,
    and prevents the lockups reported in linux-2.6.24 with 7042 boards.
    
    Also add a new PCI ID for the Highpoint 2300 7042-based board
    that I'm using for testing this stuff here.
    
    Tested with Marvell 6081 + 7042 chips, on x86 & x86_64.
    Signed-off-by: default avatarMark Lord <mlord@pobox.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    02a121da
sata_mv.c 72.1 KB