lkml.org 
[lkml]   [2015]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 74/71] ncr5380: Enable PDMA for NCR53C400A
    Date
    Add I/O register mapping for NCR53C400A and enable PDMA mode to
    improve performance and fix non-working IRQ.

    Tested with HP C2502 (and user-space enabler).

    Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
    ---
    drivers/scsi/g_NCR5380.c | 14 +++++++++++---
    1 file changed, 11 insertions(+), 3 deletions(-)

    diff --git a/drivers/scsi/g_NCR5380.c b/drivers/scsi/g_NCR5380.c
    index 86740fd..099fdac 100644
    --- a/drivers/scsi/g_NCR5380.c
    +++ b/drivers/scsi/g_NCR5380.c
    @@ -324,7 +324,7 @@ static int __init generic_NCR5380_detect(struct scsi_host_template *tpnt)
    #endif
    break;
    case BOARD_NCR53C400A:
    - flags = FLAG_NO_PSEUDO_DMA;
    + flags = FLAG_NO_DMA_FIXUP;
    ports = ncr_53c400a_ports;
    break;
    case BOARD_DTC3181E:
    @@ -406,11 +406,18 @@ static int __init generic_NCR5380_detect(struct scsi_host_template *tpnt)
    * On NCR53C400 boards, NCR5380 registers are mapped 8 past
    * the base address.
    */
    - if (overrides[current_override].board == BOARD_NCR53C400) {
    + switch (overrides[current_override].board) {
    + case BOARD_NCR53C400:
    instance->io_port += 8;
    hostdata->c400_ctl_status = 0;
    hostdata->c400_blk_cnt = 1;
    hostdata->c400_host_buf = 4;
    + break;
    + case BOARD_NCR53C400A:
    + hostdata->c400_ctl_status = 9;
    + hostdata->c400_blk_cnt = 10;
    + hostdata->c400_host_buf = 8;
    + break;
    }
    #else
    instance->base = overrides[current_override].NCR5380_map_name;
    @@ -425,7 +432,8 @@ static int __init generic_NCR5380_detect(struct scsi_host_template *tpnt)
    if (NCR5380_init(instance, flags))
    goto out_unregister;

    - if (overrides[current_override].board == BOARD_NCR53C400)
    + if (overrides[current_override].board == BOARD_NCR53C400 ||
    + overrides[current_override].board == BOARD_NCR53C400A)
    NCR5380_write(hostdata->c400_ctl_status, CSR_BASE);

    NCR5380_maybe_reset_bus(instance);
    --
    Ondrej Zary


    \
     
     \ /
      Last update: 2015-12-06 23:41    [W:5.001 / U:0.688 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site