diff options
Diffstat (limited to 'drivers/block/floppy.c')
-rw-r--r-- | drivers/block/floppy.c | 55 |
1 files changed, 1 insertions, 54 deletions
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index dff1e67b1dd4..0242cbb86a87 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c | |||
@@ -177,7 +177,6 @@ static int print_unex = 1; | |||
177 | #include <linux/ioport.h> | 177 | #include <linux/ioport.h> |
178 | #include <linux/interrupt.h> | 178 | #include <linux/interrupt.h> |
179 | #include <linux/init.h> | 179 | #include <linux/init.h> |
180 | #include <linux/devfs_fs_kernel.h> | ||
181 | #include <linux/platform_device.h> | 180 | #include <linux/platform_device.h> |
182 | #include <linux/buffer_head.h> /* for invalidate_buffers() */ | 181 | #include <linux/buffer_head.h> /* for invalidate_buffers() */ |
183 | #include <linux/mutex.h> | 182 | #include <linux/mutex.h> |
@@ -224,7 +223,6 @@ static struct completion device_release; | |||
224 | static unsigned short virtual_dma_port = 0x3f0; | 223 | static unsigned short virtual_dma_port = 0x3f0; |
225 | irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 224 | irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
226 | static int set_dor(int fdc, char mask, char data); | 225 | static int set_dor(int fdc, char mask, char data); |
227 | static void register_devfs_entries(int drive) __init; | ||
228 | 226 | ||
229 | #define K_64 0x10000 /* 64KB */ | 227 | #define K_64 0x10000 /* 64KB */ |
230 | 228 | ||
@@ -3676,7 +3674,6 @@ static void __init config_types(void) | |||
3676 | first = 0; | 3674 | first = 0; |
3677 | } | 3675 | } |
3678 | printk("%s fd%d is %s", prepend, drive, name); | 3676 | printk("%s fd%d is %s", prepend, drive, name); |
3679 | register_devfs_entries(drive); | ||
3680 | } | 3677 | } |
3681 | *UDP = *params; | 3678 | *UDP = *params; |
3682 | } | 3679 | } |
@@ -3954,37 +3951,6 @@ static struct block_device_operations floppy_fops = { | |||
3954 | .media_changed = check_floppy_change, | 3951 | .media_changed = check_floppy_change, |
3955 | .revalidate_disk = floppy_revalidate, | 3952 | .revalidate_disk = floppy_revalidate, |
3956 | }; | 3953 | }; |
3957 | static char *table[] = { | ||
3958 | "", "d360", "h1200", "u360", "u720", "h360", "h720", | ||
3959 | "u1440", "u2880", "CompaQ", "h1440", "u1680", "h410", | ||
3960 | "u820", "h1476", "u1722", "h420", "u830", "h1494", "u1743", | ||
3961 | "h880", "u1040", "u1120", "h1600", "u1760", "u1920", | ||
3962 | "u3200", "u3520", "u3840", "u1840", "u800", "u1600", | ||
3963 | NULL | ||
3964 | }; | ||
3965 | static int t360[] = { 1, 0 }, | ||
3966 | t1200[] = { 2, 5, 6, 10, 12, 14, 16, 18, 20, 23, 0 }, | ||
3967 | t3in[] = { 8, 9, 26, 27, 28, 7, 11, 15, 19, 24, 25, 29, 31, 3, 4, 13, | ||
3968 | 17, 21, 22, 30, 0 }; | ||
3969 | static int *table_sup[] = | ||
3970 | { NULL, t360, t1200, t3in + 5 + 8, t3in + 5, t3in, t3in }; | ||
3971 | |||
3972 | static void __init register_devfs_entries(int drive) | ||
3973 | { | ||
3974 | int base_minor = (drive < 4) ? drive : (124 + drive); | ||
3975 | |||
3976 | if (UDP->cmos < ARRAY_SIZE(default_drive_params)) { | ||
3977 | int i = 0; | ||
3978 | do { | ||
3979 | int minor = base_minor + (table_sup[UDP->cmos][i] << 2); | ||
3980 | |||
3981 | devfs_mk_bdev(MKDEV(FLOPPY_MAJOR, minor), | ||
3982 | S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP | | ||
3983 | S_IWGRP, "floppy/%d%s", drive, | ||
3984 | table[table_sup[UDP->cmos][i]]); | ||
3985 | } while (table_sup[UDP->cmos][i++]); | ||
3986 | } | ||
3987 | } | ||
3988 | 3954 | ||
3989 | /* | 3955 | /* |
3990 | * Floppy Driver initialization | 3956 | * Floppy Driver initialization |
@@ -4261,11 +4227,9 @@ static int __init floppy_init(void) | |||
4261 | motor_off_timer[dr].function = motor_off_callback; | 4227 | motor_off_timer[dr].function = motor_off_callback; |
4262 | } | 4228 | } |
4263 | 4229 | ||
4264 | devfs_mk_dir("floppy"); | ||
4265 | |||
4266 | err = register_blkdev(FLOPPY_MAJOR, "fd"); | 4230 | err = register_blkdev(FLOPPY_MAJOR, "fd"); |
4267 | if (err) | 4231 | if (err) |
4268 | goto out_devfs_remove; | 4232 | goto out_put_disk; |
4269 | 4233 | ||
4270 | floppy_queue = blk_init_queue(do_fd_request, &floppy_lock); | 4234 | floppy_queue = blk_init_queue(do_fd_request, &floppy_lock); |
4271 | if (!floppy_queue) { | 4235 | if (!floppy_queue) { |
@@ -4424,8 +4388,6 @@ out_unreg_region: | |||
4424 | blk_cleanup_queue(floppy_queue); | 4388 | blk_cleanup_queue(floppy_queue); |
4425 | out_unreg_blkdev: | 4389 | out_unreg_blkdev: |
4426 | unregister_blkdev(FLOPPY_MAJOR, "fd"); | 4390 | unregister_blkdev(FLOPPY_MAJOR, "fd"); |
4427 | out_devfs_remove: | ||
4428 | devfs_remove("floppy"); | ||
4429 | out_put_disk: | 4391 | out_put_disk: |
4430 | while (dr--) { | 4392 | while (dr--) { |
4431 | del_timer(&motor_off_timer[dr]); | 4393 | del_timer(&motor_off_timer[dr]); |
@@ -4586,19 +4548,6 @@ static void floppy_release_irq_and_dma(void) | |||
4586 | 4548 | ||
4587 | static char *floppy; | 4549 | static char *floppy; |
4588 | 4550 | ||
4589 | static void unregister_devfs_entries(int drive) | ||
4590 | { | ||
4591 | int i; | ||
4592 | |||
4593 | if (UDP->cmos < ARRAY_SIZE(default_drive_params)) { | ||
4594 | i = 0; | ||
4595 | do { | ||
4596 | devfs_remove("floppy/%d%s", drive, | ||
4597 | table[table_sup[UDP->cmos][i]]); | ||
4598 | } while (table_sup[UDP->cmos][i++]); | ||
4599 | } | ||
4600 | } | ||
4601 | |||
4602 | static void __init parse_floppy_cfg_string(char *cfg) | 4551 | static void __init parse_floppy_cfg_string(char *cfg) |
4603 | { | 4552 | { |
4604 | char *ptr; | 4553 | char *ptr; |
@@ -4635,13 +4584,11 @@ void cleanup_module(void) | |||
4635 | if ((allowed_drive_mask & (1 << drive)) && | 4584 | if ((allowed_drive_mask & (1 << drive)) && |
4636 | fdc_state[FDC(drive)].version != FDC_NONE) { | 4585 | fdc_state[FDC(drive)].version != FDC_NONE) { |
4637 | del_gendisk(disks[drive]); | 4586 | del_gendisk(disks[drive]); |
4638 | unregister_devfs_entries(drive); | ||
4639 | device_remove_file(&floppy_device[drive].dev, &dev_attr_cmos); | 4587 | device_remove_file(&floppy_device[drive].dev, &dev_attr_cmos); |
4640 | platform_device_unregister(&floppy_device[drive]); | 4588 | platform_device_unregister(&floppy_device[drive]); |
4641 | } | 4589 | } |
4642 | put_disk(disks[drive]); | 4590 | put_disk(disks[drive]); |
4643 | } | 4591 | } |
4644 | devfs_remove("floppy"); | ||
4645 | 4592 | ||
4646 | del_timer_sync(&fd_timeout); | 4593 | del_timer_sync(&fd_timeout); |
4647 | del_timer_sync(&fd_timer); | 4594 | del_timer_sync(&fd_timer); |