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 DAT-160
1108    */
1109   {                           /* Structure member Description                 */
1110                               /* ---------------- -----------                 */
1111     "HP DDS-6 DAT",           /* .name            Display ("pretty") name     */
1112     14,                       /* .length          Length of next item...      */
1113     "HP      DAT160",         /* .vid             Vendor-product ID string    */
1114     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1115     0,                        /* .bsize           Block size (0 = variable)   */
1116                               /* .options         Drive option flags:         */
1117     ST_VARIABLE         |     /*    00001           Supports variable length  */
1118     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1119     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1120     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1121     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1122     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1123     ST_MODE_SEL_COMP    |     /*    10000           Mode select compression   */
1124     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1125                               /*  -------                                     */
1126                               /*  1018619                                     */
1127     -1,                       /* .max_rretries      Not Used                  */
1128     -1,                       /* .max_wretries      Not Used                  */
1129     {0x48, 0x48, 0x48, 0x48}, /* .densities       Density codes               */
1130     MT_DENSITY4,              /* .default_density (.densities[x])             */
1131     {0, 0, 0, 0},             /* .speeds          Speed codes Not Used        */
1132     0,                        /* .non_motion_timeout Nothing Special          */
1133     MINUTES(5),               /* .io_timeout                                  */
1134     MINUTES(10),              /* .rewind_timeout                              */
1135     MINUTES(20),              /* .space_timeout                               */
1136     MINUTES(10),              /* .load_timeout                                */
1137     MINUTES(10),              /* .unload_timeout                              */
1138     MINUTES(300)              /* .erase_timeout      5 hours                  */
1139   },
1140 
1141   /*
1142    * HP Ultrium LTO Gen 4
1143    * [1] This drive supports two densites at this time.
1144    *     In reality the type of media GEN 3 or GEN 4 selects the density.
1145    *     ST_MODE_SEL_COMP controls compression.
1146    * [2] The Ultrium LTO has one speed.
1147    * [3] max_rretries and max_wretries are not used but kept for
1148    *     backward compatibility.
1149    */
1150   {                           /* Structure member Description                 */
1151                               /* ---------------- -----------                 */
1152     "HP Ultrium LTO 4",       /* .name            Display ("pretty") name     */
1153     17,                       /* .length          Length of next item...      */
1154     "HP      Ultrium 4*",     /* .vid             handles SCSI or FC          */
1155     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1156     0,                        /* .bsize           Block size (0 = variable)   */
1157                               /* .options         Drive option flags:         */
1158     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1159     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1160     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1161     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1162     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1163     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1164     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
1165     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1166                               /*  -------                                     */
1167                               /*  1018619                                     */
1168     -1,                       /* .max_rretries    [Note 3]                    */
1169     -1,                       /* .max_wretries    [Note 3]                    */
1170     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
1171     MT_DENSITY4,              /* .default_density (.densities[x])             */
1172     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1173     MINUTES(1),               /* .non_motion_timeout                          */
1174     MINUTES(20),              /* .io_timeout                                  */
1175     MINUTES(10),              /* .rewind_timeout                              */
1176     MINUTES(20),              /* .space_timeout                               */
1177     MINUTES(10),              /* .load_timeout                                */
1178     MINUTES(10),              /* .unload_timeout                              */
1179     MINUTES(300)              /* .erase_timeout      Five Hours               */
1180   },
1181 
1182   /*
1183    * HP Ultrium LTO Gen 3
1184    * [1] This drive supports two densites at this time.
1185    *     In reality the type of media GEN 2 or GEN 3 selects the density.
1186    *     ST_MODE_SEL_COMP controls compression.
1187    * [2] The Ultrium LTO has one speed.
1188    * [3] max_rretries and max_wretries are not used but kept for
1189    *     backward compatibility.
1190    */
1191   {                           /* Structure member Description                 */
1192                               /* ---------------- -----------                 */
1193     "HP Ultrium LTO 3",       /* .name            Display ("pretty") name     */
1194     17,                       /* .length          Length of next item...      */
1195     "HP      Ultrium 3*",     /* .vid             handles SCSI or FC          */
1196     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1197     0,                        /* .bsize           Block size (0 = variable)   */
1198                               /* .options         Drive option flags:         */
1199     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1200     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1201     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1202     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1203     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1204     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1205     ST_MODE_SEL_COMP    |     /*  0010000           Mode select compression   */
1206     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
1207                               /*  -------                                     */
1208                               /*  1018619                                     */
1209     -1,                       /* .max_rretries    [Note 3]                    */
1210     -1,                       /* .max_wretries    [Note 3]                    */
1211     {0x42, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
1212     MT_DENSITY4,              /* .default_density (.densities[x])             */
1213     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1214     MINUTES(1),               /* .non_motion_timeout                          */
1215     MINUTES(20),              /* .io_timeout                                  */
1216     MINUTES(10),              /* .rewind_timeout                              */
1217     MINUTES(20),              /* .space_timeout                               */
1218     MINUTES(10),              /* .load_timeout                                */
1219     MINUTES(10),              /* .unload_timeout                              */
1220     MINUTES(300)              /* .erase_timeout      Five Hours               */
1221   },
1222 
1223   /*
1224    * HP Ultrium LTO Gen 2
1225    * [1] This drive supports two densites at this time.
1226    *     In reality the type of media GEN 1 or GEN 2 selects the density.
1227    *     ST_MODE_SEL_COMP controls compression.
1228    * [2] The Ultrium LTO has one speed.
1229    * [3] max_rretries and max_wretries are not used but kept for
1230    *     backward compatibility.
1231    */
1232   {                           /* Structure member Description                 */
1233                               /* ---------------- -----------                 */
1234     "HP Ultrium LTO 2",       /* .name            Display ("pretty") name     */
1235     17,                       /* .length          Length of next item...      */
1236     "HP      Ultrium 2*",     /* .vid             handles SCSI or FC          */
1237     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1238     0,                        /* .bsize           Block size (0 = variable)   */
1239                               /* .options         Drive option flags:         */
1240     ST_VARIABLE         |     /*    00001           Supports variable length  */
1241     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1242     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1243     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1244     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1245     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1246     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1247                               /*    -----                                     */
1248                               /*    18619                                     */
1249     -1,                       /* .max_rretries    [Note 3]                    */
1250     -1,                       /* .max_wretries    [Note 3]                    */
1251     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
1252     MT_DENSITY4,              /* .default_density (.densities[x])             */
1253     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1254     MINUTES(1),               /* .non_motion_timeout                          */
1255     MINUTES(5),               /* .io_timeout Four                             */
1256     MINUTES(10),              /* .rewind_timeout                              */
1257     MINUTES(20),              /* .space_timeout                               */
1258     MINUTES(10),              /* .load_timeout                                */
1259     MINUTES(10),              /* .unload_timeout                              */
1260     MINUTES(300)              /* .erase_timeout      Five Hours               */
1261   },
1262 
1263   /*
1264    * HP Ultrium LTO
1265    * [1] This drive supports only one density at this time.
1266          ST_MODE_SEL_COMP controls compression.
1267    * [2] The Ultrium LTO has one speed.
1268    * [3] max_rretries and max_wretries are not used but kept for
1269    *     backward compatibility.
1270    */
1271   {                           /* Structure member Description                 */
1272                               /* ---------------- -----------                 */
1273     "HP Ultrium LTO",         /* .name            Display ("pretty") name     */
1274     17,                       /* .length          Length of next item...      */
1275     "HP      Ultrium 1*",     /* .vid             handles SCSI and FC         */
1276     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1277     0,                        /* .bsize           Block size (0 = variable)   */
1278                               /* .options         Drive option flags:         */
1279     ST_VARIABLE         |     /*    00001           Supports variable length  */
1280     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1281     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1282     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1283     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1284     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1285     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1286                               /*    -----                                     */
1287                               /*    18619                                     */
1288     -1,                       /* .max_rretries    [Note 3]                    */
1289     -1,                       /* .max_wretries    [Note 3]                    */
1290     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
1291     MT_DENSITY4,              /* .default_density (.densities[x])             */
1292     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1293     MINUTES(1),               /* .non_motion_timeout                          */
1294     MINUTES(5),               /* .io_timeout Four                             */
1295     MINUTES(10),              /* .rewind_timeout                              */
1296     MINUTES(20),              /* .space_timeout                               */
1297     MINUTES(10),              /* .load_timeout                                */
1298     MINUTES(10),              /* .unload_timeout                              */
1299     MINUTES(300)              /* .erase_timeout      Five Hours               */
1300   },
1301 
1302   /*
1303    * Kennedy 1/2" reel
1304    *
1305    *     NOTES
1306    *     -----
1307    *  o This is an unsupported drive.
1308    *
1309    *  o This entry uses a shortened Vendor-product ID string for the
1310    *    INQUIRY match.
1311    *
1312    * [1] The density code entry requires four values, even if there are less
1313    *     than four values for the drive.
1314    * [2] The Kennedy 1/2" reel has only one speed (if the driver ever cares).
1315    * [3] max_rretries and max_wretries are driver anachronisms.
1316    */
1317   {                           /* Structure member Description                 */
1318                               /* ---------------- -----------                 */
1319     "Kennedy 1/2\" Reel",     /* .name            Display ("pretty") name     */
1320     4,                        /* .length          Length of next item...      */
1321     "KENN***",                /* .vid             Vendor-product ID string    */
1322     ST_TYPE_KENNEDY,          /* .type            Numeric type (cf. mtio.h)   */
1323     0,                        /* .bsize           Block size (0 = variable)   */
1324                               /* .options         Drive option flags:         */
1325     ST_VARIABLE |             /*    00001           Supports variable length  */
1326     ST_REEL     |             /*    00004           1/2-inch reel tape device */
1327     ST_BSF      |             /*    00008           Supports SPACE block fwd  */
1328     ST_BSR      |             /*    00010           Supports SPACE block rev  */
1329     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1330                               /*    -----                                     */
1331                               /*    0041D                                     */
1332     400,                      /* .max_rretries    [Note 3]                    */
1333     400,                      /* .max_wretries    [Note 3]                    */
1334     {0x01, 0x02, 0x03, 0x03}, /* .densities       Density codes [Note 1]      */
1335     MT_DENSITY2,              /* .default_density (.densities[x])             */
1336     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1337   },
1338 
1339   /*
1340    * M4 Data Systems 9303 transport with 9700 512k i/f
1341    *
1342    *     NOTES
1343    *     -----
1344    *  o  The M4 Data 9303 is in non-buffered mode because it doesn't
1345    *     flush the buffer at end of tape writes. If you don't care
1346    *     about end of tape conditions (e.g., you use dump(8) which
1347    *     cannot handle end-of-tape anyhow), take out the ST_NOBUF.
1348    *
1349    *  o This is an unsupported drive.
1350    *
1351    * [1] The density code entry requires four values, even if there are less
1352    *     than four values for the drive.
1353    * [2] The M4 Data has only one speed (if the driver ever cares).
1354    * [3] max_rretries and max_wretries are driver anachronisms.
1355    */
1356   {                           /* Structure member Description                 */
1357                               /* ---------------- -----------                 */
1358     "M4-Data 1/2\" Reel",     /* .name            Display ("pretty") name     */
1359     19,                       /* .length          Length of next item...      */
1360     "M4 DATA 123107 SCSI",    /* .vid             Vendor-product ID string    */
1361     ST_TYPE_REEL,             /* .type            Numeric type (cf. mtio.h)   */
1362     0,                        /* .bsize           Block size (0 = variable)   */
1363                               /* .options         Drive option flags:         */
1364     ST_VARIABLE  |            /*    00001           Supports variable length  */
1365     ST_REEL      |            /*    00004           1/2-inch reel tape device */
1366     ST_BSF       |            /*    00008           Supports SPACE block fwd  */
1367     ST_BSR       |            /*    00010           Supports SPACE block rev  */
1368     ST_NOBUF     |            /*    00080           Don't use buffered mode.  */
1369     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1370                               /*    -----                                     */
1371                               /*    0049D                                     */
1372     500,                      /* .max_rretries    [Note 3]                    */
1373     500,                      /* .max_wretries    [Note 3]                    */
1374     {0x01, 0x02, 0x06, 0x06}, /* .densities       Density codes [Note 1]      */
1375     MT_DENSITY2,              /* .default_density (.densities[x])             */
1376     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1377   },
1378 
1379   /*
1380    * Quantum VS 160
1381    *
1382    * Notes
1383    * [1] The VS160 reads several formats which the drive autodetects.
1384    *     It can write only in VS160 format so all densities set ro 0x50.
1385    * [2] The speed field is not used and the VS160's speed is not setable.
1386    * [3] Retry counts are not used any more and set to -1.
1387    */
1388   {                           /* Structure member Description                 */
1389                               /* ---------------- -----------                 */
1390     "Quantum VS160",          /* .name            Display ("pretty") name     */
1391     17,                       /* .length          Length of next item...      */
1392     "QUANTUM DLT VS160",      /* .vid             Vendor-product ID string    */
1393     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1394     0,                        /* .bsize           Block size (0 = variable)   */
1395                               /* .options         Drive option flags:         */
1396     ST_VARIABLE         |     /*    00001         Supports variable length    */
1397     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1398     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1399     ST_AUTODEN_OVERRIDE |     /*    00040         Has only one density        */
1400     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1401     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1402     ST_NO_RECSIZE_LIMIT |     /*    08000         Supports blocks > 64KB      */
1403     ST_MODE_SEL_COMP,         /*    10000         Uses Mode select Compress   */
1404                               /* --------                                     */
1405                               /* 00018659                                     */
1406     -1,                       /* .max_rretries    [Note 3]                    */
1407     -1,                       /* .max_wretries    [Note 3]                    */
1408     {0x50, 0x50, 0x50, 0x50}, /* .densities       [Note 1]                    */
1409     MT_DENSITY4,              /* .default_density (.densities[x])             */
1410     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1411     MINUTES(2),               /* .non_motion_timeout Nothing special          */
1412     MINUTES(15),              /* .io_timeout         First write to new tape  */
1413     MINUTES(15),              /* .rewind_timeout     15 minutes               */
1414     MINUTES(15),              /* .space_timeout      15 minutes               */
1415     MINUTES(15),              /* .load_timeout       read catalog             */
1416     MINUTES(15),              /* .unload_timeout     write catalog + unthread */
1417     MINUTES(180)              /* .erase_timeout      3 hours                  */
1418   },
1419   /*
1420    * Quantum Super DLT600
1421    *
1422    *    NOTES
1423    *    -----
1424    *
1425    * [1] The Super DLT 600 supports many tape formats, Most are media selected.
1426    *     Previous DLT drives had density codes for compress and non-compress,
1427          This drive uses mode select to control compression.
1428    * [2] The Super DLT has only one speed (if the driver ever cares).
1429    * [3] max_rretries and max_wretries are driver anachronisms.
1430    */
1431   {                           /* Structure member Description                 */
1432                               /* ---------------- -----------                 */
1433     "Quantum Super DLT 600",  /* .name            Display ("pretty") name     */
1434     15,                       /* .length          Length of next item...      */
1435     "QUANTUM SDLT600",        /* .vid             Vendor-product ID string    */
1436     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1437     0,                        /* .bsize           Block size (0 = variable)   */
1438                               /* .options         Drive option flags:         */
1439     ST_VARIABLE         |     /*  0000001         Supports variable length    */
1440     ST_BSF              |     /*  0000008         Supports SPACE block fwd    */
1441     ST_BSR              |     /*  0000010         Supports SPACE block rev    */
1442     ST_KNOWS_EOD        |     /*  0000200         Recognizes end-of-data      */
1443     ST_UNLOADABLE       |     /*  0000400         Driver can be unloaded      */
1444     ST_NO_RECSIZE_LIMIT |     /*  0008000         Supports blocks > 64KB      */
1445     ST_MODE_SEL_COMP    |     /*  0010000         Uses Mode select Compress   */
1446     ST_WORMABLE,              /*  1000000         Is capable of WORM          */
1447                               /*  -------                                     */
1448                               /*  1018619                                     */
1449     -1,                       /* .max_rretries    [Note 3]                    */
1450     -1,                       /* .max_wretries    [Note 3]                    */
1451     {0x4a, 0x4a, 0x4a, 0x4a}, /* .densities       [Note 1]                    */
1452     MT_DENSITY4,              /* .default_density (.densities[x])             */
1453     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1454     0,                        /* .non_motion_timeout Nothing special          */
1455     MINUTES(60),              /* .io_timeout Four    One Hour                 */
1456     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1457     MINUTES(360),             /* .space_timeout      6 Hour if Directory bad  */
1458     MINUTES(16),              /* .load_timeout       Nothing Special          */
1459     MINUTES(16),              /* .unload_timeout     Nothing Special          */
1460     MINUTES(360)              /* .erase_timeout      Six hours                */
1461   },
1462 
1463  /*
1464    * Quantum Super DLT320
1465    *
1466    *    NOTES
1467    *    -----
1468    *  o  There is not going to be a SUN version of this drive. It will
1469    *     be released as QUANTUM only.
1470    *
1471    * [1] The Super DLT implements many tape formats, but the st driver supports
1472    *     only the four highest densities.
1473    * [2] The Super DLT has only one speed (if the driver ever cares).
1474    * [3] max_rretries and max_wretries are driver anachronisms.
1475    */
1476   {                           /* Structure member Description                 */
1477                               /* ---------------- -----------                 */
1478     "Quantum Super DLT 320",  /* .name            Display ("pretty") name     */
1479     15,                       /* .length          Length of next item...      */
1480     "QUANTUM SDLT320",        /* .vid             Vendor-product ID string    */
1481     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1482     0,                        /* .bsize           Block size (0 = variable)   */
1483                               /* .options         Drive option flags:         */
1484     ST_VARIABLE         |     /*    00001         Supports variable length    */
1485     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1486     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1487     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1488     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1489     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
1490                               /* --------                                     */
1491                               /* 00008619                                     */
1492     -1,                       /* .max_rretries    [Note 3]                    */
1493     -1,                       /* .max_wretries    [Note 3]                    */
1494     {0x90, 0x91, 0x92, 0x93}, /* .densities       [Note 1]                    */
1495     MT_DENSITY4,              /* .default_density (.densities[x])             */
1496     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1497     0,                        /* .non_motion_timeout Default 2 minutes        */
1498     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
1499     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1500     MINUTES(360),             /* .space_timeout      Six Hours                */
1501     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
1502     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
1503     MINUTES(360)              /* .erase_timeout      Six hours                */
1504   },
1505 
1506   /*
1507    * Quantum Super DLT
1508    *
1509    *    NOTES
1510    *    -----
1511    *  o  There is not going to be a SUN version of this drive. It will
1512    *     be released as QUANTUM only.
1513    *
1514    * [1] The Super DLT implements many tape formats, but the st driver supports
1515    *     only the four highest densities.
1516    * [2] The Super DLT has only one speed (if the driver ever cares).
1517    * [3] max_rretries and max_wretries are driver anachronisms.
1518    */
1519   {                           /* Structure member Description                 */
1520                               /* ---------------- -----------                 */
1521     "Quantum Super DLT 220",  /* .name            Display ("pretty") name     */
1522     17,                       /* .length          Length of next item...      */
1523     "QUANTUM SuperDLT1",      /* .vid             Vendor-product ID string    */
1524     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1525     0,                        /* .bsize           Block size (0 = variable)   */
1526                               /* .options         Drive option flags:         */
1527     ST_VARIABLE         |     /*    00001         Supports variable length    */
1528     ST_BSF              |     /*    00008         Supports SPACE block fwd    */
1529     ST_BSR              |     /*    00010         Supports SPACE block rev    */
1530     ST_KNOWS_EOD        |     /*    00200         Recognizes end-of-data      */
1531     ST_UNLOADABLE       |     /*    00400         Driver can be unloaded      */
1532     ST_NO_RECSIZE_LIMIT,      /*    08000         Supports blocks > 64KB      */
1533                               /* --------                                     */
1534                               /* 00008619                                     */
1535     -1,                       /* .max_rretries    [Note 3]                    */
1536     -1,                       /* .max_wretries    [Note 3]                    */
1537     {0x88, 0x89, 0x90, 0x91}, /* .densities       [Note 1]                    */
1538     MT_DENSITY4,              /* .default_density (.densities[x])             */
1539     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1540     0,                        /* .non_motion_timeout Default 2 minutes        */
1541     MINUTES(60),              /* .io_timeout Four    Now 1 hour               */
1542     MINUTES(4),               /* .rewind_timeout     Four Minutes             */
1543     MINUTES(360),             /* .space_timeout      Six Hours                */
1544     MINUTES(16),              /* .load_timeout       Sixteen Minutes          */
1545     MINUTES(16),              /* .unload_timeout     Sixteen Minutes          */
1546     MINUTES(360)              /* .erase_timeout      Six hours                */
1547   },
1548 
1549   /*
1550    * Quantum DLT8000
1551    *
1552    *    NOTES
1553    *    -----
1554    *  o  There is not going to be a SUN version of this drive. It will
1555    *     be released as QUANTUM only.
1556    *
1557    * [1] The DLT8000 implements many tape formats, but the st driver supports
1558    *     only the four highest densities.
1559    * [2] The DLT8000 has only one speed (if the driver ever cares).
1560    * [3] max_rretries and max_wretries are driver anachronisms.
1561    */
1562   {                           /* Structure member Description                 */
1563                               /* ---------------- -----------                 */
1564     "Quantum DLT8000",        /* .name            Display ("pretty") name     */
1565     15,                       /* .length          Length of next item...      */
1566     "QUANTUM DLT8000",        /* .vid             Vendor-product ID string    */
1567     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1568     0,                        /* .bsize           Block size (0 = variable)   */
1569                               /* .options         Drive option flags:         */
1570     ST_VARIABLE         |     /*    00001           Supports variable length  */
1571     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1572     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1573     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1574     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1575     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1576     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1577     ST_CLN_TYPE_3,            /* 40000000                                     */
1578                               /*    -----                                     */
1579                               /* 40009619                                     */
1580     400,                      /* .max_rretries    [Note 3]                    */
1581     400,                      /* .max_wretries    [Note 3]                    */
1582     {0x84, 0x85, 0x88, 0x89}, /* .densities       [Note 1]                    */
1583     MT_DENSITY4,              /* .default_density (.densities[x])             */
1584     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1585     0,                        /* .non_motion_timeout Nothing special          */
1586     0,                        /* .io_timeout Four    Nothing Special          */
1587     0,                        /* .rewind_timeout     Nothing Special          */
1588     0,                        /* .space_timeout      Nothing Special          */
1589     0,                        /* .load_timeout       Nothing Special          */
1590     0,                        /* .unload_timeout     Nothing Special          */
1591     MINUTES(360)              /* .erase_timeout      Six hours                */
1592   },
1593 
1594   /*
1595    * Quantum DLT7000
1596    *
1597    *     NOTES
1598    *     -----
1599    * [1] The DLT7000 implements many tape formats, but the st driver supports
1600    *     only the four highest densities.
1601    * [2] The DLT7000 has only one speed (if the driver ever cares).
1602    * [3] max_rretries and max_wretries are driver anachronisms.
1603    * [4] Data is buffered in the driver and pre-acked to the application. This
1604    *      is only supported in Solaris 2.5.1.
1605    */
1606   {                           /* Structure member Description                 */
1607                               /* ---------------- -----------                 */
1608     "Quantum DLT7000",        /* .name            Display ("pretty") name     */
1609     15,                       /* .length          Length of next item...      */
1610     "QUANTUM DLT7000",        /* .vid             Vendor-product ID string    */
1611     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1612     0,                        /* .bsize           Block size (0 = variable)   */
1613                               /* .options         Drive option flags:         */
1614     ST_VARIABLE         |     /*    00001           Supports variable length  */
1615     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1616     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1617     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1618     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1619     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
1620     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
1621     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1622     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
1623                               /* --------                                     */
1624                               /* 4000D619                                     */
1625     400,                      /* .max_rretries    [Note 3]                    */
1626     400,                      /* .max_wretries    [Note 3]                    */
1627     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
1628     MT_DENSITY3,              /* .default_density (.densities[x])             */
1629     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1630     0,                        /* .non_motion_timeout Nothing special          */
1631     0,                        /* .io_timeout Four    Nothing Special          */
1632     0,                        /* .rewind_timeout     Nothing Special          */
1633     0,                        /* .space_timeout      Nothing Special          */
1634     0,                        /* .load_timeout       Nothing Special          */
1635     0,                        /* .unload_timeout     Nothing Special          */
1636     MINUTES(360)              /* .erase_timeout      Six hours                */
1637   },
1638 
1639   /*
1640    * Quantum DLT4000
1641    *
1642    *     NOTES
1643    *     -----
1644    * [1] The DLT4000 implements many tape formats, but the st driver supports
1645    *     only the four highest densities.
1646    * [2] The DLT4000 has only one speed (if the driver ever cares).
1647    * [3] max_rretries and max_wretries are driver anachronisms.
1648    * [4] Data is buffered in the driver and pre-acked to the application. This
1649    *     is only supported in 2.5.1.
1650    */
1651   {                           /* Structure member Description                 */
1652                               /* ---------------- -----------                 */
1653     "Quantum DLT4000",        /* .name            Display ("pretty") name     */
1654     15,                       /* .length          Length of next item...      */
1655     "Quantum DLT4000",        /* .vid             Vendor-product ID string    */
1656     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1657     0,                        /* .bsize           Block size (0 = variable)   */
1658                               /* .options         Drive option flags:         */
1659     ST_VARIABLE        |      /*    00001           Supports variable length  */
1660     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
1661     ST_BSR             |      /*    00010           Supports SPACE block rev  */
1662     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
1663     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
1664     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
1665     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
1666     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
1667     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
1668                               /* --------                                     */
1669                               /* 4000D619                                     */
1670     400,                      /* .max_rretries    [Note 3]                    */
1671     400,                      /* .max_wretries    [Note 3]                    */
1672     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
1673     MT_DENSITY3,              /* .default_density (.densities[x])             */
1674     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
1675     0,                        /* .non_motion_timeout Nothing special          */
1676     0,                        /* .io_timeout Four    Nothing Special          */
1677     0,                        /* .rewind_timeout     Nothing Special          */
1678     0,                        /* .space_timeout      Nothing Special          */
1679     0,                        /* .load_timeout       Nothing Special          */
1680     0,                        /* .unload_timeout     Nothing Special          */
1681     MINUTES(360)              /* .erase_timeout      Six hours                */
1682   },
1683 
1684   /*
1685    * [1] The DLT-S4 has three densites at this time,
1686    *     0x49 for SuperDLT tape I, 0x4a for SuperDLT tape II,
1687    *     0x4b for SuperDLT tape III.
1688    *     This drive is configured with ST_KNOWS_MEDIA.
1689    *     That means that it will look at the mediatype from the mode sense
1690    *     to select the density code. The compression will be selected based
1691    *     on the minor node the user opened.
1692    * [2] S4 reports a medium type that is used to select the density.
1693    */
1694   {                           /* Structure member Description                 */
1695                               /* ---------------- -----------                 */
1696     "Quantum DLT-S4",         /* .name            Display ("pretty") name     */
1697     14,                       /* .length          Length of next item...      */
1698     "QUANTUM DLT-S4",         /* .vid             Vendor-product ID string    */
1699     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
1700     0,                        /* .bsize           Block size (0 = variable)   */
1701                               /* .options         Drive option flags:         */
1702     ST_VARIABLE         |     /*  0000001           Supports variable length  */
1703     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
1704     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
1705     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
1706     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
1707     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
1708     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
1709     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
1710     ST_WORMABLE,              /*  1000000            Supports WORM            */
1711                               /*    -----                                     */
1712                               /*  1818619                                     */
1713     -1,                       /* .max_rretries    Not used any more.          */
1714     -1,                       /* .max_wretries    Not used any more.          */
1715     {0x49, 0x4a, 0x4b, 0x4b}, /* .densities       Density codes [Note 1]      */
1716     MT_DENSITY4,              /* .default_density (.densities[x])             */
1717     {0x86, 0x87, 0x91, 0x91}, /* .mediatype       Media type  [Note 2]        */
1718     0,                        /* .non_motion_time                             */
1719     MINUTES(60),              /* .io_time                                     */
1720     MINUTES(4),               /* .rewind_time                                 */
1721     MINUTES(360),             /* .space_time                                  */
1722     MINUTES(16),              /* .load_time                                   */
1723     MINUTES(16),              /* .unload_time                                 */
1724     MINUTES(360)              /* .erase_time                                  */
1725   },
1726 
1727   /*
1728    * Seagate Hornet NS20 Travan
1729    *
1730    *     NOTES
1731    *     -----
1732    *  o This is an unsupported drive.
1733    *
1734    * [1] The NS20 Travan uses 0 or the "default" density code.
1735    * [2] The NS20 Travan has only one speed (if the driver ever cares).
1736    * [3] max_rretries and max_wretries are driver anachronisms.
1737    */
1738   {                           /* Structure member Description                 */
1739                               /* ---------------- -----------                 */
1740     "Seagate Hornet NS20 Travan",
1741                               /* .name            Display ("pretty") name     */
1742     17,                       /* .length          Length of next item...      */
1743     "Seagate STT20000N",      /* .vid             Vendor-product ID string    */
1744     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
1745     512,                      /* .bsize           Block size (0 = variable)   */
1746                               /* .options         Drive option flags:         */
1747     ST_QIC              |     /*    00002           QIC tape device           */
1748     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1749     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1750     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
1751                               /*    -----                                     */
1752                               /*    0840A                                     */
1753     400,                      /* .max_rretries    [Note 3]                    */
1754     400,                      /* .max_wretries    [Note 3]                    */
1755     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
1756     MT_DENSITY1,              /* .default_density (.densities[x])             */
1757     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1758   },
1759 
1760   /*
1761    * Seagate DAT 72
1762    *
1763    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
1764    *  [2] Only one speed.
1765    */
1766 
1767   {                           /* Structure member Description                 */
1768                               /* ---------------- -----------                 */
1769     "Seagate DAT 72",         /* .name            Display ("pretty") name     */
1770     23,                       /* .length          Length of next item...      */
1771     "SEAGATE DAT    DAT72-00",/* .vid             Vendor-product ID string    */
1772     MT_ISDAT,                 /* .type            Numeric type (cf. mtio.h)   */
1773     0,                        /* .bsize           Block size (0 = variable)   */
1774                               /* .options         Drive option flags:         */
1775     ST_VARIABLE         |     /*    00001           variable length records   */
1776     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1777     ST_BSR              |     /*    00010           Supports backspace record */
1778     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
1779     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1780     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1781     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1782                               /*    -----                                     */
1783                               /*    18619                                     */
1784     -1,                       /* .max_rretries    Not used any more.          */
1785     -1,                       /* .max_wretries    Not Used any more.          */
1786     {0x47, 0x47, 0x47, 0x47}, /* .densities       Density codes [Note 1]      */
1787     MT_DENSITY4,              /* .default_density (.densities[x])             */
1788     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1789     0,                        /* .non_motion_timeout                          */
1790     MINUTES(15),              /* .io_timeout                                  */
1791     MINUTES(2),               /* .rewind_timeout                              */
1792     MINUTES(15),              /* .space_timeout                               */
1793     0,                        /* .load_timeout                                */
1794     0,                        /* .unload_timeout                              */
1795     MINUTES(240)              /* .erase_timeout                               */
1796   },
1797 
1798   /*
1799    * Certance Ultrium LTO 3
1800    * [1] This drive supports 3 densites at this time.
1801    *     ST_MODE_SEL_COMP controls compression.
1802    * [2] max_rretries and max_wretries are not used but kept for
1803    *     backward compatibility.
1804    */
1805   {                           /* Structure member Description                 */
1806                               /* ---------------- -----------                 */
1807     "Certance Ultrium 3",     /* .name            Display ("pretty") name     */
1808     17,                       /* .length          Length of next item...      */
1809     "CERTANCEULTRIUM 3",      /* .vid             handles SCSI or FC          */
1810     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1811     0,                        /* .bsize           Block size (0 = variable)   */
1812                               /* .options         Drive option flags:         */
1813     ST_VARIABLE         |     /*    00001           Supports variable length  */
1814     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1815     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1816     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1817     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1818     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1819     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1820                               /*    -----                                     */
1821                               /*    18619                                     */
1822     -1,                       /* .max_rretries    [Note 2]                    */
1823     -1,                       /* .max_wretries    [Note 2]                    */
1824     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
1825     MT_DENSITY4,              /* .default_density (.densities[x])             */
1826     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
1827     0,                        /* .non_motion_timeout                          */
1828     MINUTES(60),              /* .io_timeout                                  */
1829     MINUTES(35),              /* .rewind_timeout                              */
1830     MINUTES(60),              /* .space_timeout                               */
1831     MINUTES(35),              /* .load_timeout                                */
1832     MINUTES(35),              /* .unload_timeout                              */
1833     MINUTES(180)              /* .erase_timeout                               */
1834   },
1835 
1836   /*
1837    * Certance Ultrium LTO 2
1838    * [1] This drive supports two densites at this time.
1839    *     0x40 for Ultrium 1 and 0x42 for Ultrium 2.
1840    *     ST_MODE_SEL_COMP controls compression.
1841    * [2] max_rretries and max_wretries are not used but kept for
1842    *     backward compatibility.
1843    */
1844   {                           /* Structure member Description                 */
1845                               /* ---------------- -----------                 */
1846     "Certance Ultrium 2", /* .name            Display ("pretty") name     */
1847     17,                       /* .length          Length of next item...      */
1848     "CERTANCEULTRIUM 2",      /* .vid             handles SCSI or FC          */
1849     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1850     0,                        /* .bsize           Block size (0 = variable)   */
1851                               /* .options         Drive option flags:         */
1852     ST_VARIABLE         |     /*    00001           Supports variable length  */
1853     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1854     ST_BSR              |     /*    00010           Supports SPACE block rev  */
1855     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
1856     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1857     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1858     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1859                               /*    -----                                     */
1860                               /*    18619                                     */
1861     -1,                       /* .max_rretries    [Note 2]                    */
1862     -1,                       /* .max_wretries    [Note 2]                    */
1863     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
1864     MT_DENSITY4,              /* .default_density (.densities[x])             */
1865     {0, 0, 0, 0},             /* .speeds          Speed codes                 */
1866     0,                        /* .non_motion_timeout                          */
1867     MINUTES(60),              /* .io_timeout                                  */
1868     MINUTES(35),              /* .rewind_timeout                              */
1869     MINUTES(60),              /* .space_timeout                               */
1870     MINUTES(35),              /* .load_timeout                                */
1871     MINUTES(35),              /* .unload_timeout                              */
1872     MINUTES(180)              /* .erase_timeout                               */
1873   },
1874 
1875   /*
1876    * Seagate Ultrium LTO
1877    *
1878    *  [1] Has only one density, Uses Mode Select to enable-disable compression.
1879    *  [2] Only one speed.
1880    */
1881 
1882   {                           /* Structure member Description                 */
1883                               /* ---------------- -----------                 */
1884     "Seagate Ultrium LTO",    /* .name            Display ("pretty") name     */
1885     23,                       /* .length          Length of next item...      */
1886     "SEAGATE ULTRIUM06242-XX",/* .vid             Vendor-product ID string    */
1887     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
1888     0,                        /* .bsize           Block size (0 = variable)   */
1889                               /* .options         Drive option flags:         */
1890     ST_VARIABLE         |     /*    00001           variable length records   */
1891     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
1892     ST_BSR              |     /*    00010           Supports backspace record */
1893     ST_KNOWS_EOD        |     /*    00200           Knows EOD when it sees it */
1894     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
1895     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
1896     ST_MODE_SEL_COMP,         /*    10000           Mode select compression   */
1897                               /*    -----                                     */
1898                               /*    18619                                     */
1899     -1,                       /* .max_rretries    Not used any more.          */
1900     -1,                       /* .max_wretries    Not Used any more.          */
1901     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
1902     MT_DENSITY4,              /* .default_density (.densities[x])             */
1903     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
1904     0,                        /* .non_motion_timeout                          */
1905     MINUTES(10),              /* .io_timeout                                  */
1906     MINUTES(15),              /* .rewind_timeout                              */
1907     MINUTES(120),             /* .space_timeout                               */
1908     MINUTES(5),               /* .load_timeout                                */
1909     MINUTES(2),               /* .unload_timeout                              */
1910     MINUTES(120)              /* .erase_timeout                               */
1911   },
1912 
1913   /*
1914    * SONY 4mm DAT
1915    *
1916    *     NOTES
1917    *     -----
1918    *  o This is an unsupported drive.
1919    *
1920    *  o This entry uses a shortened Vendor-product ID string for the
1921    *    INQUIRY match.
1922    *
1923    * [1] The SDT-5000 uses 0 or the "default" density code.
1924    * [2] The SDT-5000 has only one speed (if the driver ever cares).
1925    * [3] max_rretries and max_wretries are driver anachronisms.
1926    */
1927   {                           /* Structure member Description                 */
1928                               /* ---------------- -----------                 */
1929     "SONY 4mm DAT",           /* .name            Display ("pretty") name     */
1930     12,                       /* .length          Length of next item...      */
1931     "SONY    SDT-****",       /* .vid             Vendor-product ID string    */
1932     ST_TYPE_DAT,              /* .type            Numeric type (cf. mtio.h)   */
1933     0,                        /* .bsize           Block size (0 = variable)   */
1934                               /* .options         Drive option flags:         */
1935     ST_VARIABLE   |           /*    00001           Supports variable length  */
1936     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
1937     ST_BSR        |           /*    00010           Supports SPACE block rev  */
1938     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
1939     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
1940                               /*    -----                                     */
1941                               /*    00439                                     */
1942     400,                      /* .max_rretries    [Note 3]                    */
1943     400,                      /* .max_wretries    [Note 3]                    */
1944     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
1945     MT_DENSITY2,              /* .default_density (.densities[x])             */
1946     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
1947   },
1948 
1949   /*
1950    * Sun StorageTek T10000A tape drive.
1951    *
1952    *     NOTES
1953    *     -----
1954    *  o  The T10000A has special needs - support for SCSI LOCATE and
1955    *     READ POSITION commands - so we must be sure to place this
1956    *     entry before the one for ST_TYPE_STC3490 (generic STK
1957    *     half-inch cartridge drives).
1958    * [1] Compression on the T10000A is controlled
1959    *     via the Device Configuration mode page.
1960    * [2] The T10000A has only one writable density, 0x4A.
1961    * [3] The T10000A has only one speed (if the driver ever cares).
1962    * [4] max_rretries and max_wretries are driver anachronisms.
1963    */
1964   {                           /* Structure member    Description              */
1965                               /* ----------------    -----------              */
1966     "Sun StorageTek T10000A", /* .name               Display ("pretty") name  */
1967     15,                       /* .length             Length of next item...   */
1968     "STK     T10000A",        /* .vid                Vendor-product ID string */
1969     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
1970     0,                        /* .bsize              Block size (0 = variable)*/
1971                               /* .options            Drive option flags:      */
1972     ST_VARIABLE         |     /*  0000001            Supports variable length */
1973     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
1974     ST_BSR              |     /*  0000010            Supports SPACE block rev */
1975     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag*/
1976     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
1977     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
1978     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
1979     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
1980     ST_WORMABLE,              /*  1000000            Supports WORM            */
1981                               /*  -------                                     */
1982                               /*  1018659                                     */
1983     -1,                       /* .max_rretries       [Note 4]                 */
1984     -1,                       /* .max_wretries       [Note 4]                 */
1985     {0x4A,0x4A,0x4A,0x4A},    /* .densities          Density codes [Note 2]   */
1986     MT_DENSITY4,              /* .default_density    (.densities[x])          */
1987     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
1988     0,                        /* .non_motion_timeout Nothing Special          */
1989     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
1990     0,                        /* .rewind_timeout     Nothing Special          */
1991     0,                        /* .space_timeout      Nothing Special          */
1992     0,                        /* .load_timeout       Nothing Special          */
1993     0,                        /* .unload_timeout     Nothing Special          */
1994     MINUTES(180)              /* .erase_timeout      Three Hours              */
1995   },
1996 
1997   /*
1998    * STK 9840C cartridge drive.
1999    *
2000    *     NOTES
2001    *     -----
2002    *  o  The 9840C has special needs - support for SCSI LOCATE and
2003    *     READ POSITION commands - so we must be sure to place this
2004    *     entry before the one for ST_TYPE_STC3490 (generic STK
2005    *     half-inch cartridge drives).
2006    * [1] Compression on the 9840C is controlled
2007    *     via the Device Configuration mode page.
2008    * [2] The 9840C has only one writable density, 0x45. I can read tapes writen
2009    *     with 9840 and 9840B writen with there density code 0x42.
2010    * [3] The 9840C has only one speed (if the driver ever cares).
2011    * [4] max_rretries and max_wretries are driver anachronisms.
2012    */
2013   {                           /* Structure member    Description              */
2014                               /* ----------------    -----------              */
2015     "StorageTek 9840C",       /* .name               Display ("pretty") name  */
2016     14,                       /* .length             Length of next item...   */
2017     "STK     T9840C",         /* .vid                Vendor-product ID string */
2018     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2019     0,                        /* .bsize              Block size (0 = variable)*/
2020                               /* .options            Drive option flags:      */
2021     ST_VARIABLE         |     /*  0000001            Supports variable length */
2022     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2023     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2024     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2025     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2026     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2027     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2028     ST_WORMABLE,              /*  1000000            Supports WORM            */
2029                               /*  -------                                     */
2030                               /*  1018619                                     */
2031     -1,                       /* .max_rretries       [Note 4]                 */
2032     -1,                       /* .max_wretries       [Note 4]                 */
2033     {0x45,0x45,0x45,0x45},    /* .densities          Density codes [Note 2]   */
2034     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2035     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
2036     0,                        /* .non_motion_timeout Nothing Special          */
2037     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
2038     0,                        /* .rewind_timeout     Nothing Special          */
2039     0,                        /* .space_timeout      Nothing Special          */
2040     0,                        /* .load_timeout       Nothing Special          */
2041     0,                        /* .unload_timeout     Nothing Special          */
2042     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2043   },
2044 
2045   /*
2046    * STK 9840B cartridge drive.
2047    *
2048    *     NOTES
2049    *     -----
2050    *  o  The 9840B has special needs - support for SCSI LOCATE and
2051    *     READ POSITION commands - so we must be sure to place this
2052    *     entry before the one for ST_TYPE_STC3490 (generic STK
2053    *     half-inch cartridge drives).
2054    * [1] Compression on the 9840B is controlled
2055    *     via the Device Configuration mode page.
2056    * [2] The 9840B has only one density, 0x42 (or 0 for "default").
2057    * [3] The 9840B has only one speed (if the driver ever cares).
2058    * [4] max_rretries and max_wretries are driver anachronisms.
2059    */
2060   {                           /* Structure member    Description              */
2061                               /* ----------------    -----------              */
2062     "StorageTek 9840B",       /* .name               Display ("pretty") name  */
2063     14,                       /* .length             Length of next item...   */
2064     "STK     T9840B",         /* .vid                Vendor-product ID string */
2065     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2066     0,                        /* .bsize              Block size (0 = variable)*/
2067                               /* .options            Drive option flags:      */
2068     ST_VARIABLE         |     /*  0000001            Supports variable length */
2069     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2070     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2071     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2072     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2073     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2074     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2075     ST_WORMABLE,              /*  1000000            Supports WORM            */
2076                               /*  -------                                     */
2077                               /*  1018619                                     */
2078     -1,                       /* .max_rretries       [Note 4]                 */
2079     -1,                       /* .max_wretries       [Note 4]                 */
2080     {0x42,0x42,0x42,0x42},    /* .densities          Density codes [Note 2]   */
2081     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2082     {0,0,0,0},                /* .speeds             Speed codes [Note 3]     */
2083     0,                        /* .non_motion_timeout Nothing Special          */
2084     MINUTES(5),               /* .io_timeout Five    Five Minutes             */
2085     0,                        /* .rewind_timeout     Nothing Special          */
2086     0,                        /* .space_timeout      Nothing Special          */
2087     0,                        /* .load_timeout       Nothing Special          */
2088     0,                        /* .unload_timeout     Nothing Special          */
2089     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2090   },
2091 
2092   /*
2093    * STK 9940B cartridge drive.
2094    *
2095    *     NOTES
2096    *     -----
2097    * [1] Compression on the 9940 is controlled
2098    *     via the Device Configuration mode page.
2099    * [2] The 9940 has only one density, 0x44.
2100    * [3] The 9940 has only one speed (if the driver ever cares).
2101    * [4] max_rretries and max_wretries are driver not used.
2102    */
2103   {                           /* Structure member    Description               */
2104                               /* ----------------    -----------               */
2105     "StorageTek 9940B",       /* .name               Display ("pretty") name   */
2106     14,                       /* .length             Length of next item...    */
2107     "STK     T9940B",         /* .vid                Vendor-product ID string  */
2108     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h) */
2109     0,                        /* .bsize              Block size (0 = variable) */
2110                               /* .options            Drive option flags:       */
2111     ST_VARIABLE         |     /*  0000001            Supports variable length  */
2112     ST_BSF              |     /*  0000008            Supports SPACE block fwd  */
2113     ST_BSR              |     /*  0000010            Supports SPACE block rev  */
2114     ST_AUTODEN_OVERRIDE |     /*  0000040            Autodensity override flag */
2115     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data    */
2116     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded    */
2117     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB    */
2118     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                  */
2119     ST_WORMABLE,              /*  1000000            Supports WORM             */
2120                               /*  -------                                      */
2121                               /*  1018659                                      */
2122     -1,                       /* .max_rretries       [Note 4]                  */
2123     -1,                       /* .max_wretries       [Note 4]                  */
2124     {0x44,0x44,0x44,0x44},    /* .densities          Density codes [Note 2]    */
2125     MT_DENSITY1,              /* .default_density    (.densities[x])           */
2126     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]      */
2127     0,                        /* .non_motion_timeout Nothing Special           */
2128     MINUTES(5),               /* .io_timeout         Five minutes              */
2129     0,                        /* .rewind_timeout     Nothing Special           */
2130     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840  */
2131     0,                        /* .load_timeout       Nothing Special           */
2132     0,                        /* .unload_timeout     Nothing Special           */
2133     MINUTES(210)              /* .erase_timeout      Three and a half hours    */
2134   },
2135 
2136   /*
2137    * STK 9940 cartridge drive.
2138    *
2139    *     NOTES
2140    *     -----
2141    * [1] Compression on the 9940 is controlled
2142    *     via the Device Configuration mode page.
2143    * [2] The 9940 has only one density, 0x43.
2144    * [3] The 9940 has only one speed (if the driver ever cares).
2145    * [4] max_rretries and max_wretries are driver not used.
2146    */
2147   {                           /* Structure member    Description              */
2148                               /* ----------------    -----------              */
2149     "StorageTek 9940",        /* .name               Display ("pretty") name  */
2150     14,                       /* .length             Length of next item...   */
2151     "STK     T9940A",         /* .vid                Vendor-product ID string */
2152     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2153     0,                        /* .bsize              Block size (0 = variable)*/
2154                               /* .options            Drive option flags:      */
2155     ST_VARIABLE         |     /*  0000001            Supports variable length */
2156     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2157     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2158     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2159     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2160     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2161     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2162     ST_WORMABLE,              /*  1000000            Supports WORM            */
2163                               /*  -------                                     */
2164                               /*  1018619                                     */
2165     -1,                       /* .max_rretries       [Note 4]                 */
2166     -1,                       /* .max_wretries       [Note 4]                 */
2167     {0x43,0x43,0x43,0x43},    /* .densities          Density codes [Note 2]   */
2168     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2169     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
2170     0,                        /* .non_motion_timeout Nothing Special          */
2171     MINUTES(5),               /* .io_timeout         Five Minutes             */
2172     0,                        /* .rewind_timeout     Nothing Special          */
2173     MINUTES(180),             /* .space_timeout      Three Hours     3 x 9840 */
2174     0,                        /* .load_timeout       Nothing Special          */
2175     0,                        /* .unload_timeout     Nothing Special          */
2176     MINUTES(210)              /* .erase_timeout      Three and a half hours   */
2177   },
2178 
2179   /*
2180    * STK 9840 cartridge drive (Sun codename: Ironsides)
2181    *
2182    *     NOTES
2183    *     -----
2184    *  o  The 9840 has special needs - support for SCSI LOCATE and
2185    *     READ POSITION commands - so we must be sure to place this
2186    *     entry before the one for ST_TYPE_STC3490 (generic STK
2187    *     half-inch cartridge drives).
2188    * [1] Compression on the 9840 is controlled
2189    *     via the Device Configuration mode page.
2190    * [2] The 9840 has only one density, 0x42 (or 0 for "default").
2191    * [3] The 9840 has only one speed (if the driver ever cares).
2192    * [4] max_rretries and max_wretries are driver anachronisms.
2193    * [5] ST_LONG_ERASE is not needed or used when .erase_timeout
2194    *     is non-zero.
2195    */
2196   {                           /* Structure member    Description              */
2197                               /* ----------------    -----------              */
2198     "StorageTek 9840",        /* .name               Display ("pretty") name  */
2199     12,                       /* .length             Length of next item...   */
2200     "STK     9840",           /* .vid                Vendor-product ID string */
2201     ST_TYPE_STK9840,          /* .type               Numeric type (cf. mtio.h)*/
2202     0,                        /* .bsize              Block size (0 = variable)*/
2203                               /* .options            Drive option flags:      */
2204     ST_VARIABLE         |     /*  0000001            Supports variable length */
2205     ST_BSF              |     /*  0000008            Supports SPACE block fwd */
2206     ST_BSR              |     /*  0000010            Supports SPACE block rev */
2207     ST_KNOWS_EOD        |     /*  0000200            Recognizes end-of-data   */
2208     ST_UNLOADABLE       |     /*  0000400            Driver can be unloaded   */
2209     ST_NO_RECSIZE_LIMIT |     /*  0008000            Supports blocks > 64KB   */
2210     ST_MODE_SEL_COMP    |     /*  0010000            [Note 1]                 */
2211     ST_WORMABLE,              /*  1000000            Supports WORM            */
2212                               /*  -------                                     */
2213                               /*  1018619                                     */
2214     10,                       /* .max_rretries       [Note 4]                 */
2215     10,                       /* .max_wretries       [Note 4]                 */
2216     {0x00, 0x00, 0x00, 0x00}, /* .densities          Density codes [Note 2]   */
2217     MT_DENSITY1,              /* .default_density    (.densities[x])          */
2218     {0, 0, 0, 0},             /* .speeds             Speed codes [Note 3]     */
2219     0,                        /* .non_motion_timeout Nothing Special          */
2220     MINUTES(5),               /* .io_timeout         Five Minutes             */
2221     0,                        /* .rewind_timeout     Nothing Special          */
2222     0,                        /* .space_timeout      Nothing Special          */
2223     0,                        /* .load_timeout       Nothing Special          */
2224     0,                        /* .unload_timeout     Nothing Special          */
2225     MINUTES(70)               /* .erase_timeout      One Hour and ten Minutes */
2226   },
2227 
2228   /*
2229    * Sony SAIT
2230    *
2231    * Only looking at part of the product ID so it will match SDZ-100 and
2232    * SDZ-130. One is SCSI other is Fibre but same configuration otherwise.
2233    *
2234    */
2235   {                           /* Structure member Description                 */
2236                               /* ---------------- -----------                 */
2237     "Sony Super AIT",         /* .name            Display ("pretty") name     */
2238     13,                       /* .length          Length of next item...      */
2239     "SONY    SDZ-1*",         /* .vid             Vendor-product ID string    */
2240     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2241     0,
2242     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2243     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2244     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2245     ST_AUTODEN_OVERRIDE |     /*  0000040           Suports only one density  */
2246     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
2247     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2248     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2249     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
2250     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
2251                               /*  -------                                     */
2252                               /*  1018659                                     */
2253     -1,                       /* .max_rretries    Not used                    */
2254     -1,                       /* .max_wretries    Not used                    */
2255     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
2256     MT_DENSITY4,              /* .default_density (.densities[x])             */
2257     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2258     0,                        /* .non_motion_timeout Nothing special          */
2259     0,                        /* .io_timeout Four    Nothing Special          */
2260     0,                        /* .rewind_timeout     Nothing Special          */
2261     0,                        /* .space_timeout      Nothing Special          */
2262     0,                        /* .load_timeout       Nothing Special          */
2263     0,                        /* .unload_timeout     Nothing Special          */
2264     0,                        /* .erase_timeout      Six hours                */
2265   },
2266 
2267   /*
2268    * Sony SDX-420
2269    * This drive is listed before the more generic AIT drives becouse it runs
2270    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
2271    * leads st to beleive its a variable block capable but it will fail any
2272    * i/o that doesn't have the fix bit set in the CDB.
2273    */
2274   {                           /* Structure member Description                 */
2275                               /* ---------------- -----------                 */
2276     "Sony AIT II",            /* .name            Display ("pretty") name     */
2277     15,                       /* .length          Length of next item...      */
2278     "SONY    SDX-420*",       /* .vid             Vendor-product ID string    */
2279     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2280     512,
2281     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2282     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2283     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
2284     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
2285     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2286     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2287     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
2288                               /*    -----                                     */
2289                               /*    18658                                     */
2290     -1,                       /* .max_rretries    Not used                    */
2291     -1,                       /* .max_wretries    Not used                    */
2292     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2293     MT_DENSITY4,              /* .default_density (.densities[x])             */
2294     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2295     0,                        /* .non_motion_timeout Nothing special          */
2296     0,                        /* .io_timeout Four    Nothing Special          */
2297     0,                        /* .rewind_timeout     Nothing Special          */
2298     0,                        /* .space_timeout      Nothing Special          */
2299     0,                        /* .load_timeout       Nothing Special          */
2300     0,                        /* .unload_timeout     Nothing Special          */
2301     0,                        /* .erase_timeout      Six hours                */
2302   },
2303 
2304   /*
2305    * Sony SDX-520
2306    * This drive is listed before the more generic AIT drives becouse it runs
2307    * only in fixed block mode. It also responds to READ BLOCK LIMITS which
2308    * leads st to beleive its a variable block capable but it will fail any
2309    * i/o that doesn't have the fix bit set in the CDB.
2310    */
2311   {                           /* Structure member Description                 */
2312                               /* ---------------- -----------                 */
2313     "Sony AIT II",            /* .name            Display ("pretty") name     */
2314     15,                       /* .length          Length of next item...      */
2315     "SONY    SDX-520*",       /* .vid             Vendor-product ID string    */
2316     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2317     512,
2318     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2319     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2320     ST_AUTODEN_OVERRIDE |     /*    00040           One density code          */
2321     ST_KNOWS_EOD        |     /*    00200           Knows End Of Data         */
2322     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2323     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2324     ST_MODE_SEL_COMP,         /*    10000           mode select compression   */
2325                               /*    -----                                     */
2326                               /*    18658                                     */
2327     -1,                       /* .max_rretries    Not used                    */
2328     -1,                       /* .max_wretries    Not used                    */
2329     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2330     MT_DENSITY4,              /* .default_density (.densities[x])             */
2331     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2332     0,                        /* .non_motion_timeout Nothing special          */
2333     0,                        /* .io_timeout Four    Nothing Special          */
2334     0,                        /* .rewind_timeout     Nothing Special          */
2335     0,                        /* .space_timeout      Nothing Special          */
2336     0,                        /* .load_timeout       Nothing Special          */
2337     0,                        /* .unload_timeout     Nothing Special          */
2338     0,                        /* .erase_timeout      Six hours                */
2339   },
2340 
2341   /* Sony generic AIT
2342    *
2343    *
2344    */
2345   {                           /* Structure member Description                 */
2346                               /* ---------------- -----------                 */
2347     "Sony AIT",               /* .name            Display ("pretty") name     */
2348     12,                       /* .length          Length of next item...      */
2349     "SONY    SDX-*",          /* .vid             Vendor-product ID string    */
2350     ST_TYPE_AIT,              /* .type            Numeric type (cf. mtio.h)   */
2351     0,
2352     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2353     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2354     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2355     ST_AUTODEN_OVERRIDE |     /*  0000040           One density code          */
2356     ST_KNOWS_EOD        |     /*  0000200           Knows End Of Data         */
2357     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2358     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2359     ST_MODE_SEL_COMP    |     /*  0010000           mode select compression   */
2360     ST_WORMABLE,              /*  1000000           Drive is WORM capable     */
2361                               /*  -------                                     */
2362                               /*  1018659                                     */
2363     -1,                       /* .max_rretries    Not used                    */
2364     -1,                       /* .max_wretries    Not used                    */
2365     {0x30, 0x30, 0x30, 0x30}, /* .densities       Density codes [Note 1]      */
2366     MT_DENSITY4,              /* .default_density (.densities[x])             */
2367     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
2368     0,                        /* .non_motion_timeout Nothing special          */
2369     0,                        /* .io_timeout Four    Nothing Special          */
2370     0,                        /* .rewind_timeout     Nothing Special          */
2371     0,                        /* .space_timeout      Nothing Special          */
2372     0,                        /* .load_timeout       Nothing Special          */
2373     0,                        /* .unload_timeout     Nothing Special          */
2374     0,                        /* .erase_timeout      Six hours                */
2375   },
2376 
2377   /*
2378    * Sun DLT7000
2379    *
2380    *     NOTES
2381    *     -----
2382    * [1] The DLT7000 implements many tape formats, but the st driver supports
2383    *     only the four highest densities.
2384    * [2] The DLT7000 has only one speed (if the driver ever cares).
2385    * [3] max_rretries and max_wretries are driver anachronisms.
2386    * [4] Data is buffered in the driver and pre-acked to the application. This
2387    *     is only supported in 2.5.1.
2388    */
2389   {                           /* Structure member Description                 */
2390                               /* ---------------- -----------                 */
2391     "Sun DLT7000",            /* .name            Display ("pretty") name     */
2392     15,                       /* .length          Length of next item...      */
2393     "SUN     DLT7000",        /* .vid             Vendor-product ID string    */
2394     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2395     0,                        /* .bsize           Block size (0 = variable)   */
2396                               /* .options         Drive option flags:         */
2397     ST_VARIABLE         |     /*    00001           Supports variable length  */
2398     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2399     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2400     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2401     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
2402     ST_LONG_TIMEOUTS    |     /*    01000           More time for some ops    */
2403     ST_BUFFERED_WRITES  |     /*    04000           [Note 4]                  */
2404     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
2405     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
2406                               /* --------                                     */
2407                               /* 4000D619                                     */
2408     400,                      /* .max_rretries    [Note 3]                    */
2409     400,                      /* .max_wretries    [Note 3]                    */
2410     {0x82, 0x83, 0x84, 0x85}, /* .densities       Density codes [Note 1]      */
2411     MT_DENSITY3,              /* .default_density (.densities[x])             */
2412     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2413     0,                        /* .non_motion_timeout Nothing special          */
2414     0,                        /* .io_timeout Four    Nothing Special          */
2415     0,                        /* .rewind_timeout     Nothing Special          */
2416     0,                        /* .space_timeout      Nothing Special          */
2417     0,                        /* .load_timeout       Nothing Special          */
2418     0,                        /* .unload_timeout     Nothing Special          */
2419     MINUTES(360)              /* .erase_timeout      Six hours                */
2420   },
2421 
2422   /*
2423    * Sun DLT4000
2424    *
2425    *     NOTES
2426    *     -----
2427    * [1] The DLT4000 implements many tape formats, but the st driver supports
2428    *     only the four highest densities.
2429    * [2] The DLT4000 has only one speed (if the driver ever cares).
2430    * [3] max_rretries and max_wretries are driver anachronisms.
2431    * [4] Data is buffered in the driver and pre-acked to the application. This
2432    *     is only supported in 2.5.1.
2433    */
2434   {                           /* Structure member Description                 */
2435                               /* ---------------- -----------                 */
2436     "DLT4000",                /* .name            Display ("pretty") name     */
2437     15,                       /* .length          Length of next item...      */
2438     "SUN     DLT4000",        /* .vid             Vendor-product ID string    */
2439     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2440     0,                        /* .bsize           Block size (0 = variable)   */
2441                               /* .options         Drive option flags:         */
2442     ST_VARIABLE        |      /*    00001           Supports variable length  */
2443     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2444     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2445     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2446     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2447     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2448     ST_BUFFERED_WRITES |      /*    04000           [Note 4]                  */
2449     ST_NO_RECSIZE_LIMIT|      /*    08000           Supports blocks > 64KB    */
2450     ST_CLN_TYPE_3,            /* 40000000         Asks to be cleaned this way */
2451                               /* --------                                     */
2452                               /* 4000D619                                     */
2453     400,                      /* .max_rretries    [Note 3]                    */
2454     400,                      /* .max_wretries    [Note 3]                    */
2455     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 1]      */
2456     MT_DENSITY3,              /* .default_density (.densities[x])             */
2457     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2458     0,                        /* .non_motion_timeout Nothing special          */
2459     0,                        /* .io_timeout Four    Nothing Special          */
2460     0,                        /* .rewind_timeout     Nothing Special          */
2461     0,                        /* .space_timeout      Nothing Special          */
2462     0,                        /* .load_timeout       Nothing Special          */
2463     0,                        /* .unload_timeout     Nothing Special          */
2464     MINUTES(360)              /* .erase_timeout      Six hours                */
2465   },
2466 
2467   /*
2468    * Sun DLT4700
2469    *
2470    *     NOTES
2471    *     -----
2472    * [1] Compression on the DLT4700 is controlled via the Device Configuration
2473    *     mode page or the Data Compression page (either one).
2474    * [2] The DLT4700 implements many tape formats, but the st driver supports
2475    *     only the four highest densities.
2476    * [3] The DLT4700 has only one speed (if the driver ever cares).
2477    * [4] max_rretries and max_wretries are driver anachronisms.
2478    * [5] Data is buffered in the driver and pre-acked to the application. This
2479    *     is only supported in 2.5.1.
2480    */
2481   {                           /* Structure member Description                 */
2482                               /* ---------------- -----------                 */
2483     "DLT4700 Library",        /* .name            Display ("pretty") name     */
2484     15,                       /* .length          Length of next item...      */
2485     "SUN     DLT4700",        /* .vid             Vendor-product ID string    */
2486     ST_TYPE_DLT,              /* .type            Numeric type (cf. mtio.h)   */
2487     0,                        /* .bsize           Block size (0 = variable)   */
2488                               /* .options         Drive option flags:         */
2489     ST_VARIABLE        |      /*    00001           Supports variable length  */
2490     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2491     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2492     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2493     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2494     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2495     ST_BUFFERED_WRITES |      /*    04000           [Note 5]                  */
2496     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2497                               /*    -----                                     */
2498                               /*    0D619                                     */
2499     400,                      /* .max_rretries    [Note 4]                    */
2500     400,                      /* .max_wretries    [Note 4]                    */
2501     {0x80, 0x81, 0x82, 0x83}, /* .densities       Density codes [Note 2]      */
2502     MT_DENSITY3,              /* .default_density (.densities[x])             */
2503     { 0, 0, 0, 0 },           /* .speeds          Speed codes [Note 2]        */
2504     0,                        /* .non_motion_timeout Nothing special          */
2505     0,                        /* .io_timeout Four    Nothing Special          */
2506     0,                        /* .rewind_timeout     Nothing Special          */
2507     0,                        /* .space_timeout      Nothing Special          */
2508     0,                        /* .load_timeout       Nothing Special          */
2509     0,                        /* .unload_timeout     Nothing Special          */
2510     MINUTES(360)              /* .erase_timeout      Six hours                */
2511   },
2512 
2513   /*
2514    * Tandberg SLR5 4/8G (standard firmware)
2515    *
2516    *     NOTES
2517    *     -----
2518    * [1] The density code entry requires four values, even if there are less
2519    *     than four values for the drive.
2520    * [2] The Tandberg SLR5 4/8G has only one speed (if the driver ever cares).
2521    * [3] max_rretries and max_wretries are driver anachronisms.
2522    */
2523   {                           /* Structure member Description                 */
2524                               /* ---------------- -----------                 */
2525     "Tandberg 4/8 Gig QIC",   /* .name            Display ("pretty") name     */
2526     19,                       /* .length          Length of next item...      */
2527     "TANDBERG SLR5 4/8GB",    /* .vid             Vendor-product ID string    */
2528     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
2529     0,                        /* .bsize           Block size (0 = variable)   */
2530                               /* .options         Drive option flags:         */
2531     ST_VARIABLE        |      /*    00001           Supports variable length  */
2532     ST_QIC             |      /*    00002           QIC tape device           */
2533     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2534     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2535     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2536     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2537     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2538     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2539     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2540                               /*    -----                                     */
2541                               /*    0963B                                     */
2542     400,                      /* .max_rretries    [Note 3]                    */
2543     400,                      /* .max_wretries    [Note 3]                    */
2544     {0x22, 0x22, 0x26, 0x26}, /* .densities       Density codes [Note 1]      */
2545     MT_DENSITY4,              /* .default_density (.densities[x])             */
2546     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2547   },
2548 
2549   /*
2550    * Tandberg SLR5 (SMI firmware).
2551    *
2552    *     NOTES
2553    *     -----
2554    *  o The inquiry string for this drive is actually padded with blanks, but
2555    *    we only check the first 13 characters so that this will act as a default
2556    *    to cover other revisions of firmware on SLR5s which may show up.
2557    *
2558    * [1] The density code entry requires four values, even if there are less
2559    *     than four values for the drive.
2560    * [2] The Tandberg SLR5 has only one speed (if the driver ever cares).
2561    * [3] max_rretries and max_wretries are driver anachronisms.
2562    */
2563   {                           /* Structure member Description                 */
2564                               /* ---------------- -----------                 */
2565     "Tandberg 8 Gig QIC",     /* .name            Display ("pretty") name     */
2566     13,                       /* .length          Length of next item...      */
2567     "TANDBERG SLR5",          /* .vid             Vendor-product ID string    */
2568     ST_TYPE_TAND25G,          /* .type            Numeric type (cf. mtio.h)   */
2569     0,                        /* .bsize           Block size (0 = variable)   */
2570                               /* .options         Drive option flags:         */
2571     ST_VARIABLE        |      /*    00001           Supports variable length  */
2572     ST_QIC             |      /*    00002           QIC tape device           */
2573     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2574     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2575     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2576     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2577     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2578     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2579     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2580                               /*    -----                                     */
2581                               /*    0963B                                     */
2582     400,                      /* .max_rretries    [Note 3]                    */
2583     400,                      /* .max_wretries    [Note 3]                    */
2584     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
2585     MT_DENSITY4,              /* .default_density (.densities[x])             */
2586     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2587   },
2588 
2589   /*
2590    * Tandberg 4100 QIC
2591    *
2592    *     NOTES
2593    *     -----
2594    *  o This is an unsupported drive.
2595    *
2596    * [1] The Tandberg 4100 uses 0 or the "default" density code.
2597    * [2] The Tandberg 4100 has only one speed (if the driver ever cares).
2598    * [3] max_rretries and max_wretries are driver anachronisms.
2599    */
2600   {                           /* Structure member Description                 */
2601                               /* ---------------- -----------                 */
2602     "Tandberg 4100 QIC",      /* .name            Display ("pretty") name     */
2603     13,                       /* .length          Length of next item...      */
2604     "TANDBERG 4100",          /* .vid             Vendor-product ID string    */
2605     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2606     512,                      /* .bsize           Block size (0 = variable)   */
2607                               /* .options         Drive option flags:         */
2608     ST_QIC        |           /*    00002           QIC tape device           */
2609     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
2610     ST_BSR        |           /*    00010           Supports SPACE block rev  */
2611     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
2612     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
2613     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2614                               /*    -----                                     */
2615                               /*    0063A                                     */
2616     400,                      /* .max_rretries    [Note 3]                    */
2617     400,                      /* .max_wretries    [Note 3]                    */
2618     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2619     MT_DENSITY2,              /* .default_density (.densities[x])             */
2620     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2621   },
2622 
2623   /*
2624    * Tandberg 4200 QIC
2625    *
2626    *     NOTES
2627    *     -----
2628    *  o This is an unsupported drive.
2629    *
2630    * [1] The Tandberg 4200 uses 0 or the "default" density code.
2631    * [2] The Tandberg 4200 has only one speed (if the driver ever cares).
2632    * [3] max_rretries and max_wretries are driver anachronisms.
2633    */
2634   {                           /* Structure member Description                 */
2635                               /* ---------------- -----------                 */
2636     "Tandberg 4200 QIC",      /* .name            Display ("pretty") name     */
2637     13,                       /* .length          Length of next item...      */
2638     "TANDBERG 4200",          /* .vid             Vendor-product ID string    */
2639     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2640     512,                      /* .bsize           Block size (0 = variable)   */
2641                               /* .options         Drive option flags:         */
2642     ST_QIC        |           /*    00002           QIC tape device           */
2643     ST_BSF        |           /*    00008           Supports SPACE block fwd  */
2644     ST_BSR        |           /*    00010           Supports SPACE block rev  */
2645     ST_LONG_ERASE |           /*    00020           Needs extra time to erase */
2646     ST_KNOWS_EOD  |           /*    00200           Recognizes end-of-data    */
2647     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2648                               /*    -----                                     */
2649                               /*    0063A                                     */
2650     400,                      /* .max_rretries    [Note 3]                    */
2651     400,                      /* .max_wretries    [Note 3]                    */
2652     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2653     MT_DENSITY2,              /* .default_density (.densities[x])             */
2654     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2655   },
2656 
2657   /*
2658    * Tandberg QIC 2.5 Gig Tape Drive
2659    *
2660    *     NOTES
2661    *     -----
2662    * [1] The TDC 4200 uses 0 or the "default" density code.
2663    * [2] The TDC 4200 has only one speed (if the driver ever cares).
2664    * [3] max_rretries and max_wretries are driver anachronisms.
2665    * [4] Data is buffered in the driver and pre-acked to the application. This
2666    *     is only supported in 2.5.1.
2667    */
2668   {                           /* Structure member Description                 */
2669                               /* ---------------- -----------                 */
2670     "Tandberg QIC 2.5 Gig Tape Drive",
2671                               /* .name            Display ("pretty") name     */
2672     16,                       /* .length          Length of next item...      */
2673     "TANDBERG TDC 420*",      /* .vid             Vendor-product ID string    */
2674     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2675     0,                        /* .bsize           Block size (0 = variable)   */
2676                               /* .options         Drive option flags:         */
2677     ST_VARIABLE          |    /*    00001           Supports variable length  */
2678     ST_QIC               |    /*    00002           QIC tape device           */
2679     ST_BSF               |    /*    00008           Supports SPACE block fwd  */
2680     ST_BSR               |    /*    00010           Supports SPACE block rev  */
2681     ST_LONG_ERASE        |    /*    00020           Needs extra time to erase */
2682     ST_AUTODEN_OVERRIDE  |    /*    00040           Autodensity override flag */
2683     ST_KNOWS_EOD         |    /*    00200           Recognizes end-of-data    */
2684     ST_UNLOADABLE        |    /*    00400           Driver can be unloaded    */
2685     ST_LONG_TIMEOUTS     |    /*    01000           More time for some ops    */
2686     ST_BUFFERED_WRITES   |    /*    04000           [Note 4]                  */
2687     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2688                               /*    -----                                     */
2689                               /*    0D67B                                     */
2690     400,                      /* .max_rretries    [Note 3]                    */
2691     400,                      /* .max_wretries    [Note 3]                    */
2692     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2693     MT_DENSITY1,              /* .default_density (.densities[x])             */
2694     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2695   },
2696 
2697   /*
2698    * Tandberg MLR1 QIC
2699    *
2700    *     NOTES
2701    *     -----
2702    * [1] The MLR1 uses 0 or the "default" density code.
2703    * [2] The MLR1 has only one speed (if the driver ever cares).
2704    * [3] max_rretries and max_wretries are driver anachronisms.
2705    * [4] Data is buffered in the driver and pre-acked to the application. This
2706    *     is only supported in 2.5.1.
2707    */
2708   {                           /* Structure member Description                 */
2709                               /* ---------------- -----------                 */
2710     "Tandberg MLR1 QIC",      /* .name            Display ("pretty") name     */
2711     12,                       /* .length          Length of next item...      */
2712     "TANDBERGMLR1",           /* .vid             Vendor-product ID string    */
2713     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
2714     512,                      /* .bsize           Block size (0 = variable)   */
2715                               /* .options         Drive option flags:         */
2716     ST_QIC            |       /*    00002         QIC tape device             */
2717     ST_BSF            |       /*    00008         Supports SPACE block fwd    */
2718     ST_BSR            |       /*    00010         Supports SPACE block rev    */
2719     ST_LONG_ERASE     |       /*    00020         Needs extra time to erase   */
2720     ST_KNOWS_EOD      |       /*    00200         Recognizes end-of-data      */
2721     ST_UNLOADABLE     |       /*    00400         Driver can be unloaded      */
2722     ST_BUFFERED_WRITES,       /*    04000         [Note 4]                    */
2723                               /*    -----                                     */
2724                               /*    0463A                                     */
2725     400,                      /* .max_rretries    [Note 3]                    */
2726     400,                      /* .max_wretries    [Note 3]                    */
2727     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2728     MT_DENSITY1,              /* .default_density (.densities[x])             */
2729     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2730   },
2731 
2732   /*
2733    * Tandberg MLR3 QIC
2734    *
2735    *     NOTES
2736    *     -----
2737    * [1] The density code entry requires four values, even if there are less
2738    *     than four values for the drive.
2739    * [2] The MLR3 has only one speed (if the driver ever cares).
2740    * [3] max_rretries and max_wretries are driver anachronisms.
2741    */
2742   {                           /* Structure member Description                 */
2743                               /* ---------------- -----------                 */
2744     "Tandberg 50 Gig QIC",    /* .name            Display ("pretty") name     */
2745     12,                       /* .length          Length of next item...      */
2746     "TANDBERGMLR3",           /* .vid             Vendor-product ID string    */
2747     MT_ISTAND25G,             /* .type            Numeric type (cf. mtio.h)   */
2748     0,                        /* .bsize           Block size (0 = variable)   */
2749                               /* .options         Drive option flags:         */
2750     ST_VARIABLE        |      /*    00001           Supports variable length  */
2751     ST_QIC             |      /*    00002           QIC tape device           */
2752     ST_BSF             |      /*    00008           Supports SPACE block fwd  */
2753     ST_BSR             |      /*    00010           Supports SPACE block rev  */
2754     ST_LONG_ERASE      |      /*    00020           Needs extra time to erase */
2755     ST_KNOWS_EOD       |      /*    00200           Recognizes end-of-data    */
2756     ST_UNLOADABLE      |      /*    00400           Driver can be unloaded    */
2757     ST_LONG_TIMEOUTS   |      /*    01000           More time for some ops    */
2758     ST_NO_RECSIZE_LIMIT,      /*    08000           Supports blocks > 64KB    */
2759                               /*    -----                                     */
2760                               /*    0963B                                     */
2761     400,                      /* .max_rretries    [Note 3]                    */
2762     400,                      /* .max_wretries    [Note 3]                    */
2763     {0xA0, 0xD0, 0xD0, 0xD0}, /* .densities       Density codes [Note 1]      */
2764     MT_DENSITY3,              /* .default_density (.densities[x])             */
2765     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2766   },
2767 
2768   /*
2769    * WangDAT 3.81mm cartridge
2770    *
2771    *     NOTES
2772    *     -----
2773    *  o This is an unsupported drive.
2774    *
2775    * [1] The WangDAT 3.81mm uses 0 or the "default" density code.
2776    * [2] The WangDAT 3.81mm has only one speed (if the driver ever cares).
2777    * [3] max_rretries and max_wretries are driver anachronisms.
2778    */
2779   {                           /* Structure member Description                 */
2780                               /* ---------------- -----------                 */
2781     "Wang DAT 3.81 Helical Scan",
2782                               /* .name            Display ("pretty") name     */
2783     7,                        /* .length          Length of next item...      */
2784     "WangDAT",                /* .vid             Vendor-product ID string    */
2785     ST_TYPE_WANGDAT,          /* .type            Numeric type (cf. mtio.h)   */
2786     0,                        /* .bsize           Block size (0 = variable)   */
2787                               /* .options         Drive option flags:         */
2788     ST_VARIABLE         |     /*    00001           Supports variable length  */
2789     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2790     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2791     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2792     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2793     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2794                               /*    -----                                     */
2795                               /*    00659                                     */
2796     5000,                     /* .max_rretries    [Note 3]                    */
2797     5000,                     /* .max_wretries    [Note 3]                    */
2798     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2799     MT_DENSITY2,              /* .default_density (.densities[x])             */
2800     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2801   },
2802 
2803   /*
2804    * Wangtek QIC-150 1/4" cartridge
2805    *
2806    *     NOTES
2807    *     -----
2808    *  o This is an unsupported drive.
2809    *
2810    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
2811    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
2812    * [3] max_rretries and max_wretries are driver anachronisms.
2813    */
2814   {                           /* Structure member Description                 */
2815                               /* ---------------- -----------                 */
2816     "Wangtek QIC-150",        /* .name            Display ("pretty") name     */
2817     14,                       /* .length          Length of next item...      */
2818     "WANGTEK 5150ES",         /* .vid             Vendor-product ID string    */
2819     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
2820     512,                      /* .bsize           Block size (0 = variable)   */
2821                               /* .options         Drive option flags:         */
2822     ST_QIC              |     /*    00002           QIC tape device           */
2823     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2824     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2825     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2826                               /*    -----                                     */
2827                               /*    00642                                     */
2828     400,                      /* .max_rretries    [Note 3]                    */
2829     400,                      /* .max_wretries    [Note 3]                    */
2830     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2831     MT_DENSITY2,              /* .default_density (.densities[x])             */
2832     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2833   },
2834 
2835   /*
2836    * Wangtek 4mm RDAT drive
2837    *
2838    *     NOTES
2839    *     -----
2840    *  o This is an unsupported drive.
2841    *
2842    *  o This entry uses a shortened Vendor-product ID string for the
2843    *    INQUIRY match.
2844    *
2845    * [1] The Wangtek 4mm RDAT uses 0 or the "default" density code.
2846    * [2] The Wangtek 4mm RDAT has only one speed (if the driver ever cares).
2847    * [3] max_rretries and max_wretries are driver anachronisms.
2848    */
2849   {                           /* Structure member Description                 */
2850                               /* ---------------- -----------                 */
2851     "Wangtek 4mm Helical Scan",
2852                               /* .name            Display ("pretty") name     */
2853     14,                       /* .length          Length of next item...      */
2854     "WANGTEK 6130-H*",        /* .vid             Vendor-product ID string    */
2855     ST_TYPE_WANGTHS,          /* .type            Numeric type (cf. mtio.h)   */
2856     0,                        /* .bsize           Block size (0 = variable)   */
2857                               /* .options         Drive option flags:         */
2858     ST_VARIABLE         |     /*    00001           Supports variable length  */
2859     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2860     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2861     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
2862     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2863     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2864                               /*    -----                                     */
2865                               /*    00659                                     */
2866     400,                      /* .max_rretries    [Note 3]                    */
2867     400,                      /* .max_wretries    [Note 3]                    */
2868     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2869     MT_DENSITY2,              /* .default_density (.densities[x])             */
2870     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2871   },
2872 
2873   /*
2874    * Wangtek QIC-150 1/4" cartridge
2875    *
2876    *     NOTES
2877    *     -----
2878    *  o This is an unsupported drive.
2879    *
2880    * [1] The Wangtek QIC-150 uses 0 or the "default" density code.
2881    * [2] The Wangtek QIC-150 has only one speed (if the driver ever cares).
2882    * [3] max_rretries and max_wretries are driver anachronisms.
2883    */
2884   {                           /* Structure member Description                 */
2885                               /* ---------------- -----------                 */
2886     "Wangtek 5525ES SCSI",    /* .name            Display ("pretty") name     */
2887     19,                       /* .length          Length of next item...      */
2888     "WANGTEK 5525ES SCSI",    /* .vid             Vendor-product ID string    */
2889     ST_TYPE_WANGTEK,          /* .type            Numeric type (cf. mtio.h)   */
2890     512,                      /* .bsize           Block size (0 = variable)   */
2891                               /* .options         Drive option flags:         */
2892     ST_QIC              |     /*    00002           QIC tape device           */
2893     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
2894     ST_BSR              |     /*    00010           Supports SPACE block rev  */
2895     ST_LONG_ERASE       |     /*    00020           Needs extra time to erase */
2896     ST_AUTODEN_OVERRIDE |     /*    00040           Autdensity override flag  */
2897     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
2898     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
2899                               /*    -----                                     */
2900                               /*    0067A                                     */
2901     400,                      /* .max_rretries    [Note 3]                    */
2902     400,                      /* .max_wretries    [Note 3]                    */
2903     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
2904     MT_DENSITY2,              /* .default_density (.densities[x])             */
2905     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2906   },
2907 
2908   /*
2909    * [1] The Ecrix VXA-1 has only one density at this time,
2910    *     Compression is controlled via the Device Configuration
2911    *     mode page.
2912    * [2] The Ecrix VXA-1 is a veriable speed device. The drive determines
2913    *     the optimum speed. (if the driver ever cares).
2914    */
2915   {                           /* Structure member Description                 */
2916                               /* ---------------- -----------                 */
2917     "Ecrix VXA-1",            /* .name            Display ("pretty") name     */
2918     13,                       /* .length          Length of next item...      */
2919     "ECRIX   VXA-1",          /* .vid             Vendor-product ID string    */
2920     MT_ISOTHER,               /* .type            Numeric type (cf. mtio.h)   */
2921     0,                        /* .bsize           Block size (0 = variable)   */
2922                               /* .options         Drive option flags:         */
2923     ST_VARIABLE             | /*    00001           Supports variable length  */
2924     ST_BSF                  | /*    00008           Supports SPACE block fwd  */
2925     ST_BSR                  | /*    00010           Supports SPACE block rev  */
2926     ST_LONG_ERASE           | /*    00020           Needs extra time to erase */
2927     ST_KNOWS_EOD            | /*    00200           Recognizes end-of-data    */
2928     ST_UNLOADABLE           | /*    00400           Driver can be unloaded    */
2929     ST_SOFT_ERROR_REPORTING | /*    00800           Reports errors on close   */
2930     ST_LONG_TIMEOUTS        | /*    01000           More time for some ops    */
2931     ST_NO_RECSIZE_LIMIT     | /*    08000           Supports blocks > 64KB    */
2932     ST_MODE_SEL_COMP        | /*    10000         Mode Select to enable comp  */
2933     ST_CLN_TYPE_1,            /* 10000000         Asks to be cleaned this way */
2934                               /* --------                                     */
2935                               /* 10019E39                                     */
2936     -1,                       /* .max_rretries                                */
2937     -1,                       /* .max_wretries                                */
2938     {0x80, 0x80, 0x80, 0x80}, /* .densities       Density codes [Note 1]      */
2939     MT_DENSITY4,              /* .default_density (.densities[x])             */
2940     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
2941   },
2942 
2943   /*
2944    * [1] The IBM Ultrium Gen 4 "OEM" version has two densites at this time,
2945    *     One for Gen 3 0x44, One for Gen 4 0x46.
2946    *     This drive is configured with ST_KNOWS_MEDIA.
2947    *     That means that it will look at the mediatype from the mode sense
2948    *     to select the density code. The compression will be selected based
2949    *     on the minor node the user opened.
2950    * [2] The IBM LTO reports a medium type that is used to select the density.
2951    */
2952   {                           /* Structure member Description                 */
2953                               /* ---------------- -----------                 */
2954     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
2955     19,                       /* .length          Length of next item...      */
2956     "IBM     ULTRIUM-TD4",    /* .vid             Vendor-product ID string    */
2957     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
2958     0,                        /* .bsize           Block size (0 = variable)   */
2959                               /* .options         Drive option flags:         */
2960     ST_VARIABLE         |     /*  0000001           Supports variable length  */
2961     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
2962     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
2963     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
2964     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
2965     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
2966     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
2967     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
2968     ST_WORMABLE,              /*  1000000         Is WORM capable             */
2969                               /*  -------                                     */
2970                               /*  1818619                                     */
2971     -1,                       /* .max_rretries    Not used any more.          */
2972     -1,                       /* .max_wretries    Not used any more.          */
2973     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
2974     MT_DENSITY4,              /* .default_density (.densities[x])             */
2975     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
2976     MINUTES(1),               /* .non_motion_time                             */
2977     MINUTES(23),              /* .io_time                                     */
2978     MINUTES(9),               /* .rewind_time                                 */
2979     MINUTES(183),             /* .space_time      worst case directory invalid*/
2980     MINUTES(9),               /* .load_time                                   */
2981     MINUTES(13),              /* .unload_time                                 */
2982     MINUTES(180)              /* .erase_time                                  */
2983   },
2984 
2985   /*
2986    * [1] The IBM Ultrium Gen 4 "IBM" version has two densites at this time,
2987    *     One for Gen 3 0x44, one for Gen 4 0x46.
2988    *     This drive is configured with ST_KNOWS_MEDIA.
2989    *     That means that it will look at the mediatype from the mode sense
2990    *     to select the density code. The compression will be selected based
2991    *     on the minor node the user opened.
2992    * [2] The IBM LTO reports a medium type that is used to select the density.
2993    */
2994   {                           /* Structure member Description                 */
2995                               /* ---------------- -----------                 */
2996     "IBM Ultrium Gen 4 LTO",  /* .name            Display ("pretty") name     */
2997     19,                       /* .length          Length of next item...      */
2998     "IBM     ULT3580-TD4",    /* .vid             Vendor-product ID string    */
2999     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3000     0,                        /* .bsize           Block size (0 = variable)   */
3001                               /* .options         Drive option flags:         */
3002     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3003     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3004     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3005     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3006     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3007     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3008     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3009     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3010     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3011                               /*  -------                                     */
3012                               /*  1818619                                     */
3013     -1,                       /* .max_rretries    Not used any more.          */
3014     -1,                       /* .max_wretries    Not used any more.          */
3015     {0x44, 0x44, 0x46, 0x46}, /* .densities       Density codes [Note 1]      */
3016     MT_DENSITY4,              /* .default_density (.densities[x])             */
3017     {0x38, 0x38, 0x48, 0x48}, /* .mediatype       Media type  [Note 2]        */
3018     MINUTES(1),               /* .non_motion_time                             */
3019     MINUTES(23),              /* .io_time                                     */
3020     MINUTES(9),               /* .rewind_time                                 */
3021     MINUTES(183),             /* .space_time      worst case directory invalid*/
3022     MINUTES(9),               /* .load_time                                   */
3023     MINUTES(13),              /* .unload_time                                 */
3024     MINUTES(180)              /* .erase_time                                  */
3025   },
3026 
3027   /*
3028    * [1] The IBM Ultrium Gen 3 "OEM" version has three densites at this time,
3029    *     One for Gen 1 0x40, One for Gen 2 0x42 and for Gen 3 0x44.
3030    *     This drive is configured with ST_KNOWS_MEDIA.
3031    *     That means that it will look at the mediatype from the mode sense
3032    *     to select the density code. The compression will be selected based
3033    *     on the minor node the user opened.
3034    * [2] The IBM LTO reports a medium type that is used to select the density.
3035    */
3036   {                           /* Structure member Description                 */
3037                               /* ---------------- -----------                 */
3038     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
3039     19,                       /* .length          Length of next item...      */
3040     "IBM     ULTRIUM-TD3",    /* .vid             Vendor-product ID string    */
3041     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3042     0,                        /* .bsize           Block size (0 = variable)   */
3043                               /* .options         Drive option flags:         */
3044     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3045     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3046     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3047     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3048     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3049     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3050     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3051     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3052     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3053                               /*  -------                                     */
3054                               /*  1818619                                     */
3055     -1,                       /* .max_rretries    Not used any more.          */
3056     -1,                       /* .max_wretries    Not used any more.          */
3057     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
3058     MT_DENSITY4,              /* .default_density (.densities[x])             */
3059     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
3060     MINUTES(1),               /* .non_motion_time                             */
3061     MINUTES(18),              /* .io_time                                     */
3062     MINUTES(9),               /* .rewind_time                                 */
3063     MINUTES(165),             /* .space_time      worst case directory invalid*/
3064     MINUTES(9),               /* .load_time                                   */
3065     MINUTES(12),              /* .unload_time                                 */
3066     MINUTES(160)              /* .erase_time                                  */
3067   },
3068 
3069   /*
3070    * [1] The IBM Ultrium Gen 3 "IBM" version has three densites at this time,
3071    *     One for Gen 1 0x40, One for Gen 2 0x42 and Gen 3 0x44.
3072    *     This drive is configured with ST_KNOWS_MEDIA.
3073    *     That means that it will look at the mediatype from the mode sense
3074    *     to select the density code. The compression will be selected based
3075    *     on the minor node the user opened.
3076    * [2] The IBM LTO reports a medium type that is used to select the density.
3077    */
3078   {                           /* Structure member Description                 */
3079                               /* ---------------- -----------                 */
3080     "IBM Ultrium Gen 3 LTO",  /* .name            Display ("pretty") name     */
3081     19,                       /* .length          Length of next item...      */
3082     "IBM     ULT3580-TD3",    /* .vid             Vendor-product ID string    */
3083     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3084     0,                        /* .bsize           Block size (0 = variable)   */
3085                               /* .options         Drive option flags:         */
3086     ST_VARIABLE         |     /*  0000001           Supports variable length  */
3087     ST_BSF              |     /*  0000008           Supports SPACE block fwd  */
3088     ST_BSR              |     /*  0000010           Supports SPACE block rev  */
3089     ST_KNOWS_EOD        |     /*  0000200           Recognizes end-of-data    */
3090     ST_UNLOADABLE       |     /*  0000400           Driver can be unloaded    */
3091     ST_NO_RECSIZE_LIMIT |     /*  0008000           Supports blocks > 64KB    */
3092     ST_MODE_SEL_COMP    |     /*  0010000           [Note 1]                  */
3093     ST_KNOWS_MEDIA      |     /*  0800000         Media detrmines density     */
3094     ST_WORMABLE,              /*  1000000         Is WORM capable             */
3095                               /*  -------                                     */
3096                               /*  1818619                                     */
3097     -1,                       /* .max_rretries    Not used any more.          */
3098     -1,                       /* .max_wretries    Not used any more.          */
3099     {0x40, 0x42, 0x44, 0x44}, /* .densities       Density codes [Note 1]      */
3100     MT_DENSITY4,              /* .default_density (.densities[x])             */
3101     {0x18, 0x28, 0x38, 0x38}, /* .mediatype       Media type  [Note 2]        */
3102     MINUTES(1),               /* .non_motion_time                             */
3103     MINUTES(18),              /* .io_time                                     */
3104     MINUTES(9),               /* .rewind_time                                 */
3105     MINUTES(165),             /* .space_time      worst case directory invalid*/
3106     MINUTES(9),               /* .load_time                                   */
3107     MINUTES(12),              /* .unload_time                                 */
3108     MINUTES(160)              /* .erase_time                                  */
3109   },
3110 
3111   /*
3112    * [1] The IBM Ultrium Gen 2 "OEM" version has two densites at this time,
3113    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
3114    *     Selects which density code is used but this documents the codes
3115    *     for those who care to know.
3116    *     Compression is controlled via the Compression mode page.
3117    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3118    */
3119   {                           /* Structure member Description                 */
3120                               /* ---------------- -----------                 */
3121     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
3122     19,                       /* .length          Length of next item...      */
3123     "IBM     ULTRIUM-TD2",    /* .vid             Vendor-product ID string    */
3124     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3125     0,                        /* .bsize           Block size (0 = variable)   */
3126                               /* .options         Drive option flags:         */
3127     ST_VARIABLE         |     /*    00001           Supports variable length  */
3128     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3129     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3130     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3131     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3132     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3133     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3134                               /*    -----                                     */
3135                               /*    18619                                     */
3136     -1,                       /* .max_rretries    Not used any more.          */
3137     -1,                       /* .max_wretries    Not used any more.          */
3138     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
3139     MT_DENSITY4,              /* .default_density (.densities[x])             */
3140     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3141     MINUTES(1),               /* .non_motion_time                             */
3142     MINUTES(18),              /* .io_time                                     */
3143     MINUTES(9),               /* .rewind_time                                 */
3144     MINUTES(151),             /* .space_time      worst case directory invalid*/
3145     MINUTES(12),              /* .load_time                                   */
3146     MINUTES(11),              /* .unload_time                                 */
3147     MINUTES(151)              /* .erase_time                                  */
3148   },
3149 
3150   /*
3151    * [1] The IBM Ultrium Gen 2 "IBM" version has two densites at this time,
3152    *     One for Gen 1 0x40, One for Gen 2 0x42. In reallity The media
3153    *     Selects which density code is used but this documents the codes
3154    *     for those who care to know.
3155    *     Compression is controlled via the Compression mode page.
3156    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3157    */
3158   {                           /* Structure member Description                 */
3159                               /* ---------------- -----------                 */
3160     "IBM Ultrium Gen 2 LTO",  /* .name            Display ("pretty") name     */
3161     19,                       /* .length          Length of next item...      */
3162     "IBM     ULT3580-TD2",    /* .vid             Vendor-product ID string    */
3163     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3164     0,                        /* .bsize           Block size (0 = variable)   */
3165                               /* .options         Drive option flags:         */
3166     ST_VARIABLE         |     /*    00001           Supports variable length  */
3167     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3168     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3169     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3170     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3171     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3172     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3173                               /*    -----                                     */
3174                               /*    18619                                     */
3175     -1,                       /* .max_rretries    Not used any more.          */
3176     -1,                       /* .max_wretries    Not used any more.          */
3177     {0x40, 0x40, 0x42, 0x42}, /* .densities       Density codes [Note 1]      */
3178     MT_DENSITY4,              /* .default_density (.densities[x])             */
3179     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3180     MINUTES(1),               /* .non_motion_time                             */
3181     MINUTES(18),              /* .io_time                                     */
3182     MINUTES(9),               /* .rewind_time                                 */
3183     MINUTES(151),             /* .space_time      worst case directory invalid*/
3184     MINUTES(12),              /* .load_time                                   */
3185     MINUTES(11),              /* .unload_time                                 */
3186     MINUTES(151)              /* .erase_time                                  */
3187   },
3188 
3189   /*
3190    * [1] The IBM Ultrium has only one density at this time,
3191    *     Compression is controlled via the Device Configuration mode page.
3192    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3193    */
3194   {                           /* Structure member Description                 */
3195                               /* ---------------- -----------                 */
3196     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
3197     19,                       /* .length          Length of next item...      */
3198     "IBM     ULTRIUM-TD1",    /* .vid             Vendor-product ID string    */
3199     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3200     0,                        /* .bsize           Block size (0 = variable)   */
3201                               /* .options         Drive option flags:         */
3202     ST_VARIABLE         |     /*    00001           Supports variable length  */
3203     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3204     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3205     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3206     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3207     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3208     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3209                               /*    -----                                     */
3210                               /*    18619                                     */
3211     -1,                       /* .max_rretries    Not used any more.          */
3212     -1,                       /* .max_wretries    Not used any more.          */
3213     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
3214     MT_DENSITY4,              /* .default_density (.densities[x])             */
3215     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3216     MINUTES(1),               /* .non_motion_time                             */
3217     MINUTES(18),              /* .io_time                                     */
3218     MINUTES(8),               /* .rewind_time                                 */
3219     MINUTES(173),             /* .space_time      worst case directory invalid*/
3220     MINUTES(11),              /* .load_time                                   */
3221     MINUTES(11),              /* .unload_time                                 */
3222     MINUTES(173)              /* .erase_time                                  */
3223   },
3224 
3225   /*
3226    * This is the same drive as the above except for the inquiry string and
3227    * that it is a "End User Version".
3228    * [1] The IBM Ultrium has only one density at this time,
3229    *     Compression is controlled via the Device Configuration mode page.
3230    * [2] The IBM Ultrium has only one speed (if the driver ever cares).
3231    */
3232   {                           /* Structure member Description                 */
3233                               /* ---------------- -----------                 */
3234     "IBM Ultrium LTO",        /* .name            Display ("pretty") name     */
3235     19,                       /* .length          Length of next item...      */
3236     "IBM     ULT3580-TD1",    /* .vid             Vendor-product ID string    */
3237     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3238     0,                        /* .bsize           Block size (0 = variable)   */
3239                               /* .options         Drive option flags:         */
3240     ST_VARIABLE         |     /*    00001           Supports variable length  */
3241     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3242     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3243     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3244     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3245     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3246     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3247                               /*    -----                                     */
3248                               /*    18619                                     */
3249     -1,                       /* .max_rretries    Not used any more.          */
3250     -1,                       /* .max_wretries    Not used any more.          */
3251     {0x40, 0x40, 0x40, 0x40}, /* .densities       Density codes [Note 1]      */
3252     MT_DENSITY4,              /* .default_density (.densities[x])             */
3253     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3254     MINUTES(1),               /* .non_motion_time                             */
3255     MINUTES(18),              /* .io_time                                     */
3256     MINUTES(8),               /* .rewind_time                                 */
3257     MINUTES(173),             /* .space_time      worst case directory invalid*/
3258     MINUTES(11),              /* .load_time                                   */
3259     MINUTES(11),              /* .unload_time                                 */
3260     MINUTES(173)              /* .erase_time                                  */
3261   },
3262 
3263   /*
3264    * [1] The IBM 3592 Cartridge has only one density at this time,
3265    *     Compression is controlled via the Device Configuration mode page.
3266    * [2] The IBM 3592 Cartridge has only one speed (if the driver ever cares).
3267    */
3268   {                           /* Structure member Description                 */
3269                               /* ---------------- -----------                 */
3270     "IBM 3592 Cartridge",     /* .name            Display ("pretty") name     */
3271     13,                       /* .length          Length of next item...      */
3272     "IBM     03592",          /* .vid             Vendor-product ID string    */
3273     MT_LTO,                   /* .type            Numeric type (cf. mtio.h)   */
3274     0,                        /* .bsize           Block size (0 = variable)   */
3275                               /* .options         Drive option flags:         */
3276     ST_VARIABLE         |     /*    00001           Supports variable length  */
3277     ST_BSF              |     /*    00008           Supports SPACE block fwd  */
3278     ST_BSR              |     /*    00010           Supports SPACE block rev  */
3279     ST_AUTODEN_OVERRIDE |     /*    00040           Autodensity override flag */
3280     ST_KNOWS_EOD        |     /*    00200           Recognizes end-of-data    */
3281     ST_UNLOADABLE       |     /*    00400           Driver can be unloaded    */
3282     ST_NO_RECSIZE_LIMIT |     /*    08000           Supports blocks > 64KB    */
3283     ST_MODE_SEL_COMP,         /*    10000           [Note 1]                  */
3284                               /*    -----                                     */
3285                               /*    18659                                     */
3286     -1,                       /* .max_rretries    Not used any more.          */
3287     -1,                       /* .max_wretries    Not used any more.          */
3288     {0x51, 0x51, 0x51, 0x51}, /* .densities       Density codes [Note 1]      */
3289     MT_DENSITY4,              /* .default_density (.densities[x])             */
3290     {0, 0, 0, 0},             /* .speeds          Speed codes [Note 2]        */
3291     MINUTES(1),               /* .non_motion_time                             */
3292     MINUTES(18),              /* .io_time                                     */
3293     MINUTES(8),               /* .rewind_time                                 */
3294     MINUTES(14),              /* .space_time      worst case directory invalid*/
3295     MINUTES(12),              /* .load_time                                   */
3296     MINUTES(12),              /* .unload_time                                 */
3297     MINUTES(235)              /* .erase_time                                  */
3298   },
3299 
3300   /*
3301    * Seagate Hornet NS20 USB Travan
3302    *
3303    *     NOTES
3304    *     -----
3305    *  o This drive is not OEM'ed or qualified by Sun.
3306    *
3307    * [1] The NS20 Travan uses 0 or the "default" density code.
3308    * [2] The NS20 Travan has only one speed (if the driver ever cares).
3309    * [3] max_rretries and max_wretries are driver anachronisms.
3310    */
3311   {                           /* Structure member Description                 */
3312                               /* ---------------- -----------                 */
3313     "Seagate Hornet NS20 Travan",
3314                               /* .name            Display ("pretty") name     */
3315     17,                       /* .length          Length of next item...      */
3316     "Seagate STT20000A",      /* .vid             Vendor-product ID string    */
3317     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
3318     512,                      /* .bsize           Block size (0 = variable)   */
3319                               /* .options         Drive option flags:         */
3320     ST_QIC              |     /*    00002           QIC tape device           */
3321     ST_BSF              |     /*    00008           Supports back SPACE file  */
3322     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
3323                               /*    -----                                     */
3324                               /*    0040A                                     */
3325     400,                      /* .max_rretries    [Note 3]                    */
3326     400,                      /* .max_wretries    [Note 3]                    */
3327     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
3328     MT_DENSITY1,              /* .default_density (.densities[x])             */
3329     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3330   },
3331 
3332 
3333   /*
3334    * Seagate Hornet Travan 40
3335    *
3336    *     NOTES
3337    *     -----
3338    *  o This drive is not OEM'ed or qualified by Sun.
3339    *
3340    * [1] The Travan uses 0 or the "default" density code.
3341    * [2] The Travan has only one speed (if the driver ever cares).
3342    * [3] max_rretries and max_wretries are driver anachronisms.
3343    */
3344   {                           /* Structure member Description                 */
3345                               /* ---------------- -----------                 */
3346     "Seagate Hornet Travan 40",
3347                               /* .name            Display ("pretty") name     */
3348     16,                       /* .length          Length of next item...      */
3349     "Seagate STT3401A",       /* .vid             Vendor-product ID string    */
3350     MT_ISQIC,                 /* .type            Numeric type (cf. mtio.h)   */
3351     512,                      /* .bsize           Block size (0 = variable)   */
3352                               /* .options         Drive option flags:         */
3353     ST_QIC              |     /*    00002           QIC tape device           */
3354     ST_BSF              |     /*    00008           Supports back SPACE file  */
3355     ST_UNLOADABLE,            /*    00400           Driver can be unloaded    */
3356                               /*    -----                                     */
3357                               /*    0040A                                     */
3358     400,                      /* .max_rretries    [Note 3]                    */
3359     400,                      /* .max_wretries    [Note 3]                    */
3360     {0x00, 0x00, 0x00, 0x00}, /* .densities       Density codes [Note 1]      */
3361     MT_DENSITY1,              /* .default_density (.densities[x])             */
3362     {0, 0, 0, 0}              /* .speeds          Speed codes [Note 2]        */
3363   }
3364 
3365 	/* END CSTYLED */
3366 
3367 };
3368 
3369 
3370 const int st_ndrivetypes = (sizeof (st_drivetypes)/sizeof (st_drivetypes[0]));
3371