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