• Finn Thain's avatar
    g_ncr5380: Remove CONFIG_SCSI_GENERIC_NCR53C400 · 9d376402
    Finn Thain authored
    This change brings a number of improvements: fewer macros, better test
    coverage, simpler code and sane Kconfig options. The downside is a small
    chance of incompatibility (which seems unavoidable).
    
    CONFIG_SCSI_GENERIC_NCR53C400 exists to enable or inhibit pseudo DMA
    transfers when the driver is used with 53C400-compatible cards. Thanks to
    Ondrej Zary's patches, PDMA now works which means it can be enabled
    unconditionally.
    
    Due to bad design, CONFIG_SCSI_GENERIC_NCR53C400 ties together unrelated
    functionality as it sets both PSEUDO_DMA and BIOSPARAM macros. This patch
    effectively enables PSEUDO_DMA and disables BIOSPARAM.
    
    The defconfigs and the Kconfig default leave CONFIG_SCSI_GENERIC_NCR53C400
    undefined. Red Hat 9 and CentOS 2.1 were the same. This leaves both
    PSEUDO_DMA and BIOSPARAM disabled. The effect of this patch should be
    better performance from enabling PSEUDO_DMA.
    
    On the other hand, Debian 4 and SLES 10 had CONFIG_SCSI_GENERIC_NCR53C400
    enabled, so both PSEUDO_DMA and BIOSPARAM were enabled. This patch might
    affect configurations like this by disabling BIOSPARAM. My best guess is
    that this could be a problem only in the vanishingly rare case that
    1) the CHS values stored in the boot device partition table are wrong and
    2) a 5380 card is in use (because PDMA on 53C400 used to be broken).
    Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Tested-by: default avatarOndrej Zary <linux@rainbow-software.org>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    9d376402
g_NCR5380.c 20.4 KB