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