Merge branch 'msm-fixes-3.19' of git://people.freedesktop.org/~robclark/linux into...
[cascardo/linux.git] / drivers / scsi / 53c700.c
index aa915da..82abfce 100644 (file)
@@ -176,7 +176,6 @@ STATIC int NCR_700_slave_alloc(struct scsi_device *SDpnt);
 STATIC int NCR_700_slave_configure(struct scsi_device *SDpnt);
 STATIC void NCR_700_slave_destroy(struct scsi_device *SDpnt);
 static int NCR_700_change_queue_depth(struct scsi_device *SDpnt, int depth);
-static int NCR_700_change_queue_type(struct scsi_device *SDpnt, int depth);
 
 STATIC struct device_attribute *NCR_700_dev_attrs[];
 
@@ -326,7 +325,6 @@ NCR_700_detect(struct scsi_host_template *tpnt,
        tpnt->slave_destroy = NCR_700_slave_destroy;
        tpnt->slave_alloc = NCR_700_slave_alloc;
        tpnt->change_queue_depth = NCR_700_change_queue_depth;
-       tpnt->change_queue_type = NCR_700_change_queue_type;
        tpnt->use_blk_tags = 1;
 
        if(tpnt->name == NULL)
@@ -904,8 +902,8 @@ process_message(struct Scsi_Host *host,     struct NCR_700_Host_Parameters *hostdata
                        hostdata->tag_negotiated &= ~(1<<scmd_id(SCp));
 
                        SCp->device->tagged_supported = 0;
+                       SCp->device->simple_tags = 0;
                        scsi_change_queue_depth(SCp->device, host->cmd_per_lun);
-                       scsi_set_tag_type(SCp->device, 0);
                } else {
                        shost_printk(KERN_WARNING, host,
                                "(%d:%d) Unexpected REJECT Message %s\n",
@@ -1818,8 +1816,8 @@ NCR_700_queuecommand_lck(struct scsi_cmnd *SCp, void (*done)(struct scsi_cmnd *)
                hostdata->tag_negotiated &= ~(1<<scmd_id(SCp));
        }
 
-       if((hostdata->tag_negotiated &(1<<scmd_id(SCp)))
-          && scsi_get_tag_type(SCp->device)) {
+       if ((hostdata->tag_negotiated & (1<<scmd_id(SCp))) &&
+           SCp->device->simple_tags) {
                slot->tag = SCp->request->tag;
                CDEBUG(KERN_DEBUG, SCp, "sending out tag %d, slot %p\n",
                       slot->tag, slot);
@@ -2082,39 +2080,6 @@ NCR_700_change_queue_depth(struct scsi_device *SDp, int depth)
        return scsi_change_queue_depth(SDp, depth);
 }
 
-static int NCR_700_change_queue_type(struct scsi_device *SDp, int tag_type)
-{
-       int change_tag = ((tag_type ==0 &&  scsi_get_tag_type(SDp) != 0)
-                         || (tag_type != 0 && scsi_get_tag_type(SDp) == 0));
-       struct NCR_700_Host_Parameters *hostdata = 
-               (struct NCR_700_Host_Parameters *)SDp->host->hostdata[0];
-
-       /* We have a global (per target) flag to track whether TCQ is
-        * enabled, so we'll be turning it off for the entire target here.
-        * our tag algorithm will fail if we mix tagged and untagged commands,
-        * so quiesce the device before doing this */
-       if (change_tag)
-               scsi_target_quiesce(SDp->sdev_target);
-
-       scsi_set_tag_type(SDp, tag_type);
-       if (!tag_type) {
-               /* shift back to the default unqueued number of commands
-                * (the user can still raise this) */
-               scsi_change_queue_depth(SDp, SDp->host->cmd_per_lun);
-               hostdata->tag_negotiated &= ~(1 << sdev_id(SDp));
-       } else {
-               /* Here, we cleared the negotiation flag above, so this
-                * will force the driver to renegotiate */
-               scsi_change_queue_depth(SDp, SDp->queue_depth);
-               if (change_tag)
-                       NCR_700_set_tag_neg_state(SDp, NCR_700_START_TAG_NEGOTIATION);
-       }
-       if (change_tag)
-               scsi_target_resume(SDp->sdev_target);
-
-       return tag_type;
-}
-
 static ssize_t
 NCR_700_show_active_tags(struct device *dev, struct device_attribute *attr, char *buf)
 {