diff options
Diffstat (limited to 'drivers/ide/ide-tape.c')
-rw-r--r-- | drivers/ide/ide-tape.c | 80 |
1 files changed, 6 insertions, 74 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index d71a584f0765..5aef63acf1e8 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -1,7 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/ide/ide-tape.c Version 1.19 Nov, 2003 | 2 | * Copyright (C) 1995-1999 Gadi Oxman <gadio@netvision.net.il> |
3 | * | 3 | * Copyright (C) 2003-2005 Bartlomiej Zolnierkiewicz |
4 | * Copyright (C) 1995 - 1999 Gadi Oxman <gadio@netvision.net.il> | ||
5 | * | 4 | * |
6 | * $Header$ | 5 | * $Header$ |
7 | * | 6 | * |
@@ -4291,9 +4290,6 @@ static int idetape_identify_device (ide_drive_t *drive) | |||
4291 | { | 4290 | { |
4292 | struct idetape_id_gcw gcw; | 4291 | struct idetape_id_gcw gcw; |
4293 | struct hd_driveid *id = drive->id; | 4292 | struct hd_driveid *id = drive->id; |
4294 | #if IDETAPE_DEBUG_INFO | ||
4295 | unsigned short mask,i; | ||
4296 | #endif /* IDETAPE_DEBUG_INFO */ | ||
4297 | 4293 | ||
4298 | if (drive->id_read == 0) | 4294 | if (drive->id_read == 0) |
4299 | return 1; | 4295 | return 1; |
@@ -4333,62 +4329,6 @@ static int idetape_identify_device (ide_drive_t *drive) | |||
4333 | case 1: printk("16 bytes\n");break; | 4329 | case 1: printk("16 bytes\n");break; |
4334 | default: printk("Reserved\n");break; | 4330 | default: printk("Reserved\n");break; |
4335 | } | 4331 | } |
4336 | printk(KERN_INFO "ide-tape: Model: %.40s\n",id->model); | ||
4337 | printk(KERN_INFO "ide-tape: Firmware Revision: %.8s\n",id->fw_rev); | ||
4338 | printk(KERN_INFO "ide-tape: Serial Number: %.20s\n",id->serial_no); | ||
4339 | printk(KERN_INFO "ide-tape: Write buffer size: %d bytes\n",id->buf_size*512); | ||
4340 | printk(KERN_INFO "ide-tape: DMA: %s",id->capability & 0x01 ? "Yes\n":"No\n"); | ||
4341 | printk(KERN_INFO "ide-tape: LBA: %s",id->capability & 0x02 ? "Yes\n":"No\n"); | ||
4342 | printk(KERN_INFO "ide-tape: IORDY can be disabled: %s",id->capability & 0x04 ? "Yes\n":"No\n"); | ||
4343 | printk(KERN_INFO "ide-tape: IORDY supported: %s",id->capability & 0x08 ? "Yes\n":"Unknown\n"); | ||
4344 | printk(KERN_INFO "ide-tape: ATAPI overlap supported: %s",id->capability & 0x20 ? "Yes\n":"No\n"); | ||
4345 | printk(KERN_INFO "ide-tape: PIO Cycle Timing Category: %d\n",id->tPIO); | ||
4346 | printk(KERN_INFO "ide-tape: DMA Cycle Timing Category: %d\n",id->tDMA); | ||
4347 | printk(KERN_INFO "ide-tape: Single Word DMA supported modes: "); | ||
4348 | for (i=0,mask=1;i<8;i++,mask=mask << 1) { | ||
4349 | if (id->dma_1word & mask) | ||
4350 | printk("%d ",i); | ||
4351 | if (id->dma_1word & (mask << 8)) | ||
4352 | printk("(active) "); | ||
4353 | } | ||
4354 | printk("\n"); | ||
4355 | printk(KERN_INFO "ide-tape: Multi Word DMA supported modes: "); | ||
4356 | for (i=0,mask=1;i<8;i++,mask=mask << 1) { | ||
4357 | if (id->dma_mword & mask) | ||
4358 | printk("%d ",i); | ||
4359 | if (id->dma_mword & (mask << 8)) | ||
4360 | printk("(active) "); | ||
4361 | } | ||
4362 | printk("\n"); | ||
4363 | if (id->field_valid & 0x0002) { | ||
4364 | printk(KERN_INFO "ide-tape: Enhanced PIO Modes: %s\n", | ||
4365 | id->eide_pio_modes & 1 ? "Mode 3":"None"); | ||
4366 | printk(KERN_INFO "ide-tape: Minimum Multi-word DMA cycle per word: "); | ||
4367 | if (id->eide_dma_min == 0) | ||
4368 | printk("Not supported\n"); | ||
4369 | else | ||
4370 | printk("%d ns\n",id->eide_dma_min); | ||
4371 | |||
4372 | printk(KERN_INFO "ide-tape: Manufacturer\'s Recommended Multi-word cycle: "); | ||
4373 | if (id->eide_dma_time == 0) | ||
4374 | printk("Not supported\n"); | ||
4375 | else | ||
4376 | printk("%d ns\n",id->eide_dma_time); | ||
4377 | |||
4378 | printk(KERN_INFO "ide-tape: Minimum PIO cycle without IORDY: "); | ||
4379 | if (id->eide_pio == 0) | ||
4380 | printk("Not supported\n"); | ||
4381 | else | ||
4382 | printk("%d ns\n",id->eide_pio); | ||
4383 | |||
4384 | printk(KERN_INFO "ide-tape: Minimum PIO cycle with IORDY: "); | ||
4385 | if (id->eide_pio_iordy == 0) | ||
4386 | printk("Not supported\n"); | ||
4387 | else | ||
4388 | printk("%d ns\n",id->eide_pio_iordy); | ||
4389 | |||
4390 | } else | ||
4391 | printk(KERN_INFO "ide-tape: According to the device, fields 64-70 are not valid.\n"); | ||
4392 | #endif /* IDETAPE_DEBUG_INFO */ | 4332 | #endif /* IDETAPE_DEBUG_INFO */ |
4393 | 4333 | ||
4394 | /* Check that we can support this device */ | 4334 | /* Check that we can support this device */ |
@@ -4591,19 +4531,11 @@ static void idetape_setup (ide_drive_t *drive, idetape_tape_t *tape, int minor) | |||
4591 | 4531 | ||
4592 | spin_lock_init(&tape->spinlock); | 4532 | spin_lock_init(&tape->spinlock); |
4593 | drive->dsc_overlap = 1; | 4533 | drive->dsc_overlap = 1; |
4594 | #ifdef CONFIG_BLK_DEV_IDEPCI | 4534 | if (drive->hwif->host_flags & IDE_HFLAG_NO_DSC) { |
4595 | if (HWIF(drive)->pci_dev != NULL) { | 4535 | printk(KERN_INFO "ide-tape: %s: disabling DSC overlap\n", |
4596 | /* | 4536 | tape->name); |
4597 | * These two ide-pci host adapters appear to need DSC overlap disabled. | 4537 | drive->dsc_overlap = 0; |
4598 | * This probably needs further analysis. | ||
4599 | */ | ||
4600 | if ((HWIF(drive)->pci_dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) || | ||
4601 | (HWIF(drive)->pci_dev->device == PCI_DEVICE_ID_TTI_HPT343)) { | ||
4602 | printk(KERN_INFO "ide-tape: %s: disabling DSC overlap\n", tape->name); | ||
4603 | drive->dsc_overlap = 0; | ||
4604 | } | ||
4605 | } | 4538 | } |
4606 | #endif /* CONFIG_BLK_DEV_IDEPCI */ | ||
4607 | /* Seagate Travan drives do not support DSC overlap. */ | 4539 | /* Seagate Travan drives do not support DSC overlap. */ |
4608 | if (strstr(drive->id->model, "Seagate STT3401")) | 4540 | if (strstr(drive->id->model, "Seagate STT3401")) |
4609 | drive->dsc_overlap = 0; | 4541 | drive->dsc_overlap = 0; |