]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] gendisk for swim_iop
authorAlexander Viro <viro@math.psu.edu>
Sat, 21 Sep 2002 09:52:06 +0000 (02:52 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sat, 21 Sep 2002 09:52:06 +0000 (02:52 -0700)
swim_iop switched to use of gendisk

drivers/block/swim_iop.c

index 927bcf6e041ad10d6a64a9d0474387b80ba3fe31..77a7af3b54a1ff3cb61a872e3fa1be075b54e272 100644 (file)
@@ -83,7 +83,8 @@ static int floppy_count;
 
 static struct floppy_state floppy_states[MAX_FLOPPIES];
 
-static int floppy_sizes[2] = {2880,2880};
+static struct gendisk disks[2];
+static char names[2][4];
 
 static spinlock_t swim_iop_lock = SPIN_LOCK_UNLOCKED;
 
@@ -152,8 +153,6 @@ int swimiop_init(void)
        }
        blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), do_fd_request,
                        &swim_iop_lock);
-       blk_size[MAJOR_NR] = floppy_sizes;
-
        printk("SWIM-IOP: %s by Joshua M. Thompson (funaho@jurai.org)\n",
                DRIVER_VERSION);
 
@@ -193,6 +192,16 @@ int swimiop_init(void)
        printk("SWIM-IOP: detected %d installed drives.\n", floppy_count);
 
        do_floppy = NULL;
+       for (i = 0; i < floppy_count; i++) {
+               struct gendisk *disk = disks + i;
+               disk->major = MAJOR_NR;
+               disk->first_minor = i;
+               disk->fops = &floppy_fops;
+               sprintf(names[i], "fd%d", i);
+               disk->major_name = names[i];
+               set_capacity(disk, 2880 * 2);
+               add_disk(disk);
+       }
 
        return 0;
 }