From: Jan Höppner Date: Mon, 2 Feb 2026 13:48:43 +0000 (+0100) Subject: s390/tape: Remove 3480 tape device type X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b6852d764b7794e1b624dc71771b008716cde34;p=thirdparty%2Flinux.git s390/tape: Remove 3480 tape device type The only supported device type by the Virtual Tape Server is 3490. The 3480 device type was an old physical tape model and doesn't exist anymore. Remove 3480 from the list and any mention of it. Signed-off-by: Jan Höppner Reviewed-by: Jens Remus Signed-off-by: Heiko Carstens --- diff --git a/drivers/s390/char/Kconfig b/drivers/s390/char/Kconfig index d57083209c95d..fc1cf818b9a07 100644 --- a/drivers/s390/char/Kconfig +++ b/drivers/s390/char/Kconfig @@ -123,10 +123,10 @@ comment "S/390 tape hardware support" config S390_TAPE_34XX def_tristate m - prompt "Support for 3480/3490 tape hardware" + prompt "Support for 3490 tape hardware" depends on S390_TAPE help - Select this option if you want to access IBM 3480/3490 magnetic + Select this option if you want to access IBM 3490 magnetic tape subsystems and 100% compatibles. It is safe to say "Y" here. diff --git a/drivers/s390/char/tape.h b/drivers/s390/char/tape.h index aca9723a3e20c..bfbfb3b48acaf 100644 --- a/drivers/s390/char/tape.h +++ b/drivers/s390/char/tape.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* - * tape device driver for 3480/3490E tapes. + * tape device driver for 3490E tapes. * * S390 and zSeries version * Copyright IBM Corp. 2001, 2009 diff --git a/drivers/s390/char/tape_34xx.c b/drivers/s390/char/tape_34xx.c index 1573f7427c041..944aa03f4e859 100644 --- a/drivers/s390/char/tape_34xx.c +++ b/drivers/s390/char/tape_34xx.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* - * tape device discipline for 3480/3490 tapes. + * tape device discipline for 3490 tapes. * * Copyright IBM Corp. 2001, 2009 * Author(s): Carsten Otte @@ -398,13 +398,6 @@ tape_34xx_unit_check(struct tape_device *device, struct tape_request *request, dev_warn (&device->cdev->dev, "The tape contains an " "incorrect block ID sequence\n"); return tape_34xx_erp_failed(request, -EIO); - default: - /* all data checks for 3480 should result in one of - * the above erpa-codes. For 3490, other data-check - * conditions do exist. */ - if (device->cdev->id.driver_info == tape_3480) - return tape_34xx_erp_bug(device, request, - irb, -6); } } @@ -535,11 +528,8 @@ tape_34xx_unit_check(struct tape_device *device, struct tape_request *request, " on the tape unit\n"); return tape_34xx_erp_failed(request, -EIO); case 0x36: - if (device->cdev->id.driver_info == tape_3490) - /* End of data. */ - return tape_34xx_erp_failed(request, -EIO); - /* This erpa is reserved for 3480 */ - return tape_34xx_erp_bug(device, request, irb, sense[3]); + /* End of data. */ + return tape_34xx_erp_failed(request, -EIO); case 0x37: /* * Tape length error. The tape is shorter than reported in @@ -648,28 +638,21 @@ tape_34xx_unit_check(struct tape_device *device, struct tape_request *request, */ return tape_34xx_erp_retry(request); case 0x4d: - if (device->cdev->id.driver_info == tape_3490) - /* - * Resetting event received. Since the driver does - * not support resetting event recovery (which has to - * be handled by the I/O Layer), retry our command. - */ - return tape_34xx_erp_retry(request); - /* This erpa is reserved for 3480. */ - return tape_34xx_erp_bug(device, request, irb, sense[3]); + /* + * Resetting event received. Since the driver does + * not support resetting event recovery (which has to + * be handled by the I/O Layer), retry our command. + */ + return tape_34xx_erp_retry(request); case 0x4e: - if (device->cdev->id.driver_info == tape_3490) { - /* - * Maximum block size exceeded. This indicates, that - * the block to be written is larger than allowed for - * buffered mode. - */ - dev_warn (&device->cdev->dev, "The maximum block size" - " for buffered mode is exceeded\n"); - return tape_34xx_erp_failed(request, -ENOBUFS); - } - /* This erpa is reserved for 3480. */ - return tape_34xx_erp_bug(device, request, irb, sense[3]); + /* + * Maximum block size exceeded. This indicates, that + * the block to be written is larger than allowed for + * buffered mode. + */ + dev_warn (&device->cdev->dev, + "The maximum block size for buffered mode is exceeded\n"); + return tape_34xx_erp_failed(request, -ENOBUFS); case 0x50: /* * Read buffered log (Overflow). CU is running in extended @@ -710,10 +693,7 @@ tape_34xx_unit_check(struct tape_device *device, struct tape_request *request, "occurred\n"); return tape_34xx_erp_failed(request, -EIO); case 0x57: - /* - * 3480: Attention intercept. - * 3490: Global status intercept. - */ + /* Global status intercept. */ return tape_34xx_erp_retry(request); case 0x5a: /* @@ -723,19 +703,6 @@ tape_34xx_unit_check(struct tape_device *device, struct tape_request *request, dev_warn (&device->cdev->dev, "The tape unit does not support " "the tape length\n"); return tape_34xx_erp_failed(request, -EIO); - case 0x5b: - /* Format 3480 XF incompatible */ - if (sense[1] & SENSE_BEGINNING_OF_TAPE) - /* The tape will get overwritten. */ - return tape_34xx_erp_retry(request); - dev_warn (&device->cdev->dev, "The tape unit does not support" - " format 3480 XF\n"); - return tape_34xx_erp_failed(request, -EIO); - case 0x5c: - /* Format 3480-2 XF incompatible */ - dev_warn (&device->cdev->dev, "The tape unit does not support tape " - "format 3480-2 XF\n"); - return tape_34xx_erp_failed(request, -EIO); case 0x5d: /* Tape length violation. */ dev_warn (&device->cdev->dev, "The tape unit does not support" @@ -762,7 +729,7 @@ tape_34xx_unit_check(struct tape_device *device, struct tape_request *request, } /* - * 3480/3490 interrupt handler + * 3490 interrupt handler */ static int tape_34xx_irq(struct tape_device *device, struct tape_request *request, @@ -870,7 +837,7 @@ tape_34xx_mtseek(struct tape_device *device, int mt_count) } /* - * List of 3480/3490 magnetic tape commands. + * List of 3490 tape commands. */ static tape_mtop_fn tape_34xx_mtop[TAPE_NR_MTOPS] = { [MTRESET] = tape_std_mtreset, @@ -908,7 +875,7 @@ static tape_mtop_fn tape_34xx_mtop[TAPE_NR_MTOPS] = { }; /* - * Tape discipline structure for 3480 and 3490. + * Tape discipline structure for 3490. */ static struct tape_discipline tape_discipline_34xx = { .owner = THIS_MODULE, @@ -922,7 +889,6 @@ static struct tape_discipline tape_discipline_34xx = { }; static struct ccw_device_id tape_34xx_ids[] = { - { CCW_DEVICE_DEVTYPE(0x3480, 0, 0x3480, 0), .driver_info = tape_3480}, { CCW_DEVICE_DEVTYPE(0x3490, 0, 0x3490, 0), .driver_info = tape_3490}, { /* end of list */ }, }; @@ -961,7 +927,7 @@ tape_34xx_init (void) #endif DBF_EVENT(3, "34xx init\n"); - /* Register driver for 3480/3490 tapes. */ + /* Register driver for 3490 tapes. */ rc = ccw_driver_register(&tape_34xx_driver); if (rc) DBF_EVENT(3, "34xx init failed\n"); @@ -980,7 +946,7 @@ tape_34xx_exit(void) MODULE_DEVICE_TABLE(ccw, tape_34xx_ids); MODULE_AUTHOR("(C) 2001-2002 IBM Deutschland Entwicklung GmbH"); -MODULE_DESCRIPTION("Linux on zSeries channel attached 3480 tape device driver"); +MODULE_DESCRIPTION("Linux on zSeries channel attached 3490 tape device driver"); MODULE_LICENSE("GPL"); module_init(tape_34xx_init); diff --git a/drivers/s390/char/tape_std.h b/drivers/s390/char/tape_std.h index c2da50a6a1330..2b67b0dc9ddd5 100644 --- a/drivers/s390/char/tape_std.h +++ b/drivers/s390/char/tape_std.h @@ -101,7 +101,6 @@ void tape_std_process_eov(struct tape_device *); /* S390 tape types */ enum s390_tape_type { - tape_3480, tape_3490, };