@@ -193,6 +193,11 @@ DRIVE_DENSITY_SUPPORT_MAP jaguar_drive_density_strict[] = {
193193};
194194
195195DRIVE_DENSITY_SUPPORT_MAP lto_drive_density [] = {
196+ /* LTOA */
197+ { DRIVE_GEN_LTOA , TC_MP_LTOPAD_CART , TC_DC_LTOPA , MEDIUM_PERFECT_MATCH },
198+ { DRIVE_GEN_LTOA , TC_MP_LTOAD_CART , TC_DC_LTOA , MEDIUM_PERFECT_MATCH },
199+ { DRIVE_GEN_LTOA , TC_MP_LTOAD_CART , TC_DC_UNKNOWN , MEDIUM_PERFECT_MATCH },
200+
196201 /* LTO9 */
197202 { DRIVE_GEN_LTO9 , TC_MP_LTO9D_CART , TC_DC_LTO9 , MEDIUM_PERFECT_MATCH },
198203 { DRIVE_GEN_LTO9 , TC_MP_LTO9D_CART , TC_DC_UNKNOWN , MEDIUM_PERFECT_MATCH },
@@ -226,6 +231,11 @@ DRIVE_DENSITY_SUPPORT_MAP lto_drive_density[] = {
226231};
227232
228233DRIVE_DENSITY_SUPPORT_MAP lto_drive_density_strict [] = {
234+ /* LTOA */
235+ { DRIVE_GEN_LTOA , TC_MP_LTOPAD_CART , TC_DC_LTOPA , MEDIUM_PERFECT_MATCH },
236+ { DRIVE_GEN_LTOA , TC_MP_LTOAD_CART , TC_DC_LTOA , MEDIUM_PERFECT_MATCH },
237+ { DRIVE_GEN_LTOA , TC_MP_LTOAD_CART , TC_DC_UNKNOWN , MEDIUM_PERFECT_MATCH },
238+
229239 /* LTO9 */
230240 { DRIVE_GEN_LTO9 , TC_MP_LTO9D_CART , TC_DC_LTO9 , MEDIUM_PERFECT_MATCH },
231241 { DRIVE_GEN_LTO9 , TC_MP_LTO9D_CART , TC_DC_UNKNOWN , MEDIUM_PERFECT_MATCH },
@@ -249,6 +259,8 @@ DRIVE_DENSITY_SUPPORT_MAP lto_drive_density_strict[] = {
249259};
250260
251261const unsigned char supported_cart [] = {
262+ TC_MP_LTOPAD_CART ,
263+ TC_MP_LTOAD_CART ,
252264 TC_MP_LTO9D_CART ,
253265 TC_MP_LTO8D_CART ,
254266 TC_MP_LTO7D_CART ,
@@ -278,6 +290,8 @@ const unsigned char supported_density[] = {
278290 TC_DC_JAG5A ,
279291 TC_DC_JAG5 ,
280292 TC_DC_JAG4 ,
293+ TC_DC_LTOPA ,
294+ TC_DC_LTOA ,
281295 TC_DC_LTO9 ,
282296 TC_DC_LTO8 ,
283297 TC_DC_LTOM8 ,
@@ -319,6 +333,10 @@ struct supported_device *ibm_supported_drives[] = {
319333 TAPEDRIVE ( IBM_VENDOR_ID , "ULTRIUM-HH9" , DRIVE_LTO9_HH , "[ULTRIUM-HH9]" ), /* IBM Ultrium Gen 9 Half-High */
320334 TAPEDRIVE ( IBM_VENDOR_ID , "ULT3580-HH9" , DRIVE_LTO9_HH , "[ULT3580-HH9]" ), /* IBM Ultrium Gen 9 Half-High */
321335 TAPEDRIVE ( IBM_VENDOR_ID , "HH LTO Gen 9" , DRIVE_LTO9_HH , "[HH LTO Gen 9]" ), /* IBM Ultrium Gen 9 Half-High */
336+ TAPEDRIVE ( IBM_VENDOR_ID , "ULTRIUM-TDA" , DRIVE_LTOA , "[ULTRIUM-TDA]" ), /* IBM Ultrium Gen A */
337+ TAPEDRIVE ( IBM_VENDOR_ID , "ULT3580-TDA" , DRIVE_LTOA , "[ULT3580-TDA]" ), /* IBM Ultrium Gen A */
338+ TAPEDRIVE ( IBM_VENDOR_ID , "ULTRIUM-HHA" , DRIVE_LTOA_HH , "[ULTRIUM-HHA]" ), /* IBM Ultrium Gen A Half-High */
339+ TAPEDRIVE ( IBM_VENDOR_ID , "ULT3580-HHA" , DRIVE_LTOA_HH , "[ULT3580-HHA]" ), /* IBM Ultrium Gen A Half-High */
322340 TAPEDRIVE ( IBM_VENDOR_ID , "03592E07" , DRIVE_TS1140 , "[03592E07]" ), /* IBM TS1140 */
323341 TAPEDRIVE ( IBM_VENDOR_ID , "03592E08" , DRIVE_TS1150 , "[03592E08]" ), /* IBM TS1150 */
324342 TAPEDRIVE ( IBM_VENDOR_ID , "0359255F" , DRIVE_TS1155 , "[0359255F]" ), /* IBM TS1155 */
@@ -348,6 +366,9 @@ struct supported_device *usb_supported_drives[] = {
348366 TAPEDRIVE ( IBM_VENDOR_ID , "ULT3580-TD9" , DRIVE_LTO9 , "[ULT3580-TD9]" ), /* IBM Ultrium Gen 9 */
349367 TAPEDRIVE ( IBM_VENDOR_ID , "ULTRIUM-HH9" , DRIVE_LTO9_HH , "[ULTRIUM-HH9]" ), /* IBM Ultrium Gen 9 Half-High */
350368 TAPEDRIVE ( IBM_VENDOR_ID , "ULT3580-HH9" , DRIVE_LTO9_HH , "[ULT3580-HH9]" ), /* IBM Ultrium Gen 9 Half-High */
369+ TAPEDRIVE ( IBM_VENDOR_ID , "ULT3580-TDA" , DRIVE_LTOA , "[ULT3580-TDA]" ), /* IBM Ultrium Gen A */
370+ TAPEDRIVE ( IBM_VENDOR_ID , "ULTRIUM-HHA" , DRIVE_LTOA_HH , "[ULTRIUM-HHA]" ), /* IBM Ultrium Gen A */
371+ TAPEDRIVE ( IBM_VENDOR_ID , "ULT3580-HHA" , DRIVE_LTOA_HH , "[ULT3580-HHA]" ), /* IBM Ultrium Gen A Half-High */
351372 /* End of supported_devices */
352373 NULL
353374};
@@ -589,6 +610,26 @@ static struct _timeout_tape timeout_lto9[] = {
589610 {-1 , -1 }
590611};
591612
613+ static struct _timeout_tape timeout_ltoA [] = {
614+ { ERASE , 16320 },
615+ { FORMAT_MEDIUM , 3180 },
616+ { LOAD_UNLOAD , 780 },
617+ { LOCATE10 , 104880 },
618+ { LOCATE16 , 104880 },
619+ { READ , 2340 },
620+ { READ_BUFFER , 480 },
621+ { REWIND , 600 },
622+ { SEND_DIAGNOSTIC , 1980 },
623+ { SET_CAPACITY , 780 },
624+ { SPACE6 , 104880 },
625+ { SPACE16 , 104880 },
626+ { VERIFY , 104880 },
627+ { WRITE , 1500 },
628+ { WRITE_BUFFER , 540 },
629+ { WRITE_FILEMARKS6 , 1620 },
630+ {-1 , -1 }
631+ };
632+
592633static struct _timeout_tape timeout_lto5_hh [] = {
593634 { ERASE , 19200 },
594635 { FORMAT_MEDIUM , 1980 },
@@ -689,6 +730,26 @@ static struct _timeout_tape timeout_lto9_hh[] = {
689730 {-1 , -1 }
690731};
691732
733+ static struct _timeout_tape timeout_ltoA_hh [] = {
734+ { ERASE , 205440 },
735+ { FORMAT_MEDIUM , 3180 },
736+ { LOAD_UNLOAD , 780 },
737+ { LOCATE10 , 104880 },
738+ { LOCATE16 , 104880 },
739+ { READ , 2340 },
740+ { READ_BUFFER , 480 },
741+ { REWIND , 600 },
742+ { SEND_DIAGNOSTIC , 1980 },
743+ { SET_CAPACITY , 780 },
744+ { SPACE6 , 2940 },
745+ { SPACE16 , 2940 },
746+ { VERIFY , 104880 },
747+ { WRITE , 1500 },
748+ { WRITE_BUFFER , 540 },
749+ { WRITE_FILEMARKS6 , 1620 },
750+ {-1 , -1 }
751+ };
752+
692753static struct _timeout_tape timeout_11x0 [] = {
693754 { CHANGE_DEFINITION , 30 },
694755 { INQUIRY , 30 },
@@ -903,6 +964,12 @@ int ibm_tape_init_timeout(struct timeout_tape** table, int type)
903964 case DRIVE_LTO9_HH :
904965 ret = _create_table_tape (table , timeout_lto , timeout_lto9_hh );
905966 break ;
967+ case DRIVE_LTOA :
968+ ret = _create_table_tape (table , timeout_lto , timeout_ltoA );
969+ break ;
970+ case DRIVE_LTOA_HH :
971+ ret = _create_table_tape (table , timeout_lto , timeout_ltoA_hh );
972+ break ;
906973 case DRIVE_TS1140 :
907974 ret = _create_table_tape (table , timeout_11x0 , timeout_1140 );
908975 break ;
@@ -989,6 +1056,9 @@ static inline unsigned char _assume_cartridge_type(char product, char btype)
9891056 case '9' :
9901057 ctype = TC_MP_LTO9D_CART ;
9911058 break ;
1059+ case 'A' :
1060+ ctype = TC_MP_LTOAD_CART ;
1061+ break ;
9921062 default :
9931063 break ;
9941064 }
@@ -1001,6 +1071,15 @@ static inline unsigned char _assume_cartridge_type(char product, char btype)
10011071 break ;
10021072 }
10031073 }
1074+ else if (product == 'P' ) {
1075+ switch (btype ) {
1076+ case 'A' :
1077+ ctype = TC_MP_LTOPAD_CART ;
1078+ break ;
1079+ default :
1080+ break ;
1081+ }
1082+ }
10041083
10051084 return ctype ;
10061085}
@@ -1039,6 +1118,12 @@ char* ibm_tape_assume_cart_name(unsigned char type)
10391118 case TC_MP_LTO9D_CART :
10401119 name = "L9" ;
10411120 break ;
1121+ case TC_MP_LTOAD_CART :
1122+ name = "LA" ;
1123+ break ;
1124+ case TC_MP_LTOPAD_CART :
1125+ name = "PA" ;
1126+ break ;
10421127 case TC_MP_JB :
10431128 name = "JB" ;
10441129 break ;
0 commit comments