Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[linux-2.6-microblaze.git] / include / scsi / scsi_host.h
index 5ea06d3..6ca954e 100644 (file)
@@ -11,7 +11,6 @@
 #include <linux/blk-mq.h>
 #include <scsi/scsi.h>
 
-struct request_queue;
 struct block_device;
 struct completion;
 struct module;
@@ -22,7 +21,6 @@ struct scsi_target;
 struct Scsi_Host;
 struct scsi_host_cmd_pool;
 struct scsi_transport_template;
-struct blk_queue_tags;
 
 
 /*
@@ -44,9 +42,6 @@ struct blk_queue_tags;
 #define MODE_INITIATOR 0x01
 #define MODE_TARGET 0x02
 
-#define DISABLE_CLUSTERING 0
-#define ENABLE_CLUSTERING 1
-
 struct scsi_host_template {
        struct module *module;
        const char *name;
@@ -365,6 +360,11 @@ struct scsi_host_template {
         */
        unsigned int max_sectors;
 
+       /*
+        * Maximum size in bytes of a single segment.
+        */
+       unsigned int max_segment_size;
+
        /*
         * DMA scatter gather segment boundary limit. A segment crossing this
         * boundary will be split in two.
@@ -414,16 +414,6 @@ struct scsi_host_template {
         */
        unsigned unchecked_isa_dma:1;
 
-       /*
-        * True if this host adapter can make good use of clustering.
-        * I originally thought that if the tablesize was large that it
-        * was a waste of CPU cycles to prepare a cluster list, but
-        * it works out that the Buslogic is faster if you use a smaller
-        * number of segments (i.e. use clustering).  I guess it is
-        * inefficient.
-        */
-       unsigned use_clustering:1;
-
        /*
         * True for emulated SCSI host adapters (e.g. ATAPI).
         */
@@ -547,14 +537,8 @@ struct Scsi_Host {
        struct scsi_host_template *hostt;
        struct scsi_transport_template *transportt;
 
-       /*
-        * Area to keep a shared tag map (if needed, will be
-        * NULL if not).
-        */
-       union {
-               struct blk_queue_tag    *bqt;
-               struct blk_mq_tag_set   tag_set;
-       };
+       /* Area to keep a shared tag map */
+       struct blk_mq_tag_set   tag_set;
 
        atomic_t host_busy;                /* commands actually active on low-level */
        atomic_t host_blocked;
@@ -604,6 +588,7 @@ struct Scsi_Host {
        short unsigned int sg_tablesize;
        short unsigned int sg_prot_tablesize;
        unsigned int max_sectors;
+       unsigned int max_segment_size;
        unsigned long dma_boundary;
        /*
         * In scsi-mq mode, the number of hardware queues supported by the LLD.
@@ -621,7 +606,6 @@ struct Scsi_Host {
        
        unsigned active_mode:2;
        unsigned unchecked_isa_dma:1;
-       unsigned use_clustering:1;
 
        /*
         * Host has requested that no further requests come through for the
@@ -648,7 +632,6 @@ struct Scsi_Host {
        /* The controller does not support WRITE SAME */
        unsigned no_write_same:1;
 
-       unsigned use_blk_mq:1;
        unsigned use_cmd_list:1;
 
        /* Host responded with short (<36 bytes) INQUIRY result */
@@ -742,11 +725,6 @@ static inline int scsi_host_in_recovery(struct Scsi_Host *shost)
                shost->tmf_in_progress;
 }
 
-static inline bool shost_use_blk_mq(struct Scsi_Host *shost)
-{
-       return shost->use_blk_mq;
-}
-
 extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *);
 extern void scsi_flush_work(struct Scsi_Host *);