vserver 1.9.5.x5
[linux-2.6.git] / drivers / ide / ide-tape.c
index d19ee54..147b80a 100644 (file)
 #include <linux/ide.h>
 #include <linux/smp_lock.h>
 #include <linux/completion.h>
+#include <linux/bitops.h>
 
 #include <asm/byteorder.h>
 #include <asm/irq.h>
 #include <asm/uaccess.h>
 #include <asm/io.h>
 #include <asm/unaligned.h>
-#include <asm/bitops.h>
 
 /*
  * partition
@@ -530,7 +530,6 @@ typedef struct os_dat_s {
  */
 #define IDETAPE_DEBUG_INFO             0
 #define IDETAPE_DEBUG_LOG              0
-#define IDETAPE_DEBUG_LOG_VERBOSE      0
 #define IDETAPE_DEBUG_BUGS             1
 
 /*
@@ -1260,70 +1259,6 @@ typedef struct {
  */
 static idetape_chrdev_t idetape_chrdevs[MAX_HWIFS * MAX_DRIVES];
 
-#if IDETAPE_DEBUG_LOG_VERBOSE
-
-/*
- * DO NOT REMOVE, BUILDING A VERBOSE DEBUG SCHEME FOR ATAPI
- */
-
-char *idetape_sense_key_verbose(u8 idetape_sense_key)
-{
-       switch (idetape_sense_key) {
-               default: {
-                       char buf[22];
-                       sprintf(buf, "IDETAPE_SENSE (0x%02x)", idetape_sense_key);
-                       return(buf);
-               }
-
-       }
-}
-
-char *idetape_command_key_verbose(u8 idetape_command_key)
-{
-       switch (idetape_command_key) {
-               case IDETAPE_TEST_UNIT_READY_CMD:
-                       return("TEST_UNIT_READY_CMD");
-               case IDETAPE_REWIND_CMD:
-                       return("REWIND_CMD");
-               case IDETAPE_REQUEST_SENSE_CMD:
-                       return("REQUEST_SENSE_CMD");
-               case IDETAPE_READ_CMD:
-                       return("READ_CMD");
-               case IDETAPE_WRITE_CMD:
-                       return("WRITE_CMD");
-               case IDETAPE_WRITE_FILEMARK_CMD:
-                       return("WRITE_FILEMARK_CMD");
-               case IDETAPE_SPACE_CMD:
-                       return("SPACE_CMD");
-               case IDETAPE_INQUIRY_CMD:
-                       return("INQUIRY_CMD");
-               case IDETAPE_ERASE_CMD:
-                       return("ERASE_CMD");
-               case IDETAPE_MODE_SENSE_CMD:
-                       return("MODE_SENSE_CMD");
-               case IDETAPE_MODE_SELECT_CMD:
-                       return("MODE_SELECT_CMD");
-               case IDETAPE_LOAD_UNLOAD_CMD:
-                       return("LOAD_UNLOAD_CMD");
-               case IDETAPE_PREVENT_CMD:
-                       return("PREVENT_CMD");
-               case IDETAPE_LOCATE_CMD:
-                       return("LOCATE_CMD");
-               case IDETAPE_READ_POSITION_CMD:
-                       return("READ_POSITION_CMD");
-               case IDETAPE_READ_BUFFER_CMD:
-                       return("READ_BUFFER_CMD");
-               case IDETAPE_SET_SPEED_CMD:
-                       return("SET_SPEED_CMD");
-               default: {
-                               char buf[20];
-                               sprintf(buf, "CMD (0x%02x)", idetape_command_key);
-                               return(buf);
-                       }
-       }
-}
-#endif /* IDETAPE_DEBUG_LOG_VERBOSE */
-
 /*
  *      Function declarations
  *
@@ -1507,15 +1442,6 @@ static void idetape_analyze_error (ide_drive_t *drive, idetape_request_sense_res
                        "asc = %x, ascq = %x\n",
                        pc->c[0], result->sense_key,
                        result->asc, result->ascq);
-#if IDETAPE_DEBUG_LOG_VERBOSE
-       if (tape->debug_level >= 1)
-               printk(KERN_INFO "ide-tape: pc = %s, sense key = %x, "
-                       "asc = %x, ascq = %x\n",
-                       idetape_command_key_verbose((byte) pc->c[0]),
-                       result->sense_key,
-                       result->asc,
-                       result->ascq);
-#endif /* IDETAPE_DEBUG_LOG_VERBOSE */
 #endif /* IDETAPE_DEBUG_LOG */
 
        /*
@@ -2141,7 +2067,7 @@ static ide_startstop_t idetape_transfer_pc(ide_drive_t *drive)
 #ifdef CONFIG_BLK_DEV_IDEDMA
        /* Begin DMA, if necessary */
        if (test_bit(PC_DMA_IN_PROGRESS, &pc->flags))
-               (void) (HWIF(drive)->ide_dma_begin(drive));
+               hwif->dma_start(drive);
 #endif
        /* Send the actual packet */
        HWIF(drive)->atapi_output_bytes(drive, pc->c, 12);
@@ -2209,12 +2135,8 @@ static ide_startstop_t idetape_issue_packet_command (ide_drive_t *drive, idetape
                                "reverting to PIO\n");
                (void)__ide_dma_off(drive);
        }
-       if (test_bit(PC_DMA_RECOMMENDED, &pc->flags) && drive->using_dma) {
-               if (test_bit(PC_WRITING, &pc->flags))
-                       dma_ok = !HWIF(drive)->ide_dma_write(drive);
-               else
-                       dma_ok = !HWIF(drive)->ide_dma_read(drive);
-       }
+       if (test_bit(PC_DMA_RECOMMENDED, &pc->flags) && drive->using_dma)
+               dma_ok = !hwif->dma_setup(drive);
 
        if (IDE_CONTROL_REG)
                hwif->OUTB(drive->ctl, IDE_CONTROL_REG);
@@ -2517,7 +2439,7 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive,
                        tape->dsc_polling_start = jiffies;
                        tape->dsc_polling_frequency = tape->best_dsc_rw_frequency;
                        tape->dsc_timeout = jiffies + IDETAPE_DSC_RW_TIMEOUT;
-               } else if ((signed long) (jiffies - tape->dsc_timeout) > 0) {
+               } else if (time_after(jiffies, tape->dsc_timeout)) {
                        printk(KERN_ERR "ide-tape: %s: DSC timeout\n",
                                tape->name);
                        if (rq->cmd[0] & REQ_IDETAPE_PC2) {