• Alan Cox's avatar
    libata: Fix a large collection of DMA mode mismatches · b15b3eba
    Alan Cox authored
    Dave Müller sent a diff for the pata_oldpiix that highlighted a problem
    where a lot of the ATA drivers assume dma_mode == 0 means "no DMA" while
    the core code uses 0xFF.
    
    This turns out to have other consequences such as code doing >= XFER_UDMA_0
    also catching 0xFF as UDMAlots. Fortunately it doesn't generally affect
    set_dma_mode, although some drivers call back into their own set mode code
    from other points.
    
    Having been through the drivers I've added helpers for using_udma/using_mwdma
    dma_enabled so that people don't open code ranges that may change (eg if UDMA8
    appears somewhere)
    
    Thanks to David for the initial bits
    [and added fix for pata_oldpiix from and signed-off-by Dave Mueller
     <dave.mueller@gmx.ch>  -jg]
    Signed-off-by: default avatarAlan Cox <alan@redhat.com>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    b15b3eba
pata_oldpiix.c 7.52 KB