ide: switch to __register_blkdev for command set probing
[linux-2.6-block.git] / drivers / ide / ide-probe.c
index 076d34b381720fd18c7e36c613bc35ca045d2555..1c1567bb51942974d5e93aa97a50fb444854de10 100644 (file)
@@ -902,31 +902,12 @@ out_up:
        return 1;
 }
 
-static int ata_lock(dev_t dev, void *data)
+static void ata_probe(dev_t dev)
 {
-       /* FIXME: we want to pin hwif down */
-       return 0;
-}
-
-static struct kobject *ata_probe(dev_t dev, int *part, void *data)
-{
-       ide_hwif_t *hwif = data;
-       int unit = *part >> PARTN_BITS;
-       ide_drive_t *drive = hwif->devices[unit];
-
-       if ((drive->dev_flags & IDE_DFLAG_PRESENT) == 0)
-               return NULL;
-
-       if (drive->media == ide_disk)
-               request_module("ide-disk");
-       if (drive->media == ide_cdrom || drive->media == ide_optical)
-               request_module("ide-cd");
-       if (drive->media == ide_tape)
-               request_module("ide-tape");
-       if (drive->media == ide_floppy)
-               request_module("ide-floppy");
-
-       return NULL;
+       request_module("ide-disk");
+       request_module("ide-cd");
+       request_module("ide-tape");
+       request_module("ide-floppy");
 }
 
 void ide_init_disk(struct gendisk *disk, ide_drive_t *drive)
@@ -967,7 +948,7 @@ static int hwif_init(ide_hwif_t *hwif)
                return 0;
        }
 
-       if (register_blkdev(hwif->major, hwif->name))
+       if (__register_blkdev(hwif->major, hwif->name, ata_probe))
                return 0;
 
        if (!hwif->sg_max_nents)
@@ -989,8 +970,6 @@ static int hwif_init(ide_hwif_t *hwif)
                goto out;
        }
 
-       blk_register_region(MKDEV(hwif->major, 0), MAX_DRIVES << PARTN_BITS,
-                           THIS_MODULE, ata_probe, ata_lock, hwif);
        return 1;
 
 out:
@@ -1582,7 +1561,6 @@ static void ide_unregister(ide_hwif_t *hwif)
        /*
         * Remove us from the kernel's knowledge
         */
-       blk_unregister_region(MKDEV(hwif->major, 0), MAX_DRIVES<<PARTN_BITS);
        kfree(hwif->sg_table);
        unregister_blkdev(hwif->major, hwif->name);