scsi: drop reason argument from ->change_queue_depth
[firefly-linux-kernel-4.4.55.git] / drivers / scsi / aic7xxx / aic7xxx_osm.c
index d2c9bf39033d2dfd2d427ef1be833d96167ad94e..88360116dbcb05787aff6323a41f20411ea53d69 100644 (file)
@@ -812,6 +812,7 @@ struct scsi_host_template aic7xxx_driver_template = {
        .slave_configure        = ahc_linux_slave_configure,
        .target_alloc           = ahc_linux_target_alloc,
        .target_destroy         = ahc_linux_target_destroy,
+       .use_blk_tags           = 1,
 };
 
 /**************************** Tasklet Handler *********************************/
@@ -1334,13 +1335,9 @@ ahc_platform_set_tags(struct ahc_softc *ahc, struct scsi_device *sdev,
        }
        switch ((dev->flags & (AHC_DEV_Q_BASIC|AHC_DEV_Q_TAGGED))) {
        case AHC_DEV_Q_BASIC:
-               scsi_set_tag_type(sdev, MSG_SIMPLE_TAG);
-               scsi_activate_tcq(sdev, dev->openings + dev->active);
-               break;
        case AHC_DEV_Q_TAGGED:
-               scsi_set_tag_type(sdev, MSG_ORDERED_TAG);
-               scsi_activate_tcq(sdev, dev->openings + dev->active);
-               break;
+               scsi_change_queue_depth(sdev,
+                               dev->openings + dev->active);
        default:
                /*
                 * We allow the OS to queue 2 untagged transactions to
@@ -1348,7 +1345,7 @@ ahc_platform_set_tags(struct ahc_softc *ahc, struct scsi_device *sdev,
                 * serially on the controller/device.  This should
                 * remove some latency.
                 */
-               scsi_deactivate_tcq(sdev, 2);
+               scsi_change_queue_depth(sdev, 2);
                break;
        }
 }
@@ -1447,7 +1444,7 @@ ahc_linux_run_command(struct ahc_softc *ahc, struct ahc_linux_device *dev,
         * we are storing a full busy target *lun*
         * table in SCB space.
         */
-       if (!blk_rq_tagged(cmd->request)
+       if (!(cmd->flags & SCMD_TAGGED)
            && (ahc->features & AHC_SCB_BTT) == 0) {
                int target_offset;
 
@@ -1501,15 +1498,7 @@ ahc_linux_run_command(struct ahc_softc *ahc, struct ahc_linux_device *dev,
        }
 
        if ((dev->flags & (AHC_DEV_Q_TAGGED|AHC_DEV_Q_BASIC)) != 0) {
-               int     msg_bytes;
-               uint8_t tag_msgs[2];
-               
-               msg_bytes = scsi_populate_tag_msg(cmd, tag_msgs);
-               if (msg_bytes && tag_msgs[0] != MSG_SIMPLE_TASK) {
-                       hscb->control |= tag_msgs[0];
-                       if (tag_msgs[0] == MSG_ORDERED_TASK)
-                               dev->commands_since_idle_or_otag = 0;
-               } else if (dev->commands_since_idle_or_otag == AHC_OTAG_THRESH
+               if (dev->commands_since_idle_or_otag == AHC_OTAG_THRESH
                                && (dev->flags & AHC_DEV_Q_TAGGED) != 0) {
                        hscb->control |= MSG_ORDERED_TASK;
                        dev->commands_since_idle_or_otag = 0;