• Robert Hancock's avatar
    sata_sil: add Large Block Transfer support · c7e324f1
    Robert Hancock authored
    This implements support for the Large Block Transfer feature found in Silicon
    Image 311x controllers. This allows transferring bigger contiguous chunks of
    data from system memory and avoids the 64KB boundary restriction of standard
    SFF controllers.
    
    This is based on a patch from Jeff Garzik (from the sii-lbt branch of
    libata-dev) but includes a few bug fixes: Since the bmdma2 register does not
    implement the status bits, the original bmdma register must be used except
    where the bmdma2 register is required. As well the DMA boundary should be
    31-bit instead of 32-bit since the top bit of the length field is still
    required for the PRD end-of-table flag.
    Signed-off-by: default avatarRobert Hancock <hancockr@shaw.ca>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    c7e324f1
sata_sil.c 21 KB