Lines Matching refs:drive
169 enum drive_location location; /* internal or external drive */
170 int head_number; /* single- or double-sided drive */
310 swim_write(base, mode0, EXTERNAL_DRIVE); /* clear drive 1 bit */
311 swim_write(base, mode1, INTERNAL_DRIVE); /* set drive 0 bit */
313 swim_write(base, mode0, INTERNAL_DRIVE); /* clear drive 0 bit */
314 swim_write(base, mode1, EXTERNAL_DRIVE); /* set drive 1 bit */
357 /* wait drive is ready */
751 int drive = (*part & 3);
753 if (drive >= swd->floppy_count)
757 return get_disk_and_module(swd->unit[drive].disk);
789 int drive;
814 for (drive = 0; drive < swd->floppy_count; drive++) {
817 swd->unit[drive].disk = alloc_disk(1);
818 if (swd->unit[drive].disk == NULL) {
823 q = blk_mq_init_sq_queue(&swd->unit[drive].tag_set, &swim_mq_ops,
830 swd->unit[drive].disk->queue = q;
831 blk_queue_bounce_limit(swd->unit[drive].disk->queue,
833 swd->unit[drive].disk->queue->queuedata = &swd->unit[drive];
834 swd->unit[drive].swd = swd;
837 for (drive = 0; drive < swd->floppy_count; drive++) {
838 swd->unit[drive].disk->flags = GENHD_FL_REMOVABLE;
839 swd->unit[drive].disk->major = FLOPPY_MAJOR;
840 swd->unit[drive].disk->first_minor = drive;
841 sprintf(swd->unit[drive].disk->disk_name, "fd%d", drive);
842 swd->unit[drive].disk->fops = &floppy_fops;
843 swd->unit[drive].disk->events = DISK_EVENT_MEDIA_CHANGE;
844 swd->unit[drive].disk->private_data = &swd->unit[drive];
845 set_capacity(swd->unit[drive].disk, 2880);
846 add_disk(swd->unit[drive].disk);
857 struct gendisk *disk = swd->unit[drive].disk;
864 blk_mq_free_tag_set(&swd->unit[drive].tag_set);
867 } while (drive--);
932 int drive;
937 for (drive = 0; drive < swd->floppy_count; drive++) {
938 del_gendisk(swd->unit[drive].disk);
939 blk_cleanup_queue(swd->unit[drive].disk->queue);
940 blk_mq_free_tag_set(&swd->unit[drive].tag_set);
941 put_disk(swd->unit[drive].disk);
948 for (drive = 0; drive < swd->floppy_count; drive++)
949 floppy_eject(&swd->unit[drive]);