]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/ide-floppy.c
ide: include <linux/hdreg.h> only when needed
[linux-2.6-omap-h63xx.git] / drivers / ide / ide-floppy.c
index e9034c0125f3e32440d2d0d2a9de9fd067eada09..b0f4d8459a9d9849de5c9de4a03e4e72aff5a505 100644 (file)
@@ -31,6 +31,7 @@
 #include <linux/slab.h>
 #include <linux/cdrom.h>
 #include <linux/ide.h>
+#include <linux/hdreg.h>
 #include <linux/bitops.h>
 #include <linux/mutex.h>
 
@@ -945,7 +946,7 @@ static int idefloppy_get_format_progress(ide_drive_t *drive, int __user *arg)
                stat = hwif->tp_ops->read_status(hwif);
                local_irq_restore(flags);
 
-               progress_indication = ((stat & SEEK_STAT) == 0) ? 0 : 0x10000;
+               progress_indication = ((stat & ATA_DSC) == 0) ? 0 : 0x10000;
        }
        if (put_user(progress_indication, arg))
                return (-EFAULT);
@@ -965,12 +966,12 @@ static sector_t idefloppy_capacity(ide_drive_t *drive)
  * Check whether we can support a drive, based on the ATAPI IDENTIFY command
  * results.
  */
-static int idefloppy_identify_device(ide_drive_t *drive, struct hd_driveid *id)
+static int idefloppy_identify_device(ide_drive_t *drive, u16 *id)
 {
        u8 gcw[2];
        u8 device_type, protocol, removable, drq_type, packet_size;
 
-       *((u16 *) &gcw) = id->config;
+       *((u16 *)&gcw) = id[ATA_ID_CONFIG];
 
        device_type =  gcw[1] & 0x1F;
        removable   = (gcw[0] & 0x80) >> 7;
@@ -981,7 +982,8 @@ static int idefloppy_identify_device(ide_drive_t *drive, struct hd_driveid *id)
 #ifdef CONFIG_PPC
        /* kludge for Apple PowerBook internal zip */
        if (device_type == 5 &&
-           !strstr(id->model, "CD-ROM") && strstr(id->model, "ZIP"))
+           !strstr((char *)&id[ATA_ID_PROD], "CD-ROM") &&
+           strstr((char *)&id[ATA_ID_PROD], "ZIP"))
                device_type = 0;
 #endif
 
@@ -1024,9 +1026,10 @@ static inline void idefloppy_add_settings(ide_drive_t *drive) { ; }
 
 static void idefloppy_setup(ide_drive_t *drive, idefloppy_floppy_t *floppy)
 {
+       u16 *id = drive->id;
        u8 gcw[2];
 
-       *((u16 *) &gcw) = drive->id->config;
+       *((u16 *)&gcw) = id[ATA_ID_CONFIG];
        floppy->pc = floppy->pc_stack;
        drive->pc_callback = ide_floppy_callback;
 
@@ -1041,7 +1044,7 @@ static void idefloppy_setup(ide_drive_t *drive, idefloppy_floppy_t *floppy)
         * it. It should be fixed as of version 1.9, but to be on the safe side
         * we'll leave the limitation below for the 2.2.x tree.
         */
-       if (!strncmp(drive->id->model, "IOMEGA ZIP 100 ATAPI", 20)) {
+       if (!strncmp((char *)&id[ATA_ID_PROD], "IOMEGA ZIP 100 ATAPI", 20)) {
                drive->atapi_flags |= IDE_AFLAG_ZIP_DRIVE;
                /* This value will be visible in the /proc/ide/hdx/settings */
                floppy->ticks = IDEFLOPPY_TICKS_DELAY;
@@ -1052,7 +1055,7 @@ static void idefloppy_setup(ide_drive_t *drive, idefloppy_floppy_t *floppy)
         * Guess what? The IOMEGA Clik! drive also needs the above fix. It makes
         * nasty clicking noises without it, so please don't remove this.
         */
-       if (strncmp(drive->id->model, "IOMEGA Clik!", 11) == 0) {
+       if (strncmp((char *)&id[ATA_ID_PROD], "IOMEGA Clik!", 11) == 0) {
                blk_queue_max_sectors(drive->queue, 64);
                drive->atapi_flags |= IDE_AFLAG_CLIK_DRIVE;
        }
@@ -1388,10 +1391,10 @@ static int ide_floppy_probe(ide_drive_t *drive)
 
        if (!strstr("ide-floppy", drive->driver_req))
                goto failed;
-       if (!drive->present)
-               goto failed;
+
        if (drive->media != ide_floppy)
                goto failed;
+
        if (!idefloppy_identify_device(drive, drive->id)) {
                printk(KERN_ERR "ide-floppy: %s: not supported by this version"
                                " of ide-floppy\n", drive->name);