1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #include <sys/scsi/scsi.h>
28 #include <sys/mtio.h>
29 #include <sys/condvar.h>
30 #include <sys/kstat.h>
31 #include <sys/scsi/targets/stdef.h>
32 
33 const char st_conf_version[] = "st_conf.c 1.92 08/10/17";
34 /*
35  * General
36  * -------
37  * o MT_DENSITYx counts from 1..4, rather than 0..3.
38  * o Some entries specify a value for the 'length' member that is
39  *   less than the actual length of the 'vid' member. This is done
40  *   intentionally to allow the comparison to succeed for different
41  *   drives.
42  */
43 
44 /*
45  * Drive Tables.
46  *
47  * The structure and option definitions can be
48  * found in <sys/scsi/targets/stdef.h>.
49  *
50  * Note: that blocksize should be a power of two
51  * for fixed-length recording devices.
52  *
53  * Note: the speed codes are unused at present.
54  * The driver turns around whatever is reported
55  * from the drive via the mode sense.
56  *
57  * Note: the read retry and write retry counts
58  * are there to provide a limit until warning
59  * messages are printed.
60  *
61  *
62  * Note: For drives that are not in this table....
63  *
64  * The first open of the device will cause a MODE SENSE command
65  * to be sent. From that we can determine block size. If block
66  * size is zero, than this drive is in variable-record length
67  * mode. The driver uses the SCSI-2 specification density codes in
68  * order to attempt to determine what kind of sequential access
69  * device this is. This will allow determination of 1/4" cartridge,
70  * 1/2" cartridge, some helical scan (3.81 && 8 mm cartridge) and
71  * 1/2" reel tape devices. The driver will print what it finds and is
72  * assuming to the console. If the device you have hooked up returns
73  * the default density code (0) after power up, the drive cannot
74  * determine what kind of drive it might be, so it will assume that
75  * it is an unknown 1/4" cartridge tape (QIC).
76  *
77  * If the drive is determined in this way to be a 1/2" 9-track reel
78  * type device, an attempt will be mode to put it in Variable
79  * record length mode.
80  *
81  * Generic drives are assumed to support only the long erase option
82  * and will not to be run in buffered mode.
83  */
84 
85 /*
86  * Format for Tape Drive Entry
87  *
88  * Please maintain the format currently in use for defining the properties
89  * associated with each tape drive. This format is intended to make the
90  * entries more readable and help increase the accuracy of the entries.
91  * See the actual entries for examples of what they should look like.
92  *
93  * Important points to note about the format:
94  *
95  * 1. The opening and closing braces are indented 2 spaces.
96  * 2. Each line in the entry is indented 4 spaces.
97  * 3. The numerical values and text in the .options comments are indented two
98  *    spaces in the comment block.
99  * 4. The maximum line width is 80 columns; do not exceed this.
100  * 5. The comment delimiters should line up, per the example.
101  * 6. The OR symbol (|) should line up for multiple options.
102  * 7. Hexadecimal values should be capitalized, for consistency.
103  * 8. The leading / in the comment block header is indented 2 spaces and the
104  *    susequent *'s should all line up.
105  * 9. Order of the entries is very important. There are several groups of
106  *    entries where the last entry in the grouping acts as a catch-all. If you
107  *    place an entry after the catch-all, it will never be used by the driver.
108  * 10. TABs should not be used anywhere between the BEGIN CSTYLED and
109  *    END CSTYLED lines.
110  */
111 
112 /*
113  * Supported Drive Options
114  *
115  * The descriptions for the supported drive options are taken from stdef.h.
116  *
117  * ST_VARIABLE                          Device supports variable length record
118  *                                      sizes.
119  * ST_QIC                               QIC tape device.
120  * ST_REEL                              1/2-inch reel tape device.
121  * ST_BSF                               Device supports backspace file as in
122  *                                      mt(1) bsf backspace over EOF marks.
123  *                                      Devices not supporting bsf will fail
124  *                                      with ENOTTY upon use of bsf.
125  * ST_BSR                               Device supports backspace record as in
126  *                                      mt(1) bsr : backspace over records. If
127  *                                      the device does not support bsr, the st
128  *                                      driver emulates the action by rewinding
129  *                                      the tape and using forward space file
130  *                                      (fsf) to the correct file and then uses
131  *                                      forward space record (fsr) to the
132  *                                      correct record.
133  * ST_LONG_ERASE                        Device needs a longer time than normal
134  *                                      to erase.
135  * ST_AUTODEN_OVERRIDE                  Autodensity override flag Device can
136  *                                      figure out the tape density
137  *                                      automatically,without issuing a mode-
138  *                                      select/mode-sense.
139  * ST_NOBUF                             Don't use buffered mode. This disables
140  *                                      the device's ability for buffered writes
141  *                                      i.e. The device acknowledges write
142  *                                      completion after the data is written to
143  *                                      the device's buffer, but before all the
144  *                                      data is actually written to tape.
145  * ST_RESERVED_BIT1                     Reserved bit parity while talking to it.
146  * ST_KNOWS_EOD                         Device knows when EOD (End of Data) has
147  *                                      been reached. If the device knows EOD,
148  *                                      st uses fast file skipping. If it does
149  *                                      not know EOD, file skipping happens one
150  *                                      file at a time.
151  * ST_UNLOADABLE                        Device will not complain if the st
152  *                                      driver is unloaded & loaded again;
153  *                                      e.g. will return the correct inquiry
154  *                                      string.
155  * ST_SOFT_ERROR_REPORTING              Do request or log sense on close to
156  *                                      report soft errors.Currently only
157  *                                      Exabyte and DAT drives support this
158  *                                      feature.
159  * ST_LONG_TIMEOUTS                     Device needs 5 times longer timeouts
160  *                                      for normal operation.
161  * ST_BUFFERED_WRITES                   The data is buffered in the driver and
162  *                                      pre-acked to the application.
163  * ST_NO_RECSIZE_LIMIT                  For variable record size devices only.
164  *                                      If flag is set,then don't limit record
165  *                                      size to 64k as in pre-Solaris 2.4
166  *                                      releases. The only limit on the record
167  *                                      size will be the max record size the
168  *                                      device can handle or the max DMA
169  *                                      transfer size of the machine, which ever
170  *                                      is smaller. Beware of incompatabilities
171  *                                      with tapes of pre-Solaris 2.4 OS's
172  *                                      written with large (>64k) block sizes,
173  *                                      as their true block size is a max of
174  *                                      approx 64k.
175  * ST_MODE_SEL_COMP                     Use mode select of device configuration
176  *                                      page (0x10) to enable/disable
177  *                                      compression instead of density codes
178  *                                      for the "c" and "u" devices.
179  * ST_NO_RESERVE_RELEASE                For devices which do not support
180  *                                      RESERVE/RELEASE SCSI command. If this
181  *                                      is enabled then RESERVE/RELEASE would
182  *                                      not be used during open/close for High
183  *                                      Availability.
184  * ST_READ_IGNORE_ILI                   This flag is only applicable to
185  *                                      variable block devices which support
186  *                                      the SILI bit option. It indicates that
187  *                                      the SILI bit will be ignored during
188  *                                      reads.
189  * ST_READ_IGNORE_EOFS                  When this flag is set two EOF marks do
190  *                                      not indicate an EOM. This option is
191  *                                      only supported on 1/2" reel tapes.
192  * ST_SHORT_FILEMARKS                   This option applies only to EXABYTE 8mm
193  *                                      tape drives which support short
194  *                                      filemarks. When this flag is set, short
195  *                                      filemarks will be used for writing
196  *                                      filemarks.
197  * ST_EJECT_ON_CHANGER_FAILURE          When this flag is set and the tape is
198  *                                      trapped in the medium changer, the
199  *                                      tape is automatically ejected.
200  * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR This option applies only to IBM MAGSTAR
201  *                                      3590. If this flag is set, the st
202  *                                      driver will retry the last cmd if the
203  *                                      last error cause a check condition with
204  *                                      error code 0x71 and sense code 0x01.
205  */
206 
207 /*
208  * Values Corresponding To The Supported Drive Options Flags
209  *
210  * ST_VARIABLE                            0x000001
211  * ST_QIC                                 0x000002
212  * ST_REEL                                0x000004
213  * ST_BSF                                 0x000008
214  * ST_BSR                                 0x000010
215  * ST_LONG_ERASE                          0x000020
216  * ST_AUTODEN_OVERRIDE                    0x000040
217  * ST_NOBUF                               0x000080
218  * ST_RESERVED_BIT1                       0x000100
219  * ST_KNOWS_EOD                           0x000200
220  * ST_UNLOADABLE                          0x000400
221  * ST_SOFT_ERROR_REPORTING                0x000800
222  * ST_LONG_TIMEOUT                        0x001000
223  * ST_BUFFERED_WRITES                     0x004000
224  * ST_NO_RECSIZE_LIMIT                    0x008000
225  * ST_MODE_SEL_COMP                       0x010000
226  * ST_NO_RESERVE_RELEASE                  0x020000
227  * ST_READ_IGNORE_ILI                     0x040000
228  * ST_READ_IGNORE_EOFS                    0x080000
229  * ST_SHORT_FILEMARKS                     0x100000
230  * ST_EJECT_ON_CHANGER_FAILURE            0x200000
231  * ST_RETRY_ON_RECOVERED_DEFERRED_ERROR   0x400000
232  */
233 
234 const struct st_drivetype st_drivetypes[] =
235 {
236 	/* BEGIN CSTYLED */
237   /*
238    * Anritsu 1/2" reel
239    *
240    *     NOTES
241    *     -----
242    *  o This is an unsupported drive.
243    *
244    * [1] The Anritsu 1/2" reel has two density codes (or 0 for "default").
245    * [2] The Anritsu 1/2" reel has only one speed (if the driver ever cares).
246    * [3] max_rretries and max_wretries are driver anachronisms.
247    */
248   {                           /* Structure member Description                 */
249                               /* ---------------- -----------                 */
250     "Unisys 1/2\" Reel",      /* .name            Display ("pretty") name     */
251     15,                       /* .length          Length of next item...      */
252     "ANRITSU DMT2120",        /* .vid             Vendor-product ID string    */
253     ST_TYPE_ANRITSU,          /* .type            Numeric type (cf. mtio.h)   */
254     0,                        /* .bsize           Block size (0 = variable)   */
255                               /* .options         Drive option flags:         */
256     ST_VARIABLE  |            /*    00001           Supports variable length  */
257     ST_REEL      |            /*    00004           1/2-inch reel tape device */
258     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
259     ST_BSR       |            /*    00010           Supports SPACE block rev  */
260     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
261                               /*    -----                                     */
262                               /*    0041D                                     */
263     400,                      /* .max_rretries    [Note 3]                    */
264     400,                      /* .max_wretries    [Note 3]                    */
265     {0x00, 0x02, 0x03, 0x03}, /* .densities       Density codes [Note 1]      */
266     MT_DENSITY2,              /* .default_density (.densities[x])             */
267     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
268   },
269 
270   /*
271    * Archive QIC-150 1/4" cartridge
272    *
273    *     NOTES
274    *     -----
275    *  o The manual for the Archive drive claims that this drive
276    *    can backspace filemarks. In practice this doens't always
277    *    seem to be the case.
278    * [1] The QIC-150 uses 0 or "default" density.
279    * [2] The QIC-150 has only one speed (if the driver ever cares).
280    * [3] max_rretries and max_wretries are driver anachronisms.
281    */
282   {                           /* Structure member Description                 */
283                               /* ---------------- -----------                 */
284     "Archive QIC-150",        /* .name            Display ("pretty") name     */
285     13,                       /* .length          Length of next item...      */
286     "ARCHIVE VIPER",          /* .vid             Vendor-product ID string    */
287     ST_TYPE_ARCHIVE,          /* .type            Numeric type (cf. mtio.h)   */
288     512,                      /* .bsize           Block size (0 = variable)   */
289                               /* .options         Drive option flags:         */
290     ST_QIC              |     /*    00002           QIC tape device           */
291     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
292     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
293     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
294                               /*    -----                                     */
295                               /*    00642                                     */
296     400,                      /* .max_rretries    [Note 3]                    */
297     400,                      /* .max_wretries    [Note 3]                    */
298     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
299     MT_DENSITY2,              /* .default_density (.densities[x])             */
300     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
301   },
302 
303   /*
304    * Archive Python 04106 4mm 2GB drive
305    *
306    *     NOTES
307    *     -----
308    *  o This is an unsupported drive.
309    *
310    * [1] The Python 04106 has only one density, 0x42 (or 0 for "default").
311    * [2] The Python 04106 has only one speed (if the driver ever cares).
312    * [3] max_rretries and max_wretries are driver anachronisms.
313    * [4] The manufacturer recommends 0x2c ("MT_ISPYTHON") here,
314    *     even though ST_TYPE_PYTHON is recommended.  For con-
315    *     sistency, let's not fight it.
316    */
317   {                           /* Structure member Description                 */
318                               /* ---------------- -----------                 */
319     "Seagate Scorpion 24 DDS3 DAT",
320                               /* .name            Display ("pretty") name     */
321     20,                       /* .length          Length of next item...      */
322     "ARCHIVE Python 04106",   /* .vid             Vendor-product ID string    */
323     MT_ISPYTHON,              /* .type            Numeric type  [Note 4]      */
324     0,                        /* .bsize           Block size (0 = variable)   */
325                               /* .options         Drive option flags:         */
326     ST_VARIABLE        |      /*    00001           Supports variable length  */
327     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
328     ST_BSR             |      /*    00010           Supports SPACE block rev  */
329     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
330     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
331     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
332     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
333     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
334                               /*    -----                                     */
335                               /*    09639                                     */
336     400,                      /* .max_rretries    [Note 3]                    */
337     400,                      /* .max_wretries    [Note 3]                    */
338     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
339     MT_DENSITY3,              /* .default_density (.densities[x])             */
340     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
341   },
342 
343   /*
344    * Archive/Conner CTDX004 4mm DAT
345    *
346    *     NOTES
347    *     -----
348    * [1] The CTDX004 uses 0 or the "default" density code.
349    * [2] The CTDX004 has only one speed (if the driver ever cares).
350    * [3] max_rretries and max_wretries are driver anachronisms.
351    * [4] Data is buffered in the driver and pre-acked to the application. This
352    *     is only supported in 2.5.1.
353    */
354   {                           /* Structure member Description                 */
355                               /* ---------------- -----------                 */
356     "Archive/Conner CTDX004 4mm DAT",
357                               /* .name            Display ("pretty") name     */
358     20,                       /* .length          Length of next item...      */
359     "ARCHIVE Python 28388",   /* .vid             Vendor-product ID string    */
360     ST_TYPE_PYTHON,           /* .type            Numeric type (cf. mtio.h)   */
361     0,                        /* .bsize           Block size (0 = variable)   */
362                               /* .options         Drive option flags:         */
363     ST_VARIABLE             | /*    00001           Supports variable length  */
364     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
365     ST_BSR                  | /*    00010           Supports SPACE block rev  */
366     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
367     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
368     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
369     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
370     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
371     ST_BUFFERED_WRITES      | /*    04000           [Note 4]                  */
372     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
373                               /*    -----                                     */
374                               /*    0DE39                                     */
375     400,                      /* .max_rretries    [Note 3]                    */
376     400,                      /* .max_wretries    [Note 3]                    */
377     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
378     MT_DENSITY1,              /* .default_density (.densities[x])             */
379     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
380   },
381 
382   /*
383    * Archive Python 4mm 2GB drive
384    *
385    *     NOTES
386    *     -----
387    *  o This must be the last entry in the list of Python drives, since it
388    *    acts as a catch-all for any Python drive not listed above.
389    *
390    * [1] The Archive Python 4mm has only one density, 0x8c (or 0 for "default").
391    * [2] The Archive Python 4mm has only one speed (if the driver ever cares).
392    * [3] max_rretries and max_wretries are driver anachronisms.
393    * [4] Do a request or log sense on close to report soft errors.
394    */
395   {                           /* Structure member Description                 */
396                               /* ---------------- -----------                 */
397     "Archive Python 4mm Helical Scan",
398                               /* .name            Display ("pretty") name     */
399     14,                       /* .length          Length of next item...      */
400     "ARCHIVE Python",         /* .vid             Vendor-product ID string    */
401     ST_TYPE_PYTHON,           /* .type            Numeric type (cf. mtio.h)   */
402     0,                        /* .bsize           Block size (0 = variable)   */
403                               /* .options         Drive option flags:         */
404     ST_VARIABLE             | /*    00001           Supports variable length  */
405     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
406     ST_BSR                  | /*    00010           Supports SPACE block rev  */
407     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
408     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
409     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
410     ST_SOFT_ERROR_REPORTING | /*    00800           Error reporting [Note 4]  */
411     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
412     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
413                               /*    -----                                     */
414                               /*    09E39                                     */
415     5000,                     /* .max_rretries    [Note 3]                    */
416     5000,                     /* .max_wretries    [Note 3]                    */
417     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
418     MT_DENSITY4,              /* .default_density (.densities[x])             */
419     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
420   },
421 
422   /*
423    * Benchmark DLT1
424    *
425    *     NOTES
426    *     -----
427    * [1] The DLT1 reads several tape formats, but the st driver supports
428    *     only DLT1 native.
429    * [2] The DLT1 has only one speed (if the driver ever cares).
430    * [3] max_rretries and max_wretries are driver anachronisms.
431    * [4] The DLT1 has Density codes that turn on and off compression however
432    *     the data compression enable overrides them.
433    */
434   {                           /* Structure member Description                 */
435                               /* ---------------- -----------                 */
436     "Benchmark DLT1",         /* .name            Display ("pretty") name     */
437     12,                       /* .length          Length of next item...      */
438     "BNCHMARKDLT1",           /* .vid             Vendor-product ID string    */
439     ST_TYPE_BMDLT1,           /* .type            Numeric type (cf. mtio.h)   */
440     0,                        /* .bsize           Block size (0 = variable)   */
441                               /* .options         Drive option flags:         */
442     ST_VARIABLE         |     /*    00001           Supports variable length  */
443     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
444     ST_BSR              |     /*    00010           Supports SPACE block rev  */
445     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
446     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
447     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
448     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
449     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
450     ST_MODE_SEL_COMP,         /*    10000           [Note 4]                  */
451                               /*    -----                                     */
452                               /*    19639                                     */
453     -1,                       /* .max_rretries    [Note 3]                    */
454     -1,                       /* .max_wretries    [Note 3]                    */
455     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
456     MT_DENSITY4,              /* .default_density (.densities[x])             */
457     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
458   },
459 
460 
461 
462   /*
463    * CDC 1/2" cartridge
464    *
465    *     NOTES
466    *     -----
467    *  o This is an unsupported drive.
468    *
469    * [1] The CDC 1/2" cartridge uses 0 or the "default" density code.
470    * [2] The CDC 1/2" cartridge has only one speed (if the driver ever cares).
471    * [3] max_rretries and max_wretries are driver anachronisms.
472    */
473   {                           /* Structure member Description                 */
474                               /* ---------------- -----------                 */
475     "CDC 1/2\" Cartridge",    /* .name            Display ("pretty") name     */
476     3,                        /* .length          Length of next item...      */
477     "LMS",                    /* .vid             Vendor-product ID string    */
478     ST_TYPE_CDC,              /* .type            Numeric type (cf. mtio.h)   */
479     0,                        /* .bsize           Block size (0 = variable)   */
480                               /* .options         Drive option flags:         */
481     ST_VARIABLE         |     /*    00001           Supports variable length  */
482     ST_QIC              |     /*    0x002           QIC tape device           */
483     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
484     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
485     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
486     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
487     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
488                               /*    -----                                     */
489                               /*    0066B                                     */
490     300,                      /* .max_rretries    [Note 3]                    */
491     300,                      /* .max_wretries    [Note 3]                    */
492     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
493     MT_DENSITY2,              /* .default_density (.densities[x])             */
494     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
495   },
496 
497    /*
498    * Emulex MT-02 controller for 1/4" cartridge
499    *
500    *     NOTES
501    *     -----
502    *  o The EMULEX MT-02 adheres to CCS level 0, and thus
503    *    returns nothing of interest for the INQUIRY command
504    *    past the 'response data format' field (which will be
505    *    zero). The driver will recognize this and assume that
506    *    a drive that so responds is actually an MT-02 (there
507    *    is no other way to really do this, awkward as it
508    *    may seem).
509    *
510    *  o This is an unsupported drive.
511    *
512    * [1] Low density is a vendor unique density code.
513    *     This gives us 9 Track QIC-11. Supposedly the MT02 can
514    *     read 4 Track QIC-11 while in this mode. If that doesn't
515    *     work, change one of the duplicated QIC-24 fields to 0x4.
516    * [2] The MT-02 has only one speed (if the driver ever cares).
517    * [3] max_rretries and max_wretries are driver anachronisms.
518    */
519   {                           /* Structure member Description                 */
520                               /* ---------------- -----------                 */
521     "Emulex MT02 QIC-11/QIC-24",
522                               /* .name            Display ("pretty") name     */
523     12,                       /* .length          Length of next item...      */
524     "Emulex  MT02",           /* .vid             Vendor-product ID string    */
525     ST_TYPE_EMULEX,           /* .type            Numeric type (cf. mtio.h)   */
526     512,                      /* .bsize           Block size (0 = variable)   */
527                               /* .options         Drive option flags:         */
528     ST_QIC       |            /*    00002           QIC tape device           */
529     ST_KNOWS_EOD |            /*    00200           Recognizes end-of-data    */
530     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
531                               /*    -----                                     */
532                               /*    00602                                     */
533     130,                      /* .max_rretries    [Note 3]                    */
534     130,                      /* .max_wretries    [Note 3]                    */
535     {0x84, 0x05, 0x05, 0x05}, /* .densities       Density codes [Note 1]      */
536     MT_DENSITY2,              /* .default_density (.densities[x])             */
537     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
538   },
539 
540   /*
541    * Exabyte 8900 8mm helical scan drive (also called Mammoth)
542    *
543    *     NOTES
544    *     -----
545    * [1] Compression on the 8900 is controlled via the Device Configuration mode
546    *     page or the Data Compression page (either one). Even when enabled, the
547    *     8900 automatically disables compression on-the-fly if it determines
548    *     that it cannot achieve a reasonable compression ratio on the data.
549    * [2] The 8900 can write in only one format, which is selected overtly by
550    *     setting Density Code in the block descriptor to 27h; in addition to
551    *     this native format, the 8900 can read tapes written in 8200, 8500 and
552    *     8500-compressed formats. We set the density to 27h at all times: we
553    *     _can_ do this because the format is changed automatically to match the
554    *     data on any previously-written tape; we _must_ do this to ensure that
555    *     never-before-written 8900 AME tapes are written in "8900 format" (all
556    *     writes to them in any other format will fail). By establishing
557    *     MT_DENSITY4 (corresponding to the "c" and "u" minor devices) as the
558    *     default, applications which open '/dev/rmt/x' write compressed data
559    *     automatically (but see Note [1]).
560    * [3] The 8900 has only one speed (if the driver ever cares).
561    * [4] max_rretries and max_wretries are driver anachronisms.
562    */
563   {                           /* Structure member Description                 */
564                               /* ---------------- -----------                 */
565     "Mammoth EXB-8900 8mm Helical Scan",
566                               /* .name            Display ("pretty") name     */
567     16,                       /* .length          Length of next item...      */
568     "EXABYTE EXB-8900",       /* .vid             Vendor-product ID string    */
569     ST_TYPE_EXB8500,          /* .type            Numeric type (cf. mtio.h)   */
570     0,                        /* .bsize           Block size (0 = variable)   */
571                               /* .options         Drive option flags:         */
572     ST_VARIABLE             | /*    00001           Supports variable length  */
573     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
574     ST_BSR                  | /*    00010           Supports SPACE block rev  */
575     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
576     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
577     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
578     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
579     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
580     ST_NO_RECSIZE_LIMIT     | /*    08000           Supports blocks > 64KB    */
581     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
582                               /*    -----                                     */
583                               /*    19E39                                     */
584     5000,                     /* .max_rretries    [Note 4]                    */
585     5000,                     /* .max_wretries    [Note 4]                    */
586     {0x27, 0x27, 0x27, 0x27}, /* .densities       Density codes [Note 2]      */
587     MT_DENSITY4,              /* .default_density (.densities[x])             */
588     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
589   },
590 
591   /*
592    * Exabyte 8mm 5GB cartridge
593    *
594    *     NOTES
595    *     -----
596    *  o  ST_KNOWS_EOD here will cause medium error messages
597    *
598    *  o  The string length (16) has been reduced to 15 to allow for other
599    *     compatible models (eg the 8505 half-height)  (BugTraq #1091196)
600    *
601    * [1] The density code entry requires four values, even if there are less
602    *     than four values for the drive.
603    * [2] The Exabyte EXB-8500 has only one speed (if the driver ever cares).
604    * [3] max_rretries and max_wretries are driver anachronisms.
605    */
606   {                           /* Structure member Description                 */
607                               /* ---------------- -----------                 */
608     "Exabyte EXB-8500 8mm Helical Scan",
609                               /* .name            Display ("pretty") name     */
610     15,                       /* .length          Length of next item...      */
611     "EXABYTE EXB-850*",       /* .vid             Vendor-product ID string    */
612     ST_TYPE_EXB8500,          /* .type            Numeric type (cf. mtio.h)   */
613     0,                        /* .bsize           Block size (0 = variable)   */
614                               /* .options         Drive option flags:         */
615     ST_VARIABLE             | /*    00001           Supports variable length  */
616     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
617     ST_BSR                  | /*    00010           Supports SPACE block rev  */
618     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
619     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
620     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
621     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
622     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
623                               /*    -----                                     */
624                               /*    08E39                                     */
625     5000,                     /* .max_rretries    [Note 3]                    */
626     5000,                     /* .max_wretries    [Note 3]                    */
627     {0x14, 0x15, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
628     MT_DENSITY2,              /* .default_density (.densities[x])             */
629     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
630   },
631 
632   /*
633    * Exabyte 8mm 2GB cartridge
634    *
635    *     NOTES
636    *     -----
637    * [1] The Exabyte EXB-8200 uses 0 or the "default" density code.
638    * [2] The Exabyte EXB-8200 has only one speed (if the driver ever cares).
639    * [3] max_rretries and max_wretries are driver anachronisms.
640    * [4] Do a request or log sense on close to report soft errors.
641    */
642   {                           /* Structure member Description                 */
643                               /* ---------------- -----------                 */
644     "Exabyte EXB-8200 8mm Helical Scan",
645                               /* .name            Display ("pretty") name     */
646     16,                       /* .length          Length of next item...      */
647     "EXABYTE EXB-8200",       /* .vid             Vendor-product ID string    */
648     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
649     0,                        /* .bsize           Block size (0 = variable)   */
650                               /* .options         Drive option flags:         */
651     ST_VARIABLE             | /*    00001           Supports variable length  */
652     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
653     ST_BSR                  | /*    00010           Supports SPACE block rev  */
654     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
655     ST_AUTODEN_OVERRIDE     | /*    00040           Autodensity override flag */
656     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
657     ST_SOFT_ERROR_REPORTING | /*    00800           Error reporting [Note 4]  */
658     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
659                               /*    -----                                     */
660                               /*    08C79                                     */
661     5000,                     /* .max_rretries    [Note 3]                    */
662     5000,                     /* .max_wretries    [Note 3]                    */
663     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
664     MT_DENSITY2,              /* .default_density (.densities[x])             */
665     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
666   },
667 
668   /*
669    * Exabyte DC-2000 cartridge
670    *
671    *     NOTES
672    *     -----
673    *  o This is an unsupported drive.
674    *
675    *  o This entry uses a shortened Vendor-product ID string for the
676    *    INQUIRY match.
677    *
678    * [1] The Exabyte DC-2000 uses 0 or the "default" density.
679    * [2] The Exabyte DC-2000 has only one speed (if the driver ever cares).
680    * [3] max_rretries and max_wretries are driver anachronisms.
681    */
682   {                           /* Structure member Description                 */
683                               /* ---------------- -----------                 */
684     "Exabyte EXB-2501 QIC",   /* .name            Display ("pretty") name     */
685     14,                       /* .length          Length of next item...      */
686     "EXABYTE EXB-25**",       /* .vid             Vendor-product ID string    */
687     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
688     1024,                     /* .bsize           Block size (0 = variable)   */
689                               /* .options         Drive option flags:         */
690     ST_QIC              |     /*    00002           QIC tape device           */
691     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
692     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
693                               /*    -----                                     */
694                               /*    00442                                     */
695     400,                      /* .max_rretries    [Note 3]                    */
696     400,                      /* .max_wretries    [Note 3]                    */
697     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
698     MT_DENSITY2,              /* .default_density (.densities[x])             */
699     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
700   },
701 
702   /*
703    * EXABYTE 4mm Helical Scan
704    *
705    *     NOTES
706    *     -----
707    *
708    *  o This entry uses a shortened Vendor-product ID string for the
709    *    INQUIRY match.
710    *
711    * [1] The EXABYTE 4mm uses 0 or the "default" density code.
712    * [2] The EXABYTE 4mm has only one speed (if the driver ever cares).
713    * [3] max_rretries and max_wretries are driver anachronisms.
714    */
715   {                           /* Structure member Description                 */
716                               /* ---------------- -----------                 */
717     "Exabyte 4mm Helical Scan",
718                               /* .name            Display ("pretty") name     */
719     15,                       /* .length          Length of next item...      */
720     "EXABYTE EXB-420*",       /* .vid             Vendor-product ID string    */
721     ST_TYPE_EXABYTE,          /* .type            Numeric type (cf. mtio.h)   */
722     0,                        /* .bsize           Block size (0 = variable)   */
723                               /* .options         Drive option flags:         */
724     ST_VARIABLE   |           /*    00001           Supports variable length  */
725     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
726     ST_BSR        |           /*    00010           Supports SPACE block rev  */
727     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
728     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
729                               /*    -----                                     */
730                               /*    00439                                     */
731     400,                      /* .max_rretries    [Note 3]                    */
732     400,                      /* .max_wretries    [Note 3]                    */
733     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
734     MT_DENSITY2,              /* .default_density (.densities[x])             */
735     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
736   },
737 
738   /*
739    * Fujitsu 1/2" cartridge
740    *
741    *     NOTES
742    *     -----
743    *  o This is an unsupported drive.
744    *
745    * [1] The Fujitsu 1/2" drive uses 0 or the "default" density code.
746    * [2] The Fujitsu 1/2" drive has only one speed (if the driver ever cares).
747    * [3] max_rretries and max_wretries are driver anachronisms.
748    */
749   {                           /* Structure member Description                 */
750                               /* ---------------- -----------                 */
751     "Fujitsu 1/2\" Cartridge",/* .name            Display ("pretty") name     */
752     2,                        /* .length          Length of next item...      */
753     "\076\000",               /* .vid             Vendor-product ID string    */
754     ST_TYPE_FUJI,             /* .type            Numeric type (cf. mtio.h)   */
755     0,                        /* .bsize           Block size (0 = variable)   */
756                               /* .options         Drive option flags:         */
757     ST_VARIABLE   |           /*    00001           Supports variable length  */
758     ST_QIC        |           /*    00002           QIC tape device           */
759     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
760     ST_BSR        |           /*    00010           Supports SPACE block rev  */
761     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
762     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
763     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
764                               /*    -----                                     */
765                               /*    0063B                                     */
766     300,                      /* .max_rretries    [Note 3]                    */
767     300,                      /* .max_wretries    [Note 3]                    */
768     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
769     MT_DENSITY2,              /* .default_density (.densities[x])             */
770     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
771   },
772 
773   /*
774    * HP 1/2" reel
775    *
776    *     NOTES
777    *     -----
778    * [1] The HP 1/2" reel uses the vendor unique density '0xC3':
779    *     this is compressed 6250 mode. Beware that using large
780    *     data sets consisting of repeated data compresses *too*
781    *     well and one can run into the unix 2 gb file offset limit
782    *     this way.
783    * [2] The HP 1/2" reel has only one speed (if the driver ever cares).
784    * [3] max_rretries and max_wretries are driver anachronisms.
785    */
786   {                           /* Structure member Description                 */
787                               /* ---------------- -----------                 */
788     "HP-88780 1/2\" Reel",    /* .name            Display ("pretty") name     */
789     13,                       /* .length          Length of next item...      */
790     "HP      88780",          /* .vid             Vendor-product ID string    */
791     ST_TYPE_HP,               /* .type            Numeric type (cf. mtio.h)   */
792     0,                        /* .bsize           Block size (0 = variable)   */
793                               /* .options         Drive option flags:         */
794     ST_VARIABLE  |            /*    00001           Supports variable length  */
795     ST_REEL      |            /*    00004           1/2-inch reel tape device */
796     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
797     ST_BSR       |            /*    00010           Supports SPACE block rev  */
798     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
799                               /*    -----                                     */
800                               /*    0041D                                     */
801     400,                      /* .max_rretries    [Note 3]                    */
802     400,                      /* .max_wretries    [Note 3]                    */
803     {0x01, 0x02, 0x03, 0xC3}, /* .densities       Density codes [Note 1]      */
804     MT_DENSITY2,              /* .default_density (.densities[x])             */
805     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
806   },
807 
808   /*
809    * HP 35470A 4mm DAT
810    *
811    *     NOTES
812    *     -----
813    *  o This is an unsupported drive.
814    *
815    * [1] The HP 35470A uses 0 or the "default" density code.
816    * [2] The HP 35470A has only one speed (if the driver ever cares).
817    * [3] max_rretries and max_wretries are driver anachronisms.
818    */
819   {                           /* Structure member Description                 */
820                               /* ---------------- -----------                 */
821     "HP 35470A 4mm DAT",      /* .name            Display ("pretty") name     */
822     16,                       /* .length          Length of next item...      */
823     "HP      HP35470A",       /* .vid             Vendor-product ID string    */
824     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
825     0,                        /* .bsize           Block size (0 = variable)   */
826                               /* .options         Drive option flags:         */
827     ST_VARIABLE         |     /*    00001           Supports variable length  */
828     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
829     ST_BSR              |     /*    00010           Supports SPACE block rev  */
830     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
831     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
832     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
833     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
834     ST_LONG_TIMEOUTS,         /*    01000           More time for some ops    */
835                               /*    -----                                     */
836                               /*    01679                                     */
837     400,                      /* .max_rretries    [Note 3]                    */
838     400,                      /* .max_wretries    [Note 3]                    */
839     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
840     MT_DENSITY2,              /* .default_density (.densities[x])             */
841     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
842   },
843 
844   /*
845    * HP 35480A 4mm DAT
846    *
847    *     NOTES
848    *     -----
849    *  o This is an unsupported drive.
850    *
851    * [1] The HP 35480A uses 0 or the "default" density code.
852    * [2] The HP 35480A has only one speed (if the driver ever cares).
853    * [3] max_rretries and max_wretries are driver anachronisms.
854    */
855   {                           /* Structure member Description                 */
856                               /* ---------------- -----------                 */
857     "HP 35480A 4mm DAT",      /* .name            Display ("pretty") name     */
858     16,                       /* .length          Length of next item...      */
859     "HP      HP35480A",       /* .vid             Vendor-product ID string    */
860     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
861     0,                        /* .bsize           Block size (0 = variable)   */
862                               /* .options         Drive option flags:         */
863     ST_VARIABLE   |           /*    00001           Supports variable length  */
864     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
865     ST_BSR        |           /*    00010           Supports SPACE block rev  */
866     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
867     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
868                               /*    -----                                     */
869                               /*    00439                                     */
870     400,                      /* .max_rretries    [Note 1]                    */
871     400,                      /* .max_wretries    [Note 1]                    */
872     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 2]      */
873     MT_DENSITY2,              /* .default_density (.densities[x])             */
874     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
875   },
876 
877   /*
878    * HP JetStore 6000 C1533
879    *
880    *     NOTES
881    *     -----
882    *  o This is only supported for x86.
883    *
884    * [1] The HP JetStore 6000 uses 0 or the "default" density code.
885    * [2] The HP JetStore 6000 has only one speed (if the driver ever cares).
886    * [3] max_rretries and max_wretries are driver anachronisms.
887    */
888   {                           /* Structure member Description                 */
889                               /* ---------------- -----------                 */
890     "HP JetStore 6000 C1533", /* .name            Display ("pretty") name     */
891     14,                       /* .length          Length of next item...      */
892     "HP      C1533A",         /* .vid             Vendor-product ID string    */
893     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
894     0,                        /* .bsize           Block size (0 = variable)   */
895                               /* .options         Drive option flags:         */
896     ST_VARIABLE   |           /*    00001           Supports variable length  */
897     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
898     ST_BSR        |           /*    00010           Supports SPACE block rev  */
899     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
900     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
901                               /*    -----                                     */
902                               /*    00639                                     */
903     400,                      /* .max_rretries    [Note 3]                    */
904     400,                      /* .max_wretries    [Note 3]                    */
905     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
906     MT_DENSITY2,              /* .default_density (.densities[x])             */
907     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
908   },
909 
910   /*
911    * HP DDS-3 4mm DAT
912    *
913    *     NOTES
914    *     -----
915    *  o This is an unsupported drive.
916    *
917    * [1] Compression on the HP DDS-3 is controlled
918    *     via the Device Configuration mode page.
919    * [2] The HP DDS-3 has only one density, 0x8c (or 0 for "default").
920    * [3] The HP DDS-3 has only one speed (if the driver ever cares).
921    * [4] max_rretries and max_wretries are driver anachronisms.
922    */
923   {                           /* Structure member Description                 */
924                               /* ---------------- -----------                 */
925     "HP DDS-3 4MM DAT",       /* .name            Display ("pretty") name     */
926     14,                       /* .length          Length of next item...      */
927     "HP      C1537A",         /* .vid             Vendor-product ID string    */
928     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
929     0,                        /* .bsize           Block size (0 = variable)   */
930                               /* .options         Drive option flags:         */
931     ST_VARIABLE        |      /*    00001           Supports variable length  */
932     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
933     ST_BSR             |      /*    00010           Supports SPACE block rev  */
934     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
935     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
936     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
937     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
938     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
939                               /*    -----                                     */
940                               /*    09639                                     */
941     400,                      /* .max_rretries    [Note 4]                    */
942     400,                      /* .max_wretries    [Note 4]                    */
943     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 2]      */
944     MT_DENSITY2,              /* .default_density (.densities[x])             */
945     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
946   },
947 
948   /*
949    * HP DDS-3 4mm DAT loader
950    *
951    *     NOTES
952    *     -----
953    *  o This is an unsupported drive.
954    *
955    * [1] Compression on the DDS-3 Loader is controlled
956    *     via the Device Configuration mode page.
957    * [2] The DDS-3 Loader has only one density, 0x8c (or 0 for "default").
958    * [3] The DDS-3 Loader has only one speed (if the driver ever cares).
959    * [4] max_rretries and max_wretries are driver anachronisms.
960    */
961   {                           /* Structure member Description                 */
962                               /* ---------------- -----------                 */
963     "HP DDS-3 4MM DAT loader",/* .name            Display ("pretty") name     */
964     14,                       /* .length          Length of next item...      */
965     "HP      C1557A",         /* .vid             Vendor-product ID string    */
966     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
967     0,                        /* .bsize           Block size (0 = variable)   */
968                               /* .options         Drive option flags:         */
969     ST_VARIABLE        |      /*    00001           Supports variable length  */
970     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
971     ST_BSR             |      /*    00010           Supports SPACE block rev  */
972     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
973     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
974     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
975     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
976     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
977                               /*    -----                                     */
978                               /*    09639                                     */
979     400,                      /* .max_rretries    [Note 4]                    */
980     400,                      /* .max_wretries    [Note 4]                    */
981     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 2]      */
982     MT_DENSITY2,              /* .default_density (.densities[x])             */
983     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 3]        */
984   },
985 
986   /*
987    * HP C5683A DDS-4 DAT drives with Sun-specific behavior
988    *
989    * When the configuration switches on the drive are set appropriately, the
990    * HP C5683A: interprets a density code of 8Ch to mean "enable compression",
991    * 00h to mean "disable compression"; senses the tape type automatically;
992    * adjusts to match the tape type. (That is, compression is controlled via
993    * the Sun-unique 8Ch density code, rather than using the Data Compression
994    * mode page).
995    *
996    *     NOTES
997    *     -----
998    * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x
999    *     format-related adjustments are performed automatically by the drive.
1000    * [2] The 5683 has only one speed (if the driver ever cares).
1001    * [3] max_rretries and max_wretries are driver anachronisms.
1002    */
1003   {                           /* Structure member Description                 */
1004                               /* ---------------- -----------                 */
1005     "HP DDS-4 DAT (Sun)",     /* .name            Display ("pretty") name     */
1006     14,                       /* .length          Length of next item...      */
1007     "HP      C5683A",         /* .vid             Vendor-product ID string    */
1008     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1009     0,                        /* .bsize           Block size (0 = variable)   */
1010                               /* .options         Drive option flags:         */
1011     ST_VARIABLE         |     /*    00001           Supports variable length  */
1012     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1013     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1014     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
1015     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1016     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1017     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1018     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
1019                               /*    -----                                     */
1020                               /*    09639                                     */
1021     -1,                       /* .max_rretries    [Note 3]                    */
1022     -1,                       /* .max_wretries    [Note 3]                    */
1023     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
1024     MT_DENSITY2,              /* .default_density (.densities[x])             */
1025     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1026   },
1027 
1028   /*
1029    * HP C5713A DDS-4 DAT autochangers with Sun-specific behavior
1030    *
1031    * When the configuration switches on the drive are set appropriately, the
1032    * HP C5713A: interprets a density code of 8Ch to mean "enable compression",
1033    * 00h to mean "disable compression"; senses the tape type automatically;
1034    * adjusts to match the tape type. (That is, compression is controlled via
1035    * the Sun-unique 8Ch density code, rather than using the Data Compression
1036    * mode page).
1037    *
1038    *     NOTES
1039    *     -----
1040    * [1] 00h = compression disabled, 8Ch = compression enabled, and all DDS-x
1041    *     format-related adjustments are performed automatically by the drive.
1042    * [2] The 5713 has only one speed (if the driver ever cares).
1043    * [3] max_rretries and max_wretries are driver anachronisms.
1044    */
1045   {                           /* Structure member Description                 */
1046                               /* ---------------- -----------                 */
1047     "HP DDS-4 DAT (Sun)",     /* .name            Display ("pretty") name     */
1048     14,                       /* .length          Length of next item...      */
1049     "HP      C5713A",         /* .vid             Vendor-product ID string    */
1050     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1051     0,                        /* .bsize           Block size (0 = variable)   */
1052                               /* .options         Drive option flags:         */
1053     ST_VARIABLE         |     /*    00001           Supports variable length  */
1054     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1055     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1056     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
1057     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1058     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1059     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1060     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
1061                               /*    -----                                     */
1062                               /*    09639                                     */
1063     -1,                       /* .max_rretries    [Note 3]                    */
1064     -1,                       /* .max_wretries    [Note 3]                    */
1065     {0x00, 0x8C, 0x8C, 0x8C}, /* .densities       Density codes [Note 1]      */
1066     MT_DENSITY2,              /* .default_density (.densities[x])             */
1067     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1068   },
1069 
1070    /*
1071     * HP C7438A
1072     */
1073   {                           /* Structure member Description                 */
1074                               /* ---------------- -----------                 */
1075     "HP DAT-72",              /* .name            Display ("pretty") name     */
1076     14,                       /* .length          Length of next item...      */
1077     "HP      C7438A",         /* .vid             Vendor-product ID string    */
1078     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1079     0,                        /* .bsize           Block size (0 = variable)   */
1080                               /* .options         Drive option flags:         */
1081     ST_VARIABLE         |     /*    00001           Supports variable length  */
1082     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1083     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1084     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1085     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1086     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1087     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1088                               /*    -----                                     */
1089                               /*    18619                                     */
1090     -1,                       /* .max_rretries      Not Used                  */
1091     -1,                       /* .max_wretries      Not Used                  */
1092     {0x47, 0x47, 0x47, 0x47}, /* .densities       Density codes               */
1093     MT_DENSITY4,              /* .default_density (.densities[x])             */
1094     {0, 0, 0, 0},             /* .speeds          Speed codes Not Used        */
1095     0,                        /* .non_motion_timeout Nothing Special          */
1096     MINUTES(7),               /* .io_timeout         7 minutes (recover read) */
1097     0,                        /* .rewind_timeout     Nothing Special          */
1098     MINUTES(600),             /* .space_timeout      10 Hours (space seq file)*/
1099     0,                        /* .load_timeout       Nothing Special          */
1100     0,                        /* .unload_timeout     Nothing Special          */
1101     MINUTES(290)              /* .erase_timeout      4 hours 50 minutes       */
1102   },
1103 
1104   /*
1105    * HP DAT-160
1106    */
1107   {                           /* Structure member Description                 */
1108                               /* ---------------- -----------                 */
1109     "HP DDS-6 DAT",           /* .name            Display ("pretty") name     */
1110     14,                       /* .length          Length of next item...      */
1111     "HP      DAT160",         /* .vid             Vendor-product ID string    */
1112     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1113     0,                        /* .bsize           Block size (0 = variable)   */
1114                               /* .options         Drive option flags:         */
1115     ST_VARIABLE         |     /*    00001           Supports variable length  */
1116     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1117     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1118     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1119     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1120     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1121     ST_MODE_SEL_COMP    |     /*    10000           Mode select compression   */
1122     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1123                               /*  -------                                     */
1124                               /*  1018619                                     */
1125     -1,                       /* .max_rretries      Not Used                  */
1126     -1,                       /* .max_wretries      Not Used                  */
1127     {0x48, 0x48, 0x48, 0x48}, /* .densities       Density codes               */
1128     MT_DENSITY4,              /* .default_density (.densities[x])             */
1129     {0, 0, 0, 0},             /* .speeds          Speed codes Not Used        */
1130     0,                        /* .non_motion_timeout Nothing Special          */
1131     MINUTES(5),               /* .io_timeout                                  */
1132     MINUTES(10),              /* .rewind_timeout                              */
1133     MINUTES(20),              /* .space_timeout                               */
1134     MINUTES(10),              /* .load_timeout                                */
1135     MINUTES(10),              /* .unload_timeout                              */
1136     MINUTES(300)              /* .erase_timeout      5 hours                  */
1137   },
1138 
1139   /*
1140    * HP Ultrium LTO Gen 4
1141    * [1] This drive supports two densites at this time.
1142    *     In reality the type of media GEN 3 or GEN 4 selects the density.
1143    *     ST_MODE_SEL_COMP controls compression.
1144    * [2] The Ultrium LTO has one speed.
1145    * [3] max_rretries and max_wretries are not used but kept for
1146    *     backward compatibility.
1147    */
1148   {                           /* Structure member Description                 */
1149                               /* ---------------- -----------                 */
1150     "HP Ultrium LTO 4",       /* .name            Display ("pretty") name     */
1151     17,                       /* .length          Length of next item...      */
1152     "HP      Ultrium 4*",     /* .vid             handles SCSI or FC          */
1153     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1154     0,                        /* .bsize           Block size (0 = variable)   */
1155                               /* .options         Drive option flags:         */
1156     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1157     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1158     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1159     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1160     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1161     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1162     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
1163     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1164                               /*  -------                                     */
1165                               /*  1018619                                     */
1166     -1,                       /* .max_rretries    [Note 3]                    */
1167     -1,                       /* .max_wretries    [Note 3]                    */
1168     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
1169     MT_DENSITY4,              /* .default_density (.densities[x])             */
1170     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1171     MINUTES(1),               /* .non_motion_timeout                          */
1172     MINUTES(20),              /* .io_timeout                                  */
1173     MINUTES(10),              /* .rewind_timeout                              */
1174     MINUTES(20),              /* .space_timeout                               */
1175     MINUTES(10),              /* .load_timeout                                */
1176     MINUTES(10),              /* .unload_timeout                              */
1177     MINUTES(300)              /* .erase_timeout      Five Hours               */
1178   },
1179 
1180   /*
1181    * HP Ultrium LTO Gen 3
1182    * [1] This drive supports two densites at this time.
1183    *     In reality the type of media GEN 2 or GEN 3 selects the density.
1184    *     ST_MODE_SEL_COMP controls compression.
1185    * [2] The Ultrium LTO has one speed.
1186    * [3] max_rretries and max_wretries are not used but kept for
1187    *     backward compatibility.
1188    */
1189   {                           /* Structure member Description                 */
1190                               /* ---------------- -----------                 */
1191     "HP Ultrium LTO 3",       /* .name            Display ("pretty") name     */
1192     17,                       /* .length          Length of next item...      */
1193     "HP      Ultrium 3*",     /* .vid             handles SCSI or FC          */
1194     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1195     0,                        /* .bsize           Block size (0 = variable)   */
1196                               /* .options         Drive option flags:         */
1197     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1198     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1199     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1200     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1201     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1202     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1203     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
1204     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1205                               /*  -------                                     */
1206                               /*  1018619                                     */
1207     -1,                       /* .max_rretries    [Note 3]                    */
1208     -1,                       /* .max_wretries    [Note 3]                    */
1209     {0x42, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
1210     MT_DENSITY4,              /* .default_density (.densities[x])             */
1211     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1212     MINUTES(1),               /* .non_motion_timeout                          */
1213     MINUTES(20),              /* .io_timeout                                  */
1214     MINUTES(10),              /* .rewind_timeout                              */
1215     MINUTES(20),              /* .space_timeout                               */
1216     MINUTES(10),              /* .load_timeout                                */
1217     MINUTES(10),              /* .unload_timeout                              */
1218     MINUTES(300)              /* .erase_timeout      Five Hours               */
1219   },
1220 
1221   /*
1222    * HP Ultrium LTO Gen 2
1223    * [1] This drive supports two densites at this time.
1224    *     In reality the type of media GEN 1 or GEN 2 selects the density.
1225    *     ST_MODE_SEL_COMP controls compression.
1226    * [2] The Ultrium LTO has one speed.
1227    * [3] max_rretries and max_wretries are not used but kept for
1228    *     backward compatibility.
1229    */
1230   {                           /* Structure member Description                 */
1231                               /* ---------------- -----------                 */
1232     "HP Ultrium LTO 2",       /* .name            Display ("pretty") name     */
1233     17,                       /* .length          Length of next item...      */
1234     "HP      Ultrium 2*",     /* .vid             handles SCSI or FC          */
1235     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1236     0,                        /* .bsize           Block size (0 = variable)   */
1237                               /* .options         Drive option flags:         */
1238     ST_VARIABLE         |     /*    00001           Supports variable length  */
1239     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1240     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1241     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1242     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1243     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1244     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1245                               /*    -----                                     */
1246                               /*    18619                                     */
1247     -1,                       /* .max_rretries    [Note 3]                    */
1248     -1,                       /* .max_wretries    [Note 3]                    */
1249     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
1250     MT_DENSITY4,              /* .default_density (.densities[x])             */
1251     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1252     MINUTES(10),              /* .non_motion_timeout                          */
1253     MINUTES(5),               /* .io_timeout Four                             */
1254     MINUTES(10),              /* .rewind_timeout                              */
1255     MINUTES(20),              /* .space_timeout                               */
1256     MINUTES(10),              /* .load_timeout                                */
1257     MINUTES(10),              /* .unload_timeout                              */
1258     MINUTES(300)              /* .erase_timeout      Five Hours               */
1259   },
1260 
1261   /*
1262    * HP Ultrium LTO
1263    * [1] This drive supports only one density at this time.
1264          ST_MODE_SEL_COMP controls compression.
1265    * [2] The Ultrium LTO has one speed.
1266    * [3] max_rretries and max_wretries are not used but kept for
1267    *     backward compatibility.
1268    */
1269   {                           /* Structure member Description                 */
1270                               /* ---------------- -----------                 */
1271     "HP Ultrium LTO",         /* .name            Display ("pretty") name     */
1272     17,                       /* .length          Length of next item...      */
1273     "HP      Ultrium 1*",     /* .vid             handles SCSI and FC         */
1274     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1275     0,                        /* .bsize           Block size (0 = variable)   */
1276                               /* .options         Drive option flags:         */
1277     ST_VARIABLE         |     /*    00001           Supports variable length  */
1278     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1279     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1280     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1281     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1282     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1283     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1284                               /*    -----                                     */
1285                               /*    18619                                     */
1286     -1,                       /* .max_rretries    [Note 3]                    */
1287     -1,                       /* .max_wretries    [Note 3]                    */
1288     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
1289     MT_DENSITY4,              /* .default_density (.densities[x])             */
1290     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1291     MINUTES(1),               /* .non_motion_timeout                          */
1292     MINUTES(5),               /* .io_timeout Four                             */
1293     MINUTES(10),              /* .rewind_timeout                              */
1294     MINUTES(20),              /* .space_timeout                               */
1295     MINUTES(10),              /* .load_timeout                                */
1296     MINUTES(10),              /* .unload_timeout                              */
1297     MINUTES(300)              /* .erase_timeout      Five Hours               */
1298   },
1299 
1300   /*
1301    * Kennedy 1/2" reel
1302    *
1303    *     NOTES
1304    *     -----
1305    *  o This is an unsupported drive.
1306    *
1307    *  o This entry uses a shortened Vendor-product ID string for the
1308    *    INQUIRY match.
1309    *
1310    * [1] The density code entry requires four values, even if there are less
1311    *     than four values for the drive.
1312    * [2] The Kennedy 1/2" reel has only one speed (if the driver ever cares).
1313    * [3] max_rretries and max_wretries are driver anachronisms.
1314    */
1315   {                           /* Structure member Description                 */
1316                               /* ---------------- -----------                 */
1317     "Kennedy 1/2\" Reel",     /* .name            Display ("pretty") name     */
1318     4,                        /* .length          Length of next item...      */
1319     "KENN***",                /* .vid             Vendor-product ID string    */
1320     ST_TYPE_KENNEDY,          /* .type            Numeric type (cf. mtio.h)   */
1321     0,                        /* .bsize           Block size (0 = variable)   */
1322                               /* .options         Drive option flags:         */
1323     ST_VARIABLE |             /*    00001           Supports variable length  */
1324     ST_REEL     |             /*    00004           1/2-inch reel tape device */
1325     ST_BSF      |             /*    00008           Supports SPACE block fwd  */
1326     ST_BSR      |             /*    00010           Supports SPACE block rev  */
1327     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1328                               /*    -----                                     */
1329                               /*    0041D                                     */
1330     400,                      /* .max_rretries    [Note 3]                    */
1331     400,                      /* .max_wretries    [Note 3]                    */
1332     {0x01, 0x02, 0x03, 0x03}, /* .densities       Density codes [Note 1]      */
1333     MT_DENSITY2,              /* .default_density (.densities[x])             */
1334     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1335   },
1336 
1337   /*
1338    * M4 Data Systems 9303 transport with 9700 512k i/f
1339    *
1340    *     NOTES
1341    *     -----
1342    *  o  The M4 Data 9303 is in non-buffered mode because it doesn't
1343    *     flush the buffer at end of tape writes. If you don't care
1344    *     about end of tape conditions (e.g., you use dump(8) which
1345    *     cannot handle end-of-tape anyhow), take out the ST_NOBUF.
1346    *
1347    *  o This is an unsupported drive.
1348    *
1349    * [1] The density code entry requires four values, even if there are less
1350    *     than four values for the drive.
1351    * [2] The M4 Data has only one speed (if the driver ever cares).
1352    * [3] max_rretries and max_wretries are driver anachronisms.
1353    */
1354   {                           /* Structure member Description                 */
1355                               /* ---------------- -----------                 */
1356     "M4-Data 1/2\" Reel",     /* .name            Display ("pretty") name     */
1357     19,                       /* .length          Length of next item...      */
1358     "M4 DATA 123107 SCSI",    /* .vid             Vendor-product ID string    */
1359     ST_TYPE_REEL,             /* .type            Numeric type (cf. mtio.h)   */
1360     0,                        /* .bsize           Block size (0 = variable)   */
1361                               /* .options         Drive option flags:         */
1362     ST_VARIABLE  |            /*    00001           Supports variable length  */
1363     ST_REEL      |            /*    00004           1/2-inch reel tape device */
1364     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
1365     ST_BSR       |            /*    00010           Supports SPACE block rev  */
1366     ST_NOBUF     |            /*    00080           Don't use buffered mode.  */
1367     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1368                               /*    -----                                     */
1369                               /*    0049D                                     */
1370     500,                      /* .max_rretries    [Note 3]                    */
1371     500,                      /* .max_wretries    [Note 3]                    */
1372     {0x01, 0x02, 0x06, 0x06}, /* .densities       Density codes [Note 1]      */
1373     MT_DENSITY2,              /* .default_density (.densities[x])             */
1374     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1375   },
1376 
1377   /*
1378    * Quantum VS 160
1379    *
1380    * Notes
1381    * [1] The VS160 reads several formats which the drive autodetects.
1382    *     It can write only in VS160 format so all densities set ro 0x50.
1383    * [2] The speed field is not used and the VS160's speed is not setable.
1384    * [3] Retry counts are not used any more and set to -1.
1385    */
1386   {                           /* Structure member Description                 */
1387                               /* ---------------- -----------                 */
1388     "Quantum VS160",          /* .name            Display ("pretty") name     */
1389     17,                       /* .length          Length of next item...      */
1390     "QUANTUM DLT VS160",      /* .vid             Vendor-product ID string    */
1391     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1392     0,                        /* .bsize           Block size (0 = variable)   */
1393                               /* .options         Drive option flags:         */
1394     ST_VARIABLE         |     /*    00001         Supports variable length    */
1395     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1396     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1397     ST_AUTODEN_OVERRIDE |     /*    00040         Has only one density        */
1398     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1399     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1400     ST_NO_RECSIZE_LIMIT |     /*    08000         Supports blocks > 64KB      */
1401     ST_MODE_SEL_COMP,         /*    10000         Uses Mode select Compress   */
1402                               /* --------                                     */
1403                               /* 00018659                                     */
1404     -1,                       /* .max_rretries    [Note 3]                    */
1405     -1,                       /* .max_wretries    [Note 3]                    */
1406     {0x50, 0x50, 0x50, 0x50}, /* .densities       [Note 1]                    */
1407     MT_DENSITY4,              /* .default_density (.densities[x])             */
1408     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1409     MINUTES(2),               /* .non_motion_timeout Nothing special          */
1410     MINUTES(15),              /* .io_timeout         First write to new tape  */
1411     MINUTES(15),              /* .rewind_timeout     15 minutes               */
1412     MINUTES(15),              /* .space_timeout      15 minutes               */
1413     MINUTES(15),              /* .load_timeout       read catalog             */
1414     MINUTES(15),              /* .unload_timeout     write catalog + unthread */
1415     MINUTES(180)              /* .erase_timeout      3 hours                  */
1416   },
1417   /*
1418    * Quantum Super DLT600
1419    *
1420    *    NOTES
1421    *    -----
1422    *
1423    * [1] The Super DLT 600 supports many tape formats, Most are media selected.
1424    *     Previous DLT drives had density codes for compress and non-compress,
1425          This drive uses mode select to control compression.
1426    * [2] The Super DLT has only one speed (if the driver ever cares).
1427    * [3] max_rretries and max_wretries are driver anachronisms.
1428    */
1429   {                           /* Structure member Description                 */
1430                               /* ---------------- -----------                 */
1431     "Quantum Super DLT 600",  /* .name            Display ("pretty") name     */
1432     15,                       /* .length          Length of next item...      */
1433     "QUANTUM SDLT600",        /* .vid             Vendor-product ID string    */
1434     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1435     0,                        /* .bsize           Block size (0 = variable)   */
1436                               /* .options         Drive option flags:         */
1437     ST_VARIABLE         |     /*  0000001         Supports variable length    */
1438     ST_BSF              |     /*  0000008         Supports SPACE block fwd    */
1439     ST_BSR              |     /*  0000010         Supports SPACE block rev    */
1440     ST_KNOWS_EOD        |     /*  0000200         Recognizes end-of-data      */
1441     ST_UNLOADABLE       |     /*  0000400         Driver can be unloaded      */
1442     ST_NO_RECSIZE_LIMIT |     /*  0008000         Supports blocks > 64KB      */
1443     ST_MODE_SEL_COMP    |     /*  0010000         Uses Mode select Compress   */
1444     ST_WORMABLE,              /*  1000000         Is capable of WORM          */
1445                               /*  -------                                     */
1446                               /*  1018619                                     */
1447     -1,                       /* .max_rretries    [Note 3]                    */
1448     -1,                       /* .max_wretries    [Note 3]                    */
1449     {0x4a, 0x4a, 0x4a, 0x4a}, /* .densities       [Note 1]                    */
1450     MT_DENSITY4,              /* .default_density (.densities[x])             */
1451     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1452     0,                        /* .non_motion_timeout Nothing special          */
1453     MINUTES(60),              /* .io_timeout Four    One Hour                 */
1454     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1455     MINUTES(360),             /* .space_timeout      6 Hour if Directory bad  */
1456     MINUTES(16),              /* .load_timeout       Nothing Special          */
1457     MINUTES(16),              /* .unload_timeout     Nothing Special          */
1458     MINUTES(360)              /* .erase_timeout      Six hours                */
1459   },
1460 
1461  /*
1462    * Quantum Super DLT320
1463    *
1464    *    NOTES
1465    *    -----
1466    *  o  There is not going to be a SUN version of this drive. It will
1467    *     be released as QUANTUM only.
1468    *
1469    * [1] The Super DLT implements many tape formats, but the st driver supports
1470    *     only the four highest densities.
1471    * [2] The Super DLT has only one speed (if the driver ever cares).
1472    * [3] max_rretries and max_wretries are driver anachronisms.
1473    */
1474   {                           /* Structure member Description                 */
1475                               /* ---------------- -----------                 */
1476     "Quantum Super DLT 320",  /* .name            Display ("pretty") name     */
1477     15,                       /* .length          Length of next item...      */
1478     "QUANTUM SDLT320",        /* .vid             Vendor-product ID string    */
1479     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1480     0,                        /* .bsize           Block size (0 = variable)   */
1481                               /* .options         Drive option flags:         */
1482     ST_VARIABLE         |     /*    00001         Supports variable length    */
1483     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1484     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1485     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1486     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1487     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
1488                               /* --------                                     */
1489                               /* 00008619                                     */
1490     -1,                       /* .max_rretries    [Note 3]                    */
1491     -1,                       /* .max_wretries    [Note 3]                    */
1492     {0x90, 0x91, 0x92, 0x93}, /* .densities       [Note 1]                    */
1493     MT_DENSITY4,              /* .default_density (.densities[x])             */
1494     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1495     0,                        /* .non_motion_timeout Default 2 minutes        */
1496     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
1497     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1498     MINUTES(360),             /* .space_timeout      Six Hours                */
1499     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
1500     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
1501     MINUTES(360)              /* .erase_timeout      Six hours                */
1502   },
1503 
1504   /*
1505    * Quantum Super DLT
1506    *
1507    *    NOTES
1508    *    -----
1509    *  o  There is not going to be a SUN version of this drive. It will
1510    *     be released as QUANTUM only.
1511    *
1512    * [1] The Super DLT implements many tape formats, but the st driver supports
1513    *     only the four highest densities.
1514    * [2] The Super DLT has only one speed (if the driver ever cares).
1515    * [3] max_rretries and max_wretries are driver anachronisms.
1516    */
1517   {                           /* Structure member Description                 */
1518                               /* ---------------- -----------                 */
1519     "Quantum Super DLT 220",  /* .name            Display ("pretty") name     */
1520     17,                       /* .length          Length of next item...      */
1521     "QUANTUM SuperDLT1",      /* .vid             Vendor-product ID string    */
1522     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1523     0,                        /* .bsize           Block size (0 = variable)   */
1524                               /* .options         Drive option flags:         */
1525     ST_VARIABLE         |     /*    00001         Supports variable length    */
1526     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1527     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1528     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1529     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1530     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
1531                               /* --------                                     */
1532                               /* 00008619                                     */
1533     -1,                       /* .max_rretries    [Note 3]                    */
1534     -1,                       /* .max_wretries    [Note 3]                    */
1535     {0x88, 0x89, 0x90, 0x91}, /* .densities       [Note 1]                    */
1536     MT_DENSITY4,              /* .default_density (.densities[x])             */
1537     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1538     0,                        /* .non_motion_timeout Default 2 minutes        */
1539     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
1540     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1541     MINUTES(360),             /* .space_timeout      Six Hours                */
1542     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
1543     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
1544     MINUTES(360)              /* .erase_timeout      Six hours                */
1545   },
1546 
1547   /*
1548    * Quantum DLT8000
1549    *
1550    *    NOTES
1551    *    -----
1552    *  o  There is not going to be a SUN version of this drive. It will
1553    *     be released as QUANTUM only.
1554    *
1555    * [1] The DLT8000 implements many tape formats, but the st driver supports
1556    *     only the four highest densities.
1557    * [2] The DLT8000 has only one speed (if the driver ever cares).
1558    * [3] max_rretries and max_wretries are driver anachronisms.
1559    */
1560   {                           /* Structure member Description                 */
1561                               /* ---------------- -----------                 */
1562     "Quantum DLT8000",        /* .name            Display ("pretty") name     */
1563     15,                       /* .length          Length of next item...      */
1564     "QUANTUM DLT8000",        /* .vid             Vendor-product ID string    */
1565     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1566     0,                        /* .bsize           Block size (0 = variable)   */
1567                               /* .options         Drive option flags:         */
1568     ST_VARIABLE         |     /*    00001           Supports variable length  */
1569     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1570     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1571     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1572     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1573     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1574     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1575     ST_CLN_TYPE_3,            /* 40000000                                     */
1576                               /*    -----                                     */
1577                               /* 40009619                                     */
1578     400,                      /* .max_rretries    [Note 3]                    */
1579     400,                      /* .max_wretries    [Note 3]                    */
1580     {0x84, 0x85, 0x88, 0x89}, /* .densities       [Note 1]                    */
1581     MT_DENSITY4,              /* .default_density (.densities[x])             */
1582     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1583     0,                        /* .non_motion_timeout Nothing special          */
1584     0,                        /* .io_timeout Four    Nothing Special          */
1585     0,                        /* .rewind_timeout     Nothing Special          */
1586     0,                        /* .space_timeout      Nothing Special          */
1587     0,                        /* .load_timeout       Nothing Special          */
1588     0,                        /* .unload_timeout     Nothing Special          */
1589     MINUTES(360)              /* .erase_timeout      Six hours                */
1590   },
1591 
1592   /*
1593    * Quantum DLT7000
1594    *
1595    *     NOTES
1596    *     -----
1597    * [1] The DLT7000 implements many tape formats, but the st driver supports
1598    *     only the four highest densities.
1599    * [2] The DLT7000 has only one speed (if the driver ever cares).
1600    * [3] max_rretries and max_wretries are driver anachronisms.
1601    * [4] Data is buffered in the driver and pre-acked to the application. This
1602    *      is only supported in Solaris 2.5.1.
1603    */
1604   {                           /* Structure member Description                 */
1605                               /* ---------------- -----------                 */
1606     "Quantum DLT7000",        /* .name            Display ("pretty") name     */
1607     15,                       /* .length          Length of next item...      */
1608     "QUANTUM DLT7000",        /* .vid             Vendor-product ID string    */
1609     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1610     0,                        /* .bsize           Block size (0 = variable)   */
1611                               /* .options         Drive option flags:         */
1612     ST_VARIABLE         |     /*    00001           Supports variable length  */
1613     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1614     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1615     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1616     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1617     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1618     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
1619     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1620     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
1621                               /* --------                                     */
1622                               /* 4000D619                                     */
1623     400,                      /* .max_rretries    [Note 3]                    */
1624     400,                      /* .max_wretries    [Note 3]                    */
1625     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
1626     MT_DENSITY3,              /* .default_density (.densities[x])             */
1627     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1628     0,                        /* .non_motion_timeout Nothing special          */
1629     0,                        /* .io_timeout Four    Nothing Special          */
1630     0,                        /* .rewind_timeout     Nothing Special          */
1631     0,                        /* .space_timeout      Nothing Special          */
1632     0,                        /* .load_timeout       Nothing Special          */
1633     0,                        /* .unload_timeout     Nothing Special          */
1634     MINUTES(360)              /* .erase_timeout      Six hours                */
1635   },
1636 
1637   /*
1638    * Quantum DLT4000
1639    *
1640    *     NOTES
1641    *     -----
1642    * [1] The DLT4000 implements many tape formats, but the st driver supports
1643    *     only the four highest densities.
1644    * [2] The DLT4000 has only one speed (if the driver ever cares).
1645    * [3] max_rretries and max_wretries are driver anachronisms.
1646    * [4] Data is buffered in the driver and pre-acked to the application. This
1647    *     is only supported in 2.5.1.
1648    */
1649   {                           /* Structure member Description                 */
1650                               /* ---------------- -----------                 */
1651     "Quantum DLT4000",        /* .name            Display ("pretty") name     */
1652     15,                       /* .length          Length of next item...      */
1653     "Quantum DLT4000",        /* .vid             Vendor-product ID string    */
1654     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1655     0,                        /* .bsize           Block size (0 = variable)   */
1656                               /* .options         Drive option flags:         */
1657     ST_VARIABLE        |      /*    00001           Supports variable length  */
1658     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
1659     ST_BSR             |      /*    00010           Supports SPACE block rev  */
1660     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
1661     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
1662     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
1663     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
1664     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
1665     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
1666                               /* --------                                     */
1667                               /* 4000D619                                     */
1668     400,                      /* .max_rretries    [Note 3]                    */
1669     400,                      /* .max_wretries    [Note 3]                    */
1670     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
1671     MT_DENSITY3,              /* .default_density (.densities[x])             */
1672     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1673     0,                        /* .non_motion_timeout Nothing special          */
1674     0,                        /* .io_timeout Four    Nothing Special          */
1675     0,                        /* .rewind_timeout     Nothing Special          */
1676     0,                        /* .space_timeout      Nothing Special          */
1677     0,                        /* .load_timeout       Nothing Special          */
1678     0,                        /* .unload_timeout     Nothing Special          */
1679     MINUTES(360)              /* .erase_timeout      Six hours                */
1680   },
1681 
1682   /*
1683    * [1] The DLT-S4 has three densites at this time,
1684    *     0x49 for SuperDLT tape I, 0x4a for SuperDLT tape II,
1685    *     0x4b for SuperDLT tape III.
1686    *     This drive is configured with ST_KNOWS_MEDIA.
1687    *     That means that it will look at the mediatype from the mode sense
1688    *     to select the density code. The compression will be selected based
1689    *     on the minor node the user opened.
1690    * [2] S4 reports a medium type that is used to select the density.
1691    */
1692   {                           /* Structure member Description                 */
1693                               /* ---------------- -----------                 */
1694     "Quantum DLT-S4",         /* .name            Display ("pretty") name     */
1695     14,                       /* .length          Length of next item...      */
1696     "QUANTUM DLT-S4",         /* .vid             Vendor-product ID string    */
1697     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1698     0,                        /* .bsize           Block size (0 = variable)   */
1699                               /* .options         Drive option flags:         */
1700     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1701     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1702     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1703     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1704     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1705     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1706     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
1707     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
1708     ST_WORMABLE,              /*  1000000            Supports WORM            */
1709                               /*    -----                                     */
1710                               /*  1818619                                     */
1711     -1,                       /* .max_rretries    Not used any more.          */
1712     -1,                       /* .max_wretries    Not used any more.          */
1713     {0x49, 0x4a, 0x4b, 0x4b}, /* .densities       Density codes [Note 1]      */
1714     MT_DENSITY4,              /* .default_density (.densities[x])             */
1715     {0x86, 0x87, 0x91, 0x91}, /* .mediatype       Media type  [Note 2]        */
1716     0,                        /* .non_motion_time                             */
1717     MINUTES(60),              /* .io_time                                     */
1718     MINUTES(4),               /* .rewind_time                                 */
1719     MINUTES(360),             /* .space_time                                  */
1720     MINUTES(16),              /* .load_time                                   */
1721     MINUTES(16),              /* .unload_time                                 */
1722     MINUTES(360)              /* .erase_time                                  */
1723   },
1724 
1725   /*
1726    * Seagate Hornet NS20 Travan
1727    *
1728    *     NOTES
1729    *     -----
1730    *  o This is an unsupported drive.
1731    *
1732    * [1] The NS20 Travan uses 0 or the "default" density code.
1733    * [2] The NS20 Travan has only one speed (if the driver ever cares).
1734    * [3] max_rretries and max_wretries are driver anachronisms.
1735    */
1736   {                           /* Structure member Description                 */
1737                               /* ---------------- -----------                 */
1738     "Seagate Hornet NS20 Travan",
1739                               /* .name            Display ("pretty") name     */
1740     17,                       /* .length          Length of next item...      */
1741     "Seagate STT20000N",      /* .vid             Vendor-product ID string    */
1742     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
1743     512,                      /* .bsize           Block size (0 = variable)   */
1744                               /* .options         Drive option flags:         */
1745     ST_QIC              |     /*    00002           QIC tape device           */
1746     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1747     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1748     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
1749                               /*    -----                                     */
1750                               /*    0840A                                     */
1751     400,                      /* .max_rretries    [Note 3]                    */
1752     400,                      /* .max_wretries    [Note 3]                    */
1753     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
1754     MT_DENSITY1,              /* .default_density (.densities[x])             */
1755     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1756   },
1757 
1758   /*
1759    * Seagate DAT 72
1760    *
1761    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
1762    *  [2] Only one speed.
1763    */
1764 
1765   {                           /* Structure member Description                 */
1766                               /* ---------------- -----------                 */
1767     "Seagate DAT 72",         /* .name            Display ("pretty") name     */
1768     23,                       /* .length          Length of next item...      */
1769     "SEAGATE DAT    DAT72-00",/* .vid             Vendor-product ID string    */
1770     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1771     0,                        /* .bsize           Block size (0 = variable)   */
1772                               /* .options         Drive option flags:         */
1773     ST_VARIABLE         |     /*    00001           variable length records   */
1774     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1775     ST_BSR              |     /*    00010           Supports backspace record */
1776     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
1777     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1778     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1779     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1780                               /*    -----                                     */
1781                               /*    18619                                     */
1782     -1,                       /* .max_rretries    Not used any more.          */
1783     -1,                       /* .max_wretries    Not Used any more.          */
1784     {0x47, 0x47, 0x47, 0x47}, /* .densities       Density codes [Note 1]      */
1785     MT_DENSITY4,              /* .default_density (.densities[x])             */
1786     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1787     0,                        /* .non_motion_timeout                          */
1788     MINUTES(15),              /* .io_timeout                                  */
1789     MINUTES(2),               /* .rewind_timeout                              */
1790     MINUTES(15),              /* .space_timeout                               */
1791     0,                        /* .load_timeout                                */
1792     0,                        /* .unload_timeout                              */
1793     MINUTES(240)              /* .erase_timeout                               */
1794   },
1795 
1796   /*
1797    * Certance Ultrium LTO 3
1798    * [1] This drive supports 3 densites at this time.
1799    *     ST_MODE_SEL_COMP controls compression.
1800    * [2] max_rretries and max_wretries are not used but kept for
1801    *     backward compatibility.
1802    */
1803   {                           /* Structure member Description                 */
1804                               /* ---------------- -----------                 */
1805     "Certance Ultrium 3",     /* .name            Display ("pretty") name     */
1806     17,                       /* .length          Length of next item...      */
1807     "CERTANCEULTRIUM 3",      /* .vid             handles SCSI or FC          */
1808     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1809     0,                        /* .bsize           Block size (0 = variable)   */
1810                               /* .options         Drive option flags:         */
1811     ST_VARIABLE         |     /*    00001           Supports variable length  */
1812     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1813     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1814     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1815     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1816     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1817     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1818                               /*    -----                                     */
1819                               /*    18619                                     */
1820     -1,                       /* .max_rretries    [Note 2]                    */
1821     -1,                       /* .max_wretries    [Note 2]                    */
1822     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
1823     MT_DENSITY4,              /* .default_density (.densities[x])             */
1824     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
1825     0,                        /* .non_motion_timeout                          */
1826     MINUTES(60),              /* .io_timeout                                  */
1827     MINUTES(35),              /* .rewind_timeout                              */
1828     MINUTES(60),              /* .space_timeout                               */
1829     MINUTES(35),              /* .load_timeout                                */
1830     MINUTES(35),              /* .unload_timeout                              */
1831     MINUTES(180)              /* .erase_timeout                               */
1832   },
1833 
1834   /*
1835    * Certance Ultrium LTO 2
1836    * [1] This drive supports two densites at this time.
1837    *     0x40 for Ultrium 1 and 0x42 for Ultrium 2.
1838    *     ST_MODE_SEL_COMP controls compression.
1839    * [2] max_rretries and max_wretries are not used but kept for
1840    *     backward compatibility.
1841    */
1842   {                           /* Structure member Description                 */
1843                               /* ---------------- -----------                 */
1844     "Certance Ultrium 2", /* .name            Display ("pretty") name     */
1845     17,                       /* .length          Length of next item...      */
1846     "CERTANCEULTRIUM 2",      /* .vid             handles SCSI or FC          */
1847     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1848     0,                        /* .bsize           Block size (0 = variable)   */
1849                               /* .options         Drive option flags:         */
1850     ST_VARIABLE         |     /*    00001           Supports variable length  */
1851     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1852     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1853     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1854     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1855     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1856     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1857                               /*    -----                                     */
1858                               /*    18619                                     */
1859     -1,                       /* .max_rretries    [Note 2]                    */
1860     -1,                       /* .max_wretries    [Note 2]                    */
1861     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
1862     MT_DENSITY4,              /* .default_density (.densities[x])             */
1863     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
1864     0,                        /* .non_motion_timeout                          */
1865     MINUTES(60),              /* .io_timeout                                  */
1866     MINUTES(35),              /* .rewind_timeout                              */
1867     MINUTES(60),              /* .space_timeout                               */
1868     MINUTES(35),              /* .load_timeout                                */
1869     MINUTES(35),              /* .unload_timeout                              */
1870     MINUTES(180)              /* .erase_timeout                               */
1871   },
1872 
1873   /*
1874    * Seagate Ultrium LTO
1875    *
1876    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
1877    *  [2] Only one speed.
1878    */
1879 
1880   {                           /* Structure member Description                 */
1881                               /* ---------------- -----------                 */
1882     "Seagate Ultrium LTO",    /* .name            Display ("pretty") name     */
1883     23,                       /* .length          Length of next item...      */
1884     "SEAGATE ULTRIUM06242-XX",/* .vid             Vendor-product ID string    */
1885     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1886     0,                        /* .bsize           Block size (0 = variable)   */
1887                               /* .options         Drive option flags:         */
1888     ST_VARIABLE         |     /*    00001           variable length records   */
1889     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1890     ST_BSR              |     /*    00010           Supports backspace record */
1891     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
1892     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1893     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1894     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1895                               /*    -----                                     */
1896                               /*    18619                                     */
1897     -1,                       /* .max_rretries    Not used any more.          */
1898     -1,                       /* .max_wretries    Not Used any more.          */
1899     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
1900     MT_DENSITY4,              /* .default_density (.densities[x])             */
1901     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1902     0,                        /* .non_motion_timeout                          */
1903     MINUTES(10),              /* .io_timeout                                  */
1904     MINUTES(15),              /* .rewind_timeout                              */
1905     MINUTES(120),             /* .space_timeout                               */
1906     MINUTES(5),               /* .load_timeout                                */
1907     MINUTES(2),               /* .unload_timeout                              */
1908     MINUTES(120)              /* .erase_timeout                               */
1909   },
1910 
1911   /*
1912    * SONY 4mm DAT
1913    *
1914    *     NOTES
1915    *     -----
1916    *  o This is an unsupported drive.
1917    *
1918    *  o This entry uses a shortened Vendor-product ID string for the
1919    *    INQUIRY match.
1920    *
1921    * [1] The SDT-5000 uses 0 or the "default" density code.
1922    * [2] The SDT-5000 has only one speed (if the driver ever cares).
1923    * [3] max_rretries and max_wretries are driver anachronisms.
1924    */
1925   {                           /* Structure member Description                 */
1926                               /* ---------------- -----------                 */
1927     "SONY 4mm DAT",           /* .name            Display ("pretty") name     */
1928     12,                       /* .length          Length of next item...      */
1929     "SONY    SDT-****",       /* .vid             Vendor-product ID string    */
1930     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
1931     0,                        /* .bsize           Block size (0 = variable)   */
1932                               /* .options         Drive option flags:         */
1933     ST_VARIABLE   |           /*    00001           Supports variable length  */
1934     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
1935     ST_BSR        |           /*    00010           Supports SPACE block rev  */
1936     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
1937     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1938                               /*    -----                                     */
1939                               /*    00439                                     */
1940     400,                      /* .max_rretries    [Note 3]                    */
1941     400,                      /* .max_wretries    [Note 3]                    */
1942     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
1943     MT_DENSITY2,              /* .default_density (.densities[x])             */
1944     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1945   },
1946 
1947   /*
1948    * Sun StorageTek T10000A tape drive.
1949    *
1950    *     NOTES
1951    *     -----
1952    *  o  The T10000A has special needs - support for SCSI LOCATE and
1953    *     READ POSITION commands - so we must be sure to place this
1954    *     entry before the one for ST_TYPE_STC3490 (generic STK
1955    *     half-inch cartridge drives).
1956    * [1] Compression on the T10000A is controlled
1957    *     via the Device Configuration mode page.
1958    * [2] The T10000A has only one writable density, 0x4A.
1959    * [3] The T10000A has only one speed (if the driver ever cares).
1960    * [4] max_rretries and max_wretries are driver anachronisms.
1961    */
1962   {                           /* Structure member    Description              */
1963                               /* ----------------    -----------              */
1964     "Sun StorageTek T10000A", /* .name               Display ("pretty") name  */
1965     15,                       /* .length             Length of next item...   */
1966     "STK     T10000A",        /* .vid                Vendor-product ID string */
1967     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
1968     0,                        /* .bsize              Block size (0 = variable)*/
1969                               /* .options            Drive option flags:      */
1970     ST_VARIABLE         |     /*  0000001            Supports variable length */
1971     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
1972     ST_BSR              |     /*  0000010            Supports SPACE block rev */
1973     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag*/
1974     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
1975     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
1976     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
1977     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
1978     ST_WORMABLE,              /*  1000000            Supports WORM            */
1979                               /*  -------                                     */
1980                               /*  1018659                                     */
1981     -1,                       /* .max_rretries       [Note 4]                 */
1982     -1,                       /* .max_wretries       [Note 4]                 */
1983     {0x4A,0x4A,0x4A,0x4A},    /* .densities          Density codes [Note 2]   */
1984     MT_DENSITY4,              /* .default_density    (.densities[x])          */
1985     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
1986     0,                        /* .non_motion_timeout Nothing Special          */
1987     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
1988     0,                        /* .rewind_timeout     Nothing Special          */
1989     0,                        /* .space_timeout      Nothing Special          */
1990     0,                        /* .load_timeout       Nothing Special          */
1991     0,                        /* .unload_timeout     Nothing Special          */
1992     MINUTES(180)              /* .erase_timeout      Three Hours              */
1993   },
1994 
1995   /*
1996    * STK 9840C cartridge drive.
1997    *
1998    *     NOTES
1999    *     -----
2000    *  o  The 9840C has special needs - support for SCSI LOCATE and
2001    *     READ POSITION commands - so we must be sure to place this
2002    *     entry before the one for ST_TYPE_STC3490 (generic STK
2003    *     half-inch cartridge drives).
2004    * [1] Compression on the 9840C is controlled
2005    *     via the Device Configuration mode page.
2006    * [2] The 9840C has only one writable density, 0x45. I can read tapes writen
2007    *     with 9840 and 9840B writen with there density code 0x42.
2008    * [3] The 9840C has only one speed (if the driver ever cares).
2009    * [4] max_rretries and max_wretries are driver anachronisms.
2010    */
2011   {                           /* Structure member    Description              */
2012                               /* ----------------    -----------              */
2013     "StorageTek 9840C",       /* .name               Display ("pretty") name  */
2014     14,                       /* .length             Length of next item...   */
2015     "STK     T9840C",         /* .vid                Vendor-product ID string */
2016     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2017     0,                        /* .bsize              Block size (0 = variable)*/
2018                               /* .options            Drive option flags:      */
2019     ST_VARIABLE         |     /*  0000001            Supports variable length */
2020     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2021     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2022     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2023     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2024     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2025     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2026     ST_WORMABLE,              /*  1000000            Supports WORM            */
2027                               /*  -------                                     */
2028                               /*  1018619                                     */
2029     -1,                       /* .max_rretries       [Note 4]                 */
2030     -1,                       /* .max_wretries       [Note 4]                 */
2031     {0x45,0x45,0x45,0x45},    /* .densities          Density codes [Note 2]   */
2032     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2033     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
2034     0,                        /* .non_motion_timeout Nothing Special          */
2035     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
2036     0,                        /* .rewind_timeout     Nothing Special          */
2037     0,                        /* .space_timeout      Nothing Special          */
2038     0,                        /* .load_timeout       Nothing Special          */
2039     0,                        /* .unload_timeout     Nothing Special          */
2040     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2041   },
2042 
2043   /*
2044    * STK 9840B cartridge drive.
2045    *
2046    *     NOTES
2047    *     -----
2048    *  o  The 9840B has special needs - support for SCSI LOCATE and
2049    *     READ POSITION commands - so we must be sure to place this
2050    *     entry before the one for ST_TYPE_STC3490 (generic STK
2051    *     half-inch cartridge drives).
2052    * [1] Compression on the 9840B is controlled
2053    *     via the Device Configuration mode page.
2054    * [2] The 9840B has only one density, 0x42 (or 0 for "default").
2055    * [3] The 9840B has only one speed (if the driver ever cares).
2056    * [4] max_rretries and max_wretries are driver anachronisms.
2057    */
2058   {                           /* Structure member    Description              */
2059                               /* ----------------    -----------              */
2060     "StorageTek 9840B",       /* .name               Display ("pretty") name  */
2061     14,                       /* .length             Length of next item...   */
2062     "STK     T9840B",         /* .vid                Vendor-product ID string */
2063     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2064     0,                        /* .bsize              Block size (0 = variable)*/
2065                               /* .options            Drive option flags:      */
2066     ST_VARIABLE         |     /*  0000001            Supports variable length */
2067     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2068     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2069     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2070     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2071     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2072     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2073     ST_WORMABLE,              /*  1000000            Supports WORM            */
2074                               /*  -------                                     */
2075                               /*  1018619                                     */
2076     -1,                       /* .max_rretries       [Note 4]                 */
2077     -1,                       /* .max_wretries       [Note 4]                 */
2078     {0x42,0x42,0x42,0x42},    /* .densities          Density codes [Note 2]   */
2079     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2080     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
2081     0,                        /* .non_motion_timeout Nothing Special          */
2082     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
2083     0,                        /* .rewind_timeout     Nothing Special          */
2084     0,                        /* .space_timeout      Nothing Special          */
2085     0,                        /* .load_timeout       Nothing Special          */
2086     0,                        /* .unload_timeout     Nothing Special          */
2087     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2088   },
2089 
2090   /*
2091    * STK 9940B cartridge drive.
2092    *
2093    *     NOTES
2094    *     -----
2095    * [1] Compression on the 9940 is controlled
2096    *     via the Device Configuration mode page.
2097    * [2] The 9940 has only one density, 0x44.
2098    * [3] The 9940 has only one speed (if the driver ever cares).
2099    * [4] max_rretries and max_wretries are driver not used.
2100    */
2101   {                           /* Structure member    Description               */
2102                               /* ----------------    -----------               */
2103     "StorageTek 9940B",       /* .name               Display ("pretty") name   */
2104     14,                       /* .length             Length of next item...    */
2105     "STK     T9940B",         /* .vid                Vendor-product ID string  */
2106     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h) */
2107     0,                        /* .bsize              Block size (0 = variable) */
2108                               /* .options            Drive option flags:       */
2109     ST_VARIABLE         |     /*  0000001            Supports variable length  */
2110     ST_BSF              |     /*  0000008            Supports SPACE block fwd  */
2111     ST_BSR              |     /*  0000010            Supports SPACE block rev  */
2112     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag */
2113     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data    */
2114     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded    */
2115     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB    */
2116     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                  */
2117     ST_WORMABLE,              /*  1000000            Supports WORM             */
2118                               /*  -------                                      */
2119                               /*  1018659                                      */
2120     -1,                       /* .max_rretries       [Note 4]                  */
2121     -1,                       /* .max_wretries       [Note 4]                  */
2122     {0x44,0x44,0x44,0x44},    /* .densities          Density codes [Note 2]    */
2123     MT_DENSITY1,              /* .default_density    (.densities[x])           */
2124     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]      */
2125     0,                        /* .non_motion_timeout Nothing Special           */
2126     MINUTES(5),               /* .io_timeout         Five minutes              */
2127     0,                        /* .rewind_timeout     Nothing Special           */
2128     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840  */
2129     0,                        /* .load_timeout       Nothing Special           */
2130     0,                        /* .unload_timeout     Nothing Special           */
2131     MINUTES(210)              /* .erase_timeout      Three and a half hours    */
2132   },
2133 
2134   /*
2135    * STK 9940 cartridge drive.
2136    *
2137    *     NOTES
2138    *     -----
2139    * [1] Compression on the 9940 is controlled
2140    *     via the Device Configuration mode page.
2141    * [2] The 9940 has only one density, 0x43.
2142    * [3] The 9940 has only one speed (if the driver ever cares).
2143    * [4] max_rretries and max_wretries are driver not used.
2144    */
2145   {                           /* Structure member    Description              */
2146                               /* ----------------    -----------              */
2147     "StorageTek 9940",        /* .name               Display ("pretty") name  */
2148     14,                       /* .length             Length of next item...   */
2149     "STK     T9940A",         /* .vid                Vendor-product ID string */
2150     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2151     0,                        /* .bsize              Block size (0 = variable)*/
2152                               /* .options            Drive option flags:      */
2153     ST_VARIABLE         |     /*  0000001            Supports variable length */
2154     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2155     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2156     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2157     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2158     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2159     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2160     ST_WORMABLE,              /*  1000000            Supports WORM            */
2161                               /*  -------                                     */
2162                               /*  1018619                                     */
2163     -1,                       /* .max_rretries       [Note 4]                 */
2164     -1,                       /* .max_wretries       [Note 4]                 */
2165     {0x43,0x43,0x43,0x43},    /* .densities          Density codes [Note 2]   */
2166     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2167     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
2168     0,                        /* .non_motion_timeout Nothing Special          */
2169     MINUTES(5),               /* .io_timeout         Five Minutes             */
2170     0,                        /* .rewind_timeout     Nothing Special          */
2171     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840 */
2172     0,                        /* .load_timeout       Nothing Special          */
2173     0,                        /* .unload_timeout     Nothing Special          */
2174     MINUTES(210)              /* .erase_timeout      Three and a half hours   */
2175   },
2176 
2177   /*
2178    * STK 9840 cartridge drive (Sun codename: Ironsides)
2179    *
2180    *     NOTES
2181    *     -----
2182    *  o  The 9840 has special needs - support for SCSI LOCATE and
2183    *     READ POSITION commands - so we must be sure to place this
2184    *     entry before the one for ST_TYPE_STC3490 (generic STK
2185    *     half-inch cartridge drives).
2186    * [1] Compression on the 9840 is controlled
2187    *     via the Device Configuration mode page.
2188    * [2] The 9840 has only one density, 0x42 (or 0 for "default").
2189    * [3] The 9840 has only one speed (if the driver ever cares).
2190    * [4] max_rretries and max_wretries are driver anachronisms.
2191    * [5] ST_LONG_ERASE is not needed or used when .erase_timeout
2192    *     is non-zero.
2193    */
2194   {                           /* Structure member    Description              */
2195                               /* ----------------    -----------              */
2196     "StorageTek 9840",        /* .name               Display ("pretty") name  */
2197     12,                       /* .length             Length of next item...   */
2198     "STK     9840",           /* .vid                Vendor-product ID string */
2199     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2200     0,                        /* .bsize              Block size (0 = variable)*/
2201                               /* .options            Drive option flags:      */
2202     ST_VARIABLE         |     /*  0000001            Supports variable length */
2203     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2204     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2205     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2206     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2207     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2208     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2209     ST_WORMABLE,              /*  1000000            Supports WORM            */
2210                               /*  -------                                     */
2211                               /*  1018619                                     */
2212     10,                       /* .max_rretries       [Note 4]                 */
2213     10,                       /* .max_wretries       [Note 4]                 */
2214     {0x00, 0x00, 0x00, 0x00}, /* .densities          Density codes [Note 2]   */
2215     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2216     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
2217     0,                        /* .non_motion_timeout Nothing Special          */
2218     MINUTES(5),               /* .io_timeout         Five Minutes             */
2219     0,                        /* .rewind_timeout     Nothing Special          */
2220     0,                        /* .space_timeout      Nothing Special          */
2221     0,                        /* .load_timeout       Nothing Special          */
2222     0,                        /* .unload_timeout     Nothing Special          */
2223     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2224   },
2225 
2226   /*
2227    * Sony SAIT
2228    *
2229    * Only looking at part of the product ID so it will match SDZ-100 and
2230    * SDZ-130. One is SCSI other is Fibre but same configuration otherwise.
2231    *
2232    */
2233   {                           /* Structure member Description                 */
2234                               /* ---------------- -----------                 */
2235     "Sony Super AIT",         /* .name            Display ("pretty") name     */
2236     13,                       /* .length          Length of next item...      */
2237     "SONY    SDZ-1*",         /* .vid             Vendor-product ID string    */
2238     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2239     0,
2240     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2241     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2242     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2243     ST_AUTODEN_OVERRIDE |     /*  0000040           Suports only one density  */
2244     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
2245     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2246     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2247     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
2248     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
2249                               /*  -------                                     */
2250                               /*  1018659                                     */
2251     -1,                       /* .max_rretries    Not used                    */
2252     -1,                       /* .max_wretries    Not used                    */
2253     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
2254     MT_DENSITY4,              /* .default_density (.densities[x])             */
2255     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2256     0,                        /* .non_motion_timeout Nothing special          */
2257     0,                        /* .io_timeout Four    Nothing Special          */
2258     0,                        /* .rewind_timeout     Nothing Special          */
2259     0,                        /* .space_timeout      Nothing Special          */
2260     0,                        /* .load_timeout       Nothing Special          */
2261     0,                        /* .unload_timeout     Nothing Special          */
2262     0,                        /* .erase_timeout      Six hours                */
2263   },
2264 
2265   /*
2266    * Sony SDX-420
2267    * This drive is listed before the more generic AIT drives becouse it runs
2268    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
2269    * leads st to beleive its a variable block capable but it will fail any
2270    * i/o that doesn't have the fix bit set in the CDB.
2271    */
2272   {                           /* Structure member Description                 */
2273                               /* ---------------- -----------                 */
2274     "Sony AIT II",            /* .name            Display ("pretty") name     */
2275     15,                       /* .length          Length of next item...      */
2276     "SONY    SDX-420*",       /* .vid             Vendor-product ID string    */
2277     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2278     512,
2279     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2280     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2281     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
2282     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
2283     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2284     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2285     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
2286                               /*    -----                                     */
2287                               /*    18658                                     */
2288     -1,                       /* .max_rretries    Not used                    */
2289     -1,                       /* .max_wretries    Not used                    */
2290     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2291     MT_DENSITY4,              /* .default_density (.densities[x])             */
2292     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2293     0,                        /* .non_motion_timeout Nothing special          */
2294     0,                        /* .io_timeout Four    Nothing Special          */
2295     0,                        /* .rewind_timeout     Nothing Special          */
2296     0,                        /* .space_timeout      Nothing Special          */
2297     0,                        /* .load_timeout       Nothing Special          */
2298     0,                        /* .unload_timeout     Nothing Special          */
2299     0,                        /* .erase_timeout      Six hours                */
2300   },
2301 
2302   /*
2303    * Sony SDX-520
2304    * This drive is listed before the more generic AIT drives becouse it runs
2305    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
2306    * leads st to beleive its a variable block capable but it will fail any
2307    * i/o that doesn't have the fix bit set in the CDB.
2308    */
2309   {                           /* Structure member Description                 */
2310                               /* ---------------- -----------                 */
2311     "Sony AIT II",            /* .name            Display ("pretty") name     */
2312     15,                       /* .length          Length of next item...      */
2313     "SONY    SDX-520*",       /* .vid             Vendor-product ID string    */
2314     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2315     512,
2316     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2317     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2318     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
2319     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
2320     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2321     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2322     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
2323                               /*    -----                                     */
2324                               /*    18658                                     */
2325     -1,                       /* .max_rretries    Not used                    */
2326     -1,                       /* .max_wretries    Not used                    */
2327     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2328     MT_DENSITY4,              /* .default_density (.densities[x])             */
2329     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2330     0,                        /* .non_motion_timeout Nothing special          */
2331     0,                        /* .io_timeout Four    Nothing Special          */
2332     0,                        /* .rewind_timeout     Nothing Special          */
2333     0,                        /* .space_timeout      Nothing Special          */
2334     0,                        /* .load_timeout       Nothing Special          */
2335     0,                        /* .unload_timeout     Nothing Special          */
2336     0,                        /* .erase_timeout      Six hours                */
2337   },
2338 
2339   /* Sony generic AIT
2340    *
2341    *
2342    */
2343   {                           /* Structure member Description                 */
2344                               /* ---------------- -----------                 */
2345     "Sony AIT",               /* .name            Display ("pretty") name     */
2346     12,                       /* .length          Length of next item...      */
2347     "SONY    SDX-*",          /* .vid             Vendor-product ID string    */
2348     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2349     0,
2350     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2351     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2352     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2353     ST_AUTODEN_OVERRIDE |     /*  0000040           One density code          */
2354     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
2355     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2356     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2357     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
2358     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
2359                               /*  -------                                     */
2360                               /*  1018659                                     */
2361     -1,                       /* .max_rretries    Not used                    */
2362     -1,                       /* .max_wretries    Not used                    */
2363     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2364     MT_DENSITY4,              /* .default_density (.densities[x])             */
2365     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2366     0,                        /* .non_motion_timeout Nothing special          */
2367     0,                        /* .io_timeout Four    Nothing Special          */
2368     0,                        /* .rewind_timeout     Nothing Special          */
2369     0,                        /* .space_timeout      Nothing Special          */
2370     0,                        /* .load_timeout       Nothing Special          */
2371     0,                        /* .unload_timeout     Nothing Special          */
2372     0,                        /* .erase_timeout      Six hours                */
2373   },
2374 
2375   /*
2376    * Sun DLT7000
2377    *
2378    *     NOTES
2379    *     -----
2380    * [1] The DLT7000 implements many tape formats, but the st driver supports
2381    *     only the four highest densities.
2382    * [2] The DLT7000 has only one speed (if the driver ever cares).
2383    * [3] max_rretries and max_wretries are driver anachronisms.
2384    * [4] Data is buffered in the driver and pre-acked to the application. This
2385    *     is only supported in 2.5.1.
2386    */
2387   {                           /* Structure member Description                 */
2388                               /* ---------------- -----------                 */
2389     "Sun DLT7000",            /* .name            Display ("pretty") name     */
2390     15,                       /* .length          Length of next item...      */
2391     "SUN     DLT7000",        /* .vid             Vendor-product ID string    */
2392     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2393     0,                        /* .bsize           Block size (0 = variable)   */
2394                               /* .options         Drive option flags:         */
2395     ST_VARIABLE         |     /*    00001           Supports variable length  */
2396     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2397     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2398     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2399     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2400     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
2401     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
2402     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2403     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
2404                               /* --------                                     */
2405                               /* 4000D619                                     */
2406     400,                      /* .max_rretries    [Note 3]                    */
2407     400,                      /* .max_wretries    [Note 3]                    */
2408     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
2409     MT_DENSITY3,              /* .default_density (.densities[x])             */
2410     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2411     0,                        /* .non_motion_timeout Nothing special          */
2412     0,                        /* .io_timeout Four    Nothing Special          */
2413     0,                        /* .rewind_timeout     Nothing Special          */
2414     0,                        /* .space_timeout      Nothing Special          */
2415     0,                        /* .load_timeout       Nothing Special          */
2416     0,                        /* .unload_timeout     Nothing Special          */
2417     MINUTES(360)              /* .erase_timeout      Six hours                */
2418   },
2419 
2420   /*
2421    * Sun DLT4000
2422    *
2423    *     NOTES
2424    *     -----
2425    * [1] The DLT4000 implements many tape formats, but the st driver supports
2426    *     only the four highest densities.
2427    * [2] The DLT4000 has only one speed (if the driver ever cares).
2428    * [3] max_rretries and max_wretries are driver anachronisms.
2429    * [4] Data is buffered in the driver and pre-acked to the application. This
2430    *     is only supported in 2.5.1.
2431    */
2432   {                           /* Structure member Description                 */
2433                               /* ---------------- -----------                 */
2434     "DLT4000",                /* .name            Display ("pretty") name     */
2435     15,                       /* .length          Length of next item...      */
2436     "SUN     DLT4000",        /* .vid             Vendor-product ID string    */
2437     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2438     0,                        /* .bsize           Block size (0 = variable)   */
2439                               /* .options         Drive option flags:         */
2440     ST_VARIABLE        |      /*    00001           Supports variable length  */
2441     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2442     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2443     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2444     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2445     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2446     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
2447     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
2448     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
2449                               /* --------                                     */
2450                               /* 4000D619                                     */
2451     400,                      /* .max_rretries    [Note 3]                    */
2452     400,                      /* .max_wretries    [Note 3]                    */
2453     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
2454     MT_DENSITY3,              /* .default_density (.densities[x])             */
2455     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2456     0,                        /* .non_motion_timeout Nothing special          */
2457     0,                        /* .io_timeout Four    Nothing Special          */
2458     0,                        /* .rewind_timeout     Nothing Special          */
2459     0,                        /* .space_timeout      Nothing Special          */
2460     0,                        /* .load_timeout       Nothing Special          */
2461     0,                        /* .unload_timeout     Nothing Special          */
2462     MINUTES(360)              /* .erase_timeout      Six hours                */
2463   },
2464 
2465   /*
2466    * Sun DLT4700
2467    *
2468    *     NOTES
2469    *     -----
2470    * [1] Compression on the DLT4700 is controlled via the Device Configuration
2471    *     mode page or the Data Compression page (either one).
2472    * [2] The DLT4700 implements many tape formats, but the st driver supports
2473    *     only the four highest densities.
2474    * [3] The DLT4700 has only one speed (if the driver ever cares).
2475    * [4] max_rretries and max_wretries are driver anachronisms.
2476    * [5] Data is buffered in the driver and pre-acked to the application. This
2477    *     is only supported in 2.5.1.
2478    */
2479   {                           /* Structure member Description                 */
2480                               /* ---------------- -----------                 */
2481     "DLT4700 Library",        /* .name            Display ("pretty") name     */
2482     15,                       /* .length          Length of next item...      */
2483     "SUN     DLT4700",        /* .vid             Vendor-product ID string    */
2484     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2485     0,                        /* .bsize           Block size (0 = variable)   */
2486                               /* .options         Drive option flags:         */
2487     ST_VARIABLE        |      /*    00001           Supports variable length  */
2488     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2489     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2490     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2491     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2492     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2493     ST_BUFFERED_WRITES |      /*    04000           [Note 5]                  */
2494     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2495                               /*    -----                                     */
2496                               /*    0D619                                     */
2497     400,                      /* .max_rretries    [Note 4]                    */
2498     400,                      /* .max_wretries    [Note 4]                    */
2499     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 2]      */
2500     MT_DENSITY3,              /* .default_density (.densities[x])             */
2501     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2502     0,                        /* .non_motion_timeout Nothing special          */
2503     0,                        /* .io_timeout Four    Nothing Special          */
2504     0,                        /* .rewind_timeout     Nothing Special          */
2505     0,                        /* .space_timeout      Nothing Special          */
2506     0,                        /* .load_timeout       Nothing Special          */
2507     0,                        /* .unload_timeout     Nothing Special          */
2508     MINUTES(360)              /* .erase_timeout      Six hours                */
2509   },
2510 
2511   /*
2512    * Tandberg SLR5 4/8G (standard firmware)
2513    *
2514    *     NOTES
2515    *     -----
2516    * [1] The density code entry requires four values, even if there are less
2517    *     than four values for the drive.
2518    * [2] The Tandberg SLR5 4/8G has only one speed (if the driver ever cares).
2519    * [3] max_rretries and max_wretries are driver anachronisms.
2520    */
2521   {                           /* Structure member Description                 */
2522                               /* ---------------- -----------                 */
2523     "Tandberg 4/8 Gig QIC",   /* .name            Display ("pretty") name     */
2524     19,                       /* .length          Length of next item...      */
2525     "TANDBERG SLR5 4/8GB",    /* .vid             Vendor-product ID string    */
2526     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
2527     0,                        /* .bsize           Block size (0 = variable)   */
2528                               /* .options         Drive option flags:         */
2529     ST_VARIABLE        |      /*    00001           Supports variable length  */
2530     ST_QIC             |      /*    00002           QIC tape device           */
2531     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2532     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2533     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2534     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2535     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2536     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2537     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2538                               /*    -----                                     */
2539                               /*    0963B                                     */
2540     400,                      /* .max_rretries    [Note 3]                    */
2541     400,                      /* .max_wretries    [Note 3]                    */
2542     {0x22, 0x22, 0x26, 0x26}, /* .densities       Density codes [Note 1]      */
2543     MT_DENSITY4,              /* .default_density (.densities[x])             */
2544     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2545   },
2546 
2547   /*
2548    * Tandberg SLR5 (SMI firmware).
2549    *
2550    *     NOTES
2551    *     -----
2552    *  o The inquiry string for this drive is actually padded with blanks, but
2553    *    we only check the first 13 characters so that this will act as a default
2554    *    to cover other revisions of firmware on SLR5s which may show up.
2555    *
2556    * [1] The density code entry requires four values, even if there are less
2557    *     than four values for the drive.
2558    * [2] The Tandberg SLR5 has only one speed (if the driver ever cares).
2559    * [3] max_rretries and max_wretries are driver anachronisms.
2560    */
2561   {                           /* Structure member Description                 */
2562                               /* ---------------- -----------                 */
2563     "Tandberg 8 Gig QIC",     /* .name            Display ("pretty") name     */
2564     13,                       /* .length          Length of next item...      */
2565     "TANDBERG SLR5",          /* .vid             Vendor-product ID string    */
2566     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
2567     0,                        /* .bsize           Block size (0 = variable)   */
2568                               /* .options         Drive option flags:         */
2569     ST_VARIABLE        |      /*    00001           Supports variable length  */
2570     ST_QIC             |      /*    00002           QIC tape device           */
2571     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2572     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2573     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2574     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2575     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2576     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2577     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2578                               /*    -----                                     */
2579                               /*    0963B                                     */
2580     400,                      /* .max_rretries    [Note 3]                    */
2581     400,                      /* .max_wretries    [Note 3]                    */
2582     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
2583     MT_DENSITY4,              /* .default_density (.densities[x])             */
2584     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2585   },
2586 
2587   /*
2588    * Tandberg 4100 QIC
2589    *
2590    *     NOTES
2591    *     -----
2592    *  o This is an unsupported drive.
2593    *
2594    * [1] The Tandberg 4100 uses 0 or the "default" density code.
2595    * [2] The Tandberg 4100 has only one speed (if the driver ever cares).
2596    * [3] max_rretries and max_wretries are driver anachronisms.
2597    */
2598   {                           /* Structure member Description                 */
2599                               /* ---------------- -----------                 */
2600     "Tandberg 4100 QIC",      /* .name            Display ("pretty") name     */
2601     13,                       /* .length          Length of next item...      */
2602     "TANDBERG 4100",          /* .vid             Vendor-product ID string    */
2603     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2604     512,                      /* .bsize           Block size (0 = variable)   */
2605                               /* .options         Drive option flags:         */
2606     ST_QIC        |           /*    00002           QIC tape device           */
2607     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
2608     ST_BSR        |           /*    00010           Supports SPACE block rev  */
2609     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
2610     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
2611     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2612                               /*    -----                                     */
2613                               /*    0063A                                     */
2614     400,                      /* .max_rretries    [Note 3]                    */
2615     400,                      /* .max_wretries    [Note 3]                    */
2616     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2617     MT_DENSITY2,              /* .default_density (.densities[x])             */
2618     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2619   },
2620 
2621   /*
2622    * Tandberg 4200 QIC
2623    *
2624    *     NOTES
2625    *     -----
2626    *  o This is an unsupported drive.
2627    *
2628    * [1] The Tandberg 4200 uses 0 or the "default" density code.
2629    * [2] The Tandberg 4200 has only one speed (if the driver ever cares).
2630    * [3] max_rretries and max_wretries are driver anachronisms.
2631    */
2632   {                           /* Structure member Description                 */
2633                               /* ---------------- -----------                 */
2634     "Tandberg 4200 QIC",      /* .name            Display ("pretty") name     */
2635     13,                       /* .length          Length of next item...      */
2636     "TANDBERG 4200",          /* .vid             Vendor-product ID string    */
2637     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2638     512,                      /* .bsize           Block size (0 = variable)   */
2639                               /* .options         Drive option flags:         */
2640     ST_QIC        |           /*    00002           QIC tape device           */
2641     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
2642     ST_BSR        |           /*    00010           Supports SPACE block rev  */
2643     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
2644     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
2645     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2646                               /*    -----                                     */
2647                               /*    0063A                                     */
2648     400,                      /* .max_rretries    [Note 3]                    */
2649     400,                      /* .max_wretries    [Note 3]                    */
2650     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2651     MT_DENSITY2,              /* .default_density (.densities[x])             */
2652     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2653   },
2654 
2655   /*
2656    * Tandberg QIC 2.5 Gig Tape Drive
2657    *
2658    *     NOTES
2659    *     -----
2660    * [1] The TDC 4200 uses 0 or the "default" density code.
2661    * [2] The TDC 4200 has only one speed (if the driver ever cares).
2662    * [3] max_rretries and max_wretries are driver anachronisms.
2663    * [4] Data is buffered in the driver and pre-acked to the application. This
2664    *     is only supported in 2.5.1.
2665    */
2666   {                           /* Structure member Description                 */
2667                               /* ---------------- -----------                 */
2668     "Tandberg QIC 2.5 Gig Tape Drive",
2669                               /* .name            Display ("pretty") name     */
2670     16,                       /* .length          Length of next item...      */
2671     "TANDBERG TDC 420*",      /* .vid             Vendor-product ID string    */
2672     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2673     0,                        /* .bsize           Block size (0 = variable)   */
2674                               /* .options         Drive option flags:         */
2675     ST_VARIABLE          |    /*    00001           Supports variable length  */
2676     ST_QIC               |    /*    00002           QIC tape device           */
2677     ST_BSF               |    /*    00008           Supports SPACE block fwd  */
2678     ST_BSR               |    /*    00010           Supports SPACE block rev  */
2679     ST_LONG_ERASE        |    /*    00020           Needs extra time to erase */
2680     ST_AUTODEN_OVERRIDE  |    /*    00040           Autodensity override flag */
2681     ST_KNOWS_EOD         |    /*    00200           Recognizes end-of-data    */
2682     ST_UNLOADABLE        |    /*    00400           Driver can be unloaded    */
2683     ST_LONG_TIMEOUTS     |    /*    01000           More time for some ops    */
2684     ST_BUFFERED_WRITES   |    /*    04000           [Note 4]                  */
2685     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2686                               /*    -----                                     */
2687                               /*    0D67B                                     */
2688     400,                      /* .max_rretries    [Note 3]                    */
2689     400,                      /* .max_wretries    [Note 3]                    */
2690     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2691     MT_DENSITY1,              /* .default_density (.densities[x])             */
2692     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2693   },
2694 
2695   /*
2696    * Tandberg MLR1 QIC
2697    *
2698    *     NOTES
2699    *     -----
2700    * [1] The MLR1 uses 0 or the "default" density code.
2701    * [2] The MLR1 has only one speed (if the driver ever cares).
2702    * [3] max_rretries and max_wretries are driver anachronisms.
2703    * [4] Data is buffered in the driver and pre-acked to the application. This
2704    *     is only supported in 2.5.1.
2705    */
2706   {                           /* Structure member Description                 */
2707                               /* ---------------- -----------                 */
2708     "Tandberg MLR1 QIC",      /* .name            Display ("pretty") name     */
2709     12,                       /* .length          Length of next item...      */
2710     "TANDBERGMLR1",           /* .vid             Vendor-product ID string    */
2711     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2712     512,                      /* .bsize           Block size (0 = variable)   */
2713                               /* .options         Drive option flags:         */
2714     ST_QIC            |       /*    00002         QIC tape device             */
2715     ST_BSF            |       /*    00008         Supports SPACE block fwd    */
2716     ST_BSR            |       /*    00010         Supports SPACE block rev    */
2717     ST_LONG_ERASE     |       /*    00020         Needs extra time to erase   */
2718     ST_KNOWS_EOD      |       /*    00200         Recognizes end-of-data      */
2719     ST_UNLOADABLE     |       /*    00400         Driver can be unloaded      */
2720     ST_BUFFERED_WRITES,       /*    04000         [Note 4]                    */
2721                               /*    -----                                     */
2722                               /*    0463A                                     */
2723     400,                      /* .max_rretries    [Note 3]                    */
2724     400,                      /* .max_wretries    [Note 3]                    */
2725     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2726     MT_DENSITY1,              /* .default_density (.densities[x])             */
2727     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2728   },
2729 
2730   /*
2731    * Tandberg MLR3 QIC
2732    *
2733    *     NOTES
2734    *     -----
2735    * [1] The density code entry requires four values, even if there are less
2736    *     than four values for the drive.
2737    * [2] The MLR3 has only one speed (if the driver ever cares).
2738    * [3] max_rretries and max_wretries are driver anachronisms.
2739    */
2740   {                           /* Structure member Description                 */
2741                               /* ---------------- -----------                 */
2742     "Tandberg 50 Gig QIC",    /* .name            Display ("pretty") name     */
2743     12,                       /* .length          Length of next item...      */
2744     "TANDBERGMLR3",           /* .vid             Vendor-product ID string    */
2745     MT_ISTAND25G,             /* .type            Numeric type (cf. mtio.h)   */
2746     0,                        /* .bsize           Block size (0 = variable)   */
2747                               /* .options         Drive option flags:         */
2748     ST_VARIABLE        |      /*    00001           Supports variable length  */
2749     ST_QIC             |      /*    00002           QIC tape device           */
2750     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2751     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2752     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2753     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2754     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2755     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2756     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2757                               /*    -----                                     */
2758                               /*    0963B                                     */
2759     400,                      /* .max_rretries    [Note 3]                    */
2760     400,                      /* .max_wretries    [Note 3]                    */
2761     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
2762     MT_DENSITY3,              /* .default_density (.densities[x])             */
2763     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2764   },
2765 
2766   /*
2767    * WangDAT 3.81mm cartridge
2768    *
2769    *     NOTES
2770    *     -----
2771    *  o This is an unsupported drive.
2772    *
2773    * [1] The WangDAT 3.81mm uses 0 or the "default" density code.
2774    * [2] The WangDAT 3.81mm has only one speed (if the driver ever cares).
2775    * [3] max_rretries and max_wretries are driver anachronisms.
2776    */
2777   {                           /* Structure member Description                 */
2778                               /* ---------------- -----------                 */
2779     "Wang DAT 3.81 Helical Scan",
2780                               /* .name            Display ("pretty") name     */
2781     7,                        /* .length          Length of next item...      */
2782     "WangDAT",                /* .vid             Vendor-product ID string    */
2783     ST_TYPE_WANGDAT,          /* .type            Numeric type (cf. mtio.h)   */
2784     0,                        /* .bsize           Block size (0 = variable)   */
2785                               /* .options         Drive option flags:         */
2786     ST_VARIABLE         |     /*    00001           Supports variable length  */
2787     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2788     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2789     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2790     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2791     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2792                               /*    -----                                     */
2793                               /*    00659                                     */
2794     5000,                     /* .max_rretries    [Note 3]                    */
2795     5000,                     /* .max_wretries    [Note 3]                    */
2796     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2797     MT_DENSITY2,              /* .default_density (.densities[x])             */
2798     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2799   },
2800 
2801   /*
2802    * Wangtek QIC-150 1/4" cartridge
2803    *
2804    *     NOTES
2805    *     -----
2806    *  o This is an unsupported drive.
2807    *
2808    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
2809    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
2810    * [3] max_rretries and max_wretries are driver anachronisms.
2811    */
2812   {                           /* Structure member Description                 */
2813                               /* ---------------- -----------                 */
2814     "Wangtek QIC-150",        /* .name            Display ("pretty") name     */
2815     14,                       /* .length          Length of next item...      */
2816     "WANGTEK 5150ES",         /* .vid             Vendor-product ID string    */
2817     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
2818     512,                      /* .bsize           Block size (0 = variable)   */
2819                               /* .options         Drive option flags:         */
2820     ST_QIC              |     /*    00002           QIC tape device           */
2821     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2822     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2823     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2824                               /*    -----                                     */
2825                               /*    00642                                     */
2826     400,                      /* .max_rretries    [Note 3]                    */
2827     400,                      /* .max_wretries    [Note 3]                    */
2828     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2829     MT_DENSITY2,              /* .default_density (.densities[x])             */
2830     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2831   },
2832 
2833   /*
2834    * Wangtek 4mm RDAT drive
2835    *
2836    *     NOTES
2837    *     -----
2838    *  o This is an unsupported drive.
2839    *
2840    *  o This entry uses a shortened Vendor-product ID string for the
2841    *    INQUIRY match.
2842    *
2843    * [1] The Wangtek 4mm RDAT uses 0 or the "default" density code.
2844    * [2] The Wangtek 4mm RDAT has only one speed (if the driver ever cares).
2845    * [3] max_rretries and max_wretries are driver anachronisms.
2846    */
2847   {                           /* Structure member Description                 */
2848                               /* ---------------- -----------                 */
2849     "Wangtek 4mm Helical Scan",
2850                               /* .name            Display ("pretty") name     */
2851     14,                       /* .length          Length of next item...      */
2852     "WANGTEK 6130-H*",        /* .vid             Vendor-product ID string    */
2853     ST_TYPE_WANGTHS,          /* .type            Numeric type (cf. mtio.h)   */
2854     0,                        /* .bsize           Block size (0 = variable)   */
2855                               /* .options         Drive option flags:         */
2856     ST_VARIABLE         |     /*    00001           Supports variable length  */
2857     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2858     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2859     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2860     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2861     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2862                               /*    -----                                     */
2863                               /*    00659                                     */
2864     400,                      /* .max_rretries    [Note 3]                    */
2865     400,                      /* .max_wretries    [Note 3]                    */
2866     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2867     MT_DENSITY2,              /* .default_density (.densities[x])             */
2868     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2869   },
2870 
2871   /*
2872    * Wangtek QIC-150 1/4" cartridge
2873    *
2874    *     NOTES
2875    *     -----
2876    *  o This is an unsupported drive.
2877    *
2878    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
2879    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
2880    * [3] max_rretries and max_wretries are driver anachronisms.
2881    */
2882   {                           /* Structure member Description                 */
2883                               /* ---------------- -----------                 */
2884     "Wangtek 5525ES SCSI",    /* .name            Display ("pretty") name     */
2885     19,                       /* .length          Length of next item...      */
2886     "WANGTEK 5525ES SCSI",    /* .vid             Vendor-product ID string    */
2887     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
2888     512,                      /* .bsize           Block size (0 = variable)   */
2889                               /* .options         Drive option flags:         */
2890     ST_QIC              |     /*    00002           QIC tape device           */
2891     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2892     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2893     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
2894     ST_AUTODEN_OVERRIDE |     /*    00040           Autdensity override flag  */
2895     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2896     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2897                               /*    -----                                     */
2898                               /*    0067A                                     */
2899     400,                      /* .max_rretries    [Note 3]                    */
2900     400,                      /* .max_wretries    [Note 3]                    */
2901     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2902     MT_DENSITY2,              /* .default_density (.densities[x])             */
2903     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2904   },
2905 
2906   /*
2907    * [1] The Ecrix VXA-1 has only one density at this time,
2908    *     Compression is controlled via the Device Configuration
2909    *     mode page.
2910    * [2] The Ecrix VXA-1 is a veriable speed device. The drive determines
2911    *     the optimum speed. (if the driver ever cares).
2912    */
2913   {                           /* Structure member Description                 */
2914                               /* ---------------- -----------                 */
2915     "Ecrix VXA-1",            /* .name            Display ("pretty") name     */
2916     13,                       /* .length          Length of next item...      */
2917     "ECRIX   VXA-1",          /* .vid             Vendor-product ID string    */
2918     MT_ISOTHER,               /* .type            Numeric type (cf. mtio.h)   */
2919     0,                        /* .bsize           Block size (0 = variable)   */
2920                               /* .options         Drive option flags:         */
2921     ST_VARIABLE             | /*    00001           Supports variable length  */
2922     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
2923     ST_BSR                  | /*    00010           Supports SPACE block rev  */
2924     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
2925     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
2926     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
2927     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
2928     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
2929     ST_NO_RECSIZE_LIMIT     | /*    08000           Supports blocks > 64KB    */
2930     ST_MODE_SEL_COMP        | /*    10000         Mode Select to enable comp  */
2931     ST_CLN_TYPE_1,            /* 10000000         Asks to be cleaned this way */
2932                               /* --------                                     */
2933                               /* 10019E39                                     */
2934     -1,                       /* .max_rretries                                */
2935     -1,                       /* .max_wretries                                */
2936     {0x80, 0x80, 0x80, 0x80}, /* .densities       Density codes [Note 1]      */
2937     MT_DENSITY4,              /* .default_density (.densities[x])             */
2938     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2939   },
2940 
2941   /*
2942    * [1] The IBM Ultrium Gen 4 "OEM" version has two densites at this time,
2943    *     One for Gen 3 0x44, One for Gen 4 0x46.
2944    *     This drive is configured with ST_KNOWS_MEDIA.
2945    *     That means that it will look at the mediatype from the mode sense
2946    *     to select the density code. The compression will be selected based
2947    *     on the minor node the user opened.
2948    * [2] The IBM LTO reports a medium type that is used to select the density.
2949    */
2950   {                           /* Structure member Description                 */
2951                               /* ---------------- -----------                 */
2952     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
2953     19,                       /* .length          Length of next item...      */
2954     "IBM     ULTRIUM-TD4",    /* .vid             Vendor-product ID string    */
2955     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
2956     0,                        /* .bsize           Block size (0 = variable)   */
2957                               /* .options         Drive option flags:         */
2958     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2959     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2960     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2961     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
2962     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2963     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2964     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
2965     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
2966     ST_WORMABLE,              /*  1000000         Is WORM capable             */
2967                               /*  -------                                     */
2968                               /*  1818619                                     */
2969     -1,                       /* .max_rretries    Not used any more.          */
2970     -1,                       /* .max_wretries    Not used any more.          */
2971     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
2972     MT_DENSITY4,              /* .default_density (.densities[x])             */
2973     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
2974     MINUTES(1),               /* .non_motion_time                             */
2975     MINUTES(23),              /* .io_time                                     */
2976     MINUTES(9),               /* .rewind_time                                 */
2977     MINUTES(183),             /* .space_time      worst case directory invalid*/
2978     MINUTES(9),               /* .load_time                                   */
2979     MINUTES(13),              /* .unload_time                                 */
2980     MINUTES(180)              /* .erase_time                                  */
2981   },
2982 
2983   /*
2984    * [1] The IBM Ultrium Gen 4 "IBM" version has two densites at this time,
2985    *     One for Gen 3 0x44, one for Gen 4 0x46.
2986    *     This drive is configured with ST_KNOWS_MEDIA.
2987    *     That means that it will look at the mediatype from the mode sense
2988    *     to select the density code. The compression will be selected based
2989    *     on the minor node the user opened.
2990    * [2] The IBM LTO reports a medium type that is used to select the density.
2991    */
2992   {                           /* Structure member Description                 */
2993                               /* ---------------- -----------                 */
2994     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
2995     19,                       /* .length          Length of next item...      */
2996     "IBM     ULT3580-TD4",    /* .vid             Vendor-product ID string    */
2997     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
2998     0,                        /* .bsize           Block size (0 = variable)   */
2999                               /* .options         Drive option flags:         */
3000     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3001     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3002     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3003     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3004     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3005     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3006     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3007     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3008     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3009                               /*  -------                                     */
3010                               /*  1818619                                     */
3011     -1,                       /* .max_rretries    Not used any more.          */
3012     -1,                       /* .max_wretries    Not used any more.          */
3013     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
3014     MT_DENSITY4,              /* .default_density (.densities[x])             */
3015     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
3016     MINUTES(1),               /* .non_motion_time                             */
3017     MINUTES(23),              /* .io_time                                     */
3018     MINUTES(9),               /* .rewind_time                                 */
3019     MINUTES(183),             /* .space_time      worst case directory invalid*/
3020     MINUTES(9),               /* .load_time                                   */
3021     MINUTES(13),              /* .unload_time                                 */
3022     MINUTES(180)              /* .erase_time                                  */
3023   },
3024 
3025   /*
3026    * [1] The IBM Ultrium Gen 3 "OEM" version has three densites at this time,
3027    *     One for Gen 1 0x40, One for Gen 2 0x42 and for Gen 3 0x44.
3028    *     This drive is configured with ST_KNOWS_MEDIA.
3029    *     That means that it will look at the mediatype from the mode sense
3030    *     to select the density code. The compression will be selected based
3031    *     on the minor node the user opened.
3032    * [2] The IBM LTO reports a medium type that is used to select the density.
3033    */
3034   {                           /* Structure member Description                 */
3035                               /* ---------------- -----------                 */
3036     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
3037     19,                       /* .length          Length of next item...      */
3038     "IBM     ULTRIUM-TD3",    /* .vid             Vendor-product ID string    */
3039     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3040     0,                        /* .bsize           Block size (0 = variable)   */
3041                               /* .options         Drive option flags:         */
3042     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3043     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3044     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3045     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3046     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3047     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3048     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3049     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3050     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3051                               /*  -------                                     */
3052                               /*  1818619                                     */
3053     -1,                       /* .max_rretries    Not used any more.          */
3054     -1,                       /* .max_wretries    Not used any more.          */
3055     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
3056     MT_DENSITY4,              /* .default_density (.densities[x])             */
3057     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
3058     MINUTES(1),               /* .non_motion_time                             */
3059     MINUTES(18),              /* .io_time                                     */
3060     MINUTES(9),               /* .rewind_time                                 */
3061     MINUTES(165),             /* .space_time      worst case directory invalid*/
3062     MINUTES(9),               /* .load_time                                   */
3063     MINUTES(12),              /* .unload_time                                 */
3064     MINUTES(160)              /* .erase_time                                  */
3065   },
3066 
3067   /*
3068    * [1] The IBM Ultrium Gen 3 "IBM" version has three densites at this time,
3069    *     One for Gen 1 0x40, One for Gen 2 0x42 and Gen 3 0x44.
3070    *     This drive is configured with ST_KNOWS_MEDIA.
3071    *     That means that it will look at the mediatype from the mode sense
3072    *     to select the density code. The compression will be selected based
3073    *     on the minor node the user opened.
3074    * [2] The IBM LTO reports a medium type that is used to select the density.
3075    */
3076   {                           /* Structure member Description                 */
3077                               /* ---------------- -----------                 */
3078     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
3079     19,                       /* .length          Length of next item...      */
3080     "IBM     ULT3580-TD3",    /* .vid             Vendor-product ID string    */
3081     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3082     0,                        /* .bsize           Block size (0 = variable)   */
3083                               /* .options         Drive option flags:         */
3084     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3085     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3086     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3087     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3088     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3089     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3090     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3091     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3092     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3093                               /*  -------                                     */
3094                               /*  1818619                                     */
3095     -1,                       /* .max_rretries    Not used any more.          */
3096     -1,                       /* .max_wretries    Not used any more.          */
3097     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
3098     MT_DENSITY4,              /* .default_density (.densities[x])             */
3099     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
3100     MINUTES(1),               /* .non_motion_time                             */
3101     MINUTES(18),              /* .io_time                                     */
3102     MINUTES(9),               /* .rewind_time                                 */
3103     MINUTES(165),             /* .space_time      worst case directory invalid*/
3104     MINUTES(9),               /* .load_time                                   */
3105     MINUTES(12),              /* .unload_time                                 */
3106     MINUTES(160)              /* .erase_time                                  */
3107   },
3108 
3109   /*
3110    * [1] The IBM Ultrium Gen 2 "OEM" version has two densites at this time,
3111    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
3112    *     Selects which density code is used but this documents the codes
3113    *     for those who care to know.
3114    *     Compression is controlled via the Compression mode page.
3115    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3116    */
3117   {                           /* Structure member Description                 */
3118                               /* ---------------- -----------                 */
3119     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
3120     19,                       /* .length          Length of next item...      */
3121     "IBM     ULTRIUM-TD2",    /* .vid             Vendor-product ID string    */
3122     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3123     0,                        /* .bsize           Block size (0 = variable)   */
3124                               /* .options         Drive option flags:         */
3125     ST_VARIABLE         |     /*    00001           Supports variable length  */
3126     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3127     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3128     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3129     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3130     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3131     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3132                               /*    -----                                     */
3133                               /*    18619                                     */
3134     -1,                       /* .max_rretries    Not used any more.          */
3135     -1,                       /* .max_wretries    Not used any more.          */
3136     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
3137     MT_DENSITY4,              /* .default_density (.densities[x])             */
3138     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3139     MINUTES(1),               /* .non_motion_time                             */
3140     MINUTES(18),              /* .io_time                                     */
3141     MINUTES(9),               /* .rewind_time                                 */
3142     MINUTES(151),             /* .space_time      worst case directory invalid*/
3143     MINUTES(12),              /* .load_time                                   */
3144     MINUTES(11),              /* .unload_time                                 */
3145     MINUTES(151)              /* .erase_time                                  */
3146   },
3147 
3148   /*
3149    * [1] The IBM Ultrium Gen 2 "IBM" version has two densites at this time,
3150    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
3151    *     Selects which density code is used but this documents the codes
3152    *     for those who care to know.
3153    *     Compression is controlled via the Compression mode page.
3154    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3155    */
3156   {                           /* Structure member Description                 */
3157                               /* ---------------- -----------                 */
3158     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
3159     19,                       /* .length          Length of next item...      */
3160     "IBM     ULT3580-TD2",    /* .vid             Vendor-product ID string    */
3161     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3162     0,                        /* .bsize           Block size (0 = variable)   */
3163                               /* .options         Drive option flags:         */
3164     ST_VARIABLE         |     /*    00001           Supports variable length  */
3165     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3166     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3167     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3168     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3169     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3170     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3171                               /*    -----                                     */
3172                               /*    18619                                     */
3173     -1,                       /* .max_rretries    Not used any more.          */
3174     -1,                       /* .max_wretries    Not used any more.          */
3175     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
3176     MT_DENSITY4,              /* .default_density (.densities[x])             */
3177     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3178     MINUTES(1),               /* .non_motion_time                             */
3179     MINUTES(18),              /* .io_time                                     */
3180     MINUTES(9),               /* .rewind_time                                 */
3181     MINUTES(151),             /* .space_time      worst case directory invalid*/
3182     MINUTES(12),              /* .load_time                                   */
3183     MINUTES(11),              /* .unload_time                                 */
3184     MINUTES(151)              /* .erase_time                                  */
3185   },
3186 
3187   /*
3188    * [1] The IBM Ultrium has only one density at this time,
3189    *     Compression is controlled via the Device Configuration mode page.
3190    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3191    */
3192   {                           /* Structure member Description                 */
3193                               /* ---------------- -----------                 */
3194     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
3195     19,                       /* .length          Length of next item...      */
3196     "IBM     ULTRIUM-TD1",    /* .vid             Vendor-product ID string    */
3197     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3198     0,                        /* .bsize           Block size (0 = variable)   */
3199                               /* .options         Drive option flags:         */
3200     ST_VARIABLE         |     /*    00001           Supports variable length  */
3201     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3202     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3203     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3204     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3205     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3206     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3207                               /*    -----                                     */
3208                               /*    18619                                     */
3209     -1,                       /* .max_rretries    Not used any more.          */
3210     -1,                       /* .max_wretries    Not used any more.          */
3211     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
3212     MT_DENSITY4,              /* .default_density (.densities[x])             */
3213     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3214     MINUTES(1),               /* .non_motion_time                             */
3215     MINUTES(18),              /* .io_time                                     */
3216     MINUTES(8),               /* .rewind_time                                 */
3217     MINUTES(173),             /* .space_time      worst case directory invalid*/
3218     MINUTES(11),              /* .load_time                                   */
3219     MINUTES(11),              /* .unload_time                                 */
3220     MINUTES(173)              /* .erase_time                                  */
3221   },
3222 
3223   /*
3224    * This is the same drive as the above except for the inquiry string and
3225    * that it is a "End User Version".
3226    * [1] The IBM Ultrium has only one density at this time,
3227    *     Compression is controlled via the Device Configuration mode page.
3228    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3229    */
3230   {                           /* Structure member Description                 */
3231                               /* ---------------- -----------                 */
3232     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
3233     19,                       /* .length          Length of next item...      */
3234     "IBM     ULT3580-TD1",    /* .vid             Vendor-product ID string    */
3235     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3236     0,                        /* .bsize           Block size (0 = variable)   */
3237                               /* .options         Drive option flags:         */
3238     ST_VARIABLE         |     /*    00001           Supports variable length  */
3239     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3240     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3241     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3242     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3243     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3244     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3245                               /*    -----                                     */
3246                               /*    18619                                     */
3247     -1,                       /* .max_rretries    Not used any more.          */
3248     -1,                       /* .max_wretries    Not used any more.          */
3249     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
3250     MT_DENSITY4,              /* .default_density (.densities[x])             */
3251     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3252     MINUTES(1),               /* .non_motion_time                             */
3253     MINUTES(18),              /* .io_time                                     */
3254     MINUTES(8),               /* .rewind_time                                 */
3255     MINUTES(173),             /* .space_time      worst case directory invalid*/
3256     MINUTES(11),              /* .load_time                                   */
3257     MINUTES(11),              /* .unload_time                                 */
3258     MINUTES(173)              /* .erase_time                                  */
3259   },
3260 
3261   /*
3262    * [1] The IBM 3592 Cartridge has only one density at this time,
3263    *     Compression is controlled via the Device Configuration mode page.
3264    * [2] The IBM 3592 Cartridge has only one speed (if the driver ever cares).
3265    */
3266   {                           /* Structure member Description                 */
3267                               /* ---------------- -----------                 */
3268     "IBM 3592 Cartridge",     /* .name            Display ("pretty") name     */
3269     13,                       /* .length          Length of next item...      */
3270     "IBM     03592",          /* .vid             Vendor-product ID string    */
3271     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3272     0,                        /* .bsize           Block size (0 = variable)   */
3273                               /* .options         Drive option flags:         */
3274     ST_VARIABLE         |     /*    00001           Supports variable length  */
3275     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3276     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3277     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
3278     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3279     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3280     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3281     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3282                               /*    -----                                     */
3283                               /*    18659                                     */
3284     -1,                       /* .max_rretries    Not used any more.          */
3285     -1,                       /* .max_wretries    Not used any more.          */
3286     {0x51, 0x51, 0x51, 0x51}, /* .densities       Density codes [Note 1]      */
3287     MT_DENSITY4,              /* .default_density (.densities[x])             */
3288     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3289     MINUTES(1),               /* .non_motion_time                             */
3290     MINUTES(18),              /* .io_time                                     */
3291     MINUTES(8),               /* .rewind_time                                 */
3292     MINUTES(14),              /* .space_time      worst case directory invalid*/
3293     MINUTES(12),              /* .load_time                                   */
3294     MINUTES(12),              /* .unload_time                                 */
3295     MINUTES(235)              /* .erase_time                                  */
3296   },
3297 
3298   /*
3299    * Seagate Hornet NS20 USB Travan
3300    *
3301    *     NOTES
3302    *     -----
3303    *  o This drive is not OEM'ed or qualified by Sun.
3304    *
3305    * [1] The NS20 Travan uses 0 or the "default" density code.
3306    * [2] The NS20 Travan has only one speed (if the driver ever cares).
3307    * [3] max_rretries and max_wretries are driver anachronisms.
3308    */
3309   {                           /* Structure member Description                 */
3310                               /* ---------------- -----------                 */
3311     "Seagate Hornet NS20 Travan",
3312                               /* .name            Display ("pretty") name     */
3313     17,                       /* .length          Length of next item...      */
3314     "Seagate STT20000A",      /* .vid             Vendor-product ID string    */
3315     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
3316     512,                      /* .bsize           Block size (0 = variable)   */
3317                               /* .options         Drive option flags:         */
3318     ST_QIC              |     /*    00002           QIC tape device           */
3319     ST_BSF              |     /*    00008           Supports back SPACE file  */
3320     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
3321                               /*    -----                                     */
3322                               /*    0040A                                     */
3323     400,                      /* .max_rretries    [Note 3]                    */
3324     400,                      /* .max_wretries    [Note 3]                    */
3325     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
3326     MT_DENSITY1,              /* .default_density (.densities[x])             */
3327     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3328   },
3329 
3330 
3331   /*
3332    * Seagate Hornet Travan 40
3333    *
3334    *     NOTES
3335    *     -----
3336    *  o This drive is not OEM'ed or qualified by Sun.
3337    *
3338    * [1] The Travan uses 0 or the "default" density code.
3339    * [2] The Travan has only one speed (if the driver ever cares).
3340    * [3] max_rretries and max_wretries are driver anachronisms.
3341    */
3342   {                           /* Structure member Description                 */
3343                               /* ---------------- -----------                 */
3344     "Seagate Hornet Travan 40",
3345                               /* .name            Display ("pretty") name     */
3346     16,                       /* .length          Length of next item...      */
3347     "Seagate STT3401A",       /* .vid             Vendor-product ID string    */
3348     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
3349     512,                      /* .bsize           Block size (0 = variable)   */
3350                               /* .options         Drive option flags:         */
3351     ST_QIC              |     /*    00002           QIC tape device           */
3352     ST_BSF              |     /*    00008           Supports back SPACE file  */
3353     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
3354                               /*    -----                                     */
3355                               /*    0040A                                     */
3356     400,                      /* .max_rretries    [Note 3]                    */
3357     400,                      /* .max_wretries    [Note 3]                    */
3358     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
3359     MT_DENSITY1,              /* .default_density (.densities[x])             */
3360     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3361   }
3362 
3363 	/* END CSTYLED */
3364 
3365 };
3366 
3367 
3368 const int st_ndrivetypes = (sizeof (st_drivetypes)/sizeof (st_drivetypes[0]));
3369