scsi: drop reason argument from ->change_queue_depth
[cascardo/linux.git] / include / scsi / scsi_host.h
index 5e36248..c8a462e 100644 (file)
@@ -46,12 +46,6 @@ struct blk_queue_tags;
 #define DISABLE_CLUSTERING 0
 #define ENABLE_CLUSTERING 1
 
-enum {
-       SCSI_QDEPTH_DEFAULT,    /* default requested change, e.g. from sysfs */
-       SCSI_QDEPTH_QFULL,      /* scsi-ml requested due to queue full */
-       SCSI_QDEPTH_RAMP_UP,    /* scsi-ml requested due to threshold event */
-};
-
 struct scsi_host_template {
        struct module *module;
        const char *name;
@@ -195,7 +189,7 @@ struct scsi_host_template {
         * Things currently recommended to be handled at this time include:
         *
         * 1.  Setting the device queue depth.  Proper setting of this is
-        *     described in the comments for scsi_adjust_queue_depth.
+        *     described in the comments for scsi_change_queue_depth.
         * 2.  Determining if the device supports the various synchronous
         *     negotiation protocols.  The device struct will already have
         *     responded to INQUIRY and the results of the standard items
@@ -281,7 +275,7 @@ struct scsi_host_template {
         *
         * Status: OPTIONAL
         */
-       int (* change_queue_depth)(struct scsi_device *, int, int);
+       int (* change_queue_depth)(struct scsi_device *, int);
 
        /*
         * Fill in this function to allow the changing of tag types
@@ -421,6 +415,16 @@ struct scsi_host_template {
         */
        unsigned char present;
 
+       /*
+        * Let the block layer assigns tags to all commands.
+        */
+       unsigned use_blk_tags:1;
+
+       /*
+        * Track QUEUE_FULL events and reduce queue depth on demand.
+        */
+       unsigned track_queue_depth:1;
+
        /*
         * This specifies the mode that a LLD supports.
         */
@@ -451,11 +455,6 @@ struct scsi_host_template {
         */
        unsigned skip_settle_delay:1;
 
-       /*
-        * True if we are using ordered write support.
-        */
-       unsigned ordered_tag:1;
-
        /* True if the controller does not support WRITE SAME */
        unsigned no_write_same:1;
 
@@ -638,6 +637,14 @@ struct Scsi_Host {
        short unsigned int sg_prot_tablesize;
        unsigned int max_sectors;
        unsigned long dma_boundary;
+       /*
+        * In scsi-mq mode, the number of hardware queues supported by the LLD.
+        *
+        * Note: it is assumed that each hardware queue has a queue depth of
+        * can_queue. In other words, the total queue depth per host
+        * is nr_hw_queues * can_queue.
+        */
+       unsigned nr_hw_queues;
        /* 
         * Used to assign serial numbers to the cmds.
         * Protected by the host lock.
@@ -647,7 +654,6 @@ struct Scsi_Host {
        unsigned active_mode:2;
        unsigned unchecked_isa_dma:1;
        unsigned use_clustering:1;
-       unsigned use_blk_tcq:1;
 
        /*
         * Host has requested that no further requests come through for the
@@ -662,11 +668,6 @@ struct Scsi_Host {
         */
        unsigned reverse_ordering:1;
 
-       /*
-        * Ordered write support
-        */
-       unsigned ordered_tag:1;
-
        /* Task mgmt function in progress */
        unsigned tmf_in_progress:1;