• Brett Russ's avatar
    [PATCH] libata: Marvell SATA support (DMA mode) (resend: v0.22) · 31961943
    Brett Russ authored
    This is my libata compatible low level driver for the Marvell SATA
    family.  Currently it runs in DMA mode on a 6081 chip.
    
    The 5xxx series parts are not yet DMA capable in this driver because
    the registers have differences that haven't been accounted for yet.
    Basically, I'm focused on the 6xxx series right now.  I apologize for
    those seeing problems on the 5xxx series, I've not had a chance to
    look at those problems yet.
    
    For those curious, the previous bug causing the SCSI timeout and
    subsequent panics was caused by an improper clear of hc_irq_cause in
    mv_host_intr().
    
    This version is running well in my environment (6081 chips,
    with/without SW raid1) and is showing equal or better performance
    compared to the Marvell driver (mv_sata) in my initial tests (timed
    dd's of reads/writes to/from memory/disk).
    
    I still need to look at the causes of occasional problems such as this:
    
    ata11: translating stat 0x35 err 0x00 to sense
    ata11: status=0x35 { DeviceFault SeekComplete CorrectedError Error }
    SCSI error : <10 0 0 0> return code = 0x8000002
    Current sda: sense key Hardware Error
    end_request: I/O error, dev sda, sector 3155010
    
    and this, seen at init time:
    
    ATA: abnormal status 0x80 on port 0xE093911C
    
    but they aren't showstoppers.
    Signed-off-by: default avatarBrett Russ <russb@emc.com>
    Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
    31961943
sata_mv.c 37.4 KB