]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/ide-floppy.c
tty: move tioclinux from a special case
[linux-2.6-omap-h63xx.git] / drivers / ide / ide-floppy.c
index b221a456e5356c6d98cb987007617ab00ec852a9..d36f155470a49dfcafef2ee19dbb9a3835475c9b 100644 (file)
 #define debug_log(fmt, args...) do {} while (0)
 #endif
 
-
-/* Some drives require a longer irq timeout. */
-#define IDEFLOPPY_WAIT_CMD             (5 * WAIT_CMD)
-
 /*
  * After each failed packet command we issue a request sense command and retry
  * the packet command IDEFLOPPY_MAX_PC_RETRIES times.
@@ -226,7 +222,7 @@ static ide_startstop_t idefloppy_pc_intr(ide_drive_t *drive)
        idefloppy_floppy_t *floppy = drive->driver_data;
 
        return ide_pc_intr(drive, floppy->pc, idefloppy_pc_intr,
-                          IDEFLOPPY_WAIT_CMD, NULL, idefloppy_update_buffers,
+                          WAIT_FLOPPY_CMD, NULL, idefloppy_update_buffers,
                           idefloppy_retry_pc, NULL, ide_io_buffers);
 }
 
@@ -244,10 +240,9 @@ static int idefloppy_transfer_pc(ide_drive_t *drive)
        drive->hwif->tp_ops->output_data(drive, NULL, floppy->pc->c, 12);
 
        /* Timeout for the packet command */
-       return IDEFLOPPY_WAIT_CMD;
+       return WAIT_FLOPPY_CMD;
 }
 
-
 /*
  * Called as an interrupt (or directly). When the device says it's ready for a
  * packet, we schedule the packet transfer to occur about 2-3 ticks later in
@@ -272,7 +267,7 @@ static ide_startstop_t idefloppy_start_pc_transfer(ide_drive_t *drive)
                timeout = floppy->ticks;
                expiry = &idefloppy_transfer_pc;
        } else {
-               timeout = IDEFLOPPY_WAIT_CMD;
+               timeout = WAIT_FLOPPY_CMD;
                expiry = NULL;
        }
 
@@ -322,7 +317,7 @@ static ide_startstop_t idefloppy_issue_pc(ide_drive_t *drive,
        pc->retries++;
 
        return ide_issue_pc(drive, pc, idefloppy_start_pc_transfer,
-                           IDEFLOPPY_WAIT_CMD, NULL);
+                           WAIT_FLOPPY_CMD, NULL);
 }
 
 void ide_floppy_create_read_capacity_cmd(struct ide_atapi_pc *pc)
@@ -634,9 +629,9 @@ static sector_t idefloppy_capacity(ide_drive_t *drive)
 }
 
 #ifdef CONFIG_IDE_PROC_FS
-ide_devset_rw(bios_cyl,  0, 1023, bios_cyl);
-ide_devset_rw(bios_head, 0,  255, bios_head);
-ide_devset_rw(bios_sect, 0,   63, bios_sect);
+ide_devset_rw_field(bios_cyl, bios_cyl);
+ide_devset_rw_field(bios_head, bios_head);
+ide_devset_rw_field(bios_sect, bios_sect);
 
 static int get_ticks(ide_drive_t *drive)
 {
@@ -651,14 +646,14 @@ static int set_ticks(ide_drive_t *drive, int arg)
        return 0;
 }
 
-IDE_DEVSET(ticks, S_RW, 0, 255, get_ticks, set_ticks);
+IDE_DEVSET(ticks, DS_SYNC, get_ticks, set_ticks);
 
-static const struct ide_devset *idefloppy_settings[] = {
-       &ide_devset_bios_cyl,
-       &ide_devset_bios_head,
-       &ide_devset_bios_sect,
-       &ide_devset_ticks,
-       NULL
+static const struct ide_proc_devset idefloppy_settings[] = {
+       IDE_PROC_DEVSET(bios_cyl,  0, 1023),
+       IDE_PROC_DEVSET(bios_head, 0,  255),
+       IDE_PROC_DEVSET(bios_sect, 0,   63),
+       IDE_PROC_DEVSET(ticks,     0,  255),
+       { 0 },
 };
 #endif
 
@@ -773,7 +768,6 @@ static int idefloppy_open(struct inode *inode, struct file *filp)
        struct gendisk *disk = inode->i_bdev->bd_disk;
        struct ide_floppy_obj *floppy;
        ide_drive_t *drive;
-       struct ide_atapi_pc pc;
        int ret = 0;
 
        debug_log("Reached %s\n", __func__);
@@ -790,10 +784,7 @@ static int idefloppy_open(struct inode *inode, struct file *filp)
                drive->atapi_flags &= ~IDE_AFLAG_FORMAT_IN_PROGRESS;
                /* Just in case */
 
-               ide_init_pc(&pc);
-               pc.c[0] = GPCMD_TEST_UNIT_READY;
-
-               if (ide_queue_pc_tail(drive, disk, &pc))
+               if (ide_do_test_unit_ready(drive, disk))
                        ide_do_start_stop(drive, disk, 1);
 
                if (ide_floppy_get_capacity(drive)