Commit 2f10e47c authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Martin K. Petersen

ncr5380: Remove references to linked commands

Some old drivers partially implemented support for linked commands using
a "proposed" next_link pointer in struct scsi_cmnd that never actually
existed. Remove this code.
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>
Tested-by: default avatarMichael Schmitz <schmitzmic@gmail.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 1bb40589
...@@ -78,9 +78,6 @@ ...@@ -78,9 +78,6 @@
* *
* 4. Test SCSI-II tagged queueing (I have no devices which support * 4. Test SCSI-II tagged queueing (I have no devices which support
* tagged queueing) * tagged queueing)
*
* 5. Test linked command handling code after Eric is ready with
* the high level code.
*/ */
#include <scsi/scsi_dbg.h> #include <scsi/scsi_dbg.h>
#include <scsi/scsi_transport_spi.h> #include <scsi/scsi_transport_spi.h>
...@@ -94,7 +91,6 @@ ...@@ -94,7 +91,6 @@
#endif #endif
#ifndef notyet #ifndef notyet
#undef LINKED
#undef REAL_DMA #undef REAL_DMA
#endif #endif
...@@ -191,8 +187,6 @@ ...@@ -191,8 +187,6 @@
* DONT_USE_INTR - if defined, never use interrupts, even if we probe or * DONT_USE_INTR - if defined, never use interrupts, even if we probe or
* override-configure an IRQ. * override-configure an IRQ.
* *
* LINKED - if defined, linked commands are supported.
*
* PSEUDO_DMA - if defined, PSEUDO DMA is used during the data transfer phases. * PSEUDO_DMA - if defined, PSEUDO DMA is used during the data transfer phases.
* *
* REAL_DMA - if defined, REAL DMA is used during the data transfer phases. * REAL_DMA - if defined, REAL DMA is used during the data transfer phases.
...@@ -1923,42 +1917,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) { ...@@ -1923,42 +1917,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) {
cmd->SCp.Message = tmp; cmd->SCp.Message = tmp;
switch (tmp) { switch (tmp) {
/*
* Linking lets us reduce the time required to get the
* next command out to the device, hopefully this will
* mean we don't waste another revolution due to the delays
* required by ARBITRATION and another SELECTION.
*
* In the current implementation proposal, low level drivers
* merely have to start the next command, pointed to by
* next_link, done() is called as with unlinked commands.
*/
#ifdef LINKED
case LINKED_CMD_COMPLETE:
case LINKED_FLG_CMD_COMPLETE:
/* Accept message by clearing ACK */
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %llu linked command complete.\n", instance->host_no, cmd->device->id, cmd->device->lun);
/*
* Sanity check : A linked command should only terminate with
* one of these messages if there are more linked commands
* available.
*/
if (!cmd->next_link) {
printk("scsi%d : target %d lun %llu linked command complete, no next_link\n" instance->host_no, cmd->device->id, cmd->device->lun);
sink = 1;
do_abort(instance);
return;
}
initialize_SCp(cmd->next_link);
/* The next command is still part of this process */
cmd->next_link->tag = cmd->tag;
cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8);
dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %llu linked request done, calling scsi_done().\n", instance->host_no, cmd->device->id, cmd->device->lun);
cmd->scsi_done(cmd);
cmd = hostdata->connected;
break;
#endif /* def LINKED */
case ABORT: case ABORT:
case COMMAND_COMPLETE: case COMMAND_COMPLETE:
/* Accept message by clearing ACK */ /* Accept message by clearing ACK */
......
...@@ -66,12 +66,6 @@ ...@@ -66,12 +66,6 @@
* *
*/ */
/*
* Further development / testing that should be done :
* 1. Test linked command handling code after Eric is ready with
* the high level code.
*/
/* Adapted for the sun3 by Sam Creasey. */ /* Adapted for the sun3 by Sam Creasey. */
#include <scsi/scsi_dbg.h> #include <scsi/scsi_dbg.h>
...@@ -98,10 +92,6 @@ ...@@ -98,10 +92,6 @@
#define REMOVE(w,x,y,z) #define REMOVE(w,x,y,z)
#endif #endif
#ifndef notyet
#undef LINKED
#endif
/* /*
* Design * Design
* *
...@@ -172,8 +162,6 @@ ...@@ -172,8 +162,6 @@
* DIFFERENTIAL - if defined, NCR53c81 chips will use external differential * DIFFERENTIAL - if defined, NCR53c81 chips will use external differential
* transceivers. * transceivers.
* *
* LINKED - if defined, linked commands are supported.
*
* REAL_DMA - if defined, REAL DMA is used during the data transfer phases. * REAL_DMA - if defined, REAL DMA is used during the data transfer phases.
* *
* SUPPORT_TAGS - if defined, SCSI-2 tagged queuing is used where possible * SUPPORT_TAGS - if defined, SCSI-2 tagged queuing is used where possible
...@@ -2216,54 +2204,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) ...@@ -2216,54 +2204,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
cmd->SCp.Message = tmp; cmd->SCp.Message = tmp;
switch (tmp) { switch (tmp) {
/*
* Linking lets us reduce the time required to get the
* next command out to the device, hopefully this will
* mean we don't waste another revolution due to the delays
* required by ARBITRATION and another SELECTION.
*
* In the current implementation proposal, low level drivers
* merely have to start the next command, pointed to by
* next_link, done() is called as with unlinked commands.
*/
#ifdef LINKED
case LINKED_CMD_COMPLETE:
case LINKED_FLG_CMD_COMPLETE:
/* Accept message by clearing ACK */
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %llu linked command "
"complete.\n", HOSTNO, cmd->device->id, cmd->device->lun);
/* Enable reselect interrupts */
NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
/*
* Sanity check : A linked command should only terminate
* with one of these messages if there are more linked
* commands available.
*/
if (!cmd->next_link) {
printk(KERN_NOTICE "scsi%d: target %d lun %llu "
"linked command complete, no next_link\n",
HOSTNO, cmd->device->id, cmd->device->lun);
sink = 1;
do_abort(instance);
return;
}
initialize_SCp(cmd->next_link);
/* The next command is still part of this process; copy it
* and don't free it! */
cmd->next_link->tag = cmd->tag;
cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8);
dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %llu linked request "
"done, calling scsi_done().\n",
HOSTNO, cmd->device->id, cmd->device->lun);
cmd->scsi_done(cmd);
cmd = hostdata->connected;
break;
#endif /* def LINKED */
case ABORT: case ABORT:
case COMMAND_COMPLETE: case COMMAND_COMPLETE:
/* Accept message by clearing ACK */ /* Accept message by clearing ACK */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment